var useragent_base = (function() { var STRINGS_SAMSUNG = 'Samsung', STRINGS_SHARP = 'Sharp', STRINGS_SONY_ERICSSON = 'Sony Ericsson', STRINGS_MOTOROLA = 'Motorola', STRINGS_LG = 'LG', STRINGS_HUAWEI = 'Huawei', STRINGS_HTC = 'HTC', STRINGS_COOLPAD = 'Coolpad', STRINGS_ASUS = 'Asus', STRINGS_ACER = 'Acer'; var STRINGS_BASED = ' based device'; var TOUCHWIZ_MODELS = { 'SAMSUNG': { 'GT-S3370C': [STRINGS_SAMSUNG, 'Corby 3G'], 'GT-S3650': [STRINGS_SAMSUNG, 'Corby'], 'GT-S3653': [STRINGS_SAMSUNG, 'Corby'], 'GT-S3850': [STRINGS_SAMSUNG, 'Corby II'], 'GT-S5230': [STRINGS_SAMSUNG, 'Star'], 'GT-S5230W': [STRINGS_SAMSUNG, 'Star'], 'GT-S5233': [STRINGS_SAMSUNG, 'Star'], 'GT-S5260': [STRINGS_SAMSUNG, 'Star II'], 'GT-S5560': [STRINGS_SAMSUNG, 'Marvel'], 'GT-S5620': [STRINGS_SAMSUNG, 'Monte'], 'GT-S7550': [STRINGS_SAMSUNG, 'Blue Earth'], 'GT-S8000': [STRINGS_SAMSUNG, 'Jet'], 'GT-S8003': [STRINGS_SAMSUNG, 'Jet'], 'SGH-F480': [STRINGS_SAMSUNG, 'Tocco'], 'SGH-T528g': [STRINGS_SAMSUNG, 'Straight Talk'], 'GT-B3410': [STRINGS_SAMSUNG, 'Star Qwerty'], 'GT-B5310': [STRINGS_SAMSUNG, 'Corby Pro'], 'GT-B7722': [STRINGS_SAMSUNG, 'Star Duos'], 'GT-C6712': [STRINGS_SAMSUNG, 'Star II Duos'] } } var BADA_MODELS = { 'SAMSUNG': { 'GT- S5250': [STRINGS_SAMSUNG, 'Wave 525'], 'GT-S5250': [STRINGS_SAMSUNG, 'Wave 525'], 'GT-S5253': [STRINGS_SAMSUNG, 'Wave 525'], 'GT-S5330': [STRINGS_SAMSUNG, 'Wave 533'], 'GT-S5380': [STRINGS_SAMSUNG, 'Wave Y'], 'GT-S5380D': [STRINGS_SAMSUNG, 'Wave Y'], 'GT-S5380K': [STRINGS_SAMSUNG, 'Wave Y'], 'GT-S5750E': [STRINGS_SAMSUNG, 'Wave 575'], 'GT-S5753E': [STRINGS_SAMSUNG, 'Wave 575'], 'GT-S7230B': [STRINGS_SAMSUNG, 'Wave 723'], 'GT-S7230E': [STRINGS_SAMSUNG, 'Wave 723'], 'GT-S7233E': [STRINGS_SAMSUNG, 'Wave 723'], 'GT-S7250': [STRINGS_SAMSUNG, 'Wave M'], 'GT-S7250D': [STRINGS_SAMSUNG, 'Wave M'], 'GT-S8500': [STRINGS_SAMSUNG, 'Wave'], 'GT-S8500C': [STRINGS_SAMSUNG, 'Wave'], 'GT-S8500R': [STRINGS_SAMSUNG, 'Wave'], 'GT-S8500T': [STRINGS_SAMSUNG, 'Wave'], 'GT-S8530': [STRINGS_SAMSUNG, 'Wave II'], 'GT-S8600': [STRINGS_SAMSUNG, 'Wave 3'], 'SHW-M410': [STRINGS_SAMSUNG, 'Wave 3'] } } var TIZEN_MODELS = { 'SAMSUNG': { 'GT-I9500': [STRINGS_SAMSUNG, 'GT-I9500'] } } var BREW_MODELS = { 'Coolpad D508': [STRINGS_COOLPAD, 'D508'], 'Coolpad E600': [STRINGS_COOLPAD, 'E600'], 'SCH-F839': [STRINGS_SAMSUNG, 'SCH-F839'] } var WINDOWS_MOBILE_MODELS = { 'DX900': [STRINGS_ACER, 'Tempo DX900'], 'F900': [STRINGS_ACER, 'Tempo F900'], 'Coolpad F800': [STRINGS_COOLPAD, 'F800'], 'garmin-asus-Nuvifone-M10': ['Garmin-Asus', 'Nuvifone M10'], 'HP iPAQ 510': ['HP', 'iPAQ 510'], 'HD mini T5555': [STRINGS_HTC, 'HD mini'], 'HTC HD mini': [STRINGS_HTC, 'HD mini'], 'HTC HD mini T5555': [STRINGS_HTC, 'HD mini'], 'HTC HD2': [STRINGS_HTC, 'HD2'], 'HTC HD2 T8585': [STRINGS_HTC, 'HD2'], 'HD2 T8585': [STRINGS_HTC, 'HD2'], 'T-Mobile LEO': [STRINGS_HTC, 'HD2'], 'dopodT5588': [STRINGS_HTC, 'Hengshan'], 'HTC Mega-T3333': [STRINGS_HTC, 'Mega'], 'HTC Snap S521': [STRINGS_HTC, 'Snap'], 'HTC Touch2 T3320': [STRINGS_HTC, 'Touch 2'], 'HTC Touch2 T3333': [STRINGS_HTC, 'Touch 2'], 'HTC Touch2 T3335': [STRINGS_HTC, 'Touch 2'], 'HTC P3700': [STRINGS_HTC, 'Touch Diamond'], 'HTC Touch Diamond2 T5353': [STRINGS_HTC, 'Touch Diamond 2'], 'HTC Touch HD T8282': [STRINGS_HTC, 'Touch HD'], 'HTC Touch HD T8283': [STRINGS_HTC, 'Touch HD'], 'HTC Touch HD2 T8585': [STRINGS_HTC, 'Touch HD2'], 'HTC Touch Pro2 T7373': [STRINGS_HTC, 'Touch Pro 2'], 'T7380': [STRINGS_HTC, 'Touch Pro 2'], 'HTC TyTN II': [STRINGS_HTC, 'TyTN II'], 'GT-B7300': [STRINGS_SAMSUNG, 'Omnia Lite'], 'GT-B7610': [STRINGS_SAMSUNG, 'Omnia Pro'], 'GT-i8000': [STRINGS_SAMSUNG, 'Omnia 2'], 'GT-I8000': [STRINGS_SAMSUNG, 'Omnia 2'], 'GT-I8000U': [STRINGS_SAMSUNG, 'Omnia 2'], 'M1i': [STRINGS_SONY_ERICSSON, 'M1i Aspen'] } var WINDOWS_PHONE_MODELS = { 'Acer': { 'Allegro': [STRINGS_ACER, 'Allegro'], 'M310': [STRINGS_ACER, 'Allegro'] }, 'Asus': { 'Galaxy6': [STRINGS_ASUS, 'Galaxy 6'] }, 'DELL': { 'Venue Pro': ['Dell', 'Venue Pro'] }, 'FujitsuToshibaMobileCommun': { 'IS12T': ['Fujitsu Toshiba', 'IS12T'] }, 'HTC': { '7 Mozart': [STRINGS_HTC, '7 Mozart'], '7 Mozart T8698': [STRINGS_HTC, '7 Mozart'], 'T8697': [STRINGS_HTC, '7 Mozart'], 'T8698': [STRINGS_HTC, '7 Mozart'], 'PD67100': [STRINGS_HTC, '7 Mozart'], 'Mozart T8698': [STRINGS_HTC, '7 Mozart'], 'Mozart': [STRINGS_HTC, '7 Mozart'], 'USCCHTC-PC93100': [STRINGS_HTC, 'Arrive'], 'Gold': [STRINGS_HTC, 'Gold '], 'HD2': [STRINGS_HTC, 'HD2'], 'HD7': [STRINGS_HTC, 'HD7'], 'HD7 T9292': [STRINGS_HTC, 'HD7'], 'T9295': [STRINGS_HTC, 'HD7'], 'T9296': [STRINGS_HTC, 'HD7'], 'HD7 Infinity': [STRINGS_HTC, 'HD7'], 'T7575': [STRINGS_HTC, '7 Pro'], '7 Pro T7576': [STRINGS_HTC, '7 Pro'], 'mwp6985': [STRINGS_HTC, 'Trophy'], '7 Trophy T8686': [STRINGS_HTC, 'Trophy'], '7 Trophy': [STRINGS_HTC, 'Trophy'], 'PC40100': [STRINGS_HTC, 'Trophy'], 'Touch-IT Trophy': [STRINGS_HTC, 'Trophy'], 'Radar': [STRINGS_HTC, 'Radar'], 'Radar 4G': [STRINGS_HTC, 'Radar'], 'Radar C110e': [STRINGS_HTC, 'Radar'], 'Mazaa': [STRINGS_HTC, 'Mazaa'], 'Mondrian': [STRINGS_HTC, 'Mondrian'], 'Schubert': [STRINGS_HTC, 'Schubert'], '7 Schubert T9292': [STRINGS_HTC, 'Schubert'], 'Spark': [STRINGS_HTC, 'Spark'], 'T8788': [STRINGS_HTC, 'Surround'], 'TITAN X310e': [STRINGS_HTC, 'Titan'], 'X310e': [STRINGS_HTC, 'Titan'], 'PI39100': [STRINGS_HTC, 'Titan'], 'PI86100': [STRINGS_HTC, 'Titan II'], 'Ultimate': [STRINGS_HTC, 'Ultimate'] }, 'LG': { 'GW910': [STRINGS_LG, 'Optimus 7'], 'LG E-900': [STRINGS_LG, 'Optimus 7 E900'], 'LG-E900': [STRINGS_LG, 'Optimus 7 E900'], 'LG-E900h': [STRINGS_LG, 'Optimus 7 E900'], 'LG-C900': [STRINGS_LG, 'Optimus 7Q'], 'LG-C900B': [STRINGS_LG, 'Quantum'], 'LG-C900k': [STRINGS_LG, 'Quantum'] }, 'nokia': { 'SeaRay': ['Nokia', 'Lumia 800'], '800C': ['Nokia', 'Lumia 800'] }, 'NOKIA': { '710': ['Nokia', 'Lumia 710'], 'Nokia 710': ['Nokia', 'Lumia 710'], 'Lumia 710': ['Nokia', 'Lumia 710'], 'Lumia 719': ['Nokia', 'Lumia 719'], 'Lumia 800': ['Nokia', 'Lumia 800'], '800': ['Nokia', 'Lumia 800'], 'Lumia 900': ['Nokia', 'Lumia 900'], 'XXX': ['Nokia', 'prototype'] }, 'SAMSUNG': { 'GT-I8350': [STRINGS_SAMSUNG, 'Omnia W'], 'GT-I8350T': [STRINGS_SAMSUNG, 'Omnia W'], 'SGH-i677': [STRINGS_SAMSUNG, 'Focus Flash'], 'SGH-i707': [STRINGS_SAMSUNG, 'Taylor'], 'SGH-i917': [STRINGS_SAMSUNG, 'Omnia 7'], 'SGH-I917': [STRINGS_SAMSUNG, 'Omnia 7'], 'SGH-i917.': [STRINGS_SAMSUNG, 'Focus'], 'SGH-i917R': [STRINGS_SAMSUNG, 'Focus'], 'SGH-i937': [STRINGS_SAMSUNG, 'Focus S'], 'OMNIA7': [STRINGS_SAMSUNG, 'Omnia 7'], 'OMINA7': [STRINGS_SAMSUNG, 'Omnia 7'], 'Taylor': [STRINGS_SAMSUNG, 'Taylor'] }, 'TOSHIBA': { 'TSUNAGI': ['Toshiba', 'Tsunagi'] } }; var ANDROID_MODELS = { 'Android': [null, null], 'google sdk': [null, null], 'sdk': [null, null], 'generic': [null, null], 'generic x86': [null, null], 'amd brazos': ['AMD', 'Fusionbased device'], 'Amlogic M1 reference board': ['Amlogic', 'M1 reference board'], 'AML8726M': ['Amlogic', 'AML8726-Mbased device'], 'vexpress a9': ['ARM', 'Versatile Express development platform'], 'bcm7231': ['Broadcom', 'BCM7231based device', 'television'], 'bcm7425': ['Broadcom', 'BCM7425based device', 'television'], 'bcm7429': ['Broadcom', 'BCM7429based device', 'television'], 'imx50 rdp': ['Freescale', 'i.MX50based device'], 'imx51 bbg': ['Freescale', 'i.MX51based device'], 'imx53 loco': ['Freescale', 'i.MX53based device'], 'imx53 mp204f3': ['Freescale', 'i.MX53based device'], 'imx53 smd': ['Freescale', 'i.MX53based device'], 'imx53 yeagle': ['Freescale', 'i.MX53based device'], 'imx6q': ['Freescale', 'i.MX6Qbased device'], 'ODROID-A': ['Hardkernel', 'ODROID-A developer tablet', 'tablet'], 'mfld dv10': ['Intel', 'Medfieldbased device'], 'mfld dv20': ['Intel', 'Medfieldbased device'], 'mfld lw00': ['Intel', 'Medfieldbased device'], 'mfld pr2': ['Intel', 'Medfieldbased device'], 'mfld pr3': ['Intel', 'Medfieldbased device'], 'berlin bg2': ['Marvell', 'Armada 1000based device', 'television'], 'MStar Amber3': ['MStar', 'Amber3based device'], 'Konka Amber3': ['MStar', 'Amber3based device'], 'mt5396': ['Mediatek', 'MT5396based device', 'television'], 'bird75v2': ['Mediatek', 'MT6575based device'], 'eagle75v1 2': ['Mediatek', 'MT6575based device'], 'MBX DVBT reference board (c03ref)': ['MXB', 'DVBT reference board', 'television'], 'NS2816': ['Nufront', 'NuSmart 2816based device'], 'Ventana': ['nVidia', 'Tegra Ventana development kit'], 'Cardhu': ['nVidia', 'Tegra 3based device'], 'Panda': ['Pandaboard', 'Development Kit'], 'pandaboard': ['Pandaboard', 'Development Kit'], 'PandaBoard': ['Pandaboard', 'Development Kit'], 'MSM': ['Qualcomm', 'Snapdragonbased device'], 'msm7227 ffa': ['Qualcomm', 'Snapdragon S1based device'], 'msm7627 surf': ['Qualcomm', 'Snapdragon S1based device'], 'msm7627a': ['Qualcomm', 'Snapdragon S1based device'], 'msm7627a sku1': ['Qualcomm', 'Snapdragon S1based device'], 'msm7627a sku3': ['Qualcomm', 'Snapdragon S1based device'], 'msm7630 fusion': ['Qualcomm', 'Snapdragon S2based device'], 'msm7630 surf': ['Qualcomm', 'Snapdragon S2based device'], 'msm8660 cougar': ['Qualcomm', 'Snapdragon S3based device'], 'msm8660 surf': ['Qualcomm', 'Snapdragon S3based device'], 'msm8960': ['Qualcomm', 'Snapdragon S4based device'], 'rk2808sdk': ['Rockchip', 'RK2808based device'], 'RK2818': ['Rockchip', 'RK2818based device'], 'rk2818sdk': ['Rockchip', 'RK2818based device'], 'Android-for-Rockchip-2818': ['Rockchip', 'RK2818based device'], 'rk29sdk': ['Rockchip', 'RK29based device'], 'Rk29sdk': ['Rockchip', 'RK29based device'], 'rk30sdk': ['Rockchip', 'RK30based device'], 's3c6410': ['Samsung', 'S3C6410based device'], 'smdk6410': ['Samsung', 'S3C6410based device'], 'SMDKC110': ['Samsung', 'Exynos 3110based device'], 'SMDKV210': ['Samsung', 'Exynos 4210based device'], 'S5PV210': ['Samsung', 'Exynos 4210based device'], 'sec smdkc210': ['Samsung', 'Exynos 4210based device'], 'SMDK4x12': ['Samsung', 'Exynos 4212 or 4412based device'], 'smp86xx': ['Sigma', 'SMP86xxbased device', 'television'], 'sv8860': ['Skyviia', 'SV8860based device', 'television'], 'ste u8500': ['ST Ericsson', 'Novathor U8500based device'], 'Telechips M801 Evaluation Board': ['Telechips', 'M801based device', 'television'], 'Telechips TCC8900 Evaluation Board': ['Telechips', 'TCC8900based device', 'television'], 'TCC8920 STB EV': ['Telechips', 'TCC8920based device', 'television'], 'OMAP': ['Texas Instruments', 'OMAPbased device'], 'OMAP SS': ['Texas Instruments', 'OMAPbased device'], 'LogicPD Zoom2': ['Texas Instruments', 'OMAPbased device'], 'omap3evm': ['Texas Instruments', 'OMAP3based device'], 'Omap5sevm': ['Texas Instruments', 'OMAP5based device'], 'pnx8473 kiryung': ['Trident', 'PNX8473based device', 'television'], 'crespo': ['Google', 'Nexus S'], 'Crespo': ['Google', 'Nexus S'], 'Crespo4G': ['Google', 'Nexus S'], 'Passion': ['Google', 'Nexus One'], 'Bravo': ['HTC', 'Desire'], 'dream': ['HTC', 'Dream'], 'Vogue': ['HTC', 'Touch'], 'Vendor Optimus': ['LG', 'Optimus'], 'Stingray': ['Motorola', 'XOOM', 'tablet'], 'Wingray': ['Motorola', 'XOOM', 'tablet'], 'maguro': ['Samsung', 'Galaxy Nexus'], 'Maguro': ['Samsung', 'Galaxy Nexus'], 'Toro-VZW': ['Samsung', 'Galaxy Nexus'], 'blaze': ['Texas Instruments', 'Blaze Tablet', 'tablet'], 'Blaze': ['Texas Instruments', 'Blaze Tablet', 'tablet'], 'Blaze Tablet': ['Texas Instruments', 'Blaze Tablet', 'tablet'], 'BlueStacks': ['BlueStacks', 'App Player', 'desktop'], 'youwave custom': ['Youwave', 'Android on PC', 'desktop'], 'A100': ['Acer', 'Iconia Tab A100', 'tablet'], 'A101': ['Acer', 'Iconia Tab A101', 'tablet'], 'A200': ['Acer', 'Iconia Tab A200', 'tablet'], 'A500': ['Acer', 'Iconia Tab A500', 'tablet'], 'A501': ['Acer', 'Iconia Tab A501', 'tablet'], 'A510': ['Acer', 'Iconia Tab A510', 'tablet'], 'A511': ['Acer', 'Iconia Tab A511', 'tablet'], 'A700': ['Acer', 'Iconia Tab A700', 'tablet'], 'Acer A800': ['Acer', 'Iconia Tab A800', 'tablet'], 'E110': ['Acer', 'beTouch E110'], 'E120': ['Acer', 'beTouch E120'], 'E130': ['Acer', 'beTouch E130'], 'E140': ['Acer', 'beTouch E140'], 'E210': ['Acer', 'beTouch E210'], 'E310': ['Acer', 'Liquid mini'], 'E320': ['Acer', 'Liquid Express'], 'E330': ['Acer', 'Liquid Glow'], 'E400': ['Acer', 'beTouch E400'], 'G100W': ['Acer', 'G100W'], 'S100': ['Acer', 'Liquid'], 'S110': ['Acer', 'Stream'], 'S120': ['Acer', 'Liquid mt'], 'S300': ['Acer', 'Iconia Smart'], 'S500': ['Acer', 'CloudMobile'], 'TD600': ['Acer', 'beTouch TD600'], 'Liquid': ['Acer', 'Liquid'], 'Liquid E': ['Acer', 'Liquid E'], 'Liquid Mt': ['Acer', 'Liquid mt'], 'Liquid MT': ['Acer', 'Liquid mt'], 'Liquid Metal': ['Acer', 'Liquid mt'], 'Stream': ['Acer', 'Stream'], 'N700': ['aigo', 'N700', 'tablet'], 'M801': ['aigo', 'M801', 'tablet'], 'Novo7': ['Ainovo', 'Novo7', 'tablet'], 'Novo7 Aurora': ['Ainovo', 'Novo7 Aurora', 'tablet'], 'Novo7 Advanced': ['Ainovo', 'Novo7 Advanced', 'tablet'], 'Novo7 Advanced2': ['Ainovo', 'Novo7 Advanced 2', 'tablet'], 'Novo7 Basic': ['Ainovo', 'Novo7 Basic', 'tablet'], 'Novo7 ELF': ['Ainovo', 'Novo7 Elf', 'tablet'], 'Novo7 PALADIN': ['Ainovo', 'Novo7 Paladin', 'tablet'], 'Novo8 Advanced': ['Ainovo', 'Novo8 Advanced', 'tablet'], 'one touch 890': ['Alcatel', 'One Touch 890'], 'one touch 890D': ['Alcatel', 'One Touch 890'], 'one touch 891': ['Alcatel', 'One Touch 891'], 'ONE TOUCH 903': ['Alcatel', 'One Touch 903SHV-E170K'], 'one touch 906': ['Alcatel', 'One Touch 906'], 'one touch 908': ['Alcatel', 'One Touch 908'], 'one touch 908F': ['Alcatel', 'One Touch 908'], 'one touch 908S': ['Alcatel', 'One Touch 908'], 'one touch 910': ['Alcatel', 'One Touch 910'], 'one touch 918': ['Alcatel', 'One Touch 918'], 'one touch 918D': ['Alcatel', 'One Touch 918'], 'ONE TOUCH 918D': ['Alcatel', 'One Touch 918'], 'one touch 918M': ['Alcatel', 'One Touch 918'], 'one touch 918N': ['Alcatel', 'One Touch 918'], 'one touch 980': ['Alcatel', 'One Touch 980'], 'one touch 980A': ['Alcatel', 'One Touch 980'], 'one touch 981A': ['Alcatel', 'One Touch 981'], 'one touch 986': ['Alcatel', 'One Touch 986'], 'one touch 990': ['Alcatel', 'One Touch 990'], 'one touch 990A': ['Alcatel', 'One Touch 990'], 'one touch 991': ['Alcatel', 'One Touch 991'], 'one touch 991D': ['Alcatel', 'One Touch 991'], 'ONE TOUCH 993': ['Alcatel', 'One Touch 993'], 'one touch 995': ['Alcatel', 'One Touch 995'], 'Telenor OneTouch': ['Alcatel', 'One Touch 990'], 'OT 918': ['Alcatel', 'One Touch 918'], 'Venture': ['Alcatel', 'Venture'], 'Allwinner A10': ['AllWinner', 'A10', 'tablet'], '97FC': ['AllWinner', 'A10 97FC', 'tablet'], 'Kindle Fire': ['Amazon', 'Kindle Fire', 'tablet'], 'Amazon Kindle Fire': ['Amazon', 'Kindle Fire', 'tablet'], 'AMD120': ['AnyDATA', 'AnyTAB AMD120', 'tablet'], 'MW0811': ['AOC', 'Breeze MW0811', 'tablet'], 'MW0821 V2.0': ['AOC', 'Breeze MW0821', 'tablet'], 'MW0922': ['AOC', 'Breeze MW0922', 'tablet'], 'Apanda A60': ['Apanda', 'A60'], 'apanda-A60': ['Apanda', 'A60'], 'A80KSC': ['Archos', 'Arnova 8', 'tablet'], 'AN7CG2': ['Archos', 'Arnova 7', 'tablet'], 'A101B': ['Archos', 'Arnova 10', 'tablet'], 'AN10BG2DT': ['Archos', 'Arnova 10 B', 'tablet'], 'AN10G2': ['Archos', 'Arnova 10 G2', 'tablet'], 'A32': ['Archos', '32', 'media'], 'A35DE': ['Archos', '35 Smart Home Phone'], 'A43': ['Archos', '43', 'media'], 'Archos5': ['Archos', '5', 'media'], 'A70H': ['Archos', '7', 'tablet'], 'A70HB': ['Archos', '7', 'tablet'], 'A70BHT': ['Archos', '7', 'tablet'], 'A70CHT': ['Archos', '7C', 'tablet'], 'A70S': ['Archos', '70', 'tablet'], 'A7EB': ['Archos', '70B', 'tablet'], 'ARCHOS 70it2': ['Archos', '70 IT 2', 'tablet'], 'ARCHOS 80G9': ['Archos', '80 G9', 'tablet'], 'ARCHOS 101G9': ['Archos', '101 G9', 'tablet'], 'A101IT': ['Archos', '101 IT', 'tablet'], 'ASTRI': ['ASTRI', 'e-reader', 'ereader'], 'eeepc': ['Asus', 'Eee Pc'], 'asus laptop': ['Asus', 'Eee Pc'], 'ME171': ['Asus', 'Eee Pad MeMO', 'tablet'], 'Slider SL101': ['Asus', 'Eee Pad Slider', 'tablet'], 'EPAD': ['Asus', 'Eee Pad Transformer', 'tablet'], 'TF101': ['Asus', 'Eee Pad Transformer', 'tablet'], 'Transformer TF101': ['Asus', 'Eee Pad Transformer', 'tablet'], 'Transformer TF101G': ['Asus', 'Eee Pad Transformer', 'tablet'], 'TF201': ['Asus', 'Eee Pad Transformer Prime', 'tablet'], 'Transformer Prime TF201': ['Asus', 'Eee Pad Transformer Prime', 'tablet'], 'Transformer Prime': ['Asus', 'Eee Pad Transformer Prime', 'tablet'], 'Transformer Pad TF300T': ['Asus', 'Transformer Pad 300', 'tablet'], 'ASUS Transformer TF300T': ['Asus', 'Transformer Pad 300', 'tablet'], 'ASUS Transformer Pad TF300T': ['Asus', 'Transformer Pad 300', 'tablet'], 'ASUS Transformer Pad TF300TG': ['Asus', 'Transformer Pad 300', 'tablet'], 'ASUS Transformer Pad TF700T': ['Asus', 'Transformer Pad Infinity 700', 'tablet'], 'ASUS Transformer Pad TF700K': ['Asus', 'Transformer Pad Infinity 700', 'tablet'], 'ASUS Transformer TF700K': ['Asus', 'Transformer Pad Infinity 700', 'tablet'], 'PadFone': ['Asus', 'Padfone', 'tablet'], 'OMS TTD': ['Asus', 'Eee Pc T10'], 'ASUS T20': ['Asus', 'Eee Pc T20'], 'ETBW11AA': ['Asus', 'Tough'], 'AUX V900': ['AUX', 'V900'], 'M910A': ['AUX', 'M910'], 'PICOpad-QGN': ['Axioo', 'Picopad QGN', 'tablet'], 'NOOK': ['Barnes & Noble', 'NOOK', 'ereader'], 'NookColor': ['Barnes & Noble', 'NOOK Color', 'ereader'], 'NOOK BNRV200': ['Barnes & Noble', 'NOOK Color', 'ereader'], 'NOOK BNRV300': ['Barnes & Noble', 'NOOK Color', 'ereader'], 'NookTablet': ['Barnes & Noble', 'NOOK Tablet', 'ereader'], 'Nook Tablet': ['Barnes & Noble', 'NOOK Tablet', 'ereader'], 'NOOK BNTV250': ['Barnes & Noble', 'NOOK Tablet', 'ereader'], 'NOOK BNTV250A': ['Barnes & Noble', 'NOOK Tablet', 'ereader'], 'BNTV250': ['Barnes & Noble', 'NOOK Tablet', 'ereader'], 'BNTV250A': ['Barnes & Noble', 'NOOK Tablet', 'ereader'], 'NOOK Slate': ['Barnes & Noble', 'NOOK Tablet', 'ereader'], 'BenWee 5100': ['BenWee', '5100'], 'CA907AAC0G': ['Besta', 'CA907AAC0G'], 'BM999': ['Bmorn', 'BM999', 'tablet'], 'V11': ['Bmorn', 'V11', 'tablet'], 'V99': ['Bmorn', 'V99', 'tablet'], 'bq DaVinci': ['bq', 'DaVinci', 'tablet'], 'CT704': ['Carrefour', 'CT704', 'tablet'], 'CT1002': ['Carrefour', 'CT1002', 'tablet'], 'Camangi-Mangrove7': ['Camangi', 'Mangrove 7', 'tablet'], 'WS171': ['Camangi', 'WebStation', 'tablet'], 'IS11CA': ['Casio', 'GzOne IS11CA'], 'C771': ['Casio', 'GzOne Commando'], 'CAT NOVA': ['Cat', 'NOVA', 'tablet'], 'ARMM3V': ['chinaleap', 'ARMM3V', 'tablet'], 'CIUS-7': ['Cisco', 'Cius', 'tablet'], 'CIUS-7-AT': ['Cisco', 'Cius', 'tablet'], 'CSL Spice MI300': ['CSL', 'Spice MI300'], 'CSL-MI410': ['CSL', 'Spice MI410'], 'MID1024': ['Coby', 'Kyros MID1024', 'tablet'], 'MID1125': ['Coby', 'Kyros MID1125', 'tablet'], 'MID1126': ['Coby', 'Kyros MID1126', 'tablet'], 'MID7010': ['Coby', 'Kyros MID7010', 'tablet'], 'MID7012': ['Coby', 'Kyros MID7012', 'tablet'], 'MID7015': ['Coby', 'Kyros MID7015', 'tablet'], 'MID7015A': ['Coby', 'Kyros MID7015', 'tablet'], 'MID7016': ['Coby', 'Kyros MID7016', 'tablet'], 'MID7020': ['Coby', 'Kyros MID7020', 'tablet'], 'MID7022': ['Coby', 'Kyros MID7022', 'tablet'], 'MID7024': ['Coby', 'Kyros MID7024', 'tablet'], 'MID7025': ['Coby', 'Kyros MID7025', 'tablet'], 'MID7127': ['Coby', 'Kyros MID7127', 'tablet'], 'MID8024': ['Coby', 'Kyros MID8024', 'tablet'], 'MID8125': ['Coby', 'Kyros MID8125', 'tablet'], 'MID8127': ['Coby', 'Kyros MID8127', 'tablet'], 'Z71': ['Commtiva', 'Z71'], 'V-T100': ['Commtiva', 'V-T100'], 'FIH-FB0': ['Commtiva', 'HD700'], 'Coolpad D510': ['Coolpad', 'D510'], 'Coolpad 8020': ['Coolpad', '8020'], 'D530': ['Coolpad', 'D530'], 'Coolpad D530': ['Coolpad', 'D530'], 'D539': ['Coolpad', 'D539'], 'Coolpad D539': ['Coolpad', 'D539'], 'E239': ['Coolpad', 'E239'], 'Coolpad E239': ['Coolpad', 'E239'], 'Coolpad N930': ['Coolpad', 'N930'], 'N930': ['Coolpad', 'N930'], 'Coolpad W706': ['Coolpad', 'W706'], 'Coolpad W706+': ['Coolpad', 'W706'], 'Coolpad W708': ['Coolpad', 'W708'], 'W711': ['Coolpad', 'W711'], 'Coolpad 5010': ['Coolpad', '5010'], 'Coolpad 5210': ['Coolpad', '5210'], 'Coolpad 5820': ['Coolpad', '5820'], '5832': ['Coolpad', '5832'], 'Coolpad 5832': ['Coolpad', '5832'], '5855': ['Coolpad', '5855'], 'Coolpad 5860': ['Coolpad', '5860'], 'Coolpad 5860+': ['Coolpad', '5860'], 'Coolpad 5860s': ['Coolpad', '5860'], '5860': ['Coolpad', '5860'], '5860A': ['Coolpad', '5860'], 'Coolpad 5870': ['Coolpad', '5870'], '5870': ['Coolpad', '5870'], 'Coolpad 7005': ['Coolpad', '7005'], '7260': ['Coolpad', '7260'], 'Coolpad 7019': ['Coolpad', '7019'], 'Coolpad 7260': ['Coolpad', '7260'], 'Coolpad 8013': ['Coolpad', '8013'], 'Coolpad 8809': ['Coolpad', '8809'], 'Coolpad 8810': ['Coolpad', '8810'], '8810': ['Coolpad', '8810'], '8150': ['Coolpad', '8150'], 'Coolpad 8150D': ['Coolpad', '8150'], 'Coolpad 8811': ['Coolpad', '8811'], 'Coolpad 9900': ['Coolpad', '9900'], 'Coolpad 8050': ['Coolpad', '8050'], 'ZiiO7': ['Creative', 'ZiiO 7', 'tablet'], 'ZiiLABS ZiiO7': ['Creative', 'ZiiO 7', 'tablet'], 'ZiiLABS ZiiO10 ': ['Creative', 'ZiiO 10', 'tablet'], 'CUBE K8GT A': ['Cube', 'K8GT A', 'tablet'], 'CUBE K8GT B': ['Cube', 'K8GT B', 'tablet'], 'K8GT C': ['Cube', 'K8GT C', 'tablet'], 'K8GT H': ['Cube', 'K8GT H', 'tablet'], 'CUBE K8GT H': ['Cube', 'K8GT H', 'tablet'], 'K8GT W': ['Cube', 'K8GT W', 'tablet'], 'CUBE U8GT': ['Cube', 'U8GT', 'tablet'], 'CUBE U9GT': ['Cube', 'U9GT', 'tablet'], 'CUBE U9GT 2': ['Cube', 'U9GT 2', 'tablet'], 'Cube U9GT2': ['Cube', 'U9GT 2', 'tablet'], 'U9GT': ['Cube', 'U9GT', 'tablet'], 'U9GT2 From moage.com': ['Cube', 'U9GT 2', 'tablet'], 'N90 From moage.com': ['Cube', 'U9GT 2', 'tablet'], 'U9GT S': ['Cube', 'U9GT S', 'tablet'], 'U9GT S A': ['Cube', 'U9GT SA', 'tablet'], 'U9GTS A': ['Cube', 'U9GT SA', 'tablet'], 'U10GT 2': ['Cube', 'U10GT 2', 'tablet'], 'U10GT S': ['Cube', 'U10GT S', 'tablet'], 'U30GT-H': ['Cube', 'U30GT H', 'tablet'], 'CUBE Q7PRO': ['Cube', 'Q7 Pro', 'tablet'], 'CUBE Q7PRO J': ['Cube', 'Q7 Pro', 'tablet'], 'Cydle M7 (v0005.04.03.12.ko)': ['Cydle', 'M7 MultiPAD', 'tablet'], 'Dell Aero': ['Dell', 'Aero'], 'Dell M01M': ['Dell', 'Mini 5', 'tablet'], 'Dell Streak': ['Dell', 'Streak', 'tablet'], '001DL': ['Dell', 'Streak', 'tablet'], '101DL': ['Dell', 'Streak Pro', 'tablet'], 'GS01': ['Dell', 'Streak Pro', 'tablet'], 'Dell Streak Pro': ['Dell', 'Streak Pro', 'tablet'], 'streak7': ['Dell', 'Streak 7', 'tablet'], 'Dell Streak 7': ['Dell', 'Streak 7', 'tablet'], 'Dell Streak 10 Pro': ['Dell', 'Streak 10 Pro', 'tablet'], 'Dell V04B': ['Dell', 'Streak V04B', 'tablet'], 'Dell Venue': ['Dell', 'Venue'], 'Dell XCD35': ['Dell', 'XCD35'], 'XCD35': ['Dell', 'XCD35'], 'iDx7': ['Digma', 'iDx7', 'tablet'], 'iDx10': ['Digma', 'iDx10', 'tablet'], 'iDx10 3G': ['Digma', 'iDx10', 'tablet'], 'DM009SH': ['Disney Mobile', 'DM009SH'], 'DM010SH': ['Disney Mobile', 'DM010SH'], 'DM012SH': ['Disney Mobile', 'DM012SH'], 'F-08D': ['Disney Mobile', 'F-08D'], 'P-05D': ['Disney Mobile', 'P-05D'], 'Tablet-P27': ['DracoTek', 'P27 Tablet', 'tablet'], 'edgejr': ['EnTourage', 'Pocket eDGe', 'tablet'], 'l97D': ['EPad', 'l97D', 'tablet'], 'M4301': ['Eston', 'MID M4301', 'media'], 'P10AN': ['Exper', 'Easypad P10AN', 'tablet'], 'FIH-F0X': ['FIH', 'F0X'], 'Fly IQ260': ['Fly', 'IQ260 BlackBird'], 'ISW11F': ['Fujitsu', 'Arrows Z'], 'ISW13F': ['Fujitsu', 'Arrows Z'], 'IS12F': ['Fujitsu', 'Arrows ES'], 'F-01D': ['Fujitsu', 'Arrows Tab LTE', 'tablet'], 'F-03D': ['Fujitsu', 'Arrows Kiss'], 'F-05D': ['Fujitsu', 'Arrows X LTE'], 'F-07D': ['Fujitsu', 'Arrows \u00c3\ufffd\u00c2\u00bc'], 'F-10D': ['Fujitsu', 'Arrows X F-10D'], 'F-12C': ['Fujitsu', 'Globetrotter'], 'f12arc': ['Fujitsu', 'F12arc'], 'M532': ['Fujitsu', 'Stylistic M532', 'tablet'], 'Garminfone': ['Garmin-Asus', 'Garminfone'], 'Garmin-Asus A10': ['Garmin-Asus', 'Nuvifone A10'], 'Garmin-Asus A50': ['Garmin-Asus', 'Nuvifone A50'], 'TPA60W': ['Gateway', 'TPA60W', 'tablet'], 'Geeksphone ZERO': ['Geeksphone', 'ZERO'], 'gemei G2': ['Gemei', 'G2', 'tablet'], 'Gemei G2': ['Gemei', 'G2', 'tablet'], 'gemei G3': ['Gemei', 'G3', 'tablet'], 'Gemei G9': ['Gemei', 'G9', 'tablet'], 'GSmart G1317D': ['Gigabyte', 'GSmart G1317D'], 'Gigabyte TB100': ['Gigabyte', 'TB100', 'tablet'], 'GN100': ['Gionee', 'GN100'], 'GN105': ['Gionee', 'GN105'], 'GN106': ['Gionee', 'GN106'], 'GN200': ['Gionee', 'GN200'], 'GN205': ['Gionee', 'GN205'], 'GN700W': ['Gionee', 'GN700W'], 'GN708W': ['Gionee', 'GN708W'], 'Google Ion': ['Google', 'Ion'], 'Nexus One': ['Google', 'Nexus One'], 'NexusOne': ['Google', 'Nexus One'], 'HTC Nexus One': ['Google', 'Nexus One'], 'Nexus S': ['Google', 'Nexus S'], 'Google Nexus S': ['Google', 'Nexus S'], 'Nexus S 4G': ['Google', 'Nexus S 4G'], 'Dooderbutt-4.0.3-v1': ['Google', 'Nexus S 4G'], 'Nexus 7': ['Google', 'Nexus 7', 'tablet'], 'Haier HW-W910': ['Haier', 'HW-W910'], 'SN10T1': ['HANNspree', 'HANNSpad SN10T1', 'tablet'], 'SN10T2': ['HANNspree', 'HANNSpad SN10T2', 'tablet'], 'HannsComb': ['HANNspree', 'HANNSpad', 'tablet'], 'X1': ['HCL', 'ME X1', 'tablet'], 'MID Serails': ['Herotab', 'C8', 'tablet'], 'MID Serials': ['Herotab', 'C8', 'tablet'], 'COSMO DUO': ['Hiscreen', 'Cosmo DUO', 'tablet'], 'HS-U8': ['Hisense', 'U8'], 'HS-T92': ['Hisense', 'T92'], 'HS-E860': ['Hisense', 'E860'], 'HS-E910': ['Hisense', 'E910'], 'HS-E926': ['Hisense', 'E926'], 'HS-EG900': ['Hisense', 'EG900'], 'HS-ET919': ['Hisense', 'ET919'], 'EG968B': ['Hisense', 'EG968B'], 'HKPHONE H8-3G': ['HKPhone', 'H8 3G'], 'HOSIN U2': ['Hosin', 'U2'], 'Touchpad': ['HP', 'TouchPad', 'tablet'], 'HP Touchpad': ['HP', 'TouchPad', 'tablet'], 'cm tenderloin': ['HP', 'TouchPad', 'tablet'], 'aokp tenderloin': ['HP', 'TouchPad', 'tablet'], 'HTC Amaze 4G': ['HTC', 'Amaze 4G'], 'HTC Ruby': ['HTC', 'Amaze 4G'], 'HTC Amaze 4G(Ruby)': ['HTC', 'Amaze 4G'], 'Amaze 4G': ['HTC', 'Amaze 4G'], 'HTC Aria': ['HTC', 'Aria'], 'HTC Aria A6380': ['HTC', 'Aria'], 'HTC Liberty A6380': ['HTC', 'Aria'], 'HTC Liberty': ['HTC', 'Aria'], 'HTC A6366': ['HTC', 'Aria'], 'HTC Bee': ['HTC', 'Bee'], 'HTC ChaCha': ['HTC', 'ChaCha'], 'HTC ChaCha A810e': ['HTC', 'ChaCha'], 'HTC ChaChaCha A810e': ['HTC', 'ChaCha'], 'HTC A810e': ['HTC', 'ChaCha'], 'HTC A9188': ['HTC', 'Tianxi'], 'HTC Bravo': ['HTC', 'Desire'], 'HTC Desire': ['HTC', 'Desire'], 'HTC Desire A8181': ['HTC', 'Desire'], 'HTC Desire A8183': ['HTC', 'Desire'], 'HTC Desire Beats A8181': ['HTC', 'Desire'], 'HTC Desire CDMA': ['HTC', 'Desire'], 'HTC Desire SMS': ['HTC', 'Desire'], 'HTC Desire S.M.S': ['HTC', 'Desire'], 'HTC Desire C': ['HTC', 'Desire C'], 'HTC DesireHD': ['HTC', 'Desire HD'], 'HTC DesireHD A9191': ['HTC', 'Desire HD'], 'HTC DesireHD A9192': ['HTC', 'Desire HD'], 'HTC Desire HD A9191': ['HTC', 'Desire HD'], 'HTC A9191': ['HTC', 'Desire HD'], 'HTC A9191 for AT&T': ['HTC', 'Desire HD'], 'HTC A9192': ['HTC', 'Desire HD'], 'HTC Desire HD': ['HTC', 'Desire HD'], 'HTC Desire HD with Beats Audio': ['HTC', 'Desire HD'], 'HTC Desire S': ['HTC', 'Desire S'], 'HTC DesireS': ['HTC', 'Desire S'], 'HTC DesiresS': ['HTC', 'Desire S'], 'HTC DesireS S510e': ['HTC', 'Desire S'], 'HTC DesireS S510b': ['HTC', 'Desire S'], 'HTC Desire S S510e': ['HTC', 'Desire S'], 'HTC S510e': ['HTC', 'Desire S'], 'HTC Desire Saga': ['HTC', 'Desire S'], 'HTC Desire V': ['HTC', 'Desire V'], 'HTC T328w': ['HTC', 'Desire V'], 'HTC Desire VC': ['HTC', 'Desire VC'], 'HTC T328d': ['HTC', 'Desire VC'], 'HTC T328t': ['HTC', 'Desire VT'], 'HTC Desire Z': ['HTC', 'Desire Z'], 'HTC DesireZ': ['HTC', 'Desire Z'], 'HTC DesireZ A7272': ['HTC', 'Desire Z'], 'HTC Desire Z A7272': ['HTC', 'Desire Z'], 'HTC Vision': ['HTC', 'Desire Z'], 'HTC A7275': ['HTC', 'Desire Z'], 'HTC Dream': ['HTC', 'Dream'], 'HTC S710d': ['HTC', 'Droid Incredible 2'], 'HTC Incredible 2': ['HTC', 'Droid Incredible 2'], 'HTC X515d': ['HTC', 'EVO 3D'], 'HTC X515m': ['HTC', 'EVO 3D'], 'HTC X515C': ['HTC', 'EVO 3D'], 'HTC Evo 3D': ['HTC', 'EVO 3D'], 'HTC EVO 3D': ['HTC', 'EVO 3D'], 'HTC EVO 3D GSM': ['HTC', 'EVO 3D'], 'HTC EVO 3D X515a': ['HTC', 'EVO 3D'], 'HTC EVO 3D GSM X515m': ['HTC', 'EVO 3D'], 'HTC EVO 3D X515m': ['HTC', 'EVO 3D'], 'HTC EVO 3D X515M': ['HTC', 'EVO 3D'], 'HTC EVO3D X515a': ['HTC', 'EVO 3D'], 'HTC EVO3D X515m': ['HTC', 'EVO 3D'], 'HTC Evo 3D X515m': ['HTC', 'EVO 3D'], 'HTC Evo 3D with Beats Audio X515m': ['HTC', 'EVO 3D'], 'HTC Evo 4G': ['HTC', 'EVO 4G'], 'HTC EVO 4G': ['HTC', 'EVO 4G'], 'HTC X515E': ['HTC', 'EVO 4G+'], 'HTC EVO 4G+ For Sprint': ['HTC', 'EVO 4G+'], 'HTC EVO 4G++ For Sprint': ['HTC', 'EVO 4G+'], 'HTC C715c': ['HTC', 'EVO Design 4G'], 'HTC Design 4G': ['HTC', 'EVO Design 4G'], 'HTC EVO design 4G': ['HTC', 'EVO Design 4G'], 'HTC EVO Design 4G': ['HTC', 'EVO Design 4G'], 'HTC Evo Shift': ['HTC', 'EVO Shift'], 'HTC EVO Shift 4G': ['HTC', 'EVO Shift'], 'HTC A310e': ['HTC', 'Explorer'], 'HTC Explorer': ['HTC', 'Explorer'], 'HTC Explorer A310b': ['HTC', 'Explorer'], 'HTC Explorer A310e': ['HTC', 'Explorer'], 'HTC P510e': ['HTC', 'Flyer', 'tablet'], 'HTC Flyer': ['HTC', 'Flyer', 'tablet'], 'HTC Flyer P510e': ['HTC', 'Flyer', 'tablet'], 'HTC Flyer P512': ['HTC', 'Flyer', 'tablet'], 'HTC Flyer P512 NA': ['HTC', 'Flyer', 'tablet'], 'HTC P515E': ['HTC', 'Flyer 4G', 'tablet'], 'HTC Gratia A6380': ['HTC', 'Gratia'], 'HTC HD': ['HTC', 'HD'], 'HTC HD2': ['HTC', 'HD2'], 'HTC HD2 T8585': ['HTC', 'HD2'], 'HTC HD2(Leo)': ['HTC', 'HD2'], 'HTC HD7': ['HTC', 'HD7'], 'HTC T9299+': ['HTC', 'HD7'], 'HTC HD7 for Sprint': ['HTC', 'HD7'], 'HTC HD7 4G T9299 For AT&T': ['HTC', 'HD7'], 'HTC HD7 4G T9299+ For AT&T': ['HTC', 'HD7'], 'HTC T9299+ For AT&T': ['HTC', 'HD7'], 'HTC HD7S T9399+': ['HTC', 'HD7s'], 'HTC HD7S T9899+': ['HTC', 'HD7s'], 'HTC T9899+ For AT&T': ['HTC', 'HD7s'], 'VitMod ExtraLite 1.6.5.fullodex for HTC HD7 Pro': ['HTC', 'HD7 Pro'], 'HTC Hero': ['HTC', 'Hero'], 'HTC HERO': ['HTC', 'Hero'], 'HTC Hero CDMA': ['HTC', 'Hero'], 'HTC HERO CDMA': ['HTC', 'Hero'], 'HTC HERO200': ['HTC', 'Hero 200'], 'HTC Hero S': ['HTC', 'Hero S'], 'HTC IMAGIO': ['HTC', 'Imagio'], 'HTC Incredible': ['HTC', 'Incredible'], 'HTC Incredible S710E': ['HTC', 'Incredible S'], 'HTC S710e': ['HTC', 'Incredible S'], 'HTC Incredible S': ['HTC', 'Incredible S'], 'HTC Incredible S S710e': ['HTC', 'Incredible S'], 'HTC Incredible S s710e': ['HTC', 'Incredible S'], 'HTC IncredibleS S710e': ['HTC', 'Incredible S'], 'HTC Incredible S with Beats Audio': ['HTC', 'Incredible S'], 'HTC Vivo': ['HTC', 'Incredible S'], 'HTC Innovation': ['HTC', 'Innovation'], 'HTC Inspire 4G': ['HTC', 'Inspire 4G'], 'HTC HD7 Inspire 4G For Vodafone': ['HTC', 'Inspire 4G'], 'HTC P715a': ['HTC', 'Jetstream', 'tablet'], 'HTC Legend': ['HTC', 'Legend'], 'HTC Magic': ['HTC', 'Magic'], 'HTC Sapphire': ['HTC', 'Magic'], 'HTC Lexikon': ['HTC', 'Merge'], 'HTC One S': ['HTC', 'One S'], 'HTC Z520e': ['HTC', 'One S'], 'HTC One V': ['HTC', 'One V'], 'HTC T320e': ['HTC', 'One V'], 'HTC One X': ['HTC', 'One X'], 'HTC S720e': ['HTC', 'One X'], 'HTC Endeavour-LS': ['HTC', 'One X'], 'HTC One XL': ['HTC', 'One XL'], 'HTC X710a': ['HTC', 'Raider 4G'], 'HTC Raider': ['HTC', 'Raider 4G'], 'HTC Raider X710e': ['HTC', 'Raider 4G'], 'HTC Raider X710s': ['HTC', 'Raider 4G'], 'HTC Raider 4G X710e': ['HTC', 'Raider 4G'], 'HTC PH39100': ['HTC', 'Raider 4G'], 'HTC Holiday': ['HTC', 'Raider 4G'], 'HTC Velocity 4G X710s': ['HTC', 'Raider 4G'], 'HTC Rezound': ['HTC', 'Rezound'], 'HTC Rhyme S510b': ['HTC', 'Rhyme'], 'HTC S510b': ['HTC', 'Rhyme'], 'HTC Bliss': ['HTC', 'Rhyme'], 'HTC Bliss S510b': ['HTC', 'Rhyme'], 'HTC Salsa C510e': ['HTC', 'Salsa'], 'HTC C510e': ['HTC', 'Salsa'], 'HTC Z710a': ['HTC', 'Sensation'], 'HTC Z710e': ['HTC', 'Sensation'], 'HTC Z710t': ['HTC', 'Sensation'], 'HTC Sensation': ['HTC', 'Sensation'], 'HTC Sensation Z710': ['HTC', 'Sensation'], 'HTC Sensation Z710a': ['HTC', 'Sensation'], 'HTC Sensation Z710e': ['HTC', 'Sensation'], 'HTC Sensation Z710E': ['HTC', 'Sensation'], 'HTC Sensation Z710e For AT&T': ['HTC', 'Sensation'], 'HTC Sensation Z710e with Beats Audio': ['HTC', 'Sensation'], 'HTC Sensation with Beats Audio Z710e': ['HTC', 'Sensation'], 'HTC Sensation with Beats Audio': ['HTC', 'Sensation'], 'HTC Sensation Taste': ['HTC', 'Sensation'], 'HTC Pyramid': ['HTC', 'Sensation'], 'HTC Pyramid Z710a': ['HTC', 'Sensation'], 'HTC Pyramid Z710e': ['HTC', 'Sensation'], 'HTC Sensation 4G': ['HTC', 'Sensation'], 'HTC Sensation 4G with Beats Audio': ['HTC', 'Sensation'], 'HTC Sensation G14': ['HTC', 'Sensation'], 'HTC Sensation G14 for AT&T': ['HTC', 'Sensation'], 'HTC G14 sensation': ['HTC', 'Sensation'], 'HTC Z715e': ['HTC', 'Sensation XE'], 'HTC Sensation Z715e': ['HTC', 'Sensation XE'], 'HTC SensationXE Beats': ['HTC', 'Sensation XE'], 'HTC SensationXE Beats Z715a': ['HTC', 'Sensation XE'], 'HTC SensationXE Beats Z715e': ['HTC', 'Sensation XE'], 'HTC Sensation XE': ['HTC', 'Sensation XE'], 'HTC Sensation XE Z715e': ['HTC', 'Sensation XE'], 'HTC SensationXE Z715e': ['HTC', 'Sensation XE'], 'HTC Sensation XE Beats': ['HTC', 'Sensation XE'], 'HTC SensationXE with Beats Audio': ['HTC', 'Sensation XE'], 'HTC Sensation XE with Beats Audio': ['HTC', 'Sensation XE'], 'HTC Sensation XE with Beats Audio Z715a': ['HTC', 'Sensation XE'], 'HTC Sensation Juredroid XE Beats Audio': ['HTC', 'Sensation XE'], 'HTC Sensation XE with Beats Audio Z715e': ['HTC', 'Sensation XE'], 'HTC Sensation XE With Beats Audio Z715e': ['HTC', 'Sensation XE'], 'HTC Sensation 4G XE with Beats Audio': ['HTC', 'Sensation XE'], 'HTC Sensation with Beats Audio Z715e': ['HTC', 'Sensation XE'], 'HTC X315E': ['HTC', 'Sensation XL'], 'HTC SensationXL Beats X315b': ['HTC', 'Sensation XL'], 'HTC SensationXL Beats X315e': ['HTC', 'Sensation XL'], 'HTC Sensation XL with Beats Audio X315b': ['HTC', 'Sensation XL'], 'HTC Sensation XL with Beats Audio X315e': ['HTC', 'Sensation XL'], 'HTC Runnymede': ['HTC', 'Sensation XL'], 'HTC G21': ['HTC', 'Sensation XL'], 'HTC PH06130': ['HTC', 'Status'], 'HTC Status': ['HTC', 'Status'], 'HTC Tattoo': ['HTC', 'Tattoo'], 'HTC TATTOO A3288': ['HTC', 'Tattoo'], 'HTC click': ['HTC', 'Tattoo'], 'HTC X310e': ['HTC', 'Titan'], 'HTC T7373': ['HTC', 'Touch Pro II'], 'HTC ThunderBolt': ['HTC', 'ThunderBolt'], 'HTC Mecha': ['HTC', 'ThunderBolt'], 'HTC Velocity 4G': ['HTC', 'Velocity 4G'], 'HTC Wildfire': ['HTC', 'Wildfire'], 'HTC Wildfire A3333': ['HTC', 'Wildfire'], 'HTC A3366': ['HTC', 'Wildfire'], 'HTC A3380': ['HTC', 'Wildfire'], 'HTC WildfireS': ['HTC', 'Wildfire S'], 'HTC Wildfire S': ['HTC', 'Wildfire S'], 'Htc Wildfire s': ['HTC', 'Wildfire S'], 'HTC Wildfire S A510e': ['HTC', 'Wildfire S'], 'HTC Wildfire S A510b': ['HTC', 'Wildfire S'], 'HTC WildfireS A510e': ['HTC', 'Wildfire S'], 'HTC WildfireS A510b': ['HTC', 'Wildfire S'], 'htc wildfire s a510e': ['HTC', 'Wildfire S'], 'HTC Wildfire S A515c': ['HTC', 'Wildfire S'], 'HTC A510a': ['HTC', 'Wildfire S'], 'HTC A510e': ['HTC', 'Wildfire S'], 'HTC A510c': ['HTC', 'Wildfire S'], 'HTCX06HT': ['HTC', 'Desire'], 'HTC A6390': ['HTC', 'A6390'], 'HTC A8180': ['HTC', 'A8180'], 'HTC PG762': ['HTC', 'PG762'], 'HTC S715e': ['HTC', 'S715e'], 'HTC S720t': ['HTC', 'S720t'], 'HTC Z510d': ['HTC', 'Z510d'], 'HTC Z560e': ['HTC', 'Z560e'], 'HTC VLE U': ['HTC', 'One S'], 'HTC VLE#U': ['HTC', 'One S'], 'HTC VIE U': ['HTC', 'One S'], 'HTC EVA UL': ['HTC', 'One V'], 'HTC ENR U': ['HTC', 'One X'], 'ENR U': ['HTC', 'One X'], 'EndeavorU': ['HTC', 'One X'], 'Liberty': ['HTC', 'Aria'], 'Desire': ['HTC', 'Desire'], 'Desire A8181': ['HTC', 'Desire'], 'desire hd': ['HTC', 'Desire HD'], 'Desire HD': ['HTC', 'Desire HD'], 'Dedire HD': ['HTC', 'Desire HD'], 'Desire Hd (ace)': ['HTC', 'Desire HD'], 'Desire S': ['HTC', 'Desire S'], 'DesireS': ['HTC', 'Desire S'], 'Desire Saga': ['HTC', 'Desire S'], 'Desire Z': ['HTC', 'Desire Z'], 'Dream': ['HTC', 'Dream'], 'Droid Incredible': ['HTC', 'Droid Incredible'], 'EVO': ['HTC', 'EVO'], 'Evo HD2': ['HTC', 'EVO HD'], 'Evo 3D Beats X515m': ['HTC', 'EVO 3D'], 'Evo 3D GSM': ['HTC', 'EVO 3D'], 'EVO 3D X515m': ['HTC', 'EVO 3D'], 'EVO3D X515m': ['HTC', 'EVO 3D'], 'Evo 4G': ['HTC', 'EVO 4G'], 'EVO 4G': ['HTC', 'EVO 4G'], 'photon': ['HTC', 'HD mini'], 'GinDream\/GinMagic': ['HTC', 'Dream'], 'HD2': ['HTC', 'HD2'], 'HD7 Pro': ['HTC', 'HD7 Pro'], 'Hero': ['HTC', 'Hero'], 'HERO CDMA': ['HTC', 'Hero'], 'HERO200': ['HTC', 'Hero 200'], 'Incredible': ['HTC', 'Droid Incredible'], 'Incredible 2': ['HTC', 'Droid Incredible 2'], 'Incredible S': ['HTC', 'Incredible S'], 'IncredibleS S710e': ['HTC', 'Incredible S'], 'IncredibleS': ['HTC', 'Incredible S'], 'Inspire HD': ['HTC', 'Inspire 4G'], 'Inspire 4G': ['HTC', 'Inspire 4G'], 'Legend': ['HTC', 'Legend'], 'NexusHD2': ['HTC', 'HD2'], 'Nexus HD2': ['HTC', 'HD2'], 'Docomo HT-03A': ['HTC', 'Magic'], 'MIUI.us Sensation 4G': ['HTC', 'Sensation 4G'], 'SiRF Dream': ['HTC', 'Dream'], 'Pyramid': ['HTC', 'Sensation'], 'Sensation': ['HTC', 'Sensation'], 'Sensation Z710e': ['HTC', 'Sensation'], 'Sensation 4G': ['HTC', 'Sensation'], 'Sensation 4g': ['HTC', 'Sensation'], 'TripNiCE Pyramid': ['HTC', 'Sensation'], 'SensationXE Beats Z715e': ['HTC', 'Sensation XE'], 'SensationXL Beats X315e': ['HTC', 'Sensation XL'], 'Click': ['HTC', 'Tattoo'], 'Wildfire': ['HTC', 'Wildfire'], 'Wildfire S': ['HTC', 'Wildfire S'], 'Wildfire S A510e': ['HTC', 'Wildfire S'], 'Sprint APX515CKT': ['HTC', 'EVO 3D'], 'Sprint APA9292KT': ['HTC', 'EVO 4G'], 'Sprint APA7373KT': ['HTC', 'EVO Shift 4G'], 'Sprint APC715CKT': ['HTC', 'EVO Design 4G'], 'A3380': ['HTC', 'Wildfire'], 'A6277': ['HTC', 'Hero'], 'a7272': ['HTC', 'Desire Z'], 'A7272+(HTC DesireZ)': ['HTC', 'Desire Z'], 'S31HT': ['HTC', 'Aria'], 'S710d': ['HTC', 'Droid Incredible 2'], 'S710D': ['HTC', 'Droid Incredible 2'], 'X06HT': ['HTC', 'Desire'], '001HT': ['HTC', 'Desire HD'], 'X325a': ['HTC', 'One X'], 'Z520m': ['HTC', 'One S'], 'Z710': ['HTC', 'Sensation'], 'Z710e': ['HTC', 'Sensation'], 'T9199h': ['HTC', 'T9199h'], 'HTC S610d': ['HTC', 'S610d'], 'ADR6200': ['HTC', 'Droid Eris'], 'ADR6300': ['HTC', 'Droid Incredible'], 'ADR6325VW': ['HTC', 'Merge'], 'ADR6330VW': ['HTC', 'Rhyme'], 'ADR6350': ['HTC', 'Droid Incredible 2'], 'ADR6400L': ['HTC', 'Thunderbolt 4G'], 'ADR6400L 4G': ['HTC', 'Thunderbolt 4G'], 'ADR6410LVW 4G': ['HTC', 'Fireball'], 'ADR6425LVW': ['HTC', 'Rezound'], 'ADR6425LVW 4G': ['HTC', 'Rezound'], 'Coquettish Red': ['HTC', 'Rezound'], 'PB99400': ['HTC', 'Droid Incredible'], 'pcdadr6350': ['HTC', 'Droid Incredible 2'], 'PC36100': ['HTC', 'EVO 4G'], 'PG06100': ['HTC', 'EVO Shift 4G'], 'PG41200': ['HTC', 'EVO View 4G', 'tablet'], 'PG86100': ['HTC', 'EVO 3D'], 'PG8610000': ['HTC', 'EVO 3D'], 'PH44100': ['HTC', 'EVO Design 4G'], 'PJ83100': ['HTC', 'One X'], 'ISW11HT': ['HTC', 'EVO 4G'], 'ISW12HT': ['HTC', 'EVO 3D'], 'ISW13HT': ['HTC', 'J'], 'USCCADR6275US Carrier ID 45': ['HTC', 'Desire'], 'USCCADR6285US': ['HTC', 'Hero S'], 'USCCADR6325US Carrier ID 45': ['HTC', 'Merge'], 'MediaPad': ['Huawei', 'MediaPad', 'tablet'], 'Huawei MediaPad': ['Huawei', 'MediaPad', 'tablet'], 'HUAWEI MediaPad': ['Huawei', 'MediaPad', 'tablet'], 'Huawei S7-312u': ['Huawei', 'MediaPad', 'tablet'], 'MediaPad 10 FHD': ['Huawei', 'MediaPad', 'tablet'], 'Huawei C8500': ['Huawei', 'C8500'], 'Huawei C8500S': ['Huawei', 'C8500'], 'Huawei C8600': ['Huawei', 'C8600'], 'Huawei C8650': ['Huawei', 'C8650'], 'Huawei C8650+': ['Huawei', 'C8650'], 'Huawei C8800': ['Huawei', 'IDEOS X5'], 'Huawei C8810': ['Huawei', 'Ascend G300'], 'Huawei C8812': ['Huawei', 'Ascend C8812'], 'Huawei C8812E': ['Huawei', 'Ascend C8812'], 'Huawei C8825D': ['Huawei', 'Ascend C8825D'], 'Huawei C8860E': ['Huawei', 'Honor'], 'Huawei M835': ['Huawei', 'M835'], 'Huawei M860': ['Huawei', 'Ascend'], 'Huawei M921': ['Huawei', 'M921'], 'Huawei S8520': ['Huawei', 'S8520'], 'Huawei S8600': ['Huawei', 'S8600'], 'Huawei T8300': ['Huawei', 'T8300'], 'Huawei T8600': ['Huawei', 'T8600'], 'Huawei T8830': ['Huawei', 'T8830'], 'T8830': ['Huawei', 'T8830'], 'T8620': ['Huawei', 'T8620'], 'Huawei T8828': ['Huawei', 'T8828'], 'Huawei U8220': ['Huawei', 'U8220'], 'Huawei u8500': ['Huawei', 'IDEOS X2'], 'Huawei U8815': ['Huawei', 'Ascend G300'], 'Huawei U8825D': ['Huawei', 'Ascend G330D'], 'Huawei U8850': ['Huawei', 'Vision'], 'Huawei U8652': ['Huawei', 'Sonic'], 'Huawei U8800-51': ['Huawei', 'IDEOS X5'], 'Huawei U8818': ['Huawei', 'Ascend G300'], 'Huawei U9000': ['Huawei', 'Ascend X'], 'Huawei IDEOS U8500': ['Huawei', 'IDEOS X2'], 'Huawei IDEOS U8650': ['Huawei', 'Sonic'], 'Huawei IDEOS X3': ['Huawei', 'IDEOS X3'], 'Huawei Ideos X5': ['Huawei', 'IDEOS X5'], 'Huawei Ideos X5 1.12.9(ret4rt)': ['Huawei', 'IDEOS X5'], 'Huawei SONIC': ['Huawei', 'Sonic'], 'Huawei 8100-9': ['Huawei', 'U8100'], 'FUSIONideos': ['Huawei', 'IDEOS'], 'Gnappo Ideos': ['Huawei', 'IDEOS'], 'Ideos': ['Huawei', 'IDEOS'], 'IDEOS X5': ['Huawei', 'IDEOS X5'], 'Ideos S7': ['Huawei', 'IDEOS S7', 'tablet'], 'IDEOS S7': ['Huawei', 'IDEOS S7', 'tablet'], 'IDEOS S7 Slim': ['Huawei', 'IDEOS S7', 'tablet'], 'Huawei S7': ['Huawei', 'IDEOS S7', 'tablet'], 'SONIC': ['Huawei', 'Sonic'], 'Kyivstar Aqua': ['Huawei', 'Sonic'], 'Lucky Ultra Sonic U8650': ['Huawei', 'Sonic'], 'Turkcell T20': ['Huawei', 'Sonic'], 'MTC 950': ['Huawei', 'U8160'], 'MTC 955': ['Huawei', 'Sonic'], 'MTC Evo': ['Huawei', 'C8500'], 'MTC Android': ['Huawei', 'U8110'], 'S31HW': ['Huawei', 'Pocket WiFi S'], 'S41HW': ['Huawei', 'Pocket WiFi S II'], '007HW': ['Huawei', 'Vision'], 'UM840': ['Huawei', 'Evolution'], 'M860': ['Huawei', 'Ascend'], 'M865': ['Huawei', 'Ascend II'], 'M886': ['Huawei', 'Glory'], 'C8150': ['Huawei', 'IDEOS'], 'c8500': ['Huawei', 'C8500'], 'C8500': ['Huawei', 'C8500'], 'C8500S': ['Huawei', 'C8500'], 'C8600': ['Huawei', 'C8600'], 'c8650': ['Huawei', 'C8650'], 'C8650': ['Huawei', 'C8650'], 'c8800': ['Huawei', 'C8800'], 'C8800': ['Huawei', 'C8800'], 'c8810': ['Huawei', 'Ascend G300C'], 'C8812': ['Huawei', 'Ascend C8812'], 'S8600': ['Huawei', 'S8600'], 'U8100': ['Huawei', 'U8100'], 'U8110': ['Huawei', 'U8110'], 'u8120': ['Huawei', 'U8120'], 'U8120': ['Huawei', 'U8120'], 'U8180': ['Huawei', 'IDEOS X1'], 'U8220': ['Huawei', 'Pulse'], 'U8300': ['Huawei', 'U8300'], 'U8350': ['Huawei', 'Boulder'], 'U8150': ['Huawei', 'IDEOS'], 'U8160': ['Huawei', 'U8160'], 'U8500': ['Huawei', 'IDEOS X2'], 'U8500 HiQQ': ['Huawei', 'U8500 HiQQ Edition'], 'U8510': ['Huawei', 'IDEOS X3'], 'u8650': ['Huawei', 'Sonic'], 'U8650': ['Huawei', 'Sonic'], 'U8650-1': ['Huawei', 'Sonic'], 'U8660': ['Huawei', 'Sonic'], 'u8800': ['Huawei', 'IDEOS X5'], 'U8800': ['Huawei', 'IDEOS X5'], 'U8800+': ['Huawei', 'IDEOS X5'], 'U8800X': ['Huawei', 'IDEOS X5'], 'U8800pro': ['Huawei', 'IDEOS X5 Pro'], 'U8800PRO': ['Huawei', 'IDEOS X5 Pro'], 'U8800Pro': ['Huawei', 'IDEOS X5 Pro'], 'u8800pro': ['Huawei', 'IDEOS X5 Pro'], 'U8800 Pro': ['Huawei', 'IDEOS X5 Pro'], 'U8818': ['Huawei', 'Ascend G300'], 'U8850': ['Huawei', 'Vision'], 'u8860': ['Huawei', 'Honor'], 'U8860': ['Huawei', 'Honor'], 'U9000': ['Huawei', 'Ascend X'], 'U9200': ['Huawei', 'Ascend P1'], 'U9200-1': ['Huawei', 'Ascend P1'], 'U9500': ['Huawei', 'Ascend D1'], 'U9501L': ['Huawei', 'Ascend D LTE'], 'U9510': ['Huawei', 'Ascend D quad'], 'U9510E': ['Huawei', 'Ascend D quad'], 'Comet': ['Huawei', 'Comet'], 'GS02': ['Huawei', 'Honor'], 'GS03': ['Huawei', 'Ascend P1'], 'DroniX-0.5': ['Huawei', 'U8180'], 'MTS-SP101': ['Huawei', 'C8511'], 'TSP21': ['Huawei', 'U8110'], 'HYUNDAI H6': ['Hyundai', 'Storm H6'], 'iBall Slide i7011': ['iBall', 'Slide i7011'], 'NetTAB RUNE': ['IconBit', 'NetTab Rune', 'tablet'], 'D70W': ['Icoo', 'D70W', 'tablet'], 'D80': ['Icoo', 'D80', 'tablet'], 'INFOBAR A01': ['iida', 'INFOBAR A01'], 'M009F': ['Infotmic', 'M009F'], 'AZ210A': ['Intel', 'AZ210A'], 'AZ210B': ['Intel', 'AZ210B'], 'AZ510': ['Intel', 'AZ510'], 'greenridge': ['Intel', 'Green Ridge', 'tablet'], 'INQ Cloud Touch': ['INQ', 'Cloud Touch'], 'ILT-MX100': ['iRiver', 'Tab', 'tablet'], 'IVIO_DE38': ['Ivio', 'DE38'], 'JY-G2': ['Jiayu', 'G2'], 'JXD S601WIFI': ['JXD', 'S601 WIFI', 'media'], 'A2': ['KakaTech', 'A2'], 'D91': ['KK', 'D91', 'tablet'], 'K080': ['Kobo', 'K080', 'ereader'], 'A106': ['koobee', 'A160'], 'KPT A9': ['KPT', 'A9'], 'EV-S100': ['Kttech', 'Take EV-S100'], 'KM-S120': ['Kttech', 'Take 2 KM-S120'], 'KM-S200': ['TAKE', 'Janus KM-S200'], 'KM-S220': ['Kttech', 'Take Tachy KM-S220'], 'Kyobo mirasol eReader': ['Kyobo', 'eReader', 'ereader'], 'ISW11K': ['Kyocera', 'Digno'], 'JC-KSP8000': ['Kyocera', 'Echo'], 'KSP8000': ['Kyocera', 'Echo'], 'Zio': ['Kyocera', 'Zio'], 'C5155': ['Kyocera', 'C5155'], 'C5170': ['Kyocera', 'C5170'], 'M9300': ['Kyocera', 'M9300'], 'E800': ['K-Touch', 'E800'], 'W606': ['K-Touch', 'W606'], 'K-Touch T619': ['K-Touch', 'T619'], 'K-Touch W619': ['K-Touch', 'W619'], 'K-Touch W650': ['K-Touch', 'W650'], 'W700': ['K-Touch', 'W700'], 'W800': ['K-Touch', 'W800'], 'W806': ['K-Touch', 'W806'], 'W808': ['K-Touch', 'W808'], 'W810': ['K-Touch', 'W810'], 'X900': ['Lava', 'XOLO X900'], 'Lenovo A798t': ['Lenovo', 'A798t'], 'LENOVO-Lenovo-A288t': ['Lenovo', 'LePhone A288'], 'ThinkPad Tablet': ['Lenovo', 'ThinkPad Tablet', 'tablet'], 'K1': ['Lenovo', 'IdeaPad K1', 'tablet'], 'Ideapad S10-3T': ['Lenovo', 'IdeaPad S10-3T', 'tablet'], 'S2005A-H': ['Lenovo', 'S2005A'], 'IdeaTab S2007A-D': ['Lenovo', 'IdeaTab S2007A', 'tablet'], 'IdeaTabV2007A': ['Lenovo', 'IdeaTab V2007A', 'tablet'], 'IdeaTabV2007A-D-I': ['Lenovo', 'IdeaTab V2007A', 'tablet'], 'IdeaTabV2010A': ['Lenovo', 'IdeaTab V2010A', 'tablet'], 'IdeaTab A2107A-H': ['Lenovo', 'IdeaTab V2107A', 'tablet'], 'A1 07': ['Lenovo', 'LePad', 'tablet'], 'lepad 001b': ['Lenovo', 'LePad', 'tablet'], 'lepad 001n': ['Lenovo', 'LePad', 'tablet'], '3GC101': ['Lenovo', 'LePhone 3GC101'], 'Lenovo 3GC101': ['Lenovo', 'LePhone 3GC101'], '3GW100': ['Lenovo', 'LePhone 3GW100'], 'Lenovo 3GW100': ['Lenovo', 'LePhone 3GW100'], '3GW101': ['Lenovo', 'LePhone 3GW101'], 'Lenovo 3GW101': ['Lenovo', 'LePhone 3GW101'], 'Lephone 3GW101': ['Lenovo', 'LePhone 3GW101'], 'Lenovo A1-32AB0': ['Lenovo', 'LePhone A1-32AB0'], 'Lenovo S1-37AH0': ['Lenovo', 'LePhone S1-37AH0'], 'S1 37AHO': ['Lenovo', 'LePhone S1-37AH0'], 'Lenovo S2-38AH0': ['Lenovo', 'LePhone S2-38AH0'], 'Lenovo S2-38AT0': ['Lenovo', 'LePhone S2-38AT0'], 'Lenovo A288t': ['Lenovo', 'LePhone A288'], 'Lenovo A366t': ['Lenovo', 'LePhone A366'], 'Lenovo A390e': ['Lenovo', 'LePhone A390'], 'Lenovo A500': ['Lenovo', 'LePhone A500'], 'Lenovo A520': ['Lenovo', 'LePhone A520'], 'Lenovo A560e': ['Lenovo', 'A560'], 'Lenovo A668t': ['Lenovo', 'LePhone A668'], 'Lenovo A698t': ['Lenovo', 'LePhone A698'], 'Lenovo A750': ['Lenovo', 'LePhone A750'], 'Lenovo A780': ['Lenovo', 'LePhone A780'], 'Lenovo A789': ['Lenovo', 'LePhone A789'], 'Lenovo A790e': ['Lenovo', 'LePhone A790'], 'Lenovo P70': ['Lenovo', 'LePhone P70'], 'Lenovo P700': ['Lenovo', 'LePhone P700'], 'Lenovo S850e': ['Lenovo', 'S850'], 'Lenovo S880': ['Lenovo', 'S880'], 'Lenovo K860': ['Lenovo', 'K860'], 'A30t': ['Lenovo', 'A30t'], 'Lenovo A60': ['Lenovo', 'A60'], 'Lenovo A65': ['Lenovo', 'A65'], 'Lenovo A66t': ['Lenovo', 'A66t'], 'Lenovo A68e': ['Lenovo', 'A68e'], 'Lenovo K800': ['Lenovo', 'K800'], 'IDEA TV T100': ['Lenovo', 'IDEA TV', 'television'], 'IDEA TV K91': ['Lenovo', 'IDEA TV', 'television'], 'TC970': ['Le Pan', 'TC970', 'tablet'], 'LePanII': ['Le Pan', 'II', 'tablet'], 'LG-C555': ['LG', 'Optimus Chat'], 'LG-C555-parrot': ['LG', 'Optimus Chat'], 'LG-C660h': ['LG', 'Optimus Pro'], 'LG-C729': ['LG', 'DoublePlay'], 'LG-C800G': ['LG', 'Eclypse'], 'LG-CX670': ['LG', 'Optimus 3G'], 'LG-E400': ['LG', 'Optimus L3'], 'LG-E400f': ['LG', 'Optimus L3'], 'LG-E510': ['LG', 'Optimus Hub'], 'LG-E510f': ['LG', 'Optimus Hub'], 'LG-E510g': ['LG', 'Optimus Hub'], 'LG-E610': ['LG', 'Optimus L5'], 'LG-E612': ['LG', 'Optimus L5'], 'LG-E612g': ['LG', 'Optimus L5'], 'LG-E615F': ['LG', 'E615'], 'LG-E617G': ['LG', 'E617'], 'LG-E720': ['LG', 'Optimus Chic'], 'LG-E720b': ['LG', 'Optimus Chic'], 'LG-E730': ['LG', 'Optimus Sol'], 'LG-E970': ['LG', 'Shine'], 'LG-F100L': ['LG', 'Optimus Vu'], 'LG-F100S': ['LG', 'Optimus Vu'], 'LG-F120K': ['LG', 'Optimus LTE Tag'], 'LG-F120L': ['LG', 'Optimus LTE Tag'], 'LG-F120S': ['LG', 'Optimus LTE Tag'], 'LG-F160K': ['LG', 'Optimus LTE II'], 'LG-F160L': ['LG', 'Optimus LTE II'], 'LG-F160S': ['LG', 'Optimus LTE II'], 'LG-F180L': ['LG', 'F180L'], 'LG-GT540': ['LG', 'Optimus'], 'LG-GT540f': ['LG', 'Optimus'], 'LG-GT540 Swift': ['LG', 'Optimus'], 'LG-GW620': ['LG', 'GW620'], 'LG-KH5200': ['LG', 'Andro-1'], 'LG-KU3700': ['LG', 'Optimus One'], 'LG-KU5400': ['LG', 'PRADA 3.0'], 'LG-KU5900': ['LG', 'Optimus Black'], 'LG-L40G': ['LG', 'L40G'], 'LG-LG855': ['LG', 'Marquee'], 'LG-LS670': ['LG', 'Optimus S'], 'LG-LS696': ['LG', 'Optimus Elite'], 'LG-LS840': ['LG', 'Viper 4G'], 'LG-LS855': ['LG', 'Marquee'], 'LG-LS860': ['LG', '\'Cayenne\''], 'LG-LS970': ['LG', '\'Eclipse\''], 'LG-LU3000': ['LG', 'Optimus Mach'], 'LG-LU3100': ['LG', 'Optimus Chic'], 'LG-LU3700': ['LG', 'Optimus One'], 'LG-LU5400': ['LG', 'PRADA 3.0'], 'LG-LU6200': ['LG', 'Optimus Q2'], 'LG-lu6200': ['LG', 'Optimus Q2'], 'LG-LU6500': ['LG', 'Optimus Note'], 'LG-LU6800': ['LG', 'Optimus Big'], 'LG-LU8300': ['LG', 'Optimus Pad LTE'], 'LG-LW690': ['LG', 'Optimus C'], 'LG-LW770': ['LG', 'LW770'], 'LG-MS690': ['LG', 'Optimus M'], 'LG-MS770': ['LG', 'MS770'], 'LG-MS840': ['LG', 'Connect 4G'], 'LG-MS910': ['LG', 'Esteem'], 'LG-MS695': ['LG', 'Optimus M+'], 'LG P350': ['LG', 'Optimus Me'], 'LG-P350': ['LG', 'Optimus Me'], 'LG-P350f': ['LG', 'Optimus Me'], 'LG-P350g': ['LG', 'Optimus Me'], 'LG-P355': ['LG', 'P355'], 'LG-P500': ['LG', 'Optimus One'], 'LG-P500h': ['LG', 'Optimus One'], 'LG-P500h-parrot': ['LG', 'Optimus One'], 'LG-P503': ['LG', 'Optimus One'], 'LG-P504': ['LG', 'Optimus One'], 'LG-P505': ['LG', 'Phoenix'], 'LG-P505R': ['LG', 'Phoenix'], 'LG-P506': ['LG', 'Thrive'], 'LG-P509': ['LG', 'Optimus T'], 'LG-P690': ['LG', 'Optimus Net'], 'LG-P693': ['LG', 'P693'], 'LG-P698': ['LG', 'Optimus Net'], 'LG-P698f': ['LG', 'Optimus Net'], 'LG-P700': ['LG', 'Optimus L7'], 'LG-P705': ['LG', 'Optimus L7'], 'LG-P705f': ['LG', 'Optimus L7'], 'LG-P705g': ['LG', 'Optimus L7'], 'LG-P708g': ['LG', 'P708'], 'LG-P720': ['LG', 'Optimus Chic'], 'LG-P720h': ['LG', 'Optimus Chic'], 'LG-P725': ['LG', 'Optimus 3D Max'], 'LG-P760': ['LG', 'P760'], 'LG-P769': ['LG', 'P769'], 'LG-P860': ['LG', 'P860'], 'LG-P870': ['LG', 'P870'], 'LG-P870F': ['LG', 'P870'], 'LG-P880': ['LG', 'X3'], 'LG-P880g': ['LG', 'X3'], 'LG-P895': ['LG', 'P895'], 'LG-P920': ['LG', 'Optimus 3D'], 'LG-P920h': ['LG', 'Optimus 3D'], 'LG-P925': ['LG', 'Thrill'], 'LG-P925g': ['LG', 'Thrill'], 'LG-P930': ['LG', 'Nitro HD'], 'LG-P936': ['LG', 'Optimus LTE'], 'LG-P940': ['LG', 'PRADA 3.0'], 'LG-P970': ['LG', 'Optimus Black'], 'LG-P970h': ['LG', 'Optimus Black'], 'LG-P990': ['LG', 'Optimus 2X Speed'], 'LG-P990h': ['LG', 'Optimus 2X Speed'], 'LG-P990hN': ['LG', 'Optimus 2X Speed'], 'LG-P990H': ['LG', 'Optimus 2X Speed'], 'LG-P993': ['LG', 'Optimus 2X'], 'LG-SU540': ['LG', 'PRADA 3.0'], 'LG-SU640': ['LG', 'Optimus LTE'], 'LG-SU660': ['LG', 'Optimus 2X'], 'LG-SU760': ['LG', 'Optimus 3D'], 'LG-SU760-Kust': ['LG', 'Optimus 3D'], 'LG-SU870': ['LG', 'Optimus 3D Cube'], 'LG-SU880': ['LG', 'Optimus EX'], 'LG-US670': ['LG', 'Optimus U'], 'LG-US730': ['LG', 'US730'], 'LG-V900': ['LG', 'Optimus Pad', 'tablet'], 'LG-V905R': ['LG', 'Optimus G-Slate', 'tablet'], 'LG-V909': ['LG', 'Optimus G-Slate', 'tablet'], 'LG-VM670': ['LG', 'Optimus V'], 'LG-VM696': ['LG', 'Optimus Elite'], 'LG-VM701': ['LG', 'Optimus Slider'], 'LG-VS660': ['LG', 'Vortex'], 'LG-VS700': ['LG', 'Enlighten'], 'LG-VS740': ['LG', 'Ally'], 'LG-VS840': ['LG', 'Connect 4G'], 'LG-VS910': ['LG', 'Revolution'], 'lgp-970': ['LG', 'Optimus Black'], 'E900': ['LG', 'Optimus 7'], 'GT540': ['LG', 'Optimus GT540'], 'GW620': ['LG', 'GW620'], 'KU9500': ['LG', 'Optimus Z'], 'LGC660': ['LG', 'Optimus Pro'], 'LGL45C': ['LG', 'Optimus Net'], 'LGL55C': ['LG', 'Optimus Q'], 'LU2300': ['LG', 'Optimus Q'], 'LS670': ['LG', 'Optimus S'], 'P940': ['LG', 'PRADA 3.0'], 'P990': ['LG', 'Optimus 2X Speed'], 'USCC-US730': ['LG', 'US730'], 'USCC-US760': ['LG', 'Genesis'], 'VM670': ['LG', 'Optimus V'], 'VS840 4G': ['LG', 'Connect 4G'], 'VS900-4G': ['LG', 'VS900'], 'VS910 4G': ['LG', 'Revolution 4G'], 'VS920 4G': ['LG', 'Spectrum 4G'], 'VS930 4G': ['LG', 'VS930'], 'VS950 4G': ['LG', 'VS950'], 'L-01D': ['LG', 'Optimus LTE'], 'L-02D': ['LG', 'PRADA phone'], 'L-04C': ['LG', 'Optimus Chat'], 'L-05D': ['LG', 'Optimus it'], 'L-06C': ['LG', 'Optimus Pad', 'tablet'], 'L-06D': ['LG', 'Optimus Vu'], 'L-07C': ['LG', 'Optimus Bright'], 'LG-Eve': ['LG', 'Eve'], 'LG-Optimus One P500': ['LG', 'Optimus One'], 'LG-Optimus 2X': ['LG', 'Optimus 2X'], 'LG-GT540 Optimus': ['LG', 'Optimus'], 'LG-Optimus Black': ['LG', 'Optimus Black'], 'Ally': ['LG', 'Ally'], 'Optimus': ['LG', 'Optimus'], 'Optimus Me': ['LG', 'Optimus Me'], 'optimus me p350': ['LG', 'Optimus Me'], 'Optimus 2X': ['LG', 'Optimus 2X'], 'Optimus 2x': ['LG', 'Optimus 2X'], 'IS11LG': ['LG', 'Optimus X'], 'Vortex': ['LG', 'Vortex'], 'LDK-ICK v1.4': ['LG', 'Esteem'], 'T6': ['Malata', 'Zpad T6', 'tablet'], 'Malata SMBA1002': ['Malata', 'Tablet SMB-A1002', 'tablet'], 'STM712HCZ': ['Mediacom', 'SmartPad 712c', 'tablet'], 'STM803HC': ['Mediacom', 'SmartPad 810c', 'tablet'], 'Mediacom 810C': ['Mediacom', 'SmartPad 810c', 'tablet'], 'Smartpad810c': ['Mediacom', 'SmartPad 810c', 'tablet'], 'SmartPad810c': ['Mediacom', 'SmartPad 810c', 'tablet'], 'MP810C': ['Mediacom', 'SmartPad 810c', 'tablet'], 'MP907C': ['Mediacom', 'SmartPad 907c', 'tablet'], 'MTK6516': ['Mediatek', 'MTK6516'], 'LIFETAB S9512': ['Medion', 'Lifetab S9512', 'tablet'], 'LIFETAB P9514': ['Medion', 'Lifetab P9514', 'tablet'], 'MD LIFETAB P9516': ['Medion', 'Lifetab P9516', 'tablet'], 'MEDION LIFE P4310': ['Medion', 'Life P4310'], 'M8': ['Meizu', 'M8'], 'M9': ['Meizu', 'M9'], 'M040': ['Meizu', 'M040'], 'M9-unlocked': ['Meizu', 'M9'], 'meizu m9': ['Meizu', 'M9'], 'MEIZU M9': ['Meizu', 'M9'], 'MEIZU MX': ['Meizu', 'MX'], 'M030': ['Meizu', 'MX M030'], 'M031': ['Meizu', 'MX M031'], 'M032': ['Meizu', 'MX M032'], 'Slidepad': ['Memup', 'Slidepad', 'tablet'], 'A45': ['Micromax', 'A45 Punk'], 'Micromax A50': ['Micromax', 'A50 Ninja'], 'Micromax A60': ['Micromax', 'Andro A60'], 'Micromax A70': ['Micromax', 'Andro A70'], 'P300(Funbook)': ['Micromax', 'Funbook P300', 'tablet'], 'AT735': ['Moinstone', 'AT735', 'tablet'], 'A853': ['Motorola', 'Milestone'], 'A953': ['Motorola', 'Milestone 2'], 'A1680': ['Motorola', 'MOTO A1680'], 'ET1': ['Motorola', 'ET1 Enterprise Tablet', 'tablet'], 'MB200': ['Motorola', 'CLIQ'], 'MB300': ['Motorola', 'BACKFLIP'], 'MB501': ['Motorola', 'CLIQ XT'], 'MB502': ['Motorola', 'CHARM'], 'MB511': ['Motorola', 'FLIPOUT'], 'MB520': ['Motorola', 'BRAVO'], 'MB525': ['Motorola', 'DEFY'], 'MB525+': ['Motorola', 'DEFY'], 'MB525 for me': ['Motorola', 'DEFY'], 'MB526': ['Motorola', 'DEFY+'], 'MB611': ['Motorola', 'CLIQ 2'], 'MB612': ['Motorola', 'XPRT'], 'MB632': ['Motorola', 'PRO+'], 'MB855': ['Motorola', 'PHOTON 4G'], 'MB860': ['Motorola', 'ATRIX'], 'MB861': ['Motorola', 'ATRIX'], 'mb861': ['Motorola', 'ATRIX'], 'MB865': ['Motorola', 'ATRIX 2'], 'MB870': ['Motorola', 'Droid X2'], 'MB886': ['Motorola', 'DINARA'], 'ME501': ['Motorola', 'CLIQ XT'], 'ME511': ['Motorola', 'FLIPOUT'], 'me525': ['Motorola', 'MOTO ME525'], 'Me525': ['Motorola', 'MOTO ME525'], 'ME525': ['Motorola', 'MOTO ME525'], 'ME525+': ['Motorola', 'MOTO ME525'], 'ME600': ['Motorola', 'BACKFLIP'], 'ME632': ['Motorola', 'PRO+'], 'ME722': ['Motorola', 'Milestone 2'], 'ME811': ['Motorola', 'Droid X'], 'ME860': ['Motorola', 'ATRIX'], 'ME863': ['Motorola', 'Milestone 3'], 'ME865': ['Motorola', 'ATRIX 2'], 'MT620': ['Motorola', 'MOTO MT620'], 'MT620t': ['Motorola', 'MOTO MT620'], 'MT716': ['Motorola', 'MOTO MT716'], 'MT810': ['Motorola', 'MOTO MT810'], 'MT870': ['Motorola', 'MOTO MT870'], 'MT917': ['Motorola', 'MT917'], 'MZ505': ['Motorola', 'XOOM Family Edition', 'tablet'], 'MZ600': ['Motorola', 'XOOM 4G LTE', 'tablet'], 'MZ601': ['Motorola', 'XOOM 3G', 'tablet'], 'MZ602': ['Motorola', 'XOOM 4G LTE', 'tablet'], 'MZ603': ['Motorola', 'XOOM 3G', 'tablet'], 'MZ604': ['Motorola', 'XOOM WiFi', 'tablet'], 'MZ605': ['Motorola', 'XOOM 3G', 'tablet'], 'MZ606': ['Motorola', 'XOOM WiFi', 'tablet'], 'MZ607': ['Motorola', 'XOOM 2 WiFi Media Edition', 'tablet'], 'MZ609': ['Motorola', 'Droid XYBOARD 8.2', 'tablet'], 'MZ609 4G': ['Motorola', 'Droid XYBOARD 8.2', 'tablet'], 'MZ615': ['Motorola', 'XOOM 2 WiFi', 'tablet'], 'MZ617': ['Motorola', 'Droid XYBOARD 10.1', 'tablet'], 'MZ617 4G': ['Motorola', 'Droid XYBOARD 10.1', 'tablet'], 'WX435': ['Motorola', 'TRIUMPH WX435'], 'WX445': ['Motorola', 'CITRUS WX445'], 'XT300': ['Motorola', 'SPICE'], 'XT301': ['Motorola', 'MOTO XT301'], 'XT311': ['Motorola', 'FIRE'], 'XT316': ['Motorola', 'MOTO XT316'], 'XT319': ['Motorola', 'MOTO XT319'], 'XT390': ['Motorola', 'MOTO XT390'], 'XT320': ['Motorola', 'DEFY Mini'], 'XT321': ['Motorola', 'DEFY Mini'], 'XT500': ['Motorola', 'MOTO XT500'], 'xt-500': ['Motorola', 'MOTO XT500'], 'XT502': ['Motorola', 'QUENCH XT5'], 'XT530': ['Motorola', 'FIRE XT'], 'XT531': ['Motorola', 'FIRE XT'], 'XT532': ['Motorola', 'XT532'], 'XT535': ['Motorola', 'DEFY'], 'XT550': ['Motorola', 'XT550'], 'XT556': ['Motorola', 'XT556'], 'XT603': ['Motorola', 'ADMIRAL'], 'XT610': ['Motorola', 'Droid Pro'], 'XT615': ['Motorola', 'MOTO XT615'], 'XT626': ['Motorola', 'MOTO XT626'], 'XT681': ['Motorola', 'MOTO XT681'], 'XT682': ['Motorola', 'Droid 3'], 'XT685': ['Motorola', 'MOTO XT685'], 'XT687': ['Motorola', 'ATRIX TV'], 'XT701': ['Motorola', 'XT701'], 'XT702': ['Motorola', 'MOTO XT702'], 'XT711': ['Motorola', 'MOTO XT711'], 'XT720': ['Motorola', 'Milestone'], 'XT875': ['Motorola', 'Droid Bionic'], 'XT800': ['Motorola', 'MOTO XT800'], 'XT800+': ['Motorola', 'MOTO XT800'], 'XT800W': ['Motorola', 'MOTO Glam'], 'XT806': ['Motorola', 'MOTO XT806'], 'XT860': ['Motorola', 'Milestone 3'], 'XT862': ['Motorola', 'Droid 3'], 'XT882': ['Motorola', 'MOTO XT882'], 'XT883': ['Motorola', 'Milestone 3'], 'XT889': ['Motorola', 'XT889'], 'XT897': ['Motorola', 'Droid 4'], 'XT901': ['Motorola', 'RAZR'], 'XT910': ['Motorola', 'RAZR'], 'XT910K': ['Motorola', 'RAZR'], 'XT910S': ['Motorola', 'RAZR'], 'XT910 4G': ['Motorola', 'RAZR'], 'XT912': ['Motorola', 'Droid RAZR'], 'XT923': ['Motorola', 'Droid RAZR HD'], 'XT925': ['Motorola', 'Droid RAZR HD'], 'XT926': ['Motorola', 'Droid RAZR'], 'XT926 4G': ['Motorola', 'Droid RAZR'], 'XT928': ['Motorola', 'XT928'], 'Atrix 2': ['Motorola', 'ATRIX 2'], 'Atrix 4g': ['Motorola', 'ATRIX 4G'], 'Atrix 4G': ['Motorola', 'ATRIX 4G'], 'Atrix 4G ME860': ['Motorola', 'ATRIX 4G'], 'CLIQ': ['Motorola', 'CLIQ'], 'CLIQ XT': ['Motorola', 'CLIQ XT'], 'CLIQ2': ['Motorola', 'CLIQ 2'], 'Corvair': ['Motorola', 'Corvair', 'tablet'], 'DEFY': ['Motorola', 'DEFY'], 'Defy+': ['Motorola', 'DEFY+'], 'Defy Plus': ['Motorola', 'DEFY+'], 'Devour': ['Motorola', 'Devour'], 'Dext': ['Motorola', 'Dext'], 'Droid': ['Motorola', 'Droid'], 'DROID': ['Motorola', 'Droid'], 'DROID2': ['Motorola', 'Droid 2'], 'DROID2 GLOBAL': ['Motorola', 'Droid 2'], 'DROID2 Global': ['Motorola', 'Droid 2'], 'Droid2Global': ['Motorola', 'Droid 2'], 'DROID 2': ['Motorola', 'Droid 2'], 'DROID3': ['Motorola', 'Droid 3'], 'DROID4': ['Motorola', 'Droid 4'], 'DROID4 4G': ['Motorola', 'Droid 4'], 'DROID Pro': ['Motorola', 'Droid Pro'], 'DROID BIONIC': ['Motorola', 'Droid Bionic'], 'DROID BIONIC 4G': ['Motorola', 'Droid Bionic'], 'DROID BIONIC XT875 4G': ['Motorola', 'Droid Bionic'], 'DROIDRAZR': ['Motorola', 'Droid RAZR'], 'Droid Razr': ['Motorola', 'Droid RAZR'], 'DROID RAZR': ['Motorola', 'Droid RAZR'], 'DROID RAZR 4G': ['Motorola', 'Droid RAZR'], 'DROID SPYDER': ['Motorola', 'Droid RAZR'], 'DROID RAZR HD': ['Motorola', 'Droid RAZR HD'], 'DROID RAZR HD 4G': ['Motorola', 'Droid RAZR HD'], 'DroidX': ['Motorola', 'Droid X'], 'DROIDX': ['Motorola', 'Droid X'], 'droid x': ['Motorola', 'Droid X'], 'Droid X': ['Motorola', 'Droid X'], 'DROID X': ['Motorola', 'Droid X'], 'DROID X2': ['Motorola', 'Droid X2'], 'Electrify': ['Motorola', 'Electrify'], 'Milestone XT720': ['Motorola', 'Milestone'], 'Milestone Xt720': ['Motorola', 'Milestone'], 'Milestone': ['Motorola', 'Milestone'], 'A853 Milestone': ['Motorola', 'Milestone'], 'Milestone X': ['Motorola', 'Milestone X'], 'Milestone X2': ['Motorola', 'Milestone X2'], 'MotoroiX': ['Motorola', 'Droid X'], 'Moto Backflip': ['Motorola', 'BACKFLIP'], 'RAZR': ['Motorola', 'RAZR'], 'Triumph': ['Motorola', 'TRIUMPH'], 'Opus One': ['Motorola', 'i1'], 'Photon': ['Motorola', 'PHOTON'], 'Photon 4G': ['Motorola', 'PHOTON 4G'], 'XOOM': ['Motorola', 'XOOM', 'tablet'], 'Xoom': ['Motorola', 'XOOM', 'tablet'], 'XOOM 2': ['Motorola', 'XOOM 2', 'tablet'], 'XOOM 2 ME': ['Motorola', 'XOOM 2', 'tablet'], 'XOOM MZ606': ['Motorola', 'XOOM WiFi', 'tablet'], 'ISW11M': ['Motorola', 'PHOTON'], 'IS12M': ['Motorola', 'RAZR'], 'MOTWX435KT': ['Motorola', 'TRIUMPH'], 'X3-Ice MIUI XT720 Memorila Classics': ['Motorola', 'Milestone'], 'NABI-A': ['Nabi', 'Kids tablet', 'tablet'], 'Newpad': ['Newsmy', 'Newpad', 'tablet'], 'Newpad-K97': ['Newsmy', 'Newpad K97', 'tablet'], 'Newpad P9': ['Newsmy', 'Newpad P9', 'tablet'], 'M-PAD N8': ['Newsmy', 'M-pad N8', 'tablet'], 'LT-NA7': ['NEC', 'LT-NA7'], 'N-01D': ['NEC', 'MEDIAS PP N-01D'], 'N-04C': ['NEC', 'MEDIAS N-04C'], 'N-04D': ['NEC', 'MEDIAS LTE N-04D'], 'N-05D': ['NEC', 'MEDIAS ES N-05D'], 'N-06C': ['NEC', 'MEDIAS WP N-06C'], 'N-06D': ['NEC', 'MEDIAS Tab N-06D', 'tablet'], 'N-07D': ['NEC', 'MEDIAS X N-07D'], '101N': ['NEC', 'MEDIAS CH Softbank 101N'], 'IS11N': ['NEC', 'MEDIAS BR IS11N'], 'Nexian NX-A890': ['Nexian', 'Journey'], 'NX-A891': ['Nexian', 'Ultra Journey'], 'M726HC': ['Nextbook', 'Premium 7', 'ereader'], 'NXM726HN': ['Nextbook', 'Premium 7', 'ereader'], 'NXM803HD': ['Nextbook', 'Premium 8', 'ereader'], 'DATAM803HC': ['Nextbook', 'Premium 8', 'ereader'], 'NXM901': ['Nextbook', 'Next 3', 'ereader'], 'NGM Vanity Smart': ['NGM', 'Vanity Smart'], 'Nokia N9': ['Nokia', 'N9'], 'Nokia N900': ['Nokia', 'N900'], 'Lumia800': ['Nokia', 'Lumia 800'], 'Lumia 900': ['Nokia', 'Lumia 900'], 'Notion Ink ADAM': ['Notion Ink', 'ADAM', 'tablet'], 'P4D SIRIUS': ['Nvsbl', 'P4D SIRIUS', 'tablet'], 'P4D Sirius': ['Nvsbl', 'P4D SIRIUS', 'tablet'], 'EFM710A': ['Oblio', 'Mint 7x', 'tablet'], 'ODYS-Xpress': ['Odys', 'Xpress', 'tablet'], 'Olivetti Olipad 100': ['Olivetti', 'Olipad 100', 'tablet'], 'OP110': ['Olivetti', 'Olipad 110', 'tablet'], 'ONDA MID': ['Onda', 'MID', 'tablet'], 'VX580A': ['Onda', 'VX580A', 'tablet'], 'VX610A': ['Onda', 'VX610A', 'tablet'], 'TQ150': ['Onda', 'TQ150'], 'N2T': ['ONN', 'N2T', 'tablet'], 'Renesas': ['Opad', 'Renesas', 'tablet'], 'renesas emev': ['Opad', 'Renesas', 'tablet'], 'X903': ['Oppo', 'Find Me X903'], 'X905': ['Oppo', 'Find 3 X905'], 'R805': ['Oppo', 'R805'], 'R801': ['Oppo', 'R801'], 'R811': ['Oppo', 'R811'], 'X909': ['Oppo', 'X909'], 'OPPOR801': ['Oppo', 'R801'], 'OPPOX905': ['Oppo', 'Find 3 X905'], 'OPPOX907': ['Oppo', 'Find 3 X907'], 'X907': ['Oppo', 'Find 3 X907'], 'X9015': ['Oppo', 'Find X9015'], 'OPPOX9017': ['Oppo', 'Finder X9017'], 'OPPOU701': ['Oppo', 'OPPOU701'], 'OPPOR807': ['Oppo', 'Real R807'], 'OPPOR805': ['Oppo', 'Real R805'], 'R807': ['Oppo', 'Real R807'], 'OPPOT703': ['Oppo', 'T703'], 'P-01D': ['Panasonic', 'P-01D'], 'P-02D': ['Panasonic', 'Lumix Phone'], 'P-04D': ['Panasonic', 'Eluga'], 'P-07C': ['Panasonic', 'P-07C'], 'dL1': ['Panasonic', 'Eluga dL1'], '101P': ['Panasonic', 'Lumix Phone'], 'JT-H580VT': ['Panasonic', 'BizPad 7', 'tablet'], 'JT-H581VT': ['Panasonic', 'BizPad 10', 'tablet'], 'FZ-A1A': ['Panasonic', 'Toughpad', 'tablet'], 'pandigital9hr': ['Pandigital', '9HR', 'tablet'], 'pandigital9hr2': ['Pandigital', '9HR2', 'tablet'], 'pandigitalopc1': ['Pandigital', 'OPC1', 'tablet'], 'pandigitalopp1': ['Pandigital', 'OPP1', 'tablet'], 'pandigitalp1hr': ['Pandigital', 'p1hr', 'tablet'], 'IM-A600S': ['Pantech', 'SIRIUS \u00c3\ufffd\u00c2\u00b1'], 'IM-A630K': ['Pantech', 'SKY Izar'], 'IM-A690L': ['Pantech', 'SKY'], 'IM-A690S': ['Pantech', 'SKY'], 'IM-A710K': ['Pantech', 'SKY Vega Xpress'], 'IM-A720L': ['Pantech', 'SKY Vega Xpress'], 'IM-A725L': ['Pantech', 'SKY Vega X+'], 'IM-A730s': ['Pantech', 'SKY Vega S'], 'IM-A730S': ['Pantech', 'SKY Vega S'], 'IM-A750K': ['Pantech', 'SKY Mirach A'], 'IM-A760S': ['Pantech', 'SKY Vega Racer'], 'IM-A770K': ['Pantech', 'SKY Vega Racer'], 'IM-A780L': ['Pantech', 'SKY Vega Racer'], 'IM-A800S': ['Pantech', 'SKY Vega LTE'], 'IM-A810K': ['Pantech', 'SKY Vega LTE M'], 'IM-A810S': ['Pantech', 'SKY Vega LTE M'], 'IM-A820L': ['Pantech', 'SKY Vega LTE EX'], 'IM-A830K': ['Pantech', 'SKY Vega Racer 2'], 'IM-A830L': ['Pantech', 'SKY Vega Racer 2'], 'IM-A830S': ['Pantech', 'SKY Vega Racer 2'], 'IM-A840S': ['Pantech', 'SKY Vega S5'], 'IM-A850K': ['Pantech', 'IM-A850K'], 'IM-T100K': ['Pantech', 'SKY Vega No. 5', 'tablet'], 'IS06': ['Pantech', 'SIRIUS \u00c3\ufffd\u00c2\u00b1'], 'ADR8995': ['Pantech', 'Breakout'], 'ADR8995 4G': ['Pantech', 'Breakout'], 'ADR910L 4G': ['Pantech', 'ADR910L'], 'PantechP4100': ['Pantech', 'Element', 'tablet'], 'PantechP8000': ['Pantech', 'Crossover'], 'PantechP8010': ['Pantech', 'P8010'], 'PantechP9060': ['Pantech', 'Pocket'], 'PantechP9070': ['Pantech', 'Burst'], 'SKY IM-A600S': ['Pantech', 'SIRIUS \u00c3\ufffd\u00c2\u00b1'], 'SKY IM-A630K': ['Pantech', 'SKY Izar'], 'SKY IM-A650S': ['Pantech', 'SKY Vega'], 'IS11PT': ['Pantech', 'Mirach IS11PT'], 'PAT712W': ['Perfeo', 'PAT712W', 'tablet'], 'X7G': ['Pearl', 'Touchlet X7G', 'tablet'], 'FWS810': ['PHICOMM', 'FWS810'], 'Philips PI5000': ['Philips', 'PI5000', 'tablet'], 'PI7000': ['Philips', 'PI7000', 'tablet'], 'Philips W626': ['Philips', 'W626'], 'Philips W632': ['Philips', 'W632'], 'MOMO': ['Ployer', 'MOMO', 'tablet'], 'MOMO15': ['Ployer', 'MOMO15', 'tablet'], 'PocketBook A7': ['PocketBook', 'A7', 'tablet'], 'PocketBook A10': ['PocketBook', 'A10', 'tablet'], 'Mobii 7': ['Point Of View', 'Mobii 7', 'tablet'], 'PMP3384BRU': ['Prestigio', 'Multipad 3384', 'tablet'], 'TB07FTA': ['Positivo', 'TB07FTA', 'tablet'], 'QW TB-1207': ['Qware', 'Pro3', 'tablet'], 'W6HD ICS': ['Ramos', 'W6HD', 'tablet'], 'w10': ['Ramos', 'W10', 'tablet'], 'W10': ['Ramos', 'W10', 'tablet'], 'w10 v2.0': ['Ramos', 'W10 v2.0', 'tablet'], 'W10 V2.0': ['Ramos', 'W10 v2.0', 'tablet'], 'T11AD': ['Ramos', 'T11AD', 'tablet'], 'T11AD.FE': ['Ramos', 'T11AD', 'tablet'], 'PlayBook': ['RIM', 'BlackBerry PlayBook', 'tablet'], 'RBK-490': ['Ritmix', 'RBK-490', 'tablet'], 'A8HD': ['Saayi', 'Dropad A8HD', 'tablet'], 'GT-S7568': ['Samsung', 'S7568'], 'Galaxy Nexus': ['Samsung', 'Galaxy Nexus'], 'GT-B5330': ['Samsung', 'GT-B5330'], 'GT-B5510': ['Samsung', 'Galaxy Y Pro'], 'GT-B5510B': ['Samsung', 'Galaxy Y Pro'], 'GT-B5510L': ['Samsung', 'Galaxy Y Pro'], 'GT-B5512': ['Samsung', 'Galaxy Y Pro Duos'], 'GT-B7510': ['Samsung', 'Galaxy Pro'], 'GT-B7510L': ['Samsung', 'Galaxy Pro'], 'GT-I5500': ['Samsung', 'Galaxy 5'], 'GT-I5500B': ['Samsung', 'Galaxy 5'], 'GT-I5500L': ['Samsung', 'Galaxy 5'], 'GT-I5500M': ['Samsung', 'Galaxy 5'], 'GT-I5500-MR3': ['Samsung', 'Galaxy 5'], 'GT-I5503': ['Samsung', 'Galaxy 5'], 'GT-I5508': ['Samsung', 'Galaxy 5'], 'GT-I5510': ['Samsung', 'Galaxy 551'], 'GT-I5510L': ['Samsung', 'Galaxy 551'], 'GT-I5510M': ['Samsung', 'Galaxy 551'], 'GT-I5510T': ['Samsung', 'Galaxy 551'], 'GT-I5700': ['Samsung', 'Galaxy Spica'], 'GT-I5700L': ['Samsung', 'Galaxy Spica'], 'GT-I5800': ['Samsung', 'Galaxy Apollo'], 'GT-I5800D': ['Samsung', 'Galaxy Apollo'], 'GT-I5800L': ['Samsung', 'Galaxy Apollo'], 'GT-I5801': ['Samsung', 'Galaxy Apollo'], 'GT-I6500U': ['Samsung', 'Saturn'], 'GT-I8000': ['Samsung', 'Omnia 2'], 'GT-I8150': ['Samsung', 'Galaxy W'], 'GT-I8150B': ['Samsung', 'Galaxy W'], 'GT-I8160': ['Samsung', 'Galaxy Ace 2'], 'GT-I8160L': ['Samsung', 'Galaxy Ace 2'], 'GT-I8160P': ['Samsung', 'Galaxy Ace 2'], 'GT-I8320': ['Samsung', 'H1'], 'GT-I8520': ['Samsung', 'Galaxy Beam'], 'GT-I8530': ['Samsung', 'Galaxy Beam'], 'GT-I8250': ['Samsung', 'Galaxy Beam'], 'GT-i9000': ['Samsung', 'Galaxy S'], 'GT-I9000': ['Samsung', 'Galaxy S'], 'GT-I9000B': ['Samsung', 'Galaxy S'], 'GT-I9000M': ['Samsung', 'Galaxy S Vibrant'], 'GT-I9000T': ['Samsung', 'Galaxy S'], 'GT-I9001': ['Samsung', 'Galaxy S Plus'], 'GT-I9003': ['Samsung', 'Galaxy SL'], 'GT-I9003L': ['Samsung', 'Galaxy SL'], 'GT-I9008': ['Samsung', 'Galaxy S'], 'GT-I9008L': ['Samsung', 'Galaxy S'], 'GT-I9010': ['Samsung', 'Galaxy S Giorgio Armani'], 'GT-I9018': ['Samsung', 'Galaxy GT-I9018'], 'GT-I9070': ['Samsung', 'Galaxy S Advance'], 'GT-I9070P': ['Samsung', 'Galaxy S Advance'], 'GT-I9082': ['Samsung', 'Galaxy Grand DUOS'], 'GT-I9088': ['Samsung', 'Galaxy S'], 'GT-i9100': ['Samsung', 'Galaxy S II'], 'GT-I9100': ['Samsung', 'Galaxy S II'], 'GT-I9100G': ['Samsung', 'Galaxy S II'], 'GT-I9100M': ['Samsung', 'Galaxy S II'], 'GT-I9100T': ['Samsung', 'Galaxy S II'], 'GT-I9100P': ['Samsung', 'Galaxy S II'], 'GT-I9103': ['Samsung', 'Galaxy R'], 'GT-I9108': ['Samsung', 'Galaxy S II'], 'GT-I9210': ['Samsung', 'Galaxy S II LTE'], 'GT-I9210T': ['Samsung', 'Galaxy S II LTE'], 'GT-I9220': ['Samsung', 'Galaxy Note'], 'GT-I9228': ['Samsung', 'Galaxy Note'], 'GT-I9250': ['Samsung', 'Galaxy Nexus'], 'GT-I9250 EUR XX': ['Samsung', 'Galaxy Nexus'], 'GT-I9260': ['Samsung', 'Galaxy Premier'], 'GT-I9300': ['Samsung', 'Galaxy S III'], 'GT-I9300T': ['Samsung', 'Galaxy S III'], 'GT-I9303T': ['Samsung', 'Galaxy S III'], 'GT-I9308': ['Samsung', 'Galaxy S III'], 'GT-I9500': ['Samsung', 'Galaxy GT-I9500'], 'GT-I9800': ['Samsung', 'Galaxy GT-I9800'], 'GT-N7000': ['Samsung', 'Galaxy Note'], 'GT-N7000B': ['Samsung', 'Galaxy Note'], 'GT-N7100': ['Samsung', 'Galaxy Note II'], 'GT-N7102': ['Samsung', 'Galaxy Note II'], 'GT-N8000': ['Samsung', 'Galaxy Note 10.1'], 'GT-N8010': ['Samsung', 'Galaxy Note 10.1'], 'GT-P1000': ['Samsung', 'Galaxy Tab', 'tablet'], 'GT-P1000L': ['Samsung', 'Galaxy Tab', 'tablet'], 'GT-P1000M': ['Samsung', 'Galaxy Tab', 'tablet'], 'GT-P1000N': ['Samsung', 'Galaxy Tab', 'tablet'], 'GT-P1000T': ['Samsung', 'Galaxy Tab', 'tablet'], 'GT-P1000 Tablet': ['Samsung', 'Galaxy Tab', 'tablet'], 'GT-P1010': ['Samsung', 'Galaxy Tab', 'tablet'], 'GT-P3100': ['Samsung', 'Galaxy Tab 2 (7.0)', 'tablet'], 'GT-P3100B': ['Samsung', 'Galaxy Tab 2 (7.0)', 'tablet'], 'GT-P3110': ['Samsung', 'Galaxy Tab 2 (7.0)', 'tablet'], 'GT-P3113': ['Samsung', 'Galaxy Tab 2 (7.0)', 'tablet'], 'GT-P5100': ['Samsung', 'Galaxy Tab 2 (10.1)', 'tablet'], 'GT-P5110': ['Samsung', 'Galaxy Tab 2 (10.1)', 'tablet'], 'GT-P5113': ['Samsung', 'Galaxy Tab 2 (10.1)', 'tablet'], 'GT-P6200': ['Samsung', 'Galaxy Tab 7.0 Plus', 'tablet'], 'GT-P6200L': ['Samsung', 'Galaxy Tab 7.0 Plus', 'tablet'], 'GT-P6201': ['Samsung', 'Galaxy Tab 7.0 Plus N', 'tablet'], 'GT-P6210': ['Samsung', 'Galaxy Tab 7.0 Plus', 'tablet'], 'GT-P6211': ['Samsung', 'Galaxy Tab 7.0 Plus N', 'tablet'], 'GT-P6800': ['Samsung', 'Galaxy Tab 7.7', 'tablet'], 'GT-P6810': ['Samsung', 'Galaxy Tab 7.7', 'tablet'], 'GT-P7100': ['Samsung', 'Galaxy Tab 10.1V', 'tablet'], 'GT-P7300': ['Samsung', 'Galaxy Tab 8.9', 'tablet'], 'GT-P7300B': ['Samsung', 'Galaxy Tab 8.9', 'tablet'], 'GT-P7310': ['Samsung', 'Galaxy Tab 8.9', 'tablet'], 'GT-P7320': ['Samsung', 'Galaxy Tab 8.9', 'tablet'], 'GT-P7320T': ['Samsung', 'Galaxy Tab 8.9', 'tablet'], 'GT-P7500': ['Samsung', 'Galaxy Tab 10.1', 'tablet'], 'GT-P7500D': ['Samsung', 'Galaxy Tab 10.1', 'tablet'], 'GT-P7500R': ['Samsung', 'Galaxy Tab 10.1', 'tablet'], 'GT-P7500V': ['Samsung', 'Galaxy Tab 10.1', 'tablet'], 'GT-P7501': ['Samsung', 'Galaxy Tab 10.1N', 'tablet'], 'GT-P7510': ['Samsung', 'Galaxy Tab 10.1', 'tablet'], 'GT-P7511': ['Samsung', 'Galaxy Tab 10.1N', 'tablet'], 'GT-S5300': ['Samsung', 'Galaxy Pocket'], 'GT-S5360': ['Samsung', 'Galaxy Y'], 'GT-S5360B': ['Samsung', 'Galaxy Y'], 'GT-S5360L': ['Samsung', 'Galaxy Y'], 'GT-S5363': ['Samsung', 'Galaxy Y'], 'GT-S5367': ['Samsung', 'Galaxy Y TV'], 'GT-S5368': ['Samsung', 'GT-S5368'], 'GT-S5369': ['Samsung', 'Galaxy Y'], 'GT-S5570': ['Samsung', 'Galaxy Mini'], 'GT-S5570B': ['Samsung', 'Galaxy Mini'], 'GT-S5570I': ['Samsung', 'Galaxy Mini'], 'GT-S5570L': ['Samsung', 'Galaxy Mini'], 'GT-S5578': ['Samsung', 'Galaxy Mini'], 'GT-S5660': ['Samsung', 'Galaxy Gio'], 'GT-S5660M': ['Samsung', 'Galaxy Gio'], 'GT-S5660V': ['Samsung', 'Galaxy Gio'], 'GT-S5670': ['Samsung', 'Galaxy Fit'], 'GT-S5670B': ['Samsung', 'Galaxy Fit'], 'GT-S5670L': ['Samsung', 'Galaxy Fit'], 'GT-S5690': ['Samsung', 'Galaxy Xcover'], 'GT-S5690L': ['Samsung', 'Galaxy Xcover'], 'GT-S5820': ['Samsung', 'Galaxy Ace'], 'GT-S5830': ['Samsung', 'Galaxy Ace'], 'GT-S5830B': ['Samsung', 'Galaxy Ace'], 'GT-S5830C': ['Samsung', 'Galaxy Ace'], 'GT-S5830D': ['Samsung', 'Galaxy Ace'], 'GT-S5830D-parrot': ['Samsung', 'Galaxy Ace'], 'GT-S5830i': ['Samsung', 'Galaxy Ace'], 'GT-S5830L': ['Samsung', 'Galaxy Ace'], 'GT-S5830M': ['Samsung', 'Galaxy Ace'], 'GT-S5830T': ['Samsung', 'Galaxy Ace'], 'GT-S5838': ['Samsung', 'Galaxy Ace'], 'GT-S5839i': ['Samsung', 'Galaxy Ace'], 'GT-S6102': ['Samsung', 'Galaxy Y Duos'], 'GT-S6102B': ['Samsung', 'Galaxy Y Duos'], 'GT-S6500': ['Samsung', 'Galaxy Mini 2'], 'GT-S6500D': ['Samsung', 'Galaxy Mini 2'], 'GT-S6702': ['Samsung', 'GT-S6702'], 'GT-S6802': ['Samsung', 'Galaxy Ace Duos'], 'GT-S7500': ['Samsung', 'Galaxy Ace Plus'], 'GT-S7500L': ['Samsung', 'Galaxy Ace Plus'], 'GT-S7500W': ['Samsung', 'Galaxy Ace Plus'], 'GT-T959': ['Samsung', 'Galaxy S Vibrant'], 'SCH-i509': ['Samsung', 'Galaxy Y'], 'SCH-i559': ['Samsung', 'Galaxy Pop'], 'SCH-i569': ['Samsung', 'Galaxy Gio'], 'SCH-i579': ['Samsung', 'Galaxy Ace'], 'SCH-i589': ['Samsung', 'Galaxy Ace Duos'], 'SCH-i705 4G': ['Samsung', 'Galaxy Tab 2 (7.0)', 'tablet'], 'SCH-i809': ['Samsung', 'SCH-i809'], 'SCH-i889': ['Samsung', 'Galaxy Note'], 'SCH-i909': ['Samsung', 'Galaxy S'], 'SCH-i919': ['Samsung', 'SCH-i919'], 'SCH-i929': ['Samsung', 'SCH-i929'], 'SCH-I100': ['Samsung', 'Gem'], 'SCH-I110': ['Samsung', 'Illusion'], 'SCH-I400': ['Samsung', 'Continuum'], 'SCH-I405': ['Samsung', 'Stratosphere'], 'SCH-I405 4G': ['Samsung', 'Stratosphere'], 'SCH-I500': ['Samsung', 'Fascinate'], 'SCH-I510': ['Samsung', 'Stealth V'], 'SCH-I510 4G': ['Samsung', 'Droid Charge'], 'SCH-I515': ['Samsung', 'Galaxy Nexus'], 'SCH-I535': ['Samsung', 'Galaxy S III'], 'SCH-I535 4G': ['Samsung', 'Galaxy S III'], 'SCH-I619': ['Samsung', 'SCH-I619'], 'SCH-I699': ['Samsung', 'SCH-I699'], 'SCH-I779': ['Samsung', 'SCH-I779'], 'SCH-I800': ['Samsung', 'Galaxy Tab 7.0', 'tablet'], 'SCH-I815': ['Samsung', 'Galaxy Tab 7.7', 'tablet'], 'SCH-I815 4G': ['Samsung', 'Galaxy Tab 7.7', 'tablet'], 'SCH-I905': ['Samsung', 'Galaxy Tab 10.1', 'tablet'], 'SCH-I905 4G': ['Samsung', 'Galaxy Tab 10.1', 'tablet'], 'SCH-I909': ['Samsung', 'Galaxy S'], 'SCH-I915': ['Samsung', 'SCH-I915'], 'SCH-I939': ['Samsung', 'Galaxy S III'], 'SCH-M828C': ['Samsung', 'Galaxy Precedent'], 'SCH-M828Carray(9096483449)': ['Samsung', 'Galaxy Precedent'], 'SCH-R530U': ['Samsung', 'Galaxy S III'], 'SCH-R680': ['Samsung', 'Repp'], 'SCH-R720': ['Samsung', 'Admire'], 'SCH-R730': ['Samsung', 'Transfix'], 'SCH-R760': ['Samsung', 'Galaxy S II'], 'SCH-R820': ['Samsung', 'SCH-R820'], 'SCH-R880': ['Samsung', 'Acclaim'], 'SCH-R910': ['Samsung', 'Galaxy Indulge 4G'], 'SCH-R915': ['Samsung', 'Galaxy Indulge'], 'SCH-R920': ['Samsung', 'Galaxy Attain 4G'], 'SCH-R930': ['Samsung', 'Galaxy S Aviator'], 'SCH-R940': ['Samsung', 'Galaxy S Lightray'], 'SCH-S720C': ['Samsung', 'Galaxy Proclaim'], 'SCH-S735C': ['Samsung', 'SCH-S735'], 'SCH-W899': ['Samsung', 'SCH-W899'], 'SCH-W999': ['Samsung', 'SCH-W999'], 'SGH-I547': ['Samsung', 'SGH-I547'], 'SGH-I717': ['Samsung', 'Galaxy Note'], 'SGH-I717D': ['Samsung', 'Galaxy Note'], 'SGH-I717M': ['Samsung', 'Galaxy Note'], 'SGH-I717R': ['Samsung', 'Galaxy Note'], 'SGH-I727': ['Samsung', 'Galaxy S II Skyrocket'], 'SGH-i727R': ['Samsung', 'Galaxy S II'], 'SGH-I727R': ['Samsung', 'Galaxy S II'], 'SGH-I747': ['Samsung', 'Galaxy S III'], 'SGH-I747M': ['Samsung', 'Galaxy S III'], 'SGH-I748': ['Samsung', 'Galaxy S III'], 'SGH-I757': ['Samsung', 'Galaxy S II Skyrocket HD'], 'SGH-I777': ['Samsung', 'Galaxy S II'], 'SGH-I9777': ['Samsung', 'Galaxy S II'], 'SGH-I896': ['Samsung', 'Captivate'], 'SGH-I897': ['Samsung', 'Captivate'], 'SGH-I927': ['Samsung', 'Captivate Glide'], 'SGH-I927R': ['Samsung', 'Captivate Glide'], 'SGH-I957': ['Samsung', 'Galaxy Tab 8.9', 'tablet'], 'SGH-I957D': ['Samsung', 'Galaxy Tab 8.9', 'tablet'], 'SGH-I957M': ['Samsung', 'Galaxy Tab 8.9', 'tablet'], 'SGH-I957R': ['Samsung', 'Galaxy Tab 8.9', 'tablet'], 'SGH-I987': ['Samsung', 'Galaxy Tab 7.0', 'tablet'], 'SGH-I997': ['Samsung', 'Infuse 4G'], 'SGH-I997R': ['Samsung', 'Infuse 4G'], 'SGH-I9000': ['Samsung', 'Galaxy S'], 'SGH-S730G': ['Samsung', 'SGH-S730'], 'SGH-T499': ['Samsung', 'Dart'], 'SGH-T499V': ['Samsung', 'Galaxy Mini'], 'SGH-T499Y': ['Samsung', 'Galaxy Mini'], 'SGH-T589': ['Samsung', 'Gravity Smart'], 'SGH-T589R': ['Samsung', 'Gravity Smart'], 'SGH-T679': ['Samsung', 'Exhibit II 4G'], 'SGH-T679M': ['Samsung', 'Exhibit II 4G'], 'SGH-T759': ['Samsung', 'Exhibit 4G'], 'SGH-T769': ['Samsung', 'Galaxy S Blaze 4G'], 'SGH-T839': ['Samsung', 'T-Mobile Sidekick'], 'SGH-T849': ['Samsung', 'Galaxy Tab 7.0', 'tablet'], 'SGH-T859': ['Samsung', 'Galaxy Tab 10.1', 'tablet'], 'SGH-T869': ['Samsung', 'Galaxy Tab 7.0 Plus', 'tablet'], 'SGH-T879': ['Samsung', 'Galaxy Note'], 'SGH-T959': ['Samsung', 'Vibrant'], 'SGH-T959D': ['Samsung', 'Galaxy S Fascinate 3G+'], 'SGH-T959P': ['Samsung', 'Galaxy S Fascinate 4G'], 'SGH-T959V': ['Samsung', 'Galaxy S 4G'], 'SGH-T989': ['Samsung', 'Galaxy S II'], 'SGH-T989D': ['Samsung', 'Galaxy S II X'], 'SGH-T999': ['Samsung', 'Galaxy S Blaze 4G'], 'SGH-T999V': ['Samsung', 'Galaxy S Blaze 4G'], 'SHV-E120K': ['Samsung', 'Galaxy S II HD LTE'], 'SHV-E120L': ['Samsung', 'Galaxy S II HD LTE'], 'SHV-E120S': ['Samsung', 'Galaxy S II HD LTE'], 'SHV-E110S': ['Samsung', 'Galaxy S II LTE'], 'SHV-E140S': ['Samsung', 'Galaxy Tab 8.9', 'tablet'], 'SHV-E150S': ['Samsung', 'Galaxy Tab 7.7', 'tablet'], 'SHV-E160K': ['Samsung', 'Galaxy Note'], 'SHV-E160L': ['Samsung', 'Galaxy Note LTE'], 'SHV-E160S': ['Samsung', 'Galaxy Note LTE'], 'SHV-E170K': ['Samsung', 'SHV-E170K'], 'SHV-E170L': ['Samsung', 'SHV-E170L'], 'SHV-E210K': ['Samsung', 'Galaxy S III'], 'SHV-E210L': ['Samsung', 'Galaxy S III'], 'SHV-E210S': ['Samsung', 'Galaxy S III'], 'SHW-M100S': ['Samsung', 'Galaxy A'], 'SHW-M110S': ['Samsung', 'Galaxy S'], 'SHW-M130L': ['Samsung', 'Galaxy U'], 'SHW-M130K': ['Samsung', 'Galaxy K'], 'SHW-M180K': ['Samsung', 'Galaxy Tab', 'tablet'], 'SHW-M180L': ['Samsung', 'Galaxy Tab', 'tablet'], 'SHW-M180S': ['Samsung', 'Galaxy Tab', 'tablet'], 'SHW-M180W': ['Samsung', 'Galaxy Tab', 'tablet'], 'SHW-M185S': ['Samsung', 'Galaxy Tab', 'tablet'], 'SHW-M190S': ['Samsung', 'Galaxy S Hoppin'], 'SHW-M220L': ['Samsung', 'Galaxy Neo'], 'SHW-M240S': ['Samsung', 'Galaxy Ace'], 'SHW-M250K': ['Samsung', 'Galaxy S II'], 'SHW-M250L': ['Samsung', 'Galaxy S II'], 'SHW-M250S': ['Samsung', 'Galaxy S II'], 'SHW-M300W': ['Samsung', 'Galaxy Tab 10.1', 'tablet'], 'SHW-M305W': ['Samsung', 'Galaxy Tab 8.9', 'tablet'], 'SHW-M340S': ['Samsung', 'Galaxy M Style'], 'SHW-M380K': ['Samsung', 'Galaxy Tab 10.1', 'tablet'], 'SHW-M380S': ['Samsung', 'Galaxy Tab 10.1', 'tablet'], 'SHW-M380W': ['Samsung', 'Galaxy Tab 10.1', 'tablet'], 'SHW-M440S': ['Samsung', 'Galaxy S III'], 'SMT-i9100': ['Samsung', 'SMT-I9100', 'tablet'], 'SPH-D600': ['Samsung', 'Conquer 4G'], 'SPH-D700': ['Samsung', 'Epic 4G'], 'SPH-D705': ['Samsung', 'Epic 4G 2'], 'SPH-D710': ['Samsung', 'Epic 4G Touch'], 'SPH-L700': ['Samsung', 'Galaxy Nexus'], 'SPH-L710': ['Samsung', 'Galaxy S III'], 'SPH-M820': ['Samsung', 'Galaxy Prevail'], 'SPH-M820-BST': ['Samsung', 'Galaxy Prevail'], 'SPH-M580': ['Samsung', 'Replenish'], 'SPH-M900': ['Samsung', 'Moment'], 'SPH-M910': ['Samsung', 'Intercept'], 'SPH-M920': ['Samsung', 'Transform'], 'SPH-M930': ['Samsung', 'Transform Ultra'], 'SPH-M930BST': ['Samsung', 'Transform Ultra'], 'SPH-P100': ['Samsung', 'Galaxy Tab', 'tablet'], 'YP-GB1': ['Samsung', 'Galaxy Player', 'media'], 'YP-GB70': ['Samsung', 'Galaxy Player 70', 'media'], 'YP-GB70D': ['Samsung', 'Galaxy Player 70 Plus', 'media'], 'YP-GS1': ['Samsung', 'Galaxy S WiFi 3.6', 'media'], 'YP-G1': ['Samsung', 'Galaxy S WiFi 4.0', 'media'], 'YP-GI1': ['Samsung', 'Galaxy S WiFi 4.2', 'media'], 'YP-G50': ['Samsung', 'Galaxy Player', 'media'], 'YP-G70': ['Samsung', 'Galaxy S WiFi 5.0', 'media'], 'GT9100': ['Samsung', 'Galaxy S II'], 'I897': ['Samsung', 'Captivate'], 'I7500': ['Samsung', 'Galaxy'], 'I9000': ['Samsung', 'Galaxy S'], 'T959': ['Samsung', 'Galaxy S Vibrant'], 'Captivate-I897': ['Samsung', 'Captivate'], 'Galaxy': ['Samsung', 'Galaxy'], 'Galaxy Note': ['Samsung', 'Galaxy Note'], 'GalaxyS': ['Samsung', 'Galaxy S'], 'Galaxy S II': ['Samsung', 'Galaxy S II'], 'Galaxy X': ['Samsung', 'Galaxy X'], 'Galaxy Spica': ['Samsung', 'Galaxy Spica'], 'GALAXY Tab': ['Samsung', 'Galaxy Tab', 'tablet'], 'GALAXY NEXUS': ['Samsung', 'Galaxy Nexus'], 'Vibrantmtd': ['Samsung', 'Vibrant'], 'SC-01C': ['Samsung', 'Galaxy Tab', 'tablet'], 'SC-01D': ['Samsung', 'Galaxy Tab 10.1 LTE', 'tablet'], 'SC-02B': ['Samsung', 'Galaxy S'], 'SC-02C': ['Samsung', 'Galaxy S II'], 'SC-02D': ['Samsung', 'Galaxy Tab 7.0 Plus', 'tablet'], 'SC-03D': ['Samsung', 'Galaxy S II LTE'], 'SC-04D': ['Samsung', 'Galaxy Nexus'], 'SC-05D': ['Samsung', 'Galaxy Note LTE'], 'SC-06D': ['Samsung', 'Galaxy S III'], 'ISW11SC': ['Samsung', 'Galaxy S II WiMAX'], 'GT-S7562': ['Samsung', 'GT-S7562'], 'GT-S7562i': ['Samsung', 'GT-S7562i'], 'A01SH': ['Sharp', 'A01SH'], 'IS01': ['Sharp', 'IS01'], 'IS03': ['Sharp', 'IS03'], 'IS05': ['Sharp', 'IS05'], 'IS11SH': ['Sharp', 'Aquos IS11SH'], 'IS12SH': ['Sharp', 'Aquos IS12SH'], 'IS13SH': ['Sharp', 'Aquos IS13SH'], 'IS14SH': ['Sharp', 'Aquos IS14SH'], 'ISW16SH': ['Sharp', 'Aquos ISW16SH'], 'EB-W51GJ': ['Sharp', 'EB-W51GJ'], 'SBM003SH': ['Sharp', 'Galapagos'], 'SBM005SH': ['Sharp', 'Galapagos'], 'SBM006SH': ['Sharp', 'Aquos'], 'SBM007SH': ['Sharp', 'Aquos 007SH'], 'SBM009SH': ['Sharp', 'Aquos 009SH'], 'SBM102SH': ['Sharp', 'Aquos 102SH'], 'SBM103SH': ['Sharp', 'Aquos 103SH'], 'SBM104SH': ['Sharp', 'Aquos 104SH'], 'SBM107SH': ['Sharp', 'Aquos 107SH'], 'SBM107SHB': ['Sharp', 'Aquos 107SH'], 'SH-01D': ['Sharp', 'Aquos SH-01D'], 'SH-02D': ['Sharp', 'Aquos slider SH-02D'], 'SH-03C': ['Sharp', 'Lynx 3D'], 'SH-06D': ['Sharp', 'Aquos SH-06D'], 'SH-09D': ['Sharp', 'Aquos Zeta SH-09D'], 'SH-10B': ['Sharp', 'Lynx'], 'SH-12C': ['Sharp', 'Aquos'], 'SH-13C': ['Sharp', 'Aquos f SH-13C'], 'SH80F': ['Sharp', 'Aquos SH80F'], 'SH72x8U': ['Sharp', 'SH72x8U'], 'SH8118U': ['Sharp', 'SH8118U'], 'SH8128U': ['Sharp', 'SH8128U'], 'SH8158U': ['Sharp', 'SH8158U'], 'SH8188U': ['Sharp', 'SH8188U'], 'SH8268U': ['Sharp', 'SH8268U'], 'INFOBAR C01': ['Sharp', 'INFOBAR C01'], 'SPX-5': ['Simvalley', 'SPX-5'], 'SPX-5 3G': ['Simvalley', 'SPX-5 3G'], 'SmartQ G7': ['SmartQ', 'G7', 'tablet'], 'SmartQT7': ['SmartQ', 'T7', 'tablet'], 'SmartQT10': ['SmartQ', 'T10', 'tablet'], 'SmartQT15': ['SmartQ', 'T15', 'tablet'], 'SmartQT19': ['SmartQ', 'T19', 'tablet'], 'SmartQT20': ['SmartQ', 'T20', 'tablet'], 'OMS1 6': ['Sony Ericsson', 'A8i'], 'E10a': ['Sony Ericsson', 'Xperia X10 Mini'], 'E10i': ['Sony Ericsson', 'Xperia X10 Mini'], 'E10iv': ['Sony Ericsson', 'Xperia X10 Mini'], 'E15': ['Sony Ericsson', 'Xperia X8'], 'E15a': ['Sony Ericsson', 'Xperia X8'], 'E15i': ['Sony Ericsson', 'Xperia X8'], 'E15iv': ['Sony Ericsson', 'Xperia X8'], 'E15i-o': ['Sony Ericsson', 'Xperia X8'], 'E16i': ['Sony Ericsson', 'W8 Walkman'], 'LT11i': ['Sony Ericsson', 'Xperia Neo V'], 'LT15': ['Sony Ericsson', 'Xperia Arc'], 'LT15a': ['Sony Ericsson', 'Xperia Arc'], 'LT15i': ['Sony Ericsson', 'Xperia Arc'], 'LT15iv': ['Sony Ericsson', 'Xperia Arc'], 'LT15i-o': ['Sony Ericsson', 'Xperia Arc'], 'LT18a': ['Sony Ericsson', 'Xperia Arc S'], 'LT18i': ['Sony Ericsson', 'Xperia Arc S'], 'LT18iv': ['Sony Ericsson', 'Xperia Arc S'], 'LT18i-o': ['Sony Ericsson', 'Xperia Arc S'], 'LT22i': ['Sony', 'Xperia P'], 'LT26i': ['Sony', 'Xperia S'], 'LT26ii': ['Sony', 'Xperia S'], 'LT26i-o': ['Sony', 'Xperia S'], 'LT28at': ['Sony', 'Xperia Ion'], 'LT28h': ['Sony', 'Xperia Ion'], 'LT28i': ['Sony', 'Xperia Ion'], 'LT29i': ['Sony', 'Xperia GX'], 'SonyLT29i': ['Sony', 'Xperia GX'], 'SonyLT30a': ['Sony', 'Xperia Mint'], 'SonyLT30p': ['Sony', 'Xperia Mint'], 'MK16a': ['Sony Ericsson', 'Xperia Pro'], 'MK16i': ['Sony Ericsson', 'Xperia Pro'], 'MT11a': ['Sony Ericsson', 'Xperia Neo V'], 'MT11i': ['Sony Ericsson', 'Xperia Neo V'], 'MT11iv': ['Sony Ericsson', 'Xperia Neo V'], 'MT11i-o': ['Sony Ericsson', 'Xperia Neo V'], 'MT15a': ['Sony Ericsson', 'Xperia Neo'], 'MT15i': ['Sony Ericsson', 'Xperia Neo'], 'MT15iv': ['Sony Ericsson', 'Xperia Neo'], 'MT15i-o': ['Sony Ericsson', 'Xperia Neo'], 'MT25i': ['Sony', 'Xperia Neo L'], 'MT27i': ['Sony', 'Xperia Sola'], 'R800a': ['Sony Ericsson', 'Xperia Play'], 'R800i': ['Sony Ericsson', 'Xperia Play'], 'R800iv': ['Sony Ericsson', 'Xperia Play'], 'R800at': ['Sony Ericsson', 'Xperia Play'], 'R800x': ['Sony Ericsson', 'Xperia Play'], 'SK17a': ['Sony Ericsson', 'Xperia Mini Pro'], 'SK17i': ['Sony Ericsson', 'Xperia Mini Pro'], 'SK17iv': ['Sony Ericsson', 'Xperia Mini Pro'], 'SK17i-o': ['Sony Ericsson', 'Xperia Mini Pro'], 'ST15a': ['Sony Ericsson', 'Xperia Mini'], 'ST15i': ['Sony Ericsson', 'Xperia Mini'], 'ST17a': ['Sony Ericsson', 'Xperia Active'], 'ST17i': ['Sony Ericsson', 'Xperia Active'], 'ST18a': ['Sony Ericsson', 'Xperia Ray'], 'ST18i': ['Sony Ericsson', 'Xperia Ray'], 'ST18iv': ['Sony Ericsson', 'Xperia Ray'], 'ST18av': ['Sony Ericsson', 'Xperia Ray'], 'SonyST21': ['Sony', '\'Tapioca\''], 'SonyST21i': ['Sony', '\'Tapioca\''], 'SonyST21a2': ['Sony', '\'Tapioca\''], 'ST21': ['Sony', '\'Tapioca\''], 'ST21i': ['Sony', '\'Tapioca\''], 'SonyST23i': ['Sony', '\'Tapioca DS\''], 'ST25i': ['Sony', 'Xperia U'], 'ST27i': ['Sony', 'Xperia Go'], 'U20a': ['Sony Ericsson', 'Xperia X10 Mini Pro'], 'U20i': ['Sony Ericsson', 'Xperia X10 Mini Pro'], 'U20iv': ['Sony Ericsson', 'Xperia X10 Mini Pro'], 'WT13i': ['Sony Ericsson', 'Mix Walkman'], 'WT18i': ['Sony Ericsson', 'Walkman'], 'WT19a': ['Sony Ericsson', 'Live with Walkman'], 'WT19i': ['Sony Ericsson', 'Live with Walkman'], 'WT19iv': ['Sony Ericsson', 'Live with Walkman'], 'X8': ['Sony Ericsson', 'Xperia X8'], 'X10': ['Sony Ericsson', 'Xperia X10'], 'X10a': ['Sony Ericsson', 'Xperia X10'], 'X10i': ['Sony Ericsson', 'Xperia X10'], 'X10iv': ['Sony Ericsson', 'Xperia X10'], 'X10S': ['Sony Ericsson', 'Xperia X10'], 'X10mini': ['Sony Ericsson', 'Xperia X10 Mini'], 'X10 Mini': ['Sony Ericsson', 'Xperia X10 Mini'], 'X10 Mini Pro': ['Sony Ericsson', 'Xperia X10 Mini Pro'], 'Z1i': ['Sony Ericsson', 'Xperia Play'], 'S51SE': ['Sony Ericsson', 'Xperia Mini'], 'IS11S': ['Sony Ericsson', 'Xperia Acro'], 'IS12S': ['Sony Ericsson', 'Xperia Acro HD'], 'SO-01B': ['Sony Ericsson', 'Xperia X10'], 'SO-01C': ['Sony Ericsson', 'Xperia Arc'], 'SO-01D': ['Sony Ericsson', 'Xperia Play'], 'SO-02C': ['Sony Ericsson', 'Xperia Acro'], 'SO-02D': ['Sony Ericsson', 'Xperia NX'], 'SO-03C': ['Sony Ericsson', 'Xperia Ray'], 'SO-03D': ['Sony Ericsson', 'Xperia Acro HD'], 'SO-04D': ['Sony', 'Xperia GX'], 'SO-05D': ['Sony', 'Xperia SX'], 'XPERIA X8': ['Sony Ericsson', 'Xperia X8'], 'Xperia X8': ['Sony Ericsson', 'Xperia X8'], 'Xperia X10': ['Sony Ericsson', 'Xperia X10'], 'Xperia ray': ['Sony Ericsson', 'Xperia Ray'], 'Xperia Ray': ['Sony Ericsson', 'Xperia Ray'], 'Xperia Arc': ['Sony Ericsson', 'Xperia Arc'], 'Xperia Mini': ['Sony Ericsson', 'Xperia Mini'], 'Xperia neo': ['Sony Ericsson', 'Xperia Neo'], 'Xperia Neo': ['Sony Ericsson', 'Xperia Neo'], 'XPERIA NEO': ['Sony Ericsson', 'Xperia Neo'], 'Xperia NeoV': ['Sony Ericsson', 'Xperia Neo V'], 'Xperia Neo V': ['Sony Ericsson', 'Xperia Neo V'], 'Xperia Play': ['Sony Ericsson', 'Xperia Play'], 'Sony Ericsson Xperia X1': ['Sony Ericsson', 'Xperia X1'], 'SonyHayabusa': ['Sony', 'Xperia Ion'], 'Hayabusa': ['Sony', 'Xperia Ion'], 'nozomi': ['Sony', 'Xperia S'], 'Sony Tablet P': ['Sony', 'Tablet P', 'tablet'], 'Sony Tablet S': ['Sony', 'Tablet S', 'tablet'], 'NWZ-Z1000Series': ['Sony', 'Walkman Z', 'media'], 'NW-Z1000Series': ['Sony', 'Walkman Z', 'media'], 'Spice Mi280': ['Spice', 'Mi-280'], 'Spice Mi300': ['Spice', 'Mi-300'], 'Spice Mi-310': ['Spice', 'Mi-310'], 'Spice Mi-425': ['Spice', 'Mi-425'], 'SPICE Mi-720': ['Spice', 'Mi-720'], 'A7272+': ['Star', 'A7272+'], 'e1109 v73 gq1002 ctp': ['Star', 'X18i'], 'TS1004T': ['Surf 3Q', 'TS1004T', 'tablet'], 'SYTABEX7-2': ['Sylvania', 'SYTABEX7', 'tablet'], 'TCL A860': ['TCL', 'A860'], 'TCL A906': ['TCL', 'A906'], 'TCL A909': ['TCL', 'A909'], 'TCL A919': ['TCL', 'A919'], 'TCL A990': ['TCL', 'A990'], 'TCL A996': ['TCL', 'A996'], 'TCL A998': ['TCL', 'A998'], 'TCL GENESEE E708': ['TCL', 'Genesee E708'], 'A10t(5DM3)': ['Teclast', 'A10T', 'tablet'], 'P72': ['Teclast', 'P72', 'tablet'], 'P76TI': ['Teclast', 'P76Ti', 'tablet'], 'P81HD': ['Teclast', 'P81HD', 'tablet'], 'P85(R8A1)': ['Teclast', 'P85', 'tablet'], 'T720 SE': ['Teclast', 'T720', 'tablet'], 'T760 from moage.com': ['Teclast', 'T760', 'tablet'], 'tegav2': ['Tegatech', 'TEGA v2', 'tablet'], 'TM-7025': ['teXet', 'TM-7025', 'tablet'], 'MoFing': ['Thomson', 'MoFing', 'tablet'], 'Ultimate10': ['Tomtec', 'Ultimate10', 'tablet'], 'Thl V7': ['THL', 'V7'], 'ThL V7': ['THL', 'V7'], 'ThL V8': ['THL', 'V8'], 'ThL V9': ['THL', 'V9'], 'ThL V11': ['THL', 'V11'], 'TSB CLOUD COMPANION;TOSHIBA AC AND AZ': ['Toshiba', 'Dynabook AZ', 'desktop'], 'TOSHIBA AC AND AZ': ['Toshiba', 'Dynabook AZ', 'desktop'], 'TOSHIBA FOLIO AND A': ['Toshiba', 'Folio 100', 'tablet'], 'T-01C': ['Toshiba', 'Regza T-01C'], 'T-01D': ['Toshiba', 'Regza T-01D'], 'IS04': ['Toshiba', 'Regza IS04'], 'IS11T': ['Toshiba', 'Regza IS11T'], 'AT1S0': ['Toshiba', 'Regza AT1S0'], 'Tostab03': ['Toshiba', 'Regza AT100', 'tablet'], 'AT100': ['Toshiba', 'Regza AT100', 'tablet'], 'AT200': ['Toshiba', 'Regza AT200', 'tablet'], 'AT470': ['Toshiba', 'Regza AT470', 'tablet'], 'AT570': ['Toshiba', 'Regza AT570', 'tablet'], 'AT830': ['Toshiba', 'Regza AT830', 'tablet'], 'Folio 100': ['Toshiba', 'Folio 100', 'tablet'], 'folio100': ['Toshiba', 'Folio 100', 'tablet'], 'THRiVE': ['Toshiba', 'THRiVE', 'tablet'], 'Fantastic T3': ['TWM', 'Fantastic T3'], 'M70014': ['United Star Technology', 'M70014', 'tablet'], 'PS47': ['Velocity Micro', 'Cruz PS47', 'tablet'], 'T301': ['Velocity Micro', 'Cruz T301', 'tablet'], 'Vibo-A688': ['FIH', 'Vibo A688'], 'Videocon-V7500': ['Videocon', 'V7500'], 'GTablet': ['ViewSonic', 'gTablet', 'tablet'], 'GtabComb': ['ViewSonic', 'gTablet', 'tablet'], 'TeamDRH ICS for GTablet': ['ViewSonic', 'gTablet', 'tablet'], 'ViewPad7': ['ViewSonic', 'ViewPad 7', 'tablet'], 'ViewPad 10e': ['ViewSonic', 'ViewPad 10e', 'tablet'], 'VTAB1008': ['Vizio', 'VTAB1008', 'tablet'], 'VTAB3010': ['Vizio', 'VTAB3010', 'tablet'], 'VOTO W5300': ['VOTO', 'W5300'], 'xPAD-70': ['WayteQ', 'xPAD-70', 'tablet'], 'xTAB-70': ['WayteQ', 'xTAB-70', 'tablet'], 'WellcoM-A99': ['WellcoM', 'A99'], 'N12': ['Window', 'N12', 'tablet'], 'N12R': ['Window', 'N12R', 'tablet'], 'N50': ['Window', 'N50', 'tablet'], 'N50DT': ['Window', 'N50DT', 'tablet'], 'N50GT': ['Window', 'N50GT', 'tablet'], 'N50GT A': ['Window', 'N50GT-A', 'tablet'], 'N70': ['Window', 'N70', 'tablet'], 'N70 DUAL CORE': ['Window', 'N70 Dual Core', 'tablet'], 'N80': ['Window', 'N80', 'tablet'], 'N90': ['Window', 'N90', 'tablet'], 'N90 DUAL CORE2 V12': ['Window', 'N90 Dual Core', 'tablet'], 'N612': ['Wishway', 'N612'], 'AT-AS43D': ['Wolfgang', 'AT-AS43D'], 'M12': ['Wopad', 'M12', 'tablet'], 'WM8650': ['WonderMedia', 'WM8650', 'tablet'], 'MI-ONE': ['Xiaomi', 'MI-ONE'], 'MI-ONE C1': ['Xiaomi', 'MI-ONE C1'], 'MI-ONE Plus': ['Xiaomi', 'MI-ONE Plus'], 'MI 1S': ['Xiaomi', 'MI-ONE Plus'], 'MI 1SC': ['Xiaomi', 'MI-ONE 1SC'], 'mione plus': ['Xiaomi', 'MI-ONE Plus'], 'MI-TWO': ['Xiaomi', 'MI-TWO'], 'MI 2': ['Xiaomi', 'MI-TWO'], 'MI 2S': ['Xiaomi', 'MI-TWO Plus'], 'MI 2SC': ['Xiaomi', 'MI-TWO Plus'], 'Q07CL01': ['XVision', 'Q07', 'tablet'], 'N6': ['Yarvik', '210 Tablet', 'tablet'], 'EMR1879': ['Yidong', 'EMR1879', 'tablet'], 'yusun W702': ['Yusun', 'W702'], 'YX-YUSUN E80': ['Yusun', 'E80'], 'zt180': ['Zenithink', 'ZT-180', 'tablet'], 'Jaguar7': ['ZiiLabs', 'Jaguar 7', 'tablet'], 'Ziss Ranger HD': ['Ziss', 'Ranger HD'], 'ZTE Libra': ['ZTE', 'Libra'], 'ZTE-T T9': ['ZTE', 'Light Tab T9', 'tablet'], 'V9': ['ZTE', 'Light Tab V9', 'tablet'], 'V9e+': ['ZTE', 'Light Tab 2', 'tablet'], 'V9A': ['ZTE', 'Light Tab 2', 'tablet'], 'Light Tab 2W': ['ZTE', 'Light Tab 2', 'tablet'], 'Light Tab 2': ['ZTE', 'Light Tab 2', 'tablet'], 'V9C': ['ZTE', 'Light Tab 3', 'tablet'], 'V55': ['ZTE', 'Optik', 'tablet'], 'Acqua': ['ZTE', 'Acqua'], 'Blade': ['ZTE', 'Blade'], 'Blade-V880': ['ZTE', 'Blade'], 'ZTE-U V880': ['ZTE', 'Blade'], 'Blade-opda': ['ZTE', 'Blade'], 'ZTE-BLADE': ['ZTE', 'Blade'], 'ZTE Blade': ['ZTE', 'Blade'], 'ZTE V880': ['ZTE', 'Blade'], 'ZTE-U(V)880+': ['ZTE', 'Blade'], 'V880': ['ZTE', 'Blade'], 'a5': ['ZTE', 'Blade'], 'Blade2': ['ZTE', 'Blade 2'], 'Blade S': ['ZTE', 'Blade S'], 'X500': ['ZTE', 'Score'], 'ZTE-X500': ['ZTE', 'Score'], 'Skate': ['ZTE', 'Skate'], 'ZTE Skate': ['ZTE', 'Skate'], 'ZTE-Skate': ['ZTE', 'Skate'], 'ZTE-SKATE': ['ZTE', 'Skate'], 'ZTE-V960': ['ZTE', 'Skate'], 'ZTE-U V960': ['ZTE', 'Skate'], 'ZTE Racer': ['ZTE', 'Racer'], 'ZTE-RACER': ['ZTE', 'Racer'], 'MTC 916': ['ZTE', 'Racer'], 'Racer': ['ZTE', 'Racer'], 'RacerII': ['ZTE', 'Racer 2'], 'RACERII': ['ZTE', 'Racer 2'], 'ZTE Roamer': ['ZTE', 'Roamer'], 'N860': ['ZTE', 'Warp'], 'N880': ['ZTE', 'Blade'], 'ZTE-T U802': ['ZTE', 'T-U802'], 'ZTE-T U806': ['ZTE', 'T-U806'], 'ZTE-T U812': ['ZTE', 'T-U812'], 'ZTE-T U830': ['ZTE', 'T-U830'], 'ZTE-T U880': ['ZTE', 'T-U880'], 'ZTE T U880': ['ZTE', 'T-U880'], 'ZTE-TU880': ['ZTE', 'T-U880'], 'ZTE-TU900': ['ZTE', 'T-U900'], 'ZTE-T U960': ['ZTE', 'T-U960'], 'ZTE-TU960s': ['ZTE', 'T-U960'], 'ZTE-T U960s': ['ZTE', 'T-U960'], 'ZTE U N720': ['ZTE', 'U-N720'], 'ZTE-U V856': ['ZTE', 'U-V856'], 'ZTE-U V857': ['ZTE', 'U-V857'], 'ZTE-U V881': ['ZTE', 'U-V881'], 'ZTE-U X850': ['ZTE', 'U-X850'], 'ZTE-U X876': ['ZTE', 'U-X876'], 'ZTE-X876': ['ZTE', 'U-X876'], 'ZTE-C R750': ['ZTE', 'C-R750'], 'ZTE-C N600': ['ZTE', 'C-N600'], 'ZTE-C N600+': ['ZTE', 'C-N600'], 'ZTE-C N606': ['ZTE', 'C-N606'], 'ZTE-C N700': ['ZTE', 'C-N700'], 'ZTE-C N760': ['ZTE', 'C-N760'], 'ZTE-C N880': ['ZTE', 'C-N880'], 'ZTE-C N880S': ['ZTE', 'C-N880'], 'ZTE-C N880s': ['ZTE', 'C-N880'], 'ZTE-C X500': ['ZTE', 'C-X500'], 'ZTE-C X920': ['ZTE', 'C-X920'], 'ZXY-ZTE-C X920': ['ZTE', 'C-X920'], 'ZTE GV821': ['ZTE', 'G-V821'], 'ZTE N880E': ['ZTE', 'N880E'], 'ZTE-N880E': ['ZTE', 'N880E'], 'MIUI N880S': ['ZTE', 'N880S'], 'ZTE N882E': ['ZTE', 'N882E'], 'ZTE N855D': ['ZTE', 'N855D'], 'ZTE-N910': ['ZTE', 'N910'], 'E810': ['ZTE', 'E810'], 'u880': ['ZTE', 'U880'], 'ZTE U880E': ['ZTE', 'U880E'], 'U880': ['ZTE', 'U880'], 'ZTE U970': ['ZTE', 'U970'], 'ZTE V768': ['ZTE', 'V768'], 'ZTE-V856': ['ZTE', 'V856'], 'ZTE V877b': ['ZTE', 'V877'], 'ZTE V889D': ['ZTE', 'V889'], 'ZTE-Z990': ['ZTE', 'Z990'], 'ZTEU790': ['ZTE', 'U790'], '003Z': ['ZTE', 'Softbank 003Z'], '008Z': ['ZTE', 'Softbank 008Z'], '009Z': ['ZTE', 'Softbank Star7'], 'i-mobile i691': ['i-Mobile', 'i691'], 'i-mobile i695': ['i-Mobile', 'i695'], 'i-mobile i858': ['i-Mobile', 'i858'], 'i-mobile 3G 8500': ['i-Mobile', '3G 8500'], 'i-mobile I-Note': ['i-Mobile', 'i-Note', 'tablet'], 'Optimus Boston': ['Optimus', 'Boston'], 'Optimus San Francisco': ['Optimus', 'San Francisco'], 'Optimus Monte Carlo': ['Optimus', 'Monte Carlo'], 'Orange Boston': ['Orange', 'Boston'], 'Orange Monte Carlo': ['Orange', 'Monte Carlo'], 'San Francisco': ['Orange', 'San Francisco'], 'San Francisco for Orange': ['Orange', 'San Francisco'], 'Orange San Francisco': ['Orange', 'San Francisco'], 'MOVE': ['T-Mobile', 'MOVE'], 'T-Mobile G1': ['T-Mobile', 'G1'], 'T-Mobile G2': ['T-Mobile', 'G2'], 'T-Mobile G2 Touch': ['T-Mobile', 'G2'], 'LG-P999': ['T-Mobile', 'G2x'], 'LG-E739': ['T-Mobile', 'myTouch'], 'T-Mobile myTouch 3G': ['T-Mobile', 'myTouch 3G'], 'T-Mobile myTouch 3G Slide': ['T-Mobile', 'myTouch 3G Slide'], 'T-Mobile Espresso': ['T-Mobile', 'myTouch 3G Slide'], 'HTC myTouch 3G Slide': ['T-Mobile', 'myTouch 3G Slide'], 'T-Mobile myTouch 4G': ['T-Mobile', 'myTouch 4G'], 'HTC Glacier': ['T-Mobile', 'myTouch 4G'], 'HTC Panache': ['T-Mobile', 'myTouch 4G'], 'myTouch4G': ['T-Mobile', 'myTouch 4G'], 'My Touch 4G': ['T-Mobile', 'myTouch 4G'], 'HTC Mytouch 4G': ['T-Mobile', 'myTouch 4G'], 'HTC My Touch 4G': ['T-Mobile', 'myTouch 4G'], 'HTC mytouch4g': ['T-Mobile', 'myTouch 4G'], 'HTC myTouch 4G Slide': ['T-Mobile', 'myTouch 4G Slide'], 'myTouch 4G Slide': ['T-Mobile', 'myTouch 4G Slide'], 'T-Mobile myTouch Q': ['T-Mobile', 'myTouch Q'], 'LG-C800': ['T-Mobile', 'myTouch Q'], 'Pulse Mini': ['T-Mobile', 'Pulse Mini'], 'Vodafone 845': ['Vodafone', '845 Nova'], 'Vodafone 858': ['Vodafone', '858 Smart'], 'Vodafone 945': ['Vodafone', '945'], 'Vodafone Smart II': ['Vodafone', 'Smart II'], 'SmartTab10': ['Vodafone', 'SmartTab 10', 'tablet'], 'SCH-N719': ['Samsung', 'Galaxy Note II'], 'Coolpad 8190': ['Coolpad', '8190'], 'U705T': ['Oppo', 'Ulike2'], 'Coolpad 8020+': ['Coolpad', '8020'], 'Huawei Y310-5000': ['Huawei', 'Y310'], 'GT-S7572': ['Samsung', 'Galaxy Trend Duos II'], 'Lenovo A278t': ['Lenovo', 'A278t'], 'Lenovo A690': ['Lenovo', 'A690'], 'GT-I8262D': ['Samsung', 'LePhone I8262D'], 'Lenovo A278t': ['Lenovo', 'A278t'], 'MI 2C': ['Xiaomi', 'MI-TWO'], 'Coolpad 8070': ['Coolpad', '8070'], 'R813T': ['Oppo', 'R813T'], 'ZTE U930': ['ZTE', 'U930'], 'Lenovo A360': ['Lenovo', 'LePhone A360'], 'SCH-N719': ['Samsung', 'Galaxy Note II'], 'Coolpad 8010': ['Coolpad', '8010'], 'LENOVO-Lenovo-A288t': ['Lenovo', 'A288t'], 'U701T': ['Oppo', 'U701T'], 'ZTEU795': ['Coolpad', 'U795'], 'Haier-HT-I617': ['Haier', 'I617'], 'ZTEU880s': ['ZTE', 'T-U880'], 'GT-S6352': ['Samsung', 'GT-S6352'], 'GT-S7568': ['Samsung', 'GT-S7568'], 'K-Touch T619+': ['K-Touch', 'T619'], 'MI 2A': ['Xiaomi', 'MI-TWO A'], 'GT-N7108': ['Samsung', 'Galaxy Note II'], 'K-Touch T621': ['K-Touch', 'T621'], 'LENOVO-Lenovo-A298t': ['Lenovo', 'A298'], 'Coolpad 8150': ['Coolpad', '8150'], '5860S': ['Coolpad', '5860'], 'ZTEU807': ['ZTE', 'U807'], 'SCH-I739': ['Samsung', 'SCH-I739'], 'SCH-I829': ['Samsung', 'SCH-I829'], 'HS-E830': ['Hisense', 'E830'], 'HS-E920': ['Hisense', 'E920'], 'Lenovo S720': ['Lenovo', 'S720'], 'MI 2C': ['Xiaomi', 'MI-TWO'], 'OPPO R813T': ['Oppo', 'R813'], 'SCH-I879': ['Samsung', 'Galaxy Note'], 'GT-S6102E': ['Samsung', 'Galaxy Y Duos'] } var BLACKBERRY_MODELS = { '9600': 'Bold', '9650': 'Bold', '9700': 'Bold', '9780': 'Bold', '9790': 'Bold', '9900': 'Bold', '9930': 'Bold', '8300': 'Curve', '8310': 'Curve', '8320': 'Curve', '8330': 'Curve', '8350i': 'Curve', '8520': 'Curve', '8530': 'Curve', '8900': 'Curve', '9220': 'Curve', '9300': 'Curve', '9330': 'Curve', '9350': 'Curve', '9360': 'Curve', '9370': 'Curve', '9380': 'Curve', '8100': 'Pearl', '8110': 'Pearl', '8120': 'Pearl', '8130': 'Pearl', '8220': 'Pearl', '8230': 'Pearl', '9100': 'Pearl', '9105': 'Pearl', '9530': 'Storm', '9550': 'Storm', '9670': 'Style', '9800': 'Torch', '9810': 'Torch', '9850': 'Torch', '9860': 'Torch', '9630': 'Tour', '9981': 'Porsche P' }; var Version = function () { this.initialize.apply(this, Array.prototype.slice.call(arguments)) }; Version.prototype = { initialize: function (v) { this.original = v.value || null; this.alias = v.alias || null; } } var Detected = function () { this.initialize.apply(this, arguments) }; Detected.prototype = { initialize: function (ua, options) { this.options = { useFeatures: options && options.useFeatures || false, detectCamouflage: options && options.detectCamouflage || true } this.browser = { 'stock': true, 'hidden': false, 'channel': '' }; this.engine = {}; this.os = {}; this.device = { 'type': 'desktop', 'identified': false }; this.camouflage = false; this.features = []; this.detect(ua); }, detect: function (ua) { /**************************************************** * Unix */ if (ua.match('Unix')) { this.os.name = 'Unix'; } /**************************************************** * FreeBSD */ if (ua.match('FreeBSD')) { this.os.name = 'FreeBSD'; } /**************************************************** * OpenBSD */ if (ua.match('OpenBSD')) { this.os.name = 'OpenBSD'; } /**************************************************** * NetBSD */ if (ua.match('NetBSD')) { this.os.name = 'NetBSD'; } /**************************************************** * SunOS */ if (ua.match('SunOS')) { this.os.name = 'Solaris'; } /**************************************************** * Linux */ if (ua.match('Linux')) { this.os.name = 'Linux'; if (ua.match('CentOS')) { this.os.name = 'CentOS'; if (match = /CentOS\/[0-9\.\-]+el([0-9_]+)/.exec(ua)) { this.os.version = new Version({ value: match[1].replace(/_/g, '.') }); } } if (ua.match('Debian')) { this.os.name = 'Debian'; } if (ua.match('Fedora')) { this.os.name = 'Fedora'; if (match = /Fedora\/[0-9\.\-]+fc([0-9]+)/.exec(ua)) { this.os.version = new Version({ value: match[1] }); } } if (ua.match('Gentoo')) { this.os.name = 'Gentoo'; } if (ua.match('Kubuntu')) { this.os.name = 'Kubuntu'; } if (ua.match('Mandriva Linux')) { this.os.name = 'Mandriva'; if (match = /Mandriva Linux\/[0-9\.\-]+mdv([0-9]+)/.exec(ua)) { this.os.version = new Version({ value: match[1] }); } } if (ua.match('Mageia')) { this.os.name = 'Mageia'; if (match = /Mageia\/[0-9\.\-]+mga([0-9]+)/.exec(ua)) { this.os.version = new Version({ value: match[1] }); } } if (ua.match('Red Hat')) { this.os.name = 'Red Hat'; if (match = /Red Hat[^\/]*\/[0-9\.\-]+el([0-9_]+)/.exec(ua)) { this.os.version = new Version({ value: match[1].replace(/_/g, '.') }); } } if (ua.match('Slackware')) { this.os.name = 'Slackware'; } if (ua.match('SUSE')) { this.os.name = 'SUSE'; } if (ua.match('Turbolinux')) { this.os.name = 'Turbolinux'; } if (ua.match('Ubuntu')) { this.os.name = 'Ubuntu'; if (match = /Ubuntu\/([0-9.]*)/.exec(ua)) { this.os.version = new Version({ value: match[1] }); } } } /**************************************************** * iOS */ if (ua.match('iPhone( Simulator)?;') || ua.match('iPad;') || ua.match('iPod;') || ua.match(/iPhone\s*\d*s?[cp]?;/i)) { this.os.name = 'iOS'; this.os.version = new Version({ value: '1.0' }); if (match = /OS (.*) like Mac OS X/.exec(ua)) { this.os.version = new Version({ value: match[1].replace(/_/g, '.') }); } if (ua.match('iPhone Simulator;')) { this.device.type = 'emulator'; } else if (ua.match('iPod;')) { this.device.type = 'media'; this.device.manufacturer = 'Apple'; this.device.model = 'iPod Touch'; } else if (ua.match('iPhone;') || ua.match(/iPhone\s*\d*s?[cp]?;/i)) { this.device.type = 'mobile'; this.device.manufacturer = 'Apple'; this.device.model = 'iPhone'; } else { this.device.type = 'tablet'; this.device.manufacturer = 'Apple'; this.device.model = 'iPad'; } this.device.identified = true; } /**************************************************** * MacOS X */ else if (ua.match('Mac OS X')) { this.os.name = 'Mac OS X'; if (match = /Mac OS X (10[0-9\._]*)/.exec(ua)) { this.os.version = new Version({ value: match[1].replace(/_/g, '.') }); } } /**************************************************** * Windows */ if (ua.match('Windows')) { this.os.name = 'Windows'; if (match = /Windows NT ([0-9]\.[0-9])/.exec(ua)) { this.os.version = parseVersion(match[1]); switch (match[1]) { case '6.2': this.os.version = new Version({ value: match[1], alias: '8' }); break; case '6.1': this.os.version = new Version({ value: match[1], alias: '7' }); break; case '6.0': this.os.version = new Version({ value: match[1], alias: 'Vista' }); break; case '5.2': this.os.version = new Version({ value: match[1], alias: 'Server 2003' }); break; case '5.1': this.os.version = new Version({ value: match[1], alias: 'XP' }); break; case '5.0': this.os.version = new Version({ value: match[1], alias: '2000' }); break; default: this.os.version = new Version({ value: match[1], alias: 'NT ' + this.os.version }); } } if (ua.match('Windows 95') || ua.match('Win95') || ua.match('Win 9x 4.00')) { this.os.version = new Version({ value: '4.0', alias: '95' }); } if (ua.match('Windows 98') || ua.match('Win98') || ua.match('Win 9x 4.10')) { this.os.version = new Version({ value: '4.1', alias: '98' }); } if (ua.match('Windows ME') || ua.match('WinME') || ua.match('Win 9x 4.90')) { this.os.version = new Version({ value: '4.9', alias: 'ME' }); } if (ua.match('Windows XP') || ua.match('WinXP')) { this.os.name = new Version({ value: '5.1', alias: 'XP' }); } if (ua.match('WP7')) { this.os.name = 'Windows Phone'; this.os.version = new Version({ value: '7.0', details: 2 }); this.device.type = 'mobile'; this.browser.mode = 'desktop'; } if (ua.match('Windows CE') || ua.match('WinCE') || ua.match('WindowsCE')) { if (ua.match(' IEMobile')) { this.os.name = 'Windows Mobile'; if (ua.match(' IEMobile 8')) { this.os.version = new Version({ value: '6.5', details: 2 }); } if (ua.match(' IEMobile 7')) { this.os.version = new Version({ value: '6.1', details: 2 }); } if (ua.match(' IEMobile 6')) { this.os.version = new Version({ value: '6.0', details: 2 }); } } else { this.os.name = 'Windows CE'; if (match = /WindowsCEOS\/([0-9.]*)/.exec(ua)) { this.os.version = new Version({ value: match[1], details: 2 }); } if (match = /Windows CE ([0-9.]*)/.exec(ua)) { this.os.version = new Version({ value: match[1], details: 2 }); } } this.device.type = 'mobile'; } if (ua.match('Windows Mobile')) { this.os.name = 'Windows Mobile'; this.device.type = 'mobile'; } if (match = /WindowsMobile\/([0-9.]*)/.exec(ua)) { this.os.name = 'Windows Mobile'; this.os.version = new Version({ value: match[1], details: 2 }); this.device.type = 'mobile'; } if (ua.match('Windows Phone [0-9]')) { this.os.name = 'Windows Mobile'; this.os.version = new Version({ value: ua.match(/Windows Phone ([0-9.]*)/)[1], details: 2 }); this.device.type = 'mobile'; } if (ua.match('Windows Phone OS')) { this.os.name = 'Windows Phone'; this.os.version = new Version({ value: ua.match(/Windows Phone OS ([0-9.]*)/)[1], details: 2 }); if (this.os.version < 7) { this.os.name = 'Windows Mobile'; } if (match = /IEMobile\/[^;]+; ([^;]+); ([^;]+)[;|\)]/.exec(ua)) { this.device.manufacturer = match[1]; this.device.model = match[2]; } this.device.type = 'mobile'; var manufacturer = this.device.manufacturer; var model = cleanupModel(this.device.model); if (typeof WINDOWS_PHONE_MODELS[manufacturer] !== 'undefined' && typeof WINDOWS_PHONE_MODELS[manufacturer][model] !== 'undefined') { this.device.manufacturer = WINDOWS_PHONE_MODELS[manufacturer][model][0]; this.device.model = WINDOWS_PHONE_MODELS[manufacturer][model][1]; this.device.identified = true; } if (manufacturer === 'Microsoft' && model === 'XDeviceEmulator') { this.device.manufacturer = null; this.device.model = null; this.device.type = 'emulator'; this.device.identified = true; } } } /**************************************************** * Android */ if (ua.match('Android')) { this.os.name = 'Android'; this.os.version = null; if (match = /Android(?: )?(?:AllPhone_|CyanogenMod_)?(?:\/)?v?([0-9.]+)/.exec(ua.replace('-update', '.'))) { this.os.version = new Version({ value: match[1], details: 3 }) } if (ua.match('Android Eclair')) { this.os.version = new Version({ value: '2.0', details: 3 }); } this.device.type = 'mobile'; if (this.os.version >= 3) this.device.type = 'tablet'; if (this.os.version >= 4 && ua.match('Mobile')) this.device.type = 'mobile'; if (match = /Eclair; (?:[a-zA-Z][a-zA-Z](?:[-_][a-zA-Z][a-zA-Z])?) Build\/([^\/]*)\//.exec(ua)) { this.device.model = match[1]; } else if (match = /; ([^;]*[^;\s])\s+Build/.exec(ua)) { this.device.model = match[1]; } else if (match = /[a-zA-Z][a-zA-Z](?:[-_][a-zA-Z][a-zA-Z])?; ([^;]*[^;\s]);\s+Build/.exec(ua)) { this.device.model = match[1]; } else if (match = /\(([^;]+);U;Android\/[^;]+;[0-9]+\*[0-9]+;CTC\/2.0\)/.exec(ua)) { this.device.model = match[1]; } else if (match = /;\s?([^;]+);\s?[0-9]+\*[0-9]+;\s?CTC\/2.0/.exec(ua)) { this.device.model = match[1]; } else if (match = /zh-cn;\s*(.*?)(\/|build)/i.exec(ua)) { this.device.model = match[1]; } else if (match = /Android [^;]+; (?:[a-zA-Z][a-zA-Z](?:[-_][a-zA-Z][a-zA-Z])?; )?([^)]+)\)/.exec(ua)) { if (!ua.match(/[a-zA-Z][a-zA-Z](?:[-_][a-zA-Z][a-zA-Z])?/)) { this.device.model = match[1]; } } else if (match = /^(.+?)\/\S+/i.exec(ua)) { this.device.model = match[1]; } /* Sometimes we get a model name that starts with Android, in that case it is a mismatch and we should ignore it */ if (this.device.model && this.device.model.substring(0, 7) === 'Android') { this.device.model = null; } if (this.device.model) { var model = cleanupModel(this.device.model); if (typeof ANDROID_MODELS[model] !== 'undefined') { this.device.manufacturer = ANDROID_MODELS[model][0]; this.device.model = ANDROID_MODELS[model][1]; if (typeof ANDROID_MODELS[model][2] !== 'undefined') this.device.type = ANDROID_MODELS[model][2]; this.device.identified = true; } if (model === 'Emulator' || model === 'x86 Emulator' || model === 'x86 VirtualBox' || model === 'vm') { this.device.manufacturer = null; this.device.model = null; this.device.type = 'emulator'; this.device.identified = true; } } if (ua.match('HP eStation')) { this.device.manufacturer = 'HP'; this.device.model = 'eStation'; this.device.type = 'tablet'; this.device.identified = true; } if (ua.match('Pre\/1.0')) { this.device.manufacturer = 'Palm'; this.device.model = 'Pre'; this.device.identified = true; } if (ua.match('Pre\/1.1')) { this.device.manufacturer = 'Palm'; this.device.model = 'Pre Plus'; this.device.identified = true; } if (ua.match('Pre\/1.2')) { this.device.manufacturer = 'Palm'; this.device.model = 'Pre 2'; this.device.identified = true; } if (ua.match('Pre\/3.0')) { this.device.manufacturer = 'HP'; this.device.model = 'Pre 3'; this.device.identified = true; } if (ua.match('Pixi\/1.0')) { this.device.manufacturer = 'Palm'; this.device.model = 'Pixi'; this.device.identified = true; } if (ua.match('Pixi\/1.1')) { this.device.manufacturer = 'Palm'; this.device.model = 'Pixi Plus'; this.device.identified = true; } if (ua.match('P160UN?A?\/1.0')) { this.device.manufacturer = 'HP'; this.device.model = 'Veer'; this.device.identified = true; } } /**************************************************** * Google TV */ if (ua.match('GoogleTV')) { this.os.name = 'Google TV'; if (ua.match('Chrome/5.')) { this.os.version = new Version({ value: '1' }); } if (ua.match('Chrome/11.')) { this.os.version = new Version({ value: '2' }); } this.device.type = 'television'; } /**************************************************** * WoPhone */ if (ua.match('WoPhone')) { this.os.name = 'WoPhone'; if (match = /WoPhone\/([0-9\.]*)/.exec(ua)) { this.os.version = new Version({ value: match[1] }); } this.device.type = 'mobile'; } /**************************************************** * BlackBerry */ if (ua.match('BlackBerry')) { this.os.name = 'BlackBerry OS'; if (!ua.match('Opera')) { if (match = /BlackBerry([0-9]*)\/([0-9.]*)/.exec(ua)) { this.device.model = match[1]; this.os.version = new Version({ value: match[2], details: 2 }); } if (match = /; BlackBerry ([0-9]*);/.exec(ua)) { this.device.model = match[1]; } if (match = /Version\/([0-9.]*)/.exec(ua)) { this.os.version = new Version({ value: match[1], details: 2 }); } if (this.os.version >= 10) { this.os.name = 'BlackBerry'; } if (typeof this.device.model !== 'undefined') { if (typeof BLACKBERRY_MODELS[this.device.model] !== 'undefined') { this.device.model = 'BlackBerry ' + BLACKBERRY_MODELS[this.device.model] + ' ' + this.device.model; } else { this.device.model = 'BlackBerry ' + this.device.model; } } else { this.device.model = 'BlackBerry'; } } else { this.device.model = 'BlackBerry'; } this.device.manufacturer = 'RIM'; this.device.type = 'mobile'; this.device.identified = true; } /**************************************************** * BlackBerry PlayBook */ if (ua.match('RIM Tablet OS')) { this.os.name = 'BlackBerry Tablet OS'; this.os.version = new Version({ value: ua.match(/RIM Tablet OS ([0-9.]*)/)[1], details: 2 }); this.device.manufacturer = 'RIM'; this.device.model = 'BlackBerry PlayBook'; this.device.type = 'tablet'; this.device.identified = true; } else if (ua.match('PlayBook')) { if (match = /Version\/(10[0-9.]*)/.exec(ua)) { this.os.name = 'BlackBerry'; this.os.version = new Version({ value: match[1], details: 2 }); this.device.manufacturer = 'RIM'; this.device.model = 'BlackBerry PlayBook'; this.device.type = 'tablet'; this.device.identified = true; } } /**************************************************** * WebOS */ if (ua.match('(?:web|hpw)OS')) { this.os.name = 'webOS'; this.os.version = new Version({ value: ua.match(/(?:web|hpw)OS\/([0-9.]*)/)[1] }); if (ua.match('tablet')) this.device.type = 'tablet'; else this.device.type = 'mobile'; this.device.manufacturer = ua.match('hpwOS') ? 'HP' : 'Palm'; if (ua.match('Pre\/1.0')) this.device.model = 'Pre'; if (ua.match('Pre\/1.1')) this.device.model = 'Pre Plus'; if (ua.match('Pre\/1.2')) this.device.model = 'Pre2'; if (ua.match('Pre\/3.0')) this.device.model = 'Pre3'; if (ua.match('Pixi\/1.0')) this.device.model = 'Pixi'; if (ua.match('Pixi\/1.1')) this.device.model = 'Pixi Plus'; if (ua.match('P160UN?A?\/1.0')) this.device.model = 'Veer'; if (ua.match('TouchPad\/1.0')) this.device.model = 'TouchPad'; if (ua.match('Emulator\/') || ua.match('Desktop\/')) { this.device.type = 'emulator'; this.device.manufacturer = null; this.device.model = null; } this.device.identified = true; } /**************************************************** * S60 */ if (ua.match('Symbian') || ua.match('Series[ ]?60') || ua.match('S60')) { this.os.name = 'Series60'; if (ua.match('SymbianOS/9.1') && !ua.match('Series60')) { this.os.version = new Version({ value: '3.0' }); } if (match = /Series60\/([0-9.]*)/.exec(ua)) { this.os.version = new Version({ value: match[1] }); } if (match = /Nokia([^\/;]+)[\/|;]/.exec(ua)) { if (match[1] !== 'Browser') { this.device.manufacturer = 'Nokia'; this.device.model = match[1]; this.device.identified = true; } } if (match = /Vertu([^\/;]+)[\/|;]/.exec(ua)) { this.device.manufacturer = 'Vertu'; this.device.model = match[1]; this.device.identified = true; } if (match = /Symbian; U; ([^;]+); [a-z][a-z]\-[a-z][a-z]/i.exec(ua)) { this.device.manufacturer = 'Nokia'; this.device.model = match[1]; this.device.identified = true; } if (match = /Samsung\/([^;]*);/.exec(ua)) { this.device.manufacturer = STRINGS_SAMSUNG; this.device.model = match[1]; this.device.identified = true; } this.device.type = 'mobile'; } /**************************************************** * S40 */ if (ua.match('Series40')) { this.os.name = 'Series40'; if (match = /Nokia([^\/]+)\//.exec(ua)) { this.device.manufacturer = 'Nokia'; this.device.model = match[1]; this.device.identified = true; } this.device.type = 'mobile'; } /**************************************************** * MeeGo */ if (ua.match('MeeGo')) { this.os.name = 'MeeGo'; this.device.type = 'mobile'; if (match = /Nokia([^\)]+)\)/.exec(ua)) { this.device.manufacturer = 'Nokia'; this.device.model = match[1]; this.device.identified = true; } } /**************************************************** * Maemo */ if (ua.match('Maemo')) { this.os.name = 'Maemo'; this.device.type = 'mobile'; if (match = /(N[0-9]+)/.exec(ua)) { this.device.manufacturer = 'Nokia'; this.device.model = match[1]; this.device.identified = true; } } /**************************************************** * Tizen */ if (ua.match('Tizen')) { this.os.name = 'Tizen'; if (match = /Tizen[\/ ]([0-9.]*)/.exec(ua)) { this.os.version = new Version({ value: match[1] }); } this.device.type = 'mobile'; if (match = /\(([^;]+); ([^\/]+)\//.exec(ua)) { if (match[1] !== 'Linux') { this.device.manufacturer = match[1]; this.device.model = match[2]; if (typeof TIZEN_MODELS[this.device.manufacturer] !== 'undefined' && typeof TIZEN_MODELS[this.device.manufacturer][this.device.model] !== 'undefined') { var manufacturer = this.device.manufacturer; var model = cleanupModel(this.device.model); this.device.manufacturer = TIZEN_MODELS[manufacturer][model][0]; this.device.model = TIZEN_MODELS[manufacturer][model][1]; this.device.identified = true; } } } } /**************************************************** * Bada */ if (ua.match('[b|B]ada')) { this.os.name = 'Bada'; if (match = /[b|B]ada\/([0-9.]*)/.exec(ua)) { this.os.version = new Version({ value: match[1] }); } this.device.type = 'mobile'; if (match = /\(([^;]+); ([^\/]+)\//.exec(ua)) { this.device.manufacturer = match[1]; this.device.model = cleanupModel(match[2]); } if (typeof BADA_MODELS[this.device.manufacturer] !== 'undefined' && typeof BADA_MODELS[this.device.manufacturer][this.device.model] !== 'undefined') { var manufacturer = this.device.manufacturer; var model = cleanupModel(this.device.model); this.device.manufacturer = BADA_MODELS[manufacturer][model][0]; this.device.model = BADA_MODELS[manufacturer][model][1]; this.device.identified = true; } } /**************************************************** * Brew */ if (ua.match(/BREW/i) || ua.match('BMP; U')) { this.os.name = 'Brew'; this.device.type = 'mobile'; if (match = /BREW; U; ([0-9.]*)/i.exec(ua)) { this.os.version = new Version({ value: match[1] }); } else if (match = /;BREW\/([0-9.]*)/i.exec(ua)) { this.os.version = new Version({ value: match[1] }); } if (match = /\(([^;]+);U;REX\/[^;]+;BREW\/[^;]+;(?:.*;)?[0-9]+\*[0-9]+;CTC\/2.0\)/.exec(ua)) { this.device.model = match[1]; } if (this.device.model) { var model = cleanupModel(this.device.model); if (typeof BREW_MODELS[model] !== 'undefined') { this.device.manufacturer = BREW_MODELS[model][0]; this.device.model = BREW_MODELS[model][1]; this.device.identified = true; } } } /**************************************************** * MTK */ if (ua.match(/\(MTK;/)) { this.os.name = 'MTK'; this.device.type = 'mobile'; } /**************************************************** * CrOS */ if (ua.match('CrOS')) { this.os.name = 'Chrome OS'; this.device.type = 'desktop'; } /**************************************************** * Joli OS */ if (ua.match('Joli OS')) { this.os.name = 'Joli OS'; this.device.type = 'desktop'; if (match = /Joli OS\/([0-9.]*)/i.exec(ua)) { this.os.version = new Version({ value: match[1] }); } } /**************************************************** * Haiku */ if (ua.match('Haiku')) { this.os.name = 'Haiku'; this.device.type = 'desktop'; } /**************************************************** * QNX */ if (ua.match('QNX')) { this.os.name = 'QNX'; this.device.type = 'mobile'; } /**************************************************** * OS/2 Warp */ if (ua.match('OS\/2; Warp')) { this.os.name = 'OS/2 Warp'; this.device.type = 'desktop'; if (match = /OS\/2; Warp ([0-9.]*)/i.exec(ua)) { this.os.version = new Version({ value: match[1] }); } } /**************************************************** * Grid OS */ if (ua.match('Grid OS')) { this.os.name = 'Grid OS'; this.device.type = 'tablet'; if (match = /Grid OS ([0-9.]*)/i.exec(ua)) { this.os.version = new Version({ value: match[1] }); } } /**************************************************** * AmigaOS */ if (ua.match(/AmigaOS/i)) { this.os.name = 'AmigaOS'; this.device.type = 'desktop'; if (match = /AmigaOS ([0-9.]*)/i.exec(ua)) { this.os.version = new Version({ value: match[1] }); } } /**************************************************** * MorphOS */ if (ua.match(/MorphOS/i)) { this.os.name = 'MorphOS'; this.device.type = 'desktop'; if (match = /MorphOS ([0-9.]*)/i.exec(ua)) { this.os.version = new Version({ value: match[1] }); } } /**************************************************** * Kindle */ if (ua.match('Kindle') && !ua.match('Fire')) { this.os.name = ''; this.device.manufacturer = 'Amazon'; this.device.model = 'Kindle'; this.device.type = 'ereader'; if (ua.match('Kindle\/2.0')) this.device.model = 'Kindle 2'; if (ua.match('Kindle\/3.0')) this.device.model = 'Kindle 3 or later'; this.device.identified = true; } /**************************************************** * NOOK */ if (ua.match('nook browser')) { this.os.name = 'Android'; this.device.manufacturer = 'Barnes & Noble'; this.device.model = 'NOOK'; this.device.type = 'ereader'; this.device.identified = true; } /**************************************************** * Bookeen */ if (ua.match('bookeen\/cybook')) { this.os.name = ''; this.device.manufacturer = 'Bookeen'; this.device.model = 'Cybook'; this.device.type = 'ereader'; if (ua.match('Orizon')) { this.device.model = 'Cybook Orizon'; } this.device.identified = true; } /**************************************************** * Sony Reader */ if (ua.match('EBRD1101')) { this.os.name = ''; this.device.manufacturer = 'Sony'; this.device.model = 'Reader'; this.device.type = 'ereader'; this.device.identified = true; } /**************************************************** * iRiver */ if (ua.match('Iriver ;')) { this.os.name = ''; this.device.manufacturer = 'iRiver'; this.device.model = 'Story'; this.device.type = 'ereader'; if (ua.match('EB07')) { this.device.model = 'Story HD EB07'; } this.device.identified = true; } /**************************************************** * Nintendo * * Opera/9.30 (Nintendo Wii; U; ; 3642; en) * Opera/9.30 (Nintendo Wii; U; ; 2047-7; en) * Opera/9.50 (Nintendo DSi; Opera/507; U; en-US) * Mozilla/5.0 (Nintendo 3DS; U; ; en) Version/1.7455.US * Mozilla/5.0 (Nintendo 3DS; U; ; en) Version/1.7455.EU */ if (ua.match('Nintendo Wii')) { this.os.name = ''; this.device.manufacturer = 'Nintendo'; this.device.model = 'Wii'; this.device.type = 'gaming'; this.device.identified = true; } if (ua.match('Nintendo DSi')) { this.os.name = ''; this.device.manufacturer = 'Nintendo'; this.device.model = 'DSi'; this.device.type = 'gaming'; this.device.identified = true; } if (ua.match('Nintendo 3DS')) { this.os.name = ''; this.device.manufacturer = 'Nintendo'; this.device.model = '3DS'; this.device.type = 'gaming'; if (match = /Version\/([0-9.]*)/.exec(ua)) { this.os.version = new Version({ value: match[1] }); } this.device.identified = true; } if (ua.match('PlayStation Portable')) { this.os.name = ''; this.device.manufacturer = 'Sony'; this.device.model = 'Playstation Portable'; this.device.type = 'gaming'; this.device.identified = true; } if (ua.match('PlayStation Vita')) { this.os.name = ''; if (match = /PlayStation Vita ([0-9.]*)/.exec(ua)) { this.os.version = new Version({ value: match[1] }); } this.device.manufacturer = 'Sony'; this.device.model = 'PlayStation Vita'; this.device.type = 'gaming'; this.device.identified = true; } if (ua.match(/PlayStation 3/i)) { this.os.name = ''; if (match = /PLAYSTATION 3;? ([0-9.]*)/.exec(ua)) { this.os.version = new Version({ value: match[1] }); } this.device.manufacturer = 'Sony'; this.device.model = 'Playstation 3'; this.device.type = 'gaming'; this.device.identified = true; } /**************************************************** * Panasonic Smart Viera * * Mozilla/5.0 (FreeBSD; U; Viera; ja-JP) AppleWebKit/535.1 (KHTML, like Gecko) Viera/1.2.4 Chrome/14.0.835.202 Safari/535.1 */ if (ua.match('Viera')) { this.os.name = ''; this.device.manufacturer = 'Panasonic'; this.device.model = 'Smart Viera'; this.device.type = 'television'; this.device.identified = true; } /**************************************************** * Sharp AQUOS TV * * Mozilla/5.0 (DTV) AppleWebKit/531.2 (KHTML, like Gecko) AQUOSBrowser/1.0 (US00DTV;V;0001;0001) * Mozilla/5.0 (DTV) AppleWebKit/531.2+ (KHTML, like Gecko) Espial/6.0.4 AQUOSBrowser/1.0 (CH00DTV;V;0001;0001) * Opera/9.80 (Linux armv6l; U; en) Presto/2.8.115 Version/11.10 AQUOS-AS/1.0 LC-40LE835X */ if (ua.match('AQUOSBrowser') || ua.match('AQUOS-AS')) { this.os.name = ''; this.device.manufacturer = STRINGS_SHARP; this.device.model = 'Aquos TV'; this.device.type = 'television'; this.device.identified = true; } /**************************************************** * Samsung Smart TV * * Mozilla/5.0 (SmartHub; SMART-TV; U; Linux/SmartTV; Maple2012) AppleWebKit/534.7 (KHTML, like Gecko) SmartTV Safari/534.7 * Mozilla/5.0 (SmartHub; SMART-TV; U; Linux/SmartTV) AppleWebKit/531.2+ (KHTML, like Gecko) WebBrowser/1.0 SmartTV Safari/531.2+ */ if (ua.match('SMART-TV')) { this.os.name = ''; this.device.manufacturer = STRINGS_SAMSUNG; this.device.model = 'Smart TV'; this.device.type = 'television'; this.device.identified = true; if (match = /Maple([0-9]*)/.exec(ua)) { this.device.model += ' ' + match[1]; } } /**************************************************** * Sony Internet TV * * Opera/9.80 (Linux armv7l; U; InettvBrowser/2.2(00014A;SonyDTV115;0002;0100) KDL-46EX640; CC/USA; en) Presto/2.8.115 Version/11.10 * Opera/9.80 (Linux armv7l; U; InettvBrowser/2.2(00014A;SonyDTV115;0002;0100) KDL-40EX640; CC/USA; en) Presto/2.10.250 Version/11.60 * Opera/9.80 (Linux armv7l; U; InettvBrowser/2.2(00014A;SonyDTV115;0002;0100) N/A; CC/USA; en) Presto/2.8.115 Version/11.10 * Opera/9.80 (Linux mips; U; InettvBrowser/2.2 (00014A;SonyDTV115;0002;0100) ; CC/JPN; en) Presto/2.9.167 Version/11.50 * Opera/9.80 (Linux mips; U; InettvBrowser/2.2 (00014A;SonyDTV115;0002;0100) AZ2CVT2; CC/CAN; en) Presto/2.7.61 Version/11.00 * Opera/9.80 (Linux armv6l; Opera TV Store/4207; U; (SonyBDP/BDV11); en) Presto/2.9.167 Version/11.50 * Opera/9.80 (Linux armv6l ; U; (SonyBDP/BDV11); en) Presto/2.6.33 Version/10.60 * Opera/9.80 (Linux armv6l; U; (SonyBDP/BDV11); en) Presto/2.8.115 Version/11.10 */ if (ua.match('SonyDTV|SonyBDP|SonyCEBrowser')) { this.os.name = ''; this.device.manufacturer = 'Sony'; this.device.model = 'Internet TV'; this.device.type = 'television'; this.device.identified = true; } /**************************************************** * Philips Net TV * * Opera/9.70 (Linux armv6l ; U; CE-HTML/1.0 NETTV/2.0.2; en) Presto/2.2.1 * Opera/9.80 (Linux armv6l ; U; CE-HTML/1.0 NETTV/3.0.1;; en) Presto/2.6.33 Version/10.60 * Opera/9.80 (Linux mips; U; CE-HTML/1.0 NETTV/3.0.1; PHILIPS-AVM-2012; en) Presto/2.9.167 Version/11.50 * Opera/9.80 (Linux mips ; U; HbbTV/1.1.1 (; Philips; ; ; ; ) CE-HTML/1.0 NETTV/3.1.0; en) Presto/2.6.33 Version/10.70 * Opera/9.80 (Linux i686; U; HbbTV/1.1.1 (; Philips; ; ; ; ) CE-HTML/1.0 NETTV/3.1.0; en) Presto/2.9.167 Version/11.50 */ if (ua.match('NETTV\/')) { this.os.name = ''; this.device.manufacturer = 'Philips'; this.device.model = 'Net TV'; this.device.type = 'television'; this.device.identified = true; } /**************************************************** * LG NetCast TV * * Mozilla/5.0 (DirectFB; Linux armv7l) AppleWebKit/534.26+ (KHTML, like Gecko) Version/5.0 Safari/534.26+ LG Browser/5.00.00(+mouse+3D+SCREEN+TUNER; LGE; GLOBAL-PLAT4; 03.09.22; 0x00000001;); LG NetCast.TV-2012 * Mozilla/5.0 (DirectFB; Linux armv7l) AppleWebKit/534.26+ (KHTML, like Gecko) Version/5.0 Safari/534.26+ LG Browser/5.00.00(+SCREEN+TUNER; LGE; GLOBAL-PLAT4; 01.00.00; 0x00000001;); LG NetCast.TV-2012 * Mozilla/5.0 (DirectFB; U; Linux armv6l; en) AppleWebKit/531.2 (KHTML, like Gecko) Safari/531.2 LG Browser/4.1.4( BDP; LGE; Media/BD660; 6970; abc;); LG NetCast.Media-2011 * Mozilla/5.0 (DirectFB; U; Linux 7631; en) AppleWebKit/531.2 (KHTML, like Gecko) Safari/531.2 LG Browser/4.1.4( NO_NUM; LGE; Media/SP520; ST.3.97.409.F; 0x00000001;); LG NetCast.Media-2011 * Mozilla/5.0 (DirectFB; U; Linux 7630; en) AppleWebKit/531.2 (KHTML, like Gecko) Safari/531.2 LG Browser/4.1.4( 3D BDP NO_NUM; LGE; Media/ST600; LG NetCast.Media-2011 * (LGSmartTV/1.0) AppleWebKit/534.23 OBIGO-T10/2.0 */ if (match = /LG NetCast\.(?:TV|Media)-([0-9]*)/.exec(ua)) { this.os.name = ''; this.device.manufacturer = STRINGS_LG; this.device.model = 'NetCast TV ' + match[1]; this.device.type = 'television'; this.device.identified = true; } if (match = /LGSmartTV/.exec(ua)) { this.os.name = ''; this.device.manufacturer = STRINGS_LG; this.device.model = 'Smart TV'; this.device.type = 'television'; this.device.identified = true; } /**************************************************** * Toshiba Smart TV * * Mozilla/5.0 (Linux mipsel; U; HbbTV/1.1.1 (; TOSHIBA; DTV_RL953; 56.7.66.7; t12; ) ; ToshibaTP/1.3.0 (+VIDEO_MP4+VIDEO_X_MS_ASF+AUDIO_MPEG+AUDIO_MP4+DRM+NATIVELAUNCH) ; en) AppleWebKit/534.1 (KHTML, like Gecko) * Mozilla/5.0 (DTV; TSBNetTV/T32013713.0203.7DD; TVwithVideoPlayer; like Gecko) NetFront/4.1 DTVNetBrowser/2.2 (000039;T32013713;0203;7DD) InettvBrowser/2.2 (000039;T32013713;0203;7DD) * Mozilla/5.0 (Linux mipsel; U; HbbTV/1.1.1 (; TOSHIBA; 40PX200; 0.7.3.0.; t12; ) ; Toshiba_TP/1.3.0 (+VIDEO_MP4+AUDIO_MPEG+AUDIO_MP4+VIDEO_X_MS_ASF+OFFLINEAPP) ; en) AppleWebKit/534.1 (KHTML, like Gec */ if (ua.match('Toshiba_?TP\/') || ua.match('TSBNetTV\/')) { this.os.name = ''; this.device.manufacturer = 'Toshiba'; this.device.model = 'Smart TV'; this.device.type = 'television'; this.device.identified = true; } /**************************************************** * MachBlue XT */ if (match = /mbxtWebKit\/([0-9.]*)/.exec(ua)) { this.os.name = ''; this.browser.name = 'MachBlue XT' this.browser.version = new Version({ value: match[1], details: 2 }); this.device.type = 'television'; } /**************************************************** * ADB */ if (match = /\(ADB; ([^\)]+)\)/.exec(ua)) { this.os.name = ''; this.device.manufacturer = 'ADB'; this.device.model = (match[1] !== 'Unknown' ? match[1].replace('ADB', '') + ' ' : '') + 'IPTV receiver'; this.device.type = 'television'; this.device.identified = true; } /**************************************************** * MStar */ if (ua.match(/Mstar;OWB/)) { this.os.name = ''; this.device.manufacturer = 'MStar'; this.device.model = 'PVR'; this.device.type = 'television'; this.device.identified = true; this.browser.name = 'Origyn Web Browser'; } /**************************************************** * TechniSat */ if (match = /\TechniSat ([^;]+);/.exec(ua)) { this.os.name = ''; this.device.manufacturer = 'TechniSat'; this.device.model = match[1]; this.device.type = 'television'; this.device.identified = true; } /**************************************************** * Technicolor */ if (match = /\Technicolor_([^;]+);/.exec(ua)) { this.os.name = ''; this.device.manufacturer = 'Technicolor'; this.device.model = match[1]; this.device.type = 'television'; this.device.identified = true; } /**************************************************** * Winbox Evo2 */ if (match = /Winbox Evo2/.exec(ua)) { this.os.name = ''; this.device.manufacturer = 'Winbox'; this.device.model = 'Evo2'; this.device.type = 'television'; this.device.identified = true; } /**************************************************** * Roku */ if (match = /^Roku\/DVP-([0-9]+)/.exec(ua)) { this.device.manufacturer = 'Roku'; this.device.type = 'television'; switch (match[1]) { case '2000': this.device.model = 'HD'; break; case '2050': this.device.model = 'XD'; break; case '2100': this.device.model = 'XDS'; break; case '2400': this.device.model = 'LT'; break; case '3000': this.device.model = '2 HD'; break; case '3050': this.device.model = '2 XD'; break; case '3100': this.device.model = '2 XS'; break; } this.device.identified = true; } if (match = /HbbTV\/1.1.1 \([^;]*;\s*([^;]*)\s*;\s*([^;]*)\s*;/.exec(ua)) { var vendorName = match[1].trim(); var modelName = match[2].trim(); if (!this.device.manufacturer && vendorName !== '' && vendorName !== 'vendorName') { switch (vendorName) { case 'LGE': this.device.manufacturer = 'LG'; break; case 'TOSHIBA': this.device.manufacturer = 'Toshiba'; break; case 'smart': this.device.manufacturer = 'Smart'; break; case 'tv2n': this.device.manufacturer = 'TV2N'; break; default: this.device.manufacturer = vendorName; } if (!this.device.model && modelName !== '' && modelName !== 'modelName') { switch (modelName) { case 'GLOBAL_PLAT3': this.device.model = 'NetCast TV'; break; case 'SmartTV2012': this.device.model = 'Smart TV 2012'; break; case 'videoweb': this.device.model = 'Videoweb'; break; default: this.device.model = modelName; } if (vendorName === 'Humax') { this.device.model = this.device.model.toUpperCase(); } this.device.identified = true; this.os.name = ''; } } this.device.type = 'television'; } /**************************************************** * Detect type based on common identifiers */ if (ua.match('InettvBrowser')) { this.device.type = 'television'; } if (ua.match('MIDP')) { this.device.type = 'mobile'; } /**************************************************** * Try to detect any devices based on common * locations of model ids */ if (!this.device.model && !this.device.manufacturer) { var candidates = []; if (!ua.match(/^(Mozilla|Opera)/)) if (match = /^(?:MQQBrowser\/[0-9\.]+\/)?([^\s]+)/.exec(ua)) { match[1] = match[1].replace(/_TD$/, ''); match[1] = match[1].replace(/_CMCC$/, ''); match[1] = match[1].replace(/[_ ]Mozilla$/, ''); match[1] = match[1].replace(/ Linux$/, ''); match[1] = match[1].replace(/ Opera$/, ''); match[1] = match[1].replace(/\/[0-9].*$/, ''); candidates.push(match[1]); } if (match = /[0-9]+x[0-9]+; ([^;]+)/.exec(ua)) { candidates.push(match[1]); } if (match = /[0-9]+X[0-9]+ ([^;\/\(\)]+)/.exec(ua)) { candidates.push(match[1]); } if (match = /Windows NT 5.1; ([^;]+); Windows Phone/.exec(ua)) { candidates.push(match[1]); } if (match = /\) PPC; (?:[0-9]+x[0-9]+; )?([^;\/\(\)]+)/.exec(ua)) { candidates.push(match[1]); } if (match = /\(([^;]+); U; Windows Mobile/.exec(ua)) { candidates.push(match[1]); } if (match = /Vodafone\/1.0\/([^\/]+)/.exec(ua)) { candidates.push(match[1]); } if (match = /\ ([^\s]+)$/.exec(ua)) { candidates.push(match[1]); } for (var i = 0; i < candidates.length; i++) { if (!this.device.model && !this.device.manufacturer) { var model = cleanupModel(candidates[i]); var result = false; if (this.os.name === 'Android') { if (typeof ANDROID_MODELS[model] !== 'undefined') { this.device.manufacturer = ANDROID_MODELS[model][0]; this.device.model = ANDROID_MODELS[model][1]; if (typeof ANDROID_MODELS[model][2] !== 'undefined') this.device.type = ANDROID_MODELS[model][2]; this.device.identified = true; result = true; } } if (!this.os.name || this.os.name === 'Windows' || this.os.name === 'Windows Mobile' || this.os.name === 'Windows CE') { if (typeof WINDOWS_MOBILE_MODELS[model] !== 'undefined') { this.device.manufacturer = WINDOWS_MOBILE_MODELS[model][0]; this.device.model = WINDOWS_MOBILE_MODELS[model][1]; this.device.type = 'mobile'; this.device.identified = true; if (this.os.name !== 'Windows Mobile') { this.os.name = 'Windows Mobile'; this.os.version = null; } result = true; } } } if (!result) { if (match = /^GIONEE-([^\s]+)/.exec(candidates[i])) { this.device.manufacturer = 'Gionee'; this.device.model = cleanupModel(match[1]); this.device.type = 'mobile'; this.device.identified = true; } if (match = /^HTC_?([^\/_]+)(?:\/|_|$)/.exec(candidates[i])) { this.device.manufacturer = STRINGS_HTC; this.device.model = cleanupModel(match[1]); this.device.type = 'mobile'; this.device.identified = true; } if (match = /^HUAWEI-([^\/]*)/.exec(candidates[i])) { this.device.manufacturer = STRINGS_HUAWEI; this.device.model = cleanupModel(match[1]); this.device.type = 'mobile'; this.device.identified = true; } if (match = /(?:^|\()LGE?(?:\/|-|_|\s)([^\s]*)/.exec(candidates[i])) { this.device.manufacturer = STRINGS_LG; this.device.model = cleanupModel(match[1]); this.device.type = 'mobile'; this.device.identified = true; } if (match = /^MOT-([^\/_]+)(?:\/|_|$)/.exec(candidates[i])) { this.device.manufacturer = STRINGS_MOTOROLA; this.device.model = cleanupModel(match[1]); this.device.type = 'mobile'; this.device.identified = true; } if (match = /^Motorola_([^\/_]+)(?:\/|_|$)/.exec(candidates[i])) { this.device.manufacturer = STRINGS_MOTOROLA; this.device.model = cleanupModel(match[1]); this.device.type = 'mobile'; this.device.identified = true; } if (match = /^Nokia([^\/]+)(?:\/|$)/.exec(candidates[i])) { this.device.manufacturer = 'Nokia'; this.device.model = cleanupModel(match[1]); this.device.type = 'mobile'; this.device.identified = true; if (!this.os.name) { this.os.name = 'Series40'; } } if (match = /^SonyEricsson([^\/_]+)(?:\/|_|$)/.exec(candidates[i])) { this.device.manufacturer = STRINGS_SONY_ERICSSON; this.device.model = cleanupModel(match[1]); this.device.type = 'mobile'; this.device.identified = true; } if (match = /^SAMSUNG-([^\/_]+)(?:\/|_|$)/.exec(candidates[i])) { this.device.manufacturer = STRINGS_SAMSUNG; this.device.model = cleanupModel(match[1]); this.device.type = 'mobile'; if (this.os.name === 'Bada') { var manufacturer = 'SAMSUNG'; var model = cleanupModel(this.device.model); if (typeof BADA_MODELS[manufacturer] !== 'undefined' && typeof BADA_MODELS[manufacturer][model] !== 'undefined') { this.device.manufacturer = BADA_MODELS[manufacturer][model][0]; this.device.model = BADA_MODELS[manufacturer][model][1]; this.device.identified = true; } } else if (match = /Jasmine\/([0-9.]*)/.exec(ua)) { var version = match[1]; var manufacturer = 'SAMSUNG'; var model = cleanupModel(this.device.model); if (typeof TOUCHWIZ_MODELS[manufacturer] !== 'undefined' && typeof TOUCHWIZ_MODELS[manufacturer][model] !== 'undefined') { this.device.manufacturer = TOUCHWIZ_MODELS[manufacturer][model][0]; this.device.model = TOUCHWIZ_MODELS[manufacturer][model][1]; this.device.identified = true; this.os.name = 'Touchwiz'; this.os.version = new Version({ value: '2.0' }); } } else if (match = /Dolfin\/([0-9.]*)/.exec(ua)) { var version = match[1]; var manufacturer = 'SAMSUNG'; var model = cleanupModel(this.device.model); if (typeof BADA_MODELS[manufacturer] !== 'undefined' && typeof BADA_MODELS[manufacturer][model] !== 'undefined') { this.device.manufacturer = BADA_MODELS[manufacturer][model][0]; this.device.model = BADA_MODELS[manufacturer][model][1]; this.device.identified = true; this.os.name = 'Bada'; switch (version) { case '2.0': this.os.version = new Version({ value: '1.0' }); break; case '2.2': this.os.version = new Version({ value: '1.2' }); break; case '3.0': this.os.version = new Version({ value: '2.0' }); break; } } if (typeof TOUCHWIZ_MODELS[manufacturer] !== 'undefined' && typeof TOUCHWIZ_MODELS[manufacturer][model] !== 'undefined') { this.device.manufacturer = TOUCHWIZ_MODELS[manufacturer][model][0]; this.device.model = TOUCHWIZ_MODELS[manufacturer][model][1]; this.device.identified = true; this.os.name = 'Touchwiz'; switch (version) { case '1.0': this.os.version = new Version({ value: '1.0' }); break; case '1.5': this.os.version = new Version({ value: '2.0' }); break; case '2.0': this.os.version = new Version({ value: '3.0' }); break; } } } } } } } if (match = /\((?:LG[-|\/])(.*) (?:Browser\/)?AppleWebkit/.exec(ua)) { this.device.manufacturer = STRINGS_LG; this.device.model = match[1]; this.device.type = 'mobile'; this.device.identified = true; } if (match = /^Mozilla\/5.0 \((?:Nokia|NOKIA)(?:\s?)([^\)]+)\)UC AppleWebkit\(like Gecko\) Safari\/530$/.exec(ua)) { this.device.manufacturer = 'Nokia'; this.device.model = match[1]; this.device.type = 'mobile'; this.device.identified = true; this.os.name = 'Series60'; } /**************************************************** * Safari */ if (ua.match('Safari')) { if (this.os.name === 'iOS') { this.browser.stock = true; this.browser.hidden = true; this.browser.name = 'Safari'; this.browser.version = null; } if (this.os.name === 'Mac OS X' || this.os.name === 'Windows') { this.browser.name = 'Safari'; this.browser.stock = this.os.name === 'Mac OS X'; if (match = /Version\/([0-9\.]+)/.exec(ua)) { this.browser.version = new Version({ value: match[1] }); } if (ua.match(/AppleWebKit\/[0-9\.]+\+/)) { this.browser.name = 'WebKit Nightly Build'; this.browser.version = null; } } } /**************************************************** * Internet Explorer */ if (ua.match('MSIE')) { this.browser.name = 'Internet Explorer'; if (ua.match('IEMobile') || ua.match('Windows CE') || ua.match('Windows Phone') || ua.match('WP7')) { this.browser.name = 'Mobile Internet Explorer'; } if (match = /MSIE ([0-9.]*)/.exec(ua)) { this.browser.version = new Version({ value: match[1] }); } } /**************************************************** * Opera */ if (ua.match(/Opera/i)) { this.browser.stock = false; this.browser.name = 'Opera'; if (match = /Opera[\/| ]([0-9.]*)/.exec(ua)) { this.browser.version = new Version({ value: match[1] }); } if (match = /Version\/([0-9.]*)/.exec(ua)) { if (parseFloat(match[1]) >= 10) { this.browser.version = new Version({ value: match[1] }); } else { this.browser.version = null; } } if (this.browser.version && ua.match('Edition Labs')) { this.browser.version.type = 'alpha'; this.browser.channel = 'Labs'; } if (this.browser.version && ua.match('Edition Next')) { this.browser.version.type = 'alpha'; this.browser.channel = 'Next'; } if (ua.match('Opera Tablet')) { this.browser.name = 'Opera Mobile'; this.device.type = 'tablet'; } if (ua.match('Opera Mobi')) { this.browser.name = 'Opera Mobile'; this.device.type = 'mobile'; } if (match = /Opera Mini;/.exec(ua)) { this.browser.name = 'Opera Mini'; this.browser.version = null; this.browser.mode = 'proxy'; this.device.type = 'mobile'; } if (match = /Opera Mini\/(?:att\/)?([0-9.]*)/.exec(ua)) { this.browser.name = 'Opera Mini'; this.browser.version = new Version({ value: match[1], details: -1 }); this.browser.mode = 'proxy'; this.device.type = 'mobile'; } if (this.browser.name === 'Opera' && this.device.type === 'mobile') { this.browser.name = 'Opera Mobile'; if (ua.match(/BER/)) { this.browser.name = 'Opera Mini'; this.browser.version = null; } } if (ua.match('InettvBrowser')) { this.device.type = 'television'; } if (ua.match('Opera TV') || ua.match('Opera-TV')) { this.browser.name = 'Opera'; this.device.type = 'television'; } if (ua.match('Linux zbov')) { this.browser.name = 'Opera Mobile'; this.browser.mode = 'desktop'; this.device.type = 'mobile'; this.os.name = null; this.os.version = null; } if (ua.match('Linux zvav')) { this.browser.name = 'Opera Mini'; this.browser.version = null; this.browser.mode = 'desktop'; this.device.type = 'mobile'; this.os.name = null; this.os.version = null; } } /**************************************************** * Firefox */ if (ua.match('Firefox')) { this.browser.stock = false; this.browser.name = 'Firefox'; if (match = /Firefox\/([0-9ab.]*)/.exec(ua)) { this.browser.version = new Version({ value: match[1] }); } if (this.browser.version.type === 'alpha') { this.browser.channel = 'Aurora'; } if (this.browser.version.type === 'beta') { this.browser.channel = 'Beta'; } if (ua.match('Fennec')) { this.device.type = 'mobile'; } if (ua.match('Mobile; rv')) { this.device.type = 'mobile'; } if (ua.match('Tablet; rv')) { this.device.type = 'tablet'; } if (this.device.type === 'mobile' || this.device.type === 'tablet') { this.browser.name = 'Firefox Mobile'; } } if (ua.match('Namoroka')) { this.browser.stock = false; this.browser.name = 'Firefox'; if (match = /Namoroka\/([0-9ab.]*)/.exec(ua)) { this.browser.version = new Version({ value: match[1] }); } this.browser.channel = 'Namoroka'; } if (ua.match('Shiretoko')) { this.browser.stock = false; this.browser.name = 'Firefox'; if (match = /Shiretoko\/([0-9ab.]*)/.exec(ua)) { this.browser.version = new Version({ value: match[1] }); } this.browser.channel = 'Shiretoko'; } if (ua.match('Minefield')) { this.browser.stock = false; this.browser.name = 'Firefox'; if (match = /Minefield\/([0-9ab.]*)/.exec(ua)) { this.browser.version = new Version({ value: match[1] }); } this.browser.channel = 'Minefield'; } if (ua.match('Firebird')) { this.browser.stock = false; this.browser.name = 'Firebird'; if (match = /Firebird\/([0-9ab.]*)/.exec(ua)) { this.browser.version = new Version({ value: match[1] }); } } /**************************************************** * SeaMonkey */ if (ua.match('SeaMonkey')) { this.browser.stock = false; this.browser.name = 'SeaMonkey'; if (match = /SeaMonkey\/([0-9.]*)/.exec(ua)) { this.browser.version = new Version({ value: match[1] }); } } /**************************************************** * Netscape */ if (ua.match('Netscape')) { this.browser.stock = false; this.browser.name = 'Netscape'; if (match = /Netscape[0-9]?\/([0-9.]*)/.exec(ua)) { this.browser.version = new Version({ value: match[1] }); } } /**************************************************** * Konqueror */ if (ua.match('[k|K]onqueror/')) { this.browser.name = 'Konqueror'; if (match = /[k|K]onqueror\/([0-9.]*)/.exec(ua)) { this.browser.version = new Version({ value: match[1] }); } } /**************************************************** * Chrome */ if (match = /(?:Chrome|CrMo|CriOS)\/([0-9.]*)/.exec(ua)) { this.browser.stock = false; this.browser.name = 'Chrome'; this.browser.version = new Version({ value: match[1] }); if (this.os.name === 'Android') { switch (match[1].split('.', 3).join('.')) { case '16.0.912': this.browser.channel = 'Beta'; break; case '18.0.1025': this.browser.version.details = 1; break; default: this.browser.channel = 'Nightly'; break; } } else { switch (match[1].split('.', 3).join('.')) { case '0.2.149': case '0.3.154': case '0.4.154': case '1.0.154': case '2.0.172': case '3.0.195': case '4.0.249': case '4.1.249': case '5.0.375': case '6.0.472': case '7.0.517': case '8.0.552': case '9.0.597': case '10.0.648': case '11.0.696': case '12.0.742': case '13.0.782': case '14.0.835': case '15.0.874': case '16.0.912': case '17.0.963': case '18.0.1025': case '19.0.1084': case '20.0.1132': case '21.0.1180': if (this.browser.version.minor === 0) this.browser.version.details = 1; else this.browser.version.details = 2; break; default: this.browser.channel = 'Nightly'; break; } } } /**************************************************** * Chrome Frame */ if (ua.match('chromeframe')) { this.browser.stock = false; this.browser.name = 'Chrome Frame'; if (match = /chromeframe\/([0-9.]*)/.exec(ua)) { this.browser.version = new Version({ value: match[1] }); } } /**************************************************** * Chromium */ if (ua.match('Chromium')) { this.browser.stock = false; this.browser.channel = ''; this.browser.name = 'Chromium'; if (match = /Chromium\/([0-9.]*)/.exec(ua)) { this.browser.version = new Version({ value: match[1] }); } } /**************************************************** * BrowserNG */ if (ua.match('BrowserNG')) { this.browser.name = 'Nokia Browser'; if (match = /BrowserNG\/([0-9.]*)/.exec(ua)) { this.browser.version = new Version({ value: match[1], details: 3, builds: false }); } } /**************************************************** * Nokia Browser */ if (ua.match('NokiaBrowser')) { this.browser.name = 'Nokia Browser'; if (match = /NokiaBrowser\/([0-9.]*)/.exec(ua)) { this.browser.version = new Version({ value: match[1], details: 3 }); } } /**************************************************** * MicroB */ if (ua.match('Maemo[ |_]Browser')) { this.browser.name = 'MicroB'; if (match = /Maemo[ |_]Browser[ |_]([0-9.]*)/.exec(ua)) { this.browser.version = new Version({ value: match[1], details: 3 }); } } /**************************************************** * NetFront */ if (ua.match('NetFront')) { this.browser.name = 'NetFront'; this.device.type = 'mobile'; if (match = /NetFront\/([0-9.]*)/.exec(ua)) { this.browser.version = new Version({ value: match[1] }); } if (ua.match('InettvBrowser')) { this.device.type = 'television'; } } /**************************************************** * Silk */ if (ua.match('Silk')) { if (ua.match('Silk-Accelerated')) { this.browser.name = 'Silk'; if (match = /Silk\/([0-9.]*)/.exec(ua)) { this.browser.version = new Version({ value: match[1], details: 2 }); } this.device.manufacturer = 'Amazon'; this.device.model = 'Kindle Fire'; this.device.type = 'tablet'; this.device.identified = true; if (this.os.name !== 'Android') { this.os.name = 'Android'; this.os.version = null; } } } /**************************************************** * Dolfin */ if (ua.match('Dolfin')) { this.browser.name = 'Dolfin'; if (match = /Dolfin\/([0-9.]*)/.exec(ua)) { this.browser.version = new Version({ value: match[1] }); } } /**************************************************** * Iris */ if (ua.match('Iris')) { this.browser.name = 'Iris'; this.device.type = 'mobile'; this.device.model = null; this.device.manufacturer = null; this.os.name = 'Windows Mobile'; this.os.version = null; if (match = /Iris\/([0-9.]*)/.exec(ua)) { this.browser.version = new Version({ value: match[1] }); } if (match = / WM([0-9]) /.exec(ua)) { this.os.version = new Version({ value: match[1] + '.0' }); } else { this.browser.mode = 'desktop'; } } /**************************************************** * Jasmine */ if (ua.match('Jasmine')) { this.browser.name = 'Jasmine'; if (match = /Jasmine\/([0-9.]*)/.exec(ua)) { this.browser.version = new Version({ value: match[1] }); } } /**************************************************** * Boxee */ if (ua.match('Boxee')) { this.browser.name = 'Boxee'; this.device.type = 'television'; if (match = /Boxee\/([0-9.]*)/.exec(ua)) { this.browser.version = new Version({ value: match[1] }); } } /**************************************************** * Espial */ if (ua.match('Espial')) { this.browser.name = 'Espial'; this.os.name = ''; this.os.version = null; if (this.device.type !== 'television') { this.device.type = 'television'; this.device.model = null; this.device.manufacturer = null; } if (match = /Espial\/([0-9.]*)/.exec(ua)) { this.browser.version = new Version({ value: match[1] }); } } /**************************************************** * ANT Galio */ if (match = /ANTGalio\/([0-9.]*)/.exec(ua)) { this.browser.name = 'ANT Galio'; this.browser.version = new Version({ value: match[1], details: 3 }); this.device.type = 'television'; } /**************************************************** * NetFront NX */ if (match = /NX\/([0-9.]*)/.exec(ua)) { this.browser.name = 'NetFront NX'; this.browser.version = new Version({ value: match[1], details: 2 }); if (match = /DTV/i.exec(ua)) { this.device.type = 'television'; } else if (match = /mobile/i.exec(ua)) { this.device.type = 'mobile'; } else { this.device.type = 'desktop'; } this.os.name = null; this.os.version = null; } /**************************************************** * Obigo */ if (ua.match(/Obigo/i)) { this.browser.name = 'Obigo'; if (match = /Obigo\/([0-9.]*)/i.exec(ua)) { this.browser.version = new Version({ value: match[1] }); } if (match = /Obigo\/([A-Z])([0-9.]*)/i.exec(ua)) { this.browser.name = 'Obigo ' + match[1]; this.browser.version = new Version({ value: match[2] }); } if (match = /Obigo-([A-Z])([0-9.]*)\//i.exec(ua)) { this.browser.name = 'Obigo ' + match[1]; this.browser.version = new Version({ value: match[2] }); } } /**************************************************** * UC Web */ if (ua.match('UCWEB')) { this.browser.stock = false; this.browser.name = 'UC Browser'; if (match = /UCWEB([0-9]*[.][0-9]*)/.exec(ua)) { this.browser.version = new Version({ value: match[1], details: 3 }); } if (this.os.name === 'Linux') { this.os.name = ''; } this.device.type = 'mobile'; if (match = /^IUC \(U;\s?iOS ([0-9\.]+);/.exec(ua)) { this.os.name = 'iOS'; this.os.version = new Version({ value: match[1] }); } if (match = /^JUC \(Linux; U; ([0-9\.]+)[^;]*; [^;]+; ([^;]*[^\s])\s*; [0-9]+\*[0-9]+\)/.exec(ua)) { var model = cleanupModel(match[2]); this.os.name = 'Android'; this.os.version = new Version({ value: match[1] }); if (typeof ANDROID_MODELS[model] !== 'undefined') { this.device.manufacturer = ANDROID_MODELS[model][0]; this.device.model = ANDROID_MODELS[model][1]; if (typeof ANDROID_MODELS[model][2] !== 'undefined') this.device.type = ANDROID_MODELS[model][2]; this.device.identified = true; } } } if (ua.match(/\) UC /)) { this.browser.stock = false; this.browser.name = 'UC Browser'; } if (match = /UCBrowser\/([0-9.]*)/.exec(ua)) { this.browser.stock = false; this.browser.name = 'UC Browser'; this.browser.version = new Version({ value: match[1], details: 2 }); } /**************************************************** * NineSky */ if (match = /Ninesky(?:-android-mobile(?:-cn)?)?\/([0-9.]*)/.exec(ua)) { this.browser.name = 'NineSky'; this.browser.version = new Version({ value: match[1] }); if (this.os.name !== 'Android') { this.os.name = 'Android'; this.os.version = null; this.device.manufacturer = null; this.device.model = null; } } /**************************************************** * Skyfire */ if (match = /Skyfire\/([0-9.]*)/.exec(ua)) { this.browser.name = 'Skyfire'; this.browser.version = new Version({ value: match[1] }); this.device.type = 'mobile'; this.os.name = 'Android'; this.os.version = null; } /**************************************************** * Dolphin HD */ if (match = /DolphinHDCN\/([0-9.]*)/.exec(ua)) { this.browser.name = 'Dolphin'; this.browser.version = new Version({ value: match[1] }); this.device.type = 'mobile'; if (this.os.name !== 'Android') { this.os.name = 'Android'; this.os.version = null; } } if (match = /Dolphin\/INT/.exec(ua)) { this.browser.name = 'Dolphin'; this.device.type = 'mobile'; } /**************************************************** * QQ Browser */ if (match = /(M?QQBrowser)\/([0-9.]*)/.exec(ua)) { this.browser.name = 'QQ Browser'; var version = match[2]; if (version.match(/^[0-9][0-9]$/)) version = version[0] + '.' + version[1]; this.browser.version = new Version({ value: version, details: 2 }); this.browser.channel = '' if (!this.os.name && match[1] === 'QQBrowser') { this.os.name = 'Windows'; } } /**************************************************** * iBrowser */ if (match = /(iBrowser)\/([0-9.]*)/.exec(ua)) { this.browser.name = 'iBrowser'; var version = match[2]; if (version.match(/[0-9][0-9]/)) version = version[0] + '.' + version[1]; this.browser.version = new Version({ value: version, details: 2 }); this.browser.channel = '' } /**************************************************** * Puffin */ if (match = /Puffin\/([0-9.]*)/.exec(ua)) { this.browser.name = 'Puffin'; this.browser.version = new Version({ value: match[1], details: 2 }); this.device.type = 'mobile'; if (this.os.name === 'Linux') { this.os.name = null; this.os.version = null; } } /**************************************************** * 360 Extreme Explorer */ if (ua.match('360EE')) { this.browser.stock = false; this.browser.name = '360 Extreme Explorer'; this.browser.version = null; } /**************************************************** * Midori */ if (match = /Midori\/([0-9.]*)/.exec(ua)) { this.browser.name = 'Midori'; this.browser.version = new Version({ value: match[1] }); if (this.os.name !== 'Linux') { this.os.name = 'Linux'; this.os.version = null; } this.device.manufacturer = null; this.device.model = null; this.device.type = 'desktop'; } /**************************************************** * Others */ var browsers = [{ name: 'AdobeAIR', regexp: /AdobeAIR\/([0-9.]*)/ }, { name: 'Awesomium', regexp: /Awesomium\/([0-9.]*)/ }, { name: 'Canvace', regexp: /Canvace Standalone\/([0-9.]*)/ }, { name: 'Ekioh', regexp: /Ekioh\/([0-9.]*)/ }, { name: 'JavaFX', regexp: /JavaFX\/([0-9.]*)/ }, { name: 'GFXe', regexp: /GFXe\/([0-9.]*)/ }, { name: 'LuaKit', regexp: /luakit/ }, { name: 'Titanium', regexp: /Titanium\/([0-9.]*)/ }, { name: 'OpenWebKitSharp', regexp: /OpenWebKitSharp/ }, { name: 'Prism', regexp: /Prism\/([0-9.]*)/ }, { name: 'Qt', regexp: /Qt\/([0-9.]*)/ }, { name: 'QtEmbedded', regexp: /QtEmbedded/ }, { name: 'QtEmbedded', regexp: /QtEmbedded.*Qt\/([0-9.]*)/ }, { name: 'RhoSimulator', regexp: /RhoSimulator/ }, { name: 'UWebKit', regexp: /UWebKit\/([0-9.]*)/ }, { name: 'PhantomJS', regexp: /PhantomJS\/([0-9.]*)/ }, { name: 'Google Web Preview', regexp: /Google Web Preview/ }, { name: 'Google Earth', regexp: /Google Earth\/([0-9.]*)/ }, { name: 'EA Origin', regexp: /Origin\/([0-9.]*)/ }, { name: 'SecondLife', regexp: /SecondLife\/([0-9.]*)/ }, { name: 'Valve Steam', regexp: /Valve Steam/ }, { name: 'Songbird', regexp: /Songbird\/([0-9.]*)/ }, { name: 'Thunderbird', regexp: /Thunderbird\/([0-9.]*)/ }, { name: 'Abrowser', regexp: /Abrowser\/([0-9.]*)/ }, { name: 'arora', regexp: /[Aa]rora\/([0-9.]*)/ }, { name: 'Baidu Browser', regexp: /M?BaiduBrowser\/([0-9.]*)/i }, { name: 'Camino', regexp: /Camino\/([0-9.]*)/ }, { name: 'Canure', regexp: /Canure\/([0-9.]*)/, details: 3 }, { name: 'CometBird', regexp: /CometBird\/([0-9.]*)/ }, { name: 'Comodo Dragon', regexp: /Comodo_Dragon\/([0-9.]*)/, details: 2 }, { name: 'Conkeror', regexp: /[Cc]onkeror\/([0-9.]*)/ }, { name: 'CoolNovo', regexp: /(?:CoolNovo|CoolNovoChromePlus)\/([0-9.]*)/, details: 3 }, { name: 'ChromePlus', regexp: /ChromePlus(?:\/([0-9.]*))?$/, details: 3 }, { name: 'Daedalus', regexp: /Daedalus ([0-9.]*)/, details: 2 }, { name: 'Demobrowser', regexp: /demobrowser\/([0-9.]*)/ }, { name: 'Dooble', regexp: /Dooble(?:\/([0-9.]*))?/ }, { name: 'DWB', regexp: /dwb(?:-hg)?(?:\/([0-9.]*))?/ }, { name: 'Epiphany', regexp: /Epiphany\/([0-9.]*)/ }, { name: 'FireWeb', regexp: /FireWeb\/([0-9.]*)/ }, { name: 'Flock', regexp: /Flock\/([0-9.]*)/, details: 3 }, { name: 'Galeon', regexp: /Galeon\/([0-9.]*)/, details: 3 }, { name: 'Helium', regexp: /HeliumMobileBrowser\/([0-9.]*)/ }, { name: 'iCab', regexp: /iCab\/([0-9.]*)/ }, { name: 'Iceape', regexp: /Iceape\/([0-9.]*)/ }, { name: 'IceCat', regexp: /IceCat ([0-9.]*)/ }, { name: 'Iceweasel', regexp: /Iceweasel\/([0-9.]*)/ }, { name: 'InternetSurfboard', regexp: /InternetSurfboard\/([0-9.]*)/ }, { name: 'Iron', regexp: /Iron\/([0-9.]*)/, details: 2 }, { name: 'Isis', regexp: /BrowserServer/ }, { name: 'Jumanji', regexp: /jumanji/ }, { name: 'Kazehakase', regexp: /Kazehakase\/([0-9.]*)/ }, { name: 'KChrome', regexp: /KChrome\/([0-9.]*)/, details: 3 }, { name: 'K-Meleon', regexp: /K-Meleon\/([0-9.]*)/ }, { name: 'Leechcraft', regexp: /Leechcraft(?:\/([0-9.]*))?/, details: 2 }, { name: 'Lightning', regexp: /Lightning\/([0-9.]*)/ }, { name: 'Lunascape', regexp: /Lunascape[\/| ]([0-9.]*)/, details: 3 }, { name: 'iLunascape', regexp: /iLunascape\/([0-9.]*)/, details: 3 }, { name: 'Maxthon', regexp: /Maxthon[\/ ]([0-9.]*)/, details: 3 }, { name: 'MiniBrowser', regexp: /MiniBr?owserM\/([0-9.]*)/ }, { name: 'MiniBrowser', regexp: /MiniBrowserMobile\/([0-9.]*)/ }, { name: 'MixShark', regexp: /MixShark\/([0-9.]*)/ }, { name: 'Motorola WebKit', regexp: /MotorolaWebKit\/([0-9.]*)/, details: 3 }, { name: 'NetFront LifeBrowser', regexp: /NetFrontLifeBrowser\/([0-9.]*)/ }, { name: 'Netscape Navigator', regexp: /Navigator\/([0-9.]*)/, details: 3 }, { name: 'Odyssey', regexp: /OWB\/([0-9.]*)/ }, { name: 'OmniWeb', regexp: /OmniWeb/ }, { name: 'Orca', regexp: /Orca\/([0-9.]*)/ }, { name: 'Origyn', regexp: /Origyn Web Browser/ }, { name: 'Palemoon', regexp: /Pale[mM]oon\/([0-9.]*)/ }, { name: 'Phantom', regexp: /Phantom\/V([0-9.]*)/ }, { name: 'Polaris', regexp: /Polaris\/v?([0-9.]*)/i, details: 2 }, { name: 'QtCreator', regexp: /QtCreator\/([0-9.]*)/ }, { name: 'QtQmlViewer', regexp: /QtQmlViewer/ }, { name: 'QtTestBrowser', regexp: /QtTestBrowser\/([0-9.]*)/ }, { name: 'QtWeb', regexp: /QtWeb Internet Browser\/([0-9.]*)/ }, { name: 'QupZilla', regexp: /QupZilla\/([0-9.]*)/ }, { name: 'Roccat', regexp: /Roccat\/([0-9]\.[0-9.]*)/ }, { name: 'Raven for Mac', regexp: /Raven for Mac\/([0-9.]*)/ }, { name: 'rekonq', regexp: /rekonq/ }, { name: 'RockMelt', regexp: /RockMelt\/([0-9.]*)/, details: 2 }, { name: 'Sleipnir', regexp: /Sleipnir\/([0-9.]*)/, details: 3 }, { name: 'SMBrowser', regexp: /SMBrowser/ }, { name: 'Sogou Explorer', regexp: /SE 2.X MetaSr/ }, { name: 'Snowshoe', regexp: /Snowshoe\/([0-9.]*)/, details: 2 }, { name: 'Sputnik', regexp: /Sputnik\/([0-9.]*)/i, details: 3 }, { name: 'Stainless', regexp: /Stainless\/([0-9.]*)/ }, { name: 'SunChrome', regexp: /SunChrome\/([0-9.]*)/ }, { name: 'Surf', regexp: /Surf\/([0-9.]*)/ }, { name: 'TaoBrowser', regexp: /TaoBrowser\/([0-9.]*)/, details: 2 }, { name: 'TaomeeBrowser', regexp: /TaomeeBrowser\/([0-9.]*)/, details: 2 }, { name: 'TazWeb', regexp: /TazWeb/ }, { name: 'Viera', regexp: /Viera\/([0-9.]*)/ }, { name: 'Villanova', regexp: /Villanova\/([0-9.]*)/, details: 3 }, { name: 'Wavelink Velocity', regexp: /Wavelink Velocity Browser\/([0-9.]*)/, details: 2 }, { name: 'WebPositive', regexp: /WebPositive/ }, { name: 'WebRender', regexp: /WebRender/ }, { name: 'Wyzo', regexp: /Wyzo\/([0-9.]*)/, details: 3 }, { name: 'Zetakey', regexp: /Zetakey Webkit\/([0-9.]*)/ }, { name: 'Zetakey', regexp: /Zetakey\/([0-9.]*)/ }] for (var b = 0; b < browsers.length; b++) { if (match = browsers[b].regexp.exec(ua)) { this.browser.name = browsers[b].name; this.browser.channel = ''; this.browser.stock = false; if (match[1]) { this.browser.version = new Version({ value: match[1], details: browsers[b].details || null }); } else { this.browser.version = null; } } } /**************************************************** * WebKit */ if (match = /WebKit\/([0-9.]*)/i.exec(ua)) { this.engine.name = 'Webkit'; this.engine.version = new Version({ value: match[1] }); } if (match = /Browser\/AppleWebKit([0-9.]*)/i.exec(ua)) { this.engine.name = 'Webkit'; this.engine.version = new Version({ value: match[1] }); } /**************************************************** * KHTML */ if (match = /KHTML\/([0-9.]*)/.exec(ua)) { this.engine.name = 'KHTML'; this.engine.version = new Version({ value: match[1] }); } /**************************************************** * Gecko */ if (/Gecko/.exec(ua) && !/like Gecko/i.exec(ua)) { this.engine.name = 'Gecko'; if (match = /; rv:([^\)]+)\)/.exec(ua)) { this.engine.version = new Version({ value: match[1] }); } } /**************************************************** * Presto */ if (match = /Presto\/([0-9.]*)/.exec(ua)) { this.engine.name = 'Presto'; this.engine.version = new Version({ value: match[1] }); } /**************************************************** * Trident */ if (match = /Trident\/([0-9.]*)/.exec(ua)) { this.engine.name = 'Trident'; this.engine.version = new Version({ value: match[1] }); if (this.browser.name === 'Internet Explorer') { if (parseVersion(this.engine.version) === 6 && parseFloat(this.browser.version) < 10) { this.browser.version = new Version({ value: '10.0' }); this.browser.mode = 'compat'; } if (parseVersion(this.engine.version) === 5 && parseFloat(this.browser.version) < 9) { this.browser.version = new Version({ value: '9.0' }); this.browser.mode = 'compat'; } if (parseVersion(this.engine.version) === 4 && parseFloat(this.browser.version) < 8) { this.browser.version = new Version({ value: '8.0' }); this.browser.mode = 'compat'; } } if (this.os.name === 'Windows Phone') { if (parseVersion(this.engine.version) === 5 && parseFloat(this.os.version) < 7.5) { this.os.version = new Version({ value: '7.5' }); } } } /**************************************************** * Corrections */ if (this.os.name === 'Android' && this.browser.stock) { this.browser.hidden = true; } if (this.os.name === 'iOS' && this.browser.name === 'Opera Mini') { this.os.version = null; } if (this.browser.name === 'Midori' && this.engine.name !== 'Webkit') { this.engine.name = 'Webkit'; this.engine.version = null; } if (this.device.type === 'television' && this.browser.name === 'Opera') { this.browser.name = 'Opera Devices'; switch (true) { case this.engine.version.is('2.10'): this.browser.version = new Version({ value: 3.2 }); break; case this.engine.version.is('2.9'): this.browser.version = new Version({ value: 3.1 }); break; case this.engine.version.is('2.8'): this.browser.version = new Version({ value: 3.0 }); break; case this.engine.version.is('2.7'): this.browser.version = new Version({ value: 2.9 }); break; case this.engine.version.is('2.6'): this.browser.version = new Version({ value: 2.8 }); break; case this.engine.version.is('2.4'): this.browser.version = new Version({ value: 10.3 }); break; case this.engine.version.is('2.3'): this.browser.version = new Version({ value: 10 }); break; case this.engine.version.is('2.2'): this.browser.version = new Version({ value: 9.7 }); break; case this.engine.version.is('2.1'): this.browser.version = new Version({ value: 9.6 }); break; default: this.browser.version = null; } this.os.name = null; this.os.version = null; } /**************************************************** * Camouflage */ if (this.options.detectCamouflage) { if (match = /Mac OS X 10_6_3; ([^;]+); [a-z]{2}-(?:[a-z]{2})?\)/.exec(ua)) { this.browser.name = ''; this.browser.version = null; this.browser.mode = 'desktop'; this.os.name = 'Android'; this.os.version = null; this.engine.name = 'Webkit'; this.engine.version = null; this.device.model = match[1]; this.device.type = 'mobile'; var model = cleanupModel(this.device.model); if (typeof ANDROID_MODELS[model] !== 'undefined') { this.device.manufacturer = ANDROID_MODELS[model][0]; this.device.model = ANDROID_MODELS[model][1]; if (typeof ANDROID_MODELS[model][2] !== 'undefined') this.device.type = ANDROID_MODELS[model][2]; this.device.identified = true; } this.features.push('foundDevice'); } if (match = /Linux Ventana; [a-z]{2}-[a-z]{2}; (.+) Build/.exec(ua)) { this.browser.name = ''; this.browser.version = null; this.browser.mode = 'desktop'; this.os.name = 'Android'; this.os.version = null; this.engine.name = 'Webkit'; this.engine.version = null; this.device.model = match[1]; this.device.type = 'mobile'; var model = cleanupModel(this.device.model); if (typeof ANDROID_MODELS[model] !== 'undefined') { this.device.manufacturer = ANDROID_MODELS[model][0]; this.device.model = ANDROID_MODELS[model][1]; if (typeof ANDROID_MODELS[model][2] !== 'undefined') this.device.type = ANDROID_MODELS[model][2]; this.device.identified = true; } this.features.push('foundDevice'); } if (this.browser.name === 'Safari') { if (this.os.name !== 'iOS' && /AppleWebKit\/([0-9]+.[0-9]+)/i.exec(ua)[1] !== /Safari\/([0-9]+.[0-9]+)/i.exec(ua)[1]) { this.features.push('safariMismatch'); this.camouflage = true; } if (this.os.name === 'iOS' && !ua.match(/^Mozilla/)) { this.features.push('noMozillaPrefix'); this.camouflage = true; } if (!/Version\/[0-9\.]+/.exec(ua)) { this.features.push('noVersion'); this.camouflage = true; } } if (this.browser.name === 'Chrome') { if (!/(?:Chrome|CrMo|CriOS)\/([0-9]{1,2}\.[0-9]\.[0-9]{3,4}\.[0-9]+)/.exec(ua)) { this.features.push('wrongVersion'); this.camouflage = true; } } if (this.options.useFeatures) { /* If it claims not to be Trident, but it is probably Trident running camouflage mode */ if (window.ActiveXObject) { this.features.push('trident'); if (typeof this.engine.name !== 'undefined' && this.engine.name !== 'Trident') { this.camouflage = typeof this.browser.name === 'undefined' || this.browser.name !== 'Maxthon'; } } /* If it claims not to be Opera, but it is probably Opera running camouflage mode */ if (window.opera) { this.features.push('presto'); if (typeof this.engine.name !== 'undefined' && this.engine.name !== 'Presto') { this.camouflage = true; } if (this.browser.name === 'Internet Explorer') { this.camouflage = true; } } /* If it claims not to be Gecko, but it is probably Gecko running camouflage mode */ if ('getBoxObjectFor' in document || 'mozInnerScreenX' in window) { this.features.push('gecko'); if (typeof this.engine.name !== 'undefined' && this.engine.name !== 'Gecko') { this.camouflage = true; } if (this.browser.name === 'Internet Explorer') { this.camouflage = true; } } /* If it claims not to be Webkit, but it is probably Webkit running camouflage mode */ if ('WebKitCSSMatrix' in window || 'WebKitPoint' in window || 'webkitStorageInfo' in window || 'webkitURL' in window) { this.features.push('webkit'); if (typeof this.engine.name !== 'undefined' && this.engine.name !== 'Webkit') { this.camouflage = true; } if (this.browser.name === 'Internet Explorer') { this.camouflage = true; } } /* If it claims to be Safari and uses V8, it is probably an Android device running camouflage mode */ if (this.engine.name === 'Webkit' && ({}.toString).toString().indexOf('\n') === -1) { this.features.push('v8'); if (this.browser !== null && this.browser.name === 'Safari') { this.camouflage = true; } } /* If we have an iPad that is not 768 x 1024, we have an imposter */ if (this.device.model === 'iPad') { if ((screen.width !== 0 && screen.height !== 0) && (screen.width !== 768 && screen.height !== 1024) && (screen.width !== 1024 && screen.height !== 768)) { this.features.push('sizeMismatch'); this.camouflage = true; } } /* If we have an iPhone or iPod that is not 320 x 480, we have an imposter */ if (this.device.model === 'iPhone' || this.device.model === 'iPod') { if ((screen.width !== 0 && screen.height !== 0) && (screen.width !== 320 && screen.height !== 480) && (screen.width !== 480 && screen.height !== 320)) { this.features.push('sizeMismatch'); this.camouflage = true; } } if (this.os.name === 'iOS' && this.os.version) { if (this.os.version.isOlder('4.0') && 'sandbox' in document.createElement('iframe')) { this.features.push('foundSandbox'); this.camouflage = true; } if (this.os.version.isOlder('4.2') && 'WebSocket' in window) { this.features.push('foundSockets'); this.camouflage = true; } if (this.os.version.isOlder('5.0') && !! window.Worker) { this.features.push('foundWorker'); this.camouflage = true; } if (this.os.version.isNewer('2.1') && !window.applicationCache) { this.features.push('noAppCache'); this.camouflage = true; } } if (this.os.name !== 'iOS' && this.browser.name === 'Safari' && this.browser.version) { if (this.browser.version.isOlder('4.0') && !! window.applicationCache) { this.features.push('foundAppCache'); this.camouflage = true; } if (this.browser.version.isOlder('4.1') && !! (window.history && history.pushState)) { this.features.push('foundHistory'); this.camouflage = true; } if (this.browser.version.isOlder('5.1') && !! document.documentElement.webkitRequestFullScreen) { this.features.push('foundFullscreen'); this.camouflage = true; } if (this.browser.version.isOlder('5.2') && 'FileReader' in window) { this.features.push('foundFileReader'); this.camouflage = true; } } } } } }; function cleanupModel(s) { s = typeof s === 'undefined' ? '' : s; s = s.replace(/_TD$/, ''); s = s.replace(/_CMCC$/, ''); s = s.replace(/_/g, ' '); s = s.replace(/^\s+|\s+$/g, ''); s = s.replace(/\/[^/]+$/, ''); s = s.replace(/\/[^/]+ Android\/.*/, ''); s = s.replace(/^tita on /, ''); s = s.replace(/^Android on /, ''); s = s.replace(/^Android for /, ''); s = s.replace(/^ICS AOSP on /, ''); s = s.replace(/^Full AOSP on /, ''); s = s.replace(/^Full Android on /, ''); s = s.replace(/^Full Cappuccino on /, ''); s = s.replace(/^Full MIPS Android on /, ''); s = s.replace(/^Full Android/, ''); s = s.replace(/^Acer ?/i, ''); s = s.replace(/^Iconia /, ''); s = s.replace(/^Ainol /, ''); s = s.replace(/^Coolpad ?/i, 'Coolpad '); s = s.replace(/^ALCATEL /, ''); s = s.replace(/^Alcatel OT-(.*)/, 'one touch $1'); s = s.replace(/^YL-/, ''); s = s.replace(/^Novo7 ?/i, 'Novo7 '); s = s.replace(/^GIONEE /, ''); s = s.replace(/^HW-/, ''); s = s.replace(/^Huawei[ -]/i, 'Huawei '); s = s.replace(/^SAMSUNG[ -]/i, ''); s = s.replace(/^SonyEricsson/, ''); s = s.replace(/^Lenovo Lenovo/, 'Lenovo'); s = s.replace(/^LNV-Lenovo/, 'Lenovo'); s = s.replace(/^Lenovo-/, 'Lenovo '); s = s.replace(/^(LG)[ _\/]/, '$1-'); s = s.replace(/^(HTC.*)\s(?:v|V)?[0-9.]+$/, '$1'); s = s.replace(/^(HTC)[-\/]/, '$1 '); s = s.replace(/^(HTC)([A-Z][0-9][0-9][0-9])/, '$1 $2'); s = s.replace(/^(Motorola[\s|-])/, '') s = s.replace(/^(Moto|MOT-)/, '') s = s.replace(/-?(orange(-ls)?|vodafone|bouygues)$/i, ''); s = s.replace(/http:\/\/.+$/i, ''); s = s.replace(/^\s+|\s+$/g, ''); return s; } function parseVersion(version) { version = version.toString(); var components = version.split('.'); var major = components.shift(); return parseFloat(major + '.' + components.join('')); } return Detected; })();