BrowserCapabilitiesFactory.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ FXUpdate3074 / FXUpdate3074 / 1.1 / DEVDIV / depot / DevDiv / releases / whidbey / QFE / ndp / fx / src / xsp / System / Web / Configuration / BrowserCapabilitiesFactory.cs / 6 / BrowserCapabilitiesFactory.cs

                            //------------------------------------------------------------------------------ 
// 
//     This code was generated by a tool.
//     Runtime Version:2.0.50804.0
// 
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated. 
//  
//-----------------------------------------------------------------------------
 
namespace System.Web.Configuration {
    using System;
    using System.Web;
    using System.Web.Configuration; 
    using System.Reflection;
    using System.Security.Permissions; 
 
    [AspNetHostingPermission(SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
    [AspNetHostingPermission(SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)] 
    public class BrowserCapabilitiesFactory : System.Web.Configuration.BrowserCapabilitiesFactoryBase {

        public override void ConfigureBrowserCapabilities(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            this.DefaultProcess(headers, browserCaps); 
            if ((this.IsBrowserUnknown(browserCaps) == false)) {
                return; 
            } 
            this.DefaultDefaultProcess(headers, browserCaps);
        } 


        protected virtual void IeProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void IeProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        } 

        private bool IeProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification:
            string headerValue; 
            headerValue = ((string)(browserCaps[string.Empty]));
            bool result; 
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "^Mozilla[^(]*\\([C|c]ompatible;\\s*MSIE (?\'version\'(?\'major\'\\d+)(?\'minor\'\\.\\d+)(?\'l" + 
                    "etters\'\\w*))(?\'extra\'[^)]*)");
            if ((result == false)) {
                return false;
            } 
            headerValue = ((string)(browserCaps[string.Empty]));
            result = regexWorker.ProcessRegex(headerValue, "Opera|Go\\.Web|Windows CE|EudoraWeb"); 
            if ((result == true)) { 
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["browser"] = "IE";
            dictionary["extra"] = regexWorker["${extra}"];
            dictionary["isColor"] = "true"; 
            dictionary["letters"] = regexWorker["${letters}"];
            dictionary["majorversion"] = regexWorker["${major}"]; 
            dictionary["minorversion"] = regexWorker["${minor}"]; 
            dictionary["screenBitDepth"] = "8";
            dictionary["type"] = regexWorker["IE${major}"]; 
            dictionary["version"] = regexWorker["${version}"];
            browserCaps.AddBrowser("IE");
            this.IeProcessGateways(headers, browserCaps);
            // gateway, parent=IE 
            this.IeaolProcess(headers, browserCaps);
            // gateway, parent=IE 
            this.IebetaProcess(headers, browserCaps); 
            // gateway, parent=IE
            this.IeupdateProcess(headers, browserCaps); 
            bool ignoreApplicationBrowsers = true;
            // browser, parent=IE
            if (this.Ie5to9Process(headers, browserCaps)) {
            } 
            else {
                if (this.Ie4Process(headers, browserCaps)) { 
                } 
                else {
                    if (this.Ie3Process(headers, browserCaps)) { 
                    }
                    else {
                        if (this.Ie2Process(headers, browserCaps)) {
                        } 
                        else {
                            if (this.Ie1minor5Process(headers, browserCaps)) { 
                            } 
                            else {
                                ignoreApplicationBrowsers = false; 
                            }
                        }
                    }
                } 
            }
            this.IeProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true; 
        }
 
        protected virtual void Ie5to9ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        protected virtual void Ie5to9ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool Ie5to9Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue;
            headerValue = ((string)(dictionary["majorversion"]));
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "^[5-9]"); 
            if ((result == false)) {
                return false; 
            }
            // Capabilities: set capabilities
            dictionary["activexcontrols"] = "true";
            dictionary["backgroundsounds"] = "true"; 
            dictionary["cookies"] = "true";
            dictionary["css1"] = "true"; 
            dictionary["css2"] = "true"; 
            dictionary["ecmascriptversion"] = "1.2";
            dictionary["frames"] = "true"; 
            dictionary["javaapplets"] = "true";
            dictionary["javascript"] = "true";
            dictionary["jscriptversion"] = "5.0";
            dictionary["msdomversion"] = regexWorker["${majorversion}${minorversion}"]; 
            dictionary["supportsCallback"] = "true";
            dictionary["supportsFileUpload"] = "true"; 
            dictionary["supportsMultilineTextBoxDisplay"] = "true"; 
            dictionary["supportsMaintainScrollPositionOnPostback"] = "true";
            dictionary["supportsVCard"] = "true"; 
            dictionary["supportsXmlHttp"] = "true";
            dictionary["tables"] = "true";
            dictionary["tagwriter"] = "System.Web.UI.HtmlTextWriter";
            dictionary["vbscript"] = "true"; 
            dictionary["w3cdomversion"] = "1.0";
            dictionary["xml"] = "true"; 
            browserCaps.AddBrowser("IE5to9"); 
            this.Ie5to9ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = true; 
            // browser, parent=IE5to9
            if (this.Ie6to9Process(headers, browserCaps)) {
            }
            else { 
                if (this.Ie5Process(headers, browserCaps)) {
                } 
                else { 
                    if (this.Ie5to9macProcess(headers, browserCaps)) {
                    } 
                    else {
                        ignoreApplicationBrowsers = false;
                    }
                } 
            }
            this.Ie5to9ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true; 
        }
 
        protected virtual void Ie6to9ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        protected virtual void Ie6to9ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool Ie6to9Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue;
            headerValue = ((string)(dictionary["majorversion"]));
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "[6-9]"); 
            if ((result == false)) {
                return false; 
            }
            // Capabilities: set capabilities
            dictionary["jscriptversion"] = "5.6";
            dictionary["ExchangeOmaSupported"] = "true"; 
            browserCaps.AddBrowser("IE6to9");
            this.Ie6to9ProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = true; 
            // browser, parent=IE6to9
            if (this.Treo600Process(headers, browserCaps)) { 
            }
            else {
                ignoreApplicationBrowsers = false;
            } 
            this.Ie6to9ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        } 

        protected virtual void Treo600ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        protected virtual void Treo600ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool Treo600Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(browserCaps[string.Empty]));
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "PalmSource; Blazer"); 
            if ((result == false)) { 
                return false;
            } 
            // Capture: header values
            regexWorker.ProcessRegex(((string)(browserCaps[string.Empty])), "PalmSource; Blazer 3\\.0\\)\\s\\d+;(?\'screenPixelsHeight\'\\d+)x(?\'screenPixelsWidth\'\\d" +
                    "+)$");
            // Capabilities: set capabilities 
            dictionary["browser"] = "Blazer 3.0";
            dictionary["cachesAllResponsesWithExpires"] = "false"; 
            dictionary["canInitiateVoiceCall"] = "true"; 
            dictionary["canRenderEmptySelects"] = "true";
            dictionary["canSendMail"] = "true"; 
            dictionary["cookies"] = "true";
            dictionary["ecmascriptversion"] = "1.1";
            dictionary["hidesRightAlignedMultiselectScrollbars"] = "false";
            dictionary["inputType"] = "keyboard"; 
            dictionary["isColor"] = "true";
            dictionary["javascript"] = "true"; 
            dictionary["jscriptversion"] = "0.0"; 
            dictionary["maximumHrefLength"] = "10000";
            dictionary["maximumRenderedPageSize"] = "300000"; 
            dictionary["mobileDeviceManufacturer"] = "";
            dictionary["mobileDeviceModel"] = "";
            dictionary["preferredImageMime"] = "image/jpeg";
            dictionary["preferredRenderingMime"] = "text/html"; 
            dictionary["preferredRenderingType"] = "html32";
            dictionary["preferredRequestEncoding"] = "utf-8"; 
            dictionary["preferredResponseEncoding"] = "utf-8"; 
            dictionary["rendersBreaksAfterHtmlLists"] = "true";
            dictionary["requiredMetaTagNameValue"] = "PalmComputingPlatform"; 
            dictionary["requiresAttributeColonSubstitution"] = "false";
            dictionary["requiresContentTypeMetaTag"] = "false";
            dictionary["requiresControlStateInSession"] = "false";
            dictionary["requiresDBCSCharacter"] = "false"; 
            dictionary["requiresFullyQualifiedRedirectUrl"] = "false";
            dictionary["requiresHtmlAdaptiveErrorReporting"] = "false"; 
            dictionary["requiresLeadingPageBreak"] = "false"; 
            dictionary["requiresNoBreakInFormatting"] = "false";
            dictionary["requiresOutputOptimization"] = "false"; 
            dictionary["requiresPostRedirectionHandling"] = "false";
            dictionary["requiresPragmaNoCacheHeader"] = "true";
            dictionary["requiresUniqueFilePathSuffix"] = "true";
            dictionary["requiresUniqueHtmlCheckboxNames"] = "false"; 
            dictionary["screenBitDepth"] = "24";
            dictionary["screenCharactersHeight"] = "13"; 
            dictionary["screenCharactersWidth"] = "32"; 
            dictionary["screenPixelsHeight"] = regexWorker["${screenPixelsHeight}"];
            dictionary["screenPixelsWidth"] = regexWorker["${screenPixelsWidth}"]; 
            dictionary["supportsAccessKeyAttribute"] = "true";
            dictionary["supportsBodyColor"] = "true";
            dictionary["supportsBold"] = "true";
            dictionary["supportsCharacterEntityEncoding"] = "true"; 
            dictionary["supportsCss"] = "false";
            dictionary["supportsDivAlign"] = "true"; 
            dictionary["supportsDivNoWrap"] = "false"; 
            dictionary["supportsEmptyStringInCookieValue"] = "true";
            dictionary["supportsFileUpload"] = "false"; 
            dictionary["supportsFontColor"] = "true";
            dictionary["supportsFontName"] = "false";
            dictionary["supportsFontSize"] = "true";
            dictionary["supportsImageSubmit"] = "true"; 
            dictionary["supportsIModeSymbols"] = "false";
            dictionary["supportsInputIStyle"] = "false"; 
            dictionary["supportsInputMode"] = "false"; 
            dictionary["supportsItalic"] = "true";
            dictionary["supportsJPhoneMultiMediaAttributes"] = "false"; 
            dictionary["supportsJPhoneSymbols"] = "false";
            dictionary["supportsMultilineTextBoxDisplay"] = "true";
            dictionary["supportsQueryStringInFormAction"] = "true";
            dictionary["supportsRedirectWithCookie"] = "true"; 
            dictionary["supportsSelectMultiple"] = "true";
            dictionary["supportsUncheck"] = "true"; 
            dictionary["tables"] = "true"; 
            dictionary["type"] = "Handspring Treo 600";
            browserCaps.AddBrowser("Treo600"); 
            this.Treo600ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false;
            this.Treo600ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }
 
        protected virtual void Ie5ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void Ie5ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        private bool Ie5Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["majorversion"])); 
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "^5$"); 
            if ((result == false)) {
                return false; 
            } 
            // Capabilities: set capabilities
            browserCaps.AddBrowser("IE5"); 
            this.Ie5ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = true;
            // browser, parent=IE5
            if (this.Ie50Process(headers, browserCaps)) { 
            }
            else { 
                if (this.Ie55Process(headers, browserCaps)) { 
                }
                else { 
                    ignoreApplicationBrowsers = false;
                }
            }
            this.Ie5ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 
 
        protected virtual void Ie50ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void Ie50ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        private bool Ie50Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["minorversion"]));
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "^\\.0");
            if ((result == false)) { 
                return false; 
            }
            // Capabilities: set capabilities 
            browserCaps.Adapters["System.Web.UI.WebControls.Menu, System.Web, Version=2.0.0.0, Culture=neutral, Pub" +
                "licKeyToken=b03f5f7f11d50a3a"] = "System.Web.UI.WebControls.Adapters.MenuAdapter";
            browserCaps.AddBrowser("IE50");
            this.Ie50ProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.Ie50ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true; 
        }
 
        protected virtual void Ie55ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        protected virtual void Ie55ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool Ie55Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue;
            headerValue = ((string)(dictionary["minorversion"]));
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "^\\.5"); 
            if ((result == false)) {
                return false; 
            }
            // Capabilities: set capabilities
            dictionary["jscriptversion"] = "5.5";
            dictionary["ExchangeOmaSupported"] = "true"; 
            browserCaps.AddBrowser("IE55");
            this.Ie55ProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false; 
            this.Ie55ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }

        protected virtual void Ie5to9macProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void Ie5to9macProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        } 

        private bool Ie5to9macProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["platform"]));
            bool result; 
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "(MacPPC|Mac68K)"); 
            if ((result == false)) {
                return false;
            }
            // Capabilities: set capabilities 
            browserCaps.Adapters["System.Web.UI.WebControls.Menu, System.Web, Version=2.0.0.0, Culture=neutral, Pub" +
                "licKeyToken=b03f5f7f11d50a3a"] = "System.Web.UI.WebControls.Adapters.MenuAdapter"; 
            browserCaps.AddBrowser("IE5to9Mac"); 
            this.Ie5to9macProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Ie5to9macProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        }
 
        protected virtual void Ie4ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        protected virtual void Ie4ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool Ie4Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(browserCaps[string.Empty])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "MSIE 4");
            if ((result == false)) {
                return false; 
            }
            // Capabilities: set capabilities 
            dictionary["activexcontrols"] = "true"; 
            dictionary["backgroundsounds"] = "true";
            dictionary["cdf"] = "true"; 
            dictionary["cookies"] = "true";
            dictionary["css1"] = "true";
            dictionary["ecmascriptversion"] = "1.2";
            dictionary["frames"] = "true"; 
            dictionary["javaapplets"] = "true";
            dictionary["javascript"] = "true"; 
            dictionary["jscriptversion"] = "3.0"; 
            dictionary["msdomversion"] = "4.0";
            dictionary["supportsFileUpload"] = "true"; 
            dictionary["supportsMultilineTextBoxDisplay"] = "false";
            dictionary["supportsMaintainScrollPositionOnPostback"] = "true";
            dictionary["tables"] = "true";
            dictionary["tagwriter"] = "System.Web.UI.HtmlTextWriter"; 
            dictionary["vbscript"] = "true";
            browserCaps.Adapters["System.Web.UI.WebControls.Menu, System.Web, Version=2.0.0.0, Culture=neutral, Pub" + 
                "licKeyToken=b03f5f7f11d50a3a"] = "System.Web.UI.WebControls.Adapters.MenuAdapter"; 
            browserCaps.AddBrowser("IE4");
            this.Ie4ProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.Ie4ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        } 

        protected virtual void Ie3ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        } 

        protected virtual void Ie3ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        private bool Ie3Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue; 
            headerValue = ((string)(dictionary["majorversion"]));
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "^3");
            if ((result == false)) { 
                return false;
            } 
            // Capabilities: set capabilities 
            dictionary["activexcontrols"] = "true";
            dictionary["backgroundsounds"] = "true"; 
            dictionary["cookies"] = "true";
            dictionary["css1"] = "true";
            dictionary["ecmascriptversion"] = "1.0";
            dictionary["frames"] = "true"; 
            dictionary["javaapplets"] = "true";
            dictionary["javascript"] = "true"; 
            dictionary["jscriptversion"] = "1.0"; 
            dictionary["supportsMultilineTextBoxDisplay"] = "false";
            dictionary["tables"] = "true"; 
            dictionary["vbscript"] = "true";
            browserCaps.Adapters["System.Web.UI.WebControls.Menu, System.Web, Version=2.0.0.0, Culture=neutral, Pub" +
                "licKeyToken=b03f5f7f11d50a3a"] = "System.Web.UI.WebControls.Adapters.MenuAdapter";
            browserCaps.AddBrowser("IE3"); 
            this.Ie3ProcessGateways(headers, browserCaps);
            // gateway, parent=IE3 
            this.Ie3akProcess(headers, browserCaps); 
            // gateway, parent=IE3
            this.Ie3skProcess(headers, browserCaps); 
            bool ignoreApplicationBrowsers = true;
            // browser, parent=IE3
            if (this.Ie3win16Process(headers, browserCaps)) {
            } 
            else {
                if (this.Ie3macProcess(headers, browserCaps)) { 
                } 
                else {
                    ignoreApplicationBrowsers = false; 
                }
            }
            this.Ie3ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }
 
        protected virtual void Ie3win16ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void Ie3win16ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        private bool Ie3win16Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification: 
            string headerValue;
            headerValue = ((string)(browserCaps[string.Empty])); 
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "16bit|Win(dows 3\\.1|16)"); 
            if ((result == false)) {
                return false; 
            } 
            // Capabilities: set capabilities
            dictionary["activexcontrols"] = "false"; 
            dictionary["javaapplets"] = "false";
            browserCaps.AddBrowser("IE3win16");
            this.Ie3win16ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = true; 
            // browser, parent=IE3win16
            if (this.Ie3win16aProcess(headers, browserCaps)) { 
            } 
            else {
                ignoreApplicationBrowsers = false; 
            }
            this.Ie3win16ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        } 

        protected virtual void Ie3win16aProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        } 

        protected virtual void Ie3win16aProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        private bool Ie3win16aProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue; 
            headerValue = ((string)(dictionary["extra"]));
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "^a");
            if ((result == false)) { 
                return false;
            } 
            // Capabilities: set capabilities 
            dictionary["beta"] = "true";
            dictionary["javascript"] = "false"; 
            dictionary["vbscript"] = "false";
            browserCaps.AddBrowser("IE3win16a");
            this.Ie3win16aProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Ie3win16aProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        } 

        protected virtual void Ie3macProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        protected virtual void Ie3macProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool Ie3macProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(browserCaps[string.Empty]));
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "PPC Mac|Macintosh.*(68K|PPC)|Mac_(PowerPC|PPC|68(K|000))"); 
            if ((result == false)) { 
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["activexcontrols"] = "false";
            dictionary["vbscript"] = "false";
            browserCaps.AddBrowser("IE3Mac"); 
            this.Ie3macProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Ie3macProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 

        protected virtual void Ie3akProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        protected virtual void Ie3akProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        private bool Ie3akProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification:
            string headerValue;
            headerValue = ((string)(dictionary["extra"])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "; AK;");
            if ((result == false)) { 
                return false;
            }
            // Capabilities: set capabilities
            dictionary["ak"] = "true"; 
            this.Ie3akProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Ie3akProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 

        protected virtual void Ie3skProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        protected virtual void Ie3skProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        private bool Ie3skProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification:
            string headerValue;
            headerValue = ((string)(dictionary["extra"])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "; SK;");
            if ((result == false)) { 
                return false;
            }
            // Capabilities: set capabilities
            dictionary["sk"] = "true"; 
            this.Ie3skProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Ie3skProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 

        protected virtual void Ie2ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        protected virtual void Ie2ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        private bool Ie2Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification:
            string headerValue;
            headerValue = ((string)(dictionary["majorversion"])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "^2");
            if ((result == false)) { 
                return false;
            }
            // Capabilities: set capabilities
            dictionary["backgroundsounds"] = "true"; 
            dictionary["cookies"] = "true";
            dictionary["tables"] = "true"; 
            browserCaps.Adapters["System.Web.UI.WebControls.Menu, System.Web, Version=2.0.0.0, Culture=neutral, Pub" + 
                "licKeyToken=b03f5f7f11d50a3a"] = "System.Web.UI.WebControls.Adapters.MenuAdapter";
            browserCaps.AddBrowser("IE2"); 
            this.Ie2ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = true;
            // browser, parent=IE2
            if (this.WebtvProcess(headers, browserCaps)) { 
            }
            else { 
                ignoreApplicationBrowsers = false; 
            }
            this.Ie2ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        }

        protected virtual void Ie1minor5ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void Ie1minor5ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool Ie1minor5Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["version"])); 
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "^1\\.5");
            if ((result == false)) {
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["cookies"] = "true"; 
            dictionary["tables"] = "true"; 
            browserCaps.Adapters["System.Web.UI.WebControls.Menu, System.Web, Version=2.0.0.0, Culture=neutral, Pub" +
                "licKeyToken=b03f5f7f11d50a3a"] = "System.Web.UI.WebControls.Adapters.MenuAdapter"; 
            browserCaps.AddBrowser("IE1minor5");
            this.Ie1minor5ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false;
            this.Ie1minor5ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 
 
        protected virtual void IeaolProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void IeaolProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        private bool IeaolProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["extra"]));
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "; AOL");
            if ((result == false)) { 
                return false; 
            }
            // Capabilities: set capabilities 
            dictionary["aol"] = "true";
            dictionary["frames"] = "true";
            this.IeaolProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.IeaolProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        } 

        protected virtual void IebetaProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        protected virtual void IebetaProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool IebetaProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["letters"]));
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "^([bB]|ab)"); 
            if ((result == false)) { 
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["beta"] = "true";
            this.IebetaProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.IebetaProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        } 

        protected virtual void IeupdateProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        protected virtual void IeupdateProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool IeupdateProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["extra"]));
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "; Update a;"); 
            if ((result == false)) { 
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["authenticodeupdate"] = "true";
            this.IeupdateProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.IeupdateProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        } 

        protected virtual void MozillaProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        protected virtual void MozillaProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool MozillaProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(browserCaps[string.Empty]));
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "Mozilla"); 
            if ((result == false)) { 
                return false;
            } 
            headerValue = ((string)(browserCaps[string.Empty]));
            result = regexWorker.ProcessRegex(headerValue, "MME|Opera");
            if ((result == true)) {
                return false; 
            }
            // Capture: header values 
            regexWorker.ProcessRegex(((string)(browserCaps[string.Empty])), "Mozilla/(?\'version\'(?\'major\'\\d+)(?\'minor\'\\.\\d+)\\w*)"); 
            regexWorker.ProcessRegex(((string)(browserCaps[string.Empty])), " (?\'screenWidth\'\\d*)x(?\'screenHeight\'\\d*)");
            // Capabilities: set capabilities 
            dictionary["browser"] = "Mozilla";
            dictionary["cookies"] = "false";
            dictionary["defaultScreenCharactersHeight"] = "40";
            dictionary["defaultScreenCharactersWidth"] = "80"; 
            dictionary["defaultScreenPixelsHeight"] = "480";
            dictionary["defaultScreenPixelsWidth"] = "640"; 
            dictionary["inputType"] = "keyboard"; 
            dictionary["isColor"] = "true";
            dictionary["isMobileDevice"] = "false"; 
            dictionary["majorversion"] = regexWorker["${major}"];
            dictionary["maximumRenderedPageSize"] = "300000";
            dictionary["minorversion"] = regexWorker["${minor}"];
            dictionary["screenBitDepth"] = "8"; 
            dictionary["screenPixelsHeight"] = regexWorker["${screenHeight}"];
            dictionary["screenPixelsWidth"] = regexWorker["${screenWidth}"]; 
            dictionary["supportsBold"] = "true"; 
            dictionary["supportsCss"] = "true";
            dictionary["supportsDivNoWrap"] = "true"; 
            dictionary["supportsFontName"] = "true";
            dictionary["supportsFontSize"] = "true";
            dictionary["supportsImageSubmit"] = "true";
            dictionary["supportsItalic"] = "true"; 
            dictionary["type"] = "Mozilla";
            dictionary["version"] = regexWorker["${version}"]; 
            browserCaps.AddBrowser("Mozilla"); 
            this.MozillaProcessGateways(headers, browserCaps);
            // gateway, parent=Mozilla 
            this.MozillabetaProcess(headers, browserCaps);
            // gateway, parent=Mozilla
            this.MozillagoldProcess(headers, browserCaps);
            bool ignoreApplicationBrowsers = true; 
            // browser, parent=Mozilla
            if (this.IeProcess(headers, browserCaps)) { 
            } 
            else {
                if (this.PowerbrowserProcess(headers, browserCaps)) { 
                }
                else {
                    if (this.GeckoProcess(headers, browserCaps)) {
                    } 
                    else {
                        if (this.AvantgoProcess(headers, browserCaps)) { 
                        } 
                        else {
                            if (this.GoamericaProcess(headers, browserCaps)) { 
                            }
                            else {
                                if (this.Netscape3Process(headers, browserCaps)) {
                                } 
                                else {
                                    if (this.Netscape4Process(headers, browserCaps)) { 
                                    } 
                                    else {
                                        if (this.MypalmProcess(headers, browserCaps)) { 
                                        }
                                        else {
                                            if (this.EudorawebProcess(headers, browserCaps)) {
                                            } 
                                            else {
                                                if (this.WinceProcess(headers, browserCaps)) { 
                                                } 
                                                else {
                                                    if (this.MspieProcess(headers, browserCaps)) { 
                                                    }
                                                    else {
                                                        ignoreApplicationBrowsers = false;
                                                    } 
                                                }
                                            } 
                                        } 
                                    }
                                } 
                            }
                        }
                    }
                } 
            }
            this.MozillaProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true; 
        }
 
        protected virtual void MozillabetaProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        protected virtual void MozillabetaProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool MozillabetaProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue;
            headerValue = ((string)(browserCaps[string.Empty]));
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "Mozilla/\\d+\\.\\d+b"); 
            if ((result == false)) {
                return false; 
            }
            // Capabilities: set capabilities
            dictionary["beta"] = "true";
            this.MozillabetaProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.MozillabetaProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true; 
        }
 
        protected virtual void MozillagoldProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        protected virtual void MozillagoldProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool MozillagoldProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue;
            headerValue = ((string)(browserCaps[string.Empty]));
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "Mozilla/\\d+\\.\\d+\\w*Gold"); 
            if ((result == false)) {
                return false; 
            }
            // Capabilities: set capabilities
            dictionary["gold"] = "true";
            this.MozillagoldProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.MozillagoldProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true; 
        }
 
        protected virtual void PowerbrowserProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        protected virtual void PowerbrowserProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool PowerbrowserProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue;
            headerValue = ((string)(browserCaps[string.Empty]));
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "^Mozilla/2\\.01 \\(Compatible\\) Oracle\\(tm\\) PowerBrowser\\(tm\\)/1\\.0a"); 
            if ((result == false)) {
                return false; 
            }
            // Capabilities: set capabilities
            dictionary["browser"] = "PowerBrowser";
            dictionary["cookies"] = "true"; 
            dictionary["ecmascriptversion"] = "1.0";
            dictionary["frames"] = "true"; 
            dictionary["javaapplets"] = "true"; 
            dictionary["javascript"] = "true";
            dictionary["majorversion"] = "1"; 
            dictionary["minorversion"] = ".5";
            dictionary["platform"] = "Win95";
            dictionary["tables"] = "true";
            dictionary["vbscript"] = "true"; 
            dictionary["version"] = "1.5";
            dictionary["type"] = "PowerBrowser1"; 
            browserCaps.Adapters["System.Web.UI.WebControls.Menu, System.Web, Version=2.0.0.0, Culture=neutral, Pub" + 
                "licKeyToken=b03f5f7f11d50a3a"] = "System.Web.UI.WebControls.Adapters.MenuAdapter";
            browserCaps.AddBrowser("PowerBrowser"); 
            this.PowerbrowserProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false;
            this.PowerbrowserProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }
 
        protected virtual void GeckoProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void GeckoProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        private bool GeckoProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification: 
            string headerValue;
            headerValue = ((string)(browserCaps[string.Empty])); 
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "Gecko"); 
            if ((result == false)) {
                return false; 
            } 
            // Capabilities: set capabilities
            dictionary["browser"] = "Mozilla"; 
            dictionary["css1"] = "true";
            dictionary["css2"] = "true";
            dictionary["cookies"] = "true";
            dictionary["ecmascriptversion"] = "1.5"; 
            dictionary["frames"] = "true";
            dictionary["isColor"] = "true"; 
            dictionary["javaapplets"] = "true"; 
            dictionary["javascript"] = "true";
            dictionary["maximumRenderedPageSize"] = "20000"; 
            dictionary["preferredImageMime"] = "image/jpeg";
            dictionary["screenBitDepth"] = "32";
            dictionary["supportsDivNoWrap"] = "false";
            dictionary["supportsFileUpload"] = "true"; 
            dictionary["tables"] = "true";
            dictionary["type"] = "desktop"; 
            dictionary["version"] = regexWorker["${version}"]; 
            dictionary["w3cdomversion"] = "1.0";
            browserCaps.AddBrowser("Gecko"); 
            this.GeckoProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = true;
            // browser, parent=Gecko
            if (this.MozillarvProcess(headers, browserCaps)) { 
            }
            else { 
                if (this.SafariProcess(headers, browserCaps)) { 
                }
                else { 
                    if (this.Netscape5Process(headers, browserCaps)) {
                    }
                    else {
                        ignoreApplicationBrowsers = false; 
                    }
                } 
            } 
            this.GeckoProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }

        protected virtual void MozillarvProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void MozillarvProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        } 

        private bool MozillarvProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification:
            string headerValue; 
            headerValue = ((string)(browserCaps[string.Empty]));
            bool result; 
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "rv\\:(?\'version\'(?\'major\'\\d+)(?\'minor\'\\.[.\\d]*))"); 
            if ((result == false)) {
                return false;
            }
            headerValue = ((string)(browserCaps[string.Empty])); 
            result = regexWorker.ProcessRegex(headerValue, "Netscape");
            if ((result == true)) { 
                return false; 
            }
            // Capabilities: set capabilities 
            dictionary["ecmascriptversion"] = "1.4";
            dictionary["majorversion"] = regexWorker["${major}"];
            dictionary["maximumRenderedPageSize"] = "300000";
            dictionary["minorversion"] = regexWorker["${minor}"]; 
            dictionary["preferredImageMime"] = "image/gif";
            dictionary["supportsCallback"] = "true"; 
            dictionary["supportsDivNoWrap"] = "false"; 
            dictionary["supportsMaintainScrollPositionOnPostback"] = "true";
            dictionary["tagwriter"] = "System.Web.UI.HtmlTextWriter"; 
            dictionary["type"] = regexWorker["Mozilla${major}"];
            dictionary["version"] = regexWorker["${version}"];
            dictionary["w3cdomversion"] = "1.0";
            browserCaps.AddBrowser("MozillaRV"); 
            this.MozillarvProcessGateways(headers, browserCaps);
            // gateway, parent=MozillaRV 
            this.Mozillav14plusProcess(headers, browserCaps); 
            bool ignoreApplicationBrowsers = true;
            // browser, parent=MozillaRV 
            if (this.MozillafirebirdProcess(headers, browserCaps)) {
            }
            else {
                if (this.MozillafirefoxProcess(headers, browserCaps)) { 
                }
                else { 
                    ignoreApplicationBrowsers = false; 
                }
            } 
            this.MozillarvProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        }
 
        protected virtual void Mozillav14plusProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        protected virtual void Mozillav14plusProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool Mozillav14plusProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["majorversion"])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "^1$");
            if ((result == false)) {
                return false; 
            }
            headerValue = ((string)(dictionary["minorversion"])); 
            result = regexWorker.ProcessRegex(headerValue, "^\\.[4-9]"); 
            if ((result == false)) {
                return false; 
            }
            // Capabilities: set capabilities
            dictionary["backgroundsounds"] = "true";
            dictionary["css1"] = "true"; 
            dictionary["css2"] = "true";
            dictionary["javaapplets"] = "true"; 
            dictionary["maximumRenderedPageSize"] = "2000000"; 
            dictionary["preferredImageMime"] = "image/jpeg";
            dictionary["screenBitDepth"] = "32"; 
            dictionary["supportsMultilineTextBoxDisplay"] = "true";
            dictionary["type"] = regexWorker["Mozilla${version}"];
            dictionary["xml"] = "true";
            this.Mozillav14plusProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.Mozillav14plusProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true; 
        }
 
        protected virtual void MozillafirebirdProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        protected virtual void MozillafirebirdProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool MozillafirebirdProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue;
            headerValue = ((string)(browserCaps[string.Empty]));
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "Gecko\\/\\d+ Firebird\\/(?\'version\'(?\'major\'\\d+)(?\'minor\'\\.[.\\d]*))"); 
            if ((result == false)) {
                return false; 
            }
            // Capabilities: set capabilities
            dictionary["browser"] = "Firebird";
            dictionary["majorversion"] = regexWorker["${major}"]; 
            dictionary["minorversion"] = regexWorker["${minor}"];
            dictionary["version"] = regexWorker["${version}"]; 
            dictionary["type"] = regexWorker["Firebird${version}"]; 
            browserCaps.AddBrowser("MozillaFirebird");
            this.MozillafirebirdProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.MozillafirebirdProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        } 

        protected virtual void MozillafirefoxProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        } 

        protected virtual void MozillafirefoxProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        private bool MozillafirefoxProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue; 
            headerValue = ((string)(browserCaps[string.Empty]));
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "Gecko\\/\\d+ Firefox\\/(?\'version\'(?\'major\'\\d+)(?\'minor\'\\.[.\\d]*))");
            if ((result == false)) { 
                return false;
            } 
            // Capabilities: set capabilities 
            dictionary["browser"] = "Firefox";
            dictionary["majorversion"] = regexWorker["${major}"]; 
            dictionary["minorversion"] = regexWorker["${minor}"];
            dictionary["version"] = regexWorker["${version}"];
            dictionary["type"] = regexWorker["Firefox${version}"];
            browserCaps.AddBrowser("MozillaFirefox"); 
            this.MozillafirefoxProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.MozillafirefoxProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 

        protected virtual void SafariProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        protected virtual void SafariProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        private bool SafariProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification:
            string headerValue;
            headerValue = ((string)(browserCaps[string.Empty])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "AppleWebKit/(?\'webversion\'\\d+)");
            if ((result == false)) { 
                return false;
            }
            // Capabilities: set capabilities
            dictionary["appleWebTechnologyVersion"] = regexWorker["${webversion}"]; 
            dictionary["backgroundsounds"] = "true";
            dictionary["browser"] = "AppleMAC-Safari"; 
            dictionary["css1"] = "true"; 
            dictionary["css2"] = "true";
            dictionary["ecmascriptversion"] = "0.0"; 
            dictionary["futureBrowser"] = "Apple Safari";
            dictionary["screenBitDepth"] = "24";
            dictionary["tables"] = "true";
            dictionary["tagwriter"] = "System.Web.UI.HtmlTextWriter"; 
            dictionary["type"] = "Desktop";
            browserCaps.Adapters["System.Web.UI.WebControls.Menu, System.Web, Version=2.0.0.0, Culture=neutral, Pub" + 
                "licKeyToken=b03f5f7f11d50a3a"] = "System.Web.UI.WebControls.Adapters.MenuAdapter"; 
            browserCaps.AddBrowser("Safari");
            this.SafariProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = true;
            // browser, parent=Safari
            if (this.Safari60Process(headers, browserCaps)) {
            } 
            else {
                if (this.Safari85Process(headers, browserCaps)) { 
                } 
                else {
                    if (this.Safari1plusProcess(headers, browserCaps)) { 
                    }
                    else {
                        ignoreApplicationBrowsers = false;
                    } 
                }
            } 
            this.SafariProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 

        protected virtual void Safari60ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        protected virtual void Safari60ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        private bool Safari60Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification:
            string headerValue;
            headerValue = ((string)(dictionary["appleWebTechnologyVersion"])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "60");
            if ((result == false)) { 
                return false;
            }
            // Capabilities: set capabilities
            dictionary["ecmascriptversion"] = "1.0"; 
            browserCaps.AddBrowser("Safari60");
            this.Safari60ProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false; 
            this.Safari60ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }

        protected virtual void Safari85ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void Safari85ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        } 

        private bool Safari85Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["appleWebTechnologyVersion"]));
            bool result; 
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "85"); 
            if ((result == false)) {
                return false;
            }
            // Capabilities: set capabilities 
            dictionary["ecmascriptversion"] = "1.4";
            browserCaps.AddBrowser("Safari85"); 
            this.Safari85ProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.Safari85ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        }

        protected virtual void Safari1plusProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void Safari1plusProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool Safari1plusProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["appleWebTechnologyVersion"])); 
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "\\d\\d\\d");
            if ((result == false)) {
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["ecmascriptversion"] = "1.4"; 
            dictionary["w3cdomversion"] = "1.0"; 
            dictionary["supportsCallback"] = "true";
            browserCaps.AddBrowser("Safari1Plus"); 
            this.Safari1plusProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false;
            this.Safari1plusProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }
 
        protected virtual void AvantgoProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void AvantgoProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        private bool AvantgoProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification: 
            string headerValue;
            headerValue = ((string)(browserCaps[string.Empty])); 
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "\\(compatible; AvantGo .*\\)"); 
            if ((result == false)) {
                return false; 
            } 
            // Capture: header values
            regexWorker.ProcessRegex(((string)(headers["X-AVANTGO-VERSION"])), "(?\'browserMajorVersion\'\\w*)(?\'browserMinorVersion\'\\.\\w*)"); 
            // Capabilities: set capabilities
            dictionary["browser"] = "AvantGo";
            dictionary["cachesAllResponsesWithExpires"] = "true";
            dictionary["canSendMail"] = "false"; 
            dictionary["cookies"] = "true";
            dictionary["defaultScreenCharactersHeight"] = "6"; 
            dictionary["defaultScreenCharactersWidth"] = "12"; 
            dictionary["defaultScreenPixelsHeight"] = "72";
            dictionary["defaultScreenPixelsWidth"] = "96"; 
            dictionary["inputType"] = "virtualKeyboard";
            dictionary["isColor"] = "false";
            dictionary["isMobileDevice"] = "true";
            dictionary["javascript"] = "false"; 
            dictionary["majorVersion"] = regexWorker["${browserMajorVersion}"];
            dictionary["maximumRenderedPageSize"] = "2560"; 
            dictionary["minorVersion"] = regexWorker["${browserMinorVersion}"]; 
            dictionary["preferredImageMime"] = "image/jpeg";
            dictionary["requiredMetaTagNameValue"] = "HandheldFriendly"; 
            dictionary["requiresAdaptiveErrorReporting"] = "true";
            dictionary["requiresLeadingPageBreak"] = "true";
            dictionary["requiresUniqueHtmlCheckboxNames"] = "true";
            dictionary["screenBitDepth"] = "1"; 
            dictionary["screenCharactersHeight"] = "13";
            dictionary["screenCharactersWidth"] = "30"; 
            dictionary["screenPixelsHeight"] = "150"; 
            dictionary["screenPixelsWidth"] = "150";
            dictionary["supportsBodyColor"] = "false"; 
            dictionary["supportsBold"] = "true";
            dictionary["supportsCss"] = "false";
            dictionary["supportsDivNoWrap"] = "false";
            dictionary["supportsFontColor"] = "false"; 
            dictionary["supportsFontName"] = "false";
            dictionary["supportsFontSize"] = "false"; 
            dictionary["supportsImageSubmit"] = "true"; 
            dictionary["supportsItalic"] = "false";
            dictionary["tables"] = "true"; 
            dictionary["type"] = regexWorker["AvantGo${browserMajorVersion}"];
            dictionary["version"] = regexWorker["${browserMajorVersion}${browserMinorVersion}"];
            browserCaps.HtmlTextWriter = "System.Web.UI.Html32TextWriter";
            browserCaps.AddBrowser("AvantGo"); 
            this.AvantgoProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = true; 
            // browser, parent=AvantGo 
            if (this.TmobilesidekickProcess(headers, browserCaps)) {
            } 
            else {
                ignoreApplicationBrowsers = false;
            }
            this.AvantgoProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 
 
        protected virtual void TmobilesidekickProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void TmobilesidekickProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        private bool TmobilesidekickProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(browserCaps[string.Empty]));
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "Danger hiptop");
            if ((result == false)) { 
                return false; 
            }
            // Capabilities: set capabilities 
            dictionary["canSendMail"] = "true";
            dictionary["css1"] = "true";
            dictionary["ecmaScriptVersion"] = "1.3";
            dictionary["frames"] = "true"; 
            dictionary["inputType"] = "telephoneKeypad";
            dictionary["javaapplets"] = "true"; 
            dictionary["majorVersion"] = "5"; 
            dictionary["maximumRenderedPageSize"] = "7000";
            dictionary["minorVersion"] = ".0"; 
            dictionary["mobileDeviceManufacturer"] = "T-Mobile";
            dictionary["mobileDeviceModel"] = "SideKick";
            dictionary["preferredRenderingType"] = "html32";
            dictionary["requiresLeadingPageBreak"] = "false"; 
            dictionary["requiresUniqueHtmlCheckboxNames"] = "false";
            dictionary["screenBitDepth"] = "24"; 
            dictionary["screenCharactersHeight"] = "11"; 
            dictionary["screenCharactersWidth"] = "57";
            dictionary["screenPixelsHeight"] = "136"; 
            dictionary["screenPixelsWidth"] = "236";
            dictionary["supportsCss"] = "true";
            dictionary["supportsItalic"] = "true";
            dictionary["type"] = "AvantGo 3"; 
            dictionary["version"] = "5.0";
            browserCaps.AddBrowser("TMobileSidekick"); 
            this.TmobilesidekickProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.TmobilesidekickProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        }

        protected virtual void CasiopeiaProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void CasiopeiaProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool CasiopeiaProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(browserCaps[string.Empty])); 
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "CASSIOPEIA BE");
            if ((result == false)) {
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["browser"] = "CASSIOPEIA"; 
            dictionary["cachesAllResponsesWithExpires"] = "true"; 
            dictionary["cookies"] = "true";
            dictionary["css1"] = "false"; 
            dictionary["defaultScreenCharactersHeight"] = "6";
            dictionary["defaultScreenCharactersWidth"] = "12";
            dictionary["defaultScreenPixelsHeight"] = "72";
            dictionary["defaultScreenPixelsWidth"] = "96"; 
            dictionary["ecmascriptversion"] = "1.3";
            dictionary["frames"] = "true"; 
            dictionary["hidesRightAlignedMultiselectScrollbars"] = "true"; 
            dictionary["inputType"] = "virtualKeyboard";
            dictionary["isMobileDevice"] = "true"; 
            dictionary["javaapplets"] = "true";
            dictionary["javascript"] = "true";
            dictionary["maximumRenderedPageSize"] = "300000";
            dictionary["mobileDeviceManufacturer"] = "Casio"; 
            dictionary["mobileDeviceModel"] = "Casio BE-500";
            dictionary["preferredImageMime"] = "image/gif"; 
            dictionary["requiresAdaptiveErrorReporting"] = "true"; 
            dictionary["requiresContentTypeMetaTag"] = "true";
            dictionary["requiresLeadingPageBreak"] = "true"; 
            dictionary["requiresNoBreakInFormatting"] = "true";
            dictionary["requiresUniqueFilePathSuffix"] = "true";
            dictionary["screenBitDepth"] = "24";
            dictionary["screenCharactersHeight"] = "50"; 
            dictionary["screenCharactersWidth"] = "38";
            dictionary["screenPixelsHeight"] = "320"; 
            dictionary["screenPixelsWidth"] = "240"; 
            dictionary["supportsBold"] = "true";
            dictionary["supportsCharacterEntityEncoding"] = "false"; 
            dictionary["supportsCss"] = "false";
            dictionary["supportsDivNoWrap"] = "true";
            dictionary["supportsFileUpload"] = "false";
            dictionary["supportsFontName"] = "true"; 
            dictionary["supportsFontSize"] = "true";
            dictionary["supportsImageSubmit"] = "false"; 
            dictionary["supportsItalic"] = "false"; 
            dictionary["tables"] = "true";
            dictionary["type"] = "CASSIOPEIA"; 
            browserCaps.HtmlTextWriter = "System.Web.UI.Html32TextWriter";
            browserCaps.AddBrowser("Casiopeia");
            this.CasiopeiaProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.CasiopeiaProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        } 

        protected virtual void DefaultProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        protected virtual void DefaultProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool DefaultProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Capabilities: set capabilities 
            dictionary["activexcontrols"] = "false";
            dictionary["ak"] = "false";
            dictionary["aol"] = "false";
            dictionary["authenticodeupdate"] = "false"; 
            dictionary["backgroundsounds"] = "false";
            dictionary["beta"] = "false"; 
            dictionary["browser"] = "Unknown"; 
            dictionary["cachesAllResponsesWithExpires"] = "false";
            dictionary["canCombineFormsInDeck"] = "true"; 
            dictionary["canInitiateVoiceCall"] = "false";
            dictionary["canRenderAfterInputOrSelectElement"] = "true";
            dictionary["canRenderEmptySelects"] = "true";
            dictionary["canRenderInputAndSelectElementsTogether"] = "true"; 
            dictionary["canRenderMixedSelects"] = "true";
            dictionary["canRenderOneventAndPrevElementsTogether"] = "true"; 
            dictionary["canRenderPostBackCards"] = "true"; 
            dictionary["canRenderSetvarZeroWithMultiSelectionList"] = "true";
            dictionary["canSendMail"] = "true"; 
            dictionary["cdf"] = "false";
            dictionary["cookies"] = "true";
            dictionary["crawler"] = "false";
            dictionary["css1"] = "false"; 
            dictionary["css2"] = "false";
            dictionary["defaultCharacterHeight"] = "12"; 
            dictionary["defaultCharacterWidth"] = "8"; 
            dictionary["defaultScreenCharactersHeight"] = "6";
            dictionary["defaultScreenCharactersWidth"] = "12"; 
            dictionary["defaultScreenPixelsHeight"] = "72";
            dictionary["defaultScreenPixelsWidth"] = "96";
            dictionary["defaultSubmitButtonLimit"] = "1";
            dictionary["ecmascriptversion"] = "0.0"; 
            dictionary["frames"] = "false";
            dictionary["gatewayMajorVersion"] = "0"; 
            dictionary["gatewayMinorVersion"] = "0"; 
            dictionary["gatewayVersion"] = "None";
            dictionary["gold"] = "false"; 
            dictionary["hasBackButton"] = "true";
            dictionary["hidesRightAlignedMultiselectScrollbars"] = "false";
            dictionary["inputType"] = "telephoneKeypad";
            dictionary["isColor"] = "false"; 
            dictionary["isMobileDevice"] = "false";
            dictionary["javaapplets"] = "false"; 
            dictionary["javascript"] = "false"; 
            dictionary["jscriptversion"] = "0.0";
            dictionary["majorversion"] = "0"; 
            dictionary["maximumHrefLength"] = "10000";
            dictionary["maximumRenderedPageSize"] = "2000";
            dictionary["maximumSoftkeyLabelLength"] = "5";
            dictionary["minorversion"] = "0"; 
            dictionary["mobileDeviceManufacturer"] = "Unknown";
            dictionary["mobileDeviceModel"] = "Unknown"; 
            dictionary["msdomversion"] = "0.0"; 
            dictionary["numberOfSoftkeys"] = "0";
            dictionary["platform"] = "Unknown"; 
            dictionary["preferredImageMime"] = "image/gif";
            dictionary["preferredRenderingMime"] = "text/html";
            dictionary["preferredRenderingType"] = "html32";
            dictionary["rendersBreakBeforeWmlSelectAndInput"] = "false"; 
            dictionary["rendersBreaksAfterHtmlLists"] = "true";
            dictionary["rendersBreaksAfterWmlAnchor"] = "false"; 
            dictionary["rendersBreaksAfterWmlInput"] = "false"; 
            dictionary["rendersWmlDoAcceptsInline"] = "true";
            dictionary["rendersWmlSelectsAsMenuCards"] = "false"; 
            dictionary["requiredMetaTagNameValue"] = "";
            dictionary["requiresAdaptiveErrorReporting"] = "false";
            dictionary["requiresAttributeColonSubstitution"] = "false";
            dictionary["requiresContentTypeMetaTag"] = "false"; 
            dictionary["requiresDBCSCharacter"] = "false";
            dictionary["requiresFullyQualifiedRedirectUrl"] = "false"; 
            dictionary["requiresHtmlAdaptiveErrorReporting"] = "false"; 
            dictionary["requiresLeadingPageBreak"] = "false";
            dictionary["requiresNoBreakInFormatting"] = "false"; 
            dictionary["requiresNoescapedPostUrl"] = "true";
            dictionary["requiresNoSoftkeyLabels"] = "false";
            dictionary["requiresOutputOptimization"] = "false";
            dictionary["requiresPhoneNumbersAsPlainText"] = "false"; 
            dictionary["requiresPostRedirectionHandling"] = "false";
            dictionary["requiresSpecialViewStateEncoding"] = "false"; 
            dictionary["requiresUniqueFilePathSuffix"] = "false"; 
            dictionary["requiresUniqueHtmlCheckboxNames"] = "false";
            dictionary["requiresUniqueHtmlInputNames"] = "false"; 
            dictionary["requiresUrlEncodedPostfieldValues"] = "false";
            dictionary["screenBitDepth"] = "1";
            dictionary["sk"] = "false";
            dictionary["supportsAccesskeyAttribute"] = "false"; 
            dictionary["supportsBodyColor"] = "true";
            dictionary["supportsBold"] = "false"; 
            dictionary["supportsCacheControlMetaTag"] = "true"; 
            dictionary["supportsCharacterEntityEncoding"] = "true";
            dictionary["supportsCss"] = "false"; 
            dictionary["supportsDivAlign"] = "true";
            dictionary["supportsDivNoWrap"] = "false";
            dictionary["supportsEmptyStringInCookieValue"] = "true";
            dictionary["supportsFileUpload"] = "false"; 
            dictionary["supportsFontColor"] = "true";
            dictionary["supportsFontName"] = "false"; 
            dictionary["supportsFontSize"] = "false"; 
            dictionary["supportsImageSubmit"] = "false";
            dictionary["supportsIModeSymbols"] = "false"; 
            dictionary["supportsInputIStyle"] = "false";
            dictionary["supportsInputMode"] = "false";
            dictionary["supportsItalic"] = "false";
            dictionary["supportsJPhoneMultiMediaAttributes"] = "false"; 
            dictionary["supportsJPhoneSymbols"] = "false";
            dictionary["supportsMaintainScrollPositionOnPostback"] = "false"; 
            dictionary["supportsMultilineTextBoxDisplay"] = "false"; 
            dictionary["supportsQueryStringInFormAction"] = "true";
            dictionary["supportsRedirectWithCookie"] = "true"; 
            dictionary["supportsSelectMultiple"] = "true";
            dictionary["supportsUncheck"] = "true";
            dictionary["supportsVCard"] = "false";
            dictionary["tables"] = "false"; 
            dictionary["tagwriter"] = "System.Web.UI.Html32TextWriter";
            dictionary["type"] = "Unknown"; 
            dictionary["vbscript"] = "false"; 
            dictionary["version"] = "0.0";
            dictionary["w3cdomversion"] = "0.0"; 
            dictionary["win16"] = "false";
            dictionary["win32"] = "false";
            dictionary["xml"] = "false";
            browserCaps.AddBrowser("Default"); 
            this.DefaultProcessGateways(headers, browserCaps);
            // gateway, parent=Default 
            this.NokiagatewayProcess(headers, browserCaps); 
            // gateway, parent=Default
            this.UpgatewayProcess(headers, browserCaps); 
            // gateway, parent=Default
            this.CrawlerProcess(headers, browserCaps);
            // gateway, parent=Default
            this.ColorProcess(headers, browserCaps); 
            // gateway, parent=Default
            this.MonoProcess(headers, browserCaps); 
            // gateway, parent=Default 
            this.PixelsProcess(headers, browserCaps);
            // gateway, parent=Default 
            this.VoiceProcess(headers, browserCaps);
            // gateway, parent=Default
            this.CharsetProcess(headers, browserCaps);
            // gateway, parent=Default 
            this.PlatformProcess(headers, browserCaps);
            // gateway, parent=Default 
            this.WinProcess(headers, browserCaps); 
            bool ignoreApplicationBrowsers = true;
            // browser, parent=Default 
            if (this.MozillaProcess(headers, browserCaps)) {
            }
            else {
                if (this.DocomoProcess(headers, browserCaps)) { 
                }
                else { 
                    if (this.Ericssonr380Process(headers, browserCaps)) { 
                    }
                    else { 
                        if (this.EricssonProcess(headers, browserCaps)) {
                        }
                        else {
                            if (this.EzwapProcess(headers, browserCaps)) { 
                            }
                            else { 
                                if (this.GenericdownlevelProcess(headers, browserCaps)) { 
                                }
                                else { 
                                    if (this.JataayuProcess(headers, browserCaps)) {
                                    }
                                    else {
                                        if (this.JphoneProcess(headers, browserCaps)) { 
                                        }
                                        else { 
                                            if (this.LegendProcess(headers, browserCaps)) { 
                                            }
                                            else { 
                                                if (this.MmeProcess(headers, browserCaps)) {
                                                }
                                                else {
                                                    if (this.NokiaProcess(headers, browserCaps)) { 
                                                    }
                                                    else { 
                                                        if (this.NokiamobilebrowserrainbowProcess(headers, browserCaps)) { 
                                                        }
                                                        else { 
                                                            if (this.Nokiaepoc32wtlProcess(headers, browserCaps)) {
                                                            }
                                                            else {
                                                                if (this.UpProcess(headers, browserCaps)) { 
                                                                }
                                                                else { 
                                                                    if (this.OperaProcess(headers, browserCaps)) { 
                                                                    }
                                                                    else { 
                                                                        if (this.PalmscapeProcess(headers, browserCaps)) {
                                                                        }
                                                                        else {
                                                                            if (this.AuspalmProcess(headers, browserCaps)) { 
                                                                            }
                                                                            else { 
                                                                                if (this.SharppdaProcess(headers, browserCaps)) { 
                                                                                }
                                                                                else { 
                                                                                    if (this.PanasonicProcess(headers, browserCaps)) {
                                                                                    }
                                                                                    else {
                                                                                        if (this.Mspie06Process(headers, browserCaps)) { 
                                                                                        }
                                                                                        else { 
                                                                                            if (this.SktdevicesProcess(headers, browserCaps)) { 
                                                                                            }
                                                                                            else { 
                                                                                                if (this.WinwapProcess(headers, browserCaps)) {
                                                                                                }
                                                                                                else {
                                                                                                    if (this.XiinoProcess(headers, browserCaps)) { 
                                                                                                    }
                                                                                                    else { 
                                                                                                        ignoreApplicationBrowsers = false; 
                                                                                                    }
                                                                                                } 
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                } 
                                                                            }
                                                                        } 
                                                                    } 
                                                                }
                                                            } 
                                                        }
                                                    }
                                                }
                                            } 
                                        }
                                    } 
                                } 
                            }
                        } 
                    }
                }
            }
            this.DefaultProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 
 
        protected virtual void DocomoProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void DocomoProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        private bool DocomoProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(browserCaps[string.Empty]));
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "^DoCoMo/");
            if ((result == false)) { 
                return false; 
            }
            // Capture: header values 
            regexWorker.ProcessRegex(((string)(browserCaps[string.Empty])), "^DoCoMo/(?\'httpVersion\'[^/ ]*)[/ ](?\'deviceID\'[^/\\x28]*)");
            // Capabilities: set capabilities
            dictionary["browser"] = "i-mode";
            dictionary["canInitiateVoiceCall"] = "true"; 
            dictionary["cookies"] = "false";
            dictionary["defaultScreenCharactersHeight"] = "6"; 
            dictionary["defaultScreenCharactersWidth"] = "16"; 
            dictionary["defaultScreenPixelsHeight"] = "70";
            dictionary["defaultScreenPixelsWidth"] = "90"; 
            dictionary["deviceID"] = regexWorker["${deviceID}"];
            dictionary["inputType"] = "telephoneKeypad";
            dictionary["isColor"] = "false";
            dictionary["isMobileDevice"] = "true"; 
            dictionary["javaapplets"] = "false";
            dictionary["javascript"] = "false"; 
            dictionary["maximumHrefLength"] = "524"; 
            dictionary["maximumRenderedPageSize"] = "5120";
            dictionary["mobileDeviceModel"] = regexWorker["${deviceID}"]; 
            dictionary["optimumPageWeight"] = "700";
            dictionary["preferredRenderingType"] = "chtml10";
            dictionary["preferredRequestEncoding"] = "shift_jis";
            dictionary["preferredResponseEncoding"] = "shift_jis"; 
            dictionary["requiresAdaptiveErrorReporting"] = "true";
            dictionary["requiresFullyQualifiedRedirectUrl"] = "true"; 
            dictionary["requiresHtmlAdaptiveErrorReporting"] = "true"; 
            dictionary["requiresOutputOptimization"] = "true";
            dictionary["screenBitDepth"] = "1"; 
            dictionary["supportsAccesskeyAttribute"] = "true";
            dictionary["supportsCharacterEntityEncoding"] = "false";
            dictionary["supportsEmptyStringInCookieValue"] = "false";
            dictionary["supportsIModeSymbols"] = "true"; 
            dictionary["supportsInputIStyle"] = "true";
            dictionary["supportsRedirectWithCookie"] = "false"; 
            dictionary["tables"] = "false"; 
            dictionary["type"] = "i-mode";
            dictionary["vbscript"] = "false"; 
            browserCaps.HtmlTextWriter = "System.Web.UI.ChtmlTextWriter";
            browserCaps.AddBrowser("Docomo");
            this.DocomoProcessGateways(headers, browserCaps);
            // gateway, parent=Docomo 
            this.DocomorenderingsizeProcess(headers, browserCaps);
            // gateway, parent=Docomo 
            this.DocomodefaultrenderingsizeProcess(headers, browserCaps); 
            bool ignoreApplicationBrowsers = true;
            // browser, parent=Docomo 
            if (this.Docomosh251iProcess(headers, browserCaps)) {
            }
            else {
                if (this.Docomon251iProcess(headers, browserCaps)) { 
                }
                else { 
                    if (this.Docomop211iProcess(headers, browserCaps)) { 
                    }
                    else { 
                        if (this.Docomof212iProcess(headers, browserCaps)) {
                        }
                        else {
                            if (this.Docomod501iProcess(headers, browserCaps)) { 
                            }
                            else { 
                                if (this.Docomof501iProcess(headers, browserCaps)) { 
                                }
                                else { 
                                    if (this.Docomon501iProcess(headers, browserCaps)) {
                                    }
                                    else {
                                        if (this.Docomop501iProcess(headers, browserCaps)) { 
                                        }
                                        else { 
                                            if (this.Docomod502iProcess(headers, browserCaps)) { 
                                            }
                                            else { 
                                                if (this.Docomof502iProcess(headers, browserCaps)) {
                                                }
                                                else {
                                                    if (this.Docomon502iProcess(headers, browserCaps)) { 
                                                    }
                                                    else { 
                                                        if (this.Docomop502iProcess(headers, browserCaps)) { 
                                                        }
                                                        else { 
                                                            if (this.Docomonm502iProcess(headers, browserCaps)) {
                                                            }
                                                            else {
                                                                if (this.Docomoso502iProcess(headers, browserCaps)) { 
                                                                }
                                                                else { 
                                                                    if (this.Docomof502itProcess(headers, browserCaps)) { 
                                                                    }
                                                                    else { 
                                                                        if (this.Docomon502itProcess(headers, browserCaps)) {
                                                                        }
                                                                        else {
                                                                            if (this.Docomoso502iwmProcess(headers, browserCaps)) { 
                                                                            }
                                                                            else { 
                                                                                if (this.Docomof504iProcess(headers, browserCaps)) { 
                                                                                }
                                                                                else { 
                                                                                    if (this.Docomon504iProcess(headers, browserCaps)) {
                                                                                    }
                                                                                    else {
                                                                                        if (this.Docomop504iProcess(headers, browserCaps)) { 
                                                                                        }
                                                                                        else { 
                                                                                            if (this.Docomon821iProcess(headers, browserCaps)) { 
                                                                                            }
                                                                                            else { 
                                                                                                if (this.Docomop821iProcess(headers, browserCaps)) {
                                                                                                }
                                                                                                else {
                                                                                                    if (this.Docomod209iProcess(headers, browserCaps)) { 
                                                                                                    }
                                                                                                    else { 
                                                                                                        if (this.Docomoer209iProcess(headers, browserCaps)) { 
                                                                                                        }
                                                                                                        else { 
                                                                                                            if (this.Docomof209iProcess(headers, browserCaps)) {
                                                                                                            }
                                                                                                            else {
                                                                                                                if (this.Docomoko209iProcess(headers, browserCaps)) { 
                                                                                                                }
                                                                                                                else { 
                                                                                                                    if (this.Docomon209iProcess(headers, browserCaps)) { 
                                                                                                                    }
                                                                                                                    else { 
                                                                                                                        if (this.Docomop209iProcess(headers, browserCaps)) {
                                                                                                                        }
                                                                                                                        else {
                                                                                                                            if (this.Docomop209isProcess(headers, browserCaps)) { 
                                                                                                                            }
                                                                                                                            else { 
                                                                                                                                if (this.Docomor209iProcess(headers, browserCaps)) { 
                                                                                                                                }
                                                                                                                                else { 
                                                                                                                                    if (this.Docomor691iProcess(headers, browserCaps)) {
                                                                                                                                    }
                                                                                                                                    else {
                                                                                                                                        if (this.Docomof503iProcess(headers, browserCaps)) { 
                                                                                                                                        }
                                                                                                                                        else { 
                                                                                                                                            if (this.Docomof503isProcess(headers, browserCaps)) { 
                                                                                                                                            }
                                                                                                                                            else { 
                                                                                                                                                if (this.Docomod503iProcess(headers, browserCaps)) {
                                                                                                                                                }
                                                                                                                                                else {
                                                                                                                                                    if (this.Docomod503isProcess(headers, browserCaps)) { 
                                                                                                                                                    }
                                                                                                                                                    else { 
                                                                                                                                                        if (this.Docomod210iProcess(headers, browserCaps)) { 
                                                                                                                                                        }
                                                                                                                                                        else { 
                                                                                                                                                            if (this.Docomof210iProcess(headers, browserCaps)) {
                                                                                                                                                            }
                                                                                                                                                            else {
                                                                                                                                                                if (this.Docomon210iProcess(headers, browserCaps)) { 
                                                                                                                                                                }
                                                                                                                                                                else { 
                                                                                                                                                                    if (this.Docomon2001Process(headers, browserCaps)) { 
                                                                                                                                                                    }
                                                                                                                                                                    else { 
                                                                                                                                                                        if (this.Docomod211iProcess(headers, browserCaps)) {
                                                                                                                                                                        }
                                                                                                                                                                        else {
                                                                                                                                                                            if (this.Docomon211iProcess(headers, browserCaps)) { 
                                                                                                                                                                            }
                                                                                                                                                                            else { 
                                                                                                                                                                                if (this.Docomop210iProcess(headers, browserCaps)) { 
                                                                                                                                                                                }
                                                                                                                                                                                else { 
                                                                                                                                                                                    if (this.Docomoko210iProcess(headers, browserCaps)) {
                                                                                                                                                                                    }
                                                                                                                                                                                    else {
                                                                                                                                                                                        if (this.Docomop2101vProcess(headers, browserCaps)) { 
                                                                                                                                                                                        }
                                                                                                                                                                                        else { 
                                                                                                                                                                                            if (this.Docomop2102vProcess(headers, browserCaps)) { 
                                                                                                                                                                                            }
                                                                                                                                                                                            else { 
                                                                                                                                                                                                if (this.Docomof211iProcess(headers, browserCaps)) {
                                                                                                                                                                                                }
                                                                                                                                                                                                else {
                                                                                                                                                                                                    if (this.Docomof671iProcess(headers, browserCaps)) { 
                                                                                                                                                                                                    }
                                                                                                                                                                                                    else { 
                                                                                                                                                                                                        if (this.Docomon503isProcess(headers, browserCaps)) { 
                                                                                                                                                                                                        }
                                                                                                                                                                                                        else { 
                                                                                                                                                                                                            if (this.Docomon503iProcess(headers, browserCaps)) {
                                                                                                                                                                                                            }
                                                                                                                                                                                                            else {
                                                                                                                                                                                                                if (this.Docomoso503iProcess(headers, browserCaps)) { 
                                                                                                                                                                                                                }
                                                                                                                                                                                                                else { 
                                                                                                                                                                                                                    if (this.Docomop503isProcess(headers, browserCaps)) { 
                                                                                                                                                                                                                    }
                                                                                                                                                                                                                    else { 
                                                                                                                                                                                                                        if (this.Docomop503iProcess(headers, browserCaps)) {
                                                                                                                                                                                                                        }
                                                                                                                                                                                                                        else {
                                                                                                                                                                                                                            if (this.Docomoso210iProcess(headers, browserCaps)) { 
                                                                                                                                                                                                                            }
                                                                                                                                                                                                                            else { 
                                                                                                                                                                                                                                if (this.Docomoso503isProcess(headers, browserCaps)) { 
                                                                                                                                                                                                                                }
                                                                                                                                                                                                                                else { 
                                                                                                                                                                                                                                    if (this.Docomosh821iProcess(headers, browserCaps)) {
                                                                                                                                                                                                                                    }
                                                                                                                                                                                                                                    else {
                                                                                                                                                                                                                                        if (this.Docomon2002Process(headers, browserCaps)) { 
                                                                                                                                                                                                                                        }
                                                                                                                                                                                                                                        else { 
                                                                                                                                                                                                                                            if (this.Docomoso505iProcess(headers, browserCaps)) { 
                                                                                                                                                                                                                                            }
                                                                                                                                                                                                                                            else { 
                                                                                                                                                                                                                                                if (this.Docomop505iProcess(headers, browserCaps)) {
                                                                                                                                                                                                                                                }
                                                                                                                                                                                                                                                else {
                                                                                                                                                                                                                                                    if (this.Docomon505iProcess(headers, browserCaps)) { 
                                                                                                                                                                                                                                                    }
                                                                                                                                                                                                                                                    else { 
                                                                                                                                                                                                                                                        if (this.Docomod505iProcess(headers, browserCaps)) { 
                                                                                                                                                                                                                                                        }
                                                                                                                                                                                                                                                        else { 
                                                                                                                                                                                                                                                            if (this.Docomoisim60Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                            }
                                                                                                                                                                                                                                                            else {
                                                                                                                                                                                                                                                                ignoreApplicationBrowsers = false; 
                                                                                                                                                                                                                                                            }
                                                                                                                                                                                                                                                        } 
                                                                                                                                                                                                                                                    } 
                                                                                                                                                                                                                                                }
                                                                                                                                                                                                                                            } 
                                                                                                                                                                                                                                        }
                                                                                                                                                                                                                                    }
                                                                                                                                                                                                                                }
                                                                                                                                                                                                                            } 
                                                                                                                                                                                                                        }
                                                                                                                                                                                                                    } 
                                                                                                                                                                                                                } 
                                                                                                                                                                                                            }
                                                                                                                                                                                                        } 
                                                                                                                                                                                                    }
                                                                                                                                                                                                }
                                                                                                                                                                                            }
                                                                                                                                                                                        } 
                                                                                                                                                                                    }
                                                                                                                                                                                } 
                                                                                                                                                                            } 
                                                                                                                                                                        }
                                                                                                                                                                    } 
                                                                                                                                                                }
                                                                                                                                                            }
                                                                                                                                                        }
                                                                                                                                                    } 
                                                                                                                                                }
                                                                                                                                            } 
                                                                                                                                        } 
                                                                                                                                    }
                                                                                                                                } 
                                                                                                                            }
                                                                                                                        }
                                                                                                                    }
                                                                                                                } 
                                                                                                            }
                                                                                                        } 
                                                                                                    } 
                                                                                                }
                                                                                            } 
                                                                                        }
                                                                                    }
                                                                                }
                                                                            } 
                                                                        }
                                                                    } 
                                                                } 
                                                            }
                                                        } 
                                                    }
                                                }
                                            }
                                        } 
                                    }
                                } 
                            } 
                        }
                    } 
                }
            }
            this.DocomoProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }
 
        protected virtual void DocomorenderingsizeProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void DocomorenderingsizeProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        private bool DocomorenderingsizeProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification: 
            string headerValue;
            headerValue = ((string)(browserCaps[string.Empty])); 
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "^DoCoMo/([^/ ]*)[/ ]([^/\\x28]*)([/\\x28]c(?\'cacheSize\'\\d+))"); 
            if ((result == false)) {
                return false; 
            } 
            // Identification:
            headerValue = ((string)(dictionary["maximumRenderedPageSize"])); 
            result = regexWorker.ProcessRegex(headerValue, "^5120$");
            if ((result == false)) {
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["maximumRenderedPageSize"] = regexWorker["${cacheSize}000"]; 
            this.DocomorenderingsizeProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.DocomorenderingsizeProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        }

        protected virtual void DocomodefaultrenderingsizeProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void DocomodefaultrenderingsizeProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool DocomodefaultrenderingsizeProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["maximumRenderedPageSize"])); 
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "^(0|00|000)$");
            if ((result == false)) {
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["maximumRenderedPageSize"] = "800"; 
            this.DocomodefaultrenderingsizeProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.DocomodefaultrenderingsizeProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        }

        protected virtual void Docomosh251iProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void Docomosh251iProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool Docomosh251iProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"])); 
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "SH251i");
            if ((result == false)) {
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["isColor"] = "true"; 
            dictionary["mobileDeviceManufacturer"] = "Sharp"; 
            dictionary["requiresHtmlAdaptiveErrorReporting"] = "false";
            dictionary["requiresLeadingPageBreak"] = "true"; 
            dictionary["screenBitDepth"] = "16";
            dictionary["screenCharactersHeight"] = "10";
            dictionary["screenCharactersWidth"] = "20";
            dictionary["screenPixelsHeight"] = "130"; 
            dictionary["screenPixelsWidth"] = "120";
            dictionary["supportsRedirectWithCookie"] = "false"; 
            browserCaps.AddBrowser("DocomoSH251i"); 
            this.Docomosh251iProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = true; 
            // browser, parent=DocomoSH251i
            if (this.Docomosh251isProcess(headers, browserCaps)) {
            }
            else { 
                ignoreApplicationBrowsers = false;
            } 
            this.Docomosh251iProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 

        protected virtual void Docomosh251isProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        protected virtual void Docomosh251isProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        private bool Docomosh251isProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification:
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "SH251iS");
            if ((result == false)) { 
                return false;
            }
            // Capabilities: set capabilities
            dictionary["requiresLeadingPageBreak"] = "false"; 
            dictionary["screenCharactersHeight"] = "11";
            dictionary["screenCharactersWidth"] = "22"; 
            dictionary["screenPixelsHeight"] = "220"; 
            dictionary["screenPixelsWidth"] = "176";
            browserCaps.AddBrowser("DocomoSH251iS"); 
            this.Docomosh251isProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false;
            this.Docomosh251isProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }
 
        protected virtual void Docomon251iProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void Docomon251iProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        private bool Docomon251iProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"])); 
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "N251i"); 
            if ((result == false)) {
                return false; 
            } 
            // Capabilities: set capabilities
            dictionary["mobileDeviceManufacturer"] = "NEC"; 
            dictionary["ExchangeOmaSupported"] = "true";
            dictionary["isColor"] = "true";
            dictionary["requiresHtmlAdaptiveErrorReporting"] = "false";
            dictionary["screenBitDepth"] = "16"; 
            dictionary["screenCharactersHeight"] = "10";
            dictionary["screenCharactersWidth"] = "22"; 
            dictionary["screenPixelsHeight"] = "140"; 
            dictionary["screenPixelsWidth"] = "132";
            dictionary["supportsRedirectWithCookie"] = "false"; 
            browserCaps.AddBrowser("DocomoN251i");
            this.Docomon251iProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = true;
            // browser, parent=DocomoN251i 
            if (this.Docomon251isProcess(headers, browserCaps)) {
            } 
            else { 
                ignoreApplicationBrowsers = false;
            } 
            this.Docomon251iProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        }
 
        protected virtual void Docomon251isProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        protected virtual void Docomon251isProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool Docomon251isProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["deviceID"])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "N251iS");
            if ((result == false)) {
                return false; 
            }
            // Capabilities: set capabilities 
            browserCaps.AddBrowser("DocomoN251iS"); 
            this.Docomon251isProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Docomon251isProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        }
 
        protected virtual void Docomop211iProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        protected virtual void Docomop211iProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool Docomop211iProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["deviceID"])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "P211i");
            if ((result == false)) {
                return false; 
            }
            // Capabilities: set capabilities 
            dictionary["isColor"] = "true"; 
            dictionary["MobileDeviceManufacturer"] = "Panasonic";
            dictionary["requiresHtmlAdaptiveErrorReporting"] = "false"; 
            dictionary["screenBitDepth"] = "16";
            dictionary["screenCharactersHeight"] = "8";
            dictionary["screenCharactersWidth"] = "20";
            dictionary["screenPixelsHeight"] = "130"; 
            dictionary["screenPixelsWidth"] = "120";
            dictionary["supportsImageSubmit"] = "true"; 
            dictionary["supportsRedirectWithCookie"] = "false"; 
            browserCaps.AddBrowser("DocomoP211i");
            this.Docomop211iProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.Docomop211iProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        } 

        protected virtual void Docomof212iProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        } 

        protected virtual void Docomof212iProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        private bool Docomof212iProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue; 
            headerValue = ((string)(dictionary["deviceID"]));
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "F212i");
            if ((result == false)) { 
                return false;
            } 
            // Capabilities: set capabilities 
            dictionary["ExchangeOmaSupported"] = "true";
            dictionary["isColor"] = "true"; 
            dictionary["mobileDeviceManufacturer"] = "Fujitsu";
            dictionary["requiresHtmlAdaptiveErrorReporting"] = "false";
            dictionary["screenBitDepth"] = "16";
            dictionary["screenCharactersHeight"] = "8"; 
            dictionary["screenPixelsHeight"] = "136";
            dictionary["screenPixelsWidth"] = "132"; 
            dictionary["supportsRedirectWithCookie"] = "false"; 
            browserCaps.AddBrowser("DocomoF212i");
            this.Docomof212iProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.Docomof212iProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        } 

        protected virtual void Docomod501iProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        } 

        protected virtual void Docomod501iProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        private bool Docomod501iProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue; 
            headerValue = ((string)(dictionary["deviceID"]));
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "D501i");
            if ((result == false)) { 
                return false;
            } 
            // Capabilities: set capabilities 
            dictionary["isColor"] = "false";
            dictionary["mobileDeviceManufacturer"] = "Mitsubishi"; 
            dictionary["screenBitDepth"] = "1";
            dictionary["screenCharactersHeight"] = "6";
            dictionary["screenCharactersWidth"] = "16";
            dictionary["screenPixelsHeight"] = "72"; 
            dictionary["screenPixelsWidth"] = "96";
            browserCaps.AddBrowser("DocomoD501i"); 
            this.Docomod501iProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.Docomod501iProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        }

        protected virtual void Docomof501iProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void Docomof501iProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool Docomof501iProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"])); 
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "F501i");
            if ((result == false)) {
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["isColor"] = "false"; 
            dictionary["mobileDeviceManufacturer"] = "Fujitsu"; 
            dictionary["screenBitDepth"] = "1";
            dictionary["screenCharactersHeight"] = "6"; 
            dictionary["screenCharactersWidth"] = "16";
            dictionary["screenPixelsHeight"] = "84";
            dictionary["screenPixelsWidth"] = "112";
            browserCaps.AddBrowser("DocomoF501i"); 
            this.Docomof501iProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Docomof501iProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 

        protected virtual void Docomon501iProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        protected virtual void Docomon501iProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        private bool Docomon501iProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification:
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "N501i");
            if ((result == false)) { 
                return false;
            }
            // Capabilities: set capabilities
            dictionary["isColor"] = "false"; 
            dictionary["mobileDeviceManufacturer"] = "NEC";
            dictionary["screenBitDepth"] = "1"; 
            dictionary["screenCharactersHeight"] = "10"; 
            dictionary["screenCharactersWidth"] = "20";
            dictionary["screenPixelsHeight"] = "128"; 
            dictionary["screenPixelsWidth"] = "118";
            browserCaps.AddBrowser("DocomoN501i");
            this.Docomon501iProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Docomon501iProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        } 

        protected virtual void Docomop501iProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        protected virtual void Docomop501iProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool Docomop501iProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"]));
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "P501i"); 
            if ((result == false)) { 
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["isColor"] = "false";
            dictionary["mobileDeviceManufacturer"] = "Panasonic";
            dictionary["screenBitDepth"] = "1"; 
            dictionary["screenCharactersHeight"] = "8";
            dictionary["screenCharactersWidth"] = "16"; 
            dictionary["screenPixelsHeight"] = "120"; 
            dictionary["screenPixelsWidth"] = "96";
            browserCaps.AddBrowser("DocomoP501i"); 
            this.Docomop501iProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false;
            this.Docomop501iProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }
 
        protected virtual void Docomod502iProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void Docomod502iProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        private bool Docomod502iProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"])); 
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "D502i"); 
            if ((result == false)) {
                return false; 
            } 
            // Capabilities: set capabilities
            dictionary["isColor"] = "true"; 
            dictionary["mobileDeviceManufacturer"] = "Mitsubishi";
            dictionary["screenBitDepth"] = "8";
            dictionary["screenCharactersHeight"] = "7";
            dictionary["screenCharactersWidth"] = "16"; 
            dictionary["screenPixelsHeight"] = "90";
            dictionary["screenPixelsWidth"] = "96"; 
            browserCaps.AddBrowser("DocomoD502i"); 
            this.Docomod502iProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Docomod502iProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        }
 
        protected virtual void Docomof502iProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        protected virtual void Docomof502iProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool Docomof502iProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["deviceID"])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "F502i$");
            if ((result == false)) {
                return false; 
            }
            // Capabilities: set capabilities 
            dictionary["isColor"] = "true"; 
            dictionary["mobileDeviceManufacturer"] = "Fujitsu";
            dictionary["screenBitDepth"] = "8"; 
            dictionary["screenCharactersHeight"] = "7";
            dictionary["screenCharactersWidth"] = "16";
            dictionary["screenPixelsHeight"] = "91";
            dictionary["screenPixelsWidth"] = "96"; 
            browserCaps.AddBrowser("DocomoF502i");
            this.Docomof502iProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false; 
            this.Docomof502iProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }

        protected virtual void Docomon502iProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void Docomon502iProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        } 

        private bool Docomon502iProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["deviceID"]));
            bool result; 
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "N502i$"); 
            if ((result == false)) {
                return false;
            }
            // Capabilities: set capabilities 
            dictionary["isColor"] = "false";
            dictionary["mobileDeviceManufacturer"] = "NEC"; 
            dictionary["screenBitDepth"] = "2"; 
            dictionary["screenCharactersHeight"] = "10";
            dictionary["screenCharactersWidth"] = "20"; 
            dictionary["screenPixelsHeight"] = "128";
            dictionary["screenPixelsWidth"] = "118";
            browserCaps.AddBrowser("DocomoN502i");
            this.Docomon502iProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.Docomon502iProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true; 
        }
 
        protected virtual void Docomop502iProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        protected virtual void Docomop502iProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool Docomop502iProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"]));
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "P502i"); 
            if ((result == false)) {
                return false; 
            }
            // Capabilities: set capabilities
            dictionary["canRenderEmptySelects"] = "false";
            dictionary["isColor"] = "false"; 
            dictionary["mobileDeviceManufacturer"] = "Panasonic";
            dictionary["screenBitDepth"] = "2"; 
            dictionary["screenCharactersHeight"] = "8"; 
            dictionary["screenCharactersWidth"] = "16";
            dictionary["screenPixelsHeight"] = "117"; 
            dictionary["screenPixelsWidth"] = "96";
            browserCaps.AddBrowser("DocomoP502i");
            this.Docomop502iProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Docomop502iProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        } 

        protected virtual void Docomonm502iProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        protected virtual void Docomonm502iProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool Docomonm502iProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"]));
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "NM502i"); 
            if ((result == false)) { 
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["isColor"] = "false";
            dictionary["mobileDeviceManufacturer"] = "Nokia";
            dictionary["screenBitDepth"] = "1"; 
            dictionary["screenCharactersHeight"] = "6";
            dictionary["screenCharactersWidth"] = "16"; 
            dictionary["screenPixelsHeight"] = "106"; 
            dictionary["screenPixelsWidth"] = "111";
            browserCaps.AddBrowser("DocomoNm502i"); 
            this.Docomonm502iProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false;
            this.Docomonm502iProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }
 
        protected virtual void Docomoso502iProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void Docomoso502iProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        private bool Docomoso502iProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"])); 
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "SO502i$"); 
            if ((result == false)) {
                return false; 
            } 
            // Capabilities: set capabilities
            dictionary["isColor"] = "false"; 
            dictionary["mobileDeviceManufacturer"] = "Sony";
            dictionary["screenBitDepth"] = "2";
            dictionary["screenCharactersHeight"] = "8";
            dictionary["screenCharactersWidth"] = "16"; 
            dictionary["screenPixelsHeight"] = "120";
            dictionary["screenPixelsWidth"] = "120"; 
            browserCaps.AddBrowser("DocomoSo502i"); 
            this.Docomoso502iProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Docomoso502iProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        }
 
        protected virtual void Docomof502itProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        protected virtual void Docomof502itProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool Docomof502itProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["deviceID"])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "F502it");
            if ((result == false)) {
                return false; 
            }
            // Capabilities: set capabilities 
            dictionary["isColor"] = "true"; 
            dictionary["mobileDeviceManufacturer"] = "Fujitsu";
            dictionary["screenBitDepth"] = "8"; 
            dictionary["screenCharactersHeight"] = "7";
            dictionary["screenCharactersWidth"] = "16";
            dictionary["screenPixelsHeight"] = "91";
            dictionary["screenPixelsWidth"] = "96"; 
            browserCaps.AddBrowser("DocomoF502it");
            this.Docomof502itProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false; 
            this.Docomof502itProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }

        protected virtual void Docomon502itProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void Docomon502itProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        } 

        private bool Docomon502itProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["deviceID"]));
            bool result; 
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "N502it"); 
            if ((result == false)) {
                return false;
            }
            // Capabilities: set capabilities 
            dictionary["isColor"] = "true";
            dictionary["mobileDeviceManufacturer"] = "NEC"; 
            dictionary["screenBitDepth"] = "8"; 
            dictionary["screenCharactersHeight"] = "10";
            dictionary["screenCharactersWidth"] = "20"; 
            dictionary["screenPixelsHeight"] = "128";
            dictionary["screenPixelsWidth"] = "118";
            browserCaps.AddBrowser("DocomoN502it");
            this.Docomon502itProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.Docomon502itProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true; 
        }
 
        protected virtual void Docomoso502iwmProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        protected virtual void Docomoso502iwmProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool Docomoso502iwmProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"]));
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "SO502iWM"); 
            if ((result == false)) {
                return false; 
            }
            // Capabilities: set capabilities
            dictionary["isColor"] = "true";
            dictionary["mobileDeviceManufacturer"] = "Sony"; 
            dictionary["screenBitDepth"] = "8";
            dictionary["screenCharactersHeight"] = "7"; 
            dictionary["screenCharactersWidth"] = "16"; 
            dictionary["screenPixelsHeight"] = "113";
            dictionary["screenPixelsWidth"] = "120"; 
            browserCaps.AddBrowser("DocomoSo502iwm");
            this.Docomoso502iwmProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false;
            this.Docomoso502iwmProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 
 
        protected virtual void Docomof504iProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void Docomof504iProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        private bool Docomof504iProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["deviceID"]));
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "F504i");
            if ((result == false)) { 
                return false; 
            }
            // Capabilities: set capabilities 
            dictionary["isColor"] = "true";
            dictionary["mobileDeviceManufacturer"] = "Fujitsu";
            dictionary["requiresContentTypeMetaTag"] = "false";
            dictionary["requiresHtmlAdaptiveErrorReporting"] = "false"; 
            dictionary["screenBitDepth"] = "16";
            dictionary["screenCharactersHeight"] = "8"; 
            dictionary["screenCharactersWidth"] = "16"; 
            dictionary["screenPixelsHeight"] = "136";
            dictionary["screenPixelsWidth"] = "132"; 
            dictionary["supportsRedirectWithCookie"] = "false";
            browserCaps.AddBrowser("DocomoF504i");
            this.Docomof504iProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Docomof504iProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        } 

        protected virtual void Docomon504iProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        protected virtual void Docomon504iProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool Docomon504iProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"]));
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "N504i"); 
            if ((result == false)) { 
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["ExchangeOmaSupported"] = "true";
            dictionary["isColor"] = "true";
            dictionary["mobileDeviceManufacturer"] = "NEC"; 
            dictionary["requiresHtmlAdaptiveErrorReporting"] = "false";
            dictionary["screenBitDepth"] = "16"; 
            dictionary["screenCharactersHeight"] = "10"; 
            dictionary["screenCharactersWidth"] = "20";
            dictionary["screenPixelsHeight"] = "180"; 
            dictionary["screenPixelsWidth"] = "160";
            dictionary["supportsRedirectWithCookie"] = "false";
            browserCaps.AddBrowser("DocomoN504i");
            this.Docomon504iProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.Docomon504iProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true; 
        }
 
        protected virtual void Docomop504iProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        protected virtual void Docomop504iProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool Docomop504iProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"]));
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "P504i"); 
            if ((result == false)) {
                return false; 
            }
            // Capabilities: set capabilities
            dictionary["ExchangeOmaSupported"] = "true";
            dictionary["isColor"] = "true"; 
            dictionary["mobileDeviceManufacturer"] = "Panasonic";
            dictionary["requiresContentTypeMetaTag"] = "false"; 
            dictionary["requiresHtmlAdaptiveErrorReporting"] = "false"; 
            dictionary["screenBitDepth"] = "16";
            dictionary["screenCharactersHeight"] = "9"; 
            dictionary["screenCharactersWidth"] = "22";
            dictionary["screenPixelsHeight"] = "144";
            dictionary["screenPixelsWidth"] = "132";
            dictionary["supportsImageSubmit"] = "true"; 
            dictionary["supportsRedirectWithCookie"] = "false";
            browserCaps.AddBrowser("DocomoP504i"); 
            this.Docomop504iProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.Docomop504iProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        }

        protected virtual void Docomon821iProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void Docomon821iProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool Docomon821iProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"])); 
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "N821i");
            if ((result == false)) {
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["isColor"] = "false"; 
            dictionary["mobileDeviceManufacturer"] = "NEC"; 
            dictionary["screenBitDepth"] = "2";
            dictionary["screenCharactersHeight"] = "10"; 
            dictionary["screenCharactersWidth"] = "20";
            dictionary["screenPixelsHeight"] = "128";
            dictionary["screenPixelsWidth"] = "119";
            browserCaps.AddBrowser("DocomoN821i"); 
            this.Docomon821iProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Docomon821iProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 

        protected virtual void Docomop821iProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        protected virtual void Docomop821iProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        private bool Docomop821iProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification:
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "P821i");
            if ((result == false)) { 
                return false;
            }
            // Capabilities: set capabilities
            dictionary["hidesRightAlignedMultiselectScrollbars"] = "true"; 
            dictionary["maximumRenderedPageSize"] = "5000";
            dictionary["mobileDeviceManufacturer"] = "Panasonic"; 
            dictionary["requiresAttributeColonSubstitution"] = "true"; 
            dictionary["requiresHtmlAdaptiveErrorReporting"] = "false";
            dictionary["screenBitDepth"] = "2"; 
            dictionary["screenCharactersHeight"] = "10";
            dictionary["screenCharactersWidth"] = "20";
            dictionary["screenPixelsHeight"] = "128";
            dictionary["screenPixelsWidth"] = "118"; 
            dictionary["supportsBodyColor"] = "false";
            dictionary["supportsFontColor"] = "false"; 
            dictionary["supportsRedirectWithCookie"] = "false"; 
            browserCaps.AddBrowser("DocomoP821i");
            this.Docomop821iProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.Docomop821iProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        } 

        protected virtual void Docomod209iProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        } 

        protected virtual void Docomod209iProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        private bool Docomod209iProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue; 
            headerValue = ((string)(dictionary["deviceID"]));
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "D209i");
            if ((result == false)) { 
                return false;
            } 
            // Capabilities: set capabilities 
            dictionary["isColor"] = "true";
            dictionary["mobileDeviceManufacturer"] = "Mitsubishi"; 
            dictionary["screenBitDepth"] = "8";
            dictionary["screenCharactersHeight"] = "7";
            dictionary["screenCharactersWidth"] = "16";
            dictionary["screenPixelsHeight"] = "90"; 
            dictionary["screenPixelsWidth"] = "96";
            browserCaps.AddBrowser("DocomoD209i"); 
            this.Docomod209iProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.Docomod209iProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        }

        protected virtual void Docomoer209iProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void Docomoer209iProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool Docomoer209iProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"])); 
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "ER209i");
            if ((result == false)) {
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["isColor"] = "false"; 
            dictionary["mobileDeviceManufacturer"] = "Ericsson"; 
            dictionary["screenBitDepth"] = "1";
            dictionary["screenCharactersHeight"] = "6"; 
            dictionary["screenCharactersWidth"] = "20";
            dictionary["screenPixelsHeight"] = "72";
            dictionary["screenPixelsWidth"] = "120";
            browserCaps.AddBrowser("DocomoEr209i"); 
            this.Docomoer209iProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Docomoer209iProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 

        protected virtual void Docomof209iProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        protected virtual void Docomof209iProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        private bool Docomof209iProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification:
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "F209i");
            if ((result == false)) { 
                return false;
            }
            // Capabilities: set capabilities
            dictionary["isColor"] = "true"; 
            dictionary["mobileDeviceManufacturer"] = "Fujitsu";
            dictionary["screenBitDepth"] = "8"; 
            dictionary["screenCharactersHeight"] = "7"; 
            dictionary["screenCharactersWidth"] = "16";
            dictionary["screenPixelsHeight"] = "91"; 
            dictionary["screenPixelsWidth"] = "96";
            browserCaps.AddBrowser("DocomoF209i");
            this.Docomof209iProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Docomof209iProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        } 

        protected virtual void Docomoko209iProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        protected virtual void Docomoko209iProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool Docomoko209iProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"]));
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "KO209i"); 
            if ((result == false)) { 
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["isColor"] = "true";
            dictionary["mobileDeviceManufacturer"] = "Kokusai";
            dictionary["screenBitDepth"] = "8"; 
            dictionary["screenCharactersHeight"] = "8";
            dictionary["screenCharactersWidth"] = "16"; 
            dictionary["screenPixelsHeight"] = "96"; 
            dictionary["screenPixelsWidth"] = "96";
            browserCaps.AddBrowser("DocomoKo209i"); 
            this.Docomoko209iProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false;
            this.Docomoko209iProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }
 
        protected virtual void Docomon209iProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void Docomon209iProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        private bool Docomon209iProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"])); 
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "N209i"); 
            if ((result == false)) {
                return false; 
            } 
            // Capabilities: set capabilities
            dictionary["isColor"] = "false"; 
            dictionary["mobileDeviceManufacturer"] = "NEC";
            dictionary["screenBitDepth"] = "2";
            dictionary["screenCharactersHeight"] = "6";
            dictionary["screenCharactersWidth"] = "18"; 
            dictionary["screenPixelsHeight"] = "82";
            dictionary["screenPixelsWidth"] = "108"; 
            browserCaps.AddBrowser("DocomoN209i"); 
            this.Docomon209iProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Docomon209iProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        }
 
        protected virtual void Docomop209iProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        protected virtual void Docomop209iProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool Docomop209iProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["deviceID"])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "P209i$");
            if ((result == false)) {
                return false; 
            }
            // Capabilities: set capabilities 
            dictionary["isColor"] = "false"; 
            dictionary["mobileDeviceManufacturer"] = "Panasonic";
            dictionary["screenBitDepth"] = "2"; 
            dictionary["screenCharactersHeight"] = "6";
            dictionary["screenCharactersWidth"] = "16";
            dictionary["screenPixelsHeight"] = "87";
            dictionary["screenPixelsWidth"] = "96"; 
            browserCaps.AddBrowser("DocomoP209i");
            this.Docomop209iProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false; 
            this.Docomop209iProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }

        protected virtual void Docomop209isProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void Docomop209isProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        } 

        private bool Docomop209isProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["deviceID"]));
            bool result; 
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "P209iS"); 
            if ((result == false)) {
                return false;
            }
            // Capabilities: set capabilities 
            dictionary["isColor"] = "true";
            dictionary["mobileDeviceManufacturer"] = "Panasonic"; 
            dictionary["screenBitDepth"] = "8"; 
            dictionary["screenCharactersHeight"] = "6";
            dictionary["screenCharactersWidth"] = "16"; 
            dictionary["screenPixelsHeight"] = "87";
            dictionary["screenPixelsWidth"] = "96";
            browserCaps.AddBrowser("DocomoP209is");
            this.Docomop209isProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.Docomop209isProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true; 
        }
 
        protected virtual void Docomor209iProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        protected virtual void Docomor209iProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool Docomor209iProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"]));
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "R209i"); 
            if ((result == false)) {
                return false; 
            }
            // Capabilities: set capabilities
            dictionary["isColor"] = "false";
            dictionary["mobileDeviceManufacturer"] = "JRC"; 
            dictionary["screenBitDepth"] = "2";
            dictionary["screenCharactersHeight"] = "6"; 
            dictionary["screenCharactersWidth"] = "16"; 
            dictionary["screenPixelsHeight"] = "72";
            dictionary["screenPixelsWidth"] = "96"; 
            browserCaps.AddBrowser("DocomoR209i");
            this.Docomor209iProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false;
            this.Docomor209iProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 
 
        protected virtual void Docomor691iProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void Docomor691iProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        private bool Docomor691iProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["deviceID"]));
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "R691i");
            if ((result == false)) { 
                return false; 
            }
            // Capabilities: set capabilities 
            dictionary["isColor"] = "false";
            dictionary["mobileDeviceManufacturer"] = "JRC";
            dictionary["screenBitDepth"] = "2";
            dictionary["screenCharactersHeight"] = "6"; 
            dictionary["screenCharactersWidth"] = "16";
            dictionary["screenPixelsHeight"] = "72"; 
            dictionary["screenPixelsWidth"] = "96"; 
            browserCaps.AddBrowser("DocomoR691i");
            this.Docomor691iProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.Docomor691iProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        } 

        protected virtual void Docomof503iProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        } 

        protected virtual void Docomof503iProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        private bool Docomof503iProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue; 
            headerValue = ((string)(dictionary["deviceID"]));
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "F503i$");
            if ((result == false)) { 
                return false;
            } 
            // Capabilities: set capabilities 
            dictionary["isColor"] = "true";
            dictionary["mobileDeviceManufacturer"] = "Fujitsu"; 
            dictionary["screenBitDepth"] = "8";
            dictionary["screenCharactersHeight"] = "10";
            dictionary["screenCharactersWidth"] = "20";
            dictionary["screenPixelsHeight"] = "130"; 
            dictionary["screenPixelsWidth"] = "120";
            browserCaps.AddBrowser("DocomoF503i"); 
            this.Docomof503iProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.Docomof503iProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        }

        protected virtual void Docomof503isProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void Docomof503isProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool Docomof503isProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"])); 
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "F503iS");
            if ((result == false)) {
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["isColor"] = "true"; 
            dictionary["mobileDeviceManufacturer"] = "Fujitsu"; 
            dictionary["screenBitDepth"] = "12";
            dictionary["screenCharactersHeight"] = "12"; 
            dictionary["screenCharactersWidth"] = "24";
            dictionary["screenPixelsHeight"] = "130";
            dictionary["screenPixelsWidth"] = "120";
            browserCaps.AddBrowser("DocomoF503is"); 
            this.Docomof503isProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Docomof503isProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 

        protected virtual void Docomod503iProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        protected virtual void Docomod503iProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        private bool Docomod503iProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification:
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "D503i$");
            if ((result == false)) { 
                return false;
            }
            // Capabilities: set capabilities
            dictionary["isColor"] = "true"; 
            dictionary["mobileDeviceManufacturer"] = "Mitsubishi";
            dictionary["screenBitDepth"] = "12"; 
            dictionary["screenCharactersHeight"] = "7"; 
            dictionary["screenCharactersWidth"] = "16";
            dictionary["screenPixelsHeight"] = "126"; 
            dictionary["screenPixelsWidth"] = "132";
            browserCaps.AddBrowser("DocomoD503i");
            this.Docomod503iProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Docomod503iProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        } 

        protected virtual void Docomod503isProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        protected virtual void Docomod503isProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool Docomod503isProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"]));
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "D503iS$"); 
            if ((result == false)) { 
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["hidesRightAlignedMultiselectScrollbars"] = "true";
            dictionary["isColor"] = "true";
            dictionary["mobileDeviceManufacturer"] = "Mitsubishi"; 
            dictionary["requiresAttributeColonSubstitution"] = "true";
            dictionary["requiresHtmlAdaptiveErrorReporting"] = "false"; 
            dictionary["screenBitDepth"] = "12"; 
            dictionary["screenCharactersHeight"] = "7";
            dictionary["screenCharactersWidth"] = "16"; 
            dictionary["screenPixelsHeight"] = "126";
            dictionary["screenPixelsWidth"] = "132";
            dictionary["supportsRedirectWithCookie"] = "false";
            browserCaps.AddBrowser("DocomoD503is"); 
            this.Docomod503isProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Docomod503isProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 

        protected virtual void Docomod210iProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        protected virtual void Docomod210iProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        private bool Docomod210iProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification:
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "D210i");
            if ((result == false)) { 
                return false;
            }
            // Capabilities: set capabilities
            dictionary["isColor"] = "true"; 
            dictionary["mobileDeviceManufacturer"] = "Mitsubishi";
            dictionary["screenBitDepth"] = "8"; 
            dictionary["screenCharactersHeight"] = "7"; 
            dictionary["screenCharactersWidth"] = "16";
            dictionary["screenPixelsHeight"] = "91"; 
            dictionary["screenPixelsWidth"] = "96";
            browserCaps.AddBrowser("DocomoD210i");
            this.Docomod210iProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Docomod210iProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        } 

        protected virtual void Docomof210iProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        protected virtual void Docomof210iProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool Docomof210iProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"]));
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "F210i"); 
            if ((result == false)) { 
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["isColor"] = "true";
            dictionary["mobileDeviceManufacturer"] = "Fujitsu";
            dictionary["screenBitDepth"] = "8"; 
            dictionary["screenCharactersHeight"] = "8";
            dictionary["screenCharactersWidth"] = "16"; 
            dictionary["screenPixelsHeight"] = "113"; 
            dictionary["screenPixelsWidth"] = "96";
            browserCaps.AddBrowser("DocomoF210i"); 
            this.Docomof210iProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false;
            this.Docomof210iProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }
 
        protected virtual void Docomon210iProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void Docomon210iProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        private bool Docomon210iProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"])); 
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "N210i"); 
            if ((result == false)) {
                return false; 
            } 
            // Capabilities: set capabilities
            dictionary["isColor"] = "true"; 
            dictionary["mobileDeviceManufacturer"] = "NEC";
            dictionary["screenBitDepth"] = "8";
            dictionary["screenCharactersHeight"] = "8";
            dictionary["screenCharactersWidth"] = "20"; 
            dictionary["screenPixelsHeight"] = "113";
            dictionary["screenPixelsWidth"] = "118"; 
            browserCaps.AddBrowser("DocomoN210i"); 
            this.Docomon210iProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Docomon210iProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        }
 
        protected virtual void Docomon2001ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        protected virtual void Docomon2001ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool Docomon2001Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["deviceID"])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "N2001");
            if ((result == false)) {
                return false; 
            }
            // Capabilities: set capabilities 
            dictionary["hidesRightAlignedMultiselectScrollbars"] = "true"; 
            dictionary["isColor"] = "true";
            dictionary["mobileDeviceManufacturer"] = "NEC"; 
            dictionary["requiresAttributeColonSubstitution"] = "true";
            dictionary["requiresHtmlAdaptiveErrorReporting"] = "false";
            dictionary["screenBitDepth"] = "12";
            dictionary["screenCharactersHeight"] = "10"; 
            dictionary["screenCharactersWidth"] = "20";
            dictionary["screenPixelsHeight"] = "128"; 
            dictionary["screenPixelsWidth"] = "118"; 
            dictionary["supportsRedirectWithCookie"] = "false";
            browserCaps.AddBrowser("DocomoN2001"); 
            this.Docomon2001ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false;
            this.Docomon2001ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }
 
        protected virtual void Docomod211iProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void Docomod211iProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        private bool Docomod211iProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"])); 
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "D211i"); 
            if ((result == false)) {
                return false; 
            } 
            // Capabilities: set capabilities
            dictionary["hidesRightAlignedMultiselectScrollbars"] = "true"; 
            dictionary["isColor"] = "true";
            dictionary["mobileDeviceManufacturer"] = "Mitsubishi";
            dictionary["requiresAttributeColonSubstitution"] = "true";
            dictionary["requiresHtmlAdaptiveErrorReporting"] = "false"; 
            dictionary["screenBitDepth"] = "12";
            dictionary["screenCharactersHeight"] = "7"; 
            dictionary["screenCharactersWidth"] = "16"; 
            dictionary["screenPixelsHeight"] = "91";
            dictionary["screenPixelsWidth"] = "100"; 
            browserCaps.AddBrowser("DocomoD211i");
            this.Docomod211iProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false;
            this.Docomod211iProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 
 
        protected virtual void Docomon211iProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void Docomon211iProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        private bool Docomon211iProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["deviceID"]));
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "N211i");
            if ((result == false)) { 
                return false; 
            }
            // Capabilities: set capabilities 
            dictionary["hidesRightAlignedMultiselectScrollbars"] = "true";
            dictionary["isColor"] = "true";
            dictionary["mobileDeviceManufacturer"] = "NEC";
            dictionary["requiresAttributeColonSubstitution"] = "true"; 
            dictionary["requiresHtmlAdaptiveErrorReporting"] = "false";
            dictionary["screenBitDepth"] = "12"; 
            dictionary["screenCharactersHeight"] = "10"; 
            dictionary["screenCharactersWidth"] = "20";
            dictionary["screenPixelsHeight"] = "128"; 
            dictionary["screenPixelsWidth"] = "118";
            dictionary["supportsRedirectWithCookie"] = "false";
            browserCaps.AddBrowser("DocomoN211i");
            this.Docomon211iProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.Docomon211iProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true; 
        }
 
        protected virtual void Docomop210iProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        protected virtual void Docomop210iProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool Docomop210iProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"]));
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "P210i"); 
            if ((result == false)) {
                return false; 
            }
            // Capabilities: set capabilities
            dictionary["isColor"] = "true";
            dictionary["mobileDeviceManufacturer"] = "Panasonic"; 
            dictionary["screenBitDepth"] = "8";
            dictionary["screenCharactersHeight"] = "6"; 
            dictionary["screenCharactersWidth"] = "16"; 
            dictionary["screenPixelsHeight"] = "91";
            dictionary["screenPixelsWidth"] = "96"; 
            browserCaps.AddBrowser("DocomoP210i");
            this.Docomop210iProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false;
            this.Docomop210iProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 
 
        protected virtual void Docomoko210iProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void Docomoko210iProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        private bool Docomoko210iProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["deviceID"]));
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "KO210i");
            if ((result == false)) { 
                return false; 
            }
            // Capabilities: set capabilities 
            dictionary["isColor"] = "true";
            dictionary["mobileDeviceManufacturer"] = "Kokusai";
            dictionary["screenBitDepth"] = "8";
            dictionary["screenCharactersHeight"] = "8"; 
            dictionary["screenCharactersWidth"] = "16";
            dictionary["screenPixelsHeight"] = "96"; 
            dictionary["screenPixelsWidth"] = "96"; 
            browserCaps.AddBrowser("DocomoKo210i");
            this.Docomoko210iProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.Docomoko210iProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        } 

        protected virtual void Docomop2101vProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        } 

        protected virtual void Docomop2101vProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        private bool Docomop2101vProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue; 
            headerValue = ((string)(dictionary["deviceID"]));
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "P2101V");
            if ((result == false)) { 
                return false;
            } 
            // Capabilities: set capabilities 
            dictionary["isColor"] = "true";
            dictionary["mobileDeviceManufacturer"] = "Panasonic"; 
            dictionary["screenBitDepth"] = "18";
            dictionary["screenCharactersHeight"] = "9";
            dictionary["screenCharactersWidth"] = "20";
            dictionary["screenPixelsHeight"] = "182"; 
            dictionary["screenPixelsWidth"] = "163";
            browserCaps.AddBrowser("DocomoP2101v"); 
            this.Docomop2101vProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.Docomop2101vProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        }

        protected virtual void Docomop2102vProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void Docomop2102vProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool Docomop2102vProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"])); 
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "P2102V");
            if ((result == false)) {
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["mobileDeviceManufacturer"] = "Panasonic"; 
            browserCaps.AddBrowser("DocomoP2102v"); 
            this.Docomop2102vProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Docomop2102vProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        }
 
        protected virtual void Docomof211iProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        protected virtual void Docomof211iProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool Docomof211iProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["deviceID"])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "F211i$");
            if ((result == false)) {
                return false; 
            }
            // Capabilities: set capabilities 
            dictionary["hidesRightAlignedMultiselectScrollbars"] = "true"; 
            dictionary["isColor"] = "true";
            dictionary["mobileDeviceManufacturer"] = "Fujitsu"; 
            dictionary["requiresAttributeColonSubstitution"] = "true";
            dictionary["requiresHtmlAdaptiveErrorReporting"] = "false";
            dictionary["screenBitDepth"] = "12";
            dictionary["screenCharactersHeight"] = "7"; 
            dictionary["screenCharactersWidth"] = "16";
            dictionary["screenPixelsHeight"] = "113"; 
            dictionary["screenPixelsWidth"] = "96"; 
            dictionary["supportsRedirectWithCookie"] = "false";
            browserCaps.AddBrowser("DocomoF211i"); 
            this.Docomof211iProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false;
            this.Docomof211iProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }
 
        protected virtual void Docomof671iProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void Docomof671iProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        private bool Docomof671iProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"])); 
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "F671i$"); 
            if ((result == false)) {
                return false; 
            } 
            // Capabilities: set capabilities
            dictionary["hidesRightAlignedMultiselectScrollbars"] = "true"; 
            dictionary["isColor"] = "true";
            dictionary["mobileDeviceManufacturer"] = "Fujitsu";
            dictionary["requiresAttributeColonSubstitution"] = "true";
            dictionary["requiresHtmlAdaptiveErrorReporting"] = "false"; 
            dictionary["screenBitDepth"] = "8";
            dictionary["screenCharactersHeight"] = "9"; 
            dictionary["screenCharactersWidth"] = "20"; 
            dictionary["screenPixelsHeight"] = "126";
            dictionary["screenPixelsWidth"] = "120"; 
            dictionary["supportsRedirectWithCookie"] = "false";
            browserCaps.AddBrowser("DocomoF671i");
            this.Docomof671iProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Docomof671iProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        } 

        protected virtual void Docomon503isProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        protected virtual void Docomon503isProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool Docomon503isProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"]));
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "N503iS"); 
            if ((result == false)) { 
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["hidesRightAlignedMultiselectScrollbars"] = "true";
            dictionary["isColor"] = "true";
            dictionary["mobileDeviceManufacturer"] = "NEC"; 
            dictionary["requiresAttributeColonSubstitution"] = "true";
            dictionary["requiresHtmlAdaptiveErrorReporting"] = "false"; 
            dictionary["screenBitDepth"] = "12"; 
            dictionary["screenCharactersHeight"] = "10";
            dictionary["screenCharactersWidth"] = "20"; 
            dictionary["screenPixelsHeight"] = "128";
            dictionary["screenPixelsWidth"] = "118";
            dictionary["supportsRedirectWithCookie"] = "false";
            browserCaps.AddBrowser("DocomoN503is"); 
            this.Docomon503isProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Docomon503isProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 

        protected virtual void Docomon503iProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        protected virtual void Docomon503iProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        private bool Docomon503iProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification:
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "N503i$");
            if ((result == false)) { 
                return false;
            }
            // Capabilities: set capabilities
            dictionary["hidesRightAlignedMultiselectScrollbars"] = "true"; 
            dictionary["isColor"] = "true";
            dictionary["mobileDeviceManufacturer"] = "NEC"; 
            dictionary["requiresAttributeColonSubstitution"] = "true"; 
            dictionary["requiresHtmlAdaptiveErrorReporting"] = "false";
            dictionary["screenBitDepth"] = "12"; 
            dictionary["screenCharactersHeight"] = "10";
            dictionary["screenCharactersWidth"] = "20";
            dictionary["screenPixelsHeight"] = "128";
            dictionary["screenPixelsWidth"] = "118"; 
            dictionary["supportsRedirectWithCookie"] = "false";
            browserCaps.AddBrowser("DocomoN503i"); 
            this.Docomon503iProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.Docomon503iProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        }

        protected virtual void Docomoso503iProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void Docomoso503iProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool Docomoso503iProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"])); 
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "SO503i$");
            if ((result == false)) {
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["isColor"] = "true"; 
            dictionary["mobileDeviceManufacturer"] = "Sony"; 
            dictionary["screenBitDepth"] = "16";
            dictionary["screenCharactersHeight"] = "7"; 
            dictionary["screenCharactersWidth"] = "16";
            dictionary["screenPixelsHeight"] = "113";
            dictionary["screenPixelsWidth"] = "120";
            browserCaps.AddBrowser("DocomoSo503i"); 
            this.Docomoso503iProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Docomoso503iProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 

        protected virtual void Docomop503isProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        protected virtual void Docomop503isProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        private bool Docomop503isProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification:
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "P503iS");
            if ((result == false)) { 
                return false;
            }
            // Capabilities: set capabilities
            dictionary["canRenderEmptySelects"] = "false"; 
            dictionary["hidesRightAlignedMultiselectScrollbars"] = "true";
            dictionary["isColor"] = "true"; 
            dictionary["mobileDeviceManufacturer"] = "Panasonic"; 
            dictionary["requiresAttributeColonSubstitution"] = "true";
            dictionary["requiresHtmlAdaptiveErrorReporting"] = "false"; 
            dictionary["screenBitDepth"] = "8";
            dictionary["screenCharactersHeight"] = "8";
            dictionary["screenCharactersWidth"] = "20";
            dictionary["screenPixelsHeight"] = "130"; 
            dictionary["screenPixelsWidth"] = "120";
            dictionary["supportsFontSize"] = "true"; 
            dictionary["supportsImageSubmit"] = "true"; 
            dictionary["supportsRedirectWithCookie"] = "false";
            browserCaps.AddBrowser("DocomoP503is"); 
            this.Docomop503isProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false;
            this.Docomop503isProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }
 
        protected virtual void Docomop503iProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void Docomop503iProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        private bool Docomop503iProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"])); 
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "P503i$"); 
            if ((result == false)) {
                return false; 
            } 
            // Capabilities: set capabilities
            dictionary["canRenderEmptySelects"] = "false"; 
            dictionary["hidesRightAlignedMultiselectScrollbars"] = "true";
            dictionary["isColor"] = "true";
            dictionary["mobileDeviceManufacturer"] = "Panasonic";
            dictionary["rendersBreaksAfterHtmlLists"] = "false"; 
            dictionary["requiresAttributeColonSubstitution"] = "true";
            dictionary["requiresHtmlAdaptiveErrorReporting"] = "false"; 
            dictionary["screenBitDepth"] = "8"; 
            dictionary["screenCharactersHeight"] = "8";
            dictionary["screenCharactersWidth"] = "20"; 
            dictionary["screenPixelsHeight"] = "130";
            dictionary["screenPixelsWidth"] = "120";
            dictionary["supportsFontSize"] = "true";
            dictionary["supportsRedirectWithCookie"] = "false"; 
            browserCaps.AddBrowser("DocomoP503i");
            this.Docomop503iProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false; 
            this.Docomop503iProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }

        protected virtual void Docomoso210iProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void Docomoso210iProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        } 

        private bool Docomoso210iProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["deviceID"]));
            bool result; 
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "SO210i$"); 
            if ((result == false)) {
                return false;
            }
            // Capabilities: set capabilities 
            dictionary["hidesRightAlignedMultiselectScrollbars"] = "true";
            dictionary["isColor"] = "true"; 
            dictionary["mobileDeviceManufacturer"] = "Sony"; 
            dictionary["requiresAttributeColonSubstitution"] = "true";
            dictionary["requiresHtmlAdaptiveErrorReporting"] = "false"; 
            dictionary["screenBitDepth"] = "8";
            dictionary["screenCharactersHeight"] = "7";
            dictionary["screenCharactersWidth"] = "17";
            dictionary["screenPixelsHeight"] = "113"; 
            dictionary["screenPixelsWidth"] = "120";
            dictionary["supportsRedirectWithCookie"] = "false"; 
            browserCaps.AddBrowser("DocomoSo210i"); 
            this.Docomoso210iProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Docomoso210iProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        }
 
        protected virtual void Docomoso503isProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        protected virtual void Docomoso503isProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool Docomoso503isProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["deviceID"])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "SO503iS");
            if ((result == false)) {
                return false; 
            }
            // Capabilities: set capabilities 
            dictionary["hidesRightAlignedMultiselectScrollbars"] = "true"; 
            dictionary["isColor"] = "true";
            dictionary["mobileDeviceManufacturer"] = "Sony"; 
            dictionary["requiresAttributeColonSubstitution"] = "true";
            dictionary["requiresHtmlAdaptiveErrorReporting"] = "false";
            dictionary["screenBitDepth"] = "16";
            dictionary["screenCharactersHeight"] = "7"; 
            dictionary["screenCharactersWidth"] = "17";
            dictionary["screenPixelsHeight"] = "113"; 
            dictionary["screenPixelsWidth"] = "120"; 
            dictionary["supportsRedirectWithCookie"] = "false";
            browserCaps.AddBrowser("DocomoSo503is"); 
            this.Docomoso503isProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false;
            this.Docomoso503isProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }
 
        protected virtual void Docomosh821iProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void Docomosh821iProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        private bool Docomosh821iProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"])); 
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "SH821i"); 
            if ((result == false)) {
                return false; 
            } 
            // Capabilities: set capabilities
            dictionary["canRenderEmptySelects"] = "false"; 
            dictionary["isColor"] = "true";
            dictionary["mobileDeviceManufacturer"] = "Sharp";
            dictionary["requiresHtmlAdaptiveErrorReporting"] = "false";
            dictionary["screenBitDepth"] = "8"; 
            dictionary["screenCharactersHeight"] = "6";
            dictionary["screenCharactersWidth"] = "16"; 
            dictionary["screenPixelsHeight"] = "78"; 
            dictionary["screenPixelsWidth"] = "96";
            dictionary["supportsRedirectWithCookie"] = "false"; 
            browserCaps.AddBrowser("DocomoSh821i");
            this.Docomosh821iProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false;
            this.Docomosh821iProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 
 
        protected virtual void Docomon2002ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void Docomon2002ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        private bool Docomon2002Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["deviceID"]));
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "N2002");
            if ((result == false)) { 
                return false; 
            }
            // Capabilities: set capabilities 
            dictionary["isColor"] = "true";
            dictionary["mobileDeviceManufacturer"] = "NEC";
            dictionary["requiresContentTypeMetaTag"] = "false";
            dictionary["requiresHtmlAdaptiveErrorReporting"] = "false"; 
            dictionary["screenBitDepth"] = "16";
            dictionary["screenCharactersHeight"] = "10"; 
            dictionary["screenCharactersWidth"] = "20"; 
            dictionary["screenPixelsHeight"] = "128";
            dictionary["screenPixelsWidth"] = "118"; 
            dictionary["supportsRedirectWithCookie"] = "false";
            browserCaps.AddBrowser("DocomoN2002");
            this.Docomon2002ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Docomon2002ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        } 

        protected virtual void Docomoso505iProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        protected virtual void Docomoso505iProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool Docomoso505iProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"]));
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "SO505i"); 
            if ((result == false)) { 
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["ExchangeOmaSupported"] = "true";
            dictionary["isColor"] = "true";
            dictionary["mobileDeviceManufacturer"] = "SonyEricsson"; 
            dictionary["screenBitDepth"] = "18";
            dictionary["screenCharactersHeight"] = "9"; 
            dictionary["screenCharactersWidth"] = "20"; 
            dictionary["screenPixelsHeight"] = "240";
            dictionary["screenPixelsWidth"] = "256"; 
            browserCaps.AddBrowser("DocomoSo505i");
            this.Docomoso505iProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false;
            this.Docomoso505iProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 
 
        protected virtual void Docomop505iProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void Docomop505iProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        private bool Docomop505iProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["deviceID"]));
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "P505i");
            if ((result == false)) { 
                return false; 
            }
            // Capabilities: set capabilities 
            dictionary["mobileDeviceManufacturer"] = "Panasonic";
            browserCaps.AddBrowser("DocomoP505i");
            this.Docomop505iProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Docomop505iProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        } 

        protected virtual void Docomon505iProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        protected virtual void Docomon505iProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool Docomon505iProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"]));
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "N505i"); 
            if ((result == false)) { 
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["mobileDeviceManufacturer"] = "NEC";
            browserCaps.AddBrowser("DocomoN505i");
            this.Docomon505iProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.Docomon505iProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true; 
        }
 
        protected virtual void Docomod505iProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        protected virtual void Docomod505iProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool Docomod505iProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"]));
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "D505i"); 
            if ((result == false)) {
                return false; 
            }
            // Capabilities: set capabilities
            dictionary["ExchangeOmaSupported"] = "true";
            dictionary["isColor"] = "true"; 
            dictionary["mobileDeviceManufacturer"] = "Mitsubishi";
            dictionary["screenBitDepth"] = "18"; 
            dictionary["screenCharactersHeight"] = "10"; 
            dictionary["screenCharactersWidth"] = "20";
            dictionary["screenPixelsHeight"] = "270"; 
            dictionary["screenPixelsWidth"] = "240";
            browserCaps.AddBrowser("DocomoD505i");
            this.Docomod505iProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Docomod505iProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        } 

        protected virtual void Docomoisim60ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        protected virtual void Docomoisim60ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool Docomoisim60Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"]));
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "ISIM60"); 
            if ((result == false)) { 
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["canInitiateVoiceCall"] = "false";
            dictionary["canSendMail"] = "false";
            dictionary["cookies"] = "true"; 
            dictionary["inputType"] = "virtualKeyboard";
            dictionary["isColor"] = "true"; 
            dictionary["mobileDeviceManufacturer"] = "NTT DoCoMo"; 
            dictionary["mobileDeviceModel"] = "i-mode HTML Simulator";
            dictionary["screenBitDepth"] = "16"; 
            dictionary["screenCharactersHeight"] = "10";
            dictionary["screenCharactersWidth"] = "20";
            dictionary["screenPixelsHeight"] = "180";
            dictionary["screenPixelsWidth"] = "160"; 
            dictionary["supportsEmptyStringInCookieValue"] = "true";
            dictionary["supportsRedirectWithCookie"] = "true"; 
            dictionary["supportsSelectMultiple"] = "false"; 
            browserCaps.AddBrowser("DocomoISIM60");
            this.Docomoisim60ProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.Docomoisim60ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        } 

        protected virtual void Ericssonr380ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        } 

        protected virtual void Ericssonr380ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        private bool Ericssonr380Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue; 
            headerValue = ((string)(browserCaps[string.Empty]));
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "R380 (?\'browserMajorVersion\'\\w*)(?\'browserMinorVersion\'\\.\\w*) WAP1\\.1");
            if ((result == false)) { 
                return false;
            } 
            // Capabilities: set capabilities 
            dictionary["browser"] = "Ericsson";
            dictionary["canInitiateVoiceCall"] = "true"; 
            dictionary["cookies"] = "false";
            dictionary["inputType"] = "virtualKeyboard";
            dictionary["isColor"] = "false";
            dictionary["isMobileDevice"] = "true"; 
            dictionary["majorVersion"] = regexWorker["${browserMajorVersion}"];
            dictionary["maximumRenderedPageSize"] = "3000"; 
            dictionary["minorVersion"] = regexWorker["${browserMinorVersion}"]; 
            dictionary["mobileDeviceManufacturer"] = "Ericsson";
            dictionary["mobileDeviceModel"] = "R380"; 
            dictionary["requiresNoescapedPostUrl"] = "false";
            dictionary["preferredImageMime"] = "image/vnd.wap.wbmp";
            dictionary["preferredRenderingMime"] = "text/vnd.wap.wml";
            dictionary["preferredRenderingType"] = "wml11"; 
            dictionary["requiresAdaptiveErrorReporting"] = "true";
            dictionary["screenBitDepth"] = "1"; 
            dictionary["screenCharactersHeight"] = "7"; 
            dictionary["screenPixelsHeight"] = "100";
            dictionary["screenPixelsWidth"] = "310"; 
            dictionary["supportsRedirectWithCookie"] = "false";
            dictionary["supportsEmptyStringInCookieValue"] = "false";
            dictionary["type"] = "Ericsson R380";
            dictionary["version"] = regexWorker["${browserMajorVersion}.${browserMinorVersion}"]; 
            browserCaps.AddBrowser("EricssonR380");
            this.Ericssonr380ProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false; 
            this.Ericssonr380ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }

        protected virtual void EricssonProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void EricssonProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        } 

        private bool EricssonProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification:
            string headerValue; 
            headerValue = ((string)(browserCaps[string.Empty]));
            bool result; 
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "Ericsson(?\'deviceID\'[^/]+)/(?\'deviceVer\'.*)"); 
            if ((result == false)) {
                return false;
            }
            // Capabilities: set capabilities 
            dictionary["browser"] = "Ericsson";
            dictionary["canInitiateVoiceCall"] = "true"; 
            dictionary["cookies"] = "false"; 
            dictionary["defaultScreenCharactersHeight"] = "4";
            dictionary["defaultScreenCharactersWidth"] = "20"; 
            dictionary["defaultScreenPixelsHeight"] = "52";
            dictionary["defaultScreenPixelsWidth"] = "101";
            dictionary["inputType"] = "telephoneKeypad";
            dictionary["isColor"] = "false"; 
            dictionary["isMobileDevice"] = "true";
            dictionary["maximumRenderedPageSize"] = "1600"; 
            dictionary["mobileDeviceManufacturer"] = "Ericsson"; 
            dictionary["mobileDeviceModel"] = regexWorker["${deviceID}"];
            dictionary["mobileDeviceVersion"] = regexWorker["${deviceVer}"]; 
            dictionary["numberOfSoftkeys"] = "2";
            dictionary["preferredImageMime"] = "image/vnd.wap.wbmp";
            dictionary["preferredRenderingMime"] = "text/vnd.wap.wml";
            dictionary["preferredRenderingType"] = "wml11"; 
            dictionary["requiresAdaptiveErrorReporting"] = "true";
            dictionary["screenBitDepth"] = "1"; 
            dictionary["type"] = regexWorker["Ericsson ${deviceID}"]; 
            browserCaps.HtmlTextWriter = "System.Web.UI.XhtmlTextWriter";
            browserCaps.AddBrowser("Ericsson"); 
            this.EricssonProcessGateways(headers, browserCaps);
            // gateway, parent=Ericsson
            this.SonyericssonProcess(headers, browserCaps);
            bool ignoreApplicationBrowsers = true; 
            // browser, parent=Ericsson
            if (this.Ericssonr320Process(headers, browserCaps)) { 
            } 
            else {
                if (this.Ericssont20Process(headers, browserCaps)) { 
                }
                else {
                    if (this.Ericssont65Process(headers, browserCaps)) {
                    } 
                    else {
                        if (this.Ericssont68Process(headers, browserCaps)) { 
                        } 
                        else {
                            if (this.Ericssont300Process(headers, browserCaps)) { 
                            }
                            else {
                                if (this.Ericssonp800Process(headers, browserCaps)) {
                                } 
                                else {
                                    if (this.Ericssont61Process(headers, browserCaps)) { 
                                    } 
                                    else {
                                        if (this.Ericssont31Process(headers, browserCaps)) { 
                                        }
                                        else {
                                            if (this.Ericssonr520Process(headers, browserCaps)) {
                                            } 
                                            else {
                                                if (this.Ericssona2628Process(headers, browserCaps)) { 
                                                } 
                                                else {
                                                    if (this.Ericssont39Process(headers, browserCaps)) { 
                                                    }
                                                    else {
                                                        ignoreApplicationBrowsers = false;
                                                    } 
                                                }
                                            } 
                                        } 
                                    }
                                } 
                            }
                        }
                    }
                } 
            }
            this.EricssonProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true; 
        }
 
        protected virtual void SonyericssonProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        protected virtual void SonyericssonProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool SonyericssonProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue;
            headerValue = ((string)(browserCaps[string.Empty]));
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "^SonyEricsson"); 
            if ((result == false)) {
                return false; 
            }
            // Capabilities: set capabilities
            dictionary["browser"] = "Sony Ericsson";
            dictionary["mobileDeviceManufacturer"] = "Sony Ericsson"; 
            dictionary["type"] = regexWorker["Sony Ericsson ${mobileDeviceModel}"];
            this.SonyericssonProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false; 
            this.SonyericssonProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }

        protected virtual void Ericssonr320ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void Ericssonr320ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        } 

        private bool Ericssonr320Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["mobileDeviceModel"]));
            bool result; 
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "R320"); 
            if ((result == false)) {
                return false;
            }
            // Capabilities: set capabilities 
            dictionary["maximumRenderedPageSize"] = "3000";
            dictionary["screenCharactersHeight"] = "4"; 
            dictionary["screenCharactersWidth"] = "20"; 
            dictionary["screenPixelsHeight"] = "52";
            dictionary["screenPixelsWidth"] = "101"; 
            browserCaps.AddBrowser("EricssonR320");
            this.Ericssonr320ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false;
            this.Ericssonr320ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 
 
        protected virtual void Ericssont20ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void Ericssont20ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        private bool Ericssont20Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["mobileDeviceModel"]));
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "T20");
            if ((result == false)) { 
                return false; 
            }
            // Capabilities: set capabilities 
            dictionary["canSendMail"] = "false";
            dictionary["maximumRenderedPageSize"] = "1400";
            dictionary["maximumSoftkeyLabelLength"] = "21";
            dictionary["mobileDeviceModel"] = "T20, T20e, T29s"; 
            dictionary["numberOfSoftkeys"] = "1";
            dictionary["requiresUniqueFilePathSuffix"] = "true"; 
            dictionary["screenCharactersHeight"] = "3"; 
            dictionary["screenCharactersWidth"] = "16";
            dictionary["screenPixelsHeight"] = "33"; 
            dictionary["screenPixelsWidth"] = "101";
            dictionary["supportsBold"] = "true";
            dictionary["supportsFontSize"] = "true";
            dictionary["supportsRedirectWithCookie"] = "false"; 
            browserCaps.AddBrowser("EricssonT20");
            this.Ericssont20ProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false; 
            this.Ericssont20ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }

        protected virtual void Ericssont65ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void Ericssont65ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        } 

        private bool Ericssont65Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["mobileDeviceModel"]));
            bool result; 
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "T65"); 
            if ((result == false)) {
                return false;
            }
            // Capabilities: set capabilities 
            dictionary["maximumRenderedPageSize"] = "3000";
            dictionary["maximumSoftkeyLabelLength"] = "21"; 
            dictionary["mobileDeviceModel"] = "Ericsson T65"; 
            dictionary["numberOfSoftkeys"] = "1";
            dictionary["preferredImageMime"] = "image/vnd.wap.wbmp"; 
            dictionary["preferredRenderingType"] = "wml12";
            dictionary["requiresUniqueFilePathSuffix"] = "true";
            dictionary["screenBitDepth"] = "8";
            dictionary["screenCharactersHeight"] = "4"; 
            dictionary["screenCharactersWidth"] = "16";
            dictionary["screenPixelsHeight"] = "67"; 
            dictionary["screenPixelsWidth"] = "101"; 
            dictionary["supportsBold"] = "true";
            dictionary["supportsFontSize"] = "true"; 
            dictionary["supportsRedirectWithCookie"] = "false";
            browserCaps.AddBrowser("EricssonT65");
            this.Ericssont65ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Ericssont65ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        } 

        protected virtual void Ericssont68ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        protected virtual void Ericssont68ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool Ericssont68Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["mobileDeviceModel"]));
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "T68"); 
            if ((result == false)) { 
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["canSendMail"] = "false";
            dictionary["isColor"] = "true";
            dictionary["numberOfSoftkeys"] = "1"; 
            dictionary["rendersBreaksAfterWmlInput"] = "true";
            dictionary["rendersWmlDoAcceptsInline"] = "false"; 
            dictionary["requiresUniqueFilePathSuffix"] = "true"; 
            dictionary["screenBitDepth"] = "8";
            dictionary["screenCharactersHeight"] = "5"; 
            dictionary["screenCharactersWidth"] = "16";
            dictionary["screenPixelsHeight"] = "80";
            dictionary["screenPixelsWidth"] = "101";
            dictionary["supportsBold"] = "true"; 
            dictionary["supportsFontSize"] = "true";
            browserCaps.AddBrowser("EricssonT68"); 
            this.Ericssont68ProcessGateways(headers, browserCaps); 
            // gateway, parent=EricssonT68
            this.Ericssont68upgatewayProcess(headers, browserCaps); 
            bool ignoreApplicationBrowsers = true;
            // browser, parent=EricssonT68
            if (this.Ericsson301aProcess(headers, browserCaps)) {
            } 
            else {
                if (this.Ericssont68r1aProcess(headers, browserCaps)) { 
                } 
                else {
                    if (this.Ericssont68r101Process(headers, browserCaps)) { 
                    }
                    else {
                        if (this.Ericssont68r201aProcess(headers, browserCaps)) {
                        } 
                        else {
                            ignoreApplicationBrowsers = false; 
                        } 
                    }
                } 
            }
            this.Ericssont68ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        } 

        protected virtual void Ericssont68upgatewayProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        } 

        protected virtual void Ericssont68upgatewayProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        private bool Ericssont68upgatewayProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue; 
            headerValue = ((string)(browserCaps[string.Empty]));
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "UP\\.Link");
            if ((result == false)) { 
                return false;
            } 
            // Capabilities: set capabilities 
            dictionary["cookies"] = "true";
            this.Ericssont68upgatewayProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.Ericssont68upgatewayProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        } 

        protected virtual void Ericsson301aProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        } 

        protected virtual void Ericsson301aProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        private bool Ericsson301aProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue; 
            headerValue = ((string)(dictionary["mobileDeviceVersion"]));
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "R301A");
            if ((result == false)) { 
                return false;
            } 
            // Capabilities: set capabilities 
            dictionary["breaksOnInlineElements"] = "false";
            dictionary["canInitiateVoiceCall"] = "true"; 
            dictionary["canSendMail"] = "true";
            dictionary["displaysAccessKeysAutomatically"] = "true";
            dictionary["maximumRenderedPageSize"] = "2800";
            dictionary["preferredImageMime"] = "image/gif"; 
            dictionary["preferredRenderingMime"] = "application/xhtml+xml";
            dictionary["preferredRenderingType"] = "xhtml-basic"; 
            dictionary["requiresAbsolutePostbackUrl"] = "false"; 
            dictionary["requiresCommentInStyleElement"] = "false";
            dictionary["requiresHiddenFieldValues"] = "true"; 
            dictionary["requiresHtmlAdaptiveErrorReporting"] = "true";
            dictionary["requiresNewLineSuppression"] = "true";
            dictionary["requiresOnEnterForwardForCheckboxLists"] = "false";
            dictionary["requiresXhtmlCssSuppression"] = "true"; 
            dictionary["screenBitDepth"] = "24";
            dictionary["screenPixelsHeight"] = "72"; 
            dictionary["screenPixelsWidth"] = "96"; 
            dictionary["supportsAccessKeyAttribute"] = "true";
            dictionary["supportsBodyClassAttribute"] = "true"; 
            dictionary["supportsBodyColor"] = "false";
            dictionary["supportsBold"] = "false";
            dictionary["supportsDivAlign"] = "false";
            dictionary["supportsFontColor"] = "false"; 
            dictionary["supportsFontSize"] = "false";
            dictionary["supportsSelectFollowingTable"] = "true"; 
            dictionary["supportsStyleElement"] = "false"; 
            dictionary["supportsUrlAttributeEncoding"] = "true";
            dictionary["usePOverDiv"] = "true"; 
            browserCaps.AddBrowser("Ericsson301A");
            this.Ericsson301aProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false;
            this.Ericsson301aProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 
 
        protected virtual void Ericssont300ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void Ericssont300ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        private bool Ericssont300Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["mobileDeviceModel"]));
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "T300");
            if ((result == false)) { 
                return false; 
            }
            // Capabilities: set capabilities 
            dictionary["breaksOnBlockElements"] = "false";
            dictionary["breaksOnInlineElements"] = "false";
            dictionary["canInitiateVoiceCall"] = "true";
            dictionary["cookies"] = "true"; 
            dictionary["displaysAccessKeysAutomatically"] = "true";
            dictionary["ExchangeOmaSupported"] = "true"; 
            dictionary["isColor"] = "true"; 
            dictionary["maximumRenderedPageSize"] = "2800";
            dictionary["preferredImageMime"] = "image/gif"; 
            dictionary["preferredRenderingMime"] = "application/xhtml+xml";
            dictionary["preferredRenderingType"] = "xhtml-basic";
            dictionary["requiresAbsolutePostbackUrl"] = "false";
            dictionary["requiresCommentInStyleElement"] = "false"; 
            dictionary["requiresHiddenFieldValues"] = "true";
            dictionary["requiresHtmlAdaptiveErrorReporting"] = "true"; 
            dictionary["requiresOnEnterForwardForCheckboxLists"] = "false"; 
            dictionary["requiresXhtmlCssSuppression"] = "true";
            dictionary["screenBitDepth"] = "8"; 
            dictionary["screenCharactersHeight"] = "5";
            dictionary["screenCharactersWidth"] = "15";
            dictionary["screenPixelsHeight"] = "72";
            dictionary["screenPixelsWidth"] = "96"; 
            dictionary["supportsAccessKeyAttribute"] = "true";
            dictionary["supportsBodyClassAttribute"] = "true"; 
            dictionary["supportsBodyColor"] = "false"; 
            dictionary["supportsDivAlign"] = "false";
            dictionary["supportsFontColor"] = "false"; 
            dictionary["supportsSelectFollowingTable"] = "true";
            dictionary["supportsStyleElement"] = "false";
            dictionary["supportsUrlAttributeEncoding"] = "true";
            dictionary["supportsWtai"] = "true"; 
            dictionary["tables"] = "false";
            browserCaps.AddBrowser("EricssonT300"); 
            this.Ericssont300ProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.Ericssont300ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        }

        protected virtual void Ericssonp800ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void Ericssonp800ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool Ericssonp800Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["mobileDeviceModel"])); 
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "P800");
            if ((result == false)) {
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["breaksOnInlineElements"] = "false"; 
            dictionary["browser"] = "Sony Ericsson"; 
            dictionary["cookies"] = "true";
            dictionary["inputType"] = "virtualKeyboard"; 
            dictionary["isColor"] = "true";
            dictionary["mobileDeviceManufacturer"] = "Sony Ericsson";
            dictionary["preferredImageMime"] = "image/jpeg";
            dictionary["preferredRenderingMime"] = "application/xhtml+xml"; 
            dictionary["preferredRenderingType"] = "xhtml-basic";
            dictionary["requiresAbsolutePostbackUrl"] = "false"; 
            dictionary["requiresCommentInStyleElement"] = "false"; 
            dictionary["requiresHiddenFieldValues"] = "true";
            dictionary["requiresHtmlAdaptiveErrorReporting"] = "true"; 
            dictionary["requiresOnEnterForwardForCheckboxLists"] = "false";
            dictionary["requiresXhtmlCssSuppression"] = "false";
            dictionary["screenBitDepth"] = "24";
            dictionary["screenCharactersHeight"] = "16"; 
            dictionary["screenCharactersWidth"] = "28";
            dictionary["screenPixelsHeight"] = "320"; 
            dictionary["screenPixelsWidth"] = "208"; 
            dictionary["supportsBodyClassAttribute"] = "true";
            dictionary["supportsBold"] = "true"; 
            dictionary["supportsCss"] = "true";
            dictionary["supportsFontSize"] = "true";
            dictionary["supportsItalic"] = "true";
            dictionary["supportsMultilineTextBoxDisplay"] = "true"; 
            dictionary["supportsSelectFollowingTable"] = "true";
            dictionary["supportsStyleElement"] = "true"; 
            dictionary["supportsUrlAttributeEncoding"] = "true"; 
            dictionary["tables"] = "true";
            browserCaps.AddBrowser("EricssonP800"); 
            this.Ericssonp800ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = true;
            // browser, parent=EricssonP800
            if (this.Ericssonp800r101Process(headers, browserCaps)) { 
            }
            else { 
                ignoreApplicationBrowsers = false; 
            }
            this.Ericssonp800ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        }

        protected virtual void Ericssonp800r101ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void Ericssonp800r101ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool Ericssonp800r101Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["mobileDeviceVersion"])); 
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "R101");
            if ((result == false)) {
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["maximumRenderedPageSize"] = "10000"; 
            browserCaps.AddBrowser("EricssonP800R101"); 
            this.Ericssonp800r101ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Ericssonp800r101ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        }
 
        protected virtual void Ericssont61ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        protected virtual void Ericssont61ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool Ericssont61Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["mobileDeviceModel"])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "T610|T616|T618");
            if ((result == false)) {
                return false; 
            }
            // Capabilities: set capabilities 
            dictionary["breaksOnInlineElements"] = "false"; 
            dictionary["canInitiateVoiceCall"] = "true";
            dictionary["cookies"] = "true"; 
            dictionary["ExchangeOmaSupported"] = "true";
            dictionary["isColor"] = "true";
            dictionary["maximumRenderedPageSize"] = "9800";
            dictionary["preferredImageMime"] = "image/gif"; 
            dictionary["preferredRenderingMime"] = "application/xhtml+xml";
            dictionary["preferredRenderingType"] = "xhtml-basic"; 
            dictionary["requiresAbsolutePostbackUrl"] = "false"; 
            dictionary["requiresCommentInStyleElement"] = "false";
            dictionary["requiresHiddenFieldValues"] = "true"; 
            dictionary["requiredOnEnterForwardForCheckboxLists"] = "false";
            dictionary["requiresXhtmlCssSuppression"] = "false";
            dictionary["screenBitDepth"] = "24";
            dictionary["screenCharactersHeight"] = "8"; 
            dictionary["screenCharactersWidth"] = "20";
            dictionary["screenPixelsHeight"] = "160"; 
            dictionary["screenPixelsWidth"] = "128"; 
            dictionary["supportsAccessKeyAttribute"] = "true";
            dictionary["supportsBodyClassAttribute"] = "true"; 
            dictionary["supportsBold"] = "true";
            dictionary["supportsCss"] = "true";
            dictionary["supportsEmptyStringInCookieValue"] = "false";
            dictionary["supportsFontSize"] = "true"; 
            dictionary["supportsItalic"] = "true";
            dictionary["supportsNoWrapStyle"] = "false"; 
            dictionary["supportsSelectFollowingTable"] = "false"; 
            dictionary["supportsStyleElement"] = "true";
            dictionary["supportsTitleElement"] = "true"; 
            dictionary["supportsUrlAttributeEncoding"] = "true";
            browserCaps.AddBrowser("EricssonT61");
            this.Ericssont61ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Ericssont61ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        } 

        protected virtual void Ericssont31ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        protected virtual void Ericssont31ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool Ericssont31Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["mobileDeviceModel"]));
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "T310|T312|T316"); 
            if ((result == false)) { 
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["breaksOnBlockElements"] = "false";
            dictionary["breaksOnInlineElements"] = "false";
            dictionary["canInitiateVoiceCall"] = "false"; 
            dictionary["cookies"] = "true";
            dictionary["displaysAccessKeysAutomatically"] = "true"; 
            dictionary["ExchangeOmaSupported"] = "true"; 
            dictionary["isColor"] = "true";
            dictionary["maximumRenderedPageSize"] = "2800"; 
            dictionary["preferredImageMime"] = "image/jpeg";
            dictionary["preferredRenderingMime"] = "application/xhtml+xml";
            dictionary["preferredRenderingType"] = "xhtml-basic";
            dictionary["requiresAbsolutePostbackUrl"] = "false"; 
            dictionary["requiresCommentInStyleElement"] = "false";
            dictionary["requiresHiddenFieldValues"] = "true"; 
            dictionary["requiresOnEnterForwardForCheckboxLists"] = "false"; 
            dictionary["requiresXhtmlCssSuppression"] = "true";
            dictionary["screenBitDepth"] = "8"; 
            dictionary["screenCharactersHeight"] = "5";
            dictionary["screenCharactersWidth"] = "15";
            dictionary["screenPixelsHeight"] = "80";
            dictionary["screenPixelsWidth"] = "101"; 
            dictionary["supportsAccessKeyAttribute"] = "true";
            dictionary["supportsBodyClassAttribute"] = "true"; 
            dictionary["supportsBodyColor"] = "false"; 
            dictionary["supportsDivAlign"] = "false";
            dictionary["supportsFontColor"] = "false"; 
            dictionary["supportsNoWrapStyle"] = "false";
            dictionary["supportsSelectFollowingTable"] = "true";
            dictionary["supportsStyleElement"] = "false";
            dictionary["supportsTitleElement"] = "true"; 
            dictionary["supportsUrlAttributeEncoding"] = "true";
            browserCaps.AddBrowser("EricssonT31"); 
            this.Ericssont31ProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.Ericssont31ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        }

        protected virtual void Ericssont68r1aProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void Ericssont68r1aProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool Ericssont68r1aProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["mobileDeviceVersion"])); 
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "R1A");
            if ((result == false)) {
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["canInitiateVoiceCall"] = "false"; 
            dictionary["maximumRenderedPageSize"] = "5000"; 
            dictionary["maximumSoftkeyLabelLength"] = "14";
            dictionary["preferredImageMime"] = "image/gif"; 
            dictionary["rendersWmlDoAcceptsInline"] = "true";
            browserCaps.AddBrowser("EricssonT68R1A");
            this.Ericssont68r1aProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Ericssont68r1aProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        } 

        protected virtual void Ericssont68r101ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        protected virtual void Ericssont68r101ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool Ericssont68r101Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["mobileDeviceVersion"]));
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "R101"); 
            if ((result == false)) { 
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["maximumRenderedPageSize"] = "2900";
            dictionary["maximumSoftkeyLabelLength"] = "21";
            dictionary["preferredImageMime"] = "image/gif"; 
            dictionary["requiresNoSoftkeyLabels"] = "true";
            browserCaps.AddBrowser("EricssonT68R101"); 
            this.Ericssont68r101ProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.Ericssont68r101ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        }

        protected virtual void Ericssont68r201aProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void Ericssont68r201aProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool Ericssont68r201aProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["mobileDeviceVersion"])); 
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "R201A");
            if ((result == false)) {
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["canSendMail"] = "true"; 
            dictionary["maximumRenderedPageSize"] = "2900"; 
            dictionary["maximumSoftkeyLabelLength"] = "21";
            dictionary["preferredImageMime"] = "image/jpeg"; 
            dictionary["preferredRenderingType"] = "wml12";
            dictionary["screenBitDepth"] = "24";
            browserCaps.AddBrowser("EricssonT68R201A");
            this.Ericssont68r201aProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.Ericssont68r201aProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true; 
        }
 
        protected virtual void Ericssonr520ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        protected virtual void Ericssonr520ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool Ericssonr520Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue;
            headerValue = ((string)(dictionary["mobileDeviceModel"]));
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "R520"); 
            if ((result == false)) {
                return false; 
            }
            // Capabilities: set capabilities
            dictionary["maximumRenderedPageSize"] = "1600";
            dictionary["screenBitDepth"] = "2"; 
            dictionary["screenCharactersHeight"] = "4";
            dictionary["screenCharactersWidth"] = "20"; 
            dictionary["screenPixelsHeight"] = "67"; 
            dictionary["screenPixelsWidth"] = "101";
            browserCaps.AddBrowser("EricssonR520"); 
            this.Ericssonr520ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false;
            this.Ericssonr520ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }
 
        protected virtual void Ericssona2628ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void Ericssona2628ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        private bool Ericssona2628Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["mobileDeviceModel"])); 
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "A2628"); 
            if ((result == false)) {
                return false; 
            } 
            // Capabilities: set capabilities
            dictionary["maximumRenderedPageSize"] = "1600"; 
            dictionary["screenCharactersHeight"] = "4";
            dictionary["screenCharactersWidth"] = "20";
            dictionary["screenPixelsHeight"] = "54";
            dictionary["screenPixelsWidth"] = "101"; 
            browserCaps.AddBrowser("EricssonA2628");
            this.Ericssona2628ProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false; 
            this.Ericssona2628ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }

        protected virtual void Ericssont39ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void Ericssont39ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        } 

        private bool Ericssont39Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["mobileDeviceModel"]));
            bool result; 
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "T39"); 
            if ((result == false)) {
                return false;
            }
            // Capabilities: set capabilities 
            dictionary["canInitiateVoiceCall"] = "true";
            dictionary["inputType"] = "telephoneKeypad"; 
            dictionary["maximumRenderedPageSize"] = "3000"; 
            dictionary["maximumSoftkeyLabelLength"] = "21";
            dictionary["mobileDeviceManufacturer"] = "Ericsson"; 
            dictionary["mobileDeviceModel"] = "Ericsson T39";
            dictionary["preferredImageMime"] = "image/gif";
            dictionary["preferredRenderingMime"] = "text/vnd.wap.wml";
            dictionary["preferredRenderingType"] = "wml12"; 
            dictionary["screenBitDepth"] = "8";
            dictionary["screenCharactersHeight"] = "3"; 
            dictionary["screenCharactersWidth"] = "16"; 
            dictionary["screenPixelsHeight"] = "54";
            dictionary["screenPixelsWidth"] = "101"; 
            dictionary["supportsFontSize"] = "true";
            dictionary["supportsItalic"] = "false";
            dictionary["supportsRedirectWithCookie"] = "false";
            browserCaps.AddBrowser("EricssonT39"); 
            this.Ericssont39ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Ericssont39ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 

        protected virtual void EzwapProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        protected virtual void EzwapProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        private bool EzwapProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification:
            string headerValue;
            headerValue = ((string)(browserCaps[string.Empty])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "EzWAP (?\'browserMajorVersion\'\\d+)(?\'browserMinorVersion\'\\.\\d+)");
            if ((result == false)) { 
                return false;
            }
            // Capabilities: set capabilities
            dictionary["browser"] = "EzWAP"; 
            dictionary["canSendMail"] = "false";
            dictionary["inputType"] = "virtualKeyboard"; 
            dictionary["isColor"] = "true"; 
            dictionary["isMobileDevice"] = "true";
            dictionary["majorVersion"] = regexWorker["${browserMajorVersion}"]; 
            dictionary["maximumRenderedPageSize"] = "10000";
            dictionary["minorVersion"] = regexWorker["${browserMinorVersion}"];
            dictionary["preferredImageMime"] = "image/jpeg";
            dictionary["preferredRenderingType"] = "xhtml-basic"; 
            dictionary["requiresXhtmlCssSuppression"] = "true";
            dictionary["screenBitDepth"] = "16"; 
            dictionary["screenCharactersHeight"] = "12"; 
            dictionary["screenCharactersWidth"] = "33";
            dictionary["screenPixelsHeight"] = "320"; 
            dictionary["screenPixelsWidth"] = "240";
            dictionary["supportsBodyColor"] = "false";
            dictionary["supportsDivAlign"] = "false";
            dictionary["supportsFontColor"] = "false"; 
            dictionary["supportsStyleElement"] = "false";
            dictionary["supportsUrlAttributeEncoding"] = "false"; 
            dictionary["tables"] = "true"; 
            dictionary["version"] = regexWorker["${browserMajorVersion}${browserMinorVersion}"];
            browserCaps.AddBrowser("EzWAP"); 
            this.EzwapProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false;
            this.EzwapProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }
 
        protected virtual void NokiagatewayProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void NokiagatewayProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        private bool NokiagatewayProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification: 
            string headerValue;
            headerValue = ((string)(headers["VIA"])); 
            if (string.IsNullOrEmpty(headerValue)) {
                return false;
            }
            headerValue = ((string)(headers["VIA"])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "(?\'nokiaVersion\'Nokia\\D*(?\'gatewayMajorVersion\'\\d+)(?\'gatewayMinorVersion\'\\.\\d+)[" +
                    "^,]*)"); 
            if ((result == false)) {
                return false;
            }
            browserCaps.DisableOptimizedCacheKey(); 
            // Capabilities: set capabilities
            dictionary["gatewayMajorVersion"] = regexWorker["${gatewayMajorVersion}"]; 
            dictionary["gatewayMinorVersion"] = regexWorker["${gatewayMinorVersion}"]; 
            dictionary["gatewayVersion"] = regexWorker["${nokiaVersion}"];
            this.NokiagatewayProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.NokiagatewayProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        } 

        protected virtual void UpgatewayProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        } 

        protected virtual void UpgatewayProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        private bool UpgatewayProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue; 
            headerValue = ((string)(browserCaps[string.Empty]));
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "UP\\.Link/");
            if ((result == false)) { 
                return false;
            } 
            // Capture: header values 
            regexWorker.ProcessRegex(((string)(browserCaps[string.Empty])), "(?\'goWebUPGateway\'Go\\.Web)");
            // Capabilities: set capabilities 
            dictionary["isGoWebUpGateway"] = regexWorker["${goWebUPGateway}"];
            this.UpgatewayProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = true;
            // browser, parent=UPGateway 
            if (this.UpnongogatewayProcess(headers, browserCaps)) {
            } 
            else { 
                ignoreApplicationBrowsers = false;
            } 
            this.UpgatewayProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        }
 
        protected virtual void UpnongogatewayProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        protected virtual void UpnongogatewayProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool UpnongogatewayProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(browserCaps[string.Empty])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "UP\\.Link/(?\'gatewayMajorVersion\'\\d*)(?\'gatewayMinorVersion\'\\.\\d*)(?\'other\'\\S*)");
            if ((result == false)) {
                return false; 
            }
            // Identification: 
            headerValue = ((string)(dictionary["isGoWebUpGateway"])); 
            result = regexWorker.ProcessRegex(headerValue, "^$");
            if ((result == false)) { 
                return false;
            }
            // Capabilities: set capabilities
            dictionary["gatewayMajorVersion"] = regexWorker["${gatewayMajorVersion}"]; 
            dictionary["gatewayMinorVersion"] = regexWorker["${gatewayMinorVersion}"];
            dictionary["gatewayVersion"] = regexWorker["UP.Link/${gatewayMajorVersion}${gatewayMinorVersion}${other}"]; 
            this.UpnongogatewayProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.UpnongogatewayProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        }

        protected virtual void CrawlerProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void CrawlerProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool CrawlerProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(browserCaps[string.Empty])); 
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "crawler|Crawler|Googlebot|msnbot");
            if ((result == false)) {
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["crawler"] = "true"; 
            this.CrawlerProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.CrawlerProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        }

        protected virtual void ColorProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void ColorProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool ColorProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(headers["UA-COLOR"])); 
            if (string.IsNullOrEmpty(headerValue)) { 
                return false;
            } 
            headerValue = ((string)(headers["UA-COLOR"]));
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "color(?\'colorDepth\'\\d+)");
            if ((result == false)) { 
                return false; 
            }
            browserCaps.DisableOptimizedCacheKey(); 
            // Capabilities: set capabilities
            dictionary["isColor"] = "true";
            dictionary["screenBitDepth"] = regexWorker["${colorDepth}"];
            this.ColorProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.ColorProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true; 
        }
 
        protected virtual void MonoProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        protected virtual void MonoProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool MonoProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue;
            headerValue = ((string)(headers["UA-COLOR"]));
            if (string.IsNullOrEmpty(headerValue)) { 
                return false;
            } 
            headerValue = ((string)(headers["UA-COLOR"])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "mono(?\'colorDepth\'\\d+)");
            if ((result == false)) {
                return false; 
            }
            browserCaps.DisableOptimizedCacheKey(); 
            // Capabilities: set capabilities 
            dictionary["isColor"] = "false";
            dictionary["screenBitDepth"] = regexWorker["${colorDepth}"]; 
            this.MonoProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false;
            this.MonoProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }
 
        protected virtual void PixelsProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void PixelsProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        private bool PixelsProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification: 
            string headerValue;
            headerValue = ((string)(headers["UA-PIXELS"])); 
            if (string.IsNullOrEmpty(headerValue)) {
                return false;
            }
            headerValue = ((string)(headers["UA-PIXELS"])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "(?\'screenWidth\'\\d+)x(?\'screenHeight\'\\d+)");
            if ((result == false)) { 
                return false;
            }
            browserCaps.DisableOptimizedCacheKey();
            // Capabilities: set capabilities 
            dictionary["screenPixelsHeight"] = regexWorker["${screenHeight}"];
            dictionary["screenPixelsWidth"] = regexWorker["${screenWidth}"]; 
            this.PixelsProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.PixelsProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        }

        protected virtual void VoiceProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void VoiceProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool VoiceProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(headers["UA-VOICE"])); 
            if (string.IsNullOrEmpty(headerValue)) { 
                return false;
            } 
            headerValue = ((string)(headers["UA-VOICE"]));
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "(?i:TRUE)");
            if ((result == false)) { 
                return false; 
            }
            browserCaps.DisableOptimizedCacheKey(); 
            // Capabilities: set capabilities
            dictionary["canInitiateVoiceCall"] = "true";
            this.VoiceProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.VoiceProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        } 

        protected virtual void CharsetProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        protected virtual void CharsetProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool CharsetProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(headers["X-UP-DEVCAP-CHARSET"]));
            if (string.IsNullOrEmpty(headerValue)) {
                return false; 
            }
            headerValue = ((string)(headers["X-UP-DEVCAP-CHARSET"])); 
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "(?i)^Shift_JIS$");
            if ((result == false)) {
                return false;
            } 
            headerValue = ((string)(browserCaps[string.Empty]));
            result = regexWorker.ProcessRegex(headerValue, "(UP/\\S* UP\\.Browser/3\\.\\[3-9]d*)|(UP\\.Browser/3\\.\\[3-9]d*)|(UP\\.Browser/3\\.\\[3-9]" + 
                    "d*)"); 
            if ((result == false)) {
                return false; 
            }
            browserCaps.DisableOptimizedCacheKey();
            // Capabilities: set capabilities
            dictionary["canSendMail"] = "true"; 
            this.CharsetProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.CharsetProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 

        protected virtual void PlatformProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        protected virtual void PlatformProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        private bool PlatformProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification:
            string headerValue;
            headerValue = ((string)(browserCaps[string.Empty])); 
            if (string.IsNullOrEmpty(headerValue)) {
                return false; 
            } 
            // Capabilities: set capabilities
            this.PlatformProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = true;
            // browser, parent=Platform
            if (this.PlatformwinntProcess(headers, browserCaps)) {
            } 
            else {
                if (this.Platformwin2000bProcess(headers, browserCaps)) { 
                } 
                else {
                    if (this.Platformwin95Process(headers, browserCaps)) { 
                    }
                    else {
                        if (this.Platformwin98Process(headers, browserCaps)) {
                        } 
                        else {
                            if (this.Platformwin16Process(headers, browserCaps)) { 
                            } 
                            else {
                                if (this.PlatformwinceProcess(headers, browserCaps)) { 
                                }
                                else {
                                    if (this.Platformmac68kProcess(headers, browserCaps)) {
                                    } 
                                    else {
                                        if (this.PlatformmacppcProcess(headers, browserCaps)) { 
                                        } 
                                        else {
                                            if (this.PlatformunixProcess(headers, browserCaps)) { 
                                            }
                                            else {
                                                if (this.PlatformwebtvProcess(headers, browserCaps)) {
                                                } 
                                                else {
                                                    ignoreApplicationBrowsers = false; 
                                                } 
                                            }
                                        } 
                                    }
                                }
                            }
                        } 
                    }
                } 
            } 
            this.PlatformProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }

        protected virtual void PlatformwinntProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void PlatformwinntProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        } 

        private bool PlatformwinntProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification:
            string headerValue; 
            headerValue = ((string)(browserCaps[string.Empty]));
            bool result; 
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "Windows NT|WinNT|Windows XP"); 
            if ((result == false)) {
                return false;
            }
            headerValue = ((string)(browserCaps[string.Empty])); 
            result = regexWorker.ProcessRegex(headerValue, "WinCE|Windows CE");
            if ((result == true)) { 
                return false; 
            }
            // Capabilities: set capabilities 
            dictionary["platform"] = "WinNT";
            this.PlatformwinntProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = true;
            // browser, parent=PlatformWinnt 
            if (this.PlatformwinxpProcess(headers, browserCaps)) {
            } 
            else { 
                if (this.Platformwin2000aProcess(headers, browserCaps)) {
                } 
                else {
                    ignoreApplicationBrowsers = false;
                }
            } 
            this.PlatformwinntProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        } 

        protected virtual void PlatformwinxpProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        protected virtual void PlatformwinxpProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool PlatformwinxpProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(browserCaps[string.Empty]));
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "Windows (NT 5\\.1|XP)"); 
            if ((result == false)) { 
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["platform"] = "WinXP";
            this.PlatformwinxpProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.PlatformwinxpProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        } 

        protected virtual void Platformwin2000aProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        protected virtual void Platformwin2000aProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool Platformwin2000aProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(browserCaps[string.Empty]));
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "Windows NT 5\\.0"); 
            if ((result == false)) { 
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["platform"] = "Win2000";
            this.Platformwin2000aProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Platformwin2000aProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        } 

        protected virtual void Platformwin2000bProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        protected virtual void Platformwin2000bProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool Platformwin2000bProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(browserCaps[string.Empty]));
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "Windows 2000"); 
            if ((result == false)) { 
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["platform"] = "Win2000";
            this.Platformwin2000bProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Platformwin2000bProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        } 

        protected virtual void Platformwin95ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        protected virtual void Platformwin95ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool Platformwin95Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(browserCaps[string.Empty]));
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "Win(dows )?95"); 
            if ((result == false)) { 
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["platform"] = "Win95";
            this.Platformwin95ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Platformwin95ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        } 

        protected virtual void Platformwin98ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        protected virtual void Platformwin98ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool Platformwin98Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(browserCaps[string.Empty]));
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "Win(dows )?98"); 
            if ((result == false)) { 
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["platform"] = "Win98";
            this.Platformwin98ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Platformwin98ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        } 

        protected virtual void Platformwin16ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        protected virtual void Platformwin16ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool Platformwin16Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(browserCaps[string.Empty]));
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "Win(dows 3\\.1|16)"); 
            if ((result == false)) { 
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["platform"] = "Win16";
            this.Platformwin16ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Platformwin16ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        } 

        protected virtual void PlatformwinceProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        protected virtual void PlatformwinceProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool PlatformwinceProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(browserCaps[string.Empty]));
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "Win(dows )?CE"); 
            if ((result == false)) { 
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["platform"] = "WinCE";
            this.PlatformwinceProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.PlatformwinceProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        } 

        protected virtual void Platformmac68kProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        protected virtual void Platformmac68kProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool Platformmac68kProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(browserCaps[string.Empty]));
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "Mac(_68(000|K)|intosh.*68K)"); 
            if ((result == false)) { 
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["platform"] = "Mac68K";
            this.Platformmac68kProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Platformmac68kProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        } 

        protected virtual void PlatformmacppcProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        protected virtual void PlatformmacppcProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool PlatformmacppcProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(browserCaps[string.Empty]));
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "Mac(_PowerPC|intosh.*PPC|_PPC)|PPC Mac"); 
            if ((result == false)) { 
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["platform"] = "MacPPC";
            this.PlatformmacppcProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.PlatformmacppcProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        } 

        protected virtual void PlatformunixProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        protected virtual void PlatformunixProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool PlatformunixProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(browserCaps[string.Empty]));
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "X11"); 
            if ((result == false)) { 
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["platform"] = "UNIX";
            this.PlatformunixProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.PlatformunixProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        } 

        protected virtual void PlatformwebtvProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        protected virtual void PlatformwebtvProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool PlatformwebtvProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(browserCaps[string.Empty]));
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "WebTV"); 
            if ((result == false)) { 
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["platform"] = "WebTV";
            this.PlatformwebtvProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.PlatformwebtvProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        } 

        protected virtual void WinProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        protected virtual void WinProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool WinProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(browserCaps[string.Empty]));
            if (string.IsNullOrEmpty(headerValue)) {
                return false; 
            }
            // Capabilities: set capabilities 
            this.WinProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = true;
            // browser, parent=Win 
            if (this.Win32Process(headers, browserCaps)) {
            }
            else {
                if (this.Win16Process(headers, browserCaps)) { 
                }
                else { 
                    ignoreApplicationBrowsers = false; 
                }
            } 
            this.WinProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        }
 
        protected virtual void Win32ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        protected virtual void Win32ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool Win32Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(browserCaps[string.Empty])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "Win(dows )?(9[58]|NT|32)");
            if ((result == false)) {
                return false; 
            }
            // Capabilities: set capabilities 
            dictionary["win32"] = "true"; 
            this.Win32ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Win32ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        }
 
        protected virtual void Win16ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        protected virtual void Win16ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool Win16Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(browserCaps[string.Empty])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "16bit|Win(dows 3\\.1|16)");
            if ((result == false)) {
                return false; 
            }
            // Capabilities: set capabilities 
            dictionary["win16"] = "true"; 
            this.Win16ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Win16ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        }
 
        protected virtual void GenericdownlevelProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        protected virtual void GenericdownlevelProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool GenericdownlevelProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(browserCaps[string.Empty])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "^Generic Downlevel$");
            if ((result == false)) {
                return false; 
            }
            // Capabilities: set capabilities 
            dictionary["cookies"] = "false"; 
            dictionary["ecmascriptversion"] = "1.0";
            dictionary["tables"] = "true"; 
            dictionary["type"] = "Downlevel";
            browserCaps.Adapters["System.Web.UI.WebControls.Menu, System.Web, Version=2.0.0.0, Culture=neutral, Pub" +
                "licKeyToken=b03f5f7f11d50a3a"] = "System.Web.UI.WebControls.Adapters.MenuAdapter";
            browserCaps.AddBrowser("GenericDownlevel"); 
            this.GenericdownlevelProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.GenericdownlevelProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 

        protected virtual void GoamericaProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        protected virtual void GoamericaProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        private bool GoamericaProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification:
            string headerValue;
            headerValue = ((string)(browserCaps[string.Empty])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "Go\\.Web/(?\'browserMajorVersion\'\\w*)(?\'browserMinorVersion\'\\.\\w*)");
            if ((result == false)) { 
                return false;
            }
            // Capabilities: set capabilities
            dictionary["BackgroundSounds"] = "true"; 
            dictionary["browser"] = "Go.Web";
            dictionary["canSendMail"] = "false"; 
            dictionary["cookies"] = "true"; 
            dictionary["defaultScreenCharactersHeight"] = "6";
            dictionary["defaultScreenCharactersWidth"] = "12"; 
            dictionary["defaultScreenPixelsHeight"] = "72";
            dictionary["defaultScreenPixelsWidth"] = "96";
            dictionary["isMobileDevice"] = "true";
            dictionary["javaapplets"] = "false"; 
            dictionary["javascript"] = "false";
            dictionary["majorVersion"] = regexWorker["${browserMajorVersion}"]; 
            dictionary["maximumRenderedPageSize"] = "6000"; 
            dictionary["minorVersion"] = regexWorker["${browserMinorVersion}"];
            dictionary["rendersBreaksAfterHtmlLists"] = "false"; 
            dictionary["requiredMetaTagNameValue"] = "HandheldFriendly";
            dictionary["requiresAdaptiveErrorReporting"] = "true";
            dictionary["requiresAttributeColonSubstitution"] = "true";
            dictionary["requiresNoBreakInFormatting"] = "true"; 
            dictionary["requiresUniqueHtmlCheckboxNames"] = "true";
            dictionary["screenBitDepth"] = "2"; 
            dictionary["supportsBodyColor"] = "false"; 
            dictionary["supportsBold"] = "true";
            dictionary["supportsCss"] = "false"; 
            dictionary["supportsDivAlign"] = "false";
            dictionary["supportsFontColor"] = "false";
            dictionary["supportsFontName"] = "false";
            dictionary["supportsFontSize"] = "false"; 
            dictionary["SupportsDivNoWrap"] = "false";
            dictionary["supportsImageSubmit"] = "true"; 
            dictionary["supportsItalic"] = "false"; 
            dictionary["supportsSelectMultiple"] = "false";
            dictionary["type"] = "Go.Web"; 
            dictionary["vbscript"] = "false";
            dictionary["version"] = regexWorker["${browserMajorVersion}${browserMinorVersion}"];
            browserCaps.Adapters["System.Web.UI.WebControls.Menu, System.Web, Version=2.0.0.0, Culture=neutral, Pub" +
                "licKeyToken=b03f5f7f11d50a3a"] = "System.Web.UI.WebControls.Adapters.MenuAdapter"; 
            browserCaps.HtmlTextWriter = "System.Web.UI.Html32TextWriter";
            browserCaps.AddBrowser("Go----"); 
            this.GoamericaProcessGateways(headers, browserCaps); 
            // gateway, parent=Go----
            this.GoamericaupProcess(headers, browserCaps); 
            // gateway, parent=Go----
            this.GatableProcess(headers, browserCaps);
            // gateway, parent=Go----
            this.MaxpagesizeProcess(headers, browserCaps); 
            bool ignoreApplicationBrowsers = true;
            // browser, parent=Go---- 
            if (this.GoamericawinceProcess(headers, browserCaps)) { 
            }
            else { 
                if (this.GoamericapalmProcess(headers, browserCaps)) {
                }
                else {
                    if (this.GoamericarimProcess(headers, browserCaps)) { 
                    }
                    else { 
                        ignoreApplicationBrowsers = false; 
                    }
                } 
            }
            this.GoamericaProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        } 

        protected virtual void GoamericaupProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        } 

        protected virtual void GoamericaupProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        private bool GoamericaupProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue; 
            headerValue = ((string)(browserCaps[string.Empty]));
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "UP\\.Browser");
            if ((result == false)) { 
                return false;
            } 
            // Capabilities: set capabilities 
            dictionary["ecmascriptversion"] = "0.0";
            dictionary["frames"] = "false"; 
            this.GoamericaupProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false;
            this.GoamericaupProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }
 
        protected virtual void GoamericawinceProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void GoamericawinceProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        private bool GoamericawinceProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification: 
            string headerValue;
            headerValue = ((string)(browserCaps[string.Empty])); 
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "WinCE"); 
            if ((result == false)) {
                return false; 
            } 
            // Capabilities: set capabilities
            dictionary["cachesAllResponsesWithExpires"] = "true"; 
            dictionary["defaultScreenCharactersHeight"] = "14";
            dictionary["defaultScreenCharactersWidth"] = "30";
            dictionary["defaultScreenPixelsHeight"] = "320";
            dictionary["defaultScreenPixelsWidth"] = "240"; 
            dictionary["inputType"] = "virtualKeyboard";
            dictionary["isColor"] = "true"; 
            dictionary["maximumRenderedPageSize"] = "300000"; 
            dictionary["mobileDeviceModel"] = "Pocket PC";
            dictionary["platform"] = "WinCE"; 
            dictionary["screenBitDepth"] = "16";
            dictionary["supportsDivAlign"] = "true";
            dictionary["supportsFontColor"] = "true";
            dictionary["supportsFontName"] = "true"; 
            dictionary["supportsFontSize"] = "true";
            dictionary["supportsItalic"] = "true"; 
            dictionary["supportsSelectMultiple"] = "true"; 
            dictionary["tables"] = "true";
            browserCaps.AddBrowser("Go----WinCE"); 
            this.GoamericawinceProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false;
            this.GoamericawinceProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }
 
        protected virtual void GoamericapalmProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void GoamericapalmProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        private bool GoamericapalmProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification: 
            string headerValue;
            headerValue = ((string)(browserCaps[string.Empty])); 
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "Palm"); 
            if ((result == false)) {
                return false; 
            } 
            // Capabilities: set capabilities
            dictionary["cachesAllResponsesWithExpires"] = "true"; 
            dictionary["inputType"] = "virtualKeyboard";
            dictionary["isColor"] = "false";
            dictionary["mobileDeviceManufacturer"] = "PalmOS-licensee";
            dictionary["screenCharactersHeight"] = "12"; 
            dictionary["screenCharactersWidth"] = "36";
            dictionary["screenPixelsHeight"] = "160"; 
            dictionary["screenPixelsWidth"] = "160"; 
            dictionary["supportsUncheck"] = "false";
            browserCaps.AddBrowser("Go----Palm"); 
            this.GoamericapalmProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false;
            this.GoamericapalmProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }
 
        protected virtual void GoamericarimProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void GoamericarimProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        private bool GoamericarimProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification: 
            string headerValue;
            headerValue = ((string)(browserCaps[string.Empty])); 
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "RIM"); 
            if ((result == false)) {
                return false; 
            } 
            // Capabilities: set capabilities
            dictionary["inputType"] = "keyboard"; 
            dictionary["isColor"] = "false";
            dictionary["mobileDeviceManufacturer"] = "RIM";
            dictionary["screenBitDepth"] = "1";
            dictionary["supportsBodyColor"] = "false"; 
            dictionary["supportsCss"] = "false";
            dictionary["supportsDivAlign"] = "false"; 
            dictionary["supportsDivWrap"] = "false"; 
            dictionary["supportsFontColor"] = "false";
            dictionary["supportsFontName"] = "false"; 
            dictionary["supportsFontSize"] = "false";
            dictionary["supportsFontItalic"] = "false";
            browserCaps.AddBrowser("Go----RIM");
            this.GoamericarimProcessGateways(headers, browserCaps); 
            // gateway, parent=Go----RIM
            this.GoamericanonuprimProcess(headers, browserCaps); 
            bool ignoreApplicationBrowsers = true; 
            // browser, parent=Go----RIM
            if (this.Goamericarim950Process(headers, browserCaps)) { 
            }
            else {
                if (this.Goamericarim850Process(headers, browserCaps)) {
                } 
                else {
                    if (this.Goamericarim957Process(headers, browserCaps)) { 
                    } 
                    else {
                        if (this.Goamericarim857Process(headers, browserCaps)) { 
                        }
                        else {
                            ignoreApplicationBrowsers = false;
                        } 
                    }
                } 
            } 
            this.GoamericarimProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }

        protected virtual void GoamericanonuprimProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void GoamericanonuprimProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        } 

        private bool GoamericanonuprimProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification:
            string headerValue; 
            headerValue = ((string)(browserCaps[string.Empty]));
            bool result; 
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "UP\\.Browser"); 
            if ((result == true)) {
                return false;
            }
            // Capabilities: set capabilities 
            dictionary["ecmascriptversion"] = "1.1";
            dictionary["frames"] = "true"; 
            this.GoamericanonuprimProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.GoamericanonuprimProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        }

        protected virtual void Goamericarim950ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void Goamericarim950ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool Goamericarim950Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(browserCaps[string.Empty])); 
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "RIM950");
            if ((result == false)) {
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["BackgroundSounds"] = "false"; 
            dictionary["cachesAllResponsesWithExpires"] = "true"; 
            dictionary["maximumRenderedPageSize"] = "300000";
            dictionary["mobileDeviceModel"] = "950"; 
            dictionary["screenCharactersHeight"] = "5";
            dictionary["screenCharactersWidth"] = "25";
            dictionary["screenPixelsHeight"] = "64";
            dictionary["screenPixelsWidth"] = "132"; 
            browserCaps.AddBrowser("Go----RIM950");
            this.Goamericarim950ProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false; 
            this.Goamericarim950ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }

        protected virtual void Goamericarim850ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void Goamericarim850ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        } 

        private bool Goamericarim850Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification:
            string headerValue; 
            headerValue = ((string)(browserCaps[string.Empty]));
            bool result; 
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "RIM850"); 
            if ((result == false)) {
                return false;
            }
            // Capabilities: set capabilities 
            dictionary["mobileDeviceModel"] = "850";
            dictionary["screenCharactersHeight"] = "5"; 
            dictionary["screenCharactersWidth"] = "25"; 
            dictionary["screenPixelsHeight"] = "64";
            dictionary["screenPixelsWidth"] = "132"; 
            browserCaps.AddBrowser("Go----RIM850");
            this.Goamericarim850ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false;
            this.Goamericarim850ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 
 
        protected virtual void Goamericarim957ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void Goamericarim957ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        private bool Goamericarim957Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(browserCaps[string.Empty]));
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "RIM957");
            if ((result == false)) { 
                return false; 
            }
            // Capabilities: set capabilities 
            dictionary["BackgroundSounds"] = "false";
            dictionary["mobileDeviceModel"] = "957";
            dictionary["screenCharactersHeight"] = "15";
            dictionary["screenCharactersWidth"] = "32"; 
            dictionary["screenPixelsHeight"] = "160";
            dictionary["screenPixelsWidth"] = "160"; 
            browserCaps.AddBrowser("Go----RIM957"); 
            this.Goamericarim957ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = true; 
            // browser, parent=Go----RIM957
            if (this.Goamericarim957major6minor2Process(headers, browserCaps)) {
            }
            else { 
                ignoreApplicationBrowsers = false;
            } 
            this.Goamericarim957ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 

        protected virtual void Goamericarim957major6minor2ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        protected virtual void Goamericarim957major6minor2ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        private bool Goamericarim957major6minor2Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification:
            string headerValue;
            headerValue = ((string)(dictionary["version"])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "6\\.2");
            if ((result == false)) { 
                return false;
            }
            // Capabilities: set capabilities
            dictionary["cachesAllResponsesWithExpires"] = "true"; 
            dictionary["maximumRenderedPageSize"] = "7168";
            dictionary["requiresLeadingPageBreak"] = "true"; 
            dictionary["requiresUniqueFilePathSuffix"] = "true"; 
            dictionary["requiresUniqueHtmlCheckboxNames"] = "true";
            dictionary["screenCharactersHeight"] = "13"; 
            dictionary["screenCharactersWidth"] = "30";
            dictionary["supportsSelectMultiple"] = "true";
            dictionary["supportsUncheck"] = "true";
            browserCaps.AddBrowser("Go----RIM957major6minor2"); 
            this.Goamericarim957major6minor2ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Goamericarim957major6minor2ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 

        protected virtual void Goamericarim857ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        protected virtual void Goamericarim857ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        private bool Goamericarim857Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification:
            string headerValue;
            headerValue = ((string)(browserCaps[string.Empty])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "RIM857");
            if ((result == false)) { 
                return false;
            }
            // Capabilities: set capabilities
            dictionary["BackgroundSounds"] = "false"; 
            dictionary["ecmascriptversion"] = "0.0";
            dictionary["frames"] = "false"; 
            dictionary["maximumRenderedPageSize"] = "300000"; 
            dictionary["mobileDeviceModel"] = "857";
            dictionary["screenCharactersHeight"] = "15"; 
            dictionary["screenCharactersWidth"] = "32";
            dictionary["screenPixelsHeight"] = "160";
            dictionary["screenPixelsWidth"] = "160";
            browserCaps.AddBrowser("Go----RIM857"); 
            this.Goamericarim857ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = true; 
            // browser, parent=Go----RIM857 
            if (this.Goamericarim857major6Process(headers, browserCaps)) {
            } 
            else {
                if (this.Goamerica7to9Process(headers, browserCaps)) {
                }
                else { 
                    ignoreApplicationBrowsers = false;
                } 
            } 
            this.Goamericarim857ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }

        protected virtual void Goamericarim857major6ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void Goamericarim857major6ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        } 

        private bool Goamericarim857major6Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["version"]));
            bool result; 
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "6\\."); 
            if ((result == false)) {
                return false;
            }
            // Capabilities: set capabilities 
            dictionary["ecmascriptversion"] = "1.1";
            dictionary["frames"] = "true"; 
            browserCaps.AddBrowser("Go----RIM857major6"); 
            this.Goamericarim857major6ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = true; 
            // browser, parent=Go----RIM857major6
            if (this.Goamericarim857major6minor2to9Process(headers, browserCaps)) {
            }
            else { 
                ignoreApplicationBrowsers = false;
            } 
            this.Goamericarim857major6ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 

        protected virtual void Goamericarim857major6minor2to9ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        protected virtual void Goamericarim857major6minor2to9ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        private bool Goamericarim857major6minor2to9Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification:
            string headerValue;
            headerValue = ((string)(dictionary["version"])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "6\\.[2-9]");
            if ((result == false)) { 
                return false;
            }
            // Capabilities: set capabilities
            dictionary["canSendMail"] = "true"; 
            dictionary["hidesRightAlignedMultiselectScrollbars"] = "true";
            dictionary["requiresAttributeColonSubstitution"] = "false"; 
            dictionary["requiresLeadingPageBreak"] = "true"; 
            dictionary["requiresUniqueFilePathSuffix"] = "true";
            dictionary["screenCharactersHeight"] = "16"; 
            dictionary["screenCharactersWidth"] = "31";
            dictionary["supportsUncheck"] = "false";
            browserCaps.AddBrowser("Go----RIM857major6minor2to9");
            this.Goamericarim857major6minor2to9ProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.Goamericarim857major6minor2to9ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true; 
        }
 
        protected virtual void Goamerica7to9ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        protected virtual void Goamerica7to9ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool Goamerica7to9Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue;
            headerValue = ((string)(dictionary["majorversion"]));
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "^[7-9]$"); 
            if ((result == false)) {
                return false; 
            }
            // Capabilities: set capabilities
            dictionary["canSendMail"] = "true";
            dictionary["hidesRightAlignedMultiselectScrollbars"] = "true"; 
            dictionary["requiresAttributeColonSubstitution"] = "false";
            dictionary["requiresLeadingPageBreak"] = "true"; 
            dictionary["requiresUniqueFilePathSuffix"] = "true"; 
            dictionary["screenCharactersHeight"] = "16";
            dictionary["screenCharactersWidth"] = "31"; 
            dictionary["supportsUncheck"] = "false";
            browserCaps.AddBrowser("Go----7to9");
            this.Goamerica7to9ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Goamerica7to9ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        } 

        protected virtual void GatableProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        protected virtual void GatableProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool GatableProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(headers["X-GA-TABLES"]));
            if (string.IsNullOrEmpty(headerValue)) {
                return false; 
            }
            browserCaps.DisableOptimizedCacheKey(); 
            // Capabilities: set capabilities 
            this.GatableProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = true; 
            // browser, parent=GaTable
            if (this.GatablefalseProcess(headers, browserCaps)) {
            }
            else { 
                if (this.GatabletrueProcess(headers, browserCaps)) {
                } 
                else { 
                    ignoreApplicationBrowsers = false;
                } 
            }
            this.GatableProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        } 

        protected virtual void GatablefalseProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        } 

        protected virtual void GatablefalseProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        private bool GatablefalseProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue; 
            headerValue = ((string)(headers["X-GA-TABLES"]));
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "(?i:FALSE)");
            if ((result == false)) { 
                return false;
            } 
            browserCaps.DisableOptimizedCacheKey(); 
            // Capabilities: set capabilities
            dictionary["tables"] = "false"; 
            this.GatablefalseProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false;
            this.GatablefalseProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }
 
        protected virtual void GatabletrueProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void GatabletrueProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        private bool GatabletrueProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification: 
            string headerValue;
            headerValue = ((string)(headers["X-GA-TABLES"])); 
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "(?i:TRUE)"); 
            if ((result == false)) {
                return false; 
            } 
            browserCaps.DisableOptimizedCacheKey();
            // Capabilities: set capabilities 
            dictionary["tables"] = "true";
            this.GatabletrueProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false;
            this.GatabletrueProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 
 
        protected virtual void MaxpagesizeProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void MaxpagesizeProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        private bool MaxpagesizeProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(headers["X-GA-MAX-TRANSFER"]));
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "(?\'maxPageSize\'\\d+)");
            if ((result == false)) { 
                return false; 
            }
            browserCaps.DisableOptimizedCacheKey(); 
            // Capabilities: set capabilities
            dictionary["maximumRenderedPageSize"] = regexWorker["${maxPageSize}"];
            this.MaxpagesizeProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.MaxpagesizeProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        } 

        protected virtual void JataayuProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        protected virtual void JataayuProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool JataayuProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(browserCaps[string.Empty]));
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "^jBrowser"); 
            if ((result == false)) { 
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["browser"] = "Jataayu jBrowser";
            dictionary["canSendMail"] = "false";
            dictionary["inputType"] = "virtualKeyboard"; 
            dictionary["isColor"] = "true";
            dictionary["isMobileDevice"] = "true"; 
            dictionary["maximumRenderedPageSize"] = "10000"; 
            dictionary["mobileDeviceManufacturer"] = "Jataayu";
            dictionary["mobileDeviceModel"] = "jBrowser"; 
            dictionary["preferredImageMime"] = "image/jpeg";
            dictionary["preferredRenderingMime"] = "application/xhtml+xml";
            dictionary["preferredRenderingType"] = "wml20";
            dictionary["requiresCommentInStyleElement"] = "true"; 
            dictionary["requiresHiddenFieldValues"] = "true";
            dictionary["requiresHtmlAdaptiveErrorReporting"] = "true"; 
            dictionary["requiresOnEnterForwardForCheckboxLists"] = "true"; 
            dictionary["requiresXhtmlCssSuppression"] = "false";
            dictionary["screenBitDepth"] = "24"; 
            dictionary["screenCharactersHeight"] = "17";
            dictionary["screenCharactersWidth"] = "42";
            dictionary["screenPixelsHeight"] = "265";
            dictionary["screenPixelsWidth"] = "248"; 
            dictionary["supportsBodyClassAttribute"] = "false";
            dictionary["supportsBold"] = "true"; 
            dictionary["supportsFontName"] = "true"; 
            dictionary["supportsFontSize"] = "true";
            dictionary["supportsItalic"] = "true"; 
            dictionary["supportsRedirectWithCookie"] = "false";
            dictionary["tables"] = "true";
            dictionary["type"] = "Jataayu jBrowser";
            browserCaps.AddBrowser("Jataayu"); 
            this.JataayuProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = true; 
            // browser, parent=Jataayu 
            if (this.JataayuppcProcess(headers, browserCaps)) {
            } 
            else {
                ignoreApplicationBrowsers = false;
            }
            this.JataayuProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 
 
        protected virtual void JataayuppcProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void JataayuppcProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        private bool JataayuppcProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(browserCaps[string.Empty]));
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "(PPC)");
            if ((result == false)) { 
                return false; 
            }
            // Capabilities: set capabilities 
            dictionary["cookies"] = "true";
            dictionary["screenCharactersHeight"] = "14";
            dictionary["screenCharactersWidth"] = "31";
            dictionary["screenPixelsHeight"] = "320"; 
            dictionary["screenPixelsWidth"] = "240";
            dictionary["supportsStyleElement"] = "true"; 
            browserCaps.AddBrowser("JataayuPPC"); 
            this.JataayuppcProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.JataayuppcProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        }
 
        protected virtual void JphoneProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        protected virtual void JphoneProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool JphoneProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(browserCaps[string.Empty])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "^J-PHONE/");
            if ((result == false)) {
                return false; 
            }
            // Capture: header values 
            regexWorker.ProcessRegex(((string)(browserCaps[string.Empty])), "J-PHONE/(?\'majorVersion\'\\d+)(?\'minorVersion\'\\.\\d+)/(?\'deviceModel\'.*)"); 
            // Capabilities: set capabilities
            dictionary["browser"] = "J-Phone"; 
            dictionary["cookies"] = "false";
            dictionary["canInitiateVoiceCall"] = "true";
            dictionary["defaultCharacterHeight"] = "12";
            dictionary["defaultCharacterWidth"] = "12"; 
            dictionary["defaultScreenCharactersHeight"] = "7";
            dictionary["defaultScreenCharactersWidth"] = "16"; 
            dictionary["defaultScreenPixelsHeight"] = "84"; 
            dictionary["defaultScreenPixelsWidth"] = "96";
            dictionary["isColor"] = "false"; 
            dictionary["isMobileDevice"] = "true";
            dictionary["javaapplets"] = "false";
            dictionary["javascript"] = "false";
            dictionary["majorVersion"] = regexWorker["${majorVersion}"]; 
            dictionary["maximumRenderedPageSize"] = "6000";
            dictionary["minorVersion"] = regexWorker["${minorVersion}"]; 
            dictionary["mobileDeviceModel"] = regexWorker["${deviceModel}"]; 
            dictionary["optimumPageWeight"] = "700";
            dictionary["preferredImageMime"] = "image/png"; 
            dictionary["preferredRenderingType"] = "html32";
            dictionary["preferredRequestEncoding"] = "shift_jis";
            dictionary["preferredResponseEncoding"] = "shift_jis";
            dictionary["requiresAdaptiveErrorReporting"] = "true"; 
            dictionary["requiresContentTypeMetaTag"] = "true";
            dictionary["requiresFullyQualifiedRedirectUrl"] = "true"; 
            dictionary["requiresHtmlAdaptiveErrorReporting"] = "true"; 
            dictionary["requiresOutputOptimization"] = "true";
            dictionary["screenBitDepth"] = "2"; 
            dictionary["supportsAccesskeyAttribute"] = "true";
            dictionary["supportsBodyColor"] = "true";
            dictionary["supportsBold"] = "false";
            dictionary["supportsCharacterEntityEncoding"] = "false"; 
            dictionary["supportsDivAlign"] = "true";
            dictionary["supportsDivNoWrap"] = "true"; 
            dictionary["supportsEmptyStringInCookieValue"] = "false"; 
            dictionary["supportsFontColor"] = "true";
            dictionary["supportsFontName"] = "false"; 
            dictionary["supportsFontSize"] = "false";
            dictionary["supportsInputMode"] = "true";
            dictionary["supportsItalic"] = "false";
            dictionary["supportsJPhoneMultiMediaAttributes"] = "true"; 
            dictionary["supportsJPhoneSymbols"] = "true";
            dictionary["supportsQueryStringInFormAction"] = "false"; 
            dictionary["supportsRedirectWithCookie"] = "false"; 
            dictionary["tables"] = "true";
            dictionary["type"] = "J-Phone"; 
            dictionary["vbscript"] = "false";
            dictionary["version"] = regexWorker["${majorVersion}${minorVersion}"];
            browserCaps.Adapters["System.Web.UI.WebControls.Menu, System.Web, Version=2.0.0.0, Culture=neutral, Pub" +
                "licKeyToken=b03f5f7f11d50a3a"] = "System.Web.UI.WebControls.Adapters.MenuAdapter"; 
            browserCaps.HtmlTextWriter = "System.Web.UI.ChtmlTextWriter";
            browserCaps.AddBrowser("Jphone"); 
            this.JphoneProcessGateways(headers, browserCaps); 
            // gateway, parent=Jphone
            this.Jphone4Process(headers, browserCaps); 
            // gateway, parent=Jphone
            this.JphonecolorProcess(headers, browserCaps);
            // gateway, parent=Jphone
            this.JphonedisplayProcess(headers, browserCaps); 
            bool ignoreApplicationBrowsers = true;
            // browser, parent=Jphone 
            if (this.JphonemitsubishiProcess(headers, browserCaps)) { 
            }
            else { 
                if (this.JphonedensoProcess(headers, browserCaps)) {
                }
                else {
                    if (this.JphonekenwoodProcess(headers, browserCaps)) { 
                    }
                    else { 
                        if (this.JphonenecProcess(headers, browserCaps)) { 
                        }
                        else { 
                            if (this.JphonepanasonicProcess(headers, browserCaps)) {
                            }
                            else {
                                if (this.JphonepioneerProcess(headers, browserCaps)) { 
                                }
                                else { 
                                    if (this.JphonesanyoProcess(headers, browserCaps)) { 
                                    }
                                    else { 
                                        if (this.JphonesharpProcess(headers, browserCaps)) {
                                        }
                                        else {
                                            if (this.JphonetoshibaProcess(headers, browserCaps)) { 
                                            }
                                            else { 
                                                ignoreApplicationBrowsers = false; 
                                            }
                                        } 
                                    }
                                }
                            }
                        } 
                    }
                } 
            } 
            this.JphoneProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }

        protected virtual void JphonemitsubishiProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void JphonemitsubishiProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        } 

        private bool JphonemitsubishiProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["mobileDeviceModel"]));
            bool result; 
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "^J-D\\d"); 
            if ((result == false)) {
                return false;
            }
            // Capabilities: set capabilities 
            dictionary["mobileDeviceManufacturer"] = "Mitsubishi";
            browserCaps.AddBrowser("JphoneMitsubishi"); 
            this.JphonemitsubishiProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.JphonemitsubishiProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        }

        protected virtual void JphonedensoProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void JphonedensoProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool JphonedensoProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["mobileDeviceModel"])); 
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "J-DN\\d");
            if ((result == false)) {
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["mobileDeviceManufacturer"] = "Denso"; 
            browserCaps.AddBrowser("JphoneDenso"); 
            this.JphonedensoProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.JphonedensoProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        }
 
        protected virtual void JphonekenwoodProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        protected virtual void JphonekenwoodProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool JphonekenwoodProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["mobileDeviceModel"])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "J-K\\d");
            if ((result == false)) {
                return false; 
            }
            // Capabilities: set capabilities 
            dictionary["mobileDeviceManufacturer"] = "Kenwood"; 
            browserCaps.AddBrowser("JphoneKenwood");
            this.JphonekenwoodProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.JphonekenwoodProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        } 

        protected virtual void JphonenecProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        } 

        protected virtual void JphonenecProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        private bool JphonenecProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue; 
            headerValue = ((string)(dictionary["mobileDeviceModel"]));
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "J-N\\d");
            if ((result == false)) { 
                return false;
            } 
            // Capabilities: set capabilities 
            dictionary["mobileDeviceManufacturer"] = "NEC";
            browserCaps.AddBrowser("JphoneNec"); 
            this.JphonenecProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = true;
            // browser, parent=JphoneNec
            if (this.Jphonenecn51Process(headers, browserCaps)) { 
            }
            else { 
                ignoreApplicationBrowsers = false; 
            }
            this.JphonenecProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        }

        protected virtual void Jphonenecn51ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void Jphonenecn51ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool Jphonenecn51Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["mobileDeviceModel"])); 
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "J-N51");
            if ((result == false)) {
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["maximumRenderedPageSize"] = "12000"; 
            dictionary["mobileDeviceModel"] = "J-N51"; 
            dictionary["ExchangeOmaSupported"] = "true";
            dictionary["requiresContentTypeMetaTag"] = "false"; 
            dictionary["screenCharactersHeight"] = "10";
            dictionary["screenCharactersWidth"] = "20";
            dictionary["supportsCharacterEntityEncoding"] = "true";
            dictionary["supportsDivNoWrap"] = "false"; 
            dictionary["supportsEmptyStringInCookieValue"] = "false";
            dictionary["supportsImageSubmit"] = "true"; 
            dictionary["supportsInputIStyle"] = "true"; 
            dictionary["supportsRedirectWithCookie"] = "false";
            browserCaps.AddBrowser("JphoneNecN51"); 
            this.Jphonenecn51ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false;
            this.Jphonenecn51ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }
 
        protected virtual void JphonepanasonicProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void JphonepanasonicProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        private bool JphonepanasonicProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["mobileDeviceModel"])); 
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "J-P\\d"); 
            if ((result == false)) {
                return false; 
            } 
            // Capabilities: set capabilities
            dictionary["mobileDeviceManufacturer"] = "Panasonic"; 
            browserCaps.AddBrowser("JphonePanasonic");
            this.JphonepanasonicProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false;
            this.JphonepanasonicProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 
 
        protected virtual void JphonepioneerProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void JphonepioneerProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        private bool JphonepioneerProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["mobileDeviceModel"]));
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "J-PE\\d");
            if ((result == false)) { 
                return false; 
            }
            // Capabilities: set capabilities 
            dictionary["mobileDeviceManufacturer"] = "Pioneer";
            browserCaps.AddBrowser("JphonePioneer");
            this.JphonepioneerProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.JphonepioneerProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        } 

        protected virtual void JphonesanyoProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        protected virtual void JphonesanyoProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool JphonesanyoProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["mobileDeviceModel"]));
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "J-SA\\d"); 
            if ((result == false)) { 
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["mobileDeviceManufacturer"] = "Sanyo";
            browserCaps.AddBrowser("JphoneSanyo");
            this.JphonesanyoProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = true;
            // browser, parent=JphoneSanyo 
            if (this.Jphonesa51Process(headers, browserCaps)) { 
            }
            else { 
                ignoreApplicationBrowsers = false;
            }
            this.JphonesanyoProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }
 
        protected virtual void Jphonesa51ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void Jphonesa51ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        private bool Jphonesa51Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["mobileDeviceModel"])); 
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "^J-SA51\\D*"); 
            if ((result == false)) {
                return false; 
            } 
            // Capabilities: set capabilities
            dictionary["ExchangeOmaSupported"] = "true"; 
            dictionary["maximumRenderedPageSize"] = "12000";
            dictionary["mobileDeviceModel"] = "J-SA51";
            dictionary["preferredImageMime"] = "image/jpeg";
            dictionary["requiresHtmlAdaptiveErrorReporting"] = "false"; 
            dictionary["screenCharactersWidth"] = "22";
            dictionary["supportsDivNoWrap"] = "false"; 
            dictionary["supportsInputIStyle"] = "true"; 
            dictionary["supportsRedirectWithCookie"] = "false";
            browserCaps.AddBrowser("JphoneSA51"); 
            this.Jphonesa51ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false;
            this.Jphonesa51ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }
 
        protected virtual void JphonesharpProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void JphonesharpProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        private bool JphonesharpProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["mobileDeviceModel"])); 
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "J-SH\\d"); 
            if ((result == false)) {
                return false; 
            } 
            // Capabilities: set capabilities
            dictionary["mobileDeviceManufacturer"] = "Sharp"; 
            browserCaps.AddBrowser("JphoneSharp");
            this.JphonesharpProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = true;
            // browser, parent=JphoneSharp 
            if (this.Jphonesharpsh53Process(headers, browserCaps)) {
            } 
            else { 
                if (this.Jphonesharpsh07Process(headers, browserCaps)) {
                } 
                else {
                    if (this.Jphonesharpsh08Process(headers, browserCaps)) {
                    }
                    else { 
                        if (this.Jphonesharpsh51Process(headers, browserCaps)) {
                        } 
                        else { 
                            if (this.Jphonesharpsh52Process(headers, browserCaps)) {
                            } 
                            else {
                                ignoreApplicationBrowsers = false;
                            }
                        } 
                    }
                } 
            } 
            this.JphonesharpProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }

        protected virtual void Jphonesharpsh53ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void Jphonesharpsh53ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        } 

        private bool Jphonesharpsh53Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["mobileDeviceModel"]));
            bool result; 
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "J-SH53"); 
            if ((result == false)) {
                return false;
            }
            // Capabilities: set capabilities 
            dictionary["maximumRenderedPageSize"] = "12000";
            dictionary["mobileDeviceModel"] = "J-SH53"; 
            dictionary["ExchangeOmaSupported"] = "true"; 
            dictionary["requiresContentTypeMetaTag"] = "false";
            dictionary["screenBitDepth"] = "18"; 
            dictionary["screenCharactersHeight"] = "13";
            dictionary["screenCharactersWidth"] = "24";
            dictionary["supportsCharacterEntityEncoding"] = "true";
            dictionary["supportsDivNoWrap"] = "false"; 
            dictionary["supportsEmptyStringInCookieValue"] = "false";
            dictionary["supportsImageSubmit"] = "true"; 
            dictionary["supportsInputIStyle"] = "true"; 
            dictionary["supportsRedirectWithCookie"] = "false";
            browserCaps.AddBrowser("JphoneSharpSh53"); 
            this.Jphonesharpsh53ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false;
            this.Jphonesharpsh53ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }
 
        protected virtual void Jphonesharpsh07ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void Jphonesharpsh07ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        private bool Jphonesharpsh07Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["mobileDeviceModel"])); 
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "^J-SH07"); 
            if ((result == false)) {
                return false; 
            } 
            // Capabilities: set capabilities
            dictionary["canRenderEmptySelects"] = "false"; 
            dictionary["maximumRenderedPageSize"] = "12000";
            dictionary["requiresHtmlAdaptiveErrorReporting"] = "false";
            dictionary["requiresLeadingPageBreak"] = "false";
            dictionary["screenCharactersHeight"] = "10"; 
            dictionary["screenCharactersWidth"] = "20";
            dictionary["supportsDivNoWrap"] = "false"; 
            dictionary["supportsRedirectWithCookie"] = "false"; 
            browserCaps.AddBrowser("JphoneSharpSh07");
            this.Jphonesharpsh07ProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.Jphonesharpsh07ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        } 

        protected virtual void Jphonesharpsh08ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        } 

        protected virtual void Jphonesharpsh08ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        private bool Jphonesharpsh08Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue; 
            headerValue = ((string)(dictionary["mobileDeviceModel"]));
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "^J-SH08");
            if ((result == false)) { 
                return false;
            } 
            // Capabilities: set capabilities 
            dictionary["isColor"] = "true";
            dictionary["requiresHtmlAdaptiveErrorReporting"] = "false"; 
            dictionary["supportsInputIStyle"] = "false";
            dictionary["requiresLeadingPageBreak"] = "false";
            dictionary["screenBitDepth"] = "16";
            dictionary["screenCharactersHeight"] = "10"; 
            dictionary["screenCharactersWidth"] = "20";
            dictionary["screenPixelsHeight"] = "117"; 
            dictionary["screenPixelsWidth"] = "120"; 
            dictionary["supportsDivNoWrap"] = "false";
            dictionary["supportsRedirectWithCookie"] = "false"; 
            browserCaps.AddBrowser("JphoneSharpSh08");
            this.Jphonesharpsh08ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false;
            this.Jphonesharpsh08ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 
 
        protected virtual void Jphonesharpsh51ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void Jphonesharpsh51ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        private bool Jphonesharpsh51Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["mobileDeviceModel"]));
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "^J-SH51");
            if ((result == false)) { 
                return false; 
            }
            // Capabilities: set capabilities 
            dictionary["isColor"] = "true";
            dictionary["maximumRenderedPageSize"] = "12000";
            dictionary["requiresHtmlAdaptiveErrorReporting"] = "false";
            dictionary["supportsInputIStyle"] = "true"; 
            dictionary["requiresLeadingPageBreak"] = "false";
            dictionary["requiresUniqueHtmlCheckboxNames"] = "false"; 
            dictionary["screenBitDepth"] = "16"; 
            dictionary["screenCharactersHeight"] = "10";
            dictionary["screenCharactersWidth"] = "20"; 
            dictionary["screenPixelsHeight"] = "130";
            dictionary["screenPixelsWidth"] = "120";
            dictionary["supportsDivNoWrap"] = "false";
            dictionary["supportsRedirectWithCookie"] = "false"; 
            browserCaps.AddBrowser("JphoneSharpSh51");
            this.Jphonesharpsh51ProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false; 
            this.Jphonesharpsh51ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }

        protected virtual void Jphonesharpsh52ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void Jphonesharpsh52ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        } 

        private bool Jphonesharpsh52Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["mobileDeviceModel"]));
            bool result; 
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "^J-SH52\\D*"); 
            if ((result == false)) {
                return false;
            }
            // Capabilities: set capabilities 
            dictionary["ExchangeOmaSupported"] = "true";
            dictionary["maximumRenderedPageSize"] = "12000"; 
            dictionary["mobileDeviceModel"] = "J-SH52"; 
            dictionary["requiresHtmlAdaptiveErrorReporting"] = "false";
            dictionary["screenCharactersWidth"] = "20"; 
            dictionary["supportsDivNoWrap"] = "false";
            dictionary["supportsInputIStyle"] = "true";
            dictionary["supportsRedirectWithCookie"] = "false";
            browserCaps.AddBrowser("JphoneSharpSh52"); 
            this.Jphonesharpsh52ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Jphonesharpsh52ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 

        protected virtual void JphonetoshibaProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        protected virtual void JphonetoshibaProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        private bool JphonetoshibaProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification:
            string headerValue;
            headerValue = ((string)(dictionary["mobileDeviceModel"])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "J-T\\d");
            if ((result == false)) { 
                return false;
            }
            // Capabilities: set capabilities
            dictionary["mobileDeviceManufacturer"] = "Toshiba"; 
            browserCaps.AddBrowser("JphoneToshiba");
            this.JphonetoshibaProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = true; 
            // browser, parent=JphoneToshiba
            if (this.Jphonetoshibat06aProcess(headers, browserCaps)) { 
            }
            else {
                if (this.Jphonetoshibat08Process(headers, browserCaps)) {
                } 
                else {
                    if (this.Jphonetoshibat51Process(headers, browserCaps)) { 
                    } 
                    else {
                        ignoreApplicationBrowsers = false; 
                    }
                }
            }
            this.JphonetoshibaProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 
 
        protected virtual void Jphonetoshibat06aProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void Jphonetoshibat06aProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        private bool Jphonetoshibat06aProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["mobileDeviceModel"]));
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "^J-T06_a");
            if ((result == false)) { 
                return false; 
            }
            // Capabilities: set capabilities 
            dictionary["maximumRenderedPageSize"] = "12000";
            dictionary["mobileDeviceModel"] = "J-T06";
            dictionary["requiresHtmlAdaptiveErrorReporting"] = "false";
            dictionary["screenCharactersHeight"] = "8"; 
            dictionary["screenCharactersWidth"] = "20";
            dictionary["supportsDivNoWrap"] = "false"; 
            dictionary["supportsRedirectWithCookie"] = "false"; 
            browserCaps.AddBrowser("JphoneToshibaT06a");
            this.Jphonetoshibat06aProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.Jphonetoshibat06aProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        } 

        protected virtual void Jphonetoshibat08ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        } 

        protected virtual void Jphonetoshibat08ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        private bool Jphonetoshibat08Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue; 
            headerValue = ((string)(dictionary["mobileDeviceModel"]));
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "^J-T08\\D*");
            if ((result == false)) { 
                return false;
            } 
            // Capabilities: set capabilities 
            dictionary["requiresHtmlAdaptiveErrorReporting"] = "false";
            dictionary["screenCharactersHeight"] = "10"; 
            dictionary["screenCharactersWidth"] = "22";
            dictionary["supportsDivNoWrap"] = "false";
            dictionary["supportsRedirectWithCookie"] = "false";
            browserCaps.AddBrowser("JphoneToshibaT08"); 
            this.Jphonetoshibat08ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Jphonetoshibat08ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 

        protected virtual void Jphonetoshibat51ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        protected virtual void Jphonetoshibat51ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        private bool Jphonetoshibat51Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification:
            string headerValue;
            headerValue = ((string)(dictionary["mobileDeviceModel"])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "^J-T51");
            if ((result == false)) { 
                return false;
            }
            // Capabilities: set capabilities
            dictionary["isColor"] = "true"; 
            dictionary["maximumRenderedPageSize"] = "12000";
            dictionary["requiresHtmlAdaptiveErrorReporting"] = "false"; 
            dictionary["requiresLeadingPageBreak"] = "false"; 
            dictionary["screenBitDepth"] = "16";
            dictionary["screenCharactersHeight"] = "10"; 
            dictionary["screenCharactersWidth"] = "24";
            dictionary["screenPixelsHeight"] = "144";
            dictionary["screenPixelsWidth"] = "144";
            dictionary["supportsDivNoWrap"] = "false"; 
            dictionary["supportsInputIStyle"] = "true";
            dictionary["supportsRedirectWithCookie"] = "false"; 
            browserCaps.AddBrowser("JphoneToshibaT51"); 
            this.Jphonetoshibat51ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Jphonetoshibat51ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        }
 
        protected virtual void Jphone4ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        protected virtual void Jphone4ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool Jphone4Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["majorVersion"])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "4");
            if ((result == false)) {
                return false; 
            }
            // Capabilities: set capabilities 
            dictionary["supportsQueryStringInFormAction"] = "true"; 
            this.Jphone4ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Jphone4ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        }
 
        protected virtual void JphonecolorProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        protected virtual void JphonecolorProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool JphonecolorProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(headers["X-JPHONE-COLOR"])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "(?\'colorIndicator\'[CG])(?\'bitDepth\'\\d+)");
            if ((result == false)) {
                return false; 
            }
            browserCaps.DisableOptimizedCacheKey(); 
            // Capabilities: set capabilities 
            dictionary["bitDepth"] = regexWorker["${bitDepth}"];
            dictionary["colorIndicator"] = regexWorker["${colorIndicator}"]; 
            this.JphonecolorProcessGateways(headers, browserCaps);
            // gateway, parent=JphoneColor
            this.JphonecoloriscolorProcess(headers, browserCaps);
            bool ignoreApplicationBrowsers = true; 
            // browser, parent=JphoneColor
            if (this.Jphone16bitcolorProcess(headers, browserCaps)) { 
            } 
            else {
                if (this.Jphone8bitcolorProcess(headers, browserCaps)) { 
                }
                else {
                    if (this.Jphone2bitcolorProcess(headers, browserCaps)) {
                    } 
                    else {
                        ignoreApplicationBrowsers = false; 
                    } 
                }
            } 
            this.JphonecolorProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        }
 
        protected virtual void JphonecoloriscolorProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        protected virtual void JphonecoloriscolorProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool JphonecoloriscolorProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["colorIndicator"])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "C");
            if ((result == false)) {
                return false; 
            }
            // Capabilities: set capabilities 
            dictionary["isColor"] = "true"; 
            this.JphonecoloriscolorProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.JphonecoloriscolorProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        }
 
        protected virtual void Jphone16bitcolorProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        protected virtual void Jphone16bitcolorProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool Jphone16bitcolorProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["bitDepth"])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "^65536$");
            if ((result == false)) {
                return false; 
            }
            // Capabilities: set capabilities 
            dictionary["screenBitDepth"] = "16"; 
            this.Jphone16bitcolorProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Jphone16bitcolorProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        }
 
        protected virtual void Jphone8bitcolorProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        protected virtual void Jphone8bitcolorProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool Jphone8bitcolorProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["bitDepth"])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "^256$");
            if ((result == false)) {
                return false; 
            }
            // Capabilities: set capabilities 
            dictionary["screenBitDepth"] = "8"; 
            this.Jphone8bitcolorProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Jphone8bitcolorProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        }
 
        protected virtual void Jphone2bitcolorProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        protected virtual void Jphone2bitcolorProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool Jphone2bitcolorProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["bitDepth"])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "^4$");
            if ((result == false)) {
                return false; 
            }
            // Capabilities: set capabilities 
            dictionary["screenBitDepth"] = "2"; 
            this.Jphone2bitcolorProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Jphone2bitcolorProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        }
 
        protected virtual void JphonedisplayProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        protected virtual void JphonedisplayProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool JphonedisplayProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(headers["X-JPHONE-DISPLAY"])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "(?\'screenWidth\'\\d+)\\*(?\'screenHeight\'\\d+)");
            if ((result == false)) {
                return false; 
            }
            browserCaps.DisableOptimizedCacheKey(); 
            // Capabilities: set capabilities 
            dictionary["screenPixelsHeight"] = regexWorker["${screenHeight}"];
            dictionary["screenPixelsWidth"] = regexWorker["${screenWidth}"]; 
            this.JphonedisplayProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false;
            this.JphonedisplayProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }
 
        protected virtual void LegendProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void LegendProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        private bool LegendProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification: 
            string headerValue;
            headerValue = ((string)(browserCaps[string.Empty])); 
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "^(?\'deviceID\'LG\\S*) AU\\/(?\'browserMajorVersion\'\\d*)(?\'browserMinorVersion\'\\.\\d*)." + 
                    "*");
            if ((result == false)) { 
                return false; 
            }
            // Capabilities: set capabilities 
            dictionary["browser"] = "AU-System";
            dictionary["canInitiateVoiceCall"] = "true";
            dictionary["canSendMail"] = "false";
            dictionary["cookies"] = "false"; 
            dictionary["hasBackButton"] = "false";
            dictionary["isMobileDevice"] = "true"; 
            dictionary["majorVersion"] = regexWorker["${browserMajorVersion}"]; 
            dictionary["minorVersion"] = regexWorker["${browserMinorVersion}"];
            dictionary["numberOfSoftkeys"] = "2"; 
            dictionary["preferredImageMime"] = "image/vnd.wap.wbmp";
            dictionary["preferredRenderingMime"] = "text/vnd.wap.wml";
            dictionary["preferredRenderingType"] = "wml12";
            dictionary["rendersBreaksAfterWmlInput"] = "true"; 
            dictionary["rendersWmlDoAcceptsInline"] = "false";
            dictionary["requiresUniqueFilePathSuffix"] = "true"; 
            dictionary["supportsFontSize"] = "true"; 
            dictionary["type"] = regexWorker["AU ${browserMajorVersion}"];
            dictionary["version"] = regexWorker["${browserMajorVersion}${browserMinorVersion}"]; 
            browserCaps.AddBrowser("Legend");
            this.LegendProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = true;
            // browser, parent=Legend 
            if (this.Lgg5200Process(headers, browserCaps)) {
            } 
            else { 
                ignoreApplicationBrowsers = false;
            } 
            this.LegendProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        }
 
        protected virtual void Lgg5200ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        protected virtual void Lgg5200ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool Lgg5200Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(browserCaps[string.Empty])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "^LG-G5200");
            if ((result == false)) {
                return false; 
            }
            // Capabilities: set capabilities 
            dictionary["maximumRenderedPageSize"] = "3500"; 
            dictionary["maximumSoftkeyLabelLength"] = "6";
            dictionary["mobileDeviceManufacturer"] = "LEGEND"; 
            dictionary["mobileDeviceModel"] = "G808";
            dictionary["screenBitDepth"] = "4";
            dictionary["screenCharactersHeight"] = "7";
            dictionary["screenCharactersWidth"] = "17"; 
            dictionary["screenPixelsHeight"] = "128";
            dictionary["screenPixelsWidth"] = "128"; 
            browserCaps.AddBrowser("LGG5200"); 
            this.Lgg5200ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Lgg5200ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        }
 
        protected virtual void MmeProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        protected virtual void MmeProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool MmeProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(browserCaps[string.Empty])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "MMEF");
            if ((result == false)) {
                return false; 
            }
            headerValue = ((string)(browserCaps[string.Empty])); 
            result = regexWorker.ProcessRegex(headerValue, "Mozilla/(?\'version\'(?\'major\'\\d+)(?\'minor\'\\.\\d+)\\w*).*"); 
            if ((result == false)) {
                return false; 
            }
            // Capabilities: set capabilities
            dictionary["browser"] = "Microsoft Mobile Explorer";
            dictionary["canInitiateVoiceCall"] = "true"; 
            dictionary["inputType"] = "telephoneKeypad";
            dictionary["isMobileDevice"] = "true"; 
            dictionary["majorversion"] = regexWorker["${major}"]; 
            dictionary["maximumRenderedPageSize"] = "300000";
            dictionary["mobileDeviceManufacturer"] = "Microsoft"; 
            dictionary["requiresAdaptiveErrorReporting"] = "true";
            dictionary["type"] = "Microsoft Mobile Explorer";
            dictionary["version"] = regexWorker["${version}"];
            browserCaps.Adapters["System.Web.UI.WebControls.Menu, System.Web, Version=2.0.0.0, Culture=neutral, Pub" + 
                "licKeyToken=b03f5f7f11d50a3a"] = "System.Web.UI.WebControls.Adapters.MenuAdapter";
            browserCaps.AddBrowser("MME"); 
            this.MmeProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = true;
            // browser, parent=MME 
            if (this.Mmef20Process(headers, browserCaps)) {
            }
            else {
                if (this.MmemobileexplorerProcess(headers, browserCaps)) { 
                }
                else { 
                    ignoreApplicationBrowsers = false; 
                }
            } 
            this.MmeProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        }
 
        protected virtual void Mmef20ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        protected virtual void Mmef20ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool Mmef20Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(browserCaps[string.Empty])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "MMEF20");
            if ((result == false)) {
                return false; 
            }
            // Capabilities: set capabilities 
            dictionary["canRenderSetvarZeroWithMultiSelectionList"] = "false"; 
            dictionary["defaultCharacterHeight"] = "15";
            dictionary["defaultCharacterWidth"] = "5"; 
            dictionary["defaultScreenPixelsHeight"] = "160";
            dictionary["defaultScreenPixelsWidth"] = "120";
            dictionary["isColor"] = "false";
            dictionary["maximumRenderedPageSize"] = "4000"; 
            dictionary["mobileDeviceModel"] = "Simulator";
            dictionary["numberOfSoftkeys"] = "2"; 
            dictionary["preferredImageMime"] = "image/vnd.wap.wbmp"; 
            dictionary["preferredRenderingMime"] = "text/vnd.wap.wml";
            dictionary["preferredRenderingType"] = "wml11"; 
            dictionary["screenBitDepth"] = "1";
            browserCaps.AddBrowser("MMEF20");
            this.Mmef20ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = true; 
            // browser, parent=MMEF20
            if (this.MmecellphoneProcess(headers, browserCaps)) { 
            } 
            else {
                ignoreApplicationBrowsers = false; 
            }
            this.Mmef20ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        } 

        protected virtual void MmemobileexplorerProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        } 

        protected virtual void MmemobileexplorerProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        private bool MmemobileexplorerProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue; 
            headerValue = ((string)(browserCaps[string.Empty]));
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "^MobileExplorer/(?\'majorVersion\'\\d*)(?\'minorVersion\'\\.\\d*) \\(Mozilla/1\\.22; compa" +
                    "tible; MMEF\\d+; (?\'manufacturer\'[^;]*); (?\'model\'[^;)]*)(; (?\'deviceID\'[^)]*))?"); 
            if ((result == false)) {
                return false; 
            } 
            // Capabilities: set capabilities
            dictionary["canRenderSetvarZeroWithMultiSelectionList"] = "false"; 
            dictionary["defaultCharacterHeight"] = "15";
            dictionary["defaultCharacterWidth"] = "5";
            dictionary["defaultScreenPixelsHeight"] = "160";
            dictionary["defaultScreenPixelsWidth"] = "120"; 
            dictionary["deviceID"] = regexWorker["${deviceID}"];
            dictionary["isColor"] = "true"; 
            dictionary["majorVersion"] = regexWorker["${majorVersion}"]; 
            dictionary["maximumRenderedPageSize"] = "300000";
            dictionary["minorVersion"] = regexWorker["${minorVersion}"]; 
            dictionary["mobileDeviceManufacturer"] = regexWorker["${manufacturer}"];
            dictionary["mobileDeviceModel"] = regexWorker["${model}"];
            dictionary["numberOfSoftkeys"] = "2";
            dictionary["preferredImageMime"] = "image/gif"; 
            dictionary["preferredRenderingMime"] = "text/html";
            dictionary["preferredRenderingType"] = "html32"; 
            dictionary["screenBitDepth"] = "8"; 
            dictionary["supportsBodyColor"] = "true";
            dictionary["supportsBold"] = "true"; 
            dictionary["supportsDivAlign"] = "true";
            dictionary["supportsDivNoWrap"] = "false";
            dictionary["supportsFontColor"] = "true";
            dictionary["supportsFontName"] = "true"; 
            dictionary["supportsFontSize"] = "true";
            dictionary["supportsImageSubmit"] = "true"; 
            dictionary["supportsItalic"] = "true"; 
            dictionary["version"] = regexWorker["${majorVersion}${minorVersion}"];
            browserCaps.HtmlTextWriter = "System.Web.UI.Html32TextWriter"; 
            browserCaps.AddBrowser("MMEMobileExplorer");
            this.MmemobileexplorerProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false;
            this.MmemobileexplorerProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 
 
        protected virtual void MmecellphoneProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void MmecellphoneProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        private bool MmecellphoneProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(browserCaps[string.Empty]));
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "Mozilla/.*\\(compatible; MMEF(?\'majorVersion\'\\d)(?\'minorVersion\'\\d); Cell[pP]hone(" +
                    "([;,] (?\'deviceID\'[^;]*))(;(?\'buildInfo\'.*))*)*\\)"); 
            if ((result == false)) { 
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["canCombineFormsInDeck"] = "false";
            dictionary["canRenderPostBackCards"] = "false";
            dictionary["deviceID"] = regexWorker["${deviceID}"]; 
            dictionary["majorVersion"] = regexWorker["${majorVersion}"];
            dictionary["maximumRenderedPageSize"] = "300000"; 
            dictionary["minorVersion"] = regexWorker[".${minorVersion}"]; 
            dictionary["version"] = regexWorker["${majorVersion}.${minorVersion}"];
            browserCaps.AddBrowser("MMECellphone"); 
            this.MmecellphoneProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = true;
            // browser, parent=MMECellphone
            if (this.MmebenefonqProcess(headers, browserCaps)) { 
            }
            else { 
                if (this.Mmesonycmdz5Process(headers, browserCaps)) { 
                }
                else { 
                    if (this.Mmesonycmdj5Process(headers, browserCaps)) {
                    }
                    else {
                        if (this.Mmesonycmdj7Process(headers, browserCaps)) { 
                        }
                        else { 
                            if (this.MmegenericsmallProcess(headers, browserCaps)) { 
                            }
                            else { 
                                if (this.MmegenericlargeProcess(headers, browserCaps)) {
                                }
                                else {
                                    if (this.MmegenericflipProcess(headers, browserCaps)) { 
                                    }
                                    else { 
                                        if (this.Mmegeneric3dProcess(headers, browserCaps)) { 
                                        }
                                        else { 
                                            ignoreApplicationBrowsers = false;
                                        }
                                    }
                                } 
                            }
                        } 
                    } 
                }
            } 
            this.MmecellphoneProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        }
 
        protected virtual void MmebenefonqProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        protected virtual void MmebenefonqProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool MmebenefonqProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["deviceID"])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "Benefon Q");
            if ((result == false)) {
                return false; 
            }
            // Capabilities: set capabilities 
            dictionary["mobileDeviceManufacturer"] = "Benefon"; 
            dictionary["mobileDeviceModel"] = "Q";
            dictionary["screenBitDepth"] = "1"; 
            dictionary["screenCharactersHeight"] = "4";
            dictionary["screenCharactersWidth"] = "20";
            dictionary["screenPixelsHeight"] = "48";
            dictionary["screenPixelsWidth"] = "100"; 
            browserCaps.AddBrowser("MMEBenefonQ");
            this.MmebenefonqProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false; 
            this.MmebenefonqProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }

        protected virtual void Mmesonycmdz5ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void Mmesonycmdz5ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        } 

        private bool Mmesonycmdz5Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["deviceID"]));
            bool result; 
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "Sony CMD-Z5"); 
            if ((result == false)) {
                return false;
            }
            // Capabilities: set capabilities 
            dictionary["mobileDeviceManufacturer"] = "Sony";
            dictionary["mobileDeviceModel"] = "CMD-Z5"; 
            dictionary["requiresOutputOptimization"] = "true"; 
            dictionary["screenBitDepth"] = "2";
            dictionary["screenCharactersHeight"] = "4"; 
            dictionary["screenCharactersWidth"] = "20";
            dictionary["screenPixelsHeight"] = "60";
            dictionary["screenPixelsWidth"] = "96";
            browserCaps.AddBrowser("MMESonyCMDZ5"); 
            this.Mmesonycmdz5ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = true; 
            // browser, parent=MMESonyCMDZ5 
            if (this.Mmesonycmdz5pj020eProcess(headers, browserCaps)) {
            } 
            else {
                ignoreApplicationBrowsers = false;
            }
            this.Mmesonycmdz5ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 
 
        protected virtual void Mmesonycmdz5pj020eProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void Mmesonycmdz5pj020eProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        private bool Mmesonycmdz5pj020eProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(browserCaps[string.Empty]));
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "Pj020e");
            if ((result == false)) { 
                return false; 
            }
            // Capabilities: set capabilities 
            dictionary["screenPixelsHeight"] = "65";
            browserCaps.AddBrowser("MMESonyCMDZ5Pj020e");
            this.Mmesonycmdz5pj020eProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Mmesonycmdz5pj020eProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        } 

        protected virtual void Mmesonycmdj5ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        protected virtual void Mmesonycmdj5ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool Mmesonycmdj5Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"]));
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "Sony CMD-J5"); 
            if ((result == false)) { 
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["mobileDeviceManufacturer"] = "Sony";
            dictionary["mobileDeviceModel"] = "CMD-J5";
            dictionary["requiresOutputOptimization"] = "true"; 
            dictionary["screenBitDepth"] = "2";
            dictionary["screenCharactersHeight"] = "4"; 
            dictionary["screenCharactersWidth"] = "20"; 
            dictionary["screenPixelsHeight"] = "65";
            dictionary["screenPixelsWidth"] = "96"; 
            browserCaps.AddBrowser("MMESonyCMDJ5");
            this.Mmesonycmdj5ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false;
            this.Mmesonycmdj5ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 
 
        protected virtual void Mmesonycmdj7ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void Mmesonycmdj7ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        private bool Mmesonycmdj7Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["deviceID"]));
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "Sony CMD-J7/J70");
            if ((result == false)) { 
                return false; 
            }
            // Capabilities: set capabilities 
            dictionary["canCombineFormsInDeck"] = "true";
            dictionary["canInitiateVoiceCall"] = "true";
            dictionary["canRenderPostBackCards"] = "true";
            dictionary["canRenderSetvarZeroWithMultiSelectionList"] = "true"; 
            dictionary["isColor"] = "true";
            dictionary["maximumRenderedPageSize"] = "2900"; 
            dictionary["maximumSoftkeyLabelLength"] = "21"; 
            dictionary["mobileDeviceManufacturer"] = "Ericsson";
            dictionary["mobileDeviceModel"] = "T68"; 
            dictionary["numberOfSoftkeys"] = "1";
            dictionary["preferredImageMime"] = "image/jpeg";
            dictionary["preferredRenderingType"] = "wml12";
            dictionary["rendersBreaksAfterWmlInput"] = "true"; 
            dictionary["rendersWmlDoAcceptsInline"] = "false";
            dictionary["requiresUniqueFilePathSuffix"] = "true"; 
            dictionary["screenBitDepth"] = "24"; 
            dictionary["screenCharactersHeight"] = "5";
            dictionary["screenCharactersWidth"] = "16"; 
            dictionary["screenPixelsHeight"] = "80";
            dictionary["screenPixelsWidth"] = "101";
            dictionary["supportsBold"] = "true";
            dictionary["supportsFontSize"] = "true"; 
            browserCaps.AddBrowser("MMESonyCMDJ7");
            this.Mmesonycmdj7ProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false; 
            this.Mmesonycmdj7ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }

        protected virtual void MmegenericsmallProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void MmegenericsmallProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        } 

        private bool MmegenericsmallProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["deviceID"]));
            bool result; 
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "GenericSmall"); 
            if ((result == false)) {
                return false;
            }
            // Capabilities: set capabilities 
            dictionary["mobileDeviceManufacturer"] = "Microsoft";
            dictionary["mobileDeviceModel"] = "Generic Small Skin"; 
            dictionary["screenBitDepth"] = "1"; 
            dictionary["screenPixelsHeight"] = "60";
            dictionary["screenPixelsWidth"] = "100"; 
            browserCaps.AddBrowser("MMEGenericSmall");
            this.MmegenericsmallProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false;
            this.MmegenericsmallProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 
 
        protected virtual void MmegenericlargeProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void MmegenericlargeProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        private bool MmegenericlargeProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["deviceID"]));
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "GenericLarge");
            if ((result == false)) { 
                return false; 
            }
            // Capabilities: set capabilities 
            dictionary["mobileDeviceManufacturer"] = "Microsoft";
            dictionary["mobileDeviceModel"] = "Generic Large Skin";
            dictionary["screenBitDepth"] = "1";
            dictionary["screenPixelsHeight"] = "240"; 
            dictionary["screenPixelsWidth"] = "160";
            browserCaps.AddBrowser("MMEGenericLarge"); 
            this.MmegenericlargeProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.MmegenericlargeProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        }

        protected virtual void MmegenericflipProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void MmegenericflipProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool MmegenericflipProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"])); 
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "GenericFlip");
            if ((result == false)) {
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["mobileDeviceManufacturer"] = "Microsoft"; 
            dictionary["mobileDeviceModel"] = "Generic Flip Skin"; 
            dictionary["screenBitDepth"] = "1";
            dictionary["screenPixelsHeight"] = "200"; 
            dictionary["screenPixelsWidth"] = "160";
            browserCaps.AddBrowser("MMEGenericFlip");
            this.MmegenericflipProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.MmegenericflipProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        } 

        protected virtual void Mmegeneric3dProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        protected virtual void Mmegeneric3dProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool Mmegeneric3dProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"]));
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "Generic3D"); 
            if ((result == false)) { 
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["mobileDeviceManufacturer"] = "Microsoft";
            dictionary["mobileDeviceModel"] = "Generic 3D Skin";
            dictionary["screenBitDepth"] = "1"; 
            dictionary["screenPixelsHeight"] = "160";
            dictionary["screenPixelsWidth"] = "128"; 
            browserCaps.AddBrowser("MMEGeneric3D"); 
            this.Mmegeneric3dProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Mmegeneric3dProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        }
 
        protected virtual void Netscape3ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        protected virtual void Netscape3ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool Netscape3Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(browserCaps[string.Empty])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "^Mozilla/3");
            if ((result == false)) {
                return false; 
            }
            headerValue = ((string)(browserCaps[string.Empty])); 
            result = regexWorker.ProcessRegex(headerValue, "Opera"); 
            if ((result == true)) {
                return false; 
            }
            headerValue = ((string)(browserCaps[string.Empty]));
            result = regexWorker.ProcessRegex(headerValue, "AvantGo");
            if ((result == true)) { 
                return false;
            } 
            headerValue = ((string)(browserCaps[string.Empty])); 
            result = regexWorker.ProcessRegex(headerValue, "MSIE");
            if ((result == true)) { 
                return false;
            }
            // Capabilities: set capabilities
            dictionary["browser"] = "Netscape"; 
            dictionary["cookies"] = "true";
            dictionary["css1"] = "true"; 
            dictionary["ecmascriptversion"] = "1.1"; 
            dictionary["frames"] = "true";
            dictionary["isColor"] = "true"; 
            dictionary["javaapplets"] = "true";
            dictionary["javascript"] = "true";
            dictionary["screenBitDepth"] = "8";
            dictionary["supportsCss"] = "false"; 
            dictionary["supportsFileUpload"] = "true";
            dictionary["supportsMultilineTextBoxDisplay"] = "true"; 
            dictionary["tables"] = "true"; 
            dictionary["type"] = "Netscape3";
            browserCaps.Adapters["System.Web.UI.WebControls.Menu, System.Web, Version=2.0.0.0, Culture=neutral, Pub" + 
                "licKeyToken=b03f5f7f11d50a3a"] = "System.Web.UI.WebControls.Adapters.MenuAdapter";
            browserCaps.AddBrowser("Netscape3");
            this.Netscape3ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Netscape3ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        } 

        protected virtual void Netscape4ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        protected virtual void Netscape4ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool Netscape4Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(browserCaps[string.Empty]));
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "^Mozilla/4"); 
            if ((result == false)) { 
                return false;
            } 
            headerValue = ((string)(browserCaps[string.Empty]));
            result = regexWorker.ProcessRegex(headerValue, "Opera");
            if ((result == true)) {
                return false; 
            }
            headerValue = ((string)(browserCaps[string.Empty])); 
            result = regexWorker.ProcessRegex(headerValue, "MSIE"); 
            if ((result == true)) {
                return false; 
            }
            // Capabilities: set capabilities
            dictionary["browser"] = "Netscape";
            dictionary["cookies"] = "true"; 
            dictionary["css1"] = "true";
            dictionary["ecmascriptversion"] = "1.3"; 
            dictionary["frames"] = "true"; 
            dictionary["isColor"] = "true";
            dictionary["javaapplets"] = "true"; 
            dictionary["javascript"] = "true";
            dictionary["screenBitDepth"] = "8";
            dictionary["supportsCss"] = "false";
            dictionary["supportsFileUpload"] = "true"; 
            dictionary["supportsMultilineTextBoxDisplay"] = "true";
            dictionary["tables"] = "true"; 
            dictionary["type"] = "Netscape4"; 
            browserCaps.Adapters["System.Web.UI.WebControls.Menu, System.Web, Version=2.0.0.0, Culture=neutral, Pub" +
                "licKeyToken=b03f5f7f11d50a3a"] = "System.Web.UI.WebControls.Adapters.MenuAdapter"; 
            browserCaps.AddBrowser("Netscape4");
            this.Netscape4ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = true;
            // browser, parent=Netscape4 
            if (this.CasiopeiaProcess(headers, browserCaps)) {
            } 
            else { 
                if (this.PalmwebproProcess(headers, browserCaps)) {
                } 
                else {
                    if (this.NetfrontProcess(headers, browserCaps)) {
                    }
                    else { 
                        ignoreApplicationBrowsers = false;
                    } 
                } 
            }
            this.Netscape4ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        }

        protected virtual void Netscape5ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void Netscape5ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool Netscape5Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(browserCaps[string.Empty])); 
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "^Mozilla/5\\.0 \\([^)]*\\) (Gecko/[-\\d]+ )?Netscape\\d?/(?\'version\'(?\'major\'\\d+)(?\'mi" +
                    "nor\'\\.\\d+)(?\'letters\'\\w*))");
            if ((result == false)) {
                return false; 
            }
            // Capabilities: set capabilities 
            dictionary["browser"] = "Netscape"; 
            dictionary["cookies"] = "true";
            dictionary["css1"] = "true"; 
            dictionary["css2"] = "true";
            dictionary["ecmascriptversion"] = "1.5";
            dictionary["frames"] = "true";
            dictionary["isColor"] = "true"; 
            dictionary["javaapplets"] = "true";
            dictionary["javascript"] = "true"; 
            dictionary["letters"] = regexWorker["${letters}"]; 
            dictionary["majorversion"] = regexWorker["${major}"];
            dictionary["maximumRenderedPageSize"] = "300000"; 
            dictionary["minorversion"] = regexWorker["${minor}"];
            dictionary["preferredImageMime"] = "image/gif";
            dictionary["screenBitDepth"] = "8";
            dictionary["supportsDivNoWrap"] = "false"; 
            dictionary["supportsMultilineTextBoxDisplay"] = "true";
            dictionary["supportsVCard"] = "true"; 
            dictionary["tables"] = "true"; 
            dictionary["type"] = regexWorker["Netscape${major}"];
            dictionary["version"] = regexWorker["${version}"]; 
            dictionary["w3cdomversion"] = "1.0";
            dictionary["xml"] = "true";
            browserCaps.AddBrowser("Netscape5");
            this.Netscape5ProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = true;
            // browser, parent=Netscape5 
            if (this.Netscape6to9Process(headers, browserCaps)) { 
            }
            else { 
                if (this.NetscapebetaProcess(headers, browserCaps)) {
                }
                else {
                    ignoreApplicationBrowsers = false; 
                }
            } 
            this.Netscape5ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 

        protected virtual void Netscape6to9ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        protected virtual void Netscape6to9ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        private bool Netscape6to9Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification:
            string headerValue;
            headerValue = ((string)(dictionary["version"])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "[6-9]\\.");
            if ((result == false)) { 
                return false;
            }
            // Capabilities: set capabilities
            dictionary["tagwriter"] = "System.Web.UI.HtmlTextWriter"; 
            dictionary["supportsDivNoWrap"] = "false";
            dictionary["supportsXmlHttp"] = "true"; 
            dictionary["supportsCallback"] = "true"; 
            dictionary["supportsMaintainScrollPositionOnPostback"] = "true";
            browserCaps.AddBrowser("Netscape6to9"); 
            this.Netscape6to9ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = true;
            // browser, parent=Netscape6to9
            if (this.Netscape6to9betaProcess(headers, browserCaps)) { 
            }
            else { 
                ignoreApplicationBrowsers = false; 
            }
            this.Netscape6to9ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        }

        protected virtual void Netscape6to9betaProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void Netscape6to9betaProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool Netscape6to9betaProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["letters"])); 
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "^b");
            if ((result == false)) {
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["beta"] = "true"; 
            browserCaps.AddBrowser("Netscape6to9Beta"); 
            this.Netscape6to9betaProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Netscape6to9betaProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        }
 
        protected virtual void NetscapebetaProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        protected virtual void NetscapebetaProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool NetscapebetaProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["letters"])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "^b");
            if ((result == false)) {
                return false; 
            }
            // Capabilities: set capabilities 
            dictionary["beta"] = "true"; 
            browserCaps.AddBrowser("NetscapeBeta");
            this.NetscapebetaProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.NetscapebetaProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        } 

        protected virtual void NokiaProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        } 

        protected virtual void NokiaProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        private bool NokiaProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue; 
            headerValue = ((string)(browserCaps[string.Empty]));
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "Nokia");
            if ((result == false)) { 
                return false;
            } 
            // Capabilities: set capabilities 
            dictionary["browser"] = "Nokia";
            dictionary["cookies"] = "false"; 
            dictionary["canInitiateVoiceCall"] = "true";
            dictionary["canRenderOneventAndPrevElementsTogether"] = "false";
            dictionary["canRenderPostBackCards"] = "false";
            dictionary["canSendMail"] = "false"; 
            dictionary["defaultScreenCharactersHeight"] = "4";
            dictionary["defaultScreenCharactersWidth"] = "20"; 
            dictionary["defaultScreenPixelsHeight"] = "40"; 
            dictionary["defaultScreenPixelsWidth"] = "90";
            dictionary["hasBackButton"] = "false"; 
            dictionary["inputType"] = "telephoneKeypad";
            dictionary["isColor"] = "false";
            dictionary["isMobileDevice"] = "true";
            dictionary["maximumRenderedPageSize"] = "1397"; 
            dictionary["mobileDeviceManufacturer"] = "Nokia";
            dictionary["numberOfSoftkeys"] = "2"; 
            dictionary["preferredImageMime"] = "image/vnd.wap.wbmp"; 
            dictionary["preferredRenderingMime"] = "text/vnd.wap.wml";
            dictionary["preferredRenderingType"] = "wml11"; 
            dictionary["rendersBreaksAfterWmlAnchor"] = "true";
            dictionary["rendersBreaksAfterWmlInput"] = "true";
            dictionary["rendersWmlDoAcceptsInline"] = "false";
            dictionary["requiresAdaptiveErrorReporting"] = "true"; 
            dictionary["requiresPhoneNumbersAsPlainText"] = "true";
            dictionary["requiresUniqueFilePathSuffix"] = "true"; 
            dictionary["screenBitDepth"] = "1"; 
            dictionary["type"] = "Nokia";
            browserCaps.AddBrowser("Nokia"); 
            this.NokiaProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = true;
            // browser, parent=Nokia
            if (this.NokiablueprintProcess(headers, browserCaps)) { 
            }
            else { 
                if (this.NokiawapsimulatorProcess(headers, browserCaps)) { 
                }
                else { 
                    if (this.NokiamobilebrowserProcess(headers, browserCaps)) {
                    }
                    else {
                        if (this.Nokia7110Process(headers, browserCaps)) { 
                        }
                        else { 
                            if (this.Nokia6220Process(headers, browserCaps)) { 
                            }
                            else { 
                                if (this.Nokia6250Process(headers, browserCaps)) {
                                }
                                else {
                                    if (this.Nokia6310Process(headers, browserCaps)) { 
                                    }
                                    else { 
                                        if (this.Nokia6510Process(headers, browserCaps)) { 
                                        }
                                        else { 
                                            if (this.Nokia8310Process(headers, browserCaps)) {
                                            }
                                            else {
                                                if (this.Nokia9110iProcess(headers, browserCaps)) { 
                                                }
                                                else { 
                                                    if (this.Nokia9110Process(headers, browserCaps)) { 
                                                    }
                                                    else { 
                                                        if (this.Nokia3330Process(headers, browserCaps)) {
                                                        }
                                                        else {
                                                            if (this.Nokia9210Process(headers, browserCaps)) { 
                                                            }
                                                            else { 
                                                                if (this.Nokia9210htmlProcess(headers, browserCaps)) { 
                                                                }
                                                                else { 
                                                                    if (this.Nokia3590Process(headers, browserCaps)) {
                                                                    }
                                                                    else {
                                                                        if (this.Nokia3595Process(headers, browserCaps)) { 
                                                                        }
                                                                        else { 
                                                                            if (this.Nokia3560Process(headers, browserCaps)) { 
                                                                            }
                                                                            else { 
                                                                                if (this.Nokia3650Process(headers, browserCaps)) {
                                                                                }
                                                                                else {
                                                                                    if (this.Nokia5100Process(headers, browserCaps)) { 
                                                                                    }
                                                                                    else { 
                                                                                        if (this.Nokia6200Process(headers, browserCaps)) { 
                                                                                        }
                                                                                        else { 
                                                                                            if (this.Nokia6590Process(headers, browserCaps)) {
                                                                                            }
                                                                                            else {
                                                                                                if (this.Nokia6800Process(headers, browserCaps)) { 
                                                                                                }
                                                                                                else { 
                                                                                                    if (this.Nokia7650Process(headers, browserCaps)) { 
                                                                                                    }
                                                                                                    else { 
                                                                                                        ignoreApplicationBrowsers = false;
                                                                                                    }
                                                                                                }
                                                                                            } 
                                                                                        }
                                                                                    } 
                                                                                } 
                                                                            }
                                                                        } 
                                                                    }
                                                                }
                                                            }
                                                        } 
                                                    }
                                                } 
                                            } 
                                        }
                                    } 
                                }
                            }
                        }
                    } 
                }
            } 
            this.NokiaProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 

        protected virtual void NokiablueprintProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        protected virtual void NokiablueprintProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        private bool NokiablueprintProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification:
            string headerValue;
            headerValue = ((string)(browserCaps[string.Empty])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "Nokia\\-WAP\\-Toolkit\\/(?\'browserMajorVersion\'\\w*)(?\'browserMinorVersion\'\\.\\w*)");
            if ((result == false)) { 
                return false;
            }
            // Capabilities: set capabilities
            dictionary["canInitiateVoiceCall"] = "false"; 
            dictionary["cookies"] = "true";
            dictionary["majorVersion"] = regexWorker["${browserMajorVersion}"]; 
            dictionary["maximumRenderedPageSize"] = "65536"; 
            dictionary["minorVersion"] = regexWorker["${browserMinorVersion}"];
            dictionary["mobileDeviceModel"] = "Blueprint Simulator"; 
            dictionary["preferredRenderingType"] = "wml12";
            dictionary["rendersBreaksAfterWmlAnchor"] = "false";
            dictionary["type"] = "Nokia WAP Toolkit";
            dictionary["version"] = regexWorker["${browserMajorVersion}${browserMinorVersion}"]; 
            browserCaps.AddBrowser("NokiaBlueprint");
            this.NokiablueprintProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false; 
            this.NokiablueprintProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }

        protected virtual void NokiawapsimulatorProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void NokiawapsimulatorProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        } 

        private bool NokiawapsimulatorProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification:
            string headerValue; 
            headerValue = ((string)(browserCaps[string.Empty]));
            bool result; 
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "Nokia\\-MIT\\-Browser\\/(?\'browserMajorVersion\'\\w*)(?\'browserMinorVersion\'\\.\\w*)"); 
            if ((result == false)) {
                return false;
            }
            // Capabilities: set capabilities 
            dictionary["canRenderOnEventAndPrevElementsTogether"] = "true";
            dictionary["canRenderPostBackCards"] = "true"; 
            dictionary["cookies"] = "true"; 
            dictionary["hasBackButton"] = "true";
            dictionary["inputType"] = "virtualKeyboard"; 
            dictionary["majorVersion"] = regexWorker["${browserMajorVersion}"];
            dictionary["maximumRenderedPageSize"] = "3584";
            dictionary["maximumSoftkeyLabelLength"] = "21";
            dictionary["minorVersion"] = regexWorker["${browserMinorVersion}"]; 
            dictionary["mobileDeviceModel"] = "WAP Simulator";
            dictionary["rendersBreaksAfterWmlAnchor"] = "false"; 
            dictionary["requiresPhoneNumbersAsPlainText"] = "false"; 
            dictionary["screenBitDepth"] = "2";
            dictionary["screenCharactersHeight"] = "25"; 
            dictionary["screenCharactersWidth"] = "32";
            dictionary["screenPixelsHeight"] = "512";
            dictionary["screenPixelsWidth"] = "384";
            dictionary["supportsBold"] = "true"; 
            dictionary["supportsFontSize"] = "true";
            dictionary["supportsItalic"] = "true"; 
            dictionary["supportsRedirectWithCookie"] = "false"; 
            dictionary["type"] = "Nokia Mobile Internet Toolkit";
            dictionary["version"] = regexWorker["${browserMajorVersion}${browserMinorVersion}"]; 
            browserCaps.AddBrowser("NokiaWapSimulator");
            this.NokiawapsimulatorProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false;
            this.NokiawapsimulatorProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 
 
        protected virtual void NokiamobilebrowserProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void NokiamobilebrowserProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        private bool NokiamobilebrowserProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(browserCaps[string.Empty]));
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "Nokia Mobile Browser (?\'browserMajorVersion\'\\w*)(?\'browserMinorVersion\'\\.\\w*)");
            if ((result == false)) { 
                return false; 
            }
            // Capabilities: set capabilities 
            dictionary["breaksOnInlineElements"] = "false";
            dictionary["canInitiateVoiceCall"] = "false";
            dictionary["canSendMail"] = "false";
            dictionary["cookies"] = "true"; 
            dictionary["inputType"] = "keyboard";
            dictionary["isColor"] = "true"; 
            dictionary["majorVersion"] = regexWorker["${browserMajorVersion}"]; 
            dictionary["maximumRenderedPageSize"] = "25000";
            dictionary["minorVersion"] = regexWorker["${browserMinorVersion}"]; 
            dictionary["mobileDeviceModel"] = regexWorker["Mobile Browser ${browserMajorVersion}${browserMinorVersion}"];
            dictionary["preferredImageMime"] = "image/gif";
            dictionary["preferredRenderingMime"] = "application/vnd.wap.xhtml+xml";
            dictionary["preferredRenderingType"] = "xhtml-mp"; 
            dictionary["requiresAbsolutePostbackUrl"] = "true";
            dictionary["requiresCommentInStyleElement"] = "false"; 
            dictionary["requiresHtmlAdaptiveErrorReporting"] = "true"; 
            dictionary["requiresPostRedirectionHandling"] = "true";
            dictionary["screenBitDepth"] = "8"; 
            dictionary["screenCharactersHeight"] = "14";
            dictionary["screenCharactersWidth"] = "24";
            dictionary["screenPixelsHeight"] = "255";
            dictionary["screenPixelsWidth"] = "180"; 
            dictionary["supportsAccessKeyAttribute"] = "true";
            dictionary["supportsBold"] = "true"; 
            dictionary["supportsCss"] = "true"; 
            dictionary["supportsFontName"] = "true";
            dictionary["supportsFontSize"] = "true"; 
            dictionary["supportsItalic"] = "true";
            dictionary["supportsRedirectWithCookie"] = "false";
            dictionary["supportsStyleElement"] = "true";
            dictionary["tables"] = "true"; 
            dictionary["type"] = regexWorker["Nokia Mobile Browser ${browserMajorVersion}${browserMinorVersion}"];
            dictionary["version"] = regexWorker["${browserMajorVersion}${browserMinorVersion}"]; 
            browserCaps.HtmlTextWriter = "System.Web.UI.XhtmlTextWriter"; 
            browserCaps.AddBrowser("NokiaMobileBrowser");
            this.NokiamobilebrowserProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.NokiamobilebrowserProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        } 

        protected virtual void Nokia7110ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        } 

        protected virtual void Nokia7110ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        private bool Nokia7110Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue; 
            headerValue = ((string)(browserCaps[string.Empty]));
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "Nokia7110/1\\.0 \\((?\'versionString\'(?\'browserMajorVersion\'\\w*)(?\'browserMinorVersi" +
                    "on\'\\.\\w*).*)\\)"); 
            if ((result == false)) {
                return false; 
            } 
            // Capabilities: set capabilities
            dictionary["majorVersion"] = regexWorker["${browserMajorVersion}"]; 
            dictionary["minorVersion"] = regexWorker["${browserMinorVersion}"];
            dictionary["mobileDeviceModel"] = "7110";
            dictionary["optimumPageWeight"] = "800";
            dictionary["screenCharactersHeight"] = "4"; 
            dictionary["screenCharactersWidth"] = "22";
            dictionary["screenPixelsHeight"] = "44"; 
            dictionary["screenPixelsWidth"] = "96"; 
            dictionary["type"] = "Nokia 7110";
            dictionary["version"] = regexWorker["${versionString}"]; 
            browserCaps.AddBrowser("Nokia7110");
            this.Nokia7110ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false;
            this.Nokia7110ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 
 
        protected virtual void Nokia6220ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void Nokia6220ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        private bool Nokia6220Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(browserCaps[string.Empty]));
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "Nokia6210/1\\.0 \\((?\'versionString\'(?\'browserMajorVersion\'\\w*)(?\'browserMinorVersi" +
                    "on\'\\.\\w*).*)\\)"); 
            if ((result == false)) { 
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["majorVersion"] = regexWorker["${browserMajorVersion}"];
            dictionary["minorVersion"] = regexWorker["${browserMinorVersion}"];
            dictionary["mobileDeviceModel"] = "6210"; 
            dictionary["screenCharactersHeight"] = "4";
            dictionary["screenCharactersWidth"] = "22"; 
            dictionary["screenPixelsHeight"] = "41"; 
            dictionary["screenPixelsWidth"] = "96";
            dictionary["type"] = "Nokia 6210"; 
            dictionary["version"] = regexWorker["${versionString}"];
            browserCaps.AddBrowser("Nokia6220");
            this.Nokia6220ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Nokia6220ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        } 

        protected virtual void Nokia6250ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        protected virtual void Nokia6250ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool Nokia6250Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(browserCaps[string.Empty]));
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "Nokia6250/1\\.0 \\((?\'versionString\'(?\'browserMajorVersion\'\\w*)(?\'browserMinorVersi" + 
                    "on\'\\.\\w*).*)\\)"); 
            if ((result == false)) {
                return false; 
            }
            // Capabilities: set capabilities
            dictionary["majorVersion"] = regexWorker["${browserMajorVersion}"];
            dictionary["minorVersion"] = regexWorker["${browserMinorVersion}"]; 
            dictionary["mobileDeviceModel"] = "6250";
            dictionary["screenCharactersHeight"] = "4"; 
            dictionary["screenCharactersWidth"] = "22"; 
            dictionary["screenPixelsHeight"] = "41";
            dictionary["screenPixelsWidth"] = "96"; 
            dictionary["type"] = "Nokia 6250";
            dictionary["version"] = regexWorker["${versionString}"];
            browserCaps.AddBrowser("Nokia6250");
            this.Nokia6250ProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.Nokia6250ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true; 
        }
 
        protected virtual void Nokia6310ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        protected virtual void Nokia6310ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool Nokia6310Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue;
            headerValue = ((string)(browserCaps[string.Empty]));
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "Nokia6310/1\\.0 \\((?\'versionString\'(?\'browserMajorVersion\'\\w*)(?\'browserMinorVersi" + 
                    "on\'\\.\\w*).*)\\)");
            if ((result == false)) { 
                return false;
            }
            // Capabilities: set capabilities
            dictionary["canRenderOneventAndPrevElementsTogether"] = "true"; 
            dictionary["canRenderPostBackCards"] = "true";
            dictionary["cookies"] = "true"; 
            dictionary["majorVersion"] = regexWorker["${browserMajorVersion}"]; 
            dictionary["maximumRenderedPageSize"] = "2800";
            dictionary["maximumSoftkeyLabelLength"] = "21"; 
            dictionary["minorVersion"] = regexWorker["${browserMinorVersion}"];
            dictionary["mobileDeviceModel"] = "6310";
            dictionary["preferredRenderingType"] = "wml12";
            dictionary["rendersBreaksAfterWmlAnchor"] = "false"; 
            dictionary["rendersBreaksAfterWmlInput"] = "false";
            dictionary["requiresPhoneNumbersAsPlainText"] = "false"; 
            dictionary["screenBitDepth"] = "8"; 
            dictionary["screenCharactersHeight"] = "4";
            dictionary["screenCharactersWidth"] = "18"; 
            dictionary["screenPixelsHeight"] = "45";
            dictionary["screenPixelsWidth"] = "92";
            dictionary["type"] = "Nokia 6310";
            dictionary["version"] = regexWorker["${versionString}"]; 
            browserCaps.AddBrowser("Nokia6310");
            this.Nokia6310ProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false; 
            this.Nokia6310ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }

        protected virtual void Nokia6510ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void Nokia6510ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        } 

        private bool Nokia6510Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification:
            string headerValue; 
            headerValue = ((string)(browserCaps[string.Empty]));
            bool result; 
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "Nokia6510/1\\.0 \\((?\'versionString\'(?\'browserMajorVersion\'\\w*)(?\'browserMinorVersi" + 
                    "on\'\\.\\w*).*)\\)");
            if ((result == false)) {
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["canRenderOnEventAndPrevElementsTogether"] = "true"; 
            dictionary["canRenderPostBackCards"] = "true"; 
            dictionary["cookies"] = "true";
            dictionary["hasBackButton"] = "true"; 
            dictionary["majorVersion"] = regexWorker["${browserMajorVersion}"];
            dictionary["maximumRenderedPageSize"] = "2800";
            dictionary["maximumSoftkeyLabelLength"] = "21";
            dictionary["minorVersion"] = regexWorker["${browserMinorVersion}"]; 
            dictionary["mobileDeviceModel"] = "6510";
            dictionary["preferredImageMime"] = "image/gif"; 
            dictionary["preferredRenderingType"] = "wml12"; 
            dictionary["requiresPhoneNumbersAsPlainText"] = "false";
            dictionary["screenBitDepth"] = "8"; 
            dictionary["screenCharactersHeight"] = "4";
            dictionary["screenCharactersWidth"] = "18";
            dictionary["screenPixelsHeight"] = "45";
            dictionary["screenPixelsWidth"] = "96"; 
            dictionary["supportsRedirectWithCookie"] = "false";
            dictionary["type"] = "Nokia 6510"; 
            dictionary["version"] = regexWorker["${versionString}"]; 
            browserCaps.AddBrowser("Nokia6510");
            this.Nokia6510ProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.Nokia6510ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        } 

        protected virtual void Nokia8310ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        } 

        protected virtual void Nokia8310ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        private bool Nokia8310Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue; 
            headerValue = ((string)(browserCaps[string.Empty]));
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "Nokia8310/1\\.0 \\((?\'versionString\'(?\'browserMajorVersion\'\\w*)(?\'browserMinorVersi" +
                    "on\'\\.\\w*).*)\\)"); 
            if ((result == false)) {
                return false; 
            } 
            // Capabilities: set capabilities
            dictionary["canRenderOneventAndPrevElementsTogether"] = "true"; 
            dictionary["canRenderPostBackCards"] = "true";
            dictionary["majorVersion"] = regexWorker["${browserMajorVersion}"];
            dictionary["maximumRenderedPageSize"] = "2700";
            dictionary["maximumSoftkeyLabelLength"] = "21"; 
            dictionary["minorVersion"] = regexWorker["${browserMinorVersion}"];
            dictionary["mobileDeviceModel"] = "8310"; 
            dictionary["preferredImageMime"] = "image/gif"; 
            dictionary["preferredRenderingType"] = "wml12";
            dictionary["rendersBreaksAfterWmlAnchor"] = "false"; 
            dictionary["rendersBreaksAfterWmlInput"] = "false";
            dictionary["requiresPhoneNumbersAsPlainText"] = "false";
            dictionary["screenBitDepth"] = "8";
            dictionary["screenCharactersHeight"] = "3"; 
            dictionary["screenCharactersWidth"] = "16";
            dictionary["screenPixelsHeight"] = "39"; 
            dictionary["screenPixelsWidth"] = "78"; 
            dictionary["type"] = "Nokia 8310";
            dictionary["version"] = regexWorker["${versionString}"]; 
            browserCaps.AddBrowser("Nokia8310");
            this.Nokia8310ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false;
            this.Nokia8310ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 
 
        protected virtual void Nokia9110iProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void Nokia9110iProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        private bool Nokia9110iProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(browserCaps[string.Empty]));
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "Nokia9110/1\\.0");
            if ((result == false)) { 
                return false; 
            }
            // Capabilities: set capabilities 
            dictionary["cookies"] = "true";
            dictionary["inputType"] = "keyboard";
            dictionary["maximumRenderedPageSize"] = "8192";
            dictionary["mobileDeviceModel"] = "9110i Communicator"; 
            dictionary["rendersBreaksAfterWmlAnchor"] = "false";
            dictionary["screenBitDepth"] = "4"; 
            dictionary["screenCharactersHeight"] = "8"; 
            dictionary["screenCharactersWidth"] = "60";
            dictionary["screenPixelsHeight"] = "180"; 
            dictionary["screenPixelsWidth"] = "400";
            dictionary["type"] = "Nokia 9110";
            browserCaps.AddBrowser("Nokia9110i");
            this.Nokia9110iProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.Nokia9110iProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true; 
        }
 
        protected virtual void Nokia9110ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        protected virtual void Nokia9110ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool Nokia9110Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue;
            headerValue = ((string)(browserCaps[string.Empty]));
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "Nokia-9110"); 
            if ((result == false)) {
                return false; 
            }
            // Capabilities: set capabilities
            dictionary["canInitiateVoiceCall"] = "false";
            dictionary["canSendMail"] = "true"; 
            dictionary["inputType"] = "keyboard";
            dictionary["maximumRenderedPageSize"] = "150000"; 
            dictionary["mobileDeviceModel"] = "Nokia 9110"; 
            dictionary["numberOfSoftkeys"] = "0";
            dictionary["preferredImageMime"] = "image/jpeg"; 
            dictionary["preferredRenderingMime"] = "text/html";
            dictionary["preferredRenderingType"] = "html32";
            dictionary["rendersBreaksAfterHtmlLists"] = "false";
            dictionary["requiresAttributeColonSubstitution"] = "true"; 
            dictionary["screenBitDepth"] = "8";
            dictionary["screenCharactersHeight"] = "11"; 
            dictionary["screenCharactersWidth"] = "57"; 
            dictionary["screenPixelsHeight"] = "200";
            dictionary["screenPixelsWidth"] = "540"; 
            dictionary["supportsAccesskeyAttribute"] = "true";
            dictionary["supportsBodyColor"] = "false";
            dictionary["supportsBold"] = "true";
            dictionary["supportsFontColor"] = "false"; 
            dictionary["supportsFontSize"] = "true";
            dictionary["supportsImageSubmit"] = "true"; 
            dictionary["supportsItalic"] = "true"; 
            dictionary["supportsSelectMultiple"] = "false";
            dictionary["tables"] = "true"; 
            dictionary["type"] = "Nokia 9110";
            browserCaps.HtmlTextWriter = "System.Web.UI.Html32TextWriter";
            browserCaps.AddBrowser("Nokia9110");
            this.Nokia9110ProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.Nokia9110ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true; 
        }
 
        protected virtual void Nokia3330ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        protected virtual void Nokia3330ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool Nokia3330Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue;
            headerValue = ((string)(browserCaps[string.Empty]));
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "Nokia3330/1\\.0 \\((?\'versionString\'(?\'browserMajorVersion\'\\w*)(?\'browserMinorVersi" + 
                    "on\'\\.\\w*).*)\\)");
            if ((result == false)) { 
                return false;
            }
            // Capabilities: set capabilities
            dictionary["hasBackButton"] = "true"; 
            dictionary["majorVersion"] = regexWorker["${browserMajorVersion}"];
            dictionary["maximumRenderedPageSize"] = "2800"; 
            dictionary["minorVersion"] = regexWorker["${browserMinorVersion}"]; 
            dictionary["mobileDeviceModel"] = "3330";
            dictionary["screenCharactersHeight"] = "3"; 
            dictionary["screenCharactersWidth"] = "18";
            dictionary["screenPixelsHeight"] = "39";
            dictionary["screenPixelsWidth"] = "78";
            dictionary["type"] = "Nokia 3330"; 
            dictionary["version"] = regexWorker["${versionString}"];
            browserCaps.AddBrowser("Nokia3330"); 
            this.Nokia3330ProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.Nokia3330ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        }

        protected virtual void Nokia9210ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void Nokia9210ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool Nokia9210Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(browserCaps[string.Empty])); 
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "Nokia9210/1\\.0");
            if ((result == false)) {
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["cookies"] = "true"; 
            dictionary["inputType"] = "keyboard"; 
            dictionary["isColor"] = "true";
            dictionary["maximumRenderedPageSize"] = "8192"; 
            dictionary["mobileDeviceModel"] = "9210 Communicator";
            dictionary["rendersBreaksAfterWmlAnchor"] = "false";
            dictionary["rendersBreaksAfterWmlInput"] = "false";
            dictionary["requiresNoSoftkeyLabels"] = "true"; 
            dictionary["requiresSpecialViewStateEncoding"] = "true";
            dictionary["screenBitDepth"] = "12"; 
            dictionary["screenCharactersHeight"] = "10"; 
            dictionary["screenCharactersWidth"] = "75";
            dictionary["screenPixelsHeight"] = "165"; 
            dictionary["screenPixelsWidth"] = "490";
            dictionary["supportsCacheControlMetaTag"] = "false";
            dictionary["type"] = "Nokia 9210";
            browserCaps.AddBrowser("Nokia9210"); 
            this.Nokia9210ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Nokia9210ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 

        protected virtual void Nokia9210htmlProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        protected virtual void Nokia9210htmlProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        private bool Nokia9210htmlProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification:
            string headerValue;
            headerValue = ((string)(browserCaps[string.Empty])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "EPOC32-WTL/2\\.2 Crystal/6\\.0 STNC-WTL/");
            if ((result == false)) { 
                return false;
            }
            // Capabilities: set capabilities
            dictionary["ExchangeOmaSupported"] = "true"; 
            browserCaps.AddBrowser("Nokia9210HTML");
            this.Nokia9210htmlProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false; 
            this.Nokia9210htmlProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }

        protected virtual void Nokia3590ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void Nokia3590ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        } 

        private bool Nokia3590Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification:
            string headerValue; 
            headerValue = ((string)(browserCaps[string.Empty]));
            bool result; 
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "^Nokia3590/(?\'version\'(?\'browserMajorVersion\'\\d*)(?\'browserMinorVersion\'\\.\\d*)\\S*" + 
                    ")");
            if ((result == false)) {
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["breaksOnInlineElements"] = "false"; 
            dictionary["canSendMail"] = "true"; 
            dictionary["cookies"] = "true";
            dictionary["majorVersion"] = regexWorker["${browserMajorVersion}"]; 
            dictionary["maximumRenderedPageSize"] = "3200";
            dictionary["minorVersion"] = regexWorker["${browserMinorVersion}"];
            dictionary["mobileDeviceModel"] = "3590";
            dictionary["preferredImageMime"] = "image/gif"; 
            dictionary["preferredRenderingMime"] = "application/xhtml+xml";
            dictionary["preferredRenderingType"] = "xhtml-mp"; 
            dictionary["requiresAbsolutePostbackUrl"] = "true"; 
            dictionary["requiresCommentInStyleElement"] = "false";
            dictionary["requiresHiddenFieldValues"] = "false"; 
            dictionary["requiresHtmlAdaptiveErrorReporting"] = "true";
            dictionary["requiresOnEnterForwardForCheckboxLists"] = "false";
            dictionary["requiresXhtmlCssSuppression"] = "false";
            dictionary["screenBitDepth"] = "8"; 
            dictionary["screenCharactersHeight"] = "4";
            dictionary["screenCharactersWidth"] = "18"; 
            dictionary["screenPixelsHeight"] = "72"; 
            dictionary["screenPixelsWidth"] = "96";
            dictionary["supportsBodyClassAttribute"] = "true"; 
            dictionary["supportsBodyColor"] = "false";
            dictionary["supportsBold"] = "true";
            dictionary["supportsFontColor"] = "false";
            dictionary["supportsFontSize"] = "true"; 
            dictionary["supportsItalic"] = "true";
            dictionary["supportsSelectFollowingTable"] = "true"; 
            dictionary["supportsStyleElement"] = "true"; 
            dictionary["supportsUrlAttributeEncoding"] = "true";
            dictionary["tables"] = "true"; 
            dictionary["type"] = "Nokia 3590";
            dictionary["version"] = regexWorker["${version}"];
            browserCaps.AddBrowser("Nokia3590");
            this.Nokia3590ProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = true;
            // browser, parent=Nokia3590 
            if (this.Nokia3590v1Process(headers, browserCaps)) { 
            }
            else { 
                ignoreApplicationBrowsers = false;
            }
            this.Nokia3590ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }
 
        protected virtual void Nokia3590v1ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void Nokia3590v1ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        private bool Nokia3590v1Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification: 
            string headerValue;
            headerValue = ((string)(browserCaps[string.Empty])); 
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "Nokia3590/1\\.0\\(7\\."); 
            if ((result == false)) {
                return false; 
            } 
            // Capabilities: set capabilities
            dictionary["ExchangeOmaSupported"] = "true"; 
            dictionary["maximumRenderedPageSize"] = "8020";
            dictionary["preferredRequestEncoding"] = "iso-8859-1";
            dictionary["preferredResponseEncoding"] = "utf-8";
            dictionary["screenPixelsHeight"] = "65"; 
            dictionary["supportsCss"] = "true";
            dictionary["supportsNoWrapStyle"] = "false"; 
            dictionary["supportsTitleElement"] = "true"; 
            dictionary["tables"] = "false";
            browserCaps.AddBrowser("Nokia3590V1"); 
            this.Nokia3590v1ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false;
            this.Nokia3590v1ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }
 
        protected virtual void Nokia3595ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void Nokia3595ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        private bool Nokia3595Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification: 
            string headerValue;
            headerValue = ((string)(browserCaps[string.Empty])); 
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "Nokia3595/(?\'version\'(?\'browserMajorVersion\'\\d*)(?\'browserMinorVersion\'\\.\\d*)\\S*)" + 
                    "");
            if ((result == false)) { 
                return false; 
            }
            // Capabilities: set capabilities 
            dictionary["breaksOnInlineElements"] = "false";
            dictionary["canSendMail"] = "true";
            dictionary["cookies"] = "true";
            dictionary["ExchangeOmaSupported"] = "true"; 
            dictionary["isColor"] = "true";
            dictionary["majorVersion"] = regexWorker["${browserMajorVersion}"]; 
            dictionary["maximumRenderedPageSize"] = "15700"; 
            dictionary["minorVersion"] = regexWorker["${browserMinorVersion}"];
            dictionary["mobileDeviceModel"] = "3595"; 
            dictionary["preferredImageMime"] = "image/gif";
            dictionary["preferredRenderingMime"] = "application/xhtml+xml";
            dictionary["preferredRenderingType"] = "xhtml-mp";
            dictionary["preferredRequestEncoding"] = "iso-8859-1"; 
            dictionary["preferredResponseEncoding"] = "utf-8";
            dictionary["requiresAbsolutePostbackUrl"] = "false"; 
            dictionary["requiresCommentInStyleElement"] = "false"; 
            dictionary["requiresHiddenFieldValues"] = "false";
            dictionary["requiresHtmlAdaptiveErrorReporting"] = "true"; 
            dictionary["requiresOnEnterForwardForCheckboxLists"] = "false";
            dictionary["requiresXhtmlCssSuppression"] = "false";
            dictionary["screenBitDepth"] = "8";
            dictionary["screenCharactersWidth"] = "17"; 
            dictionary["screenPixelsHeight"] = "132";
            dictionary["screenPixelsWidth"] = "176"; 
            dictionary["supportsBodyClassAttribute"] = "true"; 
            dictionary["supportsBold"] = "true";
            dictionary["supportsCss"] = "true"; 
            dictionary["supportsFontSize"] = "true";
            dictionary["supportsNoWrapStyle"] = "false";
            dictionary["supportsSelectFollowingTable"] = "true";
            dictionary["supportsStyleElement"] = "true"; 
            dictionary["supportsTitleElement"] = "true";
            dictionary["supportsUrlAttributeEncoding"] = "true"; 
            dictionary["tables"] = "true"; 
            dictionary["type"] = "Nokia 3595";
            dictionary["version"] = regexWorker["${version}"]; 
            browserCaps.AddBrowser("Nokia3595");
            this.Nokia3595ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false;
            this.Nokia3595ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 
 
        protected virtual void Nokia3560ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void Nokia3560ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        private bool Nokia3560Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(browserCaps[string.Empty]));
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "Nokia3560");
            if ((result == false)) { 
                return false; 
            }
            // Capabilities: set capabilities 
            dictionary["breaksOnInlineElements"] = "false";
            dictionary["canSendMail"] = "true";
            dictionary["cookies"] = "true";
            dictionary["ExchangeOmaSupported"] = "true"; 
            dictionary["isColor"] = "true";
            dictionary["maximumRenderedPageSize"] = "10000"; 
            dictionary["preferredImageMime"] = "image/jpeg"; 
            dictionary["preferredRenderingMime"] = "application/xhtml+xml";
            dictionary["preferredRenderingType"] = "xhtml-mp"; 
            dictionary["requiresAbsolutePostbackUrl"] = "false";
            dictionary["requiresCommentInStyleElement"] = "false";
            dictionary["requiresHiddenFieldValues"] = "false";
            dictionary["requiresXhtmlCssSuppression"] = "false"; 
            dictionary["screenBitDepth"] = "24";
            dictionary["screenCharactersHeight"] = "8"; 
            dictionary["screenCharactersWidth"] = "28"; 
            dictionary["screenPixelsHeight"] = "176";
            dictionary["screenPixelsWidth"] = "208"; 
            dictionary["supportsBodyClassAttribute"] = "true";
            dictionary["supportsBold"] = "true";
            dictionary["supportsCss"] = "true";
            dictionary["supportsFontSize"] = "true"; 
            dictionary["supportsItalic"] = "true";
            dictionary["supportsNoWrapStyle"] = "false"; 
            dictionary["supportsSelectFollowingTable"] = "true"; 
            dictionary["supportsStyleElement"] = "true";
            dictionary["supportsTitleElement"] = "true"; 
            dictionary["supportsUrlAttributeEncoding"] = "true";
            dictionary["tables"] = "true";
            browserCaps.AddBrowser("Nokia3560");
            this.Nokia3560ProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.Nokia3560ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true; 
        }
 
        protected virtual void Nokia3650ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        protected virtual void Nokia3650ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool Nokia3650Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue;
            headerValue = ((string)(browserCaps[string.Empty]));
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "Nokia3650/(?\'browserMajorVersion\'\\d*)(?\'browserMinorVersion\'\\.\\d*).* Series60/(?\'" + 
                    "platformVersion\'\\S*)");
            if ((result == false)) { 
                return false;
            }
            // Capabilities: set capabilities
            dictionary["majorVersion"] = regexWorker["${browserMajorVersion}"]; 
            dictionary["minorVersion"] = regexWorker["${browserMinorVersion}"];
            dictionary["mobileDeviceModel"] = "3650"; 
            dictionary["mobilePlatformVersion"] = regexWorker["${platformVersion}"]; 
            dictionary["type"] = "Nokia 3650";
            dictionary["version"] = regexWorker["${browserMajorVersion}${browserMinorVersion}"]; 
            browserCaps.AddBrowser("Nokia3650");
            this.Nokia3650ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = true;
            // browser, parent=Nokia3650 
            if (this.Nokia3650p12plusProcess(headers, browserCaps)) {
            } 
            else { 
                ignoreApplicationBrowsers = false;
            } 
            this.Nokia3650ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        }
 
        protected virtual void Nokia3650p12plusProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        protected virtual void Nokia3650p12plusProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool Nokia3650p12plusProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["mobilePlatformVersion"])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "[^01]\\.|1\\.[^01]");
            if ((result == false)) {
                return false; 
            }
            // Capabilities: set capabilities 
            dictionary["breaksOnInlineElements"] = "false"; 
            dictionary["canSendMail"] = "true";
            dictionary["cookies"] = "true"; 
            dictionary["ExchangeOmaSupported"] = "true";
            dictionary["isColor"] = "true";
            dictionary["maximumRenderedPageSize"] = "10000";
            dictionary["preferredImageMime"] = "image/jpeg"; 
            dictionary["preferredRenderingMime"] = "application/xhtml+xml";
            dictionary["preferredRenderingType"] = "xhtml-basic"; 
            dictionary["requiresAbsolutePostbackUrl"] = "false"; 
            dictionary["requiresCommentInStyleElement"] = "false";
            dictionary["requiresHiddenFieldValues"] = "false"; 
            dictionary["requiresOnEnterForwardForCheckboxLists"] = "false";
            dictionary["requiresXhtmlCssSuppression"] = "false";
            dictionary["screenBitDepth"] = "24";
            dictionary["screenCharactersHeight"] = "8"; 
            dictionary["screenCharactersWidth"] = "28";
            dictionary["screenPixelsHeight"] = "176"; 
            dictionary["screenPixelsWidth"] = "208"; 
            dictionary["supportsBodyClassAttribute"] = "true";
            dictionary["supportsBold"] = "true"; 
            dictionary["supportsCss"] = "true";
            dictionary["supportsFontSize"] = "true";
            dictionary["supportsItalic"] = "true";
            dictionary["supportsNoWrapStyle"] = "false"; 
            dictionary["supportsSelectFollowingTable"] = "true";
            dictionary["supportsStyleElement"] = "true"; 
            dictionary["supportsTitleElement"] = "true"; 
            dictionary["supportsUrlAttributeEncoding"] = "true";
            dictionary["tables"] = "true"; 
            dictionary["tagwriter"] = "System.Web.UI.XhtmlTextWriter";
            browserCaps.AddBrowser("Nokia3650P12Plus");
            this.Nokia3650p12plusProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Nokia3650p12plusProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        } 

        protected virtual void Nokia5100ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        protected virtual void Nokia5100ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool Nokia5100Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(browserCaps[string.Empty]));
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "Nokia5100/(?\'version\'(?\'browserMajorVersion\'\\d*)(?\'browserMinorVersion\'\\.\\d*)\\S*)" + 
                    ""); 
            if ((result == false)) {
                return false; 
            }
            // Capabilities: set capabilities
            dictionary["canRenderOnEventAndPrevElementsTogether"] = "true";
            dictionary["canRenderPostBackCards"] = "true"; 
            dictionary["isColor"] = "true";
            dictionary["majorVersion"] = regexWorker["${browserMajorVersion}"]; 
            dictionary["maximumRenderedPageSize"] = "3500"; 
            dictionary["maximumSoftkeyLabelLength"] = "14";
            dictionary["minorVersion"] = regexWorker["${browserMinorVersion}"]; 
            dictionary["mobileDeviceModel"] = "5100";
            dictionary["preferredImageMime"] = "image/gif";
            dictionary["preferredRenderingType"] = "wml12";
            dictionary["rendersWmlDoAcceptsInline"] = "true"; 
            dictionary["rendersWmlSelectsAsMenuCards"] = "true";
            dictionary["requiresPhoneNumbersAsPlainText"] = "false"; 
            dictionary["screenBitDepth"] = "8"; 
            dictionary["screenCharactersHeight"] = "5";
            dictionary["screenCharactersWidth"] = "15"; 
            dictionary["screenPixelsHeight"] = "128";
            dictionary["screenPixelsWidth"] = "128";
            dictionary["supportsEmptyStringInCookieValue"] = "false";
            dictionary["supportsRedirectWithCookie"] = "false"; 
            dictionary["type"] = "Nokia 5100";
            dictionary["version"] = regexWorker["${version}"]; 
            browserCaps.AddBrowser("Nokia5100"); 
            this.Nokia5100ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Nokia5100ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        }
 
        protected virtual void Nokia6200ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        protected virtual void Nokia6200ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool Nokia6200Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(browserCaps[string.Empty])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "Nokia6200/(?\'version\'(?\'browserMajorVersion\'\\d*)(?\'browserMinorVersion\'\\.\\d*)\\S*)" +
                    "");
            if ((result == false)) { 
                return false;
            } 
            // Capabilities: set capabilities 
            dictionary["breaksOnInlineElements"] = "false";
            dictionary["canSendMail"] = "true"; 
            dictionary["cookies"] = "true";
            dictionary["ExchangeOmaSupported"] = "true";
            dictionary["isColor"] = "true";
            dictionary["majorVersion"] = regexWorker["${browserMajorVersion}"]; 
            dictionary["maximumRenderedPageSize"] = "10000";
            dictionary["minorVersion"] = regexWorker["${browserMinorVersion}"]; 
            dictionary["mobileDeviceModel"] = "6200"; 
            dictionary["preferredImageMime"] = "image/jpeg";
            dictionary["preferredRenderingMime"] = "application/xhtml+xml"; 
            dictionary["preferredRenderingType"] = "xhtml-basic";
            dictionary["preferredRequestEncoding"] = "iso-8859-1";
            dictionary["preferredResponseEncoding"] = "utf-8";
            dictionary["requiresAbsolutePostbackUrl"] = "false"; 
            dictionary["requiresCommentInStyleElement"] = "false";
            dictionary["requiresHiddenFieldValues"] = "false"; 
            dictionary["requiresOnEnterForwardForCheckboxLists"] = "false"; 
            dictionary["requiresXhtmlCssSuppression"] = "false";
            dictionary["screenBitDepth"] = "24"; 
            dictionary["screenCharactersHeight"] = "6";
            dictionary["screenCharactersWidth"] = "19";
            dictionary["screenPixelsHeight"] = "128";
            dictionary["screenPixelsWidth"] = "128"; 
            dictionary["supportsBodyClassAttribute"] = "true";
            dictionary["supportsBold"] = "true"; 
            dictionary["supportsCss"] = "true"; 
            dictionary["supportsFontSize"] = "true";
            dictionary["supportsNoWrapStyle"] = "true"; 
            dictionary["supportsSelectFollowingTable"] = "true";
            dictionary["supportsStyleElement"] = "true";
            dictionary["supportsTitleElement"] = "true";
            dictionary["supportsUrlAttributeEncoding"] = "true"; 
            dictionary["tables"] = "true";
            dictionary["type"] = "Nokia 6200"; 
            dictionary["version"] = regexWorker["${version}"]; 
            browserCaps.AddBrowser("Nokia6200");
            this.Nokia6200ProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.Nokia6200ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        } 

        protected virtual void Nokia6590ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        } 

        protected virtual void Nokia6590ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        private bool Nokia6590Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue; 
            headerValue = ((string)(browserCaps[string.Empty]));
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "^Nokia6590/(?\'versionString\'(?\'browserMajorVersion\'\\d*)(?\'browserMinorVersion\'\\.\\" +
                    "d*)\\S*) "); 
            if ((result == false)) {
                return false; 
            } 
            // Capabilities: set capabilities
            dictionary["breaksOnInlineElements"] = "false"; 
            dictionary["canSendMail"] = "true";
            dictionary["cookies"] = "true";
            dictionary["ExchangeOmaSupported"] = "true";
            dictionary["majorVersion"] = regexWorker["${browserMajorVersion}"]; 
            dictionary["maximumRenderedPageSize"] = "9800";
            dictionary["minorVersion"] = regexWorker["${browserMinorVersion}"]; 
            dictionary["mobileDeviceModel"] = "6590"; 
            dictionary["preferredImageMime"] = "image/gif";
            dictionary["preferredRenderingMime"] = "application/xhtml+xml"; 
            dictionary["preferredRenderingType"] = "xhtml-mp";
            dictionary["requiresAbsolutePostbackUrl"] = "true";
            dictionary["requiresCommentInStyleElement"] = "false";
            dictionary["requiresHiddenFieldValues"] = "false"; 
            dictionary["requiresHtmlAdaptiveErrorReporting"] = "true";
            dictionary["requiresOnEnterForwardForCheckboxLists"] = "false"; 
            dictionary["requiresXhtmlCssSuppression"] = "false"; 
            dictionary["screenBitDepth"] = "8";
            dictionary["screenCharactersHeight"] = "4"; 
            dictionary["screenCharactersWidth"] = "18";
            dictionary["screenPixelsHeight"] = "72";
            dictionary["screenPixelsWidth"] = "96";
            dictionary["supportsBodyClassAttribute"] = "true"; 
            dictionary["supportsBodyColor"] = "false";
            dictionary["supportsBold"] = "true"; 
            dictionary["supportsFontColor"] = "false"; 
            dictionary["supportsFontSize"] = "true";
            dictionary["supportsItalic"] = "true"; 
            dictionary["supportsSelectFollowingTable"] = "true";
            dictionary["supportsStyleElement"] = "true";
            dictionary["supportsUrlAttributeEncoding"] = "true";
            dictionary["tables"] = "true"; 
            dictionary["type"] = "Nokia 6590";
            dictionary["version"] = regexWorker["${versionString}"]; 
            browserCaps.AddBrowser("Nokia6590"); 
            this.Nokia6590ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Nokia6590ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        }
 
        protected virtual void Nokia6800ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        protected virtual void Nokia6800ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool Nokia6800Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(browserCaps[string.Empty])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "Nokia6800/(?\'version\'(?\'browserMajorVersion\'\\d*)(?\'browserMinorVersion\'\\.\\d*)\\S*)" +
                    "");
            if ((result == false)) { 
                return false;
            } 
            // Capabilities: set capabilities 
            dictionary["canRenderOnEventAndPrevElementsTogether"] = "true";
            dictionary["canRenderPostBackCards"] = "true"; 
            dictionary["hasBackButton"] = "true";
            dictionary["isColor"] = "true";
            dictionary["majorVersion"] = regexWorker["${browserMajorVersion}"];
            dictionary["maximumRenderedPageSize"] = "3500"; 
            dictionary["maximumSoftkeyLabelLength"] = "14";
            dictionary["minorVersion"] = regexWorker["${browserMinorVersion}"]; 
            dictionary["mobileDeviceModel"] = "6800"; 
            dictionary["preferredImageMime"] = "image/gif";
            dictionary["preferredRenderingType"] = "wml12"; 
            dictionary["requiresPhoneNumbersAsPlainText"] = "false";
            dictionary["screenBitDepth"] = "8";
            dictionary["screenCharactersHeight"] = "5";
            dictionary["screenCharactersWidth"] = "15"; 
            dictionary["screenPixelsHeight"] = "128";
            dictionary["screenPixelsWidth"] = "128"; 
            dictionary["supportsEmptyStringInCookieValue"] = "false"; 
            dictionary["supportsRedirectWithCookie"] = "false";
            dictionary["type"] = "Nokia 6800"; 
            dictionary["version"] = regexWorker["${version}"];
            browserCaps.AddBrowser("Nokia6800");
            this.Nokia6800ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Nokia6800ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        } 

        protected virtual void Nokia7650ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        protected virtual void Nokia7650ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool Nokia7650Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(browserCaps[string.Empty]));
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "^Nokia7650/(?\'browserMajorVersion\'\\d*)(?\'browserMinorVersion\'\\.\\d*).*"); 
            if ((result == false)) { 
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["canRenderOnEventAndPrevElementsTogether"] = "true";
            dictionary["canRenderPostBackCards"] = "true";
            dictionary["cookies"] = "true"; 
            dictionary["hasBackButton"] = "true";
            dictionary["isColor"] = "true"; 
            dictionary["majorVersion"] = regexWorker["${browserMajorVersion}"]; 
            dictionary["maximumRenderedPageSize"] = "3500";
            dictionary["maximumSoftkeyLabelLength"] = "18"; 
            dictionary["minorVersion"] = regexWorker["${browserMinorVersion}"];
            dictionary["mobileDeviceModel"] = "7650";
            dictionary["numberOfSoftkeys"] = "3";
            dictionary["preferredImageMime"] = "image/gif"; 
            dictionary["preferredRenderingType"] = "wml12";
            dictionary["requiresPhoneNumbersAsPlainText"] = "false"; 
            dictionary["requiresSpecialViewStateEncoding"] = "true"; 
            dictionary["screenBitDepth"] = "24";
            dictionary["screenCharactersHeight"] = "8"; 
            dictionary["screenCharactersWidth"] = "28";
            dictionary["screenPixelsHeight"] = "208";
            dictionary["screenPixelsWidth"] = "176";
            dictionary["supportsBold"] = "true"; 
            dictionary["supportsFontSize"] = "true";
            dictionary["supportsItalic"] = "true"; 
            dictionary["type"] = "Nokia 7650"; 
            dictionary["version"] = regexWorker["${browserMajorVersion}${browserMinorVersion}"];
            browserCaps.AddBrowser("Nokia7650"); 
            this.Nokia7650ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false;
            this.Nokia7650ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }
 
        protected virtual void NokiamobilebrowserrainbowProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void NokiamobilebrowserrainbowProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        private bool NokiamobilebrowserrainbowProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification: 
            string headerValue;
            headerValue = ((string)(browserCaps[string.Empty])); 
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "^Rainbow/(?\'browserMajorVersion\'\\w*)(?\'browserMinorVersion\'\\.\\w*)"); 
            if ((result == false)) {
                return false; 
            } 
            // Capabilities: set capabilities
            dictionary["browser"] = "Nokia"; 
            dictionary["canInitiateVoiceCall"] = "false";
            dictionary["canSendMail"] = "false";
            dictionary["inputType"] = "virtualKeyboard";
            dictionary["isColor"] = "true"; 
            dictionary["isMobileDevice"] = "true";
            dictionary["javascript"] = "false"; 
            dictionary["majorVersion"] = regexWorker["${browserMajorVersion}"]; 
            dictionary["maximumRenderedPageSize"] = "25000";
            dictionary["minorVersion"] = regexWorker["${browserMinorVersion}"]; 
            dictionary["mobileDeviceManufacturer"] = "Nokia";
            dictionary["mobileDeviceModel"] = regexWorker["Mobile Browser ${browserMajorVersion}${browserMinorVersion}"];
            dictionary["preferredImageMime"] = "image/gif";
            dictionary["preferredRenderingMime"] = "application/vnd.wap.xhtml+xml"; 
            dictionary["preferredRenderingType"] = "xhtml-mp";
            dictionary["requiresAbsolutePostbackUrl"] = "true"; 
            dictionary["requiresHtmlAdaptiveErrorReporting"] = "true"; 
            dictionary["requiresInputTypeAttribute"] = "true";
            dictionary["screenBitDepth"] = "8"; 
            dictionary["screenCharactersHeight"] = "14";
            dictionary["screenCharactersWidth"] = "24";
            dictionary["screenPixelsHeight"] = "255";
            dictionary["screenPixelsWidth"] = "180"; 
            dictionary["supportsAccessKeyAttribute"] = "true";
            dictionary["supportsBodyColor"] = "true"; 
            dictionary["supportsBold"] = "true"; 
            dictionary["supportsCss"] = "true";
            dictionary["supportsDivAlign"] = "true"; 
            dictionary["supportsDivNoWrap"] = "false";
            dictionary["supportsFontColor"] = "true";
            dictionary["supportsFontName"] = "true";
            dictionary["supportsFontSize"] = "true"; 
            dictionary["supportsItalic"] = "true";
            dictionary["supportsQueryStringInFormAction"] = "true"; 
            dictionary["supportsRedirectWithCookie"] = "false"; 
            dictionary["supportsStyleElement"] = "true";
            dictionary["tables"] = "true"; 
            dictionary["type"] = regexWorker["Nokia Mobile Browser ${browserMajorVersion}${browserMinorVersion}"];
            dictionary["version"] = regexWorker["${browserMajorVersion}${browserMinorVersion}"];
            browserCaps.Adapters["System.Web.UI.WebControls.Menu, System.Web, Version=2.0.0.0, Culture=neutral, Pub" +
                "licKeyToken=b03f5f7f11d50a3a"] = "System.Web.UI.WebControls.Adapters.MenuAdapter"; 
            browserCaps.HtmlTextWriter = "System.Web.UI.XhtmlTextWriter";
            browserCaps.AddBrowser("NokiaMobileBrowserRainbow"); 
            this.NokiamobilebrowserrainbowProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.NokiamobilebrowserrainbowProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        }

        protected virtual void Nokiaepoc32wtlProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void Nokiaepoc32wtlProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool Nokiaepoc32wtlProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(browserCaps[string.Empty])); 
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "EPOC32-WTL/(?\'browserMajorVersion\'\\w*)(?\'browserMinorVersion\'\\.\\w*)");
            if ((result == false)) {
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["browser"] = "EPOC"; 
            dictionary["cachesAllResponsesWithExpires"] = "true"; 
            dictionary["canSendMail"] = "false";
            dictionary["hidesRightAlignedMultiselectScrollbars"] = "true"; 
            dictionary["inputType"] = "keyboard";
            dictionary["isColor"] = "true";
            dictionary["isMobileDevice"] = "true";
            dictionary["maximumRenderedPageSize"] = "150000"; 
            dictionary["mobileDeviceManufacturer"] = "Nokia";
            dictionary["mobileDeviceModel"] = "Nokia 9210"; 
            dictionary["preferredImageMime"] = "image/jpeg"; 
            dictionary["rendersBreaksAfterHtmlLists"] = "false";
            dictionary["requiresAttributeColonSubstitution"] = "true"; 
            dictionary["requiresUniqueFilePathSuffix"] = "true";
            dictionary["screenBitDepth"] = "24";
            dictionary["screenCharactersHeight"] = "10";
            dictionary["screenCharactersWidth"] = "54"; 
            dictionary["screenPixelsHeight"] = "170";
            dictionary["screenPixelsWidth"] = "478"; 
            dictionary["supportsBold"] = "true"; 
            dictionary["supportsFontSize"] = "true";
            dictionary["supportsImageSubmit"] = "true"; 
            dictionary["supportsItalic"] = "true";
            dictionary["supportsSelectMultiple"] = "false";
            dictionary["supportsEmptyStringInCookieValue"] = "true";
            dictionary["tables"] = "true"; 
            dictionary["type"] = "Nokia Epoc";
            dictionary["version"] = regexWorker["${browserMajorVersion}${browserMinorVersion}"]; 
            browserCaps.Adapters["System.Web.UI.WebControls.Menu, System.Web, Version=2.0.0.0, Culture=neutral, Pub" + 
                "licKeyToken=b03f5f7f11d50a3a"] = "System.Web.UI.WebControls.Adapters.MenuAdapter";
            browserCaps.HtmlTextWriter = "System.Web.UI.Html32TextWriter"; 
            browserCaps.AddBrowser("NokiaEpoc32wtl");
            this.Nokiaepoc32wtlProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = true;
            // browser, parent=NokiaEpoc32wtl 
            if (this.Nokiaepoc32wtl20Process(headers, browserCaps)) {
            } 
            else { 
                ignoreApplicationBrowsers = false;
            } 
            this.Nokiaepoc32wtlProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        }
 
        protected virtual void Nokiaepoc32wtl20ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        protected virtual void Nokiaepoc32wtl20ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool Nokiaepoc32wtl20Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["version"])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "2\\.0");
            if ((result == false)) {
                return false; 
            }
            // Capabilities: set capabilities 
            dictionary["canRenderEmptySelects"] = "false"; 
            dictionary["canSendMail"] = "true";
            dictionary["hidesRightAlignedMultiselectScrollbars"] = "false"; 
            dictionary["maximumRenderedPageSize"] = "7168";
            dictionary["mobileDeviceManufacturer"] = "Psion";
            dictionary["mobileDeviceModel"] = "Series 7";
            dictionary["rendersBreaksAfterHtmlLists"] = "true"; 
            dictionary["requiresAttributeColonSubstitution"] = "false";
            dictionary["requiresLeadingPageBreak"] = "true"; 
            dictionary["requiresUniqueHtmlCheckboxNames"] = "true"; 
            dictionary["screenCharactersHeight"] = "31";
            dictionary["screenCharactersWidth"] = "69"; 
            dictionary["screenPixelsHeight"] = "72";
            dictionary["screenPixelsWidth"] = "96";
            dictionary["SupportsEmptyStringInCookieValue"] = "true";
            browserCaps.AddBrowser("NokiaEpoc32wtl20"); 
            this.Nokiaepoc32wtl20ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Nokiaepoc32wtl20ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 

        protected virtual void UpProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        protected virtual void UpProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        private bool UpProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification:
            string headerValue;
            headerValue = ((string)(browserCaps[string.Empty])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "(UP\\.Browser)|(UP/)");
            if ((result == false)) { 
                return false;
            }
            headerValue = ((string)(browserCaps[string.Empty]));
            result = regexWorker.ProcessRegex(headerValue, "Go\\.Web"); 
            if ((result == true)) {
                return false; 
            } 
            // Capture: header values
            regexWorker.ProcessRegex(((string)(browserCaps[string.Empty])), @"((?'deviceID'\S*) UP/\S* UP\.Browser/((?'browserMajorVersion'\d*)(?'browserMinorVersion'\.\d*)\S*) UP\.Link/)|((?'deviceID'\S*)/\S* UP(\.Browser)*/((?'browserMajorVersion'\d*)(?'browserMinorVersion'\.\d*)\S*))|(UP\.Browser/((?'browserMajorVersion'\d*)(?'browserMinorVersion'\.\d*)\S*)-(?'deviceID'\S*) UP\.Link/)|((?'deviceID'\S*) UP\.Browser/((?'browserMajorVersion'\d*)(?'browserMinorVersion'\.\d*)\S*) UP\.Link/)|((?'deviceID'\S*)/(?'DeviceVersion'\S*) UP/((?'browserMajorVersion'\d*)(?'browserMinorVersion'\.\d*)\S*))|((?'deviceID'\S*)/(?'DeviceVersion'\S*) UP.Browser/((?'browserMajorVersion'\d*)(?'browserMinorVersion'\.\d*)\S*))|((?'deviceID'\S*) UP.Browser/((?'browserMajorVersion'\d*)(?'browserMinorVersion'\.\d*)\S*))"); 
            // Capabilities: set capabilities
            dictionary["browser"] = "Phone.com";
            dictionary["canInitiateVoiceCall"] = "true";
            dictionary["canSendMail"] = "false"; 
            dictionary["deviceID"] = regexWorker["${deviceID}"];
            dictionary["deviceVersion"] = regexWorker["${deviceVersion}"]; 
            dictionary["inputType"] = "telephoneKeypad"; 
            dictionary["isMobileDevice"] = "true";
            dictionary["majorVersion"] = regexWorker["${browserMajorVersion}"]; 
            dictionary["maximumRenderedPageSize"] = "1492";
            dictionary["minorVersion"] = regexWorker["${browserMinorVersion}"];
            dictionary["numberOfSoftkeys"] = "2";
            dictionary["optimumPageWeight"] = "700"; 
            dictionary["preferredImageMime"] = "image/vnd.wap.wbmp";
            dictionary["preferredRenderingMime"] = "text/vnd.wap.wml"; 
            dictionary["preferredRenderingType"] = "wml11"; 
            dictionary["requiresAdaptiveErrorReporting"] = "true";
            dictionary["rendersBreakBeforeWmlSelectAndInput"] = "true"; 
            dictionary["rendersWmlDoAcceptsInline"] = "false";
            dictionary["rendersWmlSelectsAsMenuCards"] = "true";
            dictionary["requiresFullyQualifiedRedirectUrl"] = "true";
            dictionary["requiresNoescapedPostUrl"] = "true"; 
            dictionary["requiresPostRedirectionHandling"] = "true";
            dictionary["supportsRedirectWithCookie"] = "false"; 
            dictionary["type"] = regexWorker["Phone.com${browserMajorVersion}"]; 
            dictionary["version"] = regexWorker["${browserMajorVersion}${browserMinorVersion}"];
            browserCaps.AddBrowser("Up"); 
            this.UpProcessGateways(headers, browserCaps);
            // gateway, parent=Up
            this.UpdefaultscreencharactersProcess(headers, browserCaps);
            // gateway, parent=Up 
            this.UpdefaultscreenpixelsProcess(headers, browserCaps);
            // gateway, parent=Up 
            this.UpscreendepthProcess(headers, browserCaps); 
            // gateway, parent=Up
            this.UpscreencharsProcess(headers, browserCaps); 
            // gateway, parent=Up
            this.UpscreenpixelsProcess(headers, browserCaps);
            // gateway, parent=Up
            this.UpmsizeProcess(headers, browserCaps); 
            // gateway, parent=Up
            this.IscolorProcess(headers, browserCaps); 
            // gateway, parent=Up 
            this.UpnumsoftkeysProcess(headers, browserCaps);
            // gateway, parent=Up 
            this.UpsoftkeysizeProcess(headers, browserCaps);
            // gateway, parent=Up
            this.UpmaxpduProcess(headers, browserCaps);
            // gateway, parent=Up 
            this.UpversionProcess(headers, browserCaps);
            bool ignoreApplicationBrowsers = true; 
            // browser, parent=Up 
            if (this.AumicProcess(headers, browserCaps)) {
            } 
            else {
                if (this.Alcatelbe4Process(headers, browserCaps)) {
                }
                else { 
                    if (this.Alcatelbe5Process(headers, browserCaps)) {
                    } 
                    else { 
                        if (this.Alcatelbe3Process(headers, browserCaps)) {
                        } 
                        else {
                            if (this.Alcatelbf3Process(headers, browserCaps)) {
                            }
                            else { 
                                if (this.Alcatelbf4Process(headers, browserCaps)) {
                                } 
                                else { 
                                    if (this.MotcbProcess(headers, browserCaps)) {
                                    } 
                                    else {
                                        if (this.Motf5Process(headers, browserCaps)) {
                                        }
                                        else { 
                                            if (this.Motd8Process(headers, browserCaps)) {
                                            } 
                                            else { 
                                                if (this.MotcfProcess(headers, browserCaps)) {
                                                } 
                                                else {
                                                    if (this.Motf6Process(headers, browserCaps)) {
                                                    }
                                                    else { 
                                                        if (this.MotbcProcess(headers, browserCaps)) {
                                                        } 
                                                        else { 
                                                            if (this.MotdcProcess(headers, browserCaps)) {
                                                            } 
                                                            else {
                                                                if (this.MotpancProcess(headers, browserCaps)) {
                                                                }
                                                                else { 
                                                                    if (this.Motc4Process(headers, browserCaps)) {
                                                                    } 
                                                                    else { 
                                                                        if (this.MccaProcess(headers, browserCaps)) {
                                                                        } 
                                                                        else {
                                                                            if (this.Mot2000Process(headers, browserCaps)) {
                                                                            }
                                                                            else { 
                                                                                if (this.Motp2kcProcess(headers, browserCaps)) {
                                                                                } 
                                                                                else { 
                                                                                    if (this.MotafProcess(headers, browserCaps)) {
                                                                                    } 
                                                                                    else {
                                                                                        if (this.Motc2Process(headers, browserCaps)) {
                                                                                        }
                                                                                        else { 
                                                                                            if (this.XeniumProcess(headers, browserCaps)) {
                                                                                            } 
                                                                                            else { 
                                                                                                if (this.Sagem959Process(headers, browserCaps)) {
                                                                                                } 
                                                                                                else {
                                                                                                    if (this.Sgha300Process(headers, browserCaps)) {
                                                                                                    }
                                                                                                    else { 
                                                                                                        if (this.Sghn100Process(headers, browserCaps)) {
                                                                                                        } 
                                                                                                        else { 
                                                                                                            if (this.C304saProcess(headers, browserCaps)) {
                                                                                                            } 
                                                                                                            else {
                                                                                                                if (this.Sy11Process(headers, browserCaps)) {
                                                                                                                }
                                                                                                                else { 
                                                                                                                    if (this.St12Process(headers, browserCaps)) {
                                                                                                                    } 
                                                                                                                    else { 
                                                                                                                        if (this.Sy14Process(headers, browserCaps)) {
                                                                                                                        } 
                                                                                                                        else {
                                                                                                                            if (this.Sies40Process(headers, browserCaps)) {
                                                                                                                            }
                                                                                                                            else { 
                                                                                                                                if (this.Siesl45Process(headers, browserCaps)) {
                                                                                                                                } 
                                                                                                                                else { 
                                                                                                                                    if (this.Sies35Process(headers, browserCaps)) {
                                                                                                                                    } 
                                                                                                                                    else {
                                                                                                                                        if (this.Sieme45Process(headers, browserCaps)) {
                                                                                                                                        }
                                                                                                                                        else { 
                                                                                                                                            if (this.Sies45Process(headers, browserCaps)) {
                                                                                                                                            } 
                                                                                                                                            else { 
                                                                                                                                                if (this.Gm832Process(headers, browserCaps)) {
                                                                                                                                                } 
                                                                                                                                                else {
                                                                                                                                                    if (this.Gm910iProcess(headers, browserCaps)) {
                                                                                                                                                    }
                                                                                                                                                    else { 
                                                                                                                                                        if (this.Mot32Process(headers, browserCaps)) {
                                                                                                                                                        } 
                                                                                                                                                        else { 
                                                                                                                                                            if (this.Mot28Process(headers, browserCaps)) {
                                                                                                                                                            } 
                                                                                                                                                            else {
                                                                                                                                                                if (this.D2Process(headers, browserCaps)) {
                                                                                                                                                                }
                                                                                                                                                                else { 
                                                                                                                                                                    if (this.PpatProcess(headers, browserCaps)) {
                                                                                                                                                                    } 
                                                                                                                                                                    else { 
                                                                                                                                                                        if (this.AlazProcess(headers, browserCaps)) {
                                                                                                                                                                        } 
                                                                                                                                                                        else {
                                                                                                                                                                            if (this.Cdm9100Process(headers, browserCaps)) {
                                                                                                                                                                            }
                                                                                                                                                                            else { 
                                                                                                                                                                                if (this.Cdm135Process(headers, browserCaps)) {
                                                                                                                                                                                } 
                                                                                                                                                                                else { 
                                                                                                                                                                                    if (this.Cdm9000Process(headers, browserCaps)) {
                                                                                                                                                                                    } 
                                                                                                                                                                                    else {
                                                                                                                                                                                        if (this.C303caProcess(headers, browserCaps)) {
                                                                                                                                                                                        }
                                                                                                                                                                                        else { 
                                                                                                                                                                                            if (this.C311caProcess(headers, browserCaps)) {
                                                                                                                                                                                            } 
                                                                                                                                                                                            else { 
                                                                                                                                                                                                if (this.C202deProcess(headers, browserCaps)) {
                                                                                                                                                                                                } 
                                                                                                                                                                                                else {
                                                                                                                                                                                                    if (this.C409caProcess(headers, browserCaps)) {
                                                                                                                                                                                                    }
                                                                                                                                                                                                    else { 
                                                                                                                                                                                                        if (this.C402deProcess(headers, browserCaps)) {
                                                                                                                                                                                                        } 
                                                                                                                                                                                                        else { 
                                                                                                                                                                                                            if (this.Ds15Process(headers, browserCaps)) {
                                                                                                                                                                                                            } 
                                                                                                                                                                                                            else {
                                                                                                                                                                                                                if (this.Tp2200Process(headers, browserCaps)) {
                                                                                                                                                                                                                }
                                                                                                                                                                                                                else { 
                                                                                                                                                                                                                    if (this.Tp120Process(headers, browserCaps)) {
                                                                                                                                                                                                                    } 
                                                                                                                                                                                                                    else { 
                                                                                                                                                                                                                        if (this.Ds10Process(headers, browserCaps)) {
                                                                                                                                                                                                                        } 
                                                                                                                                                                                                                        else {
                                                                                                                                                                                                                            if (this.R280Process(headers, browserCaps)) {
                                                                                                                                                                                                                            }
                                                                                                                                                                                                                            else { 
                                                                                                                                                                                                                                if (this.C201hProcess(headers, browserCaps)) {
                                                                                                                                                                                                                                } 
                                                                                                                                                                                                                                else { 
                                                                                                                                                                                                                                    if (this.S71Process(headers, browserCaps)) {
                                                                                                                                                                                                                                    } 
                                                                                                                                                                                                                                    else {
                                                                                                                                                                                                                                        if (this.C302hProcess(headers, browserCaps)) {
                                                                                                                                                                                                                                        }
                                                                                                                                                                                                                                        else { 
                                                                                                                                                                                                                                            if (this.C309hProcess(headers, browserCaps)) {
                                                                                                                                                                                                                                            } 
                                                                                                                                                                                                                                            else { 
                                                                                                                                                                                                                                                if (this.C407hProcess(headers, browserCaps)) {
                                                                                                                                                                                                                                                } 
                                                                                                                                                                                                                                                else {
                                                                                                                                                                                                                                                    if (this.C451hProcess(headers, browserCaps)) {
                                                                                                                                                                                                                                                    }
                                                                                                                                                                                                                                                    else { 
                                                                                                                                                                                                                                                        if (this.R201Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                        } 
                                                                                                                                                                                                                                                        else { 
                                                                                                                                                                                                                                                            if (this.P21Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                            } 
                                                                                                                                                                                                                                                            else {
                                                                                                                                                                                                                                                                if (this.Kyocera702gProcess(headers, browserCaps)) {
                                                                                                                                                                                                                                                                }
                                                                                                                                                                                                                                                                else { 
                                                                                                                                                                                                                                                                    if (this.Kyocera703gProcess(headers, browserCaps)) {
                                                                                                                                                                                                                                                                    } 
                                                                                                                                                                                                                                                                    else { 
                                                                                                                                                                                                                                                                        if (this.Kyocerac307kProcess(headers, browserCaps)) {
                                                                                                                                                                                                                                                                        } 
                                                                                                                                                                                                                                                                        else {
                                                                                                                                                                                                                                                                            if (this.Tk01Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                            }
                                                                                                                                                                                                                                                                            else { 
                                                                                                                                                                                                                                                                                if (this.Tk02Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                } 
                                                                                                                                                                                                                                                                                else { 
                                                                                                                                                                                                                                                                                    if (this.Tk03Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                    } 
                                                                                                                                                                                                                                                                                    else {
                                                                                                                                                                                                                                                                                        if (this.Tk04Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                        }
                                                                                                                                                                                                                                                                                        else { 
                                                                                                                                                                                                                                                                                            if (this.Tk05Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                            } 
                                                                                                                                                                                                                                                                                            else { 
                                                                                                                                                                                                                                                                                                if (this.D303kProcess(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                } 
                                                                                                                                                                                                                                                                                                else {
                                                                                                                                                                                                                                                                                                    if (this.D304kProcess(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                    }
                                                                                                                                                                                                                                                                                                    else { 
                                                                                                                                                                                                                                                                                                        if (this.Qcp2035Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                        } 
                                                                                                                                                                                                                                                                                                        else { 
                                                                                                                                                                                                                                                                                                            if (this.Qcp3035Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                            } 
                                                                                                                                                                                                                                                                                                            else {
                                                                                                                                                                                                                                                                                                                if (this.D512Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                }
                                                                                                                                                                                                                                                                                                                else { 
                                                                                                                                                                                                                                                                                                                    if (this.Dm110Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                    } 
                                                                                                                                                                                                                                                                                                                    else { 
                                                                                                                                                                                                                                                                                                                        if (this.Tm510Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                        } 
                                                                                                                                                                                                                                                                                                                        else {
                                                                                                                                                                                                                                                                                                                            if (this.Lg13Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                            }
                                                                                                                                                                                                                                                                                                                            else { 
                                                                                                                                                                                                                                                                                                                                if (this.P100Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                } 
                                                                                                                                                                                                                                                                                                                                else { 
                                                                                                                                                                                                                                                                                                                                    if (this.Lgc875fProcess(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                    } 
                                                                                                                                                                                                                                                                                                                                    else {
                                                                                                                                                                                                                                                                                                                                        if (this.Lgp680fProcess(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                        }
                                                                                                                                                                                                                                                                                                                                        else { 
                                                                                                                                                                                                                                                                                                                                            if (this.Lgp7800fProcess(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                            } 
                                                                                                                                                                                                                                                                                                                                            else { 
                                                                                                                                                                                                                                                                                                                                                if (this.Lgc840fProcess(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                } 
                                                                                                                                                                                                                                                                                                                                                else {
                                                                                                                                                                                                                                                                                                                                                    if (this.Lgi2100Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                    }
                                                                                                                                                                                                                                                                                                                                                    else { 
                                                                                                                                                                                                                                                                                                                                                        if (this.Lgp7300fProcess(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                        } 
                                                                                                                                                                                                                                                                                                                                                        else { 
                                                                                                                                                                                                                                                                                                                                                            if (this.Sd500Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                            } 
                                                                                                                                                                                                                                                                                                                                                            else {
                                                                                                                                                                                                                                                                                                                                                                if (this.Tp1100Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                }
                                                                                                                                                                                                                                                                                                                                                                else { 
                                                                                                                                                                                                                                                                                                                                                                    if (this.Tp3000Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                    } 
                                                                                                                                                                                                                                                                                                                                                                    else { 
                                                                                                                                                                                                                                                                                                                                                                        if (this.T250Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                        } 
                                                                                                                                                                                                                                                                                                                                                                        else {
                                                                                                                                                                                                                                                                                                                                                                            if (this.Mo01Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                            }
                                                                                                                                                                                                                                                                                                                                                                            else { 
                                                                                                                                                                                                                                                                                                                                                                                if (this.Mo02Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                } 
                                                                                                                                                                                                                                                                                                                                                                                else { 
                                                                                                                                                                                                                                                                                                                                                                                    if (this.Mc01Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                    } 
                                                                                                                                                                                                                                                                                                                                                                                    else {
                                                                                                                                                                                                                                                                                                                                                                                        if (this.McccProcess(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                        }
                                                                                                                                                                                                                                                                                                                                                                                        else { 
                                                                                                                                                                                                                                                                                                                                                                                            if (this.Mcc9Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                            } 
                                                                                                                                                                                                                                                                                                                                                                                            else { 
                                                                                                                                                                                                                                                                                                                                                                                                if (this.Nk00Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                } 
                                                                                                                                                                                                                                                                                                                                                                                                else {
                                                                                                                                                                                                                                                                                                                                                                                                    if (this.Mai12Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                    }
                                                                                                                                                                                                                                                                                                                                                                                                    else { 
                                                                                                                                                                                                                                                                                                                                                                                                        if (this.Ma112Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                        } 
                                                                                                                                                                                                                                                                                                                                                                                                        else { 
                                                                                                                                                                                                                                                                                                                                                                                                            if (this.Ma13Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                            } 
                                                                                                                                                                                                                                                                                                                                                                                                            else {
                                                                                                                                                                                                                                                                                                                                                                                                                if (this.Mac1Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                }
                                                                                                                                                                                                                                                                                                                                                                                                                else { 
                                                                                                                                                                                                                                                                                                                                                                                                                    if (this.Mat1Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                    } 
                                                                                                                                                                                                                                                                                                                                                                                                                    else { 
                                                                                                                                                                                                                                                                                                                                                                                                                        if (this.Sc01Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                        } 
                                                                                                                                                                                                                                                                                                                                                                                                                        else {
                                                                                                                                                                                                                                                                                                                                                                                                                            if (this.Sc03Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                            }
                                                                                                                                                                                                                                                                                                                                                                                                                            else { 
                                                                                                                                                                                                                                                                                                                                                                                                                                if (this.Sc02Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                } 
                                                                                                                                                                                                                                                                                                                                                                                                                                else { 
                                                                                                                                                                                                                                                                                                                                                                                                                                    if (this.Sc04Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                    } 
                                                                                                                                                                                                                                                                                                                                                                                                                                    else {
                                                                                                                                                                                                                                                                                                                                                                                                                                        if (this.Sg08Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                        }
                                                                                                                                                                                                                                                                                                                                                                                                                                        else { 
                                                                                                                                                                                                                                                                                                                                                                                                                                            if (this.Sc13Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                            } 
                                                                                                                                                                                                                                                                                                                                                                                                                                            else { 
                                                                                                                                                                                                                                                                                                                                                                                                                                                if (this.Sc11Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                else {
                                                                                                                                                                                                                                                                                                                                                                                                                                                    if (this.Sec01Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                    }
                                                                                                                                                                                                                                                                                                                                                                                                                                                    else { 
                                                                                                                                                                                                                                                                                                                                                                                                                                                        if (this.Sc10Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                        } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                        else { 
                                                                                                                                                                                                                                                                                                                                                                                                                                                            if (this.Sy12Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                            } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                            else {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                if (this.St11Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                else { 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                    if (this.Sy13Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                    } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else { 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        if (this.Syc1Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            if (this.Sy01Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else { 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                if (this.Syt1Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else { 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    if (this.Sty2Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        if (this.Sy02Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else { 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            if (this.Sy03Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else { 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                if (this.Si01Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    if (this.Sni1Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else { 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        if (this.Sn11Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else { 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            if (this.Sn12Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                if (this.Sn134Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else { 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    if (this.Sn156Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else { 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        if (this.Snc1Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            if (this.Tsc1Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else { 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                if (this.Tsi1Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else { 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    if (this.Ts11Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        if (this.Ts12Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else { 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            if (this.Ts13Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else { 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                if (this.Tst1Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    if (this.Tst2Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else { 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        if (this.Tst3Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else { 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            if (this.Ig01Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                if (this.Ig02Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else { 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    if (this.Ig03Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else { 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        if (this.Qc31Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            if (this.Qc12Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else { 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                if (this.Qc32Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else { 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    if (this.Sp01Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        if (this.ShProcess(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else { 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            if (this.Upg1Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else { 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                if (this.Opwv1Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    if (this.AlavProcess(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else { 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        if (this.Im1kProcess(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else { 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            if (this.Nt95Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                if (this.Mot2001Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else { 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    if (this.Motv200Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else { 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        if (this.Mot72Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            if (this.Mot76Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else { 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                if (this.Scp6000Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else { 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    if (this.Motd5Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        if (this.Motf0Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else { 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            if (this.Sgha400Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else { 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                if (this.Sec03Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    if (this.Siec3iProcess(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else { 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        if (this.Sn17Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else { 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            if (this.Scp4700Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                if (this.Sec02Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else { 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    if (this.Sy15Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else { 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        if (this.Db520Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            if (this.L430v03j02Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else { 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                if (this.OpwvsdkProcess(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else { 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    if (this.Kddica21Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        if (this.Kddits21Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else { 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            if (this.Kddisa21Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else { 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                if (this.Km100Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    if (this.Lgelx5350Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else { 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        if (this.Hitachip300Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else { 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            if (this.Sies46Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                if (this.Motorolav60gProcess(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else { 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    if (this.Motorolav708Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else { 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        if (this.Motorolav708aProcess(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            if (this.Motorolae360Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else { 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                if (this.Sonyericssona1101sProcess(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else { 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    if (this.Philipsfisio820Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        if (this.Casioa5302Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else { 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            if (this.Tcll668Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else { 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                if (this.Kddits24Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    if (this.Sies55Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else { 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        if (this.Sharpgx10Process(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else { 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            if (this.BenqathenaProcess(headers, browserCaps)) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ignoreApplicationBrowsers = false;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                    }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                }
                                                                                                                                                                                                                                                                                                                                                                                                                                                            }
                                                                                                                                                                                                                                                                                                                                                                                                                                                        } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                    }
                                                                                                                                                                                                                                                                                                                                                                                                                                                } 
                                                                                                                                                                                                                                                                                                                                                                                                                                            } 
                                                                                                                                                                                                                                                                                                                                                                                                                                        }
                                                                                                                                                                                                                                                                                                                                                                                                                                    } 
                                                                                                                                                                                                                                                                                                                                                                                                                                }
                                                                                                                                                                                                                                                                                                                                                                                                                            }
                                                                                                                                                                                                                                                                                                                                                                                                                        }
                                                                                                                                                                                                                                                                                                                                                                                                                    } 
                                                                                                                                                                                                                                                                                                                                                                                                                }
                                                                                                                                                                                                                                                                                                                                                                                                            } 
                                                                                                                                                                                                                                                                                                                                                                                                        } 
                                                                                                                                                                                                                                                                                                                                                                                                    }
                                                                                                                                                                                                                                                                                                                                                                                                } 
                                                                                                                                                                                                                                                                                                                                                                                            }
                                                                                                                                                                                                                                                                                                                                                                                        }
                                                                                                                                                                                                                                                                                                                                                                                    }
                                                                                                                                                                                                                                                                                                                                                                                } 
                                                                                                                                                                                                                                                                                                                                                                            }
                                                                                                                                                                                                                                                                                                                                                                        } 
                                                                                                                                                                                                                                                                                                                                                                    } 
                                                                                                                                                                                                                                                                                                                                                                }
                                                                                                                                                                                                                                                                                                                                                            } 
                                                                                                                                                                                                                                                                                                                                                        }
                                                                                                                                                                                                                                                                                                                                                    }
                                                                                                                                                                                                                                                                                                                                                }
                                                                                                                                                                                                                                                                                                                                            } 
                                                                                                                                                                                                                                                                                                                                        }
                                                                                                                                                                                                                                                                                                                                    } 
                                                                                                                                                                                                                                                                                                                                } 
                                                                                                                                                                                                                                                                                                                            }
                                                                                                                                                                                                                                                                                                                        } 
                                                                                                                                                                                                                                                                                                                    }
                                                                                                                                                                                                                                                                                                                }
                                                                                                                                                                                                                                                                                                            }
                                                                                                                                                                                                                                                                                                        } 
                                                                                                                                                                                                                                                                                                    }
                                                                                                                                                                                                                                                                                                } 
                                                                                                                                                                                                                                                                                            } 
                                                                                                                                                                                                                                                                                        }
                                                                                                                                                                                                                                                                                    } 
                                                                                                                                                                                                                                                                                }
                                                                                                                                                                                                                                                                            }
                                                                                                                                                                                                                                                                        }
                                                                                                                                                                                                                                                                    } 
                                                                                                                                                                                                                                                                }
                                                                                                                                                                                                                                                            } 
                                                                                                                                                                                                                                                        } 
                                                                                                                                                                                                                                                    }
                                                                                                                                                                                                                                                } 
                                                                                                                                                                                                                                            }
                                                                                                                                                                                                                                        }
                                                                                                                                                                                                                                    }
                                                                                                                                                                                                                                } 
                                                                                                                                                                                                                            }
                                                                                                                                                                                                                        } 
                                                                                                                                                                                                                    } 
                                                                                                                                                                                                                }
                                                                                                                                                                                                            } 
                                                                                                                                                                                                        }
                                                                                                                                                                                                    }
                                                                                                                                                                                                }
                                                                                                                                                                                            } 
                                                                                                                                                                                        }
                                                                                                                                                                                    } 
                                                                                                                                                                                } 
                                                                                                                                                                            }
                                                                                                                                                                        } 
                                                                                                                                                                    }
                                                                                                                                                                }
                                                                                                                                                            }
                                                                                                                                                        } 
                                                                                                                                                    }
                                                                                                                                                } 
                                                                                                                                            } 
                                                                                                                                        }
                                                                                                                                    } 
                                                                                                                                }
                                                                                                                            }
                                                                                                                        }
                                                                                                                    } 
                                                                                                                }
                                                                                                            } 
                                                                                                        } 
                                                                                                    }
                                                                                                } 
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                } 
                                                                            }
                                                                        } 
                                                                    } 
                                                                }
                                                            } 
                                                        }
                                                    }
                                                }
                                            } 
                                        }
                                    } 
                                } 
                            }
                        } 
                    }
                }
            }
            this.UpProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 
 
        protected virtual void UpdefaultscreencharactersProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void UpdefaultscreencharactersProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        private bool UpdefaultscreencharactersProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(headers["X-UP-DEVCAP-SCREENCHARS"]));
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "^$");
            if ((result == false)) { 
                return false; 
            }
            browserCaps.DisableOptimizedCacheKey(); 
            // Capabilities: set capabilities
            dictionary["defaultScreenCharactersWidth"] = "15";
            dictionary["defaultScreenCharactersHeight"] = "4";
            this.UpdefaultscreencharactersProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.UpdefaultscreencharactersProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true; 
        }
 
        protected virtual void UpdefaultscreenpixelsProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        protected virtual void UpdefaultscreenpixelsProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool UpdefaultscreenpixelsProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue;
            headerValue = ((string)(headers["X-UP-DEVCAP-SCREENPIXELS"]));
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "^$"); 
            if ((result == false)) {
                return false; 
            }
            browserCaps.DisableOptimizedCacheKey();
            // Capabilities: set capabilities
            dictionary["defaultScreenPixelsWidth"] = "120"; 
            dictionary["defaultScreenPixelsHeight"] = "40";
            this.UpdefaultscreenpixelsProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false; 
            this.UpdefaultscreenpixelsProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }

        protected virtual void UpscreendepthProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void UpscreendepthProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        } 

        private bool UpscreendepthProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification:
            string headerValue; 
            headerValue = ((string)(headers["X-UP-DEVCAP-SCREENDEPTH"]));
            bool result; 
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "(?\'screenDepth\'\\d+)"); 
            if ((result == false)) {
                return false;
            }
            browserCaps.DisableOptimizedCacheKey(); 
            // Capabilities: set capabilities
            dictionary["screenBitDepth"] = regexWorker["${screenDepth}"]; 
            this.UpscreendepthProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.UpscreendepthProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        }

        protected virtual void UpscreencharsProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void UpscreencharsProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool UpscreencharsProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(headers["X-UP-DEVCAP-SCREENCHARS"])); 
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "(?\'screenCharsWidth\'[1-9]\\d*),(?\'screenCharsHeight\'[1-9]\\d*)");
            if ((result == false)) {
                return false;
            } 
            browserCaps.DisableOptimizedCacheKey();
            // Capabilities: set capabilities 
            dictionary["screenCharactersHeight"] = regexWorker["${screenCharsHeight}"]; 
            dictionary["screenCharactersWidth"] = regexWorker["${screenCharsWidth}"];
            this.UpscreencharsProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.UpscreencharsProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        } 

        protected virtual void UpscreenpixelsProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        } 

        protected virtual void UpscreenpixelsProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        private bool UpscreenpixelsProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue; 
            headerValue = ((string)(headers["X-UP-DEVCAP-SCREENPIXELS"]));
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "(?\'screenPixWidth\'[1-9]\\d*),(?\'screenPixHeight\'[1-9]\\d*)");
            if ((result == false)) { 
                return false;
            } 
            browserCaps.DisableOptimizedCacheKey(); 
            // Capabilities: set capabilities
            dictionary["screenPixelsHeight"] = regexWorker["${screenPixHeight}"]; 
            dictionary["screenPixelsWidth"] = regexWorker["${screenPixWidth}"];
            this.UpscreenpixelsProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false;
            this.UpscreenpixelsProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 
 
        protected virtual void UpmsizeProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void UpmsizeProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        private bool UpmsizeProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(headers["X-UP-DEVCAP-MSIZE"]));
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "(?\'width\'\\d+),(?\'height\'\\d+)");
            if ((result == false)) { 
                return false; 
            }
            browserCaps.DisableOptimizedCacheKey(); 
            // Capabilities: set capabilities
            dictionary["characterHeight"] = regexWorker["${height}"];
            dictionary["characterWidth"] = regexWorker["${width}"];
            this.UpmsizeProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.UpmsizeProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true; 
        }
 
        protected virtual void IscolorProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        protected virtual void IscolorProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool IscolorProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue;
            headerValue = ((string)(headers["X-UP-DEVCAP-ISCOLOR"]));
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, ".+"); 
            if ((result == false)) {
                return false; 
            }
            browserCaps.DisableOptimizedCacheKey();
            // Capabilities: set capabilities
            this.IscolorProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = true;
            // browser, parent=IsColor 
            if (this.IscolortrueProcess(headers, browserCaps)) { 
            }
            else { 
                if (this.IscolorfalseProcess(headers, browserCaps)) {
                }
                else {
                    ignoreApplicationBrowsers = false; 
                }
            } 
            this.IscolorProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 

        protected virtual void IscolortrueProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        protected virtual void IscolortrueProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        private bool IscolortrueProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification:
            string headerValue;
            headerValue = ((string)(headers["X-UP-DEVCAP-ISCOLOR"])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "1");
            if ((result == false)) { 
                return false;
            }
            browserCaps.DisableOptimizedCacheKey();
            // Capabilities: set capabilities 
            dictionary["isColor"] = "true";
            this.IscolortrueProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false; 
            this.IscolortrueProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }

        protected virtual void IscolorfalseProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void IscolorfalseProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        } 

        private bool IscolorfalseProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification:
            string headerValue; 
            headerValue = ((string)(headers["X-UP-DEVCAP-ISCOLOR"]));
            bool result; 
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "0"); 
            if ((result == false)) {
                return false;
            }
            browserCaps.DisableOptimizedCacheKey(); 
            // Capabilities: set capabilities
            dictionary["isColor"] = "false"; 
            this.IscolorfalseProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.IscolorfalseProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        }

        protected virtual void UpnumsoftkeysProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void UpnumsoftkeysProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool UpnumsoftkeysProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(headers["X-UP-DEVCAP-NUMSOFTKEYS"])); 
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "(?\'softkeys\'\\d+)");
            if ((result == false)) {
                return false;
            } 
            browserCaps.DisableOptimizedCacheKey();
            // Capabilities: set capabilities 
            dictionary["numberOfSoftkeys"] = regexWorker["${softkeys}"]; 
            this.UpnumsoftkeysProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.UpnumsoftkeysProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        }
 
        protected virtual void UpsoftkeysizeProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        protected virtual void UpsoftkeysizeProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool UpsoftkeysizeProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(headers["X-UP-DEVCAP-SOFTKEYSIZE"])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "(?\'softkeySize\'\\d+)");
            if ((result == false)) {
                return false; 
            }
            browserCaps.DisableOptimizedCacheKey(); 
            // Capabilities: set capabilities 
            dictionary["maximumSoftkeyLabelLength"] = regexWorker["${softkeySize}"];
            this.UpsoftkeysizeProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.UpsoftkeysizeProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        } 

        protected virtual void UpmaxpduProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        } 

        protected virtual void UpmaxpduProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        private bool UpmaxpduProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue; 
            headerValue = ((string)(headers["X-UP-DEVCAP-MAX-PDU"]));
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "(?\'maxDeckSize\'\\d+)");
            if ((result == false)) { 
                return false;
            } 
            browserCaps.DisableOptimizedCacheKey(); 
            // Capabilities: set capabilities
            dictionary["maximumRenderedPageSize"] = regexWorker["${maxDeckSize}"]; 
            this.UpmaxpduProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false;
            this.UpmaxpduProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }
 
        protected virtual void UpversionProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void UpversionProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        private bool UpversionProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification: 

            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            dictionary["type"] = regexWorker["Phone.com ${majorVersion}.x Browser"];
            this.UpversionProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = true; 
            // browser, parent=UpVersion
            if (this.BlazerProcess(headers, browserCaps)) { 
            } 
            else {
                if (this.Up4Process(headers, browserCaps)) { 
                }
                else {
                    if (this.Up5Process(headers, browserCaps)) {
                    } 
                    else {
                        if (this.Up6Process(headers, browserCaps)) { 
                        } 
                        else {
                            if (this.Up3Process(headers, browserCaps)) { 
                            }
                            else {
                                ignoreApplicationBrowsers = false;
                            } 
                        }
                    } 
                } 
            }
            this.UpversionProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        }

        protected virtual void AumicProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void AumicProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool AumicProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(browserCaps[string.Empty])); 
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "AU-MIC/(?\'browserMajorVersion\'\\d*)(?\'browserMinorVersion\'\\.\\d*).*");
            if ((result == false)) {
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["breaksOnInlineElements"] = "false"; 
            dictionary["browser"] = "AU MIC"; 
            dictionary["canInitiateVoiceCall"] = "true";
            dictionary["canSendMail"] = "false"; 
            dictionary["cookies"] = "true";
            dictionary["isColor"] = "true";
            dictionary["isMobileDevice"] = "true";
            dictionary["majorVersion"] = regexWorker["${browserMajorVersion}"]; 
            dictionary["minorVersion"] = regexWorker["${browserMinorVersion}"];
            dictionary["maximumRenderedPageSize"] = "10000"; 
            dictionary["preferredImageMime"] = "image/jpeg"; 
            dictionary["preferredRenderingMime"] = "application/xhtml+xml";
            dictionary["preferredRenderingType"] = "xhtml-mp"; 
            dictionary["requiresAbsolutePostbackUrl"] = "false";
            dictionary["requiresCommentInStyleElement"] = "false";
            dictionary["requiresHiddenFieldValues"] = "true";
            dictionary["requiresHtmlAdaptiveErrorReporting"] = "true"; 
            dictionary["requiresOnEnterForwardForCheckboxLists"] = "false";
            dictionary["requiresXhtmlCssSuppression"] = "false"; 
            dictionary["screenCharactersHeight"] = "8"; 
            dictionary["screenCharactersWidth"] = "17";
            dictionary["supportsAccessKeyAttribute"] = "true"; 
            dictionary["supportsBodyClassAttribute"] = "true";
            dictionary["supportsBold"] = "true";
            dictionary["supportsCss"] = "true";
            dictionary["supportsFontSize"] = "true"; 
            dictionary["supportsItalic"] = "true";
            dictionary["supportsSelectFollowingTable"] = "false"; 
            dictionary["supportsStyleElement"] = "true"; 
            dictionary["supportsUrlAttributeEncoding"] = "true";
            dictionary["tables"] = "true"; 
            dictionary["type"] = regexWorker["AU MIC ${browserMajorVersion}"];
            dictionary["version"] = regexWorker["${browserMajorVersion}${browserMinorVersion}"];
            browserCaps.AddBrowser("AuMic");
            this.AumicProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = true;
            // browser, parent=AuMic 
            if (this.Aumicv2Process(headers, browserCaps)) { 
            }
            else { 
                if (this.A500Process(headers, browserCaps)) {
                }
                else {
                    if (this.N400Process(headers, browserCaps)) { 
                    }
                    else { 
                        ignoreApplicationBrowsers = false; 
                    }
                } 
            }
            this.AumicProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        } 

        protected virtual void Aumicv2ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        } 

        protected virtual void Aumicv2ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        private bool Aumicv2Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue; 
            headerValue = ((string)(dictionary["majorVersion"]));
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "2");
            if ((result == false)) { 
                return false;
            } 
            // Capabilities: set capabilities 
            dictionary["maximumRenderedPageSize"] = "8600";
            dictionary["screenCharactersHeight"] = "9"; 
            dictionary["supportsBold"] = "false";
            browserCaps.AddBrowser("AuMicV2");
            this.Aumicv2ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Aumicv2ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        } 

        protected virtual void A500ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        protected virtual void A500ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool A500Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(headers["HTTP_X_WAP_PROFILE"]));
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "\\/SPH-A500\\/"); 
            if ((result == false)) { 
                return false;
            } 
            browserCaps.DisableOptimizedCacheKey();
            // Capabilities: set capabilities
            dictionary["mobileDeviceManufacturer"] = "Samsung";
            dictionary["mobileDeviceModel"] = "SPH-A500"; 
            dictionary["maximumRenderedPageSize"] = "8850";
            dictionary["preferredREnderingType"] = "xhtml-basic"; 
            dictionary["supportsNoWrapStyle"] = "false"; 
            dictionary["supportsTitleElement"] = "true";
            browserCaps.AddBrowser("a500"); 
            this.A500ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false;
            this.A500ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }
 
        protected virtual void N400ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void N400ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        private bool N400Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification: 
            string headerValue;
            headerValue = ((string)(headers["HTTP_X_WAP_PROFILE"])); 
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "\\/SPH-N400\\/"); 
            if ((result == false)) {
                return false; 
            } 
            browserCaps.DisableOptimizedCacheKey();
            // Capabilities: set capabilities 
            dictionary["mobileDeviceManufacturer"] = "Samsung";
            dictionary["mobileDeviceModel"] = "N400";
            dictionary["maximumRenderedPageSize"] = "46750";
            dictionary["preferredREnderingType"] = "xhtml-basic"; 
            dictionary["screenBitDepth"] = "24";
            dictionary["supportsNoWrapStyle"] = "false"; 
            dictionary["supportsTitleElement"] = "false"; 
            browserCaps.AddBrowser("n400");
            this.N400ProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.N400ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        } 

        protected virtual void BlazerProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        } 

        protected virtual void BlazerProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        private bool BlazerProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue; 
            headerValue = ((string)(browserCaps[string.Empty]));
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "Blazer");
            if ((result == false)) { 
                return false;
            } 
            // Capabilities: set capabilities 
            dictionary["browser"] = "Handspring Blazer";
            dictionary["canInitiateVoiceCall"] = "false"; 
            dictionary["canSendMail"] = "true";
            dictionary["cookies"] = "true";
            dictionary["defaultScreenCharactersHeight"] = "6";
            dictionary["defaultScreenCharactersWidth"] = "12"; 
            dictionary["defaultScreenPixelsHeight"] = "72";
            dictionary["defaultScreenPixelsWidth"] = "96"; 
            dictionary["ExchangeOmaSupported"] = "true"; 
            dictionary["inputType"] = "virtualKeyboard";
            dictionary["isColor"] = "false"; 
            dictionary["isMobileDevice"] = "true";
            dictionary["maximumRenderedPageSize"] = "7000";
            dictionary["mobileDeviceManufacturer"] = "PalmOS-licensee";
            dictionary["numberOfSoftkeys"] = "0"; 
            dictionary["preferredImageMime"] = "image/gif";
            dictionary["preferredRenderingMime"] = "text/html"; 
            dictionary["preferredRenderingType"] = "html32"; 
            dictionary["rendersBreakBeforeWmlSelectAndInput"] = "false";
            dictionary["rendersWmlDoAcceptsInline"] = "true"; 
            dictionary["rendersWmlSelectsAsMenuCards"] = "false";
            dictionary["screenBitDepth"] = "24";
            dictionary["screenCharactersHeight"] = "12";
            dictionary["screenCharactersWidth"] = "36"; 
            dictionary["screenPixelsHeight"] = "160";
            dictionary["screenPixelsWidth"] = "160"; 
            dictionary["supportsBold"] = "true"; 
            dictionary["supportsImageSubmit"] = "true";
            dictionary["supportsItalic"] = "true"; 
            dictionary["supportsRedirectWithCookie"] = "true";
            dictionary["type"] = "Handspring Blazer";
            browserCaps.HtmlTextWriter = "System.Web.UI.Html32TextWriter";
            this.BlazerProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = true;
            // browser, parent=Blazer 
            if (this.Blazerupg1Process(headers, browserCaps)) { 
            }
            else { 
                ignoreApplicationBrowsers = false;
            }
            this.BlazerProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }
 
        protected virtual void Blazerupg1ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void Blazerupg1ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        private bool Blazerupg1Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification: 
            string headerValue;
            headerValue = ((string)(browserCaps[string.Empty])); 
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "UPG1 UP/\\S* \\(compatible; Blazer (?\'browserMajorVersion\'\\d+)(?\'browserMinorVersio" + 
                    "n\'\\.\\d+)");
            if ((result == false)) { 
                return false; 
            }
            // Capabilities: set capabilities 
            dictionary["majorVersion"] = regexWorker["${browserMajorVersion}"];
            dictionary["minorVersion"] = regexWorker["${browserMinorVersion}"];
            dictionary["version"] = regexWorker["${browserMajorVersion}${browserMinorVersion}"];
            this.Blazerupg1ProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.Blazerupg1ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true; 
        }
 
        protected virtual void Up4ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        protected virtual void Up4ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool Up4Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue;
            headerValue = ((string)(dictionary["majorVersion"]));
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "4"); 
            if ((result == false)) {
                return false; 
            }
            // Capabilities: set capabilities
            dictionary["requiresAbsolutePostbackUrl"] = "true";
            dictionary["requiresUniqueFilePathSuffix"] = "true"; 
            this.Up4ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Up4ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 

        protected virtual void Up5ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        protected virtual void Up5ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        private bool Up5Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification:
            string headerValue;
            headerValue = ((string)(dictionary["majorVersion"])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "5");
            if ((result == false)) { 
                return false;
            }
            // Capabilities: set capabilities
            dictionary["requiresUniqueFilePathSuffix"] = "true"; 
            this.Up5ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Up5ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 

        protected virtual void Up6ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        protected virtual void Up6ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        private bool Up6Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification:
            string headerValue;
            headerValue = ((string)(dictionary["majorVersion"])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "6");
            if ((result == false)) { 
                return false;
            }
            // Capabilities: set capabilities
            dictionary["cookies"] = "true"; 
            dictionary["preferredRenderingMime"] = "text/html";
            dictionary["preferredRenderingType"] = "xhtml-mp"; 
            dictionary["supportsStyleElement"] = "true"; 
            dictionary["type"] = regexWorker["Openwave ${majorVersion}.x Browser"];
            browserCaps.HtmlTextWriter = "System.Web.UI.XhtmlTextWriter"; 
            this.Up6ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = true;
            // browser, parent=Up6
            if (this.Up61plusProcess(headers, browserCaps)) { 
            }
            else { 
                ignoreApplicationBrowsers = false; 
            }
            this.Up6ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        }

        protected virtual void Up61plusProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void Up61plusProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool Up61plusProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["minorVersion"])); 
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "^\\.[^0]");
            if ((result == false)) {
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["preferredRenderingMime"] = "application/xhtml+xml"; 
            this.Up61plusProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.Up61plusProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        }

        protected virtual void Up3ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void Up3ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool Up3Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["majorVersion"])); 
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "3");
            if ((result == false)) {
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["canRenderInputAndSelectElementsTogether"] = "false"; 
            dictionary["preferredImageMime"] = "image/bmp"; 
            dictionary["requiresAbsolutePostbackUrl"] = "true";
            dictionary["requiresUniqueFilePathSuffix"] = "true"; 
            dictionary["requiresUrlEncodedPostfieldValues"] = "true";
            dictionary["type"] = "Phone.com 3.x Browser";
            this.Up3ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Up3ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        } 

        protected virtual void Alcatelbe4ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        protected virtual void Alcatelbe4ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool Alcatelbe4Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"]));
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "Alcatel-BE4"); 
            if ((result == false)) { 
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["mobileDeviceManufacturer"] = "Alcatel";
            dictionary["mobileDeviceModel"] = "301";
            browserCaps.AddBrowser("AlcatelBe4"); 
            this.Alcatelbe4ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Alcatelbe4ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 

        protected virtual void Alcatelbe5ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        protected virtual void Alcatelbe5ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        private bool Alcatelbe5Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification:
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "Alcatel-BE5");
            if ((result == false)) { 
                return false;
            }
            // Capabilities: set capabilities
            dictionary["mobileDeviceManufacturer"] = "Alcatel"; 
            dictionary["mobileDeviceModel"] = "501, 701";
            browserCaps.AddBrowser("AlcatelBe5"); 
            this.Alcatelbe5ProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = true;
            // browser, parent=AlcatelBe5 
            if (this.Alcatelbe5v2Process(headers, browserCaps)) {
            }
            else {
                ignoreApplicationBrowsers = false; 
            }
            this.Alcatelbe5ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true; 
        }
 
        protected virtual void Alcatelbe5v2ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        protected virtual void Alcatelbe5v2ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool Alcatelbe5v2Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue;
            headerValue = ((string)(browserCaps[string.Empty]));
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "2\\.0"); 
            if ((result == false)) {
                return false; 
            }
            // Capabilities: set capabilities
            dictionary["maximumRenderedPageSize"] = "1900";
            dictionary["maximumSoftkeyLabelLength"] = "0"; 
            dictionary["mobileDeviceModel"] = "Alcatel One Touch 501";
            dictionary["numberOfSoftkeys"] = "10"; 
            dictionary["rendersWmlDoAcceptsInline"] = "true"; 
            dictionary["requiresNoSoftkeyLabels"] = "true";
            dictionary["screenBitDepth"] = "0"; 
            dictionary["screenCharactersHeight"] = "6";
            dictionary["screenCharactersWidth"] = "14";
            dictionary["screenPixelsHeight"] = "60";
            dictionary["screenPixelsWidth"] = "91"; 
            dictionary["supportsBold"] = "true";
            dictionary["tables"] = "true"; 
            browserCaps.AddBrowser("AlcatelBe5v2"); 
            this.Alcatelbe5v2ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Alcatelbe5v2ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        }
 
        protected virtual void Alcatelbe3ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        protected virtual void Alcatelbe3ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool Alcatelbe3Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["deviceID"])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "Alcatel-BE3");
            if ((result == false)) {
                return false; 
            }
            // Capabilities: set capabilities 
            dictionary["mobileDeviceManufacturer"] = "Alcatel"; 
            dictionary["mobileDeviceModel"] = "OneTouchDB";
            browserCaps.AddBrowser("AlcatelBe3"); 
            this.Alcatelbe3ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false;
            this.Alcatelbe3ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }
 
        protected virtual void Alcatelbf3ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void Alcatelbf3ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        private bool Alcatelbf3Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"])); 
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "Alcatel-BF3"); 
            if ((result == false)) {
                return false; 
            } 
            // Capabilities: set capabilities
            dictionary["maximumRenderedPageSize"] = "1900"; 
            dictionary["maximumSoftkeyLabelLength"] = "13";
            dictionary["mobileDeviceManufacturer"] = "Alcatel";
            dictionary["mobileDeviceModel"] = "Alcatel One Touch 311";
            dictionary["numberOfSoftkeys"] = "10"; 
            dictionary["rendersWmlDoAcceptsInline"] = "true";
            dictionary["screenCharactersHeight"] = "5"; 
            dictionary["screenCharactersWidth"] = "11"; 
            dictionary["screenPixelsHeight"] = "65";
            dictionary["screenPixelsWidth"] = "96"; 
            browserCaps.AddBrowser("AlcatelBf3");
            this.Alcatelbf3ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false;
            this.Alcatelbf3ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 
 
        protected virtual void Alcatelbf4ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void Alcatelbf4ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        private bool Alcatelbf4Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["deviceID"]));
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "Alcatel-BF4");
            if ((result == false)) { 
                return false; 
            }
            // Capabilities: set capabilities 
            dictionary["maximumRenderedPageSize"] = "1900";
            dictionary["maximumSoftkeyLabelLength"] = "13";
            dictionary["mobileDeviceManufacturer"] = "Alcatel";
            dictionary["mobileDeviceModel"] = "Alcatel One Touch 511"; 
            dictionary["numberOfSoftkeys"] = "10";
            dictionary["rendersWmlDoAcceptsInline"] = "true"; 
            dictionary["screenCharactersHeight"] = "5"; 
            dictionary["screenCharactersWidth"] = "11";
            dictionary["screenPixelsHeight"] = "60"; 
            dictionary["screenPixelsWidth"] = "89";
            browserCaps.AddBrowser("AlcatelBf4");
            this.Alcatelbf4ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Alcatelbf4ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        } 

        protected virtual void MotcbProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        protected virtual void MotcbProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool MotcbProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"]));
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "MOT-CB"); 
            if ((result == false)) { 
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["mobileDeviceManufacturer"] = "Motorola";
            dictionary["mobileDeviceModel"] = "Timeport P7389";
            dictionary["numberOfSoftkeys"] = "1"; 
            browserCaps.AddBrowser("MotCb");
            this.MotcbProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false; 
            this.MotcbProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }

        protected virtual void Motf5ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void Motf5ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        } 

        private bool Motf5Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["deviceID"]));
            bool result; 
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "MOT-F5"); 
            if ((result == false)) {
                return false;
            }
            // Capabilities: set capabilities 
            dictionary["cookies"] = "false";
            dictionary["maximumRenderedPageSize"] = "1900"; 
            dictionary["mobileDeviceManufacturer"] = "Motorola"; 
            dictionary["mobileDeviceModel"] = "Talkabout 192";
            dictionary["numberOfSoftkeys"] = "3"; 
            dictionary["rendersBreaksAfterWmlInput"] = "true";
            dictionary["screenCharactersHeight"] = "4";
            dictionary["screenCharactersWidth"] = "16";
            dictionary["screenPixelsHeight"] = "40"; 
            dictionary["screenPixelsWidth"] = "96";
            browserCaps.AddBrowser("MotF5"); 
            this.Motf5ProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.Motf5ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        }

        protected virtual void Motd8ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void Motd8ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool Motd8Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"])); 
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "MOT-D8");
            if ((result == false)) {
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["mobileDeviceManufacturer"] = "Motorola"; 
            dictionary["mobileDeviceModel"] = "Timeport 250/P7689"; 
            browserCaps.AddBrowser("MotD8");
            this.Motd8ProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.Motd8ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        } 

        protected virtual void MotcfProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        } 

        protected virtual void MotcfProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        private bool MotcfProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue; 
            headerValue = ((string)(dictionary["deviceID"]));
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "MOT-CF");
            if ((result == false)) { 
                return false;
            } 
            // Capabilities: set capabilities 
            dictionary["mobileDeviceManufacturer"] = "Motorola";
            dictionary["mobileDeviceModel"] = "Accompli 6188"; 
            browserCaps.AddBrowser("MotCf");
            this.MotcfProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false;
            this.MotcfProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 
 
        protected virtual void Motf6ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void Motf6ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        private bool Motf6Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["deviceID"]));
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "MOT-F6");
            if ((result == false)) { 
                return false; 
            }
            // Capabilities: set capabilities 
            dictionary["cookies"] = "false";
            dictionary["inputType"] = "virtualKeyboard";
            dictionary["maximumRenderedPageSize"] = "5000";
            dictionary["maximumSoftkeyLabelLength"] = "6"; 
            dictionary["mobileDeviceManufacturer"] = "Motorola";
            dictionary["mobileDeviceModel"] = "Accompli 008/6288"; 
            dictionary["rendersBreaksAfterWmlInput"] = "true"; 
            dictionary["rendersWmlSelectsAsMenuCards"] = "false";
            dictionary["screenBitDepth"] = "4"; 
            dictionary["screenCharactersHeight"] = "8";
            dictionary["screenCharactersWidth"] = "18";
            dictionary["screenPixelsHeight"] = "320";
            dictionary["screenPixelsWidth"] = "240"; 
            browserCaps.AddBrowser("MotF6");
            this.Motf6ProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false; 
            this.Motf6ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }

        protected virtual void MotbcProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void MotbcProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        } 

        private bool MotbcProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["deviceID"]));
            bool result; 
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "MOT-BC"); 
            if ((result == false)) {
                return false;
            }
            // Capabilities: set capabilities 
            dictionary["inputType"] = "keyboard";
            dictionary["mobileDeviceManufacturer"] = "Motorola"; 
            dictionary["mobileDeviceModel"] = "Accompli 009"; 
            browserCaps.AddBrowser("MotBc");
            this.MotbcProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.MotbcProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        } 

        protected virtual void MotdcProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        } 

        protected virtual void MotdcProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        private bool MotdcProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue; 
            headerValue = ((string)(dictionary["deviceID"]));
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "MOT-DC");
            if ((result == false)) { 
                return false;
            } 
            // Capabilities: set capabilities 
            dictionary["mobileDeviceManufacturer"] = "Motorola";
            dictionary["mobileDeviceModel"] = "V3682, V50"; 
            browserCaps.AddBrowser("MotDc");
            this.MotdcProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false;
            this.MotdcProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 
 
        protected virtual void MotpancProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void MotpancProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        private bool MotpancProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["deviceID"]));
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "MOT-PAN-C");
            if ((result == false)) { 
                return false; 
            }
            // Capabilities: set capabilities 
            dictionary["mobileDeviceManufacturer"] = "Motorola";
            dictionary["mobileDeviceModel"] = "Timeport 270c";
            browserCaps.AddBrowser("MotPanC");
            this.MotpancProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.MotpancProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true; 
        }
 
        protected virtual void Motc4ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        protected virtual void Motc4ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool Motc4Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"]));
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "MOT-C4"); 
            if ((result == false)) {
                return false; 
            }
            // Capabilities: set capabilities
            dictionary["canRenderMixedSelects"] = "false";
            dictionary["mobileDeviceManufacturer"] = "Motorola"; 
            dictionary["mobileDeviceModel"] = "V2288, V2282";
            dictionary["supportsCacheControlMetaTag"] = "false"; 
            browserCaps.AddBrowser("MotC4"); 
            this.Motc4ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Motc4ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        }
 
        protected virtual void MccaProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        protected virtual void MccaProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool MccaProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["deviceID"])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "MCCA");
            if ((result == false)) {
                return false; 
            }
            // Capabilities: set capabilities 
            dictionary["mobileDeviceManufacturer"] = "Motorola"; 
            dictionary["mobileDeviceModel"] = "Timeport 8767/ST7868";
            browserCaps.AddBrowser("Mcca"); 
            this.MccaProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false;
            this.MccaProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }
 
        protected virtual void Mot2000ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void Mot2000ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        private bool Mot2000Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"])); 
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "MOT-2000"); 
            if ((result == false)) {
                return false; 
            } 
            // Capabilities: set capabilities
            dictionary["mobileDeviceManufacturer"] = "Motorola"; 
            dictionary["mobileDeviceModel"] = "V60c";
            browserCaps.AddBrowser("Mot2000");
            this.Mot2000ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Mot2000ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        } 

        protected virtual void Motp2kcProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        protected virtual void Motp2kcProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool Motp2kcProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"]));
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "MOT-P2K-C"); 
            if ((result == false)) { 
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["mobileDeviceManufacturer"] = "Motorola";
            dictionary["mobileDeviceModel"] = "V120c";
            browserCaps.AddBrowser("MotP2kC"); 
            this.Motp2kcProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Motp2kcProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 

        protected virtual void MotafProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        protected virtual void MotafProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        private bool MotafProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification:
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "MOT-AF");
            if ((result == false)) { 
                return false;
            }
            // Capabilities: set capabilities
            dictionary["mobileDeviceManufacturer"] = "Motorola"; 
            dictionary["mobileDeviceModel"] = "Timeport 260/P7382i/P7389i";
            dictionary["screenCharactersHeight"] = "4"; 
            browserCaps.AddBrowser("MotAf"); 
            this.MotafProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = true; 
            // browser, parent=MotAf
            if (this.Motaf418Process(headers, browserCaps)) {
            }
            else { 
                ignoreApplicationBrowsers = false;
            } 
            this.MotafProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 

        protected virtual void Motaf418ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        protected virtual void Motaf418ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        private bool Motaf418Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification:
            string headerValue;
            headerValue = ((string)(dictionary["DeviceVersion"])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "4\\.1\\.8");
            if ((result == false)) { 
                return false;
            }
            // Capabilities: set capabilities
            dictionary["cachesAllResponsesWithExpires"] = "true"; 
            dictionary["maximumRenderedPageSize"] = "1900";
            dictionary["maximumSoftkeyLabelLength"] = "5"; 
            dictionary["mobileDeviceModel"] = "Timeport 260"; 
            dictionary["screenBitDepth"] = "24";
            dictionary["screenCharactersWidth"] = "16"; 
            dictionary["screenPixelsHeight"] = "64";
            dictionary["screenPixelsWidth"] = "96";
            dictionary["supportsCacheControlMetaTag"] = "false";
            dictionary["tables"] = "true"; 
            browserCaps.AddBrowser("MotAf418");
            this.Motaf418ProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false; 
            this.Motaf418ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }

        protected virtual void Motc2ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void Motc2ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        } 

        private bool Motc2Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["deviceID"]));
            bool result; 
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "MOT-C2"); 
            if ((result == false)) {
                return false;
            }
            // Capabilities: set capabilities 
            dictionary["inputType"] = "keyboard";
            dictionary["mobileDeviceManufacturer"] = "Motorola"; 
            dictionary["mobileDeviceModel"] = "V100, V.Box"; 
            browserCaps.AddBrowser("MotC2");
            this.Motc2ProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.Motc2ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        } 

        protected virtual void XeniumProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        } 

        protected virtual void XeniumProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        private bool XeniumProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue; 
            headerValue = ((string)(dictionary["deviceID"]));
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "Philips-Xenium9@9");
            if ((result == false)) { 
                return false;
            } 
            // Capabilities: set capabilities 
            dictionary["mobileDeviceManufacturer"] = "Philips";
            dictionary["mobileDeviceModel"] = "Xenium 9"; 
            browserCaps.AddBrowser("Xenium");
            this.XeniumProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false;
            this.XeniumProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 
 
        protected virtual void Sagem959ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void Sagem959ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        private bool Sagem959Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["deviceID"]));
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "Sagem-959");
            if ((result == false)) { 
                return false; 
            }
            // Capabilities: set capabilities 
            dictionary["mobileDeviceManufacturer"] = "Sagem";
            dictionary["mobileDeviceModel"] = "MW-959";
            browserCaps.AddBrowser("Sagem959");
            this.Sagem959ProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.Sagem959ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true; 
        }
 
        protected virtual void Sgha300ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        protected virtual void Sgha300ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool Sgha300Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"]));
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "SAMSUNG-SGH-A300"); 
            if ((result == false)) {
                return false; 
            }
            // Capabilities: set capabilities
            dictionary["maximumRenderedPageSize"] = "2000";
            dictionary["maximumSoftkeyLabelLength"] = "19"; 
            dictionary["mobileDeviceManufacturer"] = "Samsung";
            dictionary["mobileDeviceModel"] = "SGH-A300"; 
            dictionary["screenCharactersHeight"] = "5"; 
            dictionary["screenCharactersWidth"] = "13";
            dictionary["screenPixelsHeight"] = "128"; 
            dictionary["screenPixelsWidth"] = "128";
            browserCaps.AddBrowser("SghA300");
            this.Sgha300ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Sgha300ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        } 

        protected virtual void Sghn100ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        protected virtual void Sghn100ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool Sghn100Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"]));
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "Samsung-SGH-N100/"); 
            if ((result == false)) { 
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["mobileDeviceManufacturer"] = "Samsung";
            dictionary["mobileDeviceModel"] = "SGH-N100";
            browserCaps.AddBrowser("SghN100"); 
            this.Sghn100ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Sghn100ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 

        protected virtual void C304saProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        protected virtual void C304saProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        private bool C304saProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification:
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "Sanyo-C304SA/");
            if ((result == false)) { 
                return false;
            }
            // Capabilities: set capabilities
            dictionary["mobileDeviceManufacturer"] = "Sanyo"; 
            dictionary["mobileDeviceModel"] = "C304SA";
            browserCaps.AddBrowser("C304sa"); 
            this.C304saProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.C304saProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        }

        protected virtual void Sy11ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void Sy11ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool Sy11Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"])); 
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "SY11");
            if ((result == false)) {
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["mobileDeviceManufacturer"] = "Sanyo"; 
            dictionary["mobileDeviceModel"] = "C304SA"; 
            browserCaps.AddBrowser("Sy11");
            this.Sy11ProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.Sy11ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        } 

        protected virtual void St12ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        } 

        protected virtual void St12ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        private bool St12Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue; 
            headerValue = ((string)(dictionary["deviceID"]));
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "ST12");
            if ((result == false)) { 
                return false;
            } 
            // Capabilities: set capabilities 
            dictionary["mobileDeviceManufacturer"] = "Sanyo";
            dictionary["mobileDeviceModel"] = "C411ST"; 
            browserCaps.AddBrowser("St12");
            this.St12ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false;
            this.St12ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 
 
        protected virtual void Sy14ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void Sy14ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        private bool Sy14Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["deviceID"]));
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "SY14");
            if ((result == false)) { 
                return false; 
            }
            // Capabilities: set capabilities 
            dictionary["mobileDeviceManufacturer"] = "Sanyo";
            dictionary["mobileDeviceModel"] = "C412SA";
            browserCaps.AddBrowser("Sy14");
            this.Sy14ProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.Sy14ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true; 
        }
 
        protected virtual void Sies40ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        protected virtual void Sies40ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool Sies40Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"]));
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "SIE-S40"); 
            if ((result == false)) {
                return false; 
            }
            // Capabilities: set capabilities
            dictionary["cachesAllResponsesWithExpires"] = "true";
            dictionary["maximumRenderedPageSize"] = "2048"; 
            dictionary["mobileDeviceManufacturer"] = "Siemens";
            dictionary["mobileDeviceModel"] = "S40, S42"; 
            browserCaps.AddBrowser("SieS40"); 
            this.Sies40ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Sies40ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        }
 
        protected virtual void Siesl45ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        protected virtual void Siesl45ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool Siesl45Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["deviceID"])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "SIE-SL45");
            if ((result == false)) {
                return false; 
            }
            // Capabilities: set capabilities 
            dictionary["mobileDeviceManufacturer"] = "Siemens"; 
            dictionary["mobileDeviceModel"] = "SL-45";
            browserCaps.AddBrowser("SieSl45"); 
            this.Siesl45ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false;
            this.Siesl45ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }
 
        protected virtual void Sies35ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void Sies35ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        private bool Sies35Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"])); 
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "SIE-S35"); 
            if ((result == false)) {
                return false; 
            } 
            // Capabilities: set capabilities
            dictionary["canRenderMixedSelects"] = "false"; 
            dictionary["mobileDeviceManufacturer"] = "Siemens";
            dictionary["mobileDeviceModel"] = "S35";
            browserCaps.AddBrowser("SieS35");
            this.Sies35ProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.Sies35ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true; 
        }
 
        protected virtual void Sieme45ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        protected virtual void Sieme45ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool Sieme45Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"]));
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "SIE-ME45"); 
            if ((result == false)) {
                return false; 
            }
            // Capabilities: set capabilities
            dictionary["maximumRenderedPageSize"] = "2800";
            dictionary["maximumSoftkeyLabelLength"] = "7"; 
            dictionary["mobileDeviceManufacturer"] = "Siemens";
            dictionary["mobileDeviceModel"] = "ME45"; 
            dictionary["preferredImageMime"] = "image/vnd.wap.wbmp"; 
            dictionary["preferredRenderingType"] = "wml12";
            dictionary["rendersBreakBeforeWmlSelectAndInput"] = "false"; 
            dictionary["requiresUniqueFilePathSuffix"] = "true";
            dictionary["screenCharactersHeight"] = "5";
            dictionary["screenCharactersWidth"] = "16";
            dictionary["screenPixelsHeight"] = "65"; 
            dictionary["screenPixelsWidth"] = "101";
            dictionary["supportsBold"] = "true"; 
            dictionary["supportsFontSize"] = "true"; 
            browserCaps.AddBrowser("SieMe45");
            this.Sieme45ProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.Sieme45ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        } 

        protected virtual void Sies45ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        } 

        protected virtual void Sies45ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        private bool Sies45Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue; 
            headerValue = ((string)(dictionary["deviceID"]));
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "SIE-S45");
            if ((result == false)) { 
                return false;
            } 
            // Capabilities: set capabilities 
            dictionary["maximumRenderedPageSize"] = "2765";
            dictionary["maximumSoftkeyLabelLength"] = "7"; 
            dictionary["mobileDeviceManufacturer"] = "Siemens";
            dictionary["mobileDeviceModel"] = "S45";
            dictionary["preferredImageMime"] = "image/bmp";
            dictionary["rendersBreakBeforeWmlSelectAndInput"] = "false"; 
            dictionary["rendersBreaksAfterWmlInput"] = "true";
            dictionary["rendersWmlDoAcceptsInline"] = "true"; 
            dictionary["screenCharactersHeight"] = "5"; 
            dictionary["screenCharactersWidth"] = "16";
            dictionary["screenPixelsHeight"] = "64"; 
            dictionary["screenPixelsWidth"] = "101";
            dictionary["supportsBold"] = "true";
            dictionary["supportsFontSize"] = "true";
            browserCaps.AddBrowser("SieS45"); 
            this.Sies45ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Sies45ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 

        protected virtual void Gm832ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        protected virtual void Gm832ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        private bool Gm832Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification:
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "GM832");
            if ((result == false)) { 
                return false;
            }
            // Capabilities: set capabilities
            dictionary["mobileDeviceManufacturer"] = "Telit"; 
            dictionary["mobileDeviceModel"] = "GM832";
            browserCaps.AddBrowser("Gm832"); 
            this.Gm832ProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.Gm832ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        }

        protected virtual void Gm910iProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void Gm910iProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool Gm910iProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"])); 
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "Telit-GM910i");
            if ((result == false)) {
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["mobileDeviceManufacturer"] = "Telit"; 
            dictionary["mobileDeviceModel"] = "GM910i"; 
            browserCaps.AddBrowser("Gm910i");
            this.Gm910iProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.Gm910iProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        } 

        protected virtual void Mot32ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        } 

        protected virtual void Mot32ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        private bool Mot32Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue; 
            headerValue = ((string)(dictionary["deviceID"]));
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "MOT-32");
            if ((result == false)) { 
                return false;
            } 
            // Capabilities: set capabilities 
            dictionary["mobileDeviceManufacturer"] = "Motorola";
            dictionary["mobileDeviceModel"] = "i85s, i50sx"; 
            browserCaps.AddBrowser("Mot32");
            this.Mot32ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false;
            this.Mot32ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 
 
        protected virtual void Mot28ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void Mot28ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        private bool Mot28Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["deviceID"]));
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "MOT-28");
            if ((result == false)) { 
                return false; 
            }
            // Capabilities: set capabilities 
            dictionary["mobileDeviceManufacturer"] = "Motorola";
            dictionary["mobileDeviceModel"] = "i700+, i1000+";
            browserCaps.AddBrowser("Mot28");
            this.Mot28ProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.Mot28ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true; 
        }
 
        protected virtual void D2ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        protected virtual void D2ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool D2Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"]));
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "D2"); 
            if ((result == false)) {
                return false; 
            }
            // Capabilities: set capabilities
            dictionary["mobileDeviceManufacturer"] = "Panasonic";
            dictionary["mobileDeviceModel"] = "D2"; 
            browserCaps.AddBrowser("D2");
            this.D2ProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false; 
            this.D2ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }

        protected virtual void PpatProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void PpatProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        } 

        private bool PpatProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["deviceID"]));
            bool result; 
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "P-PAT"); 
            if ((result == false)) {
                return false;
            }
            // Capabilities: set capabilities 
            dictionary["mobileDeviceManufacturer"] = "Panasonic";
            dictionary["mobileDeviceModel"] = "P-PAT"; 
            browserCaps.AddBrowser("PPat"); 
            this.PpatProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.PpatProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        }
 
        protected virtual void AlazProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        protected virtual void AlazProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool AlazProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["deviceID"])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "ALAZ");
            if ((result == false)) {
                return false; 
            }
            // Capabilities: set capabilities 
            dictionary["mobileDeviceManufacturer"] = "Alcatel"; 
            dictionary["mobileDeviceModel"] = "OneTouch";
            browserCaps.AddBrowser("Alaz"); 
            this.AlazProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false;
            this.AlazProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }
 
        protected virtual void Cdm9100ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void Cdm9100ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        private bool Cdm9100Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"])); 
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "AUDIOVOX-CDM9100"); 
            if ((result == false)) {
                return false; 
            } 
            // Capabilities: set capabilities
            dictionary["mobileDeviceManufacturer"] = "Audiovox"; 
            dictionary["mobileDeviceModel"] = "CDM-9100";
            browserCaps.AddBrowser("Cdm9100");
            this.Cdm9100ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Cdm9100ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        } 

        protected virtual void Cdm135ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        protected virtual void Cdm135ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool Cdm135Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"]));
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "HD-MMD1010"); 
            if ((result == false)) { 
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["mobileDeviceManufacturer"] = "Audiovox";
            dictionary["mobileDeviceModel"] = "CDM-135";
            browserCaps.AddBrowser("Cdm135"); 
            this.Cdm135ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Cdm135ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 

        protected virtual void Cdm9000ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        protected virtual void Cdm9000ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        private bool Cdm9000Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification:
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "TSCA");
            if ((result == false)) { 
                return false;
            }
            // Capabilities: set capabilities
            dictionary["mobileDeviceManufacturer"] = "Audiovox"; 
            dictionary["mobileDeviceModel"] = "CDM-9000";
            browserCaps.AddBrowser("Cdm9000"); 
            this.Cdm9000ProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.Cdm9000ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        }

        protected virtual void C303caProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void C303caProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool C303caProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"])); 
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "CA11");
            if ((result == false)) {
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["mobileDeviceManufacturer"] = "Casio"; 
            dictionary["mobileDeviceModel"] = "C303CA"; 
            browserCaps.AddBrowser("C303ca");
            this.C303caProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.C303caProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        } 

        protected virtual void C311caProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        } 

        protected virtual void C311caProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        private bool C311caProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue; 
            headerValue = ((string)(dictionary["deviceID"]));
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "CA12");
            if ((result == false)) { 
                return false;
            } 
            // Capabilities: set capabilities 
            dictionary["mobileDeviceManufacturer"] = "Casio";
            dictionary["mobileDeviceModel"] = "C311CA"; 
            browserCaps.AddBrowser("C311ca");
            this.C311caProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false;
            this.C311caProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 
 
        protected virtual void C202deProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void C202deProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        private bool C202deProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["deviceID"]));
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "DN01");
            if ((result == false)) { 
                return false; 
            }
            // Capabilities: set capabilities 
            dictionary["mobileDeviceManufacturer"] = "Casio";
            dictionary["mobileDeviceModel"] = "C202DE";
            browserCaps.AddBrowser("C202de");
            this.C202deProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.C202deProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true; 
        }
 
        protected virtual void C409caProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        protected virtual void C409caProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool C409caProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"]));
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "CA13"); 
            if ((result == false)) {
                return false; 
            }
            // Capabilities: set capabilities
            dictionary["mobileDeviceManufacturer"] = "Casio";
            dictionary["mobileDeviceModel"] = "C409CA"; 
            browserCaps.AddBrowser("C409ca");
            this.C409caProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false; 
            this.C409caProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }

        protected virtual void C402deProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void C402deProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        } 

        private bool C402deProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["deviceID"]));
            bool result; 
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "DN11"); 
            if ((result == false)) {
                return false;
            }
            // Capabilities: set capabilities 
            dictionary["mobileDeviceManufacturer"] = "Denso";
            dictionary["mobileDeviceModel"] = "C402DE"; 
            browserCaps.AddBrowser("C402de"); 
            this.C402deProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.C402deProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        }
 
        protected virtual void Ds15ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        protected virtual void Ds15ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool Ds15Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["deviceID"])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "DS15");
            if ((result == false)) {
                return false; 
            }
            // Capabilities: set capabilities 
            dictionary["mobileDeviceManufacturer"] = "Denso"; 
            dictionary["mobileDeviceModel"] = "Touchpoint DS15";
            browserCaps.AddBrowser("Ds15"); 
            this.Ds15ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false;
            this.Ds15ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }
 
        protected virtual void Tp2200ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void Tp2200ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        private bool Tp2200Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"])); 
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "DS1[34]"); 
            if ((result == false)) {
                return false; 
            } 
            // Capabilities: set capabilities
            dictionary["mobileDeviceManufacturer"] = "Denso"; 
            dictionary["mobileDeviceModel"] = "TouchPoint TP2200";
            dictionary["screenCharactersHeight"] = "5";
            dictionary["screenCharactersWidth"] = "15";
            browserCaps.AddBrowser("Tp2200"); 
            this.Tp2200ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Tp2200ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 

        protected virtual void Tp120ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        protected virtual void Tp120ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        private bool Tp120Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification:
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "DS12");
            if ((result == false)) { 
                return false;
            }
            // Capabilities: set capabilities
            dictionary["mobileDeviceManufacturer"] = "Denso"; 
            dictionary["mobileDeviceModel"] = "TouchPoint TP120";
            browserCaps.AddBrowser("Tp120"); 
            this.Tp120ProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.Tp120ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        }

        protected virtual void Ds10ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void Ds10ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool Ds10Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"])); 
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "DS10");
            if ((result == false)) {
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["mobileDeviceManufacturer"] = "Denso"; 
            dictionary["mobileDeviceModel"] = "Eagle 10"; 
            browserCaps.AddBrowser("Ds10");
            this.Ds10ProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.Ds10ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        } 

        protected virtual void R280ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        } 

        protected virtual void R280ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        private bool R280Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue; 
            headerValue = ((string)(dictionary["deviceID"]));
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "ERK0");
            if ((result == false)) { 
                return false;
            } 
            // Capabilities: set capabilities 
            dictionary["mobileDeviceManufacturer"] = "Ericsson";
            dictionary["mobileDeviceModel"] = "R280"; 
            browserCaps.AddBrowser("R280");
            this.R280ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false;
            this.R280ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 
 
        protected virtual void C201hProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void C201hProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        private bool C201hProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["deviceID"]));
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "HI01");
            if ((result == false)) { 
                return false; 
            }
            // Capabilities: set capabilities 
            dictionary["mobileDeviceManufacturer"] = "Hitachi";
            dictionary["mobileDeviceModel"] = "C201H";
            browserCaps.AddBrowser("C201h");
            this.C201hProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.C201hProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true; 
        }
 
        protected virtual void S71ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        protected virtual void S71ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool S71Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"]));
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "HW01"); 
            if ((result == false)) {
                return false; 
            }
            // Capabilities: set capabilities
            dictionary["mobileDeviceManufacturer"] = "Hanwha";
            dictionary["mobileDeviceModel"] = "S71"; 
            browserCaps.AddBrowser("S71");
            this.S71ProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false; 
            this.S71ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }

        protected virtual void C302hProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void C302hProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        } 

        private bool C302hProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["deviceID"]));
            bool result; 
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "HI11"); 
            if ((result == false)) {
                return false;
            }
            // Capabilities: set capabilities 
            dictionary["mobileDeviceManufacturer"] = "Hitachi";
            dictionary["mobileDeviceModel"] = "C302H"; 
            browserCaps.AddBrowser("C302h"); 
            this.C302hProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.C302hProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        }
 
        protected virtual void C309hProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        protected virtual void C309hProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool C309hProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["deviceID"])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "HI12");
            if ((result == false)) {
                return false; 
            }
            // Capabilities: set capabilities 
            dictionary["mobileDeviceManufacturer"] = "Hitachi"; 
            dictionary["mobileDeviceModel"] = "C309H";
            browserCaps.AddBrowser("C309h"); 
            this.C309hProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false;
            this.C309hProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }
 
        protected virtual void C407hProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void C407hProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        private bool C407hProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"])); 
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "HI13"); 
            if ((result == false)) {
                return false; 
            } 
            // Capabilities: set capabilities
            dictionary["canSendMail"] = "true"; 
            dictionary["mobileDeviceManufacturer"] = "Hitachi";
            dictionary["mobileDeviceModel"] = "C407H";
            browserCaps.AddBrowser("C407h");
            this.C407hProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.C407hProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true; 
        }
 
        protected virtual void C451hProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        protected virtual void C451hProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool C451hProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"]));
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "HI14"); 
            if ((result == false)) {
                return false; 
            }
            // Capabilities: set capabilities
            dictionary["mobileDeviceManufacturer"] = "Hitachi";
            dictionary["mobileDeviceModel"] = "C451H"; 
            browserCaps.AddBrowser("C451h");
            this.C451hProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false; 
            this.C451hProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }

        protected virtual void R201ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void R201ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        } 

        private bool R201Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["deviceID"]));
            bool result; 
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "HD03"); 
            if ((result == false)) {
                return false;
            }
            // Capabilities: set capabilities 
            dictionary["mobileDeviceManufacturer"] = "Hyundai";
            dictionary["mobileDeviceModel"] = "HGC-R201"; 
            browserCaps.AddBrowser("R201"); 
            this.R201ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.R201ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        }
 
        protected virtual void P21ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        protected virtual void P21ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool P21Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["deviceID"])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "HD02");
            if ((result == false)) {
                return false; 
            }
            // Capabilities: set capabilities 
            dictionary["mobileDeviceManufacturer"] = "Hyundai"; 
            dictionary["mobileDeviceModel"] = "P-21";
            browserCaps.AddBrowser("P21"); 
            this.P21ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false;
            this.P21ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }
 
        protected virtual void Kyocera702gProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void Kyocera702gProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        private bool Kyocera702gProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"])); 
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "KCI1"); 
            if ((result == false)) {
                return false; 
            } 
            // Capabilities: set capabilities
            dictionary["mobileDeviceManufacturer"] = "Kyocera"; 
            dictionary["mobileDeviceModel"] = "702G";
            browserCaps.AddBrowser("Kyocera702g");
            this.Kyocera702gProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Kyocera702gProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        } 

        protected virtual void Kyocera703gProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        protected virtual void Kyocera703gProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool Kyocera703gProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"]));
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "KCI2"); 
            if ((result == false)) { 
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["mobileDeviceManufacturer"] = "Kyocera";
            dictionary["mobileDeviceModel"] = "703G";
            browserCaps.AddBrowser("Kyocera703g"); 
            this.Kyocera703gProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Kyocera703gProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 

        protected virtual void Kyocerac307kProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        protected virtual void Kyocerac307kProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        private bool Kyocerac307kProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification:
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "KC11");
            if ((result == false)) { 
                return false;
            }
            // Capabilities: set capabilities
            dictionary["mobileDeviceManufacturer"] = "Kyocera"; 
            dictionary["mobileDeviceModel"] = "C307K";
            browserCaps.AddBrowser("KyoceraC307k"); 
            this.Kyocerac307kProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.Kyocerac307kProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        }

        protected virtual void Tk01ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void Tk01ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool Tk01Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"])); 
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "KCT1");
            if ((result == false)) {
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["mobileDeviceManufacturer"] = "Kyocera"; 
            dictionary["mobileDeviceModel"] = "TK01"; 
            browserCaps.AddBrowser("Tk01");
            this.Tk01ProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.Tk01ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        } 

        protected virtual void Tk02ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        } 

        protected virtual void Tk02ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        private bool Tk02Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue; 
            headerValue = ((string)(dictionary["deviceID"]));
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "KCT2");
            if ((result == false)) { 
                return false;
            } 
            // Capabilities: set capabilities 
            dictionary["mobileDeviceManufacturer"] = "Kyocera";
            dictionary["mobileDeviceModel"] = "TK02"; 
            browserCaps.AddBrowser("Tk02");
            this.Tk02ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false;
            this.Tk02ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 
 
        protected virtual void Tk03ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void Tk03ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        private bool Tk03Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["deviceID"]));
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "KCT4");
            if ((result == false)) { 
                return false; 
            }
            // Capabilities: set capabilities 
            dictionary["mobileDeviceManufacturer"] = "Kyocera";
            dictionary["mobileDeviceModel"] = "TK03";
            browserCaps.AddBrowser("Tk03");
            this.Tk03ProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.Tk03ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true; 
        }
 
        protected virtual void Tk04ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        protected virtual void Tk04ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool Tk04Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"]));
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "KCT5"); 
            if ((result == false)) {
                return false; 
            }
            // Capabilities: set capabilities
            dictionary["mobileDeviceManufacturer"] = "Kyocera";
            dictionary["mobileDeviceModel"] = "TK04"; 
            browserCaps.AddBrowser("Tk04");
            this.Tk04ProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false; 
            this.Tk04ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }

        protected virtual void Tk05ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void Tk05ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        } 

        private bool Tk05Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["deviceID"]));
            bool result; 
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "KCT6"); 
            if ((result == false)) {
                return false;
            }
            // Capabilities: set capabilities 
            dictionary["mobileDeviceManufacturer"] = "Kyocera";
            dictionary["mobileDeviceModel"] = "TK05"; 
            browserCaps.AddBrowser("Tk05"); 
            this.Tk05ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Tk05ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        }
 
        protected virtual void D303kProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        protected virtual void D303kProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool D303kProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["deviceID"])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "KCC1");
            if ((result == false)) {
                return false; 
            }
            // Capabilities: set capabilities 
            dictionary["mobileDeviceManufacturer"] = "Kyocera"; 
            dictionary["mobileDeviceModel"] = "D303K";
            browserCaps.AddBrowser("D303k"); 
            this.D303kProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false;
            this.D303kProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        }
 
        protected virtual void D304kProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void D304kProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }

        private bool D304kProcess(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities; 
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"])); 
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "KCC2"); 
            if ((result == false)) {
                return false; 
            } 
            // Capabilities: set capabilities
            dictionary["mobileDeviceManufacturer"] = "Kyocera"; 
            dictionary["mobileDeviceModel"] = "D304K";
            browserCaps.AddBrowser("D304k");
            this.D304kProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.D304kProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true; 
        } 

        protected virtual void Qcp2035ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        protected virtual void Qcp2035ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        private bool Qcp2035Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"]));
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "QC06"); 
            if ((result == false)) { 
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["mobileDeviceManufacturer"] = "Kyocera";
            dictionary["mobileDeviceModel"] = "QCP2035/2037";
            browserCaps.AddBrowser("Qcp2035"); 
            this.Qcp2035ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false; 
            this.Qcp2035ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 

        protected virtual void Qcp3035ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        protected virtual void Qcp3035ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 
 
        private bool Qcp3035Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification:
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"])); 
            bool result;
            RegexWorker regexWorker; 
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "QC07");
            if ((result == false)) { 
                return false;
            }
            // Capabilities: set capabilities
            dictionary["mobileDeviceManufacturer"] = "Kyocera"; 
            dictionary["mobileDeviceModel"] = "QCP3035";
            browserCaps.AddBrowser("Qcp3035"); 
            this.Qcp3035ProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.Qcp3035ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        }

        protected virtual void D512ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        protected virtual void D512ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }
 
        private bool D512Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary;
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue;
            headerValue = ((string)(dictionary["deviceID"])); 
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "LG22");
            if ((result == false)) {
                return false;
            } 
            // Capabilities: set capabilities
            dictionary["mobileDeviceManufacturer"] = "LG"; 
            dictionary["mobileDeviceModel"] = "D-512"; 
            browserCaps.AddBrowser("D512");
            this.D512ProcessGateways(headers, browserCaps); 
            bool ignoreApplicationBrowsers = false;
            this.D512ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps);
            return true;
        } 

        protected virtual void Dm110ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        } 

        protected virtual void Dm110ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) { 
        }

        private bool Dm110Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities;
            // Identification: 
            string headerValue; 
            headerValue = ((string)(dictionary["deviceID"]));
            bool result; 
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps);
            result = regexWorker.ProcessRegex(headerValue, "LG05");
            if ((result == false)) { 
                return false;
            } 
            // Capabilities: set capabilities 
            dictionary["mobileDeviceManufacturer"] = "LG";
            dictionary["mobileDeviceModel"] = "DM-110"; 
            browserCaps.AddBrowser("Dm110");
            this.Dm110ProcessGateways(headers, browserCaps);
            bool ignoreApplicationBrowsers = false;
            this.Dm110ProcessBrowsers(ignoreApplicationBrowsers, headers, browserCaps); 
            return true;
        } 
 
        protected virtual void Tm510ProcessGateways(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        } 

        protected virtual void Tm510ProcessBrowsers(bool ignoreApplicationBrowsers, System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
        }
 
        private bool Tm510Process(System.Collections.Specialized.NameValueCollection headers, System.Web.HttpBrowserCapabilities browserCaps) {
            System.Collections.IDictionary dictionary; 
            dictionary = browserCaps.Capabilities; 
            // Identification:
            string headerValue; 
            headerValue = ((string)(dictionary["deviceID"]));
            bool result;
            RegexWorker regexWorker;
            regexWorker = new RegexWorker(browserCaps); 
            result = regexWorker.ProcessRegex(headerValue, "LG21");
            if ((result == false)) { 
                return