

browsers = [{
    'name': 'AdobeAIR',
    'regexp': r'AdobeAIR\/([0-9.]*)'
}, {
    'name': 'Awesomium',
    'regexp': r'Awesomium\/([0-9.]*)'
}, {
    'name': 'Canvace',
    'regexp': r'Canvace Standalone\/([0-9.]*)'
}, {
    'name': 'Ekioh',
    'regexp': r'Ekioh\/([0-9.]*)'
}, {
    'name': 'JavaFX',
    'regexp': r'JavaFX\/([0-9.]*)'
}, {
    'name': 'GFXe',
    'regexp': r'GFXe\/([0-9.]*)'
}, {
    'name': 'LuaKit',
    'regexp': r'luakit'
}, {
    'name': 'Titanium',
    'regexp': r'Titanium\/([0-9.]*)'
}, {
    'name': 'OpenWebKitSharp',
    'regexp': r'OpenWebKitSharp'
}, {
    'name': 'Prism',
    'regexp': r'Prism\/([0-9.]*)'
}, {
    'name': 'Qt',
    'regexp': r'Qt\/([0-9.]*)'
}, {
    'name': 'QtEmbedded',
    'regexp': r'QtEmbedded'
}, {
    'name': 'QtEmbedded',
    'regexp': r'QtEmbedded.*Qt\/([0-9.]*)'
}, {
    'name': 'RhoSimulator',
    'regexp': r'RhoSimulator'
}, {
    'name': 'UWebKit',
    'regexp': r'UWebKit\/([0-9.]*)'
},

{
    'name': 'PhantomJS',
    'regexp': r'PhantomJS\/([0-9.]*)'
}, {
    'name': 'Google Web Preview',
    'regexp': r'Google Web Preview'
},

{
    'name': 'Google Earth',
    'regexp': r'Google Earth\/([0-9.]*)'
}, {
    'name': 'EA Origin',
    'regexp': r'Origin\/([0-9.]*)'
}, {
    'name': 'SecondLife',
    'regexp': r'SecondLife\/([0-9.]*)'
}, {
    'name': 'Valve Steam',
    'regexp': r'Valve Steam'
},

{
    'name': 'Songbird',
    'regexp': r'Songbird\/([0-9.]*)'
}, {
    'name': 'Thunderbird',
    'regexp': r'Thunderbird\/([0-9.]*)'
},

{
    'name': 'Abrowser',
    'regexp': r'Abrowser\/([0-9.]*)'
}, {
    'name': 'arora',
    'regexp': r'[Aa]rora\/([0-9.]*)'
}, {
    'name': 'Baidu Browser',
    'regexp': r'M?BaiduBrowser\/([0-9.]*)',
    'i': True
}, {
    'name': 'Camino',
    'regexp': r'Camino\/([0-9.]*)'
}, {
    'name': 'Canure',
    'regexp': r'Canure\/([0-9.]*)',
    'details': 3
}, {
    'name': 'CometBird',
    'regexp': r'CometBird\/([0-9.]*)'
}, {
    'name': 'Comodo Dragon',
    'regexp': r'Comodo_Dragon\/([0-9.]*)',
    'details': 2
}, {
    'name': 'Conkeror',
    'regexp': r'[Cc]onkeror\/([0-9.]*)'
}, {
    'name': 'CoolNovo',
    'regexp': r'(?:CoolNovo|CoolNovoChromePlus)\/([0-9.]*)',
    'details': 3
}, {
    'name': 'ChromePlus',
    'regexp': r'ChromePlus(?:\/([0-9.]*))?$',
    'details': 3
}, {
    'name': 'Daedalus',
    'regexp': r'Daedalus ([0-9.]*)',
    'details': 2
}, {
    'name': 'Demobrowser',
    'regexp': r'demobrowser\/([0-9.]*)'
}, {
    'name': 'Dooble',
    'regexp': r'Dooble(?:\/([0-9.]*))?'
}, {
    'name': 'DWB',
    'regexp': r'dwb(?:-hg)?(?:\/([0-9.]*))?'
}, {
    'name': 'Epiphany',
    'regexp': r'Epiphany\/([0-9.]*)'
}, {
    'name': 'FireWeb',
    'regexp': r'FireWeb\/([0-9.]*)'
}, {
    'name': 'Flock',
    'regexp': r'Flock\/([0-9.]*)',
    'details': 3
}, {
    'name': 'Galeon',
    'regexp': r'Galeon\/([0-9.]*)',
    'details': 3
}, {
    'name': 'Helium',
    'regexp': r'HeliumMobileBrowser\/([0-9.]*)'
}, {
    'name': 'iCab',
    'regexp': r'iCab\/([0-9.]*)'
}, {
    'name': 'Iceape',
    'regexp': r'Iceape\/([0-9.]*)'
}, {
    'name': 'IceCat',
    'regexp': r'IceCat ([0-9.]*)'
}, {
    'name': 'Iceweasel',
    'regexp': r'Iceweasel\/([0-9.]*)'
}, {
    'name': 'InternetSurfboard',
    'regexp': r'InternetSurfboard\/([0-9.]*)'
}, {
    'name': 'Iron',
    'regexp': r'Iron\/([0-9.]*)',
    'details': 2
}, {
    'name': 'Isis',
    'regexp': r'BrowserServer'
}, {
    'name': 'Jumanji',
    'regexp': r'jumanji'
}, {
    'name': 'Kazehakase',
    'regexp': r'Kazehakase\/([0-9.]*)'
}, {
    'name': 'KChrome',
    'regexp': r'KChrome\/([0-9.]*)',
    'details': 3
}, {
    'name': 'K-Meleon',
    'regexp': r'K-Meleon\/([0-9.]*)'
}, {
    'name': 'Leechcraft',
    'regexp': r'Leechcraft(?:\/([0-9.]*))?',
    'details': 2
}, {
    'name': 'Lightning',
    'regexp': r'Lightning\/([0-9.]*)'
}, {
    'name': 'Lunascape',
    'regexp': r'Lunascape[\/| ]([0-9.]*)',
    'details': 3
}, {
    'name': 'iLunascape',
    'regexp': r'iLunascape\/([0-9.]*)',
    'details': 3
}, {
    'name': 'Maxthon',
    'regexp': r'Maxthon[\/ ]([0-9.]*)',
    'details': 3
}, {
    'name': 'MiniBrowser',
    'regexp': r'MiniBr?owserM\/([0-9.]*)'
}, {
    'name': 'MiniBrowser',
    'regexp': r'MiniBrowserMobile\/([0-9.]*)'
}, {
    'name': 'MixShark',
    'regexp': r'MixShark\/([0-9.]*)'
}, {
    'name': 'Motorola WebKit',
    'regexp': r'MotorolaWebKit\/([0-9.]*)',
    'details': 3
}, {
    'name': 'NetFront LifeBrowser',
    'regexp': r'NetFrontLifeBrowser\/([0-9.]*)'
}, {
    'name': 'Netscape Navigator',
    'regexp': r'Navigator\/([0-9.]*)',
    'details': 3
}, {
    'name': 'Odyssey',
    'regexp': r'OWB\/([0-9.]*)'
}, {
    'name': 'OmniWeb',
    'regexp': r'OmniWeb'
}, {
    'name': 'Orca',
    'regexp': r'Orca\/([0-9.]*)'
}, {
    'name': 'Origyn',
    'regexp': r'Origyn Web Browser'
}, {
    'name': 'Palemoon',
    'regexp': r'Pale[mM]oon\/([0-9.]*)'
}, {
    'name': 'Phantom',
    'regexp': r'Phantom\/V([0-9.]*)'
}, {
    'name': 'Polaris',
    'regexp': r'Polaris\/v?([0-9.]*)',
    'i': True,
    'details': 2
}, {
    'name': 'QtCreator',
    'regexp': r'QtCreator\/([0-9.]*)'
}, {
    'name': 'QtQmlViewer',
    'regexp': r'QtQmlViewer'
}, {
    'name': 'QtTestBrowser',
    'regexp': r'QtTestBrowser\/([0-9.]*)'
}, {
    'name': 'QtWeb',
    'regexp': r'QtWeb Internet Browser\/([0-9.]*)'
}, {
    'name': 'QupZilla',
    'regexp': r'QupZilla\/([0-9.]*)'
}, {
    'name': 'Roccat',
    'regexp': r'Roccat\/([0-9]\.[0-9.]*)'
}, {
    'name': 'Raven for Mac',
    'regexp': r'Raven for Mac\/([0-9.]*)'
}, {
    'name': 'rekonq',
    'regexp': r'rekonq'
}, {
    'name': 'RockMelt',
    'regexp': r'RockMelt\/([0-9.]*)',
    'details': 2
}, {
    'name': 'Sleipnir',
    'regexp': r'Sleipnir\/([0-9.]*)',
    'details': 3
}, {
    'name': 'SMBrowser',
    'regexp': r'SMBrowser'
}, {
    'name': 'Sogou Explorer',
    'regexp': r'SE 2.X MetaSr'
}, {
    'name': 'Snowshoe',
    'regexp': r'Snowshoe\/([0-9.]*)',
    'details': 2
}, {
    'name': 'Sputnik',
    'regexp': r'Sputnik\/([0-9.]*)',
    'i': True,
    'details': 3
}, {
    'name': 'Stainless',
    'regexp': r'Stainless\/([0-9.]*)'
}, {
    'name': 'SunChrome',
    'regexp': r'SunChrome\/([0-9.]*)'
}, {
    'name': 'Surf',
    'regexp': r'Surf\/([0-9.]*)'
}, {
    'name': 'TaoBrowser',
    'regexp': r'TaoBrowser\/([0-9.]*)',
    'details': 2
}, {
    'name': 'TaomeeBrowser',
    'regexp': r'TaomeeBrowser\/([0-9.]*)',
    'details': 2
}, {
    'name': 'TazWeb',
    'regexp': r'TazWeb'
}, {
    'name': 'Viera',
    'regexp': r'Viera\/([0-9.]*)'
}, {
    'name': 'Villanova',
    'regexp': r'Villanova\/([0-9.]*)',
    'details': 3
}, {
    'name': 'Wavelink Velocity',
    'regexp': r'Wavelink Velocity Browser\/([0-9.]*)',
    'details': 2
}, {
    'name': 'WebPositive',
    'regexp': r'WebPositive'
}, {
    'name': 'WebRender',
    'regexp': r'WebRender'
}, {
    'name': 'Wyzo',
    'regexp': r'Wyzo\/([0-9.]*)',
    'details': 3
}, {
    'name': 'Zetakey',
    'regexp': r'Zetakey Webkit\/([0-9.]*)'
}, {
    'name': 'Zetakey',
    'regexp': r'Zetakey\/([0-9.]*)'
}]