regexps.js 197 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952
  1. "use strict";
  2. /**
  3. * TL;DR: Don't touch this.
  4. *
  5. * DO NOT EDIT THIS FILE, IT IS AUTOMATICALLY GENERATED AND COMPILED FROM AN
  6. * EXTERNAL REGEXPS DATABASE. TO UPDATE THIS FILE MANUALLY PLEASE RUN THE:
  7. *
  8. * ```
  9. * npm run update
  10. * ```
  11. *
  12. * COMMAND FROM THE ROOT OF THIS REPOSITORY. IF YOU FOUND A REGULAR EXPRESSION THAT
  13. * IS BROKEN OR MISSING. PLEASE MAKE THE PULL REQUESTS TO REGEXP DATABASE NOT TO
  14. * THIS MODULE AS THEY WILL BE REJECTED INSTANTLY. THE SOURCE FILE LOCATION CAN
  15. * BE FOUND IN THE `update.js` FILE WHICH IS IN THE SAME FOLDER AS THIS FILE. PLEASE
  16. * SEE THE `exports.remote` PART OF THE FILE.
  17. */
  18. var parser;
  19. exports.browser = Object.create(null);
  20. parser = Object.create(null);
  21. parser[0] = new RegExp("(Rival IQ, rivaliq.com)");
  22. parser[1] = "Rival IQ";
  23. parser[2] = 0;
  24. parser[3] = 0;
  25. parser[4] = 0;
  26. exports.browser[0] = parser;
  27. parser = Object.create(null);
  28. parser[0] = new RegExp("(ESPN)[%20| ]+Radio/(\\d+)\\.(\\d+)\\.(\\d+) CFNetwork");
  29. parser[1] = 0;
  30. parser[2] = 0;
  31. parser[3] = 0;
  32. parser[4] = 0;
  33. exports.browser[1] = parser;
  34. parser = Object.create(null);
  35. parser[0] = new RegExp("(Antenna)/(\\d+) CFNetwork");
  36. parser[1] = "AntennaPod";
  37. parser[2] = 0;
  38. parser[3] = 0;
  39. parser[4] = 0;
  40. exports.browser[2] = parser;
  41. parser = Object.create(null);
  42. parser[0] = new RegExp("(TopPodcasts)Pro/(\\d+) CFNetwork");
  43. parser[1] = 0;
  44. parser[2] = 0;
  45. parser[3] = 0;
  46. parser[4] = 0;
  47. exports.browser[3] = parser;
  48. parser = Object.create(null);
  49. parser[0] = new RegExp("(MusicDownloader)Lite/(\\d+)\\.(\\d+)\\.(\\d+) CFNetwork");
  50. parser[1] = 0;
  51. parser[2] = 0;
  52. parser[3] = 0;
  53. parser[4] = 0;
  54. exports.browser[4] = parser;
  55. parser = Object.create(null);
  56. parser[0] = new RegExp("^(.*)-iPad/(\\d+)\\.?(\\d+)?.?(\\d+)?.?(\\d+)? CFNetwork");
  57. parser[1] = 0;
  58. parser[2] = 0;
  59. parser[3] = 0;
  60. parser[4] = 0;
  61. exports.browser[5] = parser;
  62. parser = Object.create(null);
  63. parser[0] = new RegExp("^(.*)-iPhone/(\\d+)\\.?(\\d+)?.?(\\d+)?.?(\\d+)? CFNetwork");
  64. parser[1] = 0;
  65. parser[2] = 0;
  66. parser[3] = 0;
  67. parser[4] = 0;
  68. exports.browser[6] = parser;
  69. parser = Object.create(null);
  70. parser[0] = new RegExp("^(.*)/(\\d+)\\.?(\\d+)?.?(\\d+)?.?(\\d+)? CFNetwork");
  71. parser[1] = 0;
  72. parser[2] = 0;
  73. parser[3] = 0;
  74. parser[4] = 0;
  75. exports.browser[7] = parser;
  76. parser = Object.create(null);
  77. parser[0] = new RegExp("(espn\\.go)");
  78. parser[1] = "ESPN";
  79. parser[2] = 0;
  80. parser[3] = 0;
  81. parser[4] = 0;
  82. exports.browser[8] = parser;
  83. parser = Object.create(null);
  84. parser[0] = new RegExp("(espnradio\\.com)");
  85. parser[1] = "ESPN";
  86. parser[2] = 0;
  87. parser[3] = 0;
  88. parser[4] = 0;
  89. exports.browser[9] = parser;
  90. parser = Object.create(null);
  91. parser[0] = new RegExp("ESPN APP$");
  92. parser[1] = "ESPN";
  93. parser[2] = 0;
  94. parser[3] = 0;
  95. parser[4] = 0;
  96. exports.browser[10] = parser;
  97. parser = Object.create(null);
  98. parser[0] = new RegExp("(audioboom\\.com)");
  99. parser[1] = "AudioBoom";
  100. parser[2] = 0;
  101. parser[3] = 0;
  102. parser[4] = 0;
  103. exports.browser[11] = parser;
  104. parser = Object.create(null);
  105. parser[0] = new RegExp(" (Rivo) RHYTHM");
  106. parser[1] = 0;
  107. parser[2] = 0;
  108. parser[3] = 0;
  109. parser[4] = 0;
  110. exports.browser[12] = parser;
  111. parser = Object.create(null);
  112. parser[0] = new RegExp("(CFNetwork)(?:/(\\d+)\\.(\\d+)\\.?(\\d+)?)?");
  113. parser[1] = "CFNetwork";
  114. parser[2] = 0;
  115. parser[3] = 0;
  116. parser[4] = 0;
  117. exports.browser[13] = parser;
  118. parser = Object.create(null);
  119. parser[0] = new RegExp("(Pingdom.com_bot_version_)(\\d+)\\.(\\d+)");
  120. parser[1] = "PingdomBot";
  121. parser[2] = 0;
  122. parser[3] = 0;
  123. parser[4] = 0;
  124. exports.browser[14] = parser;
  125. parser = Object.create(null);
  126. parser[0] = new RegExp("(PingdomTMS)/(\\d+)\\.(\\d+)\\.(\\d+)");
  127. parser[1] = "PingdomBot";
  128. parser[2] = 0;
  129. parser[3] = 0;
  130. parser[4] = 0;
  131. exports.browser[15] = parser;
  132. parser = Object.create(null);
  133. parser[0] = new RegExp("(NewRelicPinger)/(\\d+)\\.(\\d+)");
  134. parser[1] = "NewRelicPingerBot";
  135. parser[2] = 0;
  136. parser[3] = 0;
  137. parser[4] = 0;
  138. exports.browser[16] = parser;
  139. parser = Object.create(null);
  140. parser[0] = new RegExp("(\\(StatusCake\\))");
  141. parser[1] = "StatusCakeBot";
  142. parser[2] = 0;
  143. parser[3] = 0;
  144. parser[4] = 0;
  145. exports.browser[17] = parser;
  146. parser = Object.create(null);
  147. parser[0] = new RegExp("(facebookexternalhit)/(\\d+)\\.(\\d+)");
  148. parser[1] = "FacebookBot";
  149. parser[2] = 0;
  150. parser[3] = 0;
  151. parser[4] = 0;
  152. exports.browser[18] = parser;
  153. parser = Object.create(null);
  154. parser[0] = new RegExp("Google.*/\\+/web/snippet");
  155. parser[1] = "GooglePlusBot";
  156. parser[2] = 0;
  157. parser[3] = 0;
  158. parser[4] = 0;
  159. exports.browser[19] = parser;
  160. parser = Object.create(null);
  161. parser[0] = new RegExp("via ggpht.com GoogleImageProxy");
  162. parser[1] = "GmailImageProxy";
  163. parser[2] = 0;
  164. parser[3] = 0;
  165. parser[4] = 0;
  166. exports.browser[20] = parser;
  167. parser = Object.create(null);
  168. parser[0] = new RegExp("(Twitterbot)/(\\d+)\\.(\\d+)");
  169. parser[1] = "TwitterBot";
  170. parser[2] = 0;
  171. parser[3] = 0;
  172. parser[4] = 0;
  173. exports.browser[21] = parser;
  174. parser = Object.create(null);
  175. parser[0] = new RegExp("/((?:Ant-)?Nutch|[A-z]+[Bb]ot|[A-z]+[Ss]pider|Axtaris|fetchurl|Isara|ShopSalad|Tailsweep)[ \\-](\\d+)(?:\\.(\\d+)(?:\\.(\\d+))?)?");
  176. parser[1] = 0;
  177. parser[2] = 0;
  178. parser[3] = 0;
  179. parser[4] = 0;
  180. exports.browser[22] = parser;
  181. parser = Object.create(null);
  182. parser[0] = new RegExp("\\b(008|Altresium|Argus|BaiduMobaider|BoardReader|DNSGroup|DataparkSearch|EDI|Goodzer|Grub|INGRID|Infohelfer|LinkedInBot|LOOQ|Nutch|PathDefender|Peew|PostPost|Steeler|Twitterbot|VSE|WebCrunch|WebZIP|Y!J-BR[A-Z]|YahooSeeker|envolk|sproose|wminer)/(\\d+)(?:\\.(\\d+)(?:\\.(\\d+))?)?");
  183. parser[1] = 0;
  184. parser[2] = 0;
  185. parser[3] = 0;
  186. parser[4] = 0;
  187. exports.browser[23] = parser;
  188. parser = Object.create(null);
  189. parser[0] = new RegExp("(MSIE) (\\d+)\\.(\\d+)([a-z]\\d?)?;.* MSIECrawler");
  190. parser[1] = "MSIECrawler";
  191. parser[2] = 0;
  192. parser[3] = 0;
  193. parser[4] = 0;
  194. exports.browser[24] = parser;
  195. parser = Object.create(null);
  196. parser[0] = new RegExp("(DAVdroid)/(\\d+)\\.(\\d+)(?:\\.(\\d+))?");
  197. parser[1] = 0;
  198. parser[2] = 0;
  199. parser[3] = 0;
  200. parser[4] = 0;
  201. exports.browser[25] = parser;
  202. parser = Object.create(null);
  203. parser[0] = new RegExp("(Google-HTTP-Java-Client|Apache-HttpClient|http%20client|Python-urllib|HttpMonitor|TLSProber|WinHTTP|JNLP|okhttp)(?:[ /](\\d+)(?:\\.(\\d+)(?:\\.(\\d+))?)?)?");
  204. parser[1] = 0;
  205. parser[2] = 0;
  206. parser[3] = 0;
  207. parser[4] = 0;
  208. exports.browser[26] = parser;
  209. parser = Object.create(null);
  210. parser[0] = new RegExp("(Pinterest(?:bot)?)/(\\d+)(?:\\.(\\d+)(?:\\.(\\d+))?)?[;\\s\\(]+\\+https://www.pinterest.com/bot.html");
  211. parser[1] = "Pinterestbot";
  212. parser[2] = 0;
  213. parser[3] = 0;
  214. parser[4] = 0;
  215. exports.browser[27] = parser;
  216. parser = Object.create(null);
  217. parser[0] = new RegExp("(1470\\.net crawler|50\\.nu|8bo Crawler Bot|Aboundex|Accoona-[A-z]+-Agent|AdsBot-Google(?:-[a-z]+)?|altavista|AppEngine-Google|archive.*?\\.org_bot|archiver|Ask Jeeves|[Bb]ai[Dd]u[Ss]pider(?:-[A-Za-z]+)*|bingbot|BingPreview|blitzbot|BlogBridge|Bloglovin|BoardReader(?: [A-Za-z]+)*|boitho.com-dc|BotSeer|\\b\\w*favicon\\w*\\b|\\bYeti(?:-[a-z]+)?|Catchpoint(?: bot)?|[Cc]harlotte|Checklinks|clumboot|Comodo HTTP\\(S\\) Crawler|Comodo-Webinspector-Crawler|ConveraCrawler|CRAWL-E|CrawlConvera|Daumoa(?:-feedfetcher)?|Feed Seeker Bot|Feedbin|findlinks|Flamingo_SearchEngine|FollowSite Bot|furlbot|Genieo|gigabot|GomezAgent|gonzo1|(?:[a-zA-Z]+-)?Googlebot(?:-[a-zA-Z]+)?|Google SketchUp|grub-client|gsa-crawler|heritrix|HiddenMarket|holmes|HooWWWer|htdig|ia_archiver|ICC-Crawler|Icarus6j|ichiro(?:/mobile)?|IconSurf|IlTrovatore(?:-Setaccio)?|InfuzApp|Innovazion Crawler|InternetArchive|IP2[a-z]+Bot|jbot\\b|KaloogaBot|Kraken|Kurzor|larbin|LEIA|LesnikBot|Linguee Bot|LinkAider|LinkedInBot|Lite Bot|Llaut|lycos|Mail\\.RU_Bot|masscan|masidani_bot|Mediapartners-Google|Microsoft .*? Bot|mogimogi|mozDex|MJ12bot|msnbot(?:-media *)?|msrbot|Mtps Feed Aggregation System|netresearch|Netvibes|NewsGator[^/]*|^NING|Nutch[^/]*|Nymesis|ObjectsSearch|Orbiter|OOZBOT|PagePeeker|PagesInventory|PaxleFramework|Peeplo Screenshot Bot|PlantyNet_WebRobot|Pompos|Qwantify|Read%20Later|Reaper|RedCarpet|Retreiver|Riddler|Rival IQ|scooter|Scrapy|Scrubby|searchsight|seekbot|semanticdiscovery|Simpy|SimplePie|SEOstats|SimpleRSS|SiteCon|Slackbot-LinkExpanding|Slack-ImgProxy|Slurp|snappy|Speedy Spider|Squrl Java|Stringer|TheUsefulbot|ThumbShotsBot|Thumbshots\\.ru|Tiny Tiny RSS|TwitterBot|WhatsApp|URL2PNG|Vagabondo|VoilaBot|^vortex|Votay bot|^voyager|WASALive.Bot|Web-sniffer|WebThumb|WeSEE:[A-z]+|WhatWeb|WIRE|WordPress|Wotbox|www\\.almaden\\.ibm\\.com|Xenu(?:.s)? Link Sleuth|Xerka [A-z]+Bot|yacy(?:bot)?|Yahoo[a-z]*Seeker|Yahoo! Slurp|Yandex\\w+|YodaoBot(?:-[A-z]+)?|YottaaMonitor|Yowedo|^Zao|^Zao-Crawler|ZeBot_www\\.ze\\.bz|ZooShot|ZyBorg)(?:[ /]v?(\\d+)(?:\\.(\\d+)(?:\\.(\\d+))?)?)?");
  218. parser[1] = 0;
  219. parser[2] = 0;
  220. parser[3] = 0;
  221. parser[4] = 0;
  222. exports.browser[28] = parser;
  223. parser = Object.create(null);
  224. parser[0] = new RegExp("(?:\\/[A-Za-z0-9\\.]+)? *([A-Za-z0-9 \\-_\\!\\[\\]:]*(?:[Aa]rchiver|[Ii]ndexer|[Ss]craper|[Bb]ot|[Ss]pider|[Cc]rawl[a-z]*))/(\\d+)(?:\\.(\\d+)(?:\\.(\\d+))?)?");
  225. parser[1] = 0;
  226. parser[2] = 0;
  227. parser[3] = 0;
  228. parser[4] = 0;
  229. exports.browser[29] = parser;
  230. parser = Object.create(null);
  231. parser[0] = new RegExp("(?:\\/[A-Za-z0-9\\.]+)? *([A-Za-z0-9 _\\!\\[\\]:]*(?:[Aa]rchiver|[Ii]ndexer|[Ss]craper|[Bb]ot|[Ss]pider|[Cc]rawl[a-z]*)) (\\d+)(?:\\.(\\d+)(?:\\.(\\d+))?)?");
  232. parser[1] = 0;
  233. parser[2] = 0;
  234. parser[3] = 0;
  235. parser[4] = 0;
  236. exports.browser[30] = parser;
  237. parser = Object.create(null);
  238. parser[0] = new RegExp("((?:[A-z0-9]+|[A-z\\-]+ ?)?(?: the )?(?:[Ss][Pp][Ii][Dd][Ee][Rr]|[Ss]crape|[A-Za-z0-9-]*(?:[^C][^Uu])[Bb]ot|[Cc][Rr][Aa][Ww][Ll])[A-z0-9]*)(?:(?:[ /]| v)(\\d+)(?:\\.(\\d+)(?:\\.(\\d+))?)?)?");
  239. parser[1] = 0;
  240. parser[2] = 0;
  241. parser[3] = 0;
  242. parser[4] = 0;
  243. exports.browser[31] = parser;
  244. parser = Object.create(null);
  245. parser[0] = new RegExp("(HbbTV)/(\\d+)\\.(\\d+)\\.(\\d+) \\(");
  246. parser[1] = 0;
  247. parser[2] = 0;
  248. parser[3] = 0;
  249. parser[4] = 0;
  250. exports.browser[32] = parser;
  251. parser = Object.create(null);
  252. parser[0] = new RegExp("(Chimera|SeaMonkey|Camino)/(\\d+)\\.(\\d+)\\.?([ab]?\\d+[a-z]*)?");
  253. parser[1] = 0;
  254. parser[2] = 0;
  255. parser[3] = 0;
  256. parser[4] = 0;
  257. exports.browser[33] = parser;
  258. parser = Object.create(null);
  259. parser[0] = new RegExp("\\[FB.*;(FBAV)/(\\d+)(?:\\.(\\d+)(?:\\.(\\d+))?)?");
  260. parser[1] = "Facebook";
  261. parser[2] = 0;
  262. parser[3] = 0;
  263. parser[4] = 0;
  264. exports.browser[34] = parser;
  265. parser = Object.create(null);
  266. parser[0] = new RegExp("\\[(Pinterest)/[^\\]]+\\]");
  267. parser[1] = 0;
  268. parser[2] = 0;
  269. parser[3] = 0;
  270. parser[4] = 0;
  271. exports.browser[35] = parser;
  272. parser = Object.create(null);
  273. parser[0] = new RegExp("(Pinterest)(?: for Android(?: Tablet)?)?/(\\d+)(?:\\.(\\d+)(?:\\.(\\d+))?)?");
  274. parser[1] = 0;
  275. parser[2] = 0;
  276. parser[3] = 0;
  277. parser[4] = 0;
  278. exports.browser[36] = parser;
  279. parser = Object.create(null);
  280. parser[0] = new RegExp("(PaleMoon)/(\\d+)\\.(\\d+)\\.?(\\d+)?");
  281. parser[1] = "Pale Moon";
  282. parser[2] = 0;
  283. parser[3] = 0;
  284. parser[4] = 0;
  285. exports.browser[37] = parser;
  286. parser = Object.create(null);
  287. parser[0] = new RegExp("(Fennec)/(\\d+)\\.(\\d+)\\.?([ab]?\\d+[a-z]*)");
  288. parser[1] = "Firefox Mobile";
  289. parser[2] = 0;
  290. parser[3] = 0;
  291. parser[4] = 0;
  292. exports.browser[38] = parser;
  293. parser = Object.create(null);
  294. parser[0] = new RegExp("(Fennec)/(\\d+)\\.(\\d+)(pre)");
  295. parser[1] = "Firefox Mobile";
  296. parser[2] = 0;
  297. parser[3] = 0;
  298. parser[4] = 0;
  299. exports.browser[39] = parser;
  300. parser = Object.create(null);
  301. parser[0] = new RegExp("(Fennec)/(\\d+)\\.(\\d+)");
  302. parser[1] = "Firefox Mobile";
  303. parser[2] = 0;
  304. parser[3] = 0;
  305. parser[4] = 0;
  306. exports.browser[40] = parser;
  307. parser = Object.create(null);
  308. parser[0] = new RegExp("(?:Mobile|Tablet);.*(Firefox)/(\\d+)\\.(\\d+)");
  309. parser[1] = "Firefox Mobile";
  310. parser[2] = 0;
  311. parser[3] = 0;
  312. parser[4] = 0;
  313. exports.browser[41] = parser;
  314. parser = Object.create(null);
  315. parser[0] = new RegExp("(Namoroka|Shiretoko|Minefield)/(\\d+)\\.(\\d+)\\.(\\d+(?:pre)?)");
  316. parser[1] = "Firefox ($1)";
  317. parser[2] = 0;
  318. parser[3] = 0;
  319. parser[4] = 0;
  320. exports.browser[42] = parser;
  321. parser = Object.create(null);
  322. parser[0] = new RegExp("(Firefox)/(\\d+)\\.(\\d+)(a\\d+[a-z]*)");
  323. parser[1] = "Firefox Alpha";
  324. parser[2] = 0;
  325. parser[3] = 0;
  326. parser[4] = 0;
  327. exports.browser[43] = parser;
  328. parser = Object.create(null);
  329. parser[0] = new RegExp("(Firefox)/(\\d+)\\.(\\d+)(b\\d+[a-z]*)");
  330. parser[1] = "Firefox Beta";
  331. parser[2] = 0;
  332. parser[3] = 0;
  333. parser[4] = 0;
  334. exports.browser[44] = parser;
  335. parser = Object.create(null);
  336. parser[0] = new RegExp("(Firefox)-(?:\\d+\\.\\d+)?/(\\d+)\\.(\\d+)(a\\d+[a-z]*)");
  337. parser[1] = "Firefox Alpha";
  338. parser[2] = 0;
  339. parser[3] = 0;
  340. parser[4] = 0;
  341. exports.browser[45] = parser;
  342. parser = Object.create(null);
  343. parser[0] = new RegExp("(Firefox)-(?:\\d+\\.\\d+)?/(\\d+)\\.(\\d+)(b\\d+[a-z]*)");
  344. parser[1] = "Firefox Beta";
  345. parser[2] = 0;
  346. parser[3] = 0;
  347. parser[4] = 0;
  348. exports.browser[46] = parser;
  349. parser = Object.create(null);
  350. parser[0] = new RegExp("(Namoroka|Shiretoko|Minefield)/(\\d+)\\.(\\d+)([ab]\\d+[a-z]*)?");
  351. parser[1] = "Firefox ($1)";
  352. parser[2] = 0;
  353. parser[3] = 0;
  354. parser[4] = 0;
  355. exports.browser[47] = parser;
  356. parser = Object.create(null);
  357. parser[0] = new RegExp("(Firefox).*Tablet browser (\\d+)\\.(\\d+)\\.(\\d+)");
  358. parser[1] = "MicroB";
  359. parser[2] = 0;
  360. parser[3] = 0;
  361. parser[4] = 0;
  362. exports.browser[48] = parser;
  363. parser = Object.create(null);
  364. parser[0] = new RegExp("(MozillaDeveloperPreview)/(\\d+)\\.(\\d+)([ab]\\d+[a-z]*)?");
  365. parser[1] = 0;
  366. parser[2] = 0;
  367. parser[3] = 0;
  368. parser[4] = 0;
  369. exports.browser[49] = parser;
  370. parser = Object.create(null);
  371. parser[0] = new RegExp("(FxiOS)/(\\d+)\\.(\\d+)(\\.(\\d+))?(\\.(\\d+))?");
  372. parser[1] = "Firefox iOS";
  373. parser[2] = 0;
  374. parser[3] = 0;
  375. parser[4] = 0;
  376. exports.browser[50] = parser;
  377. parser = Object.create(null);
  378. parser[0] = new RegExp("(Flock)/(\\d+)\\.(\\d+)(b\\d+?)");
  379. parser[1] = 0;
  380. parser[2] = 0;
  381. parser[3] = 0;
  382. parser[4] = 0;
  383. exports.browser[51] = parser;
  384. parser = Object.create(null);
  385. parser[0] = new RegExp("(RockMelt)/(\\d+)\\.(\\d+)\\.(\\d+)");
  386. parser[1] = 0;
  387. parser[2] = 0;
  388. parser[3] = 0;
  389. parser[4] = 0;
  390. exports.browser[52] = parser;
  391. parser = Object.create(null);
  392. parser[0] = new RegExp("(Navigator)/(\\d+)\\.(\\d+)\\.(\\d+)");
  393. parser[1] = "Netscape";
  394. parser[2] = 0;
  395. parser[3] = 0;
  396. parser[4] = 0;
  397. exports.browser[53] = parser;
  398. parser = Object.create(null);
  399. parser[0] = new RegExp("(Navigator)/(\\d+)\\.(\\d+)([ab]\\d+)");
  400. parser[1] = "Netscape";
  401. parser[2] = 0;
  402. parser[3] = 0;
  403. parser[4] = 0;
  404. exports.browser[54] = parser;
  405. parser = Object.create(null);
  406. parser[0] = new RegExp("(Netscape6)/(\\d+)\\.(\\d+)\\.?([ab]?\\d+)?");
  407. parser[1] = "Netscape";
  408. parser[2] = 0;
  409. parser[3] = 0;
  410. parser[4] = 0;
  411. exports.browser[55] = parser;
  412. parser = Object.create(null);
  413. parser[0] = new RegExp("(MyIBrow)/(\\d+)\\.(\\d+)");
  414. parser[1] = "My Internet Browser";
  415. parser[2] = 0;
  416. parser[3] = 0;
  417. parser[4] = 0;
  418. exports.browser[56] = parser;
  419. parser = Object.create(null);
  420. parser[0] = new RegExp("(UC? ?Browser|UCWEB|U3)[ /]?(\\d+)\\.(\\d+)\\.(\\d+)");
  421. parser[1] = "UC Browser";
  422. parser[2] = 0;
  423. parser[3] = 0;
  424. parser[4] = 0;
  425. exports.browser[57] = parser;
  426. parser = Object.create(null);
  427. parser[0] = new RegExp("(Opera Tablet).*Version/(\\d+)\\.(\\d+)(?:\\.(\\d+))?");
  428. parser[1] = 0;
  429. parser[2] = 0;
  430. parser[3] = 0;
  431. parser[4] = 0;
  432. exports.browser[58] = parser;
  433. parser = Object.create(null);
  434. parser[0] = new RegExp("(Opera Mini)(?:/att)?/?(\\d+)?(?:\\.(\\d+))?(?:\\.(\\d+))?");
  435. parser[1] = 0;
  436. parser[2] = 0;
  437. parser[3] = 0;
  438. parser[4] = 0;
  439. exports.browser[59] = parser;
  440. parser = Object.create(null);
  441. parser[0] = new RegExp("(Opera)/.+Opera Mobi.+Version/(\\d+)\\.(\\d+)");
  442. parser[1] = "Opera Mobile";
  443. parser[2] = 0;
  444. parser[3] = 0;
  445. parser[4] = 0;
  446. exports.browser[60] = parser;
  447. parser = Object.create(null);
  448. parser[0] = new RegExp("(Opera)/(\\d+)\\.(\\d+).+Opera Mobi");
  449. parser[1] = "Opera Mobile";
  450. parser[2] = 0;
  451. parser[3] = 0;
  452. parser[4] = 0;
  453. exports.browser[61] = parser;
  454. parser = Object.create(null);
  455. parser[0] = new RegExp("Opera Mobi.+(Opera)(?:/|\\s+)(\\d+)\\.(\\d+)");
  456. parser[1] = "Opera Mobile";
  457. parser[2] = 0;
  458. parser[3] = 0;
  459. parser[4] = 0;
  460. exports.browser[62] = parser;
  461. parser = Object.create(null);
  462. parser[0] = new RegExp("Opera Mobi");
  463. parser[1] = "Opera Mobile";
  464. parser[2] = 0;
  465. parser[3] = 0;
  466. parser[4] = 0;
  467. exports.browser[63] = parser;
  468. parser = Object.create(null);
  469. parser[0] = new RegExp("(Opera)/9.80.*Version/(\\d+)\\.(\\d+)(?:\\.(\\d+))?");
  470. parser[1] = 0;
  471. parser[2] = 0;
  472. parser[3] = 0;
  473. parser[4] = 0;
  474. exports.browser[64] = parser;
  475. parser = Object.create(null);
  476. parser[0] = new RegExp("(?:Mobile Safari).*(OPR)/(\\d+)\\.(\\d+)\\.(\\d+)");
  477. parser[1] = "Opera Mobile";
  478. parser[2] = 0;
  479. parser[3] = 0;
  480. parser[4] = 0;
  481. exports.browser[65] = parser;
  482. parser = Object.create(null);
  483. parser[0] = new RegExp("(?:Chrome).*(OPR)/(\\d+)\\.(\\d+)\\.(\\d+)");
  484. parser[1] = "Opera";
  485. parser[2] = 0;
  486. parser[3] = 0;
  487. parser[4] = 0;
  488. exports.browser[66] = parser;
  489. parser = Object.create(null);
  490. parser[0] = new RegExp("(Coast)/(\\d+).(\\d+).(\\d+)");
  491. parser[1] = "Opera Coast";
  492. parser[2] = 0;
  493. parser[3] = 0;
  494. parser[4] = 0;
  495. exports.browser[67] = parser;
  496. parser = Object.create(null);
  497. parser[0] = new RegExp("(OPiOS)/(\\d+).(\\d+).(\\d+)");
  498. parser[1] = "Opera Mini";
  499. parser[2] = 0;
  500. parser[3] = 0;
  501. parser[4] = 0;
  502. exports.browser[68] = parser;
  503. parser = Object.create(null);
  504. parser[0] = new RegExp("Chrome/.+( MMS)/(\\d+).(\\d+).(\\d+)");
  505. parser[1] = "Opera Neon";
  506. parser[2] = 0;
  507. parser[3] = 0;
  508. parser[4] = 0;
  509. exports.browser[69] = parser;
  510. parser = Object.create(null);
  511. parser[0] = new RegExp("(hpw|web)OS/(\\d+)\\.(\\d+)(?:\\.(\\d+))?");
  512. parser[1] = "webOS Browser";
  513. parser[2] = 0;
  514. parser[3] = 0;
  515. parser[4] = 0;
  516. exports.browser[70] = parser;
  517. parser = Object.create(null);
  518. parser[0] = new RegExp("(luakit)");
  519. parser[1] = "LuaKit";
  520. parser[2] = 0;
  521. parser[3] = 0;
  522. parser[4] = 0;
  523. exports.browser[71] = parser;
  524. parser = Object.create(null);
  525. parser[0] = new RegExp("(Snowshoe)/(\\d+)\\.(\\d+).(\\d+)");
  526. parser[1] = 0;
  527. parser[2] = 0;
  528. parser[3] = 0;
  529. parser[4] = 0;
  530. exports.browser[72] = parser;
  531. parser = Object.create(null);
  532. parser[0] = new RegExp("Gecko/\\d+ (Lightning)/(\\d+)\\.(\\d+)\\.?((?:[ab]?\\d+[a-z]*)|(?:\\d*))");
  533. parser[1] = 0;
  534. parser[2] = 0;
  535. parser[3] = 0;
  536. parser[4] = 0;
  537. exports.browser[73] = parser;
  538. parser = Object.create(null);
  539. parser[0] = new RegExp("(Firefox)/(\\d+)\\.(\\d+)\\.(\\d+(?:pre)?) \\(Swiftfox\\)");
  540. parser[1] = "Swiftfox";
  541. parser[2] = 0;
  542. parser[3] = 0;
  543. parser[4] = 0;
  544. exports.browser[74] = parser;
  545. parser = Object.create(null);
  546. parser[0] = new RegExp("(Firefox)/(\\d+)\\.(\\d+)([ab]\\d+[a-z]*)? \\(Swiftfox\\)");
  547. parser[1] = "Swiftfox";
  548. parser[2] = 0;
  549. parser[3] = 0;
  550. parser[4] = 0;
  551. exports.browser[75] = parser;
  552. parser = Object.create(null);
  553. parser[0] = new RegExp("(rekonq)/(\\d+)\\.(\\d+)\\.?(\\d+)? Safari");
  554. parser[1] = "Rekonq";
  555. parser[2] = 0;
  556. parser[3] = 0;
  557. parser[4] = 0;
  558. exports.browser[76] = parser;
  559. parser = Object.create(null);
  560. parser[0] = new RegExp("rekonq");
  561. parser[1] = "Rekonq";
  562. parser[2] = 0;
  563. parser[3] = 0;
  564. parser[4] = 0;
  565. exports.browser[77] = parser;
  566. parser = Object.create(null);
  567. parser[0] = new RegExp("(conkeror|Conkeror)/(\\d+)\\.(\\d+)\\.?(\\d+)?");
  568. parser[1] = "Conkeror";
  569. parser[2] = 0;
  570. parser[3] = 0;
  571. parser[4] = 0;
  572. exports.browser[78] = parser;
  573. parser = Object.create(null);
  574. parser[0] = new RegExp("(konqueror)/(\\d+)\\.(\\d+)\\.(\\d+)");
  575. parser[1] = "Konqueror";
  576. parser[2] = 0;
  577. parser[3] = 0;
  578. parser[4] = 0;
  579. exports.browser[79] = parser;
  580. parser = Object.create(null);
  581. parser[0] = new RegExp("(WeTab)-Browser");
  582. parser[1] = 0;
  583. parser[2] = 0;
  584. parser[3] = 0;
  585. parser[4] = 0;
  586. exports.browser[80] = parser;
  587. parser = Object.create(null);
  588. parser[0] = new RegExp("(Comodo_Dragon)/(\\d+)\\.(\\d+)\\.(\\d+)");
  589. parser[1] = "Comodo Dragon";
  590. parser[2] = 0;
  591. parser[3] = 0;
  592. parser[4] = 0;
  593. exports.browser[81] = parser;
  594. parser = Object.create(null);
  595. parser[0] = new RegExp("(Symphony) (\\d+).(\\d+)");
  596. parser[1] = 0;
  597. parser[2] = 0;
  598. parser[3] = 0;
  599. parser[4] = 0;
  600. exports.browser[82] = parser;
  601. parser = Object.create(null);
  602. parser[0] = new RegExp("PLAYSTATION 3.+WebKit");
  603. parser[1] = "NetFront NX";
  604. parser[2] = 0;
  605. parser[3] = 0;
  606. parser[4] = 0;
  607. exports.browser[83] = parser;
  608. parser = Object.create(null);
  609. parser[0] = new RegExp("PLAYSTATION 3");
  610. parser[1] = "NetFront";
  611. parser[2] = 0;
  612. parser[3] = 0;
  613. parser[4] = 0;
  614. exports.browser[84] = parser;
  615. parser = Object.create(null);
  616. parser[0] = new RegExp("(PlayStation Portable)");
  617. parser[1] = "NetFront";
  618. parser[2] = 0;
  619. parser[3] = 0;
  620. parser[4] = 0;
  621. exports.browser[85] = parser;
  622. parser = Object.create(null);
  623. parser[0] = new RegExp("(PlayStation Vita)");
  624. parser[1] = "NetFront NX";
  625. parser[2] = 0;
  626. parser[3] = 0;
  627. parser[4] = 0;
  628. exports.browser[86] = parser;
  629. parser = Object.create(null);
  630. parser[0] = new RegExp("AppleWebKit.+ (NX)/(\\d+)\\.(\\d+)\\.(\\d+)");
  631. parser[1] = "NetFront NX";
  632. parser[2] = 0;
  633. parser[3] = 0;
  634. parser[4] = 0;
  635. exports.browser[87] = parser;
  636. parser = Object.create(null);
  637. parser[0] = new RegExp("(Nintendo 3DS)");
  638. parser[1] = "NetFront NX";
  639. parser[2] = 0;
  640. parser[3] = 0;
  641. parser[4] = 0;
  642. exports.browser[88] = parser;
  643. parser = Object.create(null);
  644. parser[0] = new RegExp("(Silk)/(\\d+)\\.(\\d+)(?:\\.([0-9\\-]+))?");
  645. parser[1] = "Amazon Silk";
  646. parser[2] = 0;
  647. parser[3] = 0;
  648. parser[4] = 0;
  649. exports.browser[89] = parser;
  650. parser = Object.create(null);
  651. parser[0] = new RegExp("(Puffin)/(\\d+)\\.(\\d+)(?:\\.(\\d+))?");
  652. parser[1] = 0;
  653. parser[2] = 0;
  654. parser[3] = 0;
  655. parser[4] = 0;
  656. exports.browser[90] = parser;
  657. parser = Object.create(null);
  658. parser[0] = new RegExp("Windows Phone .*(Edge)/(\\d+)\\.(\\d+)");
  659. parser[1] = "Edge Mobile";
  660. parser[2] = 0;
  661. parser[3] = 0;
  662. parser[4] = 0;
  663. exports.browser[91] = parser;
  664. parser = Object.create(null);
  665. parser[0] = new RegExp("(SamsungBrowser)/(\\d+)\\.(\\d+)");
  666. parser[1] = "Samsung Internet";
  667. parser[2] = 0;
  668. parser[3] = 0;
  669. parser[4] = 0;
  670. exports.browser[92] = parser;
  671. parser = Object.create(null);
  672. parser[0] = new RegExp("(SznProhlizec)/(\\d+)\\.(\\d+)(?:\\.(\\d+))?");
  673. parser[1] = "Seznam.cz";
  674. parser[2] = 0;
  675. parser[3] = 0;
  676. parser[4] = 0;
  677. exports.browser[93] = parser;
  678. parser = Object.create(null);
  679. parser[0] = new RegExp("(coc_coc_browser)/(\\d+)\\.(\\d+)(?:\\.(\\d+))?");
  680. parser[1] = "Coc Coc";
  681. parser[2] = 0;
  682. parser[3] = 0;
  683. parser[4] = 0;
  684. exports.browser[94] = parser;
  685. parser = Object.create(null);
  686. parser[0] = new RegExp("(baidubrowser)[/\\s](\\d+)(?:\\.(\\d+)(?:\\.(\\d+))?)?");
  687. parser[1] = "Baidu Browser";
  688. parser[2] = 0;
  689. parser[3] = 0;
  690. parser[4] = 0;
  691. exports.browser[95] = parser;
  692. parser = Object.create(null);
  693. parser[0] = new RegExp("(FlyFlow)/(\\d+)\\.(\\d+)");
  694. parser[1] = "Baidu Explorer";
  695. parser[2] = 0;
  696. parser[3] = 0;
  697. parser[4] = 0;
  698. exports.browser[96] = parser;
  699. parser = Object.create(null);
  700. parser[0] = new RegExp("(MxBrowser)/(\\d+)\\.(\\d+)(?:\\.(\\d+))?");
  701. parser[1] = "Maxthon";
  702. parser[2] = 0;
  703. parser[3] = 0;
  704. parser[4] = 0;
  705. exports.browser[97] = parser;
  706. parser = Object.create(null);
  707. parser[0] = new RegExp("(Crosswalk)/(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+)");
  708. parser[1] = 0;
  709. parser[2] = 0;
  710. parser[3] = 0;
  711. parser[4] = 0;
  712. exports.browser[98] = parser;
  713. parser = Object.create(null);
  714. parser[0] = new RegExp("; wv\\).+(Chrome)/(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+)");
  715. parser[1] = "Chrome Mobile WebView";
  716. parser[2] = 0;
  717. parser[3] = 0;
  718. parser[4] = 0;
  719. exports.browser[99] = parser;
  720. parser = Object.create(null);
  721. parser[0] = new RegExp("(CrMo)/(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+)");
  722. parser[1] = "Chrome Mobile";
  723. parser[2] = 0;
  724. parser[3] = 0;
  725. parser[4] = 0;
  726. exports.browser[100] = parser;
  727. parser = Object.create(null);
  728. parser[0] = new RegExp("(CriOS)/(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+)");
  729. parser[1] = "Chrome Mobile iOS";
  730. parser[2] = 0;
  731. parser[3] = 0;
  732. parser[4] = 0;
  733. exports.browser[101] = parser;
  734. parser = Object.create(null);
  735. parser[0] = new RegExp("(Chrome)/(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+) Mobile(?:[ /]|$)");
  736. parser[1] = "Chrome Mobile";
  737. parser[2] = 0;
  738. parser[3] = 0;
  739. parser[4] = 0;
  740. exports.browser[102] = parser;
  741. parser = Object.create(null);
  742. parser[0] = new RegExp(" Mobile .*(Chrome)/(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+)");
  743. parser[1] = "Chrome Mobile";
  744. parser[2] = 0;
  745. parser[3] = 0;
  746. parser[4] = 0;
  747. exports.browser[103] = parser;
  748. parser = Object.create(null);
  749. parser[0] = new RegExp("(chromeframe)/(\\d+)\\.(\\d+)\\.(\\d+)");
  750. parser[1] = "Chrome Frame";
  751. parser[2] = 0;
  752. parser[3] = 0;
  753. parser[4] = 0;
  754. exports.browser[104] = parser;
  755. parser = Object.create(null);
  756. parser[0] = new RegExp("(SLP Browser)/(\\d+)\\.(\\d+)");
  757. parser[1] = "Tizen Browser";
  758. parser[2] = 0;
  759. parser[3] = 0;
  760. parser[4] = 0;
  761. exports.browser[105] = parser;
  762. parser = Object.create(null);
  763. parser[0] = new RegExp("(SE 2\\.X) MetaSr (\\d+)\\.(\\d+)");
  764. parser[1] = "Sogou Explorer";
  765. parser[2] = 0;
  766. parser[3] = 0;
  767. parser[4] = 0;
  768. exports.browser[106] = parser;
  769. parser = Object.create(null);
  770. parser[0] = new RegExp("(MQQBrowser/Mini)(?:(\\d+)(?:\\.(\\d+)(?:\\.(\\d+))?)?)?");
  771. parser[1] = "QQ Browser Mini";
  772. parser[2] = 0;
  773. parser[3] = 0;
  774. parser[4] = 0;
  775. exports.browser[107] = parser;
  776. parser = Object.create(null);
  777. parser[0] = new RegExp("(MQQBrowser)(?:/(\\d+)(?:\\.(\\d+)(?:\\.(\\d+))?)?)?");
  778. parser[1] = "QQ Browser Mobile";
  779. parser[2] = 0;
  780. parser[3] = 0;
  781. parser[4] = 0;
  782. exports.browser[108] = parser;
  783. parser = Object.create(null);
  784. parser[0] = new RegExp("(QQBrowser)(?:/(\\d+)(?:\\.(\\d+)\\.(\\d+)(?:\\.(\\d+))?)?)?");
  785. parser[1] = "QQ Browser";
  786. parser[2] = 0;
  787. parser[3] = 0;
  788. parser[4] = 0;
  789. exports.browser[109] = parser;
  790. parser = Object.create(null);
  791. parser[0] = new RegExp("(Rackspace Monitoring)/(\\d+)\\.(\\d+)");
  792. parser[1] = "RackspaceBot";
  793. parser[2] = 0;
  794. parser[3] = 0;
  795. parser[4] = 0;
  796. exports.browser[110] = parser;
  797. parser = Object.create(null);
  798. parser[0] = new RegExp("(PyAMF)/(\\d+)\\.(\\d+)\\.(\\d+)");
  799. parser[1] = 0;
  800. parser[2] = 0;
  801. parser[3] = 0;
  802. parser[4] = 0;
  803. exports.browser[111] = parser;
  804. parser = Object.create(null);
  805. parser[0] = new RegExp("(YaBrowser)/(\\d+)\\.(\\d+)\\.(\\d+)");
  806. parser[1] = "Yandex Browser";
  807. parser[2] = 0;
  808. parser[3] = 0;
  809. parser[4] = 0;
  810. exports.browser[112] = parser;
  811. parser = Object.create(null);
  812. parser[0] = new RegExp("(Chrome)/(\\d+)\\.(\\d+)\\.(\\d+).* MRCHROME");
  813. parser[1] = "Mail.ru Chromium Browser";
  814. parser[2] = 0;
  815. parser[3] = 0;
  816. parser[4] = 0;
  817. exports.browser[113] = parser;
  818. parser = Object.create(null);
  819. parser[0] = new RegExp("(AOL) (\\d+)\\.(\\d+); AOLBuild (\\d+)");
  820. parser[1] = 0;
  821. parser[2] = 0;
  822. parser[3] = 0;
  823. parser[4] = 0;
  824. exports.browser[114] = parser;
  825. parser = Object.create(null);
  826. parser[0] = new RegExp("(PodCruncher|Downcast)[ /]?(\\d+)\\.?(\\d+)?\\.?(\\d+)?\\.?(\\d+)?");
  827. parser[1] = 0;
  828. parser[2] = 0;
  829. parser[3] = 0;
  830. parser[4] = 0;
  831. exports.browser[115] = parser;
  832. parser = Object.create(null);
  833. parser[0] = new RegExp(" (BoxNotes)/(\\d+)\\.(\\d+)\\.(\\d+)");
  834. parser[1] = 0;
  835. parser[2] = 0;
  836. parser[3] = 0;
  837. parser[4] = 0;
  838. exports.browser[116] = parser;
  839. parser = Object.create(null);
  840. parser[0] = new RegExp("(Slack_SSB)/(\\d+)\\.(\\d+)\\.(\\d+)");
  841. parser[1] = "Slack Desktop Client";
  842. parser[2] = 0;
  843. parser[3] = 0;
  844. parser[4] = 0;
  845. exports.browser[117] = parser;
  846. parser = Object.create(null);
  847. parser[0] = new RegExp("(HipChat)/?(\\d+)?");
  848. parser[1] = "HipChat Desktop Client";
  849. parser[2] = 0;
  850. parser[3] = 0;
  851. parser[4] = 0;
  852. exports.browser[118] = parser;
  853. parser = Object.create(null);
  854. parser[0] = new RegExp("\\b(MobileIron|FireWeb|Jasmine|ANTGalio|Midori|Fresco|Lobo|PaleMoon|Maxthon|Lynx|OmniWeb|Dillo|Camino|Demeter|Fluid|Fennec|Epiphany|Shiira|Sunrise|Spotify|Flock|Netscape|Lunascape|WebPilot|NetFront|Netfront|Konqueror|SeaMonkey|Kazehakase|Vienna|Iceape|Iceweasel|IceWeasel|Iron|K-Meleon|Sleipnir|Galeon|GranParadiso|Opera Mini|iCab|NetNewsWire|ThunderBrowse|Iris|UP\\.Browser|Bunjalloo|Google Earth|Raven for Mac|Openwave|MacOutlook|Electron)/(\\d+)\\.(\\d+)\\.(\\d+)");
  855. parser[1] = 0;
  856. parser[2] = 0;
  857. parser[3] = 0;
  858. parser[4] = 0;
  859. exports.browser[119] = parser;
  860. parser = Object.create(null);
  861. parser[0] = new RegExp("Microsoft Office Outlook 12\\.\\d+\\.\\d+|MSOffice 12");
  862. parser[1] = "Outlook";
  863. parser[2] = "2007";
  864. parser[3] = 0;
  865. parser[4] = 0;
  866. exports.browser[120] = parser;
  867. parser = Object.create(null);
  868. parser[0] = new RegExp("Microsoft Outlook 14\\.\\d+\\.\\d+|MSOffice 14");
  869. parser[1] = "Outlook";
  870. parser[2] = "2010";
  871. parser[3] = 0;
  872. parser[4] = 0;
  873. exports.browser[121] = parser;
  874. parser = Object.create(null);
  875. parser[0] = new RegExp("Microsoft Outlook 15\\.\\d+\\.\\d+");
  876. parser[1] = "Outlook";
  877. parser[2] = "2013";
  878. parser[3] = 0;
  879. parser[4] = 0;
  880. exports.browser[122] = parser;
  881. parser = Object.create(null);
  882. parser[0] = new RegExp("Microsoft Outlook (?:Mail )?16\\.\\d+\\.\\d+");
  883. parser[1] = "Outlook";
  884. parser[2] = "2016";
  885. parser[3] = 0;
  886. parser[4] = 0;
  887. exports.browser[123] = parser;
  888. parser = Object.create(null);
  889. parser[0] = new RegExp("Outlook-Express\\/7\\.0.*");
  890. parser[1] = "Windows Live Mail";
  891. parser[2] = 0;
  892. parser[3] = 0;
  893. parser[4] = 0;
  894. exports.browser[124] = parser;
  895. parser = Object.create(null);
  896. parser[0] = new RegExp("(Airmail) (\\d+)\\.(\\d+)(?:\\.(\\d+))?");
  897. parser[1] = 0;
  898. parser[2] = 0;
  899. parser[3] = 0;
  900. parser[4] = 0;
  901. exports.browser[125] = parser;
  902. parser = Object.create(null);
  903. parser[0] = new RegExp("(Thunderbird)/(\\d+)\\.(\\d+)(?:\\.(\\d+(?:pre)?))?");
  904. parser[1] = "Thunderbird";
  905. parser[2] = 0;
  906. parser[3] = 0;
  907. parser[4] = 0;
  908. exports.browser[126] = parser;
  909. parser = Object.create(null);
  910. parser[0] = new RegExp("(Postbox)/(\\d+)\\.(\\d+)\\.(\\d+)");
  911. parser[1] = "Postbox";
  912. parser[2] = 0;
  913. parser[3] = 0;
  914. parser[4] = 0;
  915. exports.browser[127] = parser;
  916. parser = Object.create(null);
  917. parser[0] = new RegExp("(Barca(?:Pro)?)/(\\d+)\\.(\\d+)(?:\\.(\\d+))?");
  918. parser[1] = "Barca";
  919. parser[2] = 0;
  920. parser[3] = 0;
  921. parser[4] = 0;
  922. exports.browser[128] = parser;
  923. parser = Object.create(null);
  924. parser[0] = new RegExp("(Lotus-Notes)/(\\d+)\\.(\\d+)(?:\\.(\\d+))?");
  925. parser[1] = "Lotus Notes";
  926. parser[2] = 0;
  927. parser[3] = 0;
  928. parser[4] = 0;
  929. exports.browser[129] = parser;
  930. parser = Object.create(null);
  931. parser[0] = new RegExp("(Vivaldi)/(\\d+)\\.(\\d+)\\.(\\d+)");
  932. parser[1] = 0;
  933. parser[2] = 0;
  934. parser[3] = 0;
  935. parser[4] = 0;
  936. exports.browser[130] = parser;
  937. parser = Object.create(null);
  938. parser[0] = new RegExp("(Edge)/(\\d+)(?:\\.(\\d+))?");
  939. parser[1] = 0;
  940. parser[2] = 0;
  941. parser[3] = 0;
  942. parser[4] = 0;
  943. exports.browser[131] = parser;
  944. parser = Object.create(null);
  945. parser[0] = new RegExp("(brave)/(\\d+)\\.(\\d+)\\.(\\d+) Chrome");
  946. parser[1] = "Brave";
  947. parser[2] = 0;
  948. parser[3] = 0;
  949. parser[4] = 0;
  950. exports.browser[132] = parser;
  951. parser = Object.create(null);
  952. parser[0] = new RegExp("(Chrome)/(\\d+)\\.(\\d+)\\.(\\d+)[\\d.]* Iron[^/]");
  953. parser[1] = "Iron";
  954. parser[2] = 0;
  955. parser[3] = 0;
  956. parser[4] = 0;
  957. exports.browser[133] = parser;
  958. parser = Object.create(null);
  959. parser[0] = new RegExp("\\b(Dolphin)(?: |HDCN/|/INT\\-)(\\d+)\\.(\\d+)\\.?(\\d+)?");
  960. parser[1] = 0;
  961. parser[2] = 0;
  962. parser[3] = 0;
  963. parser[4] = 0;
  964. exports.browser[134] = parser;
  965. parser = Object.create(null);
  966. parser[0] = new RegExp("(HeadlessChrome)(?:/(\\d+)\\.(\\d+)\\.(\\d+))?");
  967. parser[1] = 0;
  968. parser[2] = 0;
  969. parser[3] = 0;
  970. parser[4] = 0;
  971. exports.browser[135] = parser;
  972. parser = Object.create(null);
  973. parser[0] = new RegExp("(Evolution)/(\\d+)\\.(\\d+)\\.(\\d+\\.\\d+)");
  974. parser[1] = 0;
  975. parser[2] = 0;
  976. parser[3] = 0;
  977. parser[4] = 0;
  978. exports.browser[136] = parser;
  979. parser = Object.create(null);
  980. parser[0] = new RegExp("(RCM CardDAV plugin)/(\\d+)\\.(\\d+)\\.(\\d+(?:-dev)?)");
  981. parser[1] = 0;
  982. parser[2] = 0;
  983. parser[3] = 0;
  984. parser[4] = 0;
  985. exports.browser[137] = parser;
  986. parser = Object.create(null);
  987. parser[0] = new RegExp("(bingbot|Bolt|AdobeAIR|Jasmine|IceCat|Skyfire|Midori|Maxthon|Lynx|Arora|IBrowse|Dillo|Camino|Shiira|Fennec|Phoenix|Flock|Netscape|Lunascape|Epiphany|WebPilot|Opera Mini|Opera|NetFront|Netfront|Konqueror|Googlebot|SeaMonkey|Kazehakase|Vienna|Iceape|Iceweasel|IceWeasel|Iron|K-Meleon|Sleipnir|Galeon|GranParadiso|iCab|iTunes|MacAppStore|NetNewsWire|Space Bison|Stainless|Orca|Dolfin|BOLT|Minimo|Tizen Browser|Polaris|Abrowser|Planetweb|ICE Browser|mDolphin|qutebrowser|Otter|QupZilla|MailBar|kmail2|YahooMobileMail|ExchangeWebServices|ExchangeServicesClient|Dragon|Outlook-iOS-Android)/(\\d+)\\.(\\d+)(?:\\.(\\d+))?");
  988. parser[1] = 0;
  989. parser[2] = 0;
  990. parser[3] = 0;
  991. parser[4] = 0;
  992. exports.browser[138] = parser;
  993. parser = Object.create(null);
  994. parser[0] = new RegExp("(Chromium|Chrome)/(\\d+)\\.(\\d+)(?:\\.(\\d+))?");
  995. parser[1] = 0;
  996. parser[2] = 0;
  997. parser[3] = 0;
  998. parser[4] = 0;
  999. exports.browser[139] = parser;
  1000. parser = Object.create(null);
  1001. parser[0] = new RegExp("(IEMobile)[ /](\\d+)\\.(\\d+)");
  1002. parser[1] = "IE Mobile";
  1003. parser[2] = 0;
  1004. parser[3] = 0;
  1005. parser[4] = 0;
  1006. exports.browser[140] = parser;
  1007. parser = Object.create(null);
  1008. parser[0] = new RegExp("(BacaBerita App)\\/(\\d+)\\.(\\d+)\\.(\\d+)");
  1009. parser[1] = 0;
  1010. parser[2] = 0;
  1011. parser[3] = 0;
  1012. parser[4] = 0;
  1013. exports.browser[141] = parser;
  1014. parser = Object.create(null);
  1015. parser[0] = new RegExp("^(bPod|Pocket Casts|Player FM)$");
  1016. parser[1] = 0;
  1017. parser[2] = 0;
  1018. parser[3] = 0;
  1019. parser[4] = 0;
  1020. exports.browser[142] = parser;
  1021. parser = Object.create(null);
  1022. parser[0] = new RegExp("^(AlexaMediaPlayer|VLC)/(\\d+)\\.(\\d+)\\.([^.\\s]+)");
  1023. parser[1] = 0;
  1024. parser[2] = 0;
  1025. parser[3] = 0;
  1026. parser[4] = 0;
  1027. exports.browser[143] = parser;
  1028. parser = Object.create(null);
  1029. parser[0] = new RegExp("^(AntennaPod|WMPlayer|Zune|Podkicker|Radio|ExoPlayerDemo|Overcast|PocketTunes|NSPlayer|okhttp|DoggCatcher|QuickNews|QuickTime|Peapod|Podcasts|GoldenPod|VLC|Spotify|Miro|MediaGo|Juice|iPodder|gPodder|Banshee)/(\\d+)\\.(\\d+)\\.?(\\d+)?\\.?(\\d+)?");
  1030. parser[1] = 0;
  1031. parser[2] = 0;
  1032. parser[3] = 0;
  1033. parser[4] = 0;
  1034. exports.browser[144] = parser;
  1035. parser = Object.create(null);
  1036. parser[0] = new RegExp("^(Peapod|Liferea)/([^.\\s]+)\\.([^.\\s]+)?\\.?([^.\\s]+)?");
  1037. parser[1] = 0;
  1038. parser[2] = 0;
  1039. parser[3] = 0;
  1040. parser[4] = 0;
  1041. exports.browser[145] = parser;
  1042. parser = Object.create(null);
  1043. parser[0] = new RegExp("^(bPod|Player FM) BMID/(\\S+)");
  1044. parser[1] = 0;
  1045. parser[2] = 0;
  1046. parser[3] = 0;
  1047. parser[4] = 0;
  1048. exports.browser[146] = parser;
  1049. parser = Object.create(null);
  1050. parser[0] = new RegExp("^(Podcast ?Addict)/v(\\d+) ");
  1051. parser[1] = 0;
  1052. parser[2] = 0;
  1053. parser[3] = 0;
  1054. parser[4] = 0;
  1055. exports.browser[147] = parser;
  1056. parser = Object.create(null);
  1057. parser[0] = new RegExp("^(Podcast ?Addict) ");
  1058. parser[1] = "PodcastAddict";
  1059. parser[2] = 0;
  1060. parser[3] = 0;
  1061. parser[4] = 0;
  1062. exports.browser[148] = parser;
  1063. parser = Object.create(null);
  1064. parser[0] = new RegExp("(Replay) AV");
  1065. parser[1] = 0;
  1066. parser[2] = 0;
  1067. parser[3] = 0;
  1068. parser[4] = 0;
  1069. exports.browser[149] = parser;
  1070. parser = Object.create(null);
  1071. parser[0] = new RegExp("(VOX) Music Player");
  1072. parser[1] = 0;
  1073. parser[2] = 0;
  1074. parser[3] = 0;
  1075. parser[4] = 0;
  1076. exports.browser[150] = parser;
  1077. parser = Object.create(null);
  1078. parser[0] = new RegExp("(CITA) RSS Aggregator/(\\d+)\\.(\\d+)");
  1079. parser[1] = 0;
  1080. parser[2] = 0;
  1081. parser[3] = 0;
  1082. parser[4] = 0;
  1083. exports.browser[151] = parser;
  1084. parser = Object.create(null);
  1085. parser[0] = new RegExp("(Pocket Casts)$");
  1086. parser[1] = 0;
  1087. parser[2] = 0;
  1088. parser[3] = 0;
  1089. parser[4] = 0;
  1090. exports.browser[152] = parser;
  1091. parser = Object.create(null);
  1092. parser[0] = new RegExp("(Player FM)$");
  1093. parser[1] = 0;
  1094. parser[2] = 0;
  1095. parser[3] = 0;
  1096. parser[4] = 0;
  1097. exports.browser[153] = parser;
  1098. parser = Object.create(null);
  1099. parser[0] = new RegExp("(LG Player|Doppler|FancyMusic|MediaMonkey|Clementine) (\\d+)\\.(\\d+)\\.?([^.\\s]+)?\\.?([^.\\s]+)?");
  1100. parser[1] = 0;
  1101. parser[2] = 0;
  1102. parser[3] = 0;
  1103. parser[4] = 0;
  1104. exports.browser[154] = parser;
  1105. parser = Object.create(null);
  1106. parser[0] = new RegExp("(philpodder)/(\\d+)\\.(\\d+)\\.?([^.\\s]+)?\\.?([^.\\s]+)?");
  1107. parser[1] = 0;
  1108. parser[2] = 0;
  1109. parser[3] = 0;
  1110. parser[4] = 0;
  1111. exports.browser[155] = parser;
  1112. parser = Object.create(null);
  1113. parser[0] = new RegExp("(Player FM|Pocket Casts|DoggCatcher|Spotify|MediaMonkey|MediaGo|BashPodder)");
  1114. parser[1] = 0;
  1115. parser[2] = 0;
  1116. parser[3] = 0;
  1117. parser[4] = 0;
  1118. exports.browser[156] = parser;
  1119. parser = Object.create(null);
  1120. parser[0] = new RegExp("(QuickTime)\\.(\\d+)\\.(\\d+)\\.(\\d+)");
  1121. parser[1] = 0;
  1122. parser[2] = 0;
  1123. parser[3] = 0;
  1124. parser[4] = 0;
  1125. exports.browser[157] = parser;
  1126. parser = Object.create(null);
  1127. parser[0] = new RegExp("(Kinoma)(\\d+)");
  1128. parser[1] = 0;
  1129. parser[2] = 0;
  1130. parser[3] = 0;
  1131. parser[4] = 0;
  1132. exports.browser[158] = parser;
  1133. parser = Object.create(null);
  1134. parser[0] = new RegExp("(Fancy) Cloud Music (\\d+)\\.(\\d+)");
  1135. parser[1] = "FancyMusic";
  1136. parser[2] = 0;
  1137. parser[3] = 0;
  1138. parser[4] = 0;
  1139. exports.browser[159] = parser;
  1140. parser = Object.create(null);
  1141. parser[0] = new RegExp("EspnDownloadManager");
  1142. parser[1] = "ESPN";
  1143. parser[2] = 0;
  1144. parser[3] = 0;
  1145. parser[4] = 0;
  1146. exports.browser[160] = parser;
  1147. parser = Object.create(null);
  1148. parser[0] = new RegExp("(ESPN) Radio (\\d+)\\.(\\d+)\\.?(\\d+)? ?[rv:]?(\\d+)? ");
  1149. parser[1] = 0;
  1150. parser[2] = 0;
  1151. parser[3] = 0;
  1152. parser[4] = 0;
  1153. exports.browser[161] = parser;
  1154. parser = Object.create(null);
  1155. parser[0] = new RegExp("(podracer|jPodder) v ?(\\d+)\\.(\\d+)\\.?(\\d+)?");
  1156. parser[1] = 0;
  1157. parser[2] = 0;
  1158. parser[3] = 0;
  1159. parser[4] = 0;
  1160. exports.browser[162] = parser;
  1161. parser = Object.create(null);
  1162. parser[0] = new RegExp("(ZDM)/(\\d+)\\.(\\d+)[; ]?");
  1163. parser[1] = 0;
  1164. parser[2] = 0;
  1165. parser[3] = 0;
  1166. parser[4] = 0;
  1167. exports.browser[163] = parser;
  1168. parser = Object.create(null);
  1169. parser[0] = new RegExp("(Zune|BeyondPod) (\\d+)\\.?(\\d+)?[\\);]");
  1170. parser[1] = 0;
  1171. parser[2] = 0;
  1172. parser[3] = 0;
  1173. parser[4] = 0;
  1174. exports.browser[164] = parser;
  1175. parser = Object.create(null);
  1176. parser[0] = new RegExp("(WMPlayer)/(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+)");
  1177. parser[1] = 0;
  1178. parser[2] = 0;
  1179. parser[3] = 0;
  1180. parser[4] = 0;
  1181. exports.browser[165] = parser;
  1182. parser = Object.create(null);
  1183. parser[0] = new RegExp("^(Lavf)");
  1184. parser[1] = "WMPlayer";
  1185. parser[2] = 0;
  1186. parser[3] = 0;
  1187. parser[4] = 0;
  1188. exports.browser[166] = parser;
  1189. parser = Object.create(null);
  1190. parser[0] = new RegExp("^(RSSRadio)[ /]?(\\d+)?");
  1191. parser[1] = 0;
  1192. parser[2] = 0;
  1193. parser[3] = 0;
  1194. parser[4] = 0;
  1195. exports.browser[167] = parser;
  1196. parser = Object.create(null);
  1197. parser[0] = new RegExp("(RSS_Radio) (\\d+)\\.(\\d+)");
  1198. parser[1] = "RSSRadio";
  1199. parser[2] = 0;
  1200. parser[3] = 0;
  1201. parser[4] = 0;
  1202. exports.browser[168] = parser;
  1203. parser = Object.create(null);
  1204. parser[0] = new RegExp("(Podkicker) \\S+/(\\d+)\\.(\\d+)\\.(\\d+)");
  1205. parser[1] = "Podkicker";
  1206. parser[2] = 0;
  1207. parser[3] = 0;
  1208. parser[4] = 0;
  1209. exports.browser[169] = parser;
  1210. parser = Object.create(null);
  1211. parser[0] = new RegExp("^(HTC) Streaming Player \\S+ / \\S+ / \\S+ / (\\d+)\\.(\\d+)\\.?(\\d+)?");
  1212. parser[1] = 0;
  1213. parser[2] = 0;
  1214. parser[3] = 0;
  1215. parser[4] = 0;
  1216. exports.browser[170] = parser;
  1217. parser = Object.create(null);
  1218. parser[0] = new RegExp("^(Stitcher)/iOS");
  1219. parser[1] = 0;
  1220. parser[2] = 0;
  1221. parser[3] = 0;
  1222. parser[4] = 0;
  1223. exports.browser[171] = parser;
  1224. parser = Object.create(null);
  1225. parser[0] = new RegExp("^(Stitcher)/Android");
  1226. parser[1] = 0;
  1227. parser[2] = 0;
  1228. parser[3] = 0;
  1229. parser[4] = 0;
  1230. exports.browser[172] = parser;
  1231. parser = Object.create(null);
  1232. parser[0] = new RegExp("^(VLC) .*version (\\d+)\\.(\\d+)\\.(\\d+)");
  1233. parser[1] = 0;
  1234. parser[2] = 0;
  1235. parser[3] = 0;
  1236. parser[4] = 0;
  1237. exports.browser[173] = parser;
  1238. parser = Object.create(null);
  1239. parser[0] = new RegExp(" (VLC) for");
  1240. parser[1] = 0;
  1241. parser[2] = 0;
  1242. parser[3] = 0;
  1243. parser[4] = 0;
  1244. exports.browser[174] = parser;
  1245. parser = Object.create(null);
  1246. parser[0] = new RegExp("(vlc)/(\\d+)\\.(\\d+)\\.(\\d+)");
  1247. parser[1] = "VLC";
  1248. parser[2] = 0;
  1249. parser[3] = 0;
  1250. parser[4] = 0;
  1251. exports.browser[175] = parser;
  1252. parser = Object.create(null);
  1253. parser[0] = new RegExp("^(foobar)\\S+/([^.\\s]+)\\.([^.\\s]+)?\\.?([^.\\s]+)?");
  1254. parser[1] = 0;
  1255. parser[2] = 0;
  1256. parser[3] = 0;
  1257. parser[4] = 0;
  1258. exports.browser[176] = parser;
  1259. parser = Object.create(null);
  1260. parser[0] = new RegExp("^(Clementine)\\S+ ([^.\\s]+)\\.([^.\\s]+)?\\.?([^.\\s]+)?");
  1261. parser[1] = 0;
  1262. parser[2] = 0;
  1263. parser[3] = 0;
  1264. parser[4] = 0;
  1265. exports.browser[177] = parser;
  1266. parser = Object.create(null);
  1267. parser[0] = new RegExp("(amarok)/([^.\\s]+)\\.([^.\\s]+)?\\.?([^.\\s]+)?");
  1268. parser[1] = "Amarok";
  1269. parser[2] = 0;
  1270. parser[3] = 0;
  1271. parser[4] = 0;
  1272. exports.browser[178] = parser;
  1273. parser = Object.create(null);
  1274. parser[0] = new RegExp("(Custom)-Feed Reader");
  1275. parser[1] = 0;
  1276. parser[2] = 0;
  1277. parser[3] = 0;
  1278. parser[4] = 0;
  1279. exports.browser[179] = parser;
  1280. parser = Object.create(null);
  1281. parser[0] = new RegExp("(iRider|Crazy Browser|SkipStone|iCab|Lunascape|Sleipnir|Maemo Browser) (\\d+)\\.(\\d+)\\.(\\d+)");
  1282. parser[1] = 0;
  1283. parser[2] = 0;
  1284. parser[3] = 0;
  1285. parser[4] = 0;
  1286. exports.browser[180] = parser;
  1287. parser = Object.create(null);
  1288. parser[0] = new RegExp("(iCab|Lunascape|Opera|Android|Jasmine|Polaris|Microsoft SkyDriveSync|The Bat!) (\\d+)\\.(\\d+)\\.?(\\d+)?");
  1289. parser[1] = 0;
  1290. parser[2] = 0;
  1291. parser[3] = 0;
  1292. parser[4] = 0;
  1293. exports.browser[181] = parser;
  1294. parser = Object.create(null);
  1295. parser[0] = new RegExp("(Kindle)/(\\d+)\\.(\\d+)");
  1296. parser[1] = 0;
  1297. parser[2] = 0;
  1298. parser[3] = 0;
  1299. parser[4] = 0;
  1300. exports.browser[182] = parser;
  1301. parser = Object.create(null);
  1302. parser[0] = new RegExp("(Android) Donut");
  1303. parser[1] = 0;
  1304. parser[2] = "1";
  1305. parser[3] = "2";
  1306. parser[4] = 0;
  1307. exports.browser[183] = parser;
  1308. parser = Object.create(null);
  1309. parser[0] = new RegExp("(Android) Eclair");
  1310. parser[1] = 0;
  1311. parser[2] = "2";
  1312. parser[3] = "1";
  1313. parser[4] = 0;
  1314. exports.browser[184] = parser;
  1315. parser = Object.create(null);
  1316. parser[0] = new RegExp("(Android) Froyo");
  1317. parser[1] = 0;
  1318. parser[2] = "2";
  1319. parser[3] = "2";
  1320. parser[4] = 0;
  1321. exports.browser[185] = parser;
  1322. parser = Object.create(null);
  1323. parser[0] = new RegExp("(Android) Gingerbread");
  1324. parser[1] = 0;
  1325. parser[2] = "2";
  1326. parser[3] = "3";
  1327. parser[4] = 0;
  1328. exports.browser[186] = parser;
  1329. parser = Object.create(null);
  1330. parser[0] = new RegExp("(Android) Honeycomb");
  1331. parser[1] = 0;
  1332. parser[2] = "3";
  1333. parser[3] = 0;
  1334. parser[4] = 0;
  1335. exports.browser[187] = parser;
  1336. parser = Object.create(null);
  1337. parser[0] = new RegExp("(MSIE) (\\d+)\\.(\\d+).*XBLWP7");
  1338. parser[1] = "IE Large Screen";
  1339. parser[2] = 0;
  1340. parser[3] = 0;
  1341. parser[4] = 0;
  1342. exports.browser[188] = parser;
  1343. parser = Object.create(null);
  1344. parser[0] = new RegExp("(Nextcloud)");
  1345. parser[1] = 0;
  1346. parser[2] = 0;
  1347. parser[3] = 0;
  1348. parser[4] = 0;
  1349. exports.browser[189] = parser;
  1350. parser = Object.create(null);
  1351. parser[0] = new RegExp("(mirall)/(\\d+)\\.(\\d+)\\.(\\d+)");
  1352. parser[1] = 0;
  1353. parser[2] = 0;
  1354. parser[3] = 0;
  1355. parser[4] = 0;
  1356. exports.browser[190] = parser;
  1357. parser = Object.create(null);
  1358. parser[0] = new RegExp("(ownCloud-android)/(\\d+)\\.(\\d+)\\.(\\d+)");
  1359. parser[1] = "Owncloud";
  1360. parser[2] = 0;
  1361. parser[3] = 0;
  1362. parser[4] = 0;
  1363. exports.browser[191] = parser;
  1364. parser = Object.create(null);
  1365. parser[0] = new RegExp("(Obigo)InternetBrowser");
  1366. parser[1] = 0;
  1367. parser[2] = 0;
  1368. parser[3] = 0;
  1369. parser[4] = 0;
  1370. exports.browser[192] = parser;
  1371. parser = Object.create(null);
  1372. parser[0] = new RegExp("(Obigo)\\-Browser");
  1373. parser[1] = 0;
  1374. parser[2] = 0;
  1375. parser[3] = 0;
  1376. parser[4] = 0;
  1377. exports.browser[193] = parser;
  1378. parser = Object.create(null);
  1379. parser[0] = new RegExp("(Obigo|OBIGO)[^\\d]*(\\d+)(?:.(\\d+))?");
  1380. parser[1] = "Obigo";
  1381. parser[2] = 0;
  1382. parser[3] = 0;
  1383. parser[4] = 0;
  1384. exports.browser[194] = parser;
  1385. parser = Object.create(null);
  1386. parser[0] = new RegExp("(MAXTHON|Maxthon) (\\d+)\\.(\\d+)");
  1387. parser[1] = "Maxthon";
  1388. parser[2] = 0;
  1389. parser[3] = 0;
  1390. parser[4] = 0;
  1391. exports.browser[195] = parser;
  1392. parser = Object.create(null);
  1393. parser[0] = new RegExp("(Maxthon|MyIE2|Uzbl|Shiira)");
  1394. parser[1] = 0;
  1395. parser[2] = "0";
  1396. parser[3] = 0;
  1397. parser[4] = 0;
  1398. exports.browser[196] = parser;
  1399. parser = Object.create(null);
  1400. parser[0] = new RegExp("(BrowseX) \\((\\d+)\\.(\\d+)\\.(\\d+)");
  1401. parser[1] = 0;
  1402. parser[2] = 0;
  1403. parser[3] = 0;
  1404. parser[4] = 0;
  1405. exports.browser[197] = parser;
  1406. parser = Object.create(null);
  1407. parser[0] = new RegExp("(NCSA_Mosaic)/(\\d+)\\.(\\d+)");
  1408. parser[1] = "NCSA Mosaic";
  1409. parser[2] = 0;
  1410. parser[3] = 0;
  1411. parser[4] = 0;
  1412. exports.browser[198] = parser;
  1413. parser = Object.create(null);
  1414. parser[0] = new RegExp("(POLARIS)/(\\d+)\\.(\\d+)");
  1415. parser[1] = "Polaris";
  1416. parser[2] = 0;
  1417. parser[3] = 0;
  1418. parser[4] = 0;
  1419. exports.browser[199] = parser;
  1420. parser = Object.create(null);
  1421. parser[0] = new RegExp("(Embider)/(\\d+)\\.(\\d+)");
  1422. parser[1] = "Polaris";
  1423. parser[2] = 0;
  1424. parser[3] = 0;
  1425. parser[4] = 0;
  1426. exports.browser[200] = parser;
  1427. parser = Object.create(null);
  1428. parser[0] = new RegExp("(BonEcho)/(\\d+)\\.(\\d+)\\.?([ab]?\\d+)?");
  1429. parser[1] = "Bon Echo";
  1430. parser[2] = 0;
  1431. parser[3] = 0;
  1432. parser[4] = 0;
  1433. exports.browser[201] = parser;
  1434. parser = Object.create(null);
  1435. parser[0] = new RegExp("(iPod|iPhone|iPad).+Version/(\\d+)\\.(\\d+)(?:\\.(\\d+))?.*[ +]Safari");
  1436. parser[1] = "Mobile Safari";
  1437. parser[2] = 0;
  1438. parser[3] = 0;
  1439. parser[4] = 0;
  1440. exports.browser[202] = parser;
  1441. parser = Object.create(null);
  1442. parser[0] = new RegExp("(iPod|iPod touch|iPhone|iPad);.*CPU.*OS[ +](\\d+)_(\\d+)(?:_(\\d+))?.* AppleNews\\/\\d+\\.\\d+\\.\\d+?");
  1443. parser[1] = "Mobile Safari UI/WKWebView";
  1444. parser[2] = 0;
  1445. parser[3] = 0;
  1446. parser[4] = 0;
  1447. exports.browser[203] = parser;
  1448. parser = Object.create(null);
  1449. parser[0] = new RegExp("(iPod|iPhone|iPad).+Version/(\\d+)\\.(\\d+)(?:\\.(\\d+))?");
  1450. parser[1] = "Mobile Safari UI/WKWebView";
  1451. parser[2] = 0;
  1452. parser[3] = 0;
  1453. parser[4] = 0;
  1454. exports.browser[204] = parser;
  1455. parser = Object.create(null);
  1456. parser[0] = new RegExp("(iPod|iPod touch|iPhone|iPad);.*CPU.*OS[ +](\\d+)_(\\d+)(?:_(\\d+))?.*Mobile.*[ +]Safari");
  1457. parser[1] = "Mobile Safari";
  1458. parser[2] = 0;
  1459. parser[3] = 0;
  1460. parser[4] = 0;
  1461. exports.browser[205] = parser;
  1462. parser = Object.create(null);
  1463. parser[0] = new RegExp("(iPod|iPod touch|iPhone|iPad);.*CPU.*OS[ +](\\d+)_(\\d+)(?:_(\\d+))?.*Mobile");
  1464. parser[1] = "Mobile Safari UI/WKWebView";
  1465. parser[2] = 0;
  1466. parser[3] = 0;
  1467. parser[4] = 0;
  1468. exports.browser[206] = parser;
  1469. parser = Object.create(null);
  1470. parser[0] = new RegExp("(iPod|iPhone|iPad).* Safari");
  1471. parser[1] = "Mobile Safari";
  1472. parser[2] = 0;
  1473. parser[3] = 0;
  1474. parser[4] = 0;
  1475. exports.browser[207] = parser;
  1476. parser = Object.create(null);
  1477. parser[0] = new RegExp("(iPod|iPhone|iPad)");
  1478. parser[1] = "Mobile Safari UI/WKWebView";
  1479. parser[2] = 0;
  1480. parser[3] = 0;
  1481. parser[4] = 0;
  1482. exports.browser[208] = parser;
  1483. parser = Object.create(null);
  1484. parser[0] = new RegExp("(AvantGo) (\\d+).(\\d+)");
  1485. parser[1] = 0;
  1486. parser[2] = 0;
  1487. parser[3] = 0;
  1488. parser[4] = 0;
  1489. exports.browser[209] = parser;
  1490. parser = Object.create(null);
  1491. parser[0] = new RegExp("(OneBrowser)/(\\d+).(\\d+)");
  1492. parser[1] = "ONE Browser";
  1493. parser[2] = 0;
  1494. parser[3] = 0;
  1495. parser[4] = 0;
  1496. exports.browser[210] = parser;
  1497. parser = Object.create(null);
  1498. parser[0] = new RegExp("(Avant)");
  1499. parser[1] = 0;
  1500. parser[2] = "1";
  1501. parser[3] = 0;
  1502. parser[4] = 0;
  1503. exports.browser[211] = parser;
  1504. parser = Object.create(null);
  1505. parser[0] = new RegExp("(QtCarBrowser)");
  1506. parser[1] = 0;
  1507. parser[2] = "1";
  1508. parser[3] = 0;
  1509. parser[4] = 0;
  1510. exports.browser[212] = parser;
  1511. parser = Object.create(null);
  1512. parser[0] = new RegExp("^(iBrowser/Mini)(\\d+).(\\d+)");
  1513. parser[1] = "iBrowser Mini";
  1514. parser[2] = 0;
  1515. parser[3] = 0;
  1516. parser[4] = 0;
  1517. exports.browser[213] = parser;
  1518. parser = Object.create(null);
  1519. parser[0] = new RegExp("^(iBrowser|iRAPP)/(\\d+).(\\d+)");
  1520. parser[1] = 0;
  1521. parser[2] = 0;
  1522. parser[3] = 0;
  1523. parser[4] = 0;
  1524. exports.browser[214] = parser;
  1525. parser = Object.create(null);
  1526. parser[0] = new RegExp("^(Nokia)");
  1527. parser[1] = "Nokia Services (WAP) Browser";
  1528. parser[2] = 0;
  1529. parser[3] = 0;
  1530. parser[4] = 0;
  1531. exports.browser[215] = parser;
  1532. parser = Object.create(null);
  1533. parser[0] = new RegExp("(NokiaBrowser)/(\\d+)\\.(\\d+).(\\d+)\\.(\\d+)");
  1534. parser[1] = "Nokia Browser";
  1535. parser[2] = 0;
  1536. parser[3] = 0;
  1537. parser[4] = 0;
  1538. exports.browser[216] = parser;
  1539. parser = Object.create(null);
  1540. parser[0] = new RegExp("(NokiaBrowser)/(\\d+)\\.(\\d+).(\\d+)");
  1541. parser[1] = "Nokia Browser";
  1542. parser[2] = 0;
  1543. parser[3] = 0;
  1544. parser[4] = 0;
  1545. exports.browser[217] = parser;
  1546. parser = Object.create(null);
  1547. parser[0] = new RegExp("(NokiaBrowser)/(\\d+)\\.(\\d+)");
  1548. parser[1] = "Nokia Browser";
  1549. parser[2] = 0;
  1550. parser[3] = 0;
  1551. parser[4] = 0;
  1552. exports.browser[218] = parser;
  1553. parser = Object.create(null);
  1554. parser[0] = new RegExp("(BrowserNG)/(\\d+)\\.(\\d+).(\\d+)");
  1555. parser[1] = "Nokia Browser";
  1556. parser[2] = 0;
  1557. parser[3] = 0;
  1558. parser[4] = 0;
  1559. exports.browser[219] = parser;
  1560. parser = Object.create(null);
  1561. parser[0] = new RegExp("(Series60)/5\\.0");
  1562. parser[1] = "Nokia Browser";
  1563. parser[2] = "7";
  1564. parser[3] = "0";
  1565. parser[4] = 0;
  1566. exports.browser[220] = parser;
  1567. parser = Object.create(null);
  1568. parser[0] = new RegExp("(Series60)/(\\d+)\\.(\\d+)");
  1569. parser[1] = "Nokia OSS Browser";
  1570. parser[2] = 0;
  1571. parser[3] = 0;
  1572. parser[4] = 0;
  1573. exports.browser[221] = parser;
  1574. parser = Object.create(null);
  1575. parser[0] = new RegExp("(S40OviBrowser)/(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+)");
  1576. parser[1] = "Ovi Browser";
  1577. parser[2] = 0;
  1578. parser[3] = 0;
  1579. parser[4] = 0;
  1580. exports.browser[222] = parser;
  1581. parser = Object.create(null);
  1582. parser[0] = new RegExp("(Nokia)[EN]?(\\d+)");
  1583. parser[1] = 0;
  1584. parser[2] = 0;
  1585. parser[3] = 0;
  1586. parser[4] = 0;
  1587. exports.browser[223] = parser;
  1588. parser = Object.create(null);
  1589. parser[0] = new RegExp("(PlayBook).+RIM Tablet OS (\\d+)\\.(\\d+)\\.(\\d+)");
  1590. parser[1] = "BlackBerry WebKit";
  1591. parser[2] = 0;
  1592. parser[3] = 0;
  1593. parser[4] = 0;
  1594. exports.browser[224] = parser;
  1595. parser = Object.create(null);
  1596. parser[0] = new RegExp("(Black[bB]erry|BB10).+Version/(\\d+)\\.(\\d+)\\.(\\d+)");
  1597. parser[1] = "BlackBerry WebKit";
  1598. parser[2] = 0;
  1599. parser[3] = 0;
  1600. parser[4] = 0;
  1601. exports.browser[225] = parser;
  1602. parser = Object.create(null);
  1603. parser[0] = new RegExp("(Black[bB]erry)\\s?(\\d+)");
  1604. parser[1] = "BlackBerry";
  1605. parser[2] = 0;
  1606. parser[3] = 0;
  1607. parser[4] = 0;
  1608. exports.browser[226] = parser;
  1609. parser = Object.create(null);
  1610. parser[0] = new RegExp("(OmniWeb)/v(\\d+)\\.(\\d+)");
  1611. parser[1] = 0;
  1612. parser[2] = 0;
  1613. parser[3] = 0;
  1614. parser[4] = 0;
  1615. exports.browser[227] = parser;
  1616. parser = Object.create(null);
  1617. parser[0] = new RegExp("(Blazer)/(\\d+)\\.(\\d+)");
  1618. parser[1] = "Palm Blazer";
  1619. parser[2] = 0;
  1620. parser[3] = 0;
  1621. parser[4] = 0;
  1622. exports.browser[228] = parser;
  1623. parser = Object.create(null);
  1624. parser[0] = new RegExp("(Pre)/(\\d+)\\.(\\d+)");
  1625. parser[1] = "Palm Pre";
  1626. parser[2] = 0;
  1627. parser[3] = 0;
  1628. parser[4] = 0;
  1629. exports.browser[229] = parser;
  1630. parser = Object.create(null);
  1631. parser[0] = new RegExp("(ELinks)/(\\d+)\\.(\\d+)");
  1632. parser[1] = 0;
  1633. parser[2] = 0;
  1634. parser[3] = 0;
  1635. parser[4] = 0;
  1636. exports.browser[230] = parser;
  1637. parser = Object.create(null);
  1638. parser[0] = new RegExp("(ELinks) \\((\\d+)\\.(\\d+)");
  1639. parser[1] = 0;
  1640. parser[2] = 0;
  1641. parser[3] = 0;
  1642. parser[4] = 0;
  1643. exports.browser[231] = parser;
  1644. parser = Object.create(null);
  1645. parser[0] = new RegExp("(Links) \\((\\d+)\\.(\\d+)");
  1646. parser[1] = 0;
  1647. parser[2] = 0;
  1648. parser[3] = 0;
  1649. parser[4] = 0;
  1650. exports.browser[232] = parser;
  1651. parser = Object.create(null);
  1652. parser[0] = new RegExp("(QtWeb) Internet Browser/(\\d+)\\.(\\d+)");
  1653. parser[1] = 0;
  1654. parser[2] = 0;
  1655. parser[3] = 0;
  1656. parser[4] = 0;
  1657. exports.browser[233] = parser;
  1658. parser = Object.create(null);
  1659. parser[0] = new RegExp("(PhantomJS)/(\\d+)\\.(\\d+)\\.(\\d+)");
  1660. parser[1] = 0;
  1661. parser[2] = 0;
  1662. parser[3] = 0;
  1663. parser[4] = 0;
  1664. exports.browser[234] = parser;
  1665. parser = Object.create(null);
  1666. parser[0] = new RegExp("(AppleWebKit)/(\\d+)\\.?(\\d+)?\\+ .* Safari");
  1667. parser[1] = "WebKit Nightly";
  1668. parser[2] = 0;
  1669. parser[3] = 0;
  1670. parser[4] = 0;
  1671. exports.browser[235] = parser;
  1672. parser = Object.create(null);
  1673. parser[0] = new RegExp("(Version)/(\\d+)\\.(\\d+)(?:\\.(\\d+))?.*Safari/");
  1674. parser[1] = "Safari";
  1675. parser[2] = 0;
  1676. parser[3] = 0;
  1677. parser[4] = 0;
  1678. exports.browser[236] = parser;
  1679. parser = Object.create(null);
  1680. parser[0] = new RegExp("(Safari)/\\d+");
  1681. parser[1] = 0;
  1682. parser[2] = 0;
  1683. parser[3] = 0;
  1684. parser[4] = 0;
  1685. exports.browser[237] = parser;
  1686. parser = Object.create(null);
  1687. parser[0] = new RegExp("(OLPC)/Update(\\d+)\\.(\\d+)");
  1688. parser[1] = 0;
  1689. parser[2] = 0;
  1690. parser[3] = 0;
  1691. parser[4] = 0;
  1692. exports.browser[238] = parser;
  1693. parser = Object.create(null);
  1694. parser[0] = new RegExp("(OLPC)/Update()\\.(\\d+)");
  1695. parser[1] = 0;
  1696. parser[2] = "0";
  1697. parser[3] = 0;
  1698. parser[4] = 0;
  1699. exports.browser[239] = parser;
  1700. parser = Object.create(null);
  1701. parser[0] = new RegExp("(SEMC\\-Browser)/(\\d+)\\.(\\d+)");
  1702. parser[1] = 0;
  1703. parser[2] = 0;
  1704. parser[3] = 0;
  1705. parser[4] = 0;
  1706. exports.browser[240] = parser;
  1707. parser = Object.create(null);
  1708. parser[0] = new RegExp("(Teleca)");
  1709. parser[1] = "Teleca Browser";
  1710. parser[2] = 0;
  1711. parser[3] = 0;
  1712. parser[4] = 0;
  1713. exports.browser[241] = parser;
  1714. parser = Object.create(null);
  1715. parser[0] = new RegExp("(Phantom)/V(\\d+)\\.(\\d+)");
  1716. parser[1] = "Phantom Browser";
  1717. parser[2] = 0;
  1718. parser[3] = 0;
  1719. parser[4] = 0;
  1720. exports.browser[242] = parser;
  1721. parser = Object.create(null);
  1722. parser[0] = new RegExp("(Trident)/(7)\\.(0)");
  1723. parser[1] = "IE";
  1724. parser[2] = "11";
  1725. parser[3] = 0;
  1726. parser[4] = 0;
  1727. exports.browser[243] = parser;
  1728. parser = Object.create(null);
  1729. parser[0] = new RegExp("(Trident)/(6)\\.(0)");
  1730. parser[1] = "IE";
  1731. parser[2] = "10";
  1732. parser[3] = 0;
  1733. parser[4] = 0;
  1734. exports.browser[244] = parser;
  1735. parser = Object.create(null);
  1736. parser[0] = new RegExp("(Trident)/(5)\\.(0)");
  1737. parser[1] = "IE";
  1738. parser[2] = "9";
  1739. parser[3] = 0;
  1740. parser[4] = 0;
  1741. exports.browser[245] = parser;
  1742. parser = Object.create(null);
  1743. parser[0] = new RegExp("(Trident)/(4)\\.(0)");
  1744. parser[1] = "IE";
  1745. parser[2] = "8";
  1746. parser[3] = 0;
  1747. parser[4] = 0;
  1748. exports.browser[246] = parser;
  1749. parser = Object.create(null);
  1750. parser[0] = new RegExp("(Espial)/(\\d+)(?:\\.(\\d+))?(?:\\.(\\d+))?");
  1751. parser[1] = 0;
  1752. parser[2] = 0;
  1753. parser[3] = 0;
  1754. parser[4] = 0;
  1755. exports.browser[247] = parser;
  1756. parser = Object.create(null);
  1757. parser[0] = new RegExp("(AppleWebKit)/(\\d+)\\.(\\d+)\\.(\\d+)");
  1758. parser[1] = "Apple Mail";
  1759. parser[2] = 0;
  1760. parser[3] = 0;
  1761. parser[4] = 0;
  1762. exports.browser[248] = parser;
  1763. parser = Object.create(null);
  1764. parser[0] = new RegExp("(Firefox)/(\\d+)\\.(\\d+)\\.(\\d+)");
  1765. parser[1] = 0;
  1766. parser[2] = 0;
  1767. parser[3] = 0;
  1768. parser[4] = 0;
  1769. exports.browser[249] = parser;
  1770. parser = Object.create(null);
  1771. parser[0] = new RegExp("(Firefox)/(\\d+)\\.(\\d+)(pre|[ab]\\d+[a-z]*)?");
  1772. parser[1] = 0;
  1773. parser[2] = 0;
  1774. parser[3] = 0;
  1775. parser[4] = 0;
  1776. exports.browser[250] = parser;
  1777. parser = Object.create(null);
  1778. parser[0] = new RegExp("([MS]?IE) (\\d+)\\.(\\d+)");
  1779. parser[1] = "IE";
  1780. parser[2] = 0;
  1781. parser[3] = 0;
  1782. parser[4] = 0;
  1783. exports.browser[251] = parser;
  1784. parser = Object.create(null);
  1785. parser[0] = new RegExp("(python-requests)/(\\d+)\\.(\\d+)");
  1786. parser[1] = "Python Requests";
  1787. parser[2] = 0;
  1788. parser[3] = 0;
  1789. parser[4] = 0;
  1790. exports.browser[252] = parser;
  1791. parser = Object.create(null);
  1792. parser[0] = new RegExp("\\b(Windows-Update-Agent|Microsoft-CryptoAPI|SophosUpdateManager|SophosAgent|Debian APT-HTTP|Ubuntu APT-HTTP|libcurl-agent|libwww-perl|urlgrabber|curl|Wget|OpenBSD ftp|jupdate)(?:[ /](\\d+)(?:\\.(\\d+)(?:\\.(\\d+))?)?)?");
  1793. parser[1] = 0;
  1794. parser[2] = 0;
  1795. parser[3] = 0;
  1796. parser[4] = 0;
  1797. exports.browser[253] = parser;
  1798. parser = Object.create(null);
  1799. parser[0] = new RegExp("(Java)[/ ]{0,1}\\d+\\.(\\d+)\\.(\\d+)[_-]*([a-zA-Z0-9]+)*");
  1800. parser[1] = 0;
  1801. parser[2] = 0;
  1802. parser[3] = 0;
  1803. parser[4] = 0;
  1804. exports.browser[254] = parser;
  1805. parser = Object.create(null);
  1806. parser[0] = new RegExp("^(Roku)/DVP-(\\d+)\\.(\\d+)");
  1807. parser[1] = 0;
  1808. parser[2] = 0;
  1809. parser[3] = 0;
  1810. parser[4] = 0;
  1811. exports.browser[255] = parser;
  1812. parser = Object.create(null);
  1813. parser[0] = new RegExp("(Kurio)\\/(\\d+)\\.(\\d+)\\.(\\d+)");
  1814. parser[1] = "Kurio App";
  1815. parser[2] = 0;
  1816. parser[3] = 0;
  1817. parser[4] = 0;
  1818. exports.browser[256] = parser;
  1819. parser = Object.create(null);
  1820. parser[0] = new RegExp("^(Box(?: Sync)?)/(\\d+)\\.(\\d+)\\.(\\d+)");
  1821. parser[1] = 0;
  1822. parser[2] = 0;
  1823. parser[3] = 0;
  1824. parser[4] = 0;
  1825. exports.browser[257] = parser;
  1826. parser = Object.create(null);
  1827. parser[0] = new RegExp("(Wget)/(\\d+)\\.(\\d+)\\.?([ab]?\\d+[a-z]*)");
  1828. parser[1] = 0;
  1829. parser[2] = 0;
  1830. parser[3] = 0;
  1831. parser[4] = 0;
  1832. exports.browser[258] = parser;
  1833. parser = Object.create(null);
  1834. parser[0] = new RegExp("(curl)/(\\d+)\\.(\\d+)\\.(\\d+)");
  1835. parser[1] = "cURL";
  1836. parser[2] = 0;
  1837. parser[3] = 0;
  1838. parser[4] = 0;
  1839. exports.browser[259] = parser;
  1840. exports.browser.length = 260;
  1841. exports.device = Object.create(null);
  1842. parser = Object.create(null);
  1843. parser[0] = new RegExp("(Rival IQ, rivaliq.com)");
  1844. parser[1] = "Spider";
  1845. parser[2] = 0;
  1846. parser[3] = 0;
  1847. parser[4] = 0;
  1848. exports.device[0] = parser;
  1849. parser = Object.create(null);
  1850. parser[0] = new RegExp("(?:(?:iPhone|Windows CE|Windows Phone|Android).*(?:(?:Bot|Yeti)-Mobile|YRSpider|BingPreview|bots?/\\d|(?:bot|spider)\\.html)|AdsBot-Google-Mobile.*iPhone)");
  1851. parser[1] = "Spider";
  1852. parser[2] = 0;
  1853. parser[3] = 0;
  1854. parser[4] = 0;
  1855. exports.device[1] = parser;
  1856. parser = Object.create(null);
  1857. parser[0] = new RegExp("(?:DoCoMo|\\bMOT\\b|\\bLG\\b|Nokia|Samsung|SonyEricsson).*(?:(?:Bot|Yeti)-Mobile|bots?/\\d|(?:bot|crawler)\\.html|(?:jump|google|Wukong)bot|ichiro/mobile|/spider|YahooSeeker)");
  1858. parser[1] = "Spider";
  1859. parser[2] = 0;
  1860. parser[3] = 0;
  1861. parser[4] = 0;
  1862. exports.device[2] = parser;
  1863. parser = Object.create(null);
  1864. parser[0] = new RegExp("\\bSmartWatch *\\( *([^;]+) *; *([^;]+) *;");
  1865. parser[1] = "$1 $2";
  1866. parser[2] = 0;
  1867. parser[3] = 0;
  1868. parser[4] = 0;
  1869. exports.device[3] = parser;
  1870. parser = Object.create(null);
  1871. parser[0] = new RegExp("Android Application[^\\-]+ - (Sony) ?(Ericsson)? (.+) \\w+ - ");
  1872. parser[1] = "$1 $2";
  1873. parser[2] = 0;
  1874. parser[3] = 0;
  1875. parser[4] = 0;
  1876. exports.device[4] = parser;
  1877. parser = Object.create(null);
  1878. parser[0] = new RegExp("Android Application[^\\-]+ - (?:HTC|HUAWEI|LGE|LENOVO|MEDION|TCT) (HTC|HUAWEI|LG|LENOVO|MEDION|ALCATEL)[ _\\-](.+) \\w+ - ");
  1879. parser[1] = "$1 $2";
  1880. parser[2] = 0;
  1881. parser[3] = 0;
  1882. parser[4] = 0;
  1883. exports.device[5] = parser;
  1884. parser = Object.create(null);
  1885. parser[0] = new RegExp("Android Application[^\\-]+ - ([^ ]+) (.+) \\w+ - ");
  1886. parser[1] = "$1 $2";
  1887. parser[2] = 0;
  1888. parser[3] = 0;
  1889. parser[4] = 0;
  1890. exports.device[6] = parser;
  1891. parser = Object.create(null);
  1892. parser[0] = new RegExp("; *([BLRQ]C\\d{4}[A-Z]+) +Build/");
  1893. parser[1] = "3Q $1";
  1894. parser[2] = 0;
  1895. parser[3] = 0;
  1896. parser[4] = 0;
  1897. exports.device[7] = parser;
  1898. parser = Object.create(null);
  1899. parser[0] = new RegExp("; *(?:3Q_)([^;/]+) +Build");
  1900. parser[1] = "3Q $1";
  1901. parser[2] = 0;
  1902. parser[3] = 0;
  1903. parser[4] = 0;
  1904. exports.device[8] = parser;
  1905. parser = Object.create(null);
  1906. parser[0] = new RegExp("Android [34].*; *(A100|A101|A110|A200|A210|A211|A500|A501|A510|A511|A700(?: Lite| 3G)?|A701|B1-A71|A1-\\d{3}|B1-\\d{3}|V360|V370|W500|W500P|W501|W501P|W510|W511|W700|Slider SL101|DA22[^;/]+) Build");
  1907. parser[1] = "$1";
  1908. parser[2] = 0;
  1909. parser[3] = 0;
  1910. parser[4] = 0;
  1911. exports.device[9] = parser;
  1912. parser = Object.create(null);
  1913. parser[0] = new RegExp("; *Acer Iconia Tab ([^;/]+) Build");
  1914. parser[1] = "$1";
  1915. parser[2] = 0;
  1916. parser[3] = 0;
  1917. parser[4] = 0;
  1918. exports.device[10] = parser;
  1919. parser = Object.create(null);
  1920. parser[0] = new RegExp("; *(Z1[1235]0|E320[^/]*|S500|S510|Liquid[^;/]*|Iconia A\\d+) Build");
  1921. parser[1] = "$1";
  1922. parser[2] = 0;
  1923. parser[3] = 0;
  1924. parser[4] = 0;
  1925. exports.device[11] = parser;
  1926. parser = Object.create(null);
  1927. parser[0] = new RegExp("; *(Acer |ACER )([^;/]+) Build");
  1928. parser[1] = "$1$2";
  1929. parser[2] = 0;
  1930. parser[3] = 0;
  1931. parser[4] = 0;
  1932. exports.device[12] = parser;
  1933. parser = Object.create(null);
  1934. parser[0] = new RegExp("; *(Advent )?(Vega(?:Bean|Comb)?).* Build");
  1935. parser[1] = "$1$2";
  1936. parser[2] = 0;
  1937. parser[3] = 0;
  1938. parser[4] = 0;
  1939. exports.device[13] = parser;
  1940. parser = Object.create(null);
  1941. parser[0] = new RegExp("; *(Ainol )?((?:NOVO|[Nn]ovo)[^;/]+) Build");
  1942. parser[1] = "$1$2";
  1943. parser[2] = 0;
  1944. parser[3] = 0;
  1945. parser[4] = 0;
  1946. exports.device[14] = parser;
  1947. parser = Object.create(null);
  1948. parser[0] = new RegExp("; *AIRIS[ _\\-]?([^/;\\)]+) *(?:;|\\)|Build)");
  1949. parser[1] = "$1";
  1950. parser[2] = 0;
  1951. parser[3] = 0;
  1952. parser[4] = 0;
  1953. exports.device[15] = parser;
  1954. parser = Object.create(null);
  1955. parser[0] = new RegExp("; *(OnePAD[^;/]+) Build");
  1956. parser[1] = "$1";
  1957. parser[2] = 0;
  1958. parser[3] = 0;
  1959. parser[4] = 0;
  1960. exports.device[16] = parser;
  1961. parser = Object.create(null);
  1962. parser[0] = new RegExp("; *Airpad[ \\-]([^;/]+) Build");
  1963. parser[1] = "Airpad $1";
  1964. parser[2] = 0;
  1965. parser[3] = 0;
  1966. parser[4] = 0;
  1967. exports.device[17] = parser;
  1968. parser = Object.create(null);
  1969. parser[0] = new RegExp("; *(one ?touch) (EVO7|T10|T20) Build");
  1970. parser[1] = "Alcatel One Touch $2";
  1971. parser[2] = 0;
  1972. parser[3] = 0;
  1973. parser[4] = 0;
  1974. exports.device[18] = parser;
  1975. parser = Object.create(null);
  1976. parser[0] = new RegExp("; *(?:alcatel[ _])?(?:(?:one[ _]?touch[ _])|ot[ \\-])([^;/]+);? Build");
  1977. parser[1] = "Alcatel One Touch $1";
  1978. parser[2] = 0;
  1979. parser[3] = 0;
  1980. parser[4] = 0;
  1981. exports.device[19] = parser;
  1982. parser = Object.create(null);
  1983. parser[0] = new RegExp("; *(TCL)[ _]([^;/]+) Build");
  1984. parser[1] = "$1 $2";
  1985. parser[2] = 0;
  1986. parser[3] = 0;
  1987. parser[4] = 0;
  1988. exports.device[20] = parser;
  1989. parser = Object.create(null);
  1990. parser[0] = new RegExp("; *(Vodafone Smart II|Optimus_Madrid) Build");
  1991. parser[1] = "Alcatel $1";
  1992. parser[2] = 0;
  1993. parser[3] = 0;
  1994. parser[4] = 0;
  1995. exports.device[21] = parser;
  1996. parser = Object.create(null);
  1997. parser[0] = new RegExp("; *BASE_Lutea_3 Build");
  1998. parser[1] = "Alcatel One Touch 998";
  1999. parser[2] = 0;
  2000. parser[3] = 0;
  2001. parser[4] = 0;
  2002. exports.device[22] = parser;
  2003. parser = Object.create(null);
  2004. parser[0] = new RegExp("; *BASE_Varia Build");
  2005. parser[1] = "Alcatel One Touch 918D";
  2006. parser[2] = 0;
  2007. parser[3] = 0;
  2008. parser[4] = 0;
  2009. exports.device[23] = parser;
  2010. parser = Object.create(null);
  2011. parser[0] = new RegExp("; *((?:FINE|Fine)\\d[^;/]+) Build");
  2012. parser[1] = "$1";
  2013. parser[2] = 0;
  2014. parser[3] = 0;
  2015. parser[4] = 0;
  2016. exports.device[24] = parser;
  2017. parser = Object.create(null);
  2018. parser[0] = new RegExp("; *(ALLVIEW[ _]?|Allview[ _]?)((?:Speed|SPEED).*) Build/");
  2019. parser[1] = "$1$2";
  2020. parser[2] = 0;
  2021. parser[3] = 0;
  2022. parser[4] = 0;
  2023. exports.device[25] = parser;
  2024. parser = Object.create(null);
  2025. parser[0] = new RegExp("; *(ALLVIEW[ _]?|Allview[ _]?)?(AX1_Shine|AX2_Frenzy) Build");
  2026. parser[1] = "$1$2";
  2027. parser[2] = 0;
  2028. parser[3] = 0;
  2029. parser[4] = 0;
  2030. exports.device[26] = parser;
  2031. parser = Object.create(null);
  2032. parser[0] = new RegExp("; *(ALLVIEW[ _]?|Allview[ _]?)([^;/]*) Build");
  2033. parser[1] = "$1$2";
  2034. parser[2] = 0;
  2035. parser[3] = 0;
  2036. parser[4] = 0;
  2037. exports.device[27] = parser;
  2038. parser = Object.create(null);
  2039. parser[0] = new RegExp("; *(A13-MID) Build");
  2040. parser[1] = "$1";
  2041. parser[2] = 0;
  2042. parser[3] = 0;
  2043. parser[4] = 0;
  2044. exports.device[28] = parser;
  2045. parser = Object.create(null);
  2046. parser[0] = new RegExp("; *(Allwinner)[ _\\-]?([^;/]+) Build");
  2047. parser[1] = "$1 $2";
  2048. parser[2] = 0;
  2049. parser[3] = 0;
  2050. parser[4] = 0;
  2051. exports.device[29] = parser;
  2052. parser = Object.create(null);
  2053. parser[0] = new RegExp("; *(A651|A701B?|A702|A703|A705|A706|A707|A711|A712|A713|A717|A722|A785|A801|A802|A803|A901|A902|A1002|A1003|A1006|A1007|A9701|A9703|Q710|Q80) Build");
  2054. parser[1] = "$1";
  2055. parser[2] = 0;
  2056. parser[3] = 0;
  2057. parser[4] = 0;
  2058. exports.device[30] = parser;
  2059. parser = Object.create(null);
  2060. parser[0] = new RegExp("; *(?:AMOI|Amoi)[ _]([^;/]+) Build");
  2061. parser[1] = "Amoi $1";
  2062. parser[2] = 0;
  2063. parser[3] = 0;
  2064. parser[4] = 0;
  2065. exports.device[31] = parser;
  2066. parser = Object.create(null);
  2067. parser[0] = new RegExp("^(?:AMOI|Amoi)[ _]([^;/]+) Linux");
  2068. parser[1] = "Amoi $1";
  2069. parser[2] = 0;
  2070. parser[3] = 0;
  2071. parser[4] = 0;
  2072. exports.device[32] = parser;
  2073. parser = Object.create(null);
  2074. parser[0] = new RegExp("; *(MW(?:0[789]|10)[^;/]+) Build");
  2075. parser[1] = "$1";
  2076. parser[2] = 0;
  2077. parser[3] = 0;
  2078. parser[4] = 0;
  2079. exports.device[33] = parser;
  2080. parser = Object.create(null);
  2081. parser[0] = new RegExp("; *(G7|M1013|M1015G|M11[CG]?|M-?12[B]?|M15|M19[G]?|M30[ACQ]?|M31[GQ]|M32|M33[GQ]|M36|M37|M38|M701T|M710|M712B|M713|M715G|M716G|M71(?:G|GS|T)?|M72[T]?|M73[T]?|M75[GT]?|M77G|M79T|M7L|M7LN|M81|M810|M81T|M82|M92|M92KS|M92S|M717G|M721|M722G|M723|M725G|M739|M785|M791|M92SK|M93D) Build");
  2082. parser[1] = "Aoson $1";
  2083. parser[2] = 0;
  2084. parser[3] = 0;
  2085. parser[4] = 0;
  2086. exports.device[34] = parser;
  2087. parser = Object.create(null);
  2088. parser[0] = new RegExp("; *Aoson ([^;/]+) Build");
  2089. parser[1] = "Aoson $1";
  2090. parser[2] = 0;
  2091. parser[3] = 0;
  2092. parser[4] = 0;
  2093. exports.device[35] = parser;
  2094. parser = Object.create(null);
  2095. parser[0] = new RegExp("; *[Aa]panda[ _\\-]([^;/]+) Build");
  2096. parser[1] = "Apanda $1";
  2097. parser[2] = 0;
  2098. parser[3] = 0;
  2099. parser[4] = 0;
  2100. exports.device[36] = parser;
  2101. parser = Object.create(null);
  2102. parser[0] = new RegExp("; *(?:ARCHOS|Archos) ?(GAMEPAD.*?)(?: Build|[;/\\(\\)\\-])");
  2103. parser[1] = "Archos $1";
  2104. parser[2] = 0;
  2105. parser[3] = 0;
  2106. parser[4] = 0;
  2107. exports.device[37] = parser;
  2108. parser = Object.create(null);
  2109. parser[0] = new RegExp("ARCHOS; GOGI; ([^;]+);");
  2110. parser[1] = "Archos $1";
  2111. parser[2] = 0;
  2112. parser[3] = 0;
  2113. parser[4] = 0;
  2114. exports.device[38] = parser;
  2115. parser = Object.create(null);
  2116. parser[0] = new RegExp("(?:ARCHOS|Archos)[ _]?(.*?)(?: Build|[;/\\(\\)\\-]|$)");
  2117. parser[1] = "Archos $1";
  2118. parser[2] = 0;
  2119. parser[3] = 0;
  2120. parser[4] = 0;
  2121. exports.device[39] = parser;
  2122. parser = Object.create(null);
  2123. parser[0] = new RegExp("; *(AN(?:7|8|9|10|13)[A-Z0-9]{1,4}) Build");
  2124. parser[1] = "Archos $1";
  2125. parser[2] = 0;
  2126. parser[3] = 0;
  2127. parser[4] = 0;
  2128. exports.device[40] = parser;
  2129. parser = Object.create(null);
  2130. parser[0] = new RegExp("; *(A28|A32|A43|A70(?:BHT|CHT|HB|S|X)|A101(?:B|C|IT)|A7EB|A7EB-WK|101G9|80G9) Build");
  2131. parser[1] = "Archos $1";
  2132. parser[2] = 0;
  2133. parser[3] = 0;
  2134. parser[4] = 0;
  2135. exports.device[41] = parser;
  2136. parser = Object.create(null);
  2137. parser[0] = new RegExp("; *(PAD-FMD[^;/]+) Build");
  2138. parser[1] = "$1";
  2139. parser[2] = 0;
  2140. parser[3] = 0;
  2141. parser[4] = 0;
  2142. exports.device[42] = parser;
  2143. parser = Object.create(null);
  2144. parser[0] = new RegExp("; *(BioniQ) ?([^;/]+) Build");
  2145. parser[1] = "$1 $2";
  2146. parser[2] = 0;
  2147. parser[3] = 0;
  2148. parser[4] = 0;
  2149. exports.device[43] = parser;
  2150. parser = Object.create(null);
  2151. parser[0] = new RegExp("; *(AN\\d[^;/]+|ARCHM\\d+) Build");
  2152. parser[1] = "Arnova $1";
  2153. parser[2] = 0;
  2154. parser[3] = 0;
  2155. parser[4] = 0;
  2156. exports.device[44] = parser;
  2157. parser = Object.create(null);
  2158. parser[0] = new RegExp("; *(?:ARNOVA|Arnova) ?([^;/]+) Build");
  2159. parser[1] = "Arnova $1";
  2160. parser[2] = 0;
  2161. parser[3] = 0;
  2162. parser[4] = 0;
  2163. exports.device[45] = parser;
  2164. parser = Object.create(null);
  2165. parser[0] = new RegExp("; *(?:ASSISTANT )?(AP)-?([1789]\\d{2}[A-Z]{0,2}|80104) Build");
  2166. parser[1] = "Assistant $1-$2";
  2167. parser[2] = 0;
  2168. parser[3] = 0;
  2169. parser[4] = 0;
  2170. exports.device[46] = parser;
  2171. parser = Object.create(null);
  2172. parser[0] = new RegExp("; *(ME17\\d[^;/]*|ME3\\d{2}[^;/]+|K00[A-Z]|Nexus 10|Nexus 7(?: 2013)?|PadFone[^;/]*|Transformer[^;/]*|TF\\d{3}[^;/]*|eeepc) Build");
  2173. parser[1] = "Asus $1";
  2174. parser[2] = 0;
  2175. parser[3] = 0;
  2176. parser[4] = 0;
  2177. exports.device[47] = parser;
  2178. parser = Object.create(null);
  2179. parser[0] = new RegExp("; *ASUS[ _]*([^;/]+) Build");
  2180. parser[1] = "Asus $1";
  2181. parser[2] = 0;
  2182. parser[3] = 0;
  2183. parser[4] = 0;
  2184. exports.device[48] = parser;
  2185. parser = Object.create(null);
  2186. parser[0] = new RegExp("; *Garmin-Asus ([^;/]+) Build");
  2187. parser[1] = "Garmin-Asus $1";
  2188. parser[2] = 0;
  2189. parser[3] = 0;
  2190. parser[4] = 0;
  2191. exports.device[49] = parser;
  2192. parser = Object.create(null);
  2193. parser[0] = new RegExp("; *(Garminfone) Build");
  2194. parser[1] = "Garmin $1";
  2195. parser[2] = 0;
  2196. parser[3] = 0;
  2197. parser[4] = 0;
  2198. exports.device[50] = parser;
  2199. parser = Object.create(null);
  2200. parser[0] = new RegExp("; (@TAB-[^;/]+) Build");
  2201. parser[1] = "$1";
  2202. parser[2] = 0;
  2203. parser[3] = 0;
  2204. parser[4] = 0;
  2205. exports.device[51] = parser;
  2206. parser = Object.create(null);
  2207. parser[0] = new RegExp("; *(T-(?:07|[^0]\\d)[^;/]+) Build");
  2208. parser[1] = "$1";
  2209. parser[2] = 0;
  2210. parser[3] = 0;
  2211. parser[4] = 0;
  2212. exports.device[52] = parser;
  2213. parser = Object.create(null);
  2214. parser[0] = new RegExp("; *(?:Axioo[ _\\-]([^;/]+)|(picopad)[ _\\-]([^;/]+)) Build");
  2215. parser[1] = "Axioo $1$2 $3";
  2216. parser[2] = 0;
  2217. parser[3] = 0;
  2218. parser[4] = 0;
  2219. exports.device[53] = parser;
  2220. parser = Object.create(null);
  2221. parser[0] = new RegExp("; *(V(?:100|700|800)[^;/]*) Build");
  2222. parser[1] = "$1";
  2223. parser[2] = 0;
  2224. parser[3] = 0;
  2225. parser[4] = 0;
  2226. exports.device[54] = parser;
  2227. parser = Object.create(null);
  2228. parser[0] = new RegExp("; *(IBAK\\-[^;/]*) Build");
  2229. parser[1] = "$1";
  2230. parser[2] = 0;
  2231. parser[3] = 0;
  2232. parser[4] = 0;
  2233. exports.device[55] = parser;
  2234. parser = Object.create(null);
  2235. parser[0] = new RegExp("; *(HY5001|HY6501|X12|X21|I5) Build");
  2236. parser[1] = "Bedove $1";
  2237. parser[2] = 0;
  2238. parser[3] = 0;
  2239. parser[4] = 0;
  2240. exports.device[56] = parser;
  2241. parser = Object.create(null);
  2242. parser[0] = new RegExp("; *(JC-[^;/]*) Build");
  2243. parser[1] = "Benss $1";
  2244. parser[2] = 0;
  2245. parser[3] = 0;
  2246. parser[4] = 0;
  2247. exports.device[57] = parser;
  2248. parser = Object.create(null);
  2249. parser[0] = new RegExp("; *(BB) ([^;/]+) Build");
  2250. parser[1] = "$1 $2";
  2251. parser[2] = 0;
  2252. parser[3] = 0;
  2253. parser[4] = 0;
  2254. exports.device[58] = parser;
  2255. parser = Object.create(null);
  2256. parser[0] = new RegExp("; *(BlackBird)[ _](I8.*) Build");
  2257. parser[1] = "$1 $2";
  2258. parser[2] = 0;
  2259. parser[3] = 0;
  2260. parser[4] = 0;
  2261. exports.device[59] = parser;
  2262. parser = Object.create(null);
  2263. parser[0] = new RegExp("; *(BlackBird)[ _](.*) Build");
  2264. parser[1] = "$1 $2";
  2265. parser[2] = 0;
  2266. parser[3] = 0;
  2267. parser[4] = 0;
  2268. exports.device[60] = parser;
  2269. parser = Object.create(null);
  2270. parser[0] = new RegExp("; *([0-9]+BP[EM][^;/]*|Endeavour[^;/]+) Build");
  2271. parser[1] = "Blaupunkt $1";
  2272. parser[2] = 0;
  2273. parser[3] = 0;
  2274. parser[4] = 0;
  2275. exports.device[61] = parser;
  2276. parser = Object.create(null);
  2277. parser[0] = new RegExp("; *((?:BLU|Blu)[ _\\-])([^;/]+) Build");
  2278. parser[1] = "$1$2";
  2279. parser[2] = 0;
  2280. parser[3] = 0;
  2281. parser[4] = 0;
  2282. exports.device[62] = parser;
  2283. parser = Object.create(null);
  2284. parser[0] = new RegExp("; *(?:BMOBILE )?(Blu|BLU|DASH [^;/]+|VIVO 4\\.3|TANK 4\\.5) Build");
  2285. parser[1] = "$1";
  2286. parser[2] = 0;
  2287. parser[3] = 0;
  2288. parser[4] = 0;
  2289. exports.device[63] = parser;
  2290. parser = Object.create(null);
  2291. parser[0] = new RegExp("; *(TOUCH\\d[^;/]+) Build");
  2292. parser[1] = "$1";
  2293. parser[2] = 0;
  2294. parser[3] = 0;
  2295. parser[4] = 0;
  2296. exports.device[64] = parser;
  2297. parser = Object.create(null);
  2298. parser[0] = new RegExp("; *(AX5\\d+) Build");
  2299. parser[1] = "$1";
  2300. parser[2] = 0;
  2301. parser[3] = 0;
  2302. parser[4] = 0;
  2303. exports.device[65] = parser;
  2304. parser = Object.create(null);
  2305. parser[0] = new RegExp("; *([Bb]q) ([^;/]+);? Build");
  2306. parser[1] = "$1 $2";
  2307. parser[2] = 0;
  2308. parser[3] = 0;
  2309. parser[4] = 0;
  2310. exports.device[66] = parser;
  2311. parser = Object.create(null);
  2312. parser[0] = new RegExp("; *(Maxwell [^;/]+) Build");
  2313. parser[1] = "$1";
  2314. parser[2] = 0;
  2315. parser[3] = 0;
  2316. parser[4] = 0;
  2317. exports.device[67] = parser;
  2318. parser = Object.create(null);
  2319. parser[0] = new RegExp("; *((?:B-Tab|B-TAB) ?\\d[^;/]+) Build");
  2320. parser[1] = "$1";
  2321. parser[2] = 0;
  2322. parser[3] = 0;
  2323. parser[4] = 0;
  2324. exports.device[68] = parser;
  2325. parser = Object.create(null);
  2326. parser[0] = new RegExp("; *(Broncho) ([^;/]+) Build");
  2327. parser[1] = "$1 $2";
  2328. parser[2] = 0;
  2329. parser[3] = 0;
  2330. parser[4] = 0;
  2331. exports.device[69] = parser;
  2332. parser = Object.create(null);
  2333. parser[0] = new RegExp("; *CAPTIVA ([^;/]+) Build");
  2334. parser[1] = "Captiva $1";
  2335. parser[2] = 0;
  2336. parser[3] = 0;
  2337. parser[4] = 0;
  2338. exports.device[70] = parser;
  2339. parser = Object.create(null);
  2340. parser[0] = new RegExp("; *(C771|CAL21|IS11CA) Build");
  2341. parser[1] = "$1";
  2342. parser[2] = 0;
  2343. parser[3] = 0;
  2344. parser[4] = 0;
  2345. exports.device[71] = parser;
  2346. parser = Object.create(null);
  2347. parser[0] = new RegExp("; *(?:Cat|CAT) ([^;/]+) Build");
  2348. parser[1] = "Cat $1";
  2349. parser[2] = 0;
  2350. parser[3] = 0;
  2351. parser[4] = 0;
  2352. exports.device[72] = parser;
  2353. parser = Object.create(null);
  2354. parser[0] = new RegExp("; *(?:Cat)(Nova.*) Build");
  2355. parser[1] = "Cat $1";
  2356. parser[2] = 0;
  2357. parser[3] = 0;
  2358. parser[4] = 0;
  2359. exports.device[73] = parser;
  2360. parser = Object.create(null);
  2361. parser[0] = new RegExp("; *(INM8002KP|ADM8000KP_[AB]) Build");
  2362. parser[1] = "$1";
  2363. parser[2] = 0;
  2364. parser[3] = 0;
  2365. parser[4] = 0;
  2366. exports.device[74] = parser;
  2367. parser = Object.create(null);
  2368. parser[0] = new RegExp("; *(?:[Cc]elkon[ _\\*]|CELKON[ _\\*])([^;/\\)]+) ?(?:Build|;|\\))");
  2369. parser[1] = "$1";
  2370. parser[2] = 0;
  2371. parser[3] = 0;
  2372. parser[4] = 0;
  2373. exports.device[75] = parser;
  2374. parser = Object.create(null);
  2375. parser[0] = new RegExp("Build/(?:[Cc]elkon)+_?([^;/_\\)]+)");
  2376. parser[1] = "$1";
  2377. parser[2] = 0;
  2378. parser[3] = 0;
  2379. parser[4] = 0;
  2380. exports.device[76] = parser;
  2381. parser = Object.create(null);
  2382. parser[0] = new RegExp("; *(CT)-?(\\d+) Build");
  2383. parser[1] = "$1$2";
  2384. parser[2] = 0;
  2385. parser[3] = 0;
  2386. parser[4] = 0;
  2387. exports.device[77] = parser;
  2388. parser = Object.create(null);
  2389. parser[0] = new RegExp("; *(A19|A19Q|A105|A107[^;/\\)]*) ?(?:Build|;|\\))");
  2390. parser[1] = "$1";
  2391. parser[2] = 0;
  2392. parser[3] = 0;
  2393. parser[4] = 0;
  2394. exports.device[78] = parser;
  2395. parser = Object.create(null);
  2396. parser[0] = new RegExp("; *(TPC[0-9]{4,5}) Build");
  2397. parser[1] = "$1";
  2398. parser[2] = 0;
  2399. parser[3] = 0;
  2400. parser[4] = 0;
  2401. exports.device[79] = parser;
  2402. parser = Object.create(null);
  2403. parser[0] = new RegExp("; *(Cloudfone)[ _](Excite)([^ ][^;/]+) Build");
  2404. parser[1] = "$1 $2 $3";
  2405. parser[2] = 0;
  2406. parser[3] = 0;
  2407. parser[4] = 0;
  2408. exports.device[80] = parser;
  2409. parser = Object.create(null);
  2410. parser[0] = new RegExp("; *(Excite|ICE)[ _](\\d+[^;/]+) Build");
  2411. parser[1] = "Cloudfone $1 $2";
  2412. parser[2] = 0;
  2413. parser[3] = 0;
  2414. parser[4] = 0;
  2415. exports.device[81] = parser;
  2416. parser = Object.create(null);
  2417. parser[0] = new RegExp("; *(Cloudfone|CloudPad)[ _]([^;/]+) Build");
  2418. parser[1] = "$1 $2";
  2419. parser[2] = 0;
  2420. parser[3] = 0;
  2421. parser[4] = 0;
  2422. exports.device[82] = parser;
  2423. parser = Object.create(null);
  2424. parser[0] = new RegExp("; *((?:Aquila|Clanga|Rapax)[^;/]+) Build");
  2425. parser[1] = "$1";
  2426. parser[2] = 0;
  2427. parser[3] = 0;
  2428. parser[4] = 0;
  2429. exports.device[83] = parser;
  2430. parser = Object.create(null);
  2431. parser[0] = new RegExp("; *(?:CFW-|Kyros )?(MID[0-9]{4}(?:[ABC]|SR|TV)?)(\\(3G\\)-4G| GB 8K| 3G| 8K| GB)? *(?:Build|[;\\)])");
  2432. parser[1] = "CobyKyros $1$2";
  2433. parser[2] = 0;
  2434. parser[3] = 0;
  2435. parser[4] = 0;
  2436. exports.device[84] = parser;
  2437. parser = Object.create(null);
  2438. parser[0] = new RegExp("; *([^;/]*)Coolpad[ _]([^;/]+) Build");
  2439. parser[1] = "$1$2";
  2440. parser[2] = 0;
  2441. parser[3] = 0;
  2442. parser[4] = 0;
  2443. exports.device[85] = parser;
  2444. parser = Object.create(null);
  2445. parser[0] = new RegExp("; *(CUBE[ _])?([KU][0-9]+ ?GT.*|A5300) Build");
  2446. parser[1] = "$1$2";
  2447. parser[2] = 0;
  2448. parser[3] = 0;
  2449. parser[4] = 0;
  2450. exports.device[86] = parser;
  2451. parser = Object.create(null);
  2452. parser[0] = new RegExp("; *CUBOT ([^;/]+) Build");
  2453. parser[1] = "$1";
  2454. parser[2] = 0;
  2455. parser[3] = 0;
  2456. parser[4] = 0;
  2457. exports.device[87] = parser;
  2458. parser = Object.create(null);
  2459. parser[0] = new RegExp("; *(BOBBY) Build");
  2460. parser[1] = "$1";
  2461. parser[2] = 0;
  2462. parser[3] = 0;
  2463. parser[4] = 0;
  2464. exports.device[88] = parser;
  2465. parser = Object.create(null);
  2466. parser[0] = new RegExp("; *(Dslide [^;/]+) Build");
  2467. parser[1] = "$1";
  2468. parser[2] = 0;
  2469. parser[3] = 0;
  2470. parser[4] = 0;
  2471. exports.device[89] = parser;
  2472. parser = Object.create(null);
  2473. parser[0] = new RegExp("; *(XCD)[ _]?(28|35) Build");
  2474. parser[1] = "Dell $1$2";
  2475. parser[2] = 0;
  2476. parser[3] = 0;
  2477. parser[4] = 0;
  2478. exports.device[90] = parser;
  2479. parser = Object.create(null);
  2480. parser[0] = new RegExp("; *(001DL) Build");
  2481. parser[1] = "Dell $1";
  2482. parser[2] = 0;
  2483. parser[3] = 0;
  2484. parser[4] = 0;
  2485. exports.device[91] = parser;
  2486. parser = Object.create(null);
  2487. parser[0] = new RegExp("; *(?:Dell|DELL) (Streak) Build");
  2488. parser[1] = "Dell $1";
  2489. parser[2] = 0;
  2490. parser[3] = 0;
  2491. parser[4] = 0;
  2492. exports.device[92] = parser;
  2493. parser = Object.create(null);
  2494. parser[0] = new RegExp("; *(101DL|GS01|Streak Pro[^;/]*) Build");
  2495. parser[1] = "Dell $1";
  2496. parser[2] = 0;
  2497. parser[3] = 0;
  2498. parser[4] = 0;
  2499. exports.device[93] = parser;
  2500. parser = Object.create(null);
  2501. parser[0] = new RegExp("; *([Ss]treak ?7) Build");
  2502. parser[1] = "Dell $1";
  2503. parser[2] = 0;
  2504. parser[3] = 0;
  2505. parser[4] = 0;
  2506. exports.device[94] = parser;
  2507. parser = Object.create(null);
  2508. parser[0] = new RegExp("; *(Mini-3iX) Build");
  2509. parser[1] = "Dell $1";
  2510. parser[2] = 0;
  2511. parser[3] = 0;
  2512. parser[4] = 0;
  2513. exports.device[95] = parser;
  2514. parser = Object.create(null);
  2515. parser[0] = new RegExp("; *(?:Dell|DELL)[ _](Aero|Venue|Thunder|Mini.*|Streak[ _]Pro) Build");
  2516. parser[1] = "Dell $1";
  2517. parser[2] = 0;
  2518. parser[3] = 0;
  2519. parser[4] = 0;
  2520. exports.device[96] = parser;
  2521. parser = Object.create(null);
  2522. parser[0] = new RegExp("; *Dell[ _]([^;/]+) Build");
  2523. parser[1] = "Dell $1";
  2524. parser[2] = 0;
  2525. parser[3] = 0;
  2526. parser[4] = 0;
  2527. exports.device[97] = parser;
  2528. parser = Object.create(null);
  2529. parser[0] = new RegExp("; *Dell ([^;/]+) Build");
  2530. parser[1] = "Dell $1";
  2531. parser[2] = 0;
  2532. parser[3] = 0;
  2533. parser[4] = 0;
  2534. exports.device[98] = parser;
  2535. parser = Object.create(null);
  2536. parser[0] = new RegExp("; *(TA[CD]-\\d+[^;/]*) Build");
  2537. parser[1] = "$1";
  2538. parser[2] = 0;
  2539. parser[3] = 0;
  2540. parser[4] = 0;
  2541. exports.device[99] = parser;
  2542. parser = Object.create(null);
  2543. parser[0] = new RegExp("; *(iP[789]\\d{2}(?:-3G)?|IP10\\d{2}(?:-8GB)?) Build");
  2544. parser[1] = "$1";
  2545. parser[2] = 0;
  2546. parser[3] = 0;
  2547. parser[4] = 0;
  2548. exports.device[100] = parser;
  2549. parser = Object.create(null);
  2550. parser[0] = new RegExp("; *(AirTab)[ _\\-]([^;/]+) Build");
  2551. parser[1] = "$1 $2";
  2552. parser[2] = 0;
  2553. parser[3] = 0;
  2554. parser[4] = 0;
  2555. exports.device[101] = parser;
  2556. parser = Object.create(null);
  2557. parser[0] = new RegExp("; *(F\\-\\d[^;/]+) Build");
  2558. parser[1] = "$1";
  2559. parser[2] = 0;
  2560. parser[3] = 0;
  2561. parser[4] = 0;
  2562. exports.device[102] = parser;
  2563. parser = Object.create(null);
  2564. parser[0] = new RegExp("; *(HT-03A) Build");
  2565. parser[1] = "$1";
  2566. parser[2] = 0;
  2567. parser[3] = 0;
  2568. parser[4] = 0;
  2569. exports.device[103] = parser;
  2570. parser = Object.create(null);
  2571. parser[0] = new RegExp("; *(HT\\-\\d[^;/]+) Build");
  2572. parser[1] = "$1";
  2573. parser[2] = 0;
  2574. parser[3] = 0;
  2575. parser[4] = 0;
  2576. exports.device[104] = parser;
  2577. parser = Object.create(null);
  2578. parser[0] = new RegExp("; *(L\\-\\d[^;/]+) Build");
  2579. parser[1] = "$1";
  2580. parser[2] = 0;
  2581. parser[3] = 0;
  2582. parser[4] = 0;
  2583. exports.device[105] = parser;
  2584. parser = Object.create(null);
  2585. parser[0] = new RegExp("; *(N\\-\\d[^;/]+) Build");
  2586. parser[1] = "$1";
  2587. parser[2] = 0;
  2588. parser[3] = 0;
  2589. parser[4] = 0;
  2590. exports.device[106] = parser;
  2591. parser = Object.create(null);
  2592. parser[0] = new RegExp("; *(P\\-\\d[^;/]+) Build");
  2593. parser[1] = "$1";
  2594. parser[2] = 0;
  2595. parser[3] = 0;
  2596. parser[4] = 0;
  2597. exports.device[107] = parser;
  2598. parser = Object.create(null);
  2599. parser[0] = new RegExp("; *(SC\\-\\d[^;/]+) Build");
  2600. parser[1] = "$1";
  2601. parser[2] = 0;
  2602. parser[3] = 0;
  2603. parser[4] = 0;
  2604. exports.device[108] = parser;
  2605. parser = Object.create(null);
  2606. parser[0] = new RegExp("; *(SH\\-\\d[^;/]+) Build");
  2607. parser[1] = "$1";
  2608. parser[2] = 0;
  2609. parser[3] = 0;
  2610. parser[4] = 0;
  2611. exports.device[109] = parser;
  2612. parser = Object.create(null);
  2613. parser[0] = new RegExp("; *(SO\\-\\d[^;/]+) Build");
  2614. parser[1] = "$1";
  2615. parser[2] = 0;
  2616. parser[3] = 0;
  2617. parser[4] = 0;
  2618. exports.device[110] = parser;
  2619. parser = Object.create(null);
  2620. parser[0] = new RegExp("; *(T\\-0[12][^;/]+) Build");
  2621. parser[1] = "$1";
  2622. parser[2] = 0;
  2623. parser[3] = 0;
  2624. parser[4] = 0;
  2625. exports.device[111] = parser;
  2626. parser = Object.create(null);
  2627. parser[0] = new RegExp("; *(DOOV)[ _]([^;/]+) Build");
  2628. parser[1] = "$1 $2";
  2629. parser[2] = 0;
  2630. parser[3] = 0;
  2631. parser[4] = 0;
  2632. exports.device[112] = parser;
  2633. parser = Object.create(null);
  2634. parser[0] = new RegExp("; *(Enot|ENOT)[ -]?([^;/]+) Build");
  2635. parser[1] = "$1 $2";
  2636. parser[2] = 0;
  2637. parser[3] = 0;
  2638. parser[4] = 0;
  2639. exports.device[113] = parser;
  2640. parser = Object.create(null);
  2641. parser[0] = new RegExp("; *[^;/]+ Build/(?:CROSS|Cross)+[ _\\-]([^\\)]+)");
  2642. parser[1] = "CROSS $1";
  2643. parser[2] = 0;
  2644. parser[3] = 0;
  2645. parser[4] = 0;
  2646. exports.device[114] = parser;
  2647. parser = Object.create(null);
  2648. parser[0] = new RegExp("; *(CROSS|Cross)[ _\\-]([^;/]+) Build");
  2649. parser[1] = "$1 $2";
  2650. parser[2] = 0;
  2651. parser[3] = 0;
  2652. parser[4] = 0;
  2653. exports.device[115] = parser;
  2654. parser = Object.create(null);
  2655. parser[0] = new RegExp("; *Explay[_ ](.+?)(?:[\\)]| Build)");
  2656. parser[1] = "$1";
  2657. parser[2] = 0;
  2658. parser[3] = 0;
  2659. parser[4] = 0;
  2660. exports.device[116] = parser;
  2661. parser = Object.create(null);
  2662. parser[0] = new RegExp("; *(IQ.*) Build");
  2663. parser[1] = "$1";
  2664. parser[2] = 0;
  2665. parser[3] = 0;
  2666. parser[4] = 0;
  2667. exports.device[117] = parser;
  2668. parser = Object.create(null);
  2669. parser[0] = new RegExp("; *(Fly|FLY)[ _](IQ[^;]+|F[34]\\d+[^;]*);? Build");
  2670. parser[1] = "$1 $2";
  2671. parser[2] = 0;
  2672. parser[3] = 0;
  2673. parser[4] = 0;
  2674. exports.device[118] = parser;
  2675. parser = Object.create(null);
  2676. parser[0] = new RegExp("; *(M532|Q572|FJL21) Build/");
  2677. parser[1] = "$1";
  2678. parser[2] = 0;
  2679. parser[3] = 0;
  2680. parser[4] = 0;
  2681. exports.device[119] = parser;
  2682. parser = Object.create(null);
  2683. parser[0] = new RegExp("; *(G1) Build");
  2684. parser[1] = "$1";
  2685. parser[2] = 0;
  2686. parser[3] = 0;
  2687. parser[4] = 0;
  2688. exports.device[120] = parser;
  2689. parser = Object.create(null);
  2690. parser[0] = new RegExp("; *(Geeksphone) ([^;/]+) Build");
  2691. parser[1] = "$1 $2";
  2692. parser[2] = 0;
  2693. parser[3] = 0;
  2694. parser[4] = 0;
  2695. exports.device[121] = parser;
  2696. parser = Object.create(null);
  2697. parser[0] = new RegExp("; *(G[^F]?FIVE) ([^;/]+) Build");
  2698. parser[1] = "$1 $2";
  2699. parser[2] = 0;
  2700. parser[3] = 0;
  2701. parser[4] = 0;
  2702. exports.device[122] = parser;
  2703. parser = Object.create(null);
  2704. parser[0] = new RegExp("; *(Gionee)[ _\\-]([^;/]+)(?:/[^;/]+)? Build");
  2705. parser[1] = "$1 $2";
  2706. parser[2] = 0;
  2707. parser[3] = 0;
  2708. parser[4] = 0;
  2709. exports.device[123] = parser;
  2710. parser = Object.create(null);
  2711. parser[0] = new RegExp("; *(GN\\d+[A-Z]?|INFINITY_PASSION|Ctrl_V1) Build");
  2712. parser[1] = "Gionee $1";
  2713. parser[2] = 0;
  2714. parser[3] = 0;
  2715. parser[4] = 0;
  2716. exports.device[124] = parser;
  2717. parser = Object.create(null);
  2718. parser[0] = new RegExp("; *(E3) Build/JOP40D");
  2719. parser[1] = "Gionee $1";
  2720. parser[2] = 0;
  2721. parser[3] = 0;
  2722. parser[4] = 0;
  2723. exports.device[125] = parser;
  2724. parser = Object.create(null);
  2725. parser[0] = new RegExp("\\sGIONEE[-\\s_](\\w*)");
  2726. parser[1] = "Gionee $1";
  2727. parser[2] = 0;
  2728. parser[3] = 0;
  2729. parser[4] = 0;
  2730. exports.device[126] = parser;
  2731. parser = Object.create(null);
  2732. parser[0] = new RegExp("; *((?:FONE|QUANTUM|INSIGNIA) \\d+[^;/]*|PLAYTAB) Build");
  2733. parser[1] = "GoClever $1";
  2734. parser[2] = 0;
  2735. parser[3] = 0;
  2736. parser[4] = 0;
  2737. exports.device[127] = parser;
  2738. parser = Object.create(null);
  2739. parser[0] = new RegExp("; *GOCLEVER ([^;/]+) Build");
  2740. parser[1] = "GoClever $1";
  2741. parser[2] = 0;
  2742. parser[3] = 0;
  2743. parser[4] = 0;
  2744. exports.device[128] = parser;
  2745. parser = Object.create(null);
  2746. parser[0] = new RegExp("; *(Glass \\d+) Build");
  2747. parser[1] = "$1";
  2748. parser[2] = 0;
  2749. parser[3] = 0;
  2750. parser[4] = 0;
  2751. exports.device[129] = parser;
  2752. parser = Object.create(null);
  2753. parser[0] = new RegExp("; *(Pixel \\w+) Build");
  2754. parser[1] = "$1";
  2755. parser[2] = 0;
  2756. parser[3] = 0;
  2757. parser[4] = 0;
  2758. exports.device[130] = parser;
  2759. parser = Object.create(null);
  2760. parser[0] = new RegExp("; *(GSmart)[ -]([^/]+) Build");
  2761. parser[1] = "$1 $2";
  2762. parser[2] = 0;
  2763. parser[3] = 0;
  2764. parser[4] = 0;
  2765. exports.device[131] = parser;
  2766. parser = Object.create(null);
  2767. parser[0] = new RegExp("; *(imx5[13]_[^/]+) Build");
  2768. parser[1] = "Freescale $1";
  2769. parser[2] = 0;
  2770. parser[3] = 0;
  2771. parser[4] = 0;
  2772. exports.device[132] = parser;
  2773. parser = Object.create(null);
  2774. parser[0] = new RegExp("; *Haier[ _\\-]([^/]+) Build");
  2775. parser[1] = "Haier $1";
  2776. parser[2] = 0;
  2777. parser[3] = 0;
  2778. parser[4] = 0;
  2779. exports.device[133] = parser;
  2780. parser = Object.create(null);
  2781. parser[0] = new RegExp("; *(PAD1016) Build");
  2782. parser[1] = "Haipad $1";
  2783. parser[2] = 0;
  2784. parser[3] = 0;
  2785. parser[4] = 0;
  2786. exports.device[134] = parser;
  2787. parser = Object.create(null);
  2788. parser[0] = new RegExp("; *(M701|M7|M8|M9) Build");
  2789. parser[1] = "Haipad $1";
  2790. parser[2] = 0;
  2791. parser[3] = 0;
  2792. parser[4] = 0;
  2793. exports.device[135] = parser;
  2794. parser = Object.create(null);
  2795. parser[0] = new RegExp("; *(SN\\d+T[^;\\)/]*)(?: Build|[;\\)])");
  2796. parser[1] = "Hannspree $1";
  2797. parser[2] = 0;
  2798. parser[3] = 0;
  2799. parser[4] = 0;
  2800. exports.device[136] = parser;
  2801. parser = Object.create(null);
  2802. parser[0] = new RegExp("Build/HCL ME Tablet ([^;\\)]+)[\\);]");
  2803. parser[1] = "HCLme $1";
  2804. parser[2] = 0;
  2805. parser[3] = 0;
  2806. parser[4] = 0;
  2807. exports.device[137] = parser;
  2808. parser = Object.create(null);
  2809. parser[0] = new RegExp("; *([^;\\/]+) Build/HCL");
  2810. parser[1] = "HCLme $1";
  2811. parser[2] = 0;
  2812. parser[3] = 0;
  2813. parser[4] = 0;
  2814. exports.device[138] = parser;
  2815. parser = Object.create(null);
  2816. parser[0] = new RegExp("; *(MID-?\\d{4}C[EM]) Build");
  2817. parser[1] = "Hena $1";
  2818. parser[2] = 0;
  2819. parser[3] = 0;
  2820. parser[4] = 0;
  2821. exports.device[139] = parser;
  2822. parser = Object.create(null);
  2823. parser[0] = new RegExp("; *(EG\\d{2,}|HS-[^;/]+|MIRA[^;/]+) Build");
  2824. parser[1] = "Hisense $1";
  2825. parser[2] = 0;
  2826. parser[3] = 0;
  2827. parser[4] = 0;
  2828. exports.device[140] = parser;
  2829. parser = Object.create(null);
  2830. parser[0] = new RegExp("; *(andromax[^;/]+) Build");
  2831. parser[1] = "Hisense $1";
  2832. parser[2] = 0;
  2833. parser[3] = 0;
  2834. parser[4] = 0;
  2835. exports.device[141] = parser;
  2836. parser = Object.create(null);
  2837. parser[0] = new RegExp("; *(?:AMAZE[ _](S\\d+)|(S\\d+)[ _]AMAZE) Build");
  2838. parser[1] = "AMAZE $1$2";
  2839. parser[2] = 0;
  2840. parser[3] = 0;
  2841. parser[4] = 0;
  2842. exports.device[142] = parser;
  2843. parser = Object.create(null);
  2844. parser[0] = new RegExp("; *(PlayBook) Build");
  2845. parser[1] = "HP $1";
  2846. parser[2] = 0;
  2847. parser[3] = 0;
  2848. parser[4] = 0;
  2849. exports.device[143] = parser;
  2850. parser = Object.create(null);
  2851. parser[0] = new RegExp("; *HP ([^/]+) Build");
  2852. parser[1] = "HP $1";
  2853. parser[2] = 0;
  2854. parser[3] = 0;
  2855. parser[4] = 0;
  2856. exports.device[144] = parser;
  2857. parser = Object.create(null);
  2858. parser[0] = new RegExp("; *([^/]+_tenderloin) Build");
  2859. parser[1] = "HP TouchPad";
  2860. parser[2] = 0;
  2861. parser[3] = 0;
  2862. parser[4] = 0;
  2863. exports.device[145] = parser;
  2864. parser = Object.create(null);
  2865. parser[0] = new RegExp("; *(HUAWEI |Huawei-)?([UY][^;/]+) Build/(?:Huawei|HUAWEI)([UY][^\\);]+)\\)");
  2866. parser[1] = "$1$2";
  2867. parser[2] = 0;
  2868. parser[3] = 0;
  2869. parser[4] = 0;
  2870. exports.device[146] = parser;
  2871. parser = Object.create(null);
  2872. parser[0] = new RegExp("; *([^;/]+) Build[/ ]Huawei(MT1-U06|[A-Z]+\\d+[^\\);]+)[^\\);]*\\)");
  2873. parser[1] = "$1";
  2874. parser[2] = 0;
  2875. parser[3] = 0;
  2876. parser[4] = 0;
  2877. exports.device[147] = parser;
  2878. parser = Object.create(null);
  2879. parser[0] = new RegExp("; *(S7|M860) Build");
  2880. parser[1] = "$1";
  2881. parser[2] = 0;
  2882. parser[3] = 0;
  2883. parser[4] = 0;
  2884. exports.device[148] = parser;
  2885. parser = Object.create(null);
  2886. parser[0] = new RegExp("; *((?:HUAWEI|Huawei)[ \\-]?)(MediaPad) Build");
  2887. parser[1] = "$1$2";
  2888. parser[2] = 0;
  2889. parser[3] = 0;
  2890. parser[4] = 0;
  2891. exports.device[149] = parser;
  2892. parser = Object.create(null);
  2893. parser[0] = new RegExp("; *((?:HUAWEI[ _]?|Huawei[ _])?Ascend[ _])([^;/]+) Build");
  2894. parser[1] = "$1$2";
  2895. parser[2] = 0;
  2896. parser[3] = 0;
  2897. parser[4] = 0;
  2898. exports.device[150] = parser;
  2899. parser = Object.create(null);
  2900. parser[0] = new RegExp("; *((?:HUAWEI|Huawei)[ _\\-]?)((?:G700-|MT-)[^;/]+) Build");
  2901. parser[1] = "$1$2";
  2902. parser[2] = 0;
  2903. parser[3] = 0;
  2904. parser[4] = 0;
  2905. exports.device[151] = parser;
  2906. parser = Object.create(null);
  2907. parser[0] = new RegExp("; *((?:HUAWEI|Huawei)[ _\\-]?)([^;/]+) Build");
  2908. parser[1] = "$1$2";
  2909. parser[2] = 0;
  2910. parser[3] = 0;
  2911. parser[4] = 0;
  2912. exports.device[152] = parser;
  2913. parser = Object.create(null);
  2914. parser[0] = new RegExp("; *(MediaPad[^;]+|SpringBoard) Build/Huawei");
  2915. parser[1] = "$1";
  2916. parser[2] = 0;
  2917. parser[3] = 0;
  2918. parser[4] = 0;
  2919. exports.device[153] = parser;
  2920. parser = Object.create(null);
  2921. parser[0] = new RegExp("; *([^;]+) Build/(?:Huawei|HUAWEI)");
  2922. parser[1] = "$1";
  2923. parser[2] = 0;
  2924. parser[3] = 0;
  2925. parser[4] = 0;
  2926. exports.device[154] = parser;
  2927. parser = Object.create(null);
  2928. parser[0] = new RegExp("; *([Uu])([89]\\d{3}) Build");
  2929. parser[1] = "$1$2";
  2930. parser[2] = 0;
  2931. parser[3] = 0;
  2932. parser[4] = 0;
  2933. exports.device[155] = parser;
  2934. parser = Object.create(null);
  2935. parser[0] = new RegExp("; *(?:Ideos |IDEOS )(S7) Build");
  2936. parser[1] = "Huawei Ideos$1";
  2937. parser[2] = 0;
  2938. parser[3] = 0;
  2939. parser[4] = 0;
  2940. exports.device[156] = parser;
  2941. parser = Object.create(null);
  2942. parser[0] = new RegExp("; *(?:Ideos |IDEOS )([^;/]+\\s*|\\s*)Build");
  2943. parser[1] = "Huawei Ideos$1";
  2944. parser[2] = 0;
  2945. parser[3] = 0;
  2946. parser[4] = 0;
  2947. exports.device[157] = parser;
  2948. parser = Object.create(null);
  2949. parser[0] = new RegExp("; *(Orange Daytona|Pulse|Pulse Mini|Vodafone 858|C8500|C8600|C8650|C8660|Nexus 6P|ATH-.+?) Build[/ ]");
  2950. parser[1] = "Huawei $1";
  2951. parser[2] = 0;
  2952. parser[3] = 0;
  2953. parser[4] = 0;
  2954. exports.device[158] = parser;
  2955. parser = Object.create(null);
  2956. parser[0] = new RegExp("; *HTC[ _]([^;]+); Windows Phone");
  2957. parser[1] = "HTC $1";
  2958. parser[2] = 0;
  2959. parser[3] = 0;
  2960. parser[4] = 0;
  2961. exports.device[159] = parser;
  2962. parser = Object.create(null);
  2963. parser[0] = new RegExp("; *(?:HTC[ _/])+([^ _/]+)(?:[/\\\\]1\\.0 | V|/| +)\\d+\\.\\d[\\d\\.]*(?: *Build|\\))");
  2964. parser[1] = "HTC $1";
  2965. parser[2] = 0;
  2966. parser[3] = 0;
  2967. parser[4] = 0;
  2968. exports.device[160] = parser;
  2969. parser = Object.create(null);
  2970. parser[0] = new RegExp("; *(?:HTC[ _/])+([^ _/]+)(?:[ _/]([^ _/]+))?(?:[/\\\\]1\\.0 | V|/| +)\\d+\\.\\d[\\d\\.]*(?: *Build|\\))");
  2971. parser[1] = "HTC $1 $2";
  2972. parser[2] = 0;
  2973. parser[3] = 0;
  2974. parser[4] = 0;
  2975. exports.device[161] = parser;
  2976. parser = Object.create(null);
  2977. parser[0] = new RegExp("; *(?:HTC[ _/])+([^ _/]+)(?:[ _/]([^ _/]+)(?:[ _/]([^ _/]+))?)?(?:[/\\\\]1\\.0 | V|/| +)\\d+\\.\\d[\\d\\.]*(?: *Build|\\))");
  2978. parser[1] = "HTC $1 $2 $3";
  2979. parser[2] = 0;
  2980. parser[3] = 0;
  2981. parser[4] = 0;
  2982. exports.device[162] = parser;
  2983. parser = Object.create(null);
  2984. parser[0] = new RegExp("; *(?:HTC[ _/])+([^ _/]+)(?:[ _/]([^ _/]+)(?:[ _/]([^ _/]+)(?:[ _/]([^ _/]+))?)?)?(?:[/\\\\]1\\.0 | V|/| +)\\d+\\.\\d[\\d\\.]*(?: *Build|\\))");
  2985. parser[1] = "HTC $1 $2 $3 $4";
  2986. parser[2] = 0;
  2987. parser[3] = 0;
  2988. parser[4] = 0;
  2989. exports.device[163] = parser;
  2990. parser = Object.create(null);
  2991. parser[0] = new RegExp("; *(?:(?:HTC|htc)(?:_blocked)*[ _/])+([^ _/;]+)(?: *Build|[;\\)]| - )");
  2992. parser[1] = "HTC $1";
  2993. parser[2] = 0;
  2994. parser[3] = 0;
  2995. parser[4] = 0;
  2996. exports.device[164] = parser;
  2997. parser = Object.create(null);
  2998. parser[0] = new RegExp("; *(?:(?:HTC|htc)(?:_blocked)*[ _/])+([^ _/]+)(?:[ _/]([^ _/;\\)]+))?(?: *Build|[;\\)]| - )");
  2999. parser[1] = "HTC $1 $2";
  3000. parser[2] = 0;
  3001. parser[3] = 0;
  3002. parser[4] = 0;
  3003. exports.device[165] = parser;
  3004. parser = Object.create(null);
  3005. parser[0] = new RegExp("; *(?:(?:HTC|htc)(?:_blocked)*[ _/])+([^ _/]+)(?:[ _/]([^ _/]+)(?:[ _/]([^ _/;\\)]+))?)?(?: *Build|[;\\)]| - )");
  3006. parser[1] = "HTC $1 $2 $3";
  3007. parser[2] = 0;
  3008. parser[3] = 0;
  3009. parser[4] = 0;
  3010. exports.device[166] = parser;
  3011. parser = Object.create(null);
  3012. parser[0] = new RegExp("; *(?:(?:HTC|htc)(?:_blocked)*[ _/])+([^ _/]+)(?:[ _/]([^ _/]+)(?:[ _/]([^ _/]+)(?:[ _/]([^ /;]+))?)?)?(?: *Build|[;\\)]| - )");
  3013. parser[1] = "HTC $1 $2 $3 $4";
  3014. parser[2] = 0;
  3015. parser[3] = 0;
  3016. parser[4] = 0;
  3017. exports.device[167] = parser;
  3018. parser = Object.create(null);
  3019. parser[0] = new RegExp("HTC Streaming Player [^\\/]*/[^\\/]*/ htc_([^/]+) /");
  3020. parser[1] = "HTC $1";
  3021. parser[2] = 0;
  3022. parser[3] = 0;
  3023. parser[4] = 0;
  3024. exports.device[168] = parser;
  3025. parser = Object.create(null);
  3026. parser[0] = new RegExp("(?:[;,] *|^)(?:htccn_chs-)?HTC[ _-]?([^;]+?)(?: *Build|clay|Android|-?Mozilla| Opera| Profile| UNTRUSTED|[;/\\(\\)]|$)");
  3027. parser[1] = "HTC $1";
  3028. parser[2] = 0;
  3029. parser[3] = 0;
  3030. parser[4] = 0;
  3031. exports.device[169] = parser;
  3032. parser = Object.create(null);
  3033. parser[0] = new RegExp("; *(A6277|ADR6200|ADR6300|ADR6350|ADR6400[A-Z]*|ADR6425[A-Z]*|APX515CKT|ARIA|Desire[^_ ]*|Dream|EndeavorU|Eris|Evo|Flyer|HD2|Hero|HERO200|Hero CDMA|HTL21|Incredible|Inspire[A-Z0-9]*|Legend|Liberty|Nexus ?(?:One|HD2)|One|One S C2|One[ _]?(?:S|V|X\\+?)\\w*|PC36100|PG06100|PG86100|S31HT|Sensation|Wildfire)(?: Build|[/;\\(\\)])");
  3034. parser[1] = "HTC $1";
  3035. parser[2] = 0;
  3036. parser[3] = 0;
  3037. parser[4] = 0;
  3038. exports.device[170] = parser;
  3039. parser = Object.create(null);
  3040. parser[0] = new RegExp("; *(ADR6200|ADR6400L|ADR6425LVW|Amaze|DesireS?|EndeavorU|Eris|EVO|Evo\\d[A-Z]+|HD2|IncredibleS?|Inspire[A-Z0-9]*|Inspire[A-Z0-9]*|Sensation[A-Z0-9]*|Wildfire)[ _-](.+?)(?:[/;\\)]|Build|MIUI|1\\.0)");
  3041. parser[1] = "HTC $1 $2";
  3042. parser[2] = 0;
  3043. parser[3] = 0;
  3044. parser[4] = 0;
  3045. exports.device[171] = parser;
  3046. parser = Object.create(null);
  3047. parser[0] = new RegExp("; *HYUNDAI (T\\d[^/]*) Build");
  3048. parser[1] = "Hyundai $1";
  3049. parser[2] = 0;
  3050. parser[3] = 0;
  3051. parser[4] = 0;
  3052. exports.device[172] = parser;
  3053. parser = Object.create(null);
  3054. parser[0] = new RegExp("; *HYUNDAI ([^;/]+) Build");
  3055. parser[1] = "Hyundai $1";
  3056. parser[2] = 0;
  3057. parser[3] = 0;
  3058. parser[4] = 0;
  3059. exports.device[173] = parser;
  3060. parser = Object.create(null);
  3061. parser[0] = new RegExp("; *(X700|Hold X|MB-6900) Build");
  3062. parser[1] = "Hyundai $1";
  3063. parser[2] = 0;
  3064. parser[3] = 0;
  3065. parser[4] = 0;
  3066. exports.device[174] = parser;
  3067. parser = Object.create(null);
  3068. parser[0] = new RegExp("; *(?:iBall[ _\\-])?(Andi)[ _]?(\\d[^;/]*) Build");
  3069. parser[1] = "$1 $2";
  3070. parser[2] = 0;
  3071. parser[3] = 0;
  3072. parser[4] = 0;
  3073. exports.device[175] = parser;
  3074. parser = Object.create(null);
  3075. parser[0] = new RegExp("; *(IBall)(?:[ _]([^;/]+)|) Build");
  3076. parser[1] = "$1 $2";
  3077. parser[2] = 0;
  3078. parser[3] = 0;
  3079. parser[4] = 0;
  3080. exports.device[176] = parser;
  3081. parser = Object.create(null);
  3082. parser[0] = new RegExp("; *(NT-\\d+[^ ;/]*|Net[Tt]AB [^;/]+|Mercury [A-Z]+|iconBIT)(?: S/N:[^;/]+)? Build");
  3083. parser[1] = "$1";
  3084. parser[2] = 0;
  3085. parser[3] = 0;
  3086. parser[4] = 0;
  3087. exports.device[177] = parser;
  3088. parser = Object.create(null);
  3089. parser[0] = new RegExp("; *(IMO)[ _]([^;/]+) Build");
  3090. parser[1] = "$1 $2";
  3091. parser[2] = 0;
  3092. parser[3] = 0;
  3093. parser[4] = 0;
  3094. exports.device[178] = parser;
  3095. parser = Object.create(null);
  3096. parser[0] = new RegExp("; *i-?mobile[ _]([^/]+) Build/");
  3097. parser[1] = "i-mobile $1";
  3098. parser[2] = 0;
  3099. parser[3] = 0;
  3100. parser[4] = 0;
  3101. exports.device[179] = parser;
  3102. parser = Object.create(null);
  3103. parser[0] = new RegExp("; *(i-(?:style|note)[^/]*) Build/");
  3104. parser[1] = "i-mobile $1";
  3105. parser[2] = 0;
  3106. parser[3] = 0;
  3107. parser[4] = 0;
  3108. exports.device[180] = parser;
  3109. parser = Object.create(null);
  3110. parser[0] = new RegExp("; *(ImPAD) ?(\\d+(?:.)*) Build");
  3111. parser[1] = "$1 $2";
  3112. parser[2] = 0;
  3113. parser[3] = 0;
  3114. parser[4] = 0;
  3115. exports.device[181] = parser;
  3116. parser = Object.create(null);
  3117. parser[0] = new RegExp("; *(Infinix)[ _]([^;/]+) Build");
  3118. parser[1] = "$1 $2";
  3119. parser[2] = 0;
  3120. parser[3] = 0;
  3121. parser[4] = 0;
  3122. exports.device[182] = parser;
  3123. parser = Object.create(null);
  3124. parser[0] = new RegExp("; *(Informer)[ \\-]([^;/]+) Build");
  3125. parser[1] = "$1 $2";
  3126. parser[2] = 0;
  3127. parser[3] = 0;
  3128. parser[4] = 0;
  3129. exports.device[183] = parser;
  3130. parser = Object.create(null);
  3131. parser[0] = new RegExp("; *(TAB) ?([78][12]4) Build");
  3132. parser[1] = "Intenso $1";
  3133. parser[2] = 0;
  3134. parser[3] = 0;
  3135. parser[4] = 0;
  3136. exports.device[184] = parser;
  3137. parser = Object.create(null);
  3138. parser[0] = new RegExp("; *(?:Intex[ _])?(AQUA|Aqua)([ _\\.\\-])([^;/]+) *(?:Build|;)");
  3139. parser[1] = "$1$2$3";
  3140. parser[2] = 0;
  3141. parser[3] = 0;
  3142. parser[4] = 0;
  3143. exports.device[185] = parser;
  3144. parser = Object.create(null);
  3145. parser[0] = new RegExp("; *(?:INTEX|Intex)(?:[_ ]([^\\ _;/]+))(?:[_ ]([^\\ _;/]+))? *(?:Build|;)");
  3146. parser[1] = "$1 $2";
  3147. parser[2] = 0;
  3148. parser[3] = 0;
  3149. parser[4] = 0;
  3150. exports.device[186] = parser;
  3151. parser = Object.create(null);
  3152. parser[0] = new RegExp("; *([iI]Buddy)[ _]?(Connect)(?:_|\\?_| )?([^;/]*) *(?:Build|;)");
  3153. parser[1] = "$1 $2 $3";
  3154. parser[2] = 0;
  3155. parser[3] = 0;
  3156. parser[4] = 0;
  3157. exports.device[187] = parser;
  3158. parser = Object.create(null);
  3159. parser[0] = new RegExp("; *(I-Buddy)[ _]([^;/]+) *(?:Build|;)");
  3160. parser[1] = "$1 $2";
  3161. parser[2] = 0;
  3162. parser[3] = 0;
  3163. parser[4] = 0;
  3164. exports.device[188] = parser;
  3165. parser = Object.create(null);
  3166. parser[0] = new RegExp("; *(iOCEAN) ([^/]+) Build");
  3167. parser[1] = "$1 $2";
  3168. parser[2] = 0;
  3169. parser[3] = 0;
  3170. parser[4] = 0;
  3171. exports.device[189] = parser;
  3172. parser = Object.create(null);
  3173. parser[0] = new RegExp("; *(TP\\d+(?:\\.\\d+)?\\-\\d[^;/]+) Build");
  3174. parser[1] = "ionik $1";
  3175. parser[2] = 0;
  3176. parser[3] = 0;
  3177. parser[4] = 0;
  3178. exports.device[190] = parser;
  3179. parser = Object.create(null);
  3180. parser[0] = new RegExp("; *(M702pro) Build");
  3181. parser[1] = "$1";
  3182. parser[2] = 0;
  3183. parser[3] = 0;
  3184. parser[4] = 0;
  3185. exports.device[191] = parser;
  3186. parser = Object.create(null);
  3187. parser[0] = new RegExp("; *(DE88Plus|MD70) Build");
  3188. parser[1] = "$1";
  3189. parser[2] = 0;
  3190. parser[3] = 0;
  3191. parser[4] = 0;
  3192. exports.device[192] = parser;
  3193. parser = Object.create(null);
  3194. parser[0] = new RegExp("; *IVIO[_\\-]([^;/]+) Build");
  3195. parser[1] = "$1";
  3196. parser[2] = 0;
  3197. parser[3] = 0;
  3198. parser[4] = 0;
  3199. exports.device[193] = parser;
  3200. parser = Object.create(null);
  3201. parser[0] = new RegExp("; *(TPC-\\d+|JAY-TECH) Build");
  3202. parser[1] = "$1";
  3203. parser[2] = 0;
  3204. parser[3] = 0;
  3205. parser[4] = 0;
  3206. exports.device[194] = parser;
  3207. parser = Object.create(null);
  3208. parser[0] = new RegExp("; *(JY-[^;/]+|G[234]S?) Build");
  3209. parser[1] = "$1";
  3210. parser[2] = 0;
  3211. parser[3] = 0;
  3212. parser[4] = 0;
  3213. exports.device[195] = parser;
  3214. parser = Object.create(null);
  3215. parser[0] = new RegExp("; *(JXD)[ _\\-]([^;/]+) Build");
  3216. parser[1] = "$1 $2";
  3217. parser[2] = 0;
  3218. parser[3] = 0;
  3219. parser[4] = 0;
  3220. exports.device[196] = parser;
  3221. parser = Object.create(null);
  3222. parser[0] = new RegExp("; *Karbonn[ _]?([^;/]+) *(?:Build|;)");
  3223. parser[1] = "$1";
  3224. parser[2] = 0;
  3225. parser[3] = 0;
  3226. parser[4] = 0;
  3227. exports.device[197] = parser;
  3228. parser = Object.create(null);
  3229. parser[0] = new RegExp("; *([^;]+) Build/Karbonn");
  3230. parser[1] = "$1";
  3231. parser[2] = 0;
  3232. parser[3] = 0;
  3233. parser[4] = 0;
  3234. exports.device[198] = parser;
  3235. parser = Object.create(null);
  3236. parser[0] = new RegExp("; *(A11|A39|A37|A34|ST8|ST10|ST7|Smart Tab3|Smart Tab2|Titanium S\\d) +Build");
  3237. parser[1] = "$1";
  3238. parser[2] = 0;
  3239. parser[3] = 0;
  3240. parser[4] = 0;
  3241. exports.device[199] = parser;
  3242. parser = Object.create(null);
  3243. parser[0] = new RegExp("; *(IS01|IS03|IS05|IS\\d{2}SH) Build");
  3244. parser[1] = "$1";
  3245. parser[2] = 0;
  3246. parser[3] = 0;
  3247. parser[4] = 0;
  3248. exports.device[200] = parser;
  3249. parser = Object.create(null);
  3250. parser[0] = new RegExp("; *(IS04) Build");
  3251. parser[1] = "$1";
  3252. parser[2] = 0;
  3253. parser[3] = 0;
  3254. parser[4] = 0;
  3255. exports.device[201] = parser;
  3256. parser = Object.create(null);
  3257. parser[0] = new RegExp("; *(IS06|IS\\d{2}PT) Build");
  3258. parser[1] = "$1";
  3259. parser[2] = 0;
  3260. parser[3] = 0;
  3261. parser[4] = 0;
  3262. exports.device[202] = parser;
  3263. parser = Object.create(null);
  3264. parser[0] = new RegExp("; *(IS11S) Build");
  3265. parser[1] = "$1";
  3266. parser[2] = 0;
  3267. parser[3] = 0;
  3268. parser[4] = 0;
  3269. exports.device[203] = parser;
  3270. parser = Object.create(null);
  3271. parser[0] = new RegExp("; *(IS11CA) Build");
  3272. parser[1] = "$1";
  3273. parser[2] = 0;
  3274. parser[3] = 0;
  3275. parser[4] = 0;
  3276. exports.device[204] = parser;
  3277. parser = Object.create(null);
  3278. parser[0] = new RegExp("; *(IS11LG) Build");
  3279. parser[1] = "$1";
  3280. parser[2] = 0;
  3281. parser[3] = 0;
  3282. parser[4] = 0;
  3283. exports.device[205] = parser;
  3284. parser = Object.create(null);
  3285. parser[0] = new RegExp("; *(IS11N) Build");
  3286. parser[1] = "$1";
  3287. parser[2] = 0;
  3288. parser[3] = 0;
  3289. parser[4] = 0;
  3290. exports.device[206] = parser;
  3291. parser = Object.create(null);
  3292. parser[0] = new RegExp("; *(IS11PT) Build");
  3293. parser[1] = "$1";
  3294. parser[2] = 0;
  3295. parser[3] = 0;
  3296. parser[4] = 0;
  3297. exports.device[207] = parser;
  3298. parser = Object.create(null);
  3299. parser[0] = new RegExp("; *(IS12F) Build");
  3300. parser[1] = "$1";
  3301. parser[2] = 0;
  3302. parser[3] = 0;
  3303. parser[4] = 0;
  3304. exports.device[208] = parser;
  3305. parser = Object.create(null);
  3306. parser[0] = new RegExp("; *(IS12M) Build");
  3307. parser[1] = "$1";
  3308. parser[2] = 0;
  3309. parser[3] = 0;
  3310. parser[4] = 0;
  3311. exports.device[209] = parser;
  3312. parser = Object.create(null);
  3313. parser[0] = new RegExp("; *(IS12S) Build");
  3314. parser[1] = "$1";
  3315. parser[2] = 0;
  3316. parser[3] = 0;
  3317. parser[4] = 0;
  3318. exports.device[210] = parser;
  3319. parser = Object.create(null);
  3320. parser[0] = new RegExp("; *(ISW11F) Build");
  3321. parser[1] = "$1";
  3322. parser[2] = 0;
  3323. parser[3] = 0;
  3324. parser[4] = 0;
  3325. exports.device[211] = parser;
  3326. parser = Object.create(null);
  3327. parser[0] = new RegExp("; *(ISW11HT) Build");
  3328. parser[1] = "$1";
  3329. parser[2] = 0;
  3330. parser[3] = 0;
  3331. parser[4] = 0;
  3332. exports.device[212] = parser;
  3333. parser = Object.create(null);
  3334. parser[0] = new RegExp("; *(ISW11K) Build");
  3335. parser[1] = "$1";
  3336. parser[2] = 0;
  3337. parser[3] = 0;
  3338. parser[4] = 0;
  3339. exports.device[213] = parser;
  3340. parser = Object.create(null);
  3341. parser[0] = new RegExp("; *(ISW11M) Build");
  3342. parser[1] = "$1";
  3343. parser[2] = 0;
  3344. parser[3] = 0;
  3345. parser[4] = 0;
  3346. exports.device[214] = parser;
  3347. parser = Object.create(null);
  3348. parser[0] = new RegExp("; *(ISW11SC) Build");
  3349. parser[1] = "$1";
  3350. parser[2] = 0;
  3351. parser[3] = 0;
  3352. parser[4] = 0;
  3353. exports.device[215] = parser;
  3354. parser = Object.create(null);
  3355. parser[0] = new RegExp("; *(ISW12HT) Build");
  3356. parser[1] = "$1";
  3357. parser[2] = 0;
  3358. parser[3] = 0;
  3359. parser[4] = 0;
  3360. exports.device[216] = parser;
  3361. parser = Object.create(null);
  3362. parser[0] = new RegExp("; *(ISW13HT) Build");
  3363. parser[1] = "$1";
  3364. parser[2] = 0;
  3365. parser[3] = 0;
  3366. parser[4] = 0;
  3367. exports.device[217] = parser;
  3368. parser = Object.create(null);
  3369. parser[0] = new RegExp("; *(ISW?[0-9]{2}[A-Z]{0,2}) Build");
  3370. parser[1] = "$1";
  3371. parser[2] = 0;
  3372. parser[3] = 0;
  3373. parser[4] = 0;
  3374. exports.device[218] = parser;
  3375. parser = Object.create(null);
  3376. parser[0] = new RegExp("; *(INFOBAR [^;/]+) Build");
  3377. parser[1] = "$1";
  3378. parser[2] = 0;
  3379. parser[3] = 0;
  3380. parser[4] = 0;
  3381. exports.device[219] = parser;
  3382. parser = Object.create(null);
  3383. parser[0] = new RegExp("; *(JOYPAD|Joypad)[ _]([^;/]+) Build/");
  3384. parser[1] = "$1 $2";
  3385. parser[2] = 0;
  3386. parser[3] = 0;
  3387. parser[4] = 0;
  3388. exports.device[220] = parser;
  3389. parser = Object.create(null);
  3390. parser[0] = new RegExp("; *(Vox|VOX|Arc|K080) Build/");
  3391. parser[1] = "$1";
  3392. parser[2] = 0;
  3393. parser[3] = 0;
  3394. parser[4] = 0;
  3395. exports.device[221] = parser;
  3396. parser = Object.create(null);
  3397. parser[0] = new RegExp("\\b(Kobo Touch)\\b");
  3398. parser[1] = "$1";
  3399. parser[2] = 0;
  3400. parser[3] = 0;
  3401. parser[4] = 0;
  3402. exports.device[222] = parser;
  3403. parser = Object.create(null);
  3404. parser[0] = new RegExp("; *(K-Touch)[ _]([^;/]+) Build");
  3405. parser[1] = "$1 $2";
  3406. parser[2] = 0;
  3407. parser[3] = 0;
  3408. parser[4] = 0;
  3409. exports.device[223] = parser;
  3410. parser = Object.create(null);
  3411. parser[0] = new RegExp("; *((?:EV|KM)-S\\d+[A-Z]?) Build");
  3412. parser[1] = "$1";
  3413. parser[2] = 0;
  3414. parser[3] = 0;
  3415. parser[4] = 0;
  3416. exports.device[224] = parser;
  3417. parser = Object.create(null);
  3418. parser[0] = new RegExp("; *(Zio|Hydro|Torque|Event|EVENT|Echo|Milano|Rise|URBANO PROGRESSO|WX04K|WX06K|WX10K|KYL21|101K|C5[12]\\d{2}) Build/");
  3419. parser[1] = "$1";
  3420. parser[2] = 0;
  3421. parser[3] = 0;
  3422. parser[4] = 0;
  3423. exports.device[225] = parser;
  3424. parser = Object.create(null);
  3425. parser[0] = new RegExp("; *(?:LAVA[ _])?IRIS[ _\\-]?([^/;\\)]+) *(?:;|\\)|Build)");
  3426. parser[1] = "Iris $1";
  3427. parser[2] = 0;
  3428. parser[3] = 0;
  3429. parser[4] = 0;
  3430. exports.device[226] = parser;
  3431. parser = Object.create(null);
  3432. parser[0] = new RegExp("; *LAVA[ _]([^;/]+) Build");
  3433. parser[1] = "$1";
  3434. parser[2] = 0;
  3435. parser[3] = 0;
  3436. parser[4] = 0;
  3437. exports.device[227] = parser;
  3438. parser = Object.create(null);
  3439. parser[0] = new RegExp("; *(?:(Aspire A1)|(?:LEMON|Lemon)[ _]([^;/]+))_? Build");
  3440. parser[1] = "Lemon $1$2";
  3441. parser[2] = 0;
  3442. parser[3] = 0;
  3443. parser[4] = 0;
  3444. exports.device[228] = parser;
  3445. parser = Object.create(null);
  3446. parser[0] = new RegExp("; *(TAB-1012) Build/");
  3447. parser[1] = "Lenco $1";
  3448. parser[2] = 0;
  3449. parser[3] = 0;
  3450. parser[4] = 0;
  3451. exports.device[229] = parser;
  3452. parser = Object.create(null);
  3453. parser[0] = new RegExp("; Lenco ([^;/]+) Build/");
  3454. parser[1] = "Lenco $1";
  3455. parser[2] = 0;
  3456. parser[3] = 0;
  3457. parser[4] = 0;
  3458. exports.device[230] = parser;
  3459. parser = Object.create(null);
  3460. parser[0] = new RegExp("; *(A1_07|A2107A-H|S2005A-H|S1-37AH0) Build");
  3461. parser[1] = "$1";
  3462. parser[2] = 0;
  3463. parser[3] = 0;
  3464. parser[4] = 0;
  3465. exports.device[231] = parser;
  3466. parser = Object.create(null);
  3467. parser[0] = new RegExp("; *(Idea[Tp]ab)[ _]([^;/]+);? Build");
  3468. parser[1] = "Lenovo $1 $2";
  3469. parser[2] = 0;
  3470. parser[3] = 0;
  3471. parser[4] = 0;
  3472. exports.device[232] = parser;
  3473. parser = Object.create(null);
  3474. parser[0] = new RegExp("; *(Idea(?:Tab|pad)) ?([^;/]+) Build");
  3475. parser[1] = "Lenovo $1 $2";
  3476. parser[2] = 0;
  3477. parser[3] = 0;
  3478. parser[4] = 0;
  3479. exports.device[233] = parser;
  3480. parser = Object.create(null);
  3481. parser[0] = new RegExp("; *(ThinkPad) ?(Tablet) Build/");
  3482. parser[1] = "Lenovo $1 $2";
  3483. parser[2] = 0;
  3484. parser[3] = 0;
  3485. parser[4] = 0;
  3486. exports.device[234] = parser;
  3487. parser = Object.create(null);
  3488. parser[0] = new RegExp("; *(?:LNV-)?(?:=?[Ll]enovo[ _\\-]?|LENOVO[ _])+(.+?)(?:Build|[;/\\)])");
  3489. parser[1] = "Lenovo $1";
  3490. parser[2] = 0;
  3491. parser[3] = 0;
  3492. parser[4] = 0;
  3493. exports.device[235] = parser;
  3494. parser = Object.create(null);
  3495. parser[0] = new RegExp("[;,] (?:Vodafone )?(SmartTab) ?(II) ?(\\d+) Build/");
  3496. parser[1] = "Lenovo $1 $2 $3";
  3497. parser[2] = 0;
  3498. parser[3] = 0;
  3499. parser[4] = 0;
  3500. exports.device[236] = parser;
  3501. parser = Object.create(null);
  3502. parser[0] = new RegExp("; *(?:Ideapad )?K1 Build/");
  3503. parser[1] = "Lenovo Ideapad K1";
  3504. parser[2] = 0;
  3505. parser[3] = 0;
  3506. parser[4] = 0;
  3507. exports.device[237] = parser;
  3508. parser = Object.create(null);
  3509. parser[0] = new RegExp("; *(3GC101|3GW10[01]|A390) Build/");
  3510. parser[1] = "$1";
  3511. parser[2] = 0;
  3512. parser[3] = 0;
  3513. parser[4] = 0;
  3514. exports.device[238] = parser;
  3515. parser = Object.create(null);
  3516. parser[0] = new RegExp("\\b(?:Lenovo|LENOVO)+[ _\\-]?([^,;:/ ]+)");
  3517. parser[1] = "Lenovo $1";
  3518. parser[2] = 0;
  3519. parser[3] = 0;
  3520. parser[4] = 0;
  3521. exports.device[239] = parser;
  3522. parser = Object.create(null);
  3523. parser[0] = new RegExp("; *(MFC\\d+)[A-Z]{2}([^;,/]*),? Build");
  3524. parser[1] = "$1$2";
  3525. parser[2] = 0;
  3526. parser[3] = 0;
  3527. parser[4] = 0;
  3528. exports.device[240] = parser;
  3529. parser = Object.create(null);
  3530. parser[0] = new RegExp("; *(E[34][0-9]{2}|LS[6-8][0-9]{2}|VS[6-9][0-9]+[^;/]+|Nexus 4|Nexus 5X?|GT540f?|Optimus (?:2X|G|4X HD)|OptimusX4HD) *(?:Build|;)");
  3531. parser[1] = "$1";
  3532. parser[2] = 0;
  3533. parser[3] = 0;
  3534. parser[4] = 0;
  3535. exports.device[241] = parser;
  3536. parser = Object.create(null);
  3537. parser[0] = new RegExp("[;:] *(L-\\d+[A-Z]|LGL\\d+[A-Z]?)(?:/V\\d+)? *(?:Build|[;\\)])");
  3538. parser[1] = "$1";
  3539. parser[2] = 0;
  3540. parser[3] = 0;
  3541. parser[4] = 0;
  3542. exports.device[242] = parser;
  3543. parser = Object.create(null);
  3544. parser[0] = new RegExp("; *(LG-)([A-Z]{1,2}\\d{2,}[^,;/\\)\\(]*?)(?:Build| V\\d+|[,;/\\)\\(]|$)");
  3545. parser[1] = "$1$2";
  3546. parser[2] = 0;
  3547. parser[3] = 0;
  3548. parser[4] = 0;
  3549. exports.device[243] = parser;
  3550. parser = Object.create(null);
  3551. parser[0] = new RegExp("; *(LG[ \\-]|LG)([^;/]+)[;/]? Build");
  3552. parser[1] = "$1$2";
  3553. parser[2] = 0;
  3554. parser[3] = 0;
  3555. parser[4] = 0;
  3556. exports.device[244] = parser;
  3557. parser = Object.create(null);
  3558. parser[0] = new RegExp("^(LG)-([^;/]+)/ Mozilla/.*; Android");
  3559. parser[1] = "$1 $2";
  3560. parser[2] = 0;
  3561. parser[3] = 0;
  3562. parser[4] = 0;
  3563. exports.device[245] = parser;
  3564. parser = Object.create(null);
  3565. parser[0] = new RegExp("(Web0S); Linux/(SmartTV)");
  3566. parser[1] = "LG $1 $2";
  3567. parser[2] = 0;
  3568. parser[3] = 0;
  3569. parser[4] = 0;
  3570. exports.device[246] = parser;
  3571. parser = Object.create(null);
  3572. parser[0] = new RegExp("; *((?:SMB|smb)[^;/]+) Build/");
  3573. parser[1] = "$1";
  3574. parser[2] = 0;
  3575. parser[3] = 0;
  3576. parser[4] = 0;
  3577. exports.device[247] = parser;
  3578. parser = Object.create(null);
  3579. parser[0] = new RegExp("; *(?:Malata|MALATA) ([^;/]+) Build/");
  3580. parser[1] = "$1";
  3581. parser[2] = 0;
  3582. parser[3] = 0;
  3583. parser[4] = 0;
  3584. exports.device[248] = parser;
  3585. parser = Object.create(null);
  3586. parser[0] = new RegExp("; *(MS[45][0-9]{3}|MID0[568][NS]?|MID[1-9]|MID[78]0[1-9]|MID970[1-9]|MID100[1-9]) Build/");
  3587. parser[1] = "$1";
  3588. parser[2] = 0;
  3589. parser[3] = 0;
  3590. parser[4] = 0;
  3591. exports.device[249] = parser;
  3592. parser = Object.create(null);
  3593. parser[0] = new RegExp("; *(M1052|M806|M9000|M9100|M9701|MID100|MID120|MID125|MID130|MID135|MID140|MID701|MID710|MID713|MID727|MID728|MID731|MID732|MID733|MID735|MID736|MID737|MID760|MID800|MID810|MID820|MID830|MID833|MID835|MID860|MID900|MID930|MID933|MID960|MID980) Build/");
  3594. parser[1] = "$1";
  3595. parser[2] = 0;
  3596. parser[3] = 0;
  3597. parser[4] = 0;
  3598. exports.device[250] = parser;
  3599. parser = Object.create(null);
  3600. parser[0] = new RegExp("; *(GenxDroid7|MSD7.*|AX\\d.*|Tab 701|Tab 722) Build/");
  3601. parser[1] = "Maxx $1";
  3602. parser[2] = 0;
  3603. parser[3] = 0;
  3604. parser[4] = 0;
  3605. exports.device[251] = parser;
  3606. parser = Object.create(null);
  3607. parser[0] = new RegExp("; *(M-PP[^;/]+|PhonePad ?\\d{2,}[^;/]+) Build");
  3608. parser[1] = "Mediacom $1";
  3609. parser[2] = 0;
  3610. parser[3] = 0;
  3611. parser[4] = 0;
  3612. exports.device[252] = parser;
  3613. parser = Object.create(null);
  3614. parser[0] = new RegExp("; *(M-MP[^;/]+|SmartPad ?\\d{2,}[^;/]+) Build");
  3615. parser[1] = "Mediacom $1";
  3616. parser[2] = 0;
  3617. parser[3] = 0;
  3618. parser[4] = 0;
  3619. exports.device[253] = parser;
  3620. parser = Object.create(null);
  3621. parser[0] = new RegExp("; *(?:MD_)?LIFETAB[ _]([^;/]+) Build");
  3622. parser[1] = "Medion Lifetab $1";
  3623. parser[2] = 0;
  3624. parser[3] = 0;
  3625. parser[4] = 0;
  3626. exports.device[254] = parser;
  3627. parser = Object.create(null);
  3628. parser[0] = new RegExp("; *MEDION ([^;/]+) Build");
  3629. parser[1] = "Medion $1";
  3630. parser[2] = 0;
  3631. parser[3] = 0;
  3632. parser[4] = 0;
  3633. exports.device[255] = parser;
  3634. parser = Object.create(null);
  3635. parser[0] = new RegExp("; *(M030|M031|M035|M040|M065|m9) Build");
  3636. parser[1] = "Meizu $1";
  3637. parser[2] = 0;
  3638. parser[3] = 0;
  3639. parser[4] = 0;
  3640. exports.device[256] = parser;
  3641. parser = Object.create(null);
  3642. parser[0] = new RegExp("; *(?:meizu_|MEIZU )(.+?) *(?:Build|[;\\)])");
  3643. parser[1] = "Meizu $1";
  3644. parser[2] = 0;
  3645. parser[3] = 0;
  3646. parser[4] = 0;
  3647. exports.device[257] = parser;
  3648. parser = Object.create(null);
  3649. parser[0] = new RegExp("; *(?:Micromax[ _](A111|A240)|(A111|A240)) Build");
  3650. parser[1] = "Micromax $1$2";
  3651. parser[2] = 0;
  3652. parser[3] = 0;
  3653. parser[4] = 0;
  3654. exports.device[258] = parser;
  3655. parser = Object.create(null);
  3656. parser[0] = new RegExp("; *Micromax[ _](A\\d{2,3}[^;/]*) Build");
  3657. parser[1] = "Micromax $1";
  3658. parser[2] = 0;
  3659. parser[3] = 0;
  3660. parser[4] = 0;
  3661. exports.device[259] = parser;
  3662. parser = Object.create(null);
  3663. parser[0] = new RegExp("; *(A\\d{2}|A[12]\\d{2}|A90S|A110Q) Build");
  3664. parser[1] = "Micromax $1";
  3665. parser[2] = 0;
  3666. parser[3] = 0;
  3667. parser[4] = 0;
  3668. exports.device[260] = parser;
  3669. parser = Object.create(null);
  3670. parser[0] = new RegExp("; *Micromax[ _](P\\d{3}[^;/]*) Build");
  3671. parser[1] = "Micromax $1";
  3672. parser[2] = 0;
  3673. parser[3] = 0;
  3674. parser[4] = 0;
  3675. exports.device[261] = parser;
  3676. parser = Object.create(null);
  3677. parser[0] = new RegExp("; *(P\\d{3}|P\\d{3}\\(Funbook\\)) Build");
  3678. parser[1] = "Micromax $1";
  3679. parser[2] = 0;
  3680. parser[3] = 0;
  3681. parser[4] = 0;
  3682. exports.device[262] = parser;
  3683. parser = Object.create(null);
  3684. parser[0] = new RegExp("; *(MITO)[ _\\-]?([^;/]+) Build");
  3685. parser[1] = "$1 $2";
  3686. parser[2] = 0;
  3687. parser[3] = 0;
  3688. parser[4] = 0;
  3689. exports.device[263] = parser;
  3690. parser = Object.create(null);
  3691. parser[0] = new RegExp("; *(Cynus)[ _](F5|T\\d|.+?) *(?:Build|[;/\\)])");
  3692. parser[1] = "$1 $2";
  3693. parser[2] = 0;
  3694. parser[3] = 0;
  3695. parser[4] = 0;
  3696. exports.device[264] = parser;
  3697. parser = Object.create(null);
  3698. parser[0] = new RegExp("; *(MODECOM )?(FreeTab) ?([^;/]+) Build");
  3699. parser[1] = "$1$2 $3";
  3700. parser[2] = 0;
  3701. parser[3] = 0;
  3702. parser[4] = 0;
  3703. exports.device[265] = parser;
  3704. parser = Object.create(null);
  3705. parser[0] = new RegExp("; *(MODECOM )([^;/]+) Build");
  3706. parser[1] = "$1 $2";
  3707. parser[2] = 0;
  3708. parser[3] = 0;
  3709. parser[4] = 0;
  3710. exports.device[266] = parser;
  3711. parser = Object.create(null);
  3712. parser[0] = new RegExp("; *(MZ\\d{3}\\+?|MZ\\d{3} 4G|Xoom|XOOM[^;/]*) Build");
  3713. parser[1] = "Motorola $1";
  3714. parser[2] = 0;
  3715. parser[3] = 0;
  3716. parser[4] = 0;
  3717. exports.device[267] = parser;
  3718. parser = Object.create(null);
  3719. parser[0] = new RegExp("; *(Milestone )(XT[^;/]*) Build");
  3720. parser[1] = "Motorola $1$2";
  3721. parser[2] = 0;
  3722. parser[3] = 0;
  3723. parser[4] = 0;
  3724. exports.device[268] = parser;
  3725. parser = Object.create(null);
  3726. parser[0] = new RegExp("; *(Motoroi ?x|Droid X|DROIDX) Build");
  3727. parser[1] = "Motorola $1";
  3728. parser[2] = 0;
  3729. parser[3] = 0;
  3730. parser[4] = 0;
  3731. exports.device[269] = parser;
  3732. parser = Object.create(null);
  3733. parser[0] = new RegExp("; *(Droid[^;/]*|DROID[^;/]*|Milestone[^;/]*|Photon|Triumph|Devour|Titanium) Build");
  3734. parser[1] = "Motorola $1";
  3735. parser[2] = 0;
  3736. parser[3] = 0;
  3737. parser[4] = 0;
  3738. exports.device[270] = parser;
  3739. parser = Object.create(null);
  3740. parser[0] = new RegExp("; *(A555|A85[34][^;/]*|A95[356]|ME[58]\\d{2}\\+?|ME600|ME632|ME722|MB\\d{3}\\+?|MT680|MT710|MT870|MT887|MT917|WX435|WX453|WX44[25]|XT\\d{3,4}[A-Z\\+]*|CL[iI]Q|CL[iI]Q XT) Build");
  3741. parser[1] = "$1";
  3742. parser[2] = 0;
  3743. parser[3] = 0;
  3744. parser[4] = 0;
  3745. exports.device[271] = parser;
  3746. parser = Object.create(null);
  3747. parser[0] = new RegExp("; *(Motorola MOT-|Motorola[ _\\-]|MOT\\-?)([^;/]+) Build");
  3748. parser[1] = "$1$2";
  3749. parser[2] = 0;
  3750. parser[3] = 0;
  3751. parser[4] = 0;
  3752. exports.device[272] = parser;
  3753. parser = Object.create(null);
  3754. parser[0] = new RegExp("; *(Moto[_ ]?|MOT\\-)([^;/]+) Build");
  3755. parser[1] = "$1$2";
  3756. parser[2] = 0;
  3757. parser[3] = 0;
  3758. parser[4] = 0;
  3759. exports.device[273] = parser;
  3760. parser = Object.create(null);
  3761. parser[0] = new RegExp("; *((?:MP[DQ]C|MPG\\d{1,4}|MP\\d{3,4}|MID(?:(?:10[234]|114|43|7[247]|8[24]|7)C|8[01]1))[^;/]*) Build");
  3762. parser[1] = "$1";
  3763. parser[2] = 0;
  3764. parser[3] = 0;
  3765. parser[4] = 0;
  3766. exports.device[274] = parser;
  3767. parser = Object.create(null);
  3768. parser[0] = new RegExp("; *(?:MSI[ _])?(Primo\\d+|Enjoy[ _\\-][^;/]+) Build");
  3769. parser[1] = "$1";
  3770. parser[2] = 0;
  3771. parser[3] = 0;
  3772. parser[4] = 0;
  3773. exports.device[275] = parser;
  3774. parser = Object.create(null);
  3775. parser[0] = new RegExp("; *Multilaser[ _]([^;/]+) Build");
  3776. parser[1] = "$1";
  3777. parser[2] = 0;
  3778. parser[3] = 0;
  3779. parser[4] = 0;
  3780. exports.device[276] = parser;
  3781. parser = Object.create(null);
  3782. parser[0] = new RegExp("; *(My)[_]?(Pad)[ _]([^;/]+) Build");
  3783. parser[1] = "$1$2 $3";
  3784. parser[2] = 0;
  3785. parser[3] = 0;
  3786. parser[4] = 0;
  3787. exports.device[277] = parser;
  3788. parser = Object.create(null);
  3789. parser[0] = new RegExp("; *(My)\\|?(Phone)[ _]([^;/]+) Build");
  3790. parser[1] = "$1$2 $3";
  3791. parser[2] = 0;
  3792. parser[3] = 0;
  3793. parser[4] = 0;
  3794. exports.device[278] = parser;
  3795. parser = Object.create(null);
  3796. parser[0] = new RegExp("; *(A\\d+)[ _](Duo)? Build");
  3797. parser[1] = "$1 $2";
  3798. parser[2] = 0;
  3799. parser[3] = 0;
  3800. parser[4] = 0;
  3801. exports.device[279] = parser;
  3802. parser = Object.create(null);
  3803. parser[0] = new RegExp("; *(myTab[^;/]*) Build");
  3804. parser[1] = "$1";
  3805. parser[2] = 0;
  3806. parser[3] = 0;
  3807. parser[4] = 0;
  3808. exports.device[280] = parser;
  3809. parser = Object.create(null);
  3810. parser[0] = new RegExp("; *(NABI2?-)([^;/]+) Build/");
  3811. parser[1] = "$1$2";
  3812. parser[2] = 0;
  3813. parser[3] = 0;
  3814. parser[4] = 0;
  3815. exports.device[281] = parser;
  3816. parser = Object.create(null);
  3817. parser[0] = new RegExp("; *(N-\\d+[CDE]) Build/");
  3818. parser[1] = "$1";
  3819. parser[2] = 0;
  3820. parser[3] = 0;
  3821. parser[4] = 0;
  3822. exports.device[282] = parser;
  3823. parser = Object.create(null);
  3824. parser[0] = new RegExp("; ?(NEC-)(.*) Build/");
  3825. parser[1] = "$1$2";
  3826. parser[2] = 0;
  3827. parser[3] = 0;
  3828. parser[4] = 0;
  3829. exports.device[283] = parser;
  3830. parser = Object.create(null);
  3831. parser[0] = new RegExp("; *(LT-NA7) Build/");
  3832. parser[1] = "$1";
  3833. parser[2] = 0;
  3834. parser[3] = 0;
  3835. parser[4] = 0;
  3836. exports.device[284] = parser;
  3837. parser = Object.create(null);
  3838. parser[0] = new RegExp("; *(NXM\\d+[A-z0-9_]*|Next\\d[A-z0-9_ \\-]*|NEXT\\d[A-z0-9_ \\-]*|Nextbook [A-z0-9_ ]*|DATAM803HC|M805)(?: Build|[\\);])");
  3839. parser[1] = "$1";
  3840. parser[2] = 0;
  3841. parser[3] = 0;
  3842. parser[4] = 0;
  3843. exports.device[285] = parser;
  3844. parser = Object.create(null);
  3845. parser[0] = new RegExp("; *(Nokia)([ _\\-]*)([^;/]*) Build");
  3846. parser[1] = "$1$2$3";
  3847. parser[2] = 0;
  3848. parser[3] = 0;
  3849. parser[4] = 0;
  3850. exports.device[286] = parser;
  3851. parser = Object.create(null);
  3852. parser[0] = new RegExp("; *(Nook ?|Barnes & Noble Nook |BN )([^;/]+) Build");
  3853. parser[1] = "$1$2";
  3854. parser[2] = 0;
  3855. parser[3] = 0;
  3856. parser[4] = 0;
  3857. exports.device[287] = parser;
  3858. parser = Object.create(null);
  3859. parser[0] = new RegExp("; *(NOOK )?(BNRV200|BNRV200A|BNTV250|BNTV250A|BNTV400|BNTV600|LogicPD Zoom2) Build");
  3860. parser[1] = "$1$2";
  3861. parser[2] = 0;
  3862. parser[3] = 0;
  3863. parser[4] = 0;
  3864. exports.device[288] = parser;
  3865. parser = Object.create(null);
  3866. parser[0] = new RegExp("; Build/(Nook)");
  3867. parser[1] = "$1";
  3868. parser[2] = 0;
  3869. parser[3] = 0;
  3870. parser[4] = 0;
  3871. exports.device[289] = parser;
  3872. parser = Object.create(null);
  3873. parser[0] = new RegExp("; *(OP110|OliPad[^;/]+) Build");
  3874. parser[1] = "Olivetti $1";
  3875. parser[2] = 0;
  3876. parser[3] = 0;
  3877. parser[4] = 0;
  3878. exports.device[290] = parser;
  3879. parser = Object.create(null);
  3880. parser[0] = new RegExp("; *OMEGA[ _\\-](MID[^;/]+) Build");
  3881. parser[1] = "Omega $1";
  3882. parser[2] = 0;
  3883. parser[3] = 0;
  3884. parser[4] = 0;
  3885. exports.device[291] = parser;
  3886. parser = Object.create(null);
  3887. parser[0] = new RegExp("^(MID7500|MID\\d+) Mozilla/5\\.0 \\(iPad;");
  3888. parser[1] = "Omega $1";
  3889. parser[2] = 0;
  3890. parser[3] = 0;
  3891. parser[4] = 0;
  3892. exports.device[292] = parser;
  3893. parser = Object.create(null);
  3894. parser[0] = new RegExp("; *((?:CIUS|cius)[^;/]*) Build");
  3895. parser[1] = "Openpeak $1";
  3896. parser[2] = 0;
  3897. parser[3] = 0;
  3898. parser[4] = 0;
  3899. exports.device[293] = parser;
  3900. parser = Object.create(null);
  3901. parser[0] = new RegExp("; *(Find ?(?:5|7a)|R8[012]\\d{1,2}|T703\\d{0,1}|U70\\d{1,2}T?|X90\\d{1,2}) Build");
  3902. parser[1] = "Oppo $1";
  3903. parser[2] = 0;
  3904. parser[3] = 0;
  3905. parser[4] = 0;
  3906. exports.device[294] = parser;
  3907. parser = Object.create(null);
  3908. parser[0] = new RegExp("; *OPPO ?([^;/]+) Build/");
  3909. parser[1] = "Oppo $1";
  3910. parser[2] = 0;
  3911. parser[3] = 0;
  3912. parser[4] = 0;
  3913. exports.device[295] = parser;
  3914. parser = Object.create(null);
  3915. parser[0] = new RegExp("; *(?:Odys\\-|ODYS\\-|ODYS )([^;/]+) Build");
  3916. parser[1] = "Odys $1";
  3917. parser[2] = 0;
  3918. parser[3] = 0;
  3919. parser[4] = 0;
  3920. exports.device[296] = parser;
  3921. parser = Object.create(null);
  3922. parser[0] = new RegExp("; *(SELECT) ?(7) Build");
  3923. parser[1] = "Odys $1 $2";
  3924. parser[2] = 0;
  3925. parser[3] = 0;
  3926. parser[4] = 0;
  3927. exports.device[297] = parser;
  3928. parser = Object.create(null);
  3929. parser[0] = new RegExp("; *(PEDI)_(PLUS)_(W) Build");
  3930. parser[1] = "Odys $1 $2 $3";
  3931. parser[2] = 0;
  3932. parser[3] = 0;
  3933. parser[4] = 0;
  3934. exports.device[298] = parser;
  3935. parser = Object.create(null);
  3936. parser[0] = new RegExp("; *(AEON|BRAVIO|FUSION|FUSION2IN1|Genio|EOS10|IEOS[^;/]*|IRON|Loox|LOOX|LOOX Plus|Motion|NOON|NOON_PRO|NEXT|OPOS|PEDI[^;/]*|PRIME[^;/]*|STUDYTAB|TABLO|Tablet-PC-4|UNO_X8|XELIO[^;/]*|Xelio ?\\d+ ?[Pp]ro|XENO10|XPRESS PRO) Build");
  3937. parser[1] = "Odys $1";
  3938. parser[2] = 0;
  3939. parser[3] = 0;
  3940. parser[4] = 0;
  3941. exports.device[299] = parser;
  3942. parser = Object.create(null);
  3943. parser[0] = new RegExp("; (ONE [a-zA-Z]\\d+) Build/");
  3944. parser[1] = "OnePlus $1";
  3945. parser[2] = 0;
  3946. parser[3] = 0;
  3947. parser[4] = 0;
  3948. exports.device[300] = parser;
  3949. parser = Object.create(null);
  3950. parser[0] = new RegExp("; (ONEPLUS [a-zA-Z]\\d+) Build/");
  3951. parser[1] = "OnePlus $1";
  3952. parser[2] = 0;
  3953. parser[3] = 0;
  3954. parser[4] = 0;
  3955. exports.device[301] = parser;
  3956. parser = Object.create(null);
  3957. parser[0] = new RegExp("; *(TP-\\d+) Build/");
  3958. parser[1] = "Orion $1";
  3959. parser[2] = 0;
  3960. parser[3] = 0;
  3961. parser[4] = 0;
  3962. exports.device[302] = parser;
  3963. parser = Object.create(null);
  3964. parser[0] = new RegExp("; *(G100W?) Build/");
  3965. parser[1] = "PackardBell $1";
  3966. parser[2] = 0;
  3967. parser[3] = 0;
  3968. parser[4] = 0;
  3969. exports.device[303] = parser;
  3970. parser = Object.create(null);
  3971. parser[0] = new RegExp("; *(Panasonic)[_ ]([^;/]+) Build");
  3972. parser[1] = "$1 $2";
  3973. parser[2] = 0;
  3974. parser[3] = 0;
  3975. parser[4] = 0;
  3976. exports.device[304] = parser;
  3977. parser = Object.create(null);
  3978. parser[0] = new RegExp("; *(FZ-A1B|JT-B1) Build");
  3979. parser[1] = "Panasonic $1";
  3980. parser[2] = 0;
  3981. parser[3] = 0;
  3982. parser[4] = 0;
  3983. exports.device[305] = parser;
  3984. parser = Object.create(null);
  3985. parser[0] = new RegExp("; *(dL1|DL1) Build");
  3986. parser[1] = "Panasonic $1";
  3987. parser[2] = 0;
  3988. parser[3] = 0;
  3989. parser[4] = 0;
  3990. exports.device[306] = parser;
  3991. parser = Object.create(null);
  3992. parser[0] = new RegExp("; *(SKY[ _])?(IM\\-[AT]\\d{3}[^;/]+).* Build/");
  3993. parser[1] = "Pantech $1$2";
  3994. parser[2] = 0;
  3995. parser[3] = 0;
  3996. parser[4] = 0;
  3997. exports.device[307] = parser;
  3998. parser = Object.create(null);
  3999. parser[0] = new RegExp("; *((?:ADR8995|ADR910L|ADR930L|ADR930VW|PTL21|P8000)(?: 4G)?) Build/");
  4000. parser[1] = "$1";
  4001. parser[2] = 0;
  4002. parser[3] = 0;
  4003. parser[4] = 0;
  4004. exports.device[308] = parser;
  4005. parser = Object.create(null);
  4006. parser[0] = new RegExp("; *Pantech([^;/]+).* Build/");
  4007. parser[1] = "Pantech $1";
  4008. parser[2] = 0;
  4009. parser[3] = 0;
  4010. parser[4] = 0;
  4011. exports.device[309] = parser;
  4012. parser = Object.create(null);
  4013. parser[0] = new RegExp("; *(papyre)[ _\\-]([^;/]+) Build/");
  4014. parser[1] = "$1 $2";
  4015. parser[2] = 0;
  4016. parser[3] = 0;
  4017. parser[4] = 0;
  4018. exports.device[310] = parser;
  4019. parser = Object.create(null);
  4020. parser[0] = new RegExp("; *(?:Touchlet )?(X10\\.[^;/]+) Build/");
  4021. parser[1] = "Pearl $1";
  4022. parser[2] = 0;
  4023. parser[3] = 0;
  4024. parser[4] = 0;
  4025. exports.device[311] = parser;
  4026. parser = Object.create(null);
  4027. parser[0] = new RegExp("; PHICOMM (i800) Build/");
  4028. parser[1] = "Phicomm $1";
  4029. parser[2] = 0;
  4030. parser[3] = 0;
  4031. parser[4] = 0;
  4032. exports.device[312] = parser;
  4033. parser = Object.create(null);
  4034. parser[0] = new RegExp("; PHICOMM ([^;/]+) Build/");
  4035. parser[1] = "Phicomm $1";
  4036. parser[2] = 0;
  4037. parser[3] = 0;
  4038. parser[4] = 0;
  4039. exports.device[313] = parser;
  4040. parser = Object.create(null);
  4041. parser[0] = new RegExp("; *(FWS\\d{3}[^;/]+) Build/");
  4042. parser[1] = "Phicomm $1";
  4043. parser[2] = 0;
  4044. parser[3] = 0;
  4045. parser[4] = 0;
  4046. exports.device[314] = parser;
  4047. parser = Object.create(null);
  4048. parser[0] = new RegExp("; *(D633|D822|D833|T539|T939|V726|W335|W336|W337|W3568|W536|W5510|W626|W632|W6350|W6360|W6500|W732|W736|W737|W7376|W820|W832|W8355|W8500|W8510|W930) Build");
  4049. parser[1] = "$1";
  4050. parser[2] = 0;
  4051. parser[3] = 0;
  4052. parser[4] = 0;
  4053. exports.device[315] = parser;
  4054. parser = Object.create(null);
  4055. parser[0] = new RegExp("; *(?:Philips|PHILIPS)[ _]([^;/]+) Build");
  4056. parser[1] = "Philips $1";
  4057. parser[2] = 0;
  4058. parser[3] = 0;
  4059. parser[4] = 0;
  4060. exports.device[316] = parser;
  4061. parser = Object.create(null);
  4062. parser[0] = new RegExp("Android 4\\..*; *(M[12356789]|U[12368]|S[123])\\ ?(pro)? Build");
  4063. parser[1] = "Pipo $1$2";
  4064. parser[2] = 0;
  4065. parser[3] = 0;
  4066. parser[4] = 0;
  4067. exports.device[317] = parser;
  4068. parser = Object.create(null);
  4069. parser[0] = new RegExp("; *(MOMO[^;/]+) Build");
  4070. parser[1] = "$1";
  4071. parser[2] = 0;
  4072. parser[3] = 0;
  4073. parser[4] = 0;
  4074. exports.device[318] = parser;
  4075. parser = Object.create(null);
  4076. parser[0] = new RegExp("; *(?:Polaroid[ _])?((?:MIDC\\d{3,}|PMID\\d{2,}|PTAB\\d{3,})[^;/]*)(\\/[^;/]*)? Build/");
  4077. parser[1] = "$1";
  4078. parser[2] = 0;
  4079. parser[3] = 0;
  4080. parser[4] = 0;
  4081. exports.device[319] = parser;
  4082. parser = Object.create(null);
  4083. parser[0] = new RegExp("; *(?:Polaroid )(Tablet) Build/");
  4084. parser[1] = "$1";
  4085. parser[2] = 0;
  4086. parser[3] = 0;
  4087. parser[4] = 0;
  4088. exports.device[320] = parser;
  4089. parser = Object.create(null);
  4090. parser[0] = new RegExp("; *(POMP)[ _\\-](.+?) *(?:Build|[;/\\)])");
  4091. parser[1] = "$1 $2";
  4092. parser[2] = 0;
  4093. parser[3] = 0;
  4094. parser[4] = 0;
  4095. exports.device[321] = parser;
  4096. parser = Object.create(null);
  4097. parser[0] = new RegExp("; *(TB07STA|TB10STA|TB07FTA|TB10FTA) Build/");
  4098. parser[1] = "$1";
  4099. parser[2] = 0;
  4100. parser[3] = 0;
  4101. parser[4] = 0;
  4102. exports.device[322] = parser;
  4103. parser = Object.create(null);
  4104. parser[0] = new RegExp("; *(?:Positivo )?((?:YPY|Ypy)[^;/]+) Build/");
  4105. parser[1] = "$1";
  4106. parser[2] = 0;
  4107. parser[3] = 0;
  4108. parser[4] = 0;
  4109. exports.device[323] = parser;
  4110. parser = Object.create(null);
  4111. parser[0] = new RegExp("; *(MOB-[^;/]+) Build/");
  4112. parser[1] = "$1";
  4113. parser[2] = 0;
  4114. parser[3] = 0;
  4115. parser[4] = 0;
  4116. exports.device[324] = parser;
  4117. parser = Object.create(null);
  4118. parser[0] = new RegExp("; *POV[ _\\-]([^;/]+) Build/");
  4119. parser[1] = "POV $1";
  4120. parser[2] = 0;
  4121. parser[3] = 0;
  4122. parser[4] = 0;
  4123. exports.device[325] = parser;
  4124. parser = Object.create(null);
  4125. parser[0] = new RegExp("; *((?:TAB-PLAYTAB|TAB-PROTAB|PROTAB|PlayTabPro|Mobii[ _\\-]|TAB-P)[^;/]*) Build/");
  4126. parser[1] = "POV $1";
  4127. parser[2] = 0;
  4128. parser[3] = 0;
  4129. parser[4] = 0;
  4130. exports.device[326] = parser;
  4131. parser = Object.create(null);
  4132. parser[0] = new RegExp("; *(?:Prestigio )?((?:PAP|PMP)\\d[^;/]+) Build/");
  4133. parser[1] = "Prestigio $1";
  4134. parser[2] = 0;
  4135. parser[3] = 0;
  4136. parser[4] = 0;
  4137. exports.device[327] = parser;
  4138. parser = Object.create(null);
  4139. parser[0] = new RegExp("; *(PLT[0-9]{4}.*) Build/");
  4140. parser[1] = "$1";
  4141. parser[2] = 0;
  4142. parser[3] = 0;
  4143. parser[4] = 0;
  4144. exports.device[328] = parser;
  4145. parser = Object.create(null);
  4146. parser[0] = new RegExp("; *(A2|A5|A8|A900)_?(Classic)? Build");
  4147. parser[1] = "$1 $2";
  4148. parser[2] = 0;
  4149. parser[3] = 0;
  4150. parser[4] = 0;
  4151. exports.device[329] = parser;
  4152. parser = Object.create(null);
  4153. parser[0] = new RegExp("; *(Q[Mm]obile)_([^_]+)_([^_]+) Build");
  4154. parser[1] = "Qmobile $2 $3";
  4155. parser[2] = 0;
  4156. parser[3] = 0;
  4157. parser[4] = 0;
  4158. exports.device[330] = parser;
  4159. parser = Object.create(null);
  4160. parser[0] = new RegExp("; *(Q\\-?[Mm]obile)[_ ](A[^;/]+) Build");
  4161. parser[1] = "Qmobile $2";
  4162. parser[2] = 0;
  4163. parser[3] = 0;
  4164. parser[4] = 0;
  4165. exports.device[331] = parser;
  4166. parser = Object.create(null);
  4167. parser[0] = new RegExp("; *(Q\\-Smart)[ _]([^;/]+) Build/");
  4168. parser[1] = "$1 $2";
  4169. parser[2] = 0;
  4170. parser[3] = 0;
  4171. parser[4] = 0;
  4172. exports.device[332] = parser;
  4173. parser = Object.create(null);
  4174. parser[0] = new RegExp("; *(Q\\-?[Mm]obile)[ _\\-](S[^;/]+) Build/");
  4175. parser[1] = "$1 $2";
  4176. parser[2] = 0;
  4177. parser[3] = 0;
  4178. parser[4] = 0;
  4179. exports.device[333] = parser;
  4180. parser = Object.create(null);
  4181. parser[0] = new RegExp("; *(TA1013) Build");
  4182. parser[1] = "$1";
  4183. parser[2] = 0;
  4184. parser[3] = 0;
  4185. parser[4] = 0;
  4186. exports.device[334] = parser;
  4187. parser = Object.create(null);
  4188. parser[0] = new RegExp("; (RCT\\w+) Build/");
  4189. parser[1] = "$1";
  4190. parser[2] = 0;
  4191. parser[3] = 0;
  4192. parser[4] = 0;
  4193. exports.device[335] = parser;
  4194. parser = Object.create(null);
  4195. parser[0] = new RegExp("; *(RK\\d+),? Build/");
  4196. parser[1] = "$1";
  4197. parser[2] = 0;
  4198. parser[3] = 0;
  4199. parser[4] = 0;
  4200. exports.device[336] = parser;
  4201. parser = Object.create(null);
  4202. parser[0] = new RegExp(" Build/(RK\\d+)");
  4203. parser[1] = "$1";
  4204. parser[2] = 0;
  4205. parser[3] = 0;
  4206. parser[4] = 0;
  4207. exports.device[337] = parser;
  4208. parser = Object.create(null);
  4209. parser[0] = new RegExp("; *(SAMSUNG |Samsung )?((?:Galaxy (?:Note II|S\\d)|GT-I9082|GT-I9205|GT-N7\\d{3}|SM-N9005)[^;/]*)\\/?[^;/]* Build/");
  4210. parser[1] = "Samsung $1$2";
  4211. parser[2] = 0;
  4212. parser[3] = 0;
  4213. parser[4] = 0;
  4214. exports.device[338] = parser;
  4215. parser = Object.create(null);
  4216. parser[0] = new RegExp("; *(Google )?(Nexus [Ss](?: 4G)?) Build/");
  4217. parser[1] = "Samsung $1$2";
  4218. parser[2] = 0;
  4219. parser[3] = 0;
  4220. parser[4] = 0;
  4221. exports.device[339] = parser;
  4222. parser = Object.create(null);
  4223. parser[0] = new RegExp("; *(SAMSUNG |Samsung )([^\\/]*)\\/[^ ]* Build/");
  4224. parser[1] = "Samsung $2";
  4225. parser[2] = 0;
  4226. parser[3] = 0;
  4227. parser[4] = 0;
  4228. exports.device[340] = parser;
  4229. parser = Object.create(null);
  4230. parser[0] = new RegExp("; *(Galaxy(?: Ace| Nexus| S ?II+|Nexus S| with MCR 1.2| Mini Plus 4G)?) Build/");
  4231. parser[1] = "Samsung $1";
  4232. parser[2] = 0;
  4233. parser[3] = 0;
  4234. parser[4] = 0;
  4235. exports.device[341] = parser;
  4236. parser = Object.create(null);
  4237. parser[0] = new RegExp("; *(SAMSUNG[ _\\-] *)+([^;/]+) Build");
  4238. parser[1] = "Samsung $2";
  4239. parser[2] = 0;
  4240. parser[3] = 0;
  4241. parser[4] = 0;
  4242. exports.device[342] = parser;
  4243. parser = Object.create(null);
  4244. parser[0] = new RegExp("; *(SAMSUNG-)?(GT\\-[BINPS]\\d{4}[^\\/]*)(\\/[^ ]*) Build");
  4245. parser[1] = "Samsung $1$2$3";
  4246. parser[2] = 0;
  4247. parser[3] = 0;
  4248. parser[4] = 0;
  4249. exports.device[343] = parser;
  4250. parser = Object.create(null);
  4251. parser[0] = new RegExp("(?:; *|^)((?:GT\\-[BIiNPS]\\d{4}|I9\\d{2}0[A-Za-z\\+]?\\b)[^;/\\)]*?)(?:Build|Linux|MIUI|[;/\\)])");
  4252. parser[1] = "Samsung $1";
  4253. parser[2] = 0;
  4254. parser[3] = 0;
  4255. parser[4] = 0;
  4256. exports.device[344] = parser;
  4257. parser = Object.create(null);
  4258. parser[0] = new RegExp("; (SAMSUNG-)([A-Za-z0-9\\-]+).* Build/");
  4259. parser[1] = "Samsung $1$2";
  4260. parser[2] = 0;
  4261. parser[3] = 0;
  4262. parser[4] = 0;
  4263. exports.device[345] = parser;
  4264. parser = Object.create(null);
  4265. parser[0] = new RegExp("; *((?:SCH|SGH|SHV|SHW|SPH|SC|SM)\\-[A-Za-z0-9 ]+)(/?[^ ]*)? Build");
  4266. parser[1] = "Samsung $1";
  4267. parser[2] = 0;
  4268. parser[3] = 0;
  4269. parser[4] = 0;
  4270. exports.device[346] = parser;
  4271. parser = Object.create(null);
  4272. parser[0] = new RegExp(" ((?:SCH)\\-[A-Za-z0-9 ]+)(/?[^ ]*)? Build");
  4273. parser[1] = "Samsung $1";
  4274. parser[2] = 0;
  4275. parser[3] = 0;
  4276. parser[4] = 0;
  4277. exports.device[347] = parser;
  4278. parser = Object.create(null);
  4279. parser[0] = new RegExp("; *(Behold ?(?:2|II)|YP\\-G[^;/]+|EK-GC100|SCL21|I9300) Build");
  4280. parser[1] = "Samsung $1";
  4281. parser[2] = 0;
  4282. parser[3] = 0;
  4283. parser[4] = 0;
  4284. exports.device[348] = parser;
  4285. parser = Object.create(null);
  4286. parser[0] = new RegExp("; *(SH\\-?\\d\\d[^;/]+|SBM\\d[^;/]+) Build");
  4287. parser[1] = "$1";
  4288. parser[2] = 0;
  4289. parser[3] = 0;
  4290. parser[4] = 0;
  4291. exports.device[349] = parser;
  4292. parser = Object.create(null);
  4293. parser[0] = new RegExp("; *(SHARP[ -])([^;/]+) Build");
  4294. parser[1] = "$1$2";
  4295. parser[2] = 0;
  4296. parser[3] = 0;
  4297. parser[4] = 0;
  4298. exports.device[350] = parser;
  4299. parser = Object.create(null);
  4300. parser[0] = new RegExp("; *(SPX[_\\-]\\d[^;/]*) Build/");
  4301. parser[1] = "$1";
  4302. parser[2] = 0;
  4303. parser[3] = 0;
  4304. parser[4] = 0;
  4305. exports.device[351] = parser;
  4306. parser = Object.create(null);
  4307. parser[0] = new RegExp("; *(SX7\\-PEARL\\.GmbH) Build/");
  4308. parser[1] = "$1";
  4309. parser[2] = 0;
  4310. parser[3] = 0;
  4311. parser[4] = 0;
  4312. exports.device[352] = parser;
  4313. parser = Object.create(null);
  4314. parser[0] = new RegExp("; *(SP[T]?\\-\\d{2}[^;/]*) Build/");
  4315. parser[1] = "$1";
  4316. parser[2] = 0;
  4317. parser[3] = 0;
  4318. parser[4] = 0;
  4319. exports.device[353] = parser;
  4320. parser = Object.create(null);
  4321. parser[0] = new RegExp("; *(SK\\-.*) Build/");
  4322. parser[1] = "$1";
  4323. parser[2] = 0;
  4324. parser[3] = 0;
  4325. parser[4] = 0;
  4326. exports.device[354] = parser;
  4327. parser = Object.create(null);
  4328. parser[0] = new RegExp("; *(?:SKYTEX|SX)-([^;/]+) Build");
  4329. parser[1] = "$1";
  4330. parser[2] = 0;
  4331. parser[3] = 0;
  4332. parser[4] = 0;
  4333. exports.device[355] = parser;
  4334. parser = Object.create(null);
  4335. parser[0] = new RegExp("; *(IMAGINE [^;/]+) Build");
  4336. parser[1] = "$1";
  4337. parser[2] = 0;
  4338. parser[3] = 0;
  4339. parser[4] = 0;
  4340. exports.device[356] = parser;
  4341. parser = Object.create(null);
  4342. parser[0] = new RegExp("; *(SmartQ) ?([^;/]+) Build/");
  4343. parser[1] = "$1 $2";
  4344. parser[2] = 0;
  4345. parser[3] = 0;
  4346. parser[4] = 0;
  4347. exports.device[357] = parser;
  4348. parser = Object.create(null);
  4349. parser[0] = new RegExp("; *(WF7C|WF10C|SBT[^;/]+) Build");
  4350. parser[1] = "$1";
  4351. parser[2] = 0;
  4352. parser[3] = 0;
  4353. parser[4] = 0;
  4354. exports.device[358] = parser;
  4355. parser = Object.create(null);
  4356. parser[0] = new RegExp("; *(SBM(?:003SH|005SH|006SH|007SH|102SH)) Build");
  4357. parser[1] = "$1";
  4358. parser[2] = 0;
  4359. parser[3] = 0;
  4360. parser[4] = 0;
  4361. exports.device[359] = parser;
  4362. parser = Object.create(null);
  4363. parser[0] = new RegExp("; *(003P|101P|101P11C|102P) Build");
  4364. parser[1] = "$1";
  4365. parser[2] = 0;
  4366. parser[3] = 0;
  4367. parser[4] = 0;
  4368. exports.device[360] = parser;
  4369. parser = Object.create(null);
  4370. parser[0] = new RegExp("; *(00\\dZ) Build/");
  4371. parser[1] = "$1";
  4372. parser[2] = 0;
  4373. parser[3] = 0;
  4374. parser[4] = 0;
  4375. exports.device[361] = parser;
  4376. parser = Object.create(null);
  4377. parser[0] = new RegExp("; HTC(X06HT) Build");
  4378. parser[1] = "$1";
  4379. parser[2] = 0;
  4380. parser[3] = 0;
  4381. parser[4] = 0;
  4382. exports.device[362] = parser;
  4383. parser = Object.create(null);
  4384. parser[0] = new RegExp("; *(001HT|X06HT) Build");
  4385. parser[1] = "$1";
  4386. parser[2] = 0;
  4387. parser[3] = 0;
  4388. parser[4] = 0;
  4389. exports.device[363] = parser;
  4390. parser = Object.create(null);
  4391. parser[0] = new RegExp("; *(201M) Build");
  4392. parser[1] = "$1";
  4393. parser[2] = 0;
  4394. parser[3] = 0;
  4395. parser[4] = 0;
  4396. exports.device[364] = parser;
  4397. parser = Object.create(null);
  4398. parser[0] = new RegExp("; *(ST\\d{4}.*)Build/ST");
  4399. parser[1] = "Trekstor $1";
  4400. parser[2] = 0;
  4401. parser[3] = 0;
  4402. parser[4] = 0;
  4403. exports.device[365] = parser;
  4404. parser = Object.create(null);
  4405. parser[0] = new RegExp("; *(ST\\d{4}.*) Build/");
  4406. parser[1] = "Trekstor $1";
  4407. parser[2] = 0;
  4408. parser[3] = 0;
  4409. parser[4] = 0;
  4410. exports.device[366] = parser;
  4411. parser = Object.create(null);
  4412. parser[0] = new RegExp("; *(Sony ?Ericsson ?)([^;/]+) Build");
  4413. parser[1] = "$1$2";
  4414. parser[2] = 0;
  4415. parser[3] = 0;
  4416. parser[4] = 0;
  4417. exports.device[367] = parser;
  4418. parser = Object.create(null);
  4419. parser[0] = new RegExp("; *((?:SK|ST|E|X|LT|MK|MT|WT)\\d{2}[a-z0-9]*(?:-o)?|R800i|U20i) Build");
  4420. parser[1] = "$1";
  4421. parser[2] = 0;
  4422. parser[3] = 0;
  4423. parser[4] = 0;
  4424. exports.device[368] = parser;
  4425. parser = Object.create(null);
  4426. parser[0] = new RegExp("; *(Xperia (?:A8|Arc|Acro|Active|Live with Walkman|Mini|Neo|Play|Pro|Ray|X\\d+)[^;/]*) Build");
  4427. parser[1] = "$1";
  4428. parser[2] = 0;
  4429. parser[3] = 0;
  4430. parser[4] = 0;
  4431. exports.device[369] = parser;
  4432. parser = Object.create(null);
  4433. parser[0] = new RegExp("; Sony (Tablet[^;/]+) Build");
  4434. parser[1] = "Sony $1";
  4435. parser[2] = 0;
  4436. parser[3] = 0;
  4437. parser[4] = 0;
  4438. exports.device[370] = parser;
  4439. parser = Object.create(null);
  4440. parser[0] = new RegExp("; Sony ([^;/]+) Build");
  4441. parser[1] = "Sony $1";
  4442. parser[2] = 0;
  4443. parser[3] = 0;
  4444. parser[4] = 0;
  4445. exports.device[371] = parser;
  4446. parser = Object.create(null);
  4447. parser[0] = new RegExp("; *(Sony)([A-Za-z0-9\\-]+) Build");
  4448. parser[1] = "$1 $2";
  4449. parser[2] = 0;
  4450. parser[3] = 0;
  4451. parser[4] = 0;
  4452. exports.device[372] = parser;
  4453. parser = Object.create(null);
  4454. parser[0] = new RegExp("; *(Xperia [^;/]+) Build");
  4455. parser[1] = "$1";
  4456. parser[2] = 0;
  4457. parser[3] = 0;
  4458. parser[4] = 0;
  4459. exports.device[373] = parser;
  4460. parser = Object.create(null);
  4461. parser[0] = new RegExp("; *(C(?:1[0-9]|2[0-9]|53|55|6[0-9])[0-9]{2}|D[25]\\d{3}|D6[56]\\d{2}) Build");
  4462. parser[1] = "$1";
  4463. parser[2] = 0;
  4464. parser[3] = 0;
  4465. parser[4] = 0;
  4466. exports.device[374] = parser;
  4467. parser = Object.create(null);
  4468. parser[0] = new RegExp("; *(SGP\\d{3}|SGPT\\d{2}) Build");
  4469. parser[1] = "$1";
  4470. parser[2] = 0;
  4471. parser[3] = 0;
  4472. parser[4] = 0;
  4473. exports.device[375] = parser;
  4474. parser = Object.create(null);
  4475. parser[0] = new RegExp("; *(NW-Z1000Series) Build");
  4476. parser[1] = "$1";
  4477. parser[2] = 0;
  4478. parser[3] = 0;
  4479. parser[4] = 0;
  4480. exports.device[376] = parser;
  4481. parser = Object.create(null);
  4482. parser[0] = new RegExp("PLAYSTATION 3");
  4483. parser[1] = "PlayStation 3";
  4484. parser[2] = 0;
  4485. parser[3] = 0;
  4486. parser[4] = 0;
  4487. exports.device[377] = parser;
  4488. parser = Object.create(null);
  4489. parser[0] = new RegExp("(PlayStation (?:Portable|Vita|\\d+))");
  4490. parser[1] = "$1";
  4491. parser[2] = 0;
  4492. parser[3] = 0;
  4493. parser[4] = 0;
  4494. exports.device[378] = parser;
  4495. parser = Object.create(null);
  4496. parser[0] = new RegExp("; *((?:CSL_Spice|Spice|SPICE|CSL)[ _\\-]?)?([Mm][Ii])([ _\\-])?(\\d{3}[^;/]*) Build/");
  4497. parser[1] = "$1$2$3$4";
  4498. parser[2] = 0;
  4499. parser[3] = 0;
  4500. parser[4] = 0;
  4501. exports.device[379] = parser;
  4502. parser = Object.create(null);
  4503. parser[0] = new RegExp("; *(Sprint )(.+?) *(?:Build|[;/])");
  4504. parser[1] = "$1$2";
  4505. parser[2] = 0;
  4506. parser[3] = 0;
  4507. parser[4] = 0;
  4508. exports.device[380] = parser;
  4509. parser = Object.create(null);
  4510. parser[0] = new RegExp("\\b(Sprint)[: ]([^;,/ ]+)");
  4511. parser[1] = "$1$2";
  4512. parser[2] = 0;
  4513. parser[3] = 0;
  4514. parser[4] = 0;
  4515. exports.device[381] = parser;
  4516. parser = Object.create(null);
  4517. parser[0] = new RegExp("; *(TAGI[ ]?)(MID) ?([^;/]+) Build/");
  4518. parser[1] = "$1$2$3";
  4519. parser[2] = 0;
  4520. parser[3] = 0;
  4521. parser[4] = 0;
  4522. exports.device[382] = parser;
  4523. parser = Object.create(null);
  4524. parser[0] = new RegExp("; *(Oyster500|Opal 800) Build");
  4525. parser[1] = "Tecmobile $1";
  4526. parser[2] = 0;
  4527. parser[3] = 0;
  4528. parser[4] = 0;
  4529. exports.device[383] = parser;
  4530. parser = Object.create(null);
  4531. parser[0] = new RegExp("; *(TECNO[ _])([^;/]+) Build/");
  4532. parser[1] = "$1$2";
  4533. parser[2] = 0;
  4534. parser[3] = 0;
  4535. parser[4] = 0;
  4536. exports.device[384] = parser;
  4537. parser = Object.create(null);
  4538. parser[0] = new RegExp("; *Android for (Telechips|Techvision) ([^ ]+) ");
  4539. parser[1] = "$1 $2";
  4540. parser[2] = 0;
  4541. parser[3] = 0;
  4542. parser[4] = 0;
  4543. exports.device[385] = parser;
  4544. parser = Object.create(null);
  4545. parser[0] = new RegExp("; *(T-Hub2) Build/");
  4546. parser[1] = "$1";
  4547. parser[2] = 0;
  4548. parser[3] = 0;
  4549. parser[4] = 0;
  4550. exports.device[386] = parser;
  4551. parser = Object.create(null);
  4552. parser[0] = new RegExp("; *(PAD) ?(100[12]) Build/");
  4553. parser[1] = "Terra $1$2";
  4554. parser[2] = 0;
  4555. parser[3] = 0;
  4556. parser[4] = 0;
  4557. exports.device[387] = parser;
  4558. parser = Object.create(null);
  4559. parser[0] = new RegExp("; *(T[BM]-\\d{3}[^;/]+) Build/");
  4560. parser[1] = "$1";
  4561. parser[2] = 0;
  4562. parser[3] = 0;
  4563. parser[4] = 0;
  4564. exports.device[388] = parser;
  4565. parser = Object.create(null);
  4566. parser[0] = new RegExp("; *(tolino [^;/]+) Build");
  4567. parser[1] = "$1";
  4568. parser[2] = 0;
  4569. parser[3] = 0;
  4570. parser[4] = 0;
  4571. exports.device[389] = parser;
  4572. parser = Object.create(null);
  4573. parser[0] = new RegExp("; *Build/.* (TOLINO_BROWSER)");
  4574. parser[1] = "$1";
  4575. parser[2] = 0;
  4576. parser[3] = 0;
  4577. parser[4] = 0;
  4578. exports.device[390] = parser;
  4579. parser = Object.create(null);
  4580. parser[0] = new RegExp("; *(?:CJ[ -])?(ThL|THL)[ -]([^;/]+) Build/");
  4581. parser[1] = "$1 $2";
  4582. parser[2] = 0;
  4583. parser[3] = 0;
  4584. parser[4] = 0;
  4585. exports.device[391] = parser;
  4586. parser = Object.create(null);
  4587. parser[0] = new RegExp("; *(T100|T200|T5|W100|W200|W8s) Build/");
  4588. parser[1] = "$1";
  4589. parser[2] = 0;
  4590. parser[3] = 0;
  4591. parser[4] = 0;
  4592. exports.device[392] = parser;
  4593. parser = Object.create(null);
  4594. parser[0] = new RegExp("; *(T-Mobile[ _]G2[ _]Touch) Build");
  4595. parser[1] = "$1";
  4596. parser[2] = 0;
  4597. parser[3] = 0;
  4598. parser[4] = 0;
  4599. exports.device[393] = parser;
  4600. parser = Object.create(null);
  4601. parser[0] = new RegExp("; *(T-Mobile[ _]G2) Build");
  4602. parser[1] = "$1";
  4603. parser[2] = 0;
  4604. parser[3] = 0;
  4605. parser[4] = 0;
  4606. exports.device[394] = parser;
  4607. parser = Object.create(null);
  4608. parser[0] = new RegExp("; *(T-Mobile myTouch Q) Build");
  4609. parser[1] = "$1";
  4610. parser[2] = 0;
  4611. parser[3] = 0;
  4612. parser[4] = 0;
  4613. exports.device[395] = parser;
  4614. parser = Object.create(null);
  4615. parser[0] = new RegExp("; *(T-Mobile myTouch) Build");
  4616. parser[1] = "$1";
  4617. parser[2] = 0;
  4618. parser[3] = 0;
  4619. parser[4] = 0;
  4620. exports.device[396] = parser;
  4621. parser = Object.create(null);
  4622. parser[0] = new RegExp("; *(T-Mobile_Espresso) Build");
  4623. parser[1] = "$1";
  4624. parser[2] = 0;
  4625. parser[3] = 0;
  4626. parser[4] = 0;
  4627. exports.device[397] = parser;
  4628. parser = Object.create(null);
  4629. parser[0] = new RegExp("; *(T-Mobile G1) Build");
  4630. parser[1] = "$1";
  4631. parser[2] = 0;
  4632. parser[3] = 0;
  4633. parser[4] = 0;
  4634. exports.device[398] = parser;
  4635. parser = Object.create(null);
  4636. parser[0] = new RegExp("\\b(T-Mobile ?)?(myTouch)[ _]?([34]G)[ _]?([^\\/]*) (?:Mozilla|Build)");
  4637. parser[1] = "$1$2 $3 $4";
  4638. parser[2] = 0;
  4639. parser[3] = 0;
  4640. parser[4] = 0;
  4641. exports.device[399] = parser;
  4642. parser = Object.create(null);
  4643. parser[0] = new RegExp("\\b(T-Mobile)_([^_]+)_(.*) Build");
  4644. parser[1] = "$1 $2 $3";
  4645. parser[2] = 0;
  4646. parser[3] = 0;
  4647. parser[4] = 0;
  4648. exports.device[400] = parser;
  4649. parser = Object.create(null);
  4650. parser[0] = new RegExp("\\b(T-Mobile)[_ ]?(.*?)Build");
  4651. parser[1] = "$1 $2";
  4652. parser[2] = 0;
  4653. parser[3] = 0;
  4654. parser[4] = 0;
  4655. exports.device[401] = parser;
  4656. parser = Object.create(null);
  4657. parser[0] = new RegExp(" (ATP[0-9]{4}) Build");
  4658. parser[1] = "$1";
  4659. parser[2] = 0;
  4660. parser[3] = 0;
  4661. parser[4] = 0;
  4662. exports.device[402] = parser;
  4663. parser = Object.create(null);
  4664. parser[0] = new RegExp(" *(TOOKY)[ _\\-]([^;/]+) ?(?:Build|;)");
  4665. parser[1] = "$1 $2";
  4666. parser[2] = 0;
  4667. parser[3] = 0;
  4668. parser[4] = 0;
  4669. exports.device[403] = parser;
  4670. parser = Object.create(null);
  4671. parser[0] = new RegExp("\\b(TOSHIBA_AC_AND_AZ|TOSHIBA_FOLIO_AND_A|FOLIO_AND_A)");
  4672. parser[1] = "$1";
  4673. parser[2] = 0;
  4674. parser[3] = 0;
  4675. parser[4] = 0;
  4676. exports.device[404] = parser;
  4677. parser = Object.create(null);
  4678. parser[0] = new RegExp("; *([Ff]olio ?100) Build/");
  4679. parser[1] = "$1";
  4680. parser[2] = 0;
  4681. parser[3] = 0;
  4682. parser[4] = 0;
  4683. exports.device[405] = parser;
  4684. parser = Object.create(null);
  4685. parser[0] = new RegExp("; *(AT[0-9]{2,3}(?:\\-A|LE\\-A|PE\\-A|SE|a)?|AT7-A|AT1S0|Hikari-iFrame/WDPF-[^;/]+|THRiVE|Thrive) Build/");
  4686. parser[1] = "Toshiba $1";
  4687. parser[2] = 0;
  4688. parser[3] = 0;
  4689. parser[4] = 0;
  4690. exports.device[406] = parser;
  4691. parser = Object.create(null);
  4692. parser[0] = new RegExp("; *(TM-MID\\d+[^;/]+|TOUCHMATE|MID-750) Build");
  4693. parser[1] = "$1";
  4694. parser[2] = 0;
  4695. parser[3] = 0;
  4696. parser[4] = 0;
  4697. exports.device[407] = parser;
  4698. parser = Object.create(null);
  4699. parser[0] = new RegExp("; *(TM-SM\\d+[^;/]+) Build");
  4700. parser[1] = "$1";
  4701. parser[2] = 0;
  4702. parser[3] = 0;
  4703. parser[4] = 0;
  4704. exports.device[408] = parser;
  4705. parser = Object.create(null);
  4706. parser[0] = new RegExp("; *(A10 [Bb]asic2?) Build/");
  4707. parser[1] = "$1";
  4708. parser[2] = 0;
  4709. parser[3] = 0;
  4710. parser[4] = 0;
  4711. exports.device[409] = parser;
  4712. parser = Object.create(null);
  4713. parser[0] = new RegExp("; *(TREQ[ _\\-])([^;/]+) Build");
  4714. parser[1] = "$1$2";
  4715. parser[2] = 0;
  4716. parser[3] = 0;
  4717. parser[4] = 0;
  4718. exports.device[410] = parser;
  4719. parser = Object.create(null);
  4720. parser[0] = new RegExp("; *(X-?5|X-?3) Build/");
  4721. parser[1] = "$1";
  4722. parser[2] = 0;
  4723. parser[3] = 0;
  4724. parser[4] = 0;
  4725. exports.device[411] = parser;
  4726. parser = Object.create(null);
  4727. parser[0] = new RegExp("; *(A502\\+?|A936|A603|X1|X2) Build/");
  4728. parser[1] = "$1";
  4729. parser[2] = 0;
  4730. parser[3] = 0;
  4731. parser[4] = 0;
  4732. exports.device[412] = parser;
  4733. parser = Object.create(null);
  4734. parser[0] = new RegExp("(TOUCH(?:TAB|PAD).+?) Build/");
  4735. parser[1] = "Versus $1";
  4736. parser[2] = 0;
  4737. parser[3] = 0;
  4738. parser[4] = 0;
  4739. exports.device[413] = parser;
  4740. parser = Object.create(null);
  4741. parser[0] = new RegExp("(VERTU) ([^;/]+) Build/");
  4742. parser[1] = "$1 $2";
  4743. parser[2] = 0;
  4744. parser[3] = 0;
  4745. parser[4] = 0;
  4746. exports.device[414] = parser;
  4747. parser = Object.create(null);
  4748. parser[0] = new RegExp("; *(Videocon)[ _\\-]([^;/]+) *(?:Build|;)");
  4749. parser[1] = "$1 $2";
  4750. parser[2] = 0;
  4751. parser[3] = 0;
  4752. parser[4] = 0;
  4753. exports.device[415] = parser;
  4754. parser = Object.create(null);
  4755. parser[0] = new RegExp(" (VT\\d{2}[A-Za-z]*) Build");
  4756. parser[1] = "$1";
  4757. parser[2] = 0;
  4758. parser[3] = 0;
  4759. parser[4] = 0;
  4760. exports.device[416] = parser;
  4761. parser = Object.create(null);
  4762. parser[0] = new RegExp("; *((?:ViewPad|ViewPhone|VSD)[^;/]+) Build/");
  4763. parser[1] = "$1";
  4764. parser[2] = 0;
  4765. parser[3] = 0;
  4766. parser[4] = 0;
  4767. exports.device[417] = parser;
  4768. parser = Object.create(null);
  4769. parser[0] = new RegExp("; *(ViewSonic-)([^;/]+) Build/");
  4770. parser[1] = "$1$2";
  4771. parser[2] = 0;
  4772. parser[3] = 0;
  4773. parser[4] = 0;
  4774. exports.device[418] = parser;
  4775. parser = Object.create(null);
  4776. parser[0] = new RegExp("; *(GTablet.*) Build/");
  4777. parser[1] = "$1";
  4778. parser[2] = 0;
  4779. parser[3] = 0;
  4780. parser[4] = 0;
  4781. exports.device[419] = parser;
  4782. parser = Object.create(null);
  4783. parser[0] = new RegExp("; *([Vv]ivo)[ _]([^;/]+) Build");
  4784. parser[1] = "$1 $2";
  4785. parser[2] = 0;
  4786. parser[3] = 0;
  4787. parser[4] = 0;
  4788. exports.device[420] = parser;
  4789. parser = Object.create(null);
  4790. parser[0] = new RegExp("(Vodafone) (.*) Build/");
  4791. parser[1] = "$1 $2";
  4792. parser[2] = 0;
  4793. parser[3] = 0;
  4794. parser[4] = 0;
  4795. exports.device[421] = parser;
  4796. parser = Object.create(null);
  4797. parser[0] = new RegExp("; *(?:Walton[ _\\-])?(Primo[ _\\-][^;/]+) Build");
  4798. parser[1] = "Walton $1";
  4799. parser[2] = 0;
  4800. parser[3] = 0;
  4801. parser[4] = 0;
  4802. exports.device[422] = parser;
  4803. parser = Object.create(null);
  4804. parser[0] = new RegExp("; *(?:WIKO[ \\-])?(CINK\\+?|BARRY|BLOOM|DARKFULL|DARKMOON|DARKNIGHT|DARKSIDE|FIZZ|HIGHWAY|IGGY|OZZY|RAINBOW|STAIRWAY|SUBLIM|WAX|CINK [^;/]+) Build/");
  4805. parser[1] = "Wiko $1";
  4806. parser[2] = 0;
  4807. parser[3] = 0;
  4808. parser[4] = 0;
  4809. exports.device[423] = parser;
  4810. parser = Object.create(null);
  4811. parser[0] = new RegExp("; *WellcoM-([^;/]+) Build");
  4812. parser[1] = "Wellcom $1";
  4813. parser[2] = 0;
  4814. parser[3] = 0;
  4815. parser[4] = 0;
  4816. exports.device[424] = parser;
  4817. parser = Object.create(null);
  4818. parser[0] = new RegExp("(?:(WeTab)-Browser|; (wetab) Build)");
  4819. parser[1] = "$1";
  4820. parser[2] = 0;
  4821. parser[3] = 0;
  4822. parser[4] = 0;
  4823. exports.device[425] = parser;
  4824. parser = Object.create(null);
  4825. parser[0] = new RegExp("; *(AT-AS[^;/]+) Build");
  4826. parser[1] = "Wolfgang $1";
  4827. parser[2] = 0;
  4828. parser[3] = 0;
  4829. parser[4] = 0;
  4830. exports.device[426] = parser;
  4831. parser = Object.create(null);
  4832. parser[0] = new RegExp("; *(?:Woxter|Wxt) ([^;/]+) Build");
  4833. parser[1] = "Woxter $1";
  4834. parser[2] = 0;
  4835. parser[3] = 0;
  4836. parser[4] = 0;
  4837. exports.device[427] = parser;
  4838. parser = Object.create(null);
  4839. parser[0] = new RegExp("; *(?:Xenta |Luna )?(TAB[234][0-9]{2}|TAB0[78]-\\d{3}|TAB0?9-\\d{3}|TAB1[03]-\\d{3}|SMP\\d{2}-\\d{3}) Build/");
  4840. parser[1] = "Yarvik $1";
  4841. parser[2] = 0;
  4842. parser[3] = 0;
  4843. parser[4] = 0;
  4844. exports.device[428] = parser;
  4845. parser = Object.create(null);
  4846. parser[0] = new RegExp("; *([A-Z]{2,4})(M\\d{3,}[A-Z]{2})([^;\\)\\/]*)(?: Build|[;\\)])");
  4847. parser[1] = "Yifang $1$2$3";
  4848. parser[2] = 0;
  4849. parser[3] = 0;
  4850. parser[4] = 0;
  4851. exports.device[429] = parser;
  4852. parser = Object.create(null);
  4853. parser[0] = new RegExp("; *((MI|HM|MI-ONE|Redmi)[ -](NOTE |Note )?[^;/]*) (Build|MIUI)/");
  4854. parser[1] = "XiaoMi $1";
  4855. parser[2] = 0;
  4856. parser[3] = 0;
  4857. parser[4] = 0;
  4858. exports.device[430] = parser;
  4859. parser = Object.create(null);
  4860. parser[0] = new RegExp("; *XOLO[ _]([^;/]*tab.*) Build");
  4861. parser[1] = "Xolo $1";
  4862. parser[2] = 0;
  4863. parser[3] = 0;
  4864. parser[4] = 0;
  4865. exports.device[431] = parser;
  4866. parser = Object.create(null);
  4867. parser[0] = new RegExp("; *XOLO[ _]([^;/]+) Build");
  4868. parser[1] = "Xolo $1";
  4869. parser[2] = 0;
  4870. parser[3] = 0;
  4871. parser[4] = 0;
  4872. exports.device[432] = parser;
  4873. parser = Object.create(null);
  4874. parser[0] = new RegExp("; *(q\\d0{2,3}[a-z]?) Build");
  4875. parser[1] = "Xolo $1";
  4876. parser[2] = 0;
  4877. parser[3] = 0;
  4878. parser[4] = 0;
  4879. exports.device[433] = parser;
  4880. parser = Object.create(null);
  4881. parser[0] = new RegExp("; *(PAD ?[79]\\d+[^;/]*|TelePAD\\d+[^;/]) Build");
  4882. parser[1] = "Xoro $1";
  4883. parser[2] = 0;
  4884. parser[3] = 0;
  4885. parser[4] = 0;
  4886. exports.device[434] = parser;
  4887. parser = Object.create(null);
  4888. parser[0] = new RegExp("; *(?:(?:ZOPO|Zopo)[ _]([^;/]+)|(ZP ?(?:\\d{2}[^;/]+|C2))|(C[2379])) Build");
  4889. parser[1] = "$1$2$3";
  4890. parser[2] = 0;
  4891. parser[3] = 0;
  4892. parser[4] = 0;
  4893. exports.device[435] = parser;
  4894. parser = Object.create(null);
  4895. parser[0] = new RegExp("; *(ZiiLABS) (Zii[^;/]*) Build");
  4896. parser[1] = "$1 $2";
  4897. parser[2] = 0;
  4898. parser[3] = 0;
  4899. parser[4] = 0;
  4900. exports.device[436] = parser;
  4901. parser = Object.create(null);
  4902. parser[0] = new RegExp("; *(Zii)_([^;/]*) Build");
  4903. parser[1] = "$1 $2";
  4904. parser[2] = 0;
  4905. parser[3] = 0;
  4906. parser[4] = 0;
  4907. exports.device[437] = parser;
  4908. parser = Object.create(null);
  4909. parser[0] = new RegExp("; *(ARIZONA|(?:ATLAS|Atlas) W|D930|Grand (?:[SX][^;]*|Era|Memo[^;]*)|JOE|(?:Kis|KIS)\\b[^;]*|Libra|Light [^;]*|N8[056][01]|N850L|N8000|N9[15]\\d{2}|N9810|NX501|Optik|(?:Vip )Racer[^;]*|RacerII|RACERII|San Francisco[^;]*|V9[AC]|V55|V881|Z[679][0-9]{2}[A-z]?) Build");
  4910. parser[1] = "$1";
  4911. parser[2] = 0;
  4912. parser[3] = 0;
  4913. parser[4] = 0;
  4914. exports.device[438] = parser;
  4915. parser = Object.create(null);
  4916. parser[0] = new RegExp("; *([A-Z]\\d+)_USA_[^;]* Build");
  4917. parser[1] = "$1";
  4918. parser[2] = 0;
  4919. parser[3] = 0;
  4920. parser[4] = 0;
  4921. exports.device[439] = parser;
  4922. parser = Object.create(null);
  4923. parser[0] = new RegExp("; *(SmartTab\\d+)[^;]* Build");
  4924. parser[1] = "$1";
  4925. parser[2] = 0;
  4926. parser[3] = 0;
  4927. parser[4] = 0;
  4928. exports.device[440] = parser;
  4929. parser = Object.create(null);
  4930. parser[0] = new RegExp("; *(?:Blade|BLADE|ZTE-BLADE)([^;/]*) Build");
  4931. parser[1] = "ZTE Blade$1";
  4932. parser[2] = 0;
  4933. parser[3] = 0;
  4934. parser[4] = 0;
  4935. exports.device[441] = parser;
  4936. parser = Object.create(null);
  4937. parser[0] = new RegExp("; *(?:Skate|SKATE|ZTE-SKATE)([^;/]*) Build");
  4938. parser[1] = "ZTE Skate$1";
  4939. parser[2] = 0;
  4940. parser[3] = 0;
  4941. parser[4] = 0;
  4942. exports.device[442] = parser;
  4943. parser = Object.create(null);
  4944. parser[0] = new RegExp("; *(Orange |Optimus )(Monte Carlo|San Francisco) Build");
  4945. parser[1] = "$1$2";
  4946. parser[2] = 0;
  4947. parser[3] = 0;
  4948. parser[4] = 0;
  4949. exports.device[443] = parser;
  4950. parser = Object.create(null);
  4951. parser[0] = new RegExp("; *(?:ZXY-ZTE_|ZTE\\-U |ZTE[\\- _]|ZTE-C[_ ])([^;/]+) Build");
  4952. parser[1] = "ZTE $1";
  4953. parser[2] = 0;
  4954. parser[3] = 0;
  4955. parser[4] = 0;
  4956. exports.device[444] = parser;
  4957. parser = Object.create(null);
  4958. parser[0] = new RegExp("; (BASE) (lutea|Lutea 2|Tab[^;]*) Build");
  4959. parser[1] = "$1 $2";
  4960. parser[2] = 0;
  4961. parser[3] = 0;
  4962. parser[4] = 0;
  4963. exports.device[445] = parser;
  4964. parser = Object.create(null);
  4965. parser[0] = new RegExp("; (Avea inTouch 2|soft stone|tmn smart a7|Movistar[ _]Link) Build");
  4966. parser[1] = "$1";
  4967. parser[2] = 0;
  4968. parser[3] = 0;
  4969. parser[4] = 0;
  4970. exports.device[446] = parser;
  4971. parser = Object.create(null);
  4972. parser[0] = new RegExp("; *(vp9plus)\\)");
  4973. parser[1] = "$1";
  4974. parser[2] = 0;
  4975. parser[3] = 0;
  4976. parser[4] = 0;
  4977. exports.device[447] = parser;
  4978. parser = Object.create(null);
  4979. parser[0] = new RegExp("; ?(Cloud[ _]Z5|z1000|Z99 2G|z99|z930|z999|z990|z909|Z919|z900) Build/");
  4980. parser[1] = "$1";
  4981. parser[2] = 0;
  4982. parser[3] = 0;
  4983. parser[4] = 0;
  4984. exports.device[448] = parser;
  4985. parser = Object.create(null);
  4986. parser[0] = new RegExp("; ?(KFOT|Kindle Fire) Build\\b");
  4987. parser[1] = "Kindle Fire";
  4988. parser[2] = 0;
  4989. parser[3] = 0;
  4990. parser[4] = 0;
  4991. exports.device[449] = parser;
  4992. parser = Object.create(null);
  4993. parser[0] = new RegExp("; ?(KFOTE|Amazon Kindle Fire2) Build\\b");
  4994. parser[1] = "Kindle Fire 2";
  4995. parser[2] = 0;
  4996. parser[3] = 0;
  4997. parser[4] = 0;
  4998. exports.device[450] = parser;
  4999. parser = Object.create(null);
  5000. parser[0] = new RegExp("; ?(KFTT) Build\\b");
  5001. parser[1] = "Kindle Fire HD";
  5002. parser[2] = 0;
  5003. parser[3] = 0;
  5004. parser[4] = 0;
  5005. exports.device[451] = parser;
  5006. parser = Object.create(null);
  5007. parser[0] = new RegExp("; ?(KFJWI) Build\\b");
  5008. parser[1] = "Kindle Fire HD 8.9\" WiFi";
  5009. parser[2] = 0;
  5010. parser[3] = 0;
  5011. parser[4] = 0;
  5012. exports.device[452] = parser;
  5013. parser = Object.create(null);
  5014. parser[0] = new RegExp("; ?(KFJWA) Build\\b");
  5015. parser[1] = "Kindle Fire HD 8.9\" 4G";
  5016. parser[2] = 0;
  5017. parser[3] = 0;
  5018. parser[4] = 0;
  5019. exports.device[453] = parser;
  5020. parser = Object.create(null);
  5021. parser[0] = new RegExp("; ?(KFSOWI) Build\\b");
  5022. parser[1] = "Kindle Fire HD 7\" WiFi";
  5023. parser[2] = 0;
  5024. parser[3] = 0;
  5025. parser[4] = 0;
  5026. exports.device[454] = parser;
  5027. parser = Object.create(null);
  5028. parser[0] = new RegExp("; ?(KFTHWI) Build\\b");
  5029. parser[1] = "Kindle Fire HDX 7\" WiFi";
  5030. parser[2] = 0;
  5031. parser[3] = 0;
  5032. parser[4] = 0;
  5033. exports.device[455] = parser;
  5034. parser = Object.create(null);
  5035. parser[0] = new RegExp("; ?(KFTHWA) Build\\b");
  5036. parser[1] = "Kindle Fire HDX 7\" 4G";
  5037. parser[2] = 0;
  5038. parser[3] = 0;
  5039. parser[4] = 0;
  5040. exports.device[456] = parser;
  5041. parser = Object.create(null);
  5042. parser[0] = new RegExp("; ?(KFAPWI) Build\\b");
  5043. parser[1] = "Kindle Fire HDX 8.9\" WiFi";
  5044. parser[2] = 0;
  5045. parser[3] = 0;
  5046. parser[4] = 0;
  5047. exports.device[457] = parser;
  5048. parser = Object.create(null);
  5049. parser[0] = new RegExp("; ?(KFAPWA) Build\\b");
  5050. parser[1] = "Kindle Fire HDX 8.9\" 4G";
  5051. parser[2] = 0;
  5052. parser[3] = 0;
  5053. parser[4] = 0;
  5054. exports.device[458] = parser;
  5055. parser = Object.create(null);
  5056. parser[0] = new RegExp("; ?Amazon ([^;/]+) Build\\b");
  5057. parser[1] = "$1";
  5058. parser[2] = 0;
  5059. parser[3] = 0;
  5060. parser[4] = 0;
  5061. exports.device[459] = parser;
  5062. parser = Object.create(null);
  5063. parser[0] = new RegExp("; ?(Kindle) Build\\b");
  5064. parser[1] = "Kindle";
  5065. parser[2] = 0;
  5066. parser[3] = 0;
  5067. parser[4] = 0;
  5068. exports.device[460] = parser;
  5069. parser = Object.create(null);
  5070. parser[0] = new RegExp("; ?(Silk)/(\\d+)\\.(\\d+)(?:\\.([0-9\\-]+))? Build\\b");
  5071. parser[1] = "Kindle Fire";
  5072. parser[2] = 0;
  5073. parser[3] = 0;
  5074. parser[4] = 0;
  5075. exports.device[461] = parser;
  5076. parser = Object.create(null);
  5077. parser[0] = new RegExp(" (Kindle)/(\\d+\\.\\d+)");
  5078. parser[1] = "Kindle";
  5079. parser[2] = 0;
  5080. parser[3] = 0;
  5081. parser[4] = 0;
  5082. exports.device[462] = parser;
  5083. parser = Object.create(null);
  5084. parser[0] = new RegExp(" (Silk|Kindle)/(\\d+)\\.");
  5085. parser[1] = "Kindle";
  5086. parser[2] = 0;
  5087. parser[3] = 0;
  5088. parser[4] = 0;
  5089. exports.device[463] = parser;
  5090. parser = Object.create(null);
  5091. parser[0] = new RegExp("(sprd)\\-([^/]+)/");
  5092. parser[1] = "$1 $2";
  5093. parser[2] = 0;
  5094. parser[3] = 0;
  5095. parser[4] = 0;
  5096. exports.device[464] = parser;
  5097. parser = Object.create(null);
  5098. parser[0] = new RegExp("; *(H\\d{2}00\\+?) Build");
  5099. parser[1] = "$1";
  5100. parser[2] = 0;
  5101. parser[3] = 0;
  5102. parser[4] = 0;
  5103. exports.device[465] = parser;
  5104. parser = Object.create(null);
  5105. parser[0] = new RegExp("; *(iphone|iPhone5) Build/");
  5106. parser[1] = "Xianghe $1";
  5107. parser[2] = 0;
  5108. parser[3] = 0;
  5109. parser[4] = 0;
  5110. exports.device[466] = parser;
  5111. parser = Object.create(null);
  5112. parser[0] = new RegExp("; *(e\\d{4}[a-z]?_?v\\d+|v89_[^;/]+)[^;/]+ Build/");
  5113. parser[1] = "Xianghe $1";
  5114. parser[2] = 0;
  5115. parser[3] = 0;
  5116. parser[4] = 0;
  5117. exports.device[467] = parser;
  5118. parser = Object.create(null);
  5119. parser[0] = new RegExp("\\bUSCC[_\\-]?([^ ;/\\)]+)");
  5120. parser[1] = "$1";
  5121. parser[2] = 0;
  5122. parser[3] = 0;
  5123. parser[4] = 0;
  5124. exports.device[468] = parser;
  5125. parser = Object.create(null);
  5126. parser[0] = new RegExp("Windows Phone [^;]+; .*?IEMobile/[^;\\)]+[;\\)] ?(?:ARM; ?Touch; ?|Touch; ?)?(?:ALCATEL)[^;]*; *([^;,\\)]+)");
  5127. parser[1] = "Alcatel $1";
  5128. parser[2] = 0;
  5129. parser[3] = 0;
  5130. parser[4] = 0;
  5131. exports.device[469] = parser;
  5132. parser = Object.create(null);
  5133. parser[0] = new RegExp("Windows Phone [^;]+; .*?IEMobile/[^;\\)]+[;\\)] ?(?:ARM; ?Touch; ?|Touch; ?|WpsLondonTest; ?)?(?:ASUS|Asus)[^;]*; *([^;,\\)]+)");
  5134. parser[1] = "Asus $1";
  5135. parser[2] = 0;
  5136. parser[3] = 0;
  5137. parser[4] = 0;
  5138. exports.device[470] = parser;
  5139. parser = Object.create(null);
  5140. parser[0] = new RegExp("Windows Phone [^;]+; .*?IEMobile/[^;\\)]+[;\\)] ?(?:ARM; ?Touch; ?|Touch; ?)?(?:DELL|Dell)[^;]*; *([^;,\\)]+)");
  5141. parser[1] = "Dell $1";
  5142. parser[2] = 0;
  5143. parser[3] = 0;
  5144. parser[4] = 0;
  5145. exports.device[471] = parser;
  5146. parser = Object.create(null);
  5147. parser[0] = new RegExp("Windows Phone [^;]+; .*?IEMobile/[^;\\)]+[;\\)] ?(?:ARM; ?Touch; ?|Touch; ?|WpsLondonTest; ?)?(?:HTC|Htc|HTC_blocked[^;]*)[^;]*; *(?:HTC)?([^;,\\)]+)");
  5148. parser[1] = "HTC $1";
  5149. parser[2] = 0;
  5150. parser[3] = 0;
  5151. parser[4] = 0;
  5152. exports.device[472] = parser;
  5153. parser = Object.create(null);
  5154. parser[0] = new RegExp("Windows Phone [^;]+; .*?IEMobile/[^;\\)]+[;\\)] ?(?:ARM; ?Touch; ?|Touch; ?)?(?:HUAWEI)[^;]*; *(?:HUAWEI )?([^;,\\)]+)");
  5155. parser[1] = "Huawei $1";
  5156. parser[2] = 0;
  5157. parser[3] = 0;
  5158. parser[4] = 0;
  5159. exports.device[473] = parser;
  5160. parser = Object.create(null);
  5161. parser[0] = new RegExp("Windows Phone [^;]+; .*?IEMobile/[^;\\)]+[;\\)] ?(?:ARM; ?Touch; ?|Touch; ?)?(?:LG|Lg)[^;]*; *(?:LG[ \\-])?([^;,\\)]+)");
  5162. parser[1] = "LG $1";
  5163. parser[2] = 0;
  5164. parser[3] = 0;
  5165. parser[4] = 0;
  5166. exports.device[474] = parser;
  5167. parser = Object.create(null);
  5168. parser[0] = new RegExp("Windows Phone [^;]+; .*?IEMobile/[^;\\)]+[;\\)] ?(?:ARM; ?Touch; ?|Touch; ?)?(?:rv:11; )?(?:NOKIA|Nokia)[^;]*; *(?:NOKIA ?|Nokia ?|LUMIA ?|[Ll]umia ?)*(\\d{3,}[^;\\)]*)");
  5169. parser[1] = "Lumia $1";
  5170. parser[2] = 0;
  5171. parser[3] = 0;
  5172. parser[4] = 0;
  5173. exports.device[475] = parser;
  5174. parser = Object.create(null);
  5175. parser[0] = new RegExp("Windows Phone [^;]+; .*?IEMobile/[^;\\)]+[;\\)] ?(?:ARM; ?Touch; ?|Touch; ?)?(?:NOKIA|Nokia)[^;]*; *(RM-\\d{3,})");
  5176. parser[1] = "Nokia $1";
  5177. parser[2] = 0;
  5178. parser[3] = 0;
  5179. parser[4] = 0;
  5180. exports.device[476] = parser;
  5181. parser = Object.create(null);
  5182. parser[0] = new RegExp("(?:Windows Phone [^;]+; .*?IEMobile/[^;\\)]+[;\\)]|WPDesktop;) ?(?:ARM; ?Touch; ?|Touch; ?)?(?:NOKIA|Nokia)[^;]*; *(?:NOKIA ?|Nokia ?|LUMIA ?|[Ll]umia ?)*([^;\\)]+)");
  5183. parser[1] = "Nokia $1";
  5184. parser[2] = 0;
  5185. parser[3] = 0;
  5186. parser[4] = 0;
  5187. exports.device[477] = parser;
  5188. parser = Object.create(null);
  5189. parser[0] = new RegExp("Windows Phone [^;]+; .*?IEMobile/[^;\\)]+[;\\)] ?(?:ARM; ?Touch; ?|Touch; ?)?(?:Microsoft(?: Corporation)?)[^;]*; *([^;,\\)]+)");
  5190. parser[1] = "Microsoft $1";
  5191. parser[2] = 0;
  5192. parser[3] = 0;
  5193. parser[4] = 0;
  5194. exports.device[478] = parser;
  5195. parser = Object.create(null);
  5196. parser[0] = new RegExp("Windows Phone [^;]+; .*?IEMobile/[^;\\)]+[;\\)] ?(?:ARM; ?Touch; ?|Touch; ?|WpsLondonTest; ?)?(?:SAMSUNG)[^;]*; *(?:SAMSUNG )?([^;,\\.\\)]+)");
  5197. parser[1] = "Samsung $1";
  5198. parser[2] = 0;
  5199. parser[3] = 0;
  5200. parser[4] = 0;
  5201. exports.device[479] = parser;
  5202. parser = Object.create(null);
  5203. parser[0] = new RegExp("Windows Phone [^;]+; .*?IEMobile/[^;\\)]+[;\\)] ?(?:ARM; ?Touch; ?|Touch; ?|WpsLondonTest; ?)?(?:TOSHIBA|FujitsuToshibaMobileCommun)[^;]*; *([^;,\\)]+)");
  5204. parser[1] = "Toshiba $1";
  5205. parser[2] = 0;
  5206. parser[3] = 0;
  5207. parser[4] = 0;
  5208. exports.device[480] = parser;
  5209. parser = Object.create(null);
  5210. parser[0] = new RegExp("Windows Phone [^;]+; .*?IEMobile/[^;\\)]+[;\\)] ?(?:ARM; ?Touch; ?|Touch; ?|WpsLondonTest; ?)?([^;]+); *([^;,\\)]+)");
  5211. parser[1] = "$1 $2";
  5212. parser[2] = 0;
  5213. parser[3] = 0;
  5214. parser[4] = 0;
  5215. exports.device[481] = parser;
  5216. parser = Object.create(null);
  5217. parser[0] = new RegExp("(?:^|; )SAMSUNG\\-([A-Za-z0-9\\-]+).* Bada/");
  5218. parser[1] = "Samsung $1";
  5219. parser[2] = 0;
  5220. parser[3] = 0;
  5221. parser[4] = 0;
  5222. exports.device[482] = parser;
  5223. parser = Object.create(null);
  5224. parser[0] = new RegExp("\\(Mobile; ALCATEL ?(One|ONE) ?(Touch|TOUCH) ?([^;/]+)(?:/[^;]+)?; rv:[^\\)]+\\) Gecko/[^\\/]+ Firefox/");
  5225. parser[1] = "Alcatel $1 $2 $3";
  5226. parser[2] = 0;
  5227. parser[3] = 0;
  5228. parser[4] = 0;
  5229. exports.device[483] = parser;
  5230. parser = Object.create(null);
  5231. parser[0] = new RegExp("\\(Mobile; (?:ZTE([^;]+)|(OpenC)); rv:[^\\)]+\\) Gecko/[^\\/]+ Firefox/");
  5232. parser[1] = "ZTE $1$2";
  5233. parser[2] = 0;
  5234. parser[3] = 0;
  5235. parser[4] = 0;
  5236. exports.device[484] = parser;
  5237. parser = Object.create(null);
  5238. parser[0] = new RegExp("Nokia(N[0-9]+)([A-z_\\-][A-z0-9_\\-]*)");
  5239. parser[1] = "Nokia $1";
  5240. parser[2] = 0;
  5241. parser[3] = 0;
  5242. parser[4] = 0;
  5243. exports.device[485] = parser;
  5244. parser = Object.create(null);
  5245. parser[0] = new RegExp("(?:NOKIA|Nokia)(?:\\-| *)(?:([A-Za-z0-9]+)\\-[0-9a-f]{32}|([A-Za-z0-9\\-]+)(?:UCBrowser)|([A-Za-z0-9\\-]+))");
  5246. parser[1] = "Nokia $1$2$3";
  5247. parser[2] = 0;
  5248. parser[3] = 0;
  5249. parser[4] = 0;
  5250. exports.device[486] = parser;
  5251. parser = Object.create(null);
  5252. parser[0] = new RegExp("Lumia ([A-Za-z0-9\\-]+)");
  5253. parser[1] = "Lumia $1";
  5254. parser[2] = 0;
  5255. parser[3] = 0;
  5256. parser[4] = 0;
  5257. exports.device[487] = parser;
  5258. parser = Object.create(null);
  5259. parser[0] = new RegExp("\\(Symbian; U; S60 V5; [A-z]{2}\\-[A-z]{2}; (SonyEricsson|Samsung|Nokia|LG)([^;/]+)\\)");
  5260. parser[1] = "$1 $2";
  5261. parser[2] = 0;
  5262. parser[3] = 0;
  5263. parser[4] = 0;
  5264. exports.device[488] = parser;
  5265. parser = Object.create(null);
  5266. parser[0] = new RegExp("\\(Symbian(?:/3)?; U; ([^;]+);");
  5267. parser[1] = "Nokia $1";
  5268. parser[2] = 0;
  5269. parser[3] = 0;
  5270. parser[4] = 0;
  5271. exports.device[489] = parser;
  5272. parser = Object.create(null);
  5273. parser[0] = new RegExp("BB10; ([A-Za-z0-9\\- ]+)\\)");
  5274. parser[1] = "BlackBerry $1";
  5275. parser[2] = 0;
  5276. parser[3] = 0;
  5277. parser[4] = 0;
  5278. exports.device[490] = parser;
  5279. parser = Object.create(null);
  5280. parser[0] = new RegExp("Play[Bb]ook.+RIM Tablet OS");
  5281. parser[1] = "BlackBerry Playbook";
  5282. parser[2] = 0;
  5283. parser[3] = 0;
  5284. parser[4] = 0;
  5285. exports.device[491] = parser;
  5286. parser = Object.create(null);
  5287. parser[0] = new RegExp("Black[Bb]erry ([0-9]+);");
  5288. parser[1] = "BlackBerry $1";
  5289. parser[2] = 0;
  5290. parser[3] = 0;
  5291. parser[4] = 0;
  5292. exports.device[492] = parser;
  5293. parser = Object.create(null);
  5294. parser[0] = new RegExp("Black[Bb]erry([0-9]+)");
  5295. parser[1] = "BlackBerry $1";
  5296. parser[2] = 0;
  5297. parser[3] = 0;
  5298. parser[4] = 0;
  5299. exports.device[493] = parser;
  5300. parser = Object.create(null);
  5301. parser[0] = new RegExp("Black[Bb]erry;");
  5302. parser[1] = "BlackBerry";
  5303. parser[2] = 0;
  5304. parser[3] = 0;
  5305. parser[4] = 0;
  5306. exports.device[494] = parser;
  5307. parser = Object.create(null);
  5308. parser[0] = new RegExp("(Pre|Pixi)/\\d+\\.\\d+");
  5309. parser[1] = "Palm $1";
  5310. parser[2] = 0;
  5311. parser[3] = 0;
  5312. parser[4] = 0;
  5313. exports.device[495] = parser;
  5314. parser = Object.create(null);
  5315. parser[0] = new RegExp("Palm([0-9]+)");
  5316. parser[1] = "Palm $1";
  5317. parser[2] = 0;
  5318. parser[3] = 0;
  5319. parser[4] = 0;
  5320. exports.device[496] = parser;
  5321. parser = Object.create(null);
  5322. parser[0] = new RegExp("Treo([A-Za-z0-9]+)");
  5323. parser[1] = "Palm Treo $1";
  5324. parser[2] = 0;
  5325. parser[3] = 0;
  5326. parser[4] = 0;
  5327. exports.device[497] = parser;
  5328. parser = Object.create(null);
  5329. parser[0] = new RegExp("webOS.*(P160U(?:NA)?)/(\\d+).(\\d+)");
  5330. parser[1] = "HP Veer";
  5331. parser[2] = 0;
  5332. parser[3] = 0;
  5333. parser[4] = 0;
  5334. exports.device[498] = parser;
  5335. parser = Object.create(null);
  5336. parser[0] = new RegExp("(Touch[Pp]ad)/\\d+\\.\\d+");
  5337. parser[1] = "HP TouchPad";
  5338. parser[2] = 0;
  5339. parser[3] = 0;
  5340. parser[4] = 0;
  5341. exports.device[499] = parser;
  5342. parser = Object.create(null);
  5343. parser[0] = new RegExp("HPiPAQ([A-Za-z0-9]+)/\\d+.\\d+");
  5344. parser[1] = "HP iPAQ $1";
  5345. parser[2] = 0;
  5346. parser[3] = 0;
  5347. parser[4] = 0;
  5348. exports.device[500] = parser;
  5349. parser = Object.create(null);
  5350. parser[0] = new RegExp("PDA; (PalmOS)/sony/model ([a-z]+)/Revision");
  5351. parser[1] = "$1";
  5352. parser[2] = 0;
  5353. parser[3] = 0;
  5354. parser[4] = 0;
  5355. exports.device[501] = parser;
  5356. parser = Object.create(null);
  5357. parser[0] = new RegExp("(Apple\\s?TV)");
  5358. parser[1] = "AppleTV";
  5359. parser[2] = 0;
  5360. parser[3] = 0;
  5361. parser[4] = 0;
  5362. exports.device[502] = parser;
  5363. parser = Object.create(null);
  5364. parser[0] = new RegExp("(QtCarBrowser)");
  5365. parser[1] = "Tesla Model S";
  5366. parser[2] = 0;
  5367. parser[3] = 0;
  5368. parser[4] = 0;
  5369. exports.device[503] = parser;
  5370. parser = Object.create(null);
  5371. parser[0] = new RegExp("(iPhone|iPad|iPod)(\\d+,\\d+)");
  5372. parser[1] = "$1";
  5373. parser[2] = 0;
  5374. parser[3] = 0;
  5375. parser[4] = 0;
  5376. exports.device[504] = parser;
  5377. parser = Object.create(null);
  5378. parser[0] = new RegExp("(iPad)(?:;| Simulator;)");
  5379. parser[1] = "$1";
  5380. parser[2] = 0;
  5381. parser[3] = 0;
  5382. parser[4] = 0;
  5383. exports.device[505] = parser;
  5384. parser = Object.create(null);
  5385. parser[0] = new RegExp("(iPod)(?:;| touch;| Simulator;)");
  5386. parser[1] = "$1";
  5387. parser[2] = 0;
  5388. parser[3] = 0;
  5389. parser[4] = 0;
  5390. exports.device[506] = parser;
  5391. parser = Object.create(null);
  5392. parser[0] = new RegExp("(iPhone)(?:;| Simulator;)");
  5393. parser[1] = "$1";
  5394. parser[2] = 0;
  5395. parser[3] = 0;
  5396. parser[4] = 0;
  5397. exports.device[507] = parser;
  5398. parser = Object.create(null);
  5399. parser[0] = new RegExp("iPhone");
  5400. parser[1] = "iPhone";
  5401. parser[2] = 0;
  5402. parser[3] = 0;
  5403. parser[4] = 0;
  5404. exports.device[508] = parser;
  5405. parser = Object.create(null);
  5406. parser[0] = new RegExp("CFNetwork/.* Darwin/\\d.*\\(((?:Mac|iMac|PowerMac|PowerBook)[^\\d]*)(\\d+)(?:,|%2C)(\\d+)");
  5407. parser[1] = "$1$2,$3";
  5408. parser[2] = 0;
  5409. parser[3] = 0;
  5410. parser[4] = 0;
  5411. exports.device[509] = parser;
  5412. parser = Object.create(null);
  5413. parser[0] = new RegExp("CFNetwork/.* Darwin/\\d+\\.\\d+\\.\\d+ \\(x86_64\\)");
  5414. parser[1] = "Mac";
  5415. parser[2] = 0;
  5416. parser[3] = 0;
  5417. parser[4] = 0;
  5418. exports.device[510] = parser;
  5419. parser = Object.create(null);
  5420. parser[0] = new RegExp("CFNetwork/.* Darwin/\\d");
  5421. parser[1] = "iOS-Device";
  5422. parser[2] = 0;
  5423. parser[3] = 0;
  5424. parser[4] = 0;
  5425. exports.device[511] = parser;
  5426. parser = Object.create(null);
  5427. parser[0] = new RegExp("acer_([A-Za-z0-9]+)_");
  5428. parser[1] = "Acer $1";
  5429. parser[2] = 0;
  5430. parser[3] = 0;
  5431. parser[4] = 0;
  5432. exports.device[512] = parser;
  5433. parser = Object.create(null);
  5434. parser[0] = new RegExp("(?:ALCATEL|Alcatel)-([A-Za-z0-9\\-]+)");
  5435. parser[1] = "Alcatel $1";
  5436. parser[2] = 0;
  5437. parser[3] = 0;
  5438. parser[4] = 0;
  5439. exports.device[513] = parser;
  5440. parser = Object.create(null);
  5441. parser[0] = new RegExp("(?:Amoi|AMOI)\\-([A-Za-z0-9]+)");
  5442. parser[1] = "Amoi $1";
  5443. parser[2] = 0;
  5444. parser[3] = 0;
  5445. parser[4] = 0;
  5446. exports.device[514] = parser;
  5447. parser = Object.create(null);
  5448. parser[0] = new RegExp("(?:; |\\/|^)((?:Transformer (?:Pad|Prime) |Transformer |PadFone[ _]?)[A-Za-z0-9]*)");
  5449. parser[1] = "Asus $1";
  5450. parser[2] = 0;
  5451. parser[3] = 0;
  5452. parser[4] = 0;
  5453. exports.device[515] = parser;
  5454. parser = Object.create(null);
  5455. parser[0] = new RegExp("(?:asus.*?ASUS|Asus|ASUS|asus)[\\- ;]*((?:Transformer (?:Pad|Prime) |Transformer |Padfone |Nexus[ _])?[A-Za-z0-9]+)");
  5456. parser[1] = "Asus $1";
  5457. parser[2] = 0;
  5458. parser[3] = 0;
  5459. parser[4] = 0;
  5460. exports.device[516] = parser;
  5461. parser = Object.create(null);
  5462. parser[0] = new RegExp("\\bBIRD[ \\-\\.]([A-Za-z0-9]+)");
  5463. parser[1] = "Bird $1";
  5464. parser[2] = 0;
  5465. parser[3] = 0;
  5466. parser[4] = 0;
  5467. exports.device[517] = parser;
  5468. parser = Object.create(null);
  5469. parser[0] = new RegExp("\\bDell ([A-Za-z0-9]+)");
  5470. parser[1] = "Dell $1";
  5471. parser[2] = 0;
  5472. parser[3] = 0;
  5473. parser[4] = 0;
  5474. exports.device[518] = parser;
  5475. parser = Object.create(null);
  5476. parser[0] = new RegExp("DoCoMo/2\\.0 ([A-Za-z0-9]+)");
  5477. parser[1] = "DoCoMo $1";
  5478. parser[2] = 0;
  5479. parser[3] = 0;
  5480. parser[4] = 0;
  5481. exports.device[519] = parser;
  5482. parser = Object.create(null);
  5483. parser[0] = new RegExp("([A-Za-z0-9]+)_W;FOMA");
  5484. parser[1] = "DoCoMo $1";
  5485. parser[2] = 0;
  5486. parser[3] = 0;
  5487. parser[4] = 0;
  5488. exports.device[520] = parser;
  5489. parser = Object.create(null);
  5490. parser[0] = new RegExp("([A-Za-z0-9]+);FOMA");
  5491. parser[1] = "DoCoMo $1";
  5492. parser[2] = 0;
  5493. parser[3] = 0;
  5494. parser[4] = 0;
  5495. exports.device[521] = parser;
  5496. parser = Object.create(null);
  5497. parser[0] = new RegExp("\\b(?:HTC/|HTC/[a-z0-9]+/)?HTC[ _\\-;]? *(.*?)(?:-?Mozilla|fingerPrint|[;/\\(\\)]|$)");
  5498. parser[1] = "HTC $1";
  5499. parser[2] = 0;
  5500. parser[3] = 0;
  5501. parser[4] = 0;
  5502. exports.device[522] = parser;
  5503. parser = Object.create(null);
  5504. parser[0] = new RegExp("Huawei([A-Za-z0-9]+)");
  5505. parser[1] = "Huawei $1";
  5506. parser[2] = 0;
  5507. parser[3] = 0;
  5508. parser[4] = 0;
  5509. exports.device[523] = parser;
  5510. parser = Object.create(null);
  5511. parser[0] = new RegExp("HUAWEI-([A-Za-z0-9]+)");
  5512. parser[1] = "Huawei $1";
  5513. parser[2] = 0;
  5514. parser[3] = 0;
  5515. parser[4] = 0;
  5516. exports.device[524] = parser;
  5517. parser = Object.create(null);
  5518. parser[0] = new RegExp("vodafone([A-Za-z0-9]+)");
  5519. parser[1] = "Huawei Vodafone $1";
  5520. parser[2] = 0;
  5521. parser[3] = 0;
  5522. parser[4] = 0;
  5523. exports.device[525] = parser;
  5524. parser = Object.create(null);
  5525. parser[0] = new RegExp("i\\-mate ([A-Za-z0-9]+)");
  5526. parser[1] = "i-mate $1";
  5527. parser[2] = 0;
  5528. parser[3] = 0;
  5529. parser[4] = 0;
  5530. exports.device[526] = parser;
  5531. parser = Object.create(null);
  5532. parser[0] = new RegExp("Kyocera\\-([A-Za-z0-9]+)");
  5533. parser[1] = "Kyocera $1";
  5534. parser[2] = 0;
  5535. parser[3] = 0;
  5536. parser[4] = 0;
  5537. exports.device[527] = parser;
  5538. parser = Object.create(null);
  5539. parser[0] = new RegExp("KWC\\-([A-Za-z0-9]+)");
  5540. parser[1] = "Kyocera $1";
  5541. parser[2] = 0;
  5542. parser[3] = 0;
  5543. parser[4] = 0;
  5544. exports.device[528] = parser;
  5545. parser = Object.create(null);
  5546. parser[0] = new RegExp("Lenovo[_\\-]([A-Za-z0-9]+)");
  5547. parser[1] = "Lenovo $1";
  5548. parser[2] = 0;
  5549. parser[3] = 0;
  5550. parser[4] = 0;
  5551. exports.device[529] = parser;
  5552. parser = Object.create(null);
  5553. parser[0] = new RegExp("(HbbTV)/[0-9]+\\.[0-9]+\\.[0-9]+ \\([^;]*; *(LG)E *; *([^;]*) *;[^;]*;[^;]*;\\)");
  5554. parser[1] = "$1";
  5555. parser[2] = 0;
  5556. parser[3] = 0;
  5557. parser[4] = 0;
  5558. exports.device[530] = parser;
  5559. parser = Object.create(null);
  5560. parser[0] = new RegExp("(HbbTV)/1\\.1\\.1.*CE-HTML/1\\.\\d;(Vendor/)*(THOM[^;]*?)[;\\s](?:.*SW-Version/.*)*(LF[^;]+);?");
  5561. parser[1] = "$1";
  5562. parser[2] = 0;
  5563. parser[3] = 0;
  5564. parser[4] = 0;
  5565. exports.device[531] = parser;
  5566. parser = Object.create(null);
  5567. parser[0] = new RegExp("(HbbTV)(?:/1\\.1\\.1)?(?: ?\\(;;;;;\\))?; *CE-HTML(?:/1\\.\\d)?; *([^ ]+) ([^;]+);");
  5568. parser[1] = "$1";
  5569. parser[2] = 0;
  5570. parser[3] = 0;
  5571. parser[4] = 0;
  5572. exports.device[532] = parser;
  5573. parser = Object.create(null);
  5574. parser[0] = new RegExp("(HbbTV)/1\\.1\\.1 \\(;;;;;\\) Maple_2011");
  5575. parser[1] = "$1";
  5576. parser[2] = 0;
  5577. parser[3] = 0;
  5578. parser[4] = 0;
  5579. exports.device[533] = parser;
  5580. parser = Object.create(null);
  5581. parser[0] = new RegExp("(HbbTV)/[0-9]+\\.[0-9]+\\.[0-9]+ \\([^;]*; *(?:CUS:([^;]*)|([^;]+)) *; *([^;]*) *;.*;");
  5582. parser[1] = "$1";
  5583. parser[2] = 0;
  5584. parser[3] = 0;
  5585. parser[4] = 0;
  5586. exports.device[534] = parser;
  5587. parser = Object.create(null);
  5588. parser[0] = new RegExp("(HbbTV)/[0-9]+\\.[0-9]+\\.[0-9]+");
  5589. parser[1] = "$1";
  5590. parser[2] = 0;
  5591. parser[3] = 0;
  5592. parser[4] = 0;
  5593. exports.device[535] = parser;
  5594. parser = Object.create(null);
  5595. parser[0] = new RegExp("LGE; (?:Media\\/)?([^;]*);[^;]*;[^;]*;?\\); \"?LG NetCast(\\.TV|\\.Media|)-\\d+");
  5596. parser[1] = "NetCast$2";
  5597. parser[2] = 0;
  5598. parser[3] = 0;
  5599. parser[4] = 0;
  5600. exports.device[536] = parser;
  5601. parser = Object.create(null);
  5602. parser[0] = new RegExp("InettvBrowser/[0-9]+\\.[0-9A-Z]+ \\([^;]*;(Sony)([^;]*);[^;]*;[^\\)]*\\)");
  5603. parser[1] = "Inettv";
  5604. parser[2] = 0;
  5605. parser[3] = 0;
  5606. parser[4] = 0;
  5607. exports.device[537] = parser;
  5608. parser = Object.create(null);
  5609. parser[0] = new RegExp("InettvBrowser/[0-9]+\\.[0-9A-Z]+ \\([^;]*;([^;]*);[^;]*;[^\\)]*\\)");
  5610. parser[1] = "Inettv";
  5611. parser[2] = 0;
  5612. parser[3] = 0;
  5613. parser[4] = 0;
  5614. exports.device[538] = parser;
  5615. parser = Object.create(null);
  5616. parser[0] = new RegExp("(?:InettvBrowser|TSBNetTV|NETTV|HBBTV)");
  5617. parser[1] = "Inettv";
  5618. parser[2] = 0;
  5619. parser[3] = 0;
  5620. parser[4] = 0;
  5621. exports.device[539] = parser;
  5622. parser = Object.create(null);
  5623. parser[0] = new RegExp("Series60/\\d\\.\\d (LG)[\\-]?([A-Za-z0-9 \\-]+)");
  5624. parser[1] = "$1 $2";
  5625. parser[2] = 0;
  5626. parser[3] = 0;
  5627. parser[4] = 0;
  5628. exports.device[540] = parser;
  5629. parser = Object.create(null);
  5630. parser[0] = new RegExp("\\b(?:LGE[ \\-]LG\\-(?:AX)?|LGE |LGE?-LG|LGE?[ \\-]|LG[ /\\-]|lg[\\-])([A-Za-z0-9]+)\\b");
  5631. parser[1] = "LG $1";
  5632. parser[2] = 0;
  5633. parser[3] = 0;
  5634. parser[4] = 0;
  5635. exports.device[541] = parser;
  5636. parser = Object.create(null);
  5637. parser[0] = new RegExp("(?:^LG[\\-]?|^LGE[\\-/]?)([A-Za-z]+[0-9]+[A-Za-z]*)");
  5638. parser[1] = "LG $1";
  5639. parser[2] = 0;
  5640. parser[3] = 0;
  5641. parser[4] = 0;
  5642. exports.device[542] = parser;
  5643. parser = Object.create(null);
  5644. parser[0] = new RegExp("^LG([0-9]+[A-Za-z]*)");
  5645. parser[1] = "LG $1";
  5646. parser[2] = 0;
  5647. parser[3] = 0;
  5648. parser[4] = 0;
  5649. exports.device[543] = parser;
  5650. parser = Object.create(null);
  5651. parser[0] = new RegExp("(KIN\\.[^ ]+) (\\d+)\\.(\\d+)");
  5652. parser[1] = "Microsoft $1";
  5653. parser[2] = 0;
  5654. parser[3] = 0;
  5655. parser[4] = 0;
  5656. exports.device[544] = parser;
  5657. parser = Object.create(null);
  5658. parser[0] = new RegExp("(?:MSIE|XBMC).*\\b(Xbox)\\b");
  5659. parser[1] = "$1";
  5660. parser[2] = 0;
  5661. parser[3] = 0;
  5662. parser[4] = 0;
  5663. exports.device[545] = parser;
  5664. parser = Object.create(null);
  5665. parser[0] = new RegExp("; ARM; Trident/6\\.0; Touch[\\);]");
  5666. parser[1] = "Microsoft Surface RT";
  5667. parser[2] = 0;
  5668. parser[3] = 0;
  5669. parser[4] = 0;
  5670. exports.device[546] = parser;
  5671. parser = Object.create(null);
  5672. parser[0] = new RegExp("Motorola\\-([A-Za-z0-9]+)");
  5673. parser[1] = "Motorola $1";
  5674. parser[2] = 0;
  5675. parser[3] = 0;
  5676. parser[4] = 0;
  5677. exports.device[547] = parser;
  5678. parser = Object.create(null);
  5679. parser[0] = new RegExp("MOTO\\-([A-Za-z0-9]+)");
  5680. parser[1] = "Motorola $1";
  5681. parser[2] = 0;
  5682. parser[3] = 0;
  5683. parser[4] = 0;
  5684. exports.device[548] = parser;
  5685. parser = Object.create(null);
  5686. parser[0] = new RegExp("MOT\\-([A-z0-9][A-z0-9\\-]*)");
  5687. parser[1] = "Motorola $1";
  5688. parser[2] = 0;
  5689. parser[3] = 0;
  5690. parser[4] = 0;
  5691. exports.device[549] = parser;
  5692. parser = Object.create(null);
  5693. parser[0] = new RegExp("Nintendo WiiU");
  5694. parser[1] = "Nintendo Wii U";
  5695. parser[2] = 0;
  5696. parser[3] = 0;
  5697. parser[4] = 0;
  5698. exports.device[550] = parser;
  5699. parser = Object.create(null);
  5700. parser[0] = new RegExp("Nintendo (DS|3DS|DSi|Wii);");
  5701. parser[1] = "Nintendo $1";
  5702. parser[2] = 0;
  5703. parser[3] = 0;
  5704. parser[4] = 0;
  5705. exports.device[551] = parser;
  5706. parser = Object.create(null);
  5707. parser[0] = new RegExp("(?:Pantech|PANTECH)[ _-]?([A-Za-z0-9\\-]+)");
  5708. parser[1] = "Pantech $1";
  5709. parser[2] = 0;
  5710. parser[3] = 0;
  5711. parser[4] = 0;
  5712. exports.device[552] = parser;
  5713. parser = Object.create(null);
  5714. parser[0] = new RegExp("Philips([A-Za-z0-9]+)");
  5715. parser[1] = "Philips $1";
  5716. parser[2] = 0;
  5717. parser[3] = 0;
  5718. parser[4] = 0;
  5719. exports.device[553] = parser;
  5720. parser = Object.create(null);
  5721. parser[0] = new RegExp("Philips ([A-Za-z0-9]+)");
  5722. parser[1] = "Philips $1";
  5723. parser[2] = 0;
  5724. parser[3] = 0;
  5725. parser[4] = 0;
  5726. exports.device[554] = parser;
  5727. parser = Object.create(null);
  5728. parser[0] = new RegExp("(SMART-TV); .* Tizen ");
  5729. parser[1] = "Samsung $1";
  5730. parser[2] = 0;
  5731. parser[3] = 0;
  5732. parser[4] = 0;
  5733. exports.device[555] = parser;
  5734. parser = Object.create(null);
  5735. parser[0] = new RegExp("SymbianOS/9\\.\\d.* Samsung[/\\-]([A-Za-z0-9 \\-]+)");
  5736. parser[1] = "Samsung $1";
  5737. parser[2] = 0;
  5738. parser[3] = 0;
  5739. parser[4] = 0;
  5740. exports.device[556] = parser;
  5741. parser = Object.create(null);
  5742. parser[0] = new RegExp("(Samsung)(SGH)(i[0-9]+)");
  5743. parser[1] = "$1 $2$3";
  5744. parser[2] = 0;
  5745. parser[3] = 0;
  5746. parser[4] = 0;
  5747. exports.device[557] = parser;
  5748. parser = Object.create(null);
  5749. parser[0] = new RegExp("SAMSUNG-ANDROID-MMS/([^;/]+)");
  5750. parser[1] = "$1";
  5751. parser[2] = 0;
  5752. parser[3] = 0;
  5753. parser[4] = 0;
  5754. exports.device[558] = parser;
  5755. parser = Object.create(null);
  5756. parser[0] = new RegExp("SAMSUNG(?:; |[ -/])([A-Za-z0-9\\-]+)");
  5757. parser[1] = "Samsung $1";
  5758. parser[2] = 0;
  5759. parser[3] = 0;
  5760. parser[4] = 0;
  5761. exports.device[559] = parser;
  5762. parser = Object.create(null);
  5763. parser[0] = new RegExp("(Dreamcast)");
  5764. parser[1] = "Sega $1";
  5765. parser[2] = 0;
  5766. parser[3] = 0;
  5767. parser[4] = 0;
  5768. exports.device[560] = parser;
  5769. parser = Object.create(null);
  5770. parser[0] = new RegExp("^SIE-([A-Za-z0-9]+)");
  5771. parser[1] = "Siemens $1";
  5772. parser[2] = 0;
  5773. parser[3] = 0;
  5774. parser[4] = 0;
  5775. exports.device[561] = parser;
  5776. parser = Object.create(null);
  5777. parser[0] = new RegExp("Softbank/[12]\\.0/([A-Za-z0-9]+)");
  5778. parser[1] = "Softbank $1";
  5779. parser[2] = 0;
  5780. parser[3] = 0;
  5781. parser[4] = 0;
  5782. exports.device[562] = parser;
  5783. parser = Object.create(null);
  5784. parser[0] = new RegExp("SonyEricsson ?([A-Za-z0-9\\-]+)");
  5785. parser[1] = "Ericsson $1";
  5786. parser[2] = 0;
  5787. parser[3] = 0;
  5788. parser[4] = 0;
  5789. exports.device[563] = parser;
  5790. parser = Object.create(null);
  5791. parser[0] = new RegExp("Android [^;]+; ([^ ]+) (Sony)/");
  5792. parser[1] = "$2 $1";
  5793. parser[2] = 0;
  5794. parser[3] = 0;
  5795. parser[4] = 0;
  5796. exports.device[564] = parser;
  5797. parser = Object.create(null);
  5798. parser[0] = new RegExp("(Sony)(?:BDP\\/|\\/)?([^ /;\\)]+)[ /;\\)]");
  5799. parser[1] = "$1 $2";
  5800. parser[2] = 0;
  5801. parser[3] = 0;
  5802. parser[4] = 0;
  5803. exports.device[565] = parser;
  5804. parser = Object.create(null);
  5805. parser[0] = new RegExp("Puffin/[\\d\\.]+IT");
  5806. parser[1] = "iPad";
  5807. parser[2] = 0;
  5808. parser[3] = 0;
  5809. parser[4] = 0;
  5810. exports.device[566] = parser;
  5811. parser = Object.create(null);
  5812. parser[0] = new RegExp("Puffin/[\\d\\.]+IP");
  5813. parser[1] = "iPhone";
  5814. parser[2] = 0;
  5815. parser[3] = 0;
  5816. parser[4] = 0;
  5817. exports.device[567] = parser;
  5818. parser = Object.create(null);
  5819. parser[0] = new RegExp("Puffin/[\\d\\.]+AT");
  5820. parser[1] = "Generic Tablet";
  5821. parser[2] = 0;
  5822. parser[3] = 0;
  5823. parser[4] = 0;
  5824. exports.device[568] = parser;
  5825. parser = Object.create(null);
  5826. parser[0] = new RegExp("Puffin/[\\d\\.]+AP");
  5827. parser[1] = "Generic Smartphone";
  5828. parser[2] = 0;
  5829. parser[3] = 0;
  5830. parser[4] = 0;
  5831. exports.device[569] = parser;
  5832. parser = Object.create(null);
  5833. parser[0] = new RegExp("Android[\\- ][\\d]+\\.[\\d]+; [A-Za-z]{2}\\-[A-Za-z]{0,2}; WOWMobile (.+) Build[/ ]");
  5834. parser[1] = 0;
  5835. parser[2] = 0;
  5836. parser[3] = 0;
  5837. parser[4] = 0;
  5838. exports.device[570] = parser;
  5839. parser = Object.create(null);
  5840. parser[0] = new RegExp("Android[\\- ][\\d]+\\.[\\d]+\\-update1; [A-Za-z]{2}\\-[A-Za-z]{0,2} *; *(.+?) Build[/ ]");
  5841. parser[1] = 0;
  5842. parser[2] = 0;
  5843. parser[3] = 0;
  5844. parser[4] = 0;
  5845. exports.device[571] = parser;
  5846. parser = Object.create(null);
  5847. parser[0] = new RegExp("Android[\\- ][\\d]+(?:\\.[\\d]+){1,2}; *[A-Za-z]{2}[_\\-][A-Za-z]{0,2}\\-? *; *(.+?) Build[/ ]");
  5848. parser[1] = 0;
  5849. parser[2] = 0;
  5850. parser[3] = 0;
  5851. parser[4] = 0;
  5852. exports.device[572] = parser;
  5853. parser = Object.create(null);
  5854. parser[0] = new RegExp("Android[\\- ][\\d]+(?:\\.[\\d]+){1,2}; *[A-Za-z]{0,2}\\- *; *(.+?) Build[/ ]");
  5855. parser[1] = 0;
  5856. parser[2] = 0;
  5857. parser[3] = 0;
  5858. parser[4] = 0;
  5859. exports.device[573] = parser;
  5860. parser = Object.create(null);
  5861. parser[0] = new RegExp("Android[\\- ][\\d]+(?:\\.[\\d]+){1,2}; *[a-z]{0,2}[_\\-]?[A-Za-z]{0,2};? Build[/ ]");
  5862. parser[1] = "Generic Smartphone";
  5863. parser[2] = 0;
  5864. parser[3] = 0;
  5865. parser[4] = 0;
  5866. exports.device[574] = parser;
  5867. parser = Object.create(null);
  5868. parser[0] = new RegExp("Android[\\- ][\\d]+(?:\\.[\\d]+){1,2}; *\\-?[A-Za-z]{2}; *(.+?) Build[/ ]");
  5869. parser[1] = 0;
  5870. parser[2] = 0;
  5871. parser[3] = 0;
  5872. parser[4] = 0;
  5873. exports.device[575] = parser;
  5874. parser = Object.create(null);
  5875. parser[0] = new RegExp("Android[\\- ][\\d]+(?:\\.[\\d]+){1,2}(?:;.*)?; *(.+?) Build[/ ]");
  5876. parser[1] = 0;
  5877. parser[2] = 0;
  5878. parser[3] = 0;
  5879. parser[4] = 0;
  5880. exports.device[576] = parser;
  5881. parser = Object.create(null);
  5882. parser[0] = new RegExp("(GoogleTV)");
  5883. parser[1] = 0;
  5884. parser[2] = 0;
  5885. parser[3] = 0;
  5886. parser[4] = 0;
  5887. exports.device[577] = parser;
  5888. parser = Object.create(null);
  5889. parser[0] = new RegExp("(WebTV)/\\d+.\\d+");
  5890. parser[1] = 0;
  5891. parser[2] = 0;
  5892. parser[3] = 0;
  5893. parser[4] = 0;
  5894. exports.device[578] = parser;
  5895. parser = Object.create(null);
  5896. parser[0] = new RegExp("^(Roku)/DVP-\\d+\\.\\d+");
  5897. parser[1] = 0;
  5898. parser[2] = 0;
  5899. parser[3] = 0;
  5900. parser[4] = 0;
  5901. exports.device[579] = parser;
  5902. parser = Object.create(null);
  5903. parser[0] = new RegExp("(Android 3\\.\\d|Opera Tablet|Tablet; .+Firefox/|Android.*(?:Tab|Pad))");
  5904. parser[1] = "Generic Tablet";
  5905. parser[2] = 0;
  5906. parser[3] = 0;
  5907. parser[4] = 0;
  5908. exports.device[580] = parser;
  5909. parser = Object.create(null);
  5910. parser[0] = new RegExp("(Symbian|\\bS60(Version|V\\d)|\\bS60\\b|\\((Series 60|Windows Mobile|Palm OS|Bada); Opera Mini|Windows CE|Opera Mobi|BREW|Brew|Mobile; .+Firefox/|iPhone OS|Android|MobileSafari|Windows *Phone|\\(webOS/|PalmOS)");
  5911. parser[1] = "Generic Smartphone";
  5912. parser[2] = 0;
  5913. parser[3] = 0;
  5914. parser[4] = 0;
  5915. exports.device[581] = parser;
  5916. parser = Object.create(null);
  5917. parser[0] = new RegExp("(hiptop|avantgo|plucker|xiino|blazer|elaine)");
  5918. parser[1] = "Generic Smartphone";
  5919. parser[2] = 0;
  5920. parser[3] = 0;
  5921. parser[4] = 0;
  5922. exports.device[582] = parser;
  5923. parser = Object.create(null);
  5924. parser[0] = new RegExp("(bot|zao|borg|DBot|oegp|silk|Xenu|zeal|^NING|CCBot|crawl|htdig|lycos|slurp|teoma|voila|yahoo|Sogou|CiBra|Nutch|^Java/|^JNLP/|Daumoa|Genieo|ichiro|larbin|pompos|Scrapy|snappy|speedy|spider|msnbot|msrbot|vortex|^vortex|crawler|favicon|indexer|Riddler|scooter|scraper|scrubby|WhatWeb|WinHTTP|bingbot|BingPreview|openbot|gigabot|furlbot|polybot|seekbot|^voyager|archiver|Icarus6j|mogimogi|Netvibes|blitzbot|altavista|charlotte|findlinks|Retreiver|TLSProber|WordPress|SeznamBot|ProoXiBot|wsr\\-agent|Squrl Java|EtaoSpider|PaperLiBot|SputnikBot|A6\\-Indexer|netresearch|searchsight|baiduspider|YisouSpider|ICC\\-Crawler|http%20client|Python-urllib|dataparksearch|converacrawler|Screaming Frog|AppEngine-Google|YahooCacheSystem|fast\\-webcrawler|Sogou Pic Spider|semanticdiscovery|Innovazion Crawler|facebookexternalhit|Google.*/\\+/web/snippet|Google-HTTP-Java-Client|BlogBridge|IlTrovatore-Setaccio|InternetArchive|GomezAgent|WebThumbnail|heritrix|NewsGator|PagePeeker|Reaper|ZooShot|holmes|NL-Crawler|Pingdom|StatusCake|WhatsApp|masscan|Google Web Preview|Qwantify)");
  5925. parser[1] = "Spider";
  5926. parser[2] = 0;
  5927. parser[3] = 0;
  5928. parser[4] = 0;
  5929. exports.device[583] = parser;
  5930. parser = Object.create(null);
  5931. parser[0] = new RegExp("^(1207|3gso|4thp|501i|502i|503i|504i|505i|506i|6310|6590|770s|802s|a wa|acer|acs\\-|airn|alav|asus|attw|au\\-m|aur |aus |abac|acoo|aiko|alco|alca|amoi|anex|anny|anyw|aptu|arch|argo|bmobile|bell|bird|bw\\-n|bw\\-u|beck|benq|bilb|blac|c55/|cdm\\-|chtm|capi|comp|cond|dall|dbte|dc\\-s|dica|ds\\-d|ds12|dait|devi|dmob|doco|dopo|dorado|el(?:38|39|48|49|50|55|58|68)|el[3456]\\d{2}dual|erk0|esl8|ex300|ez40|ez60|ez70|ezos|ezze|elai|emul|eric|ezwa|fake|fly\\-|fly_|g\\-mo|g1 u|g560|gf\\-5|grun|gene|go.w|good|grad|hcit|hd\\-m|hd\\-p|hd\\-t|hei\\-|hp i|hpip|hs\\-c|htc |htc\\-|htca|htcg)");
  5932. parser[1] = "Generic Feature Phone";
  5933. parser[2] = 0;
  5934. parser[3] = 0;
  5935. parser[4] = 0;
  5936. exports.device[584] = parser;
  5937. parser = Object.create(null);
  5938. parser[0] = new RegExp("^(htcp|htcs|htct|htc_|haie|hita|huaw|hutc|i\\-20|i\\-go|i\\-ma|i\\-mobile|i230|iac|iac\\-|iac/|ig01|im1k|inno|iris|jata|kddi|kgt|kgt/|kpt |kwc\\-|klon|lexi|lg g|lg\\-a|lg\\-b|lg\\-c|lg\\-d|lg\\-f|lg\\-g|lg\\-k|lg\\-l|lg\\-m|lg\\-o|lg\\-p|lg\\-s|lg\\-t|lg\\-u|lg\\-w|lg/k|lg/l|lg/u|lg50|lg54|lge\\-|lge/|leno|m1\\-w|m3ga|m50/|maui|mc01|mc21|mcca|medi|meri|mio8|mioa|mo01|mo02|mode|modo|mot |mot\\-|mt50|mtp1|mtv |mate|maxo|merc|mits|mobi|motv|mozz|n100|n101|n102|n202|n203|n300|n302|n500|n502|n505|n700|n701|n710|nec\\-|nem\\-|newg|neon)");
  5939. parser[1] = "Generic Feature Phone";
  5940. parser[2] = 0;
  5941. parser[3] = 0;
  5942. parser[4] = 0;
  5943. exports.device[585] = parser;
  5944. parser = Object.create(null);
  5945. parser[0] = new RegExp("^(netf|noki|nzph|o2 x|o2\\-x|opwv|owg1|opti|oran|ot\\-s|p800|pand|pg\\-1|pg\\-2|pg\\-3|pg\\-6|pg\\-8|pg\\-c|pg13|phil|pn\\-2|pt\\-g|palm|pana|pire|pock|pose|psio|qa\\-a|qc\\-2|qc\\-3|qc\\-5|qc\\-7|qc07|qc12|qc21|qc32|qc60|qci\\-|qwap|qtek|r380|r600|raks|rim9|rove|s55/|sage|sams|sc01|sch\\-|scp\\-|sdk/|se47|sec\\-|sec0|sec1|semc|sgh\\-|shar|sie\\-|sk\\-0|sl45|slid|smb3|smt5|sp01|sph\\-|spv |spv\\-|sy01|samm|sany|sava|scoo|send|siem|smar|smit|soft|sony|t\\-mo|t218|t250|t600|t610|t618|tcl\\-|tdg\\-|telm|tim\\-|ts70|tsm\\-|tsm3|tsm5|tx\\-9|tagt)");
  5946. parser[1] = "Generic Feature Phone";
  5947. parser[2] = 0;
  5948. parser[3] = 0;
  5949. parser[4] = 0;
  5950. exports.device[586] = parser;
  5951. parser = Object.create(null);
  5952. parser[0] = new RegExp("^(talk|teli|topl|tosh|up.b|upg1|utst|v400|v750|veri|vk\\-v|vk40|vk50|vk52|vk53|vm40|vx98|virg|vertu|vite|voda|vulc|w3c |w3c\\-|wapj|wapp|wapu|wapm|wig |wapi|wapr|wapv|wapy|wapa|waps|wapt|winc|winw|wonu|x700|xda2|xdag|yas\\-|your|zte\\-|zeto|aste|audi|avan|blaz|brew|brvw|bumb|ccwa|cell|cldc|cmd\\-|dang|eml2|fetc|hipt|http|ibro|idea|ikom|ipaq|jbro|jemu|jigs|keji|kyoc|kyok|libw|m\\-cr|midp|mmef|moto|mwbp|mywa|newt|nok6|o2im|pant|pdxg|play|pluc|port|prox|rozo|sama|seri|smal|symb|treo|upsi|vx52|vx53|vx60|vx61|vx70|vx80|vx81|vx83|vx85|wap\\-|webc|whit|wmlb|xda\\-|xda_)");
  5953. parser[1] = "Generic Feature Phone";
  5954. parser[2] = 0;
  5955. parser[3] = 0;
  5956. parser[4] = 0;
  5957. exports.device[587] = parser;
  5958. parser = Object.create(null);
  5959. parser[0] = new RegExp("^(Ice)$");
  5960. parser[1] = "Generic Feature Phone";
  5961. parser[2] = 0;
  5962. parser[3] = 0;
  5963. parser[4] = 0;
  5964. exports.device[588] = parser;
  5965. parser = Object.create(null);
  5966. parser[0] = new RegExp("(wap[\\-\\ ]browser|maui|netfront|obigo|teleca|up\\.browser|midp|Opera Mini)");
  5967. parser[1] = "Generic Feature Phone";
  5968. parser[2] = 0;
  5969. parser[3] = 0;
  5970. parser[4] = 0;
  5971. exports.device[589] = parser;
  5972. exports.device.length = 590;
  5973. exports.os = Object.create(null);
  5974. parser = Object.create(null);
  5975. parser[0] = new RegExp("HbbTV/\\d+\\.\\d+\\.\\d+ \\( ;(LG)E ;NetCast 4.0");
  5976. parser[1] = 0;
  5977. parser[2] = "2013";
  5978. parser[3] = 0;
  5979. parser[4] = 0;
  5980. exports.os[0] = parser;
  5981. parser = Object.create(null);
  5982. parser[0] = new RegExp("HbbTV/\\d+\\.\\d+\\.\\d+ \\( ;(LG)E ;NetCast 3.0");
  5983. parser[1] = 0;
  5984. parser[2] = "2012";
  5985. parser[3] = 0;
  5986. parser[4] = 0;
  5987. exports.os[1] = parser;
  5988. parser = Object.create(null);
  5989. parser[0] = new RegExp("HbbTV/1.1.1 \\(;;;;;\\) Maple_2011");
  5990. parser[1] = "Samsung";
  5991. parser[2] = "2011";
  5992. parser[3] = 0;
  5993. parser[4] = 0;
  5994. exports.os[2] = parser;
  5995. parser = Object.create(null);
  5996. parser[0] = new RegExp("HbbTV/\\d+\\.\\d+\\.\\d+ \\(;(Samsung);SmartTV([0-9]{4});.*FXPDEUC");
  5997. parser[1] = 0;
  5998. parser[2] = 0;
  5999. parser[3] = "UE40F7000";
  6000. parser[4] = 0;
  6001. exports.os[3] = parser;
  6002. parser = Object.create(null);
  6003. parser[0] = new RegExp("HbbTV/\\d+\\.\\d+\\.\\d+ \\(;(Samsung);SmartTV([0-9]{4});.*MST12DEUC");
  6004. parser[1] = 0;
  6005. parser[2] = 0;
  6006. parser[3] = "UE32F4500";
  6007. parser[4] = 0;
  6008. exports.os[4] = parser;
  6009. parser = Object.create(null);
  6010. parser[0] = new RegExp("HbbTV/1.1.1 \\(; (Philips);.*NETTV/4");
  6011. parser[1] = 0;
  6012. parser[2] = "2013";
  6013. parser[3] = 0;
  6014. parser[4] = 0;
  6015. exports.os[5] = parser;
  6016. parser = Object.create(null);
  6017. parser[0] = new RegExp("HbbTV/1.1.1 \\(; (Philips);.*NETTV/3");
  6018. parser[1] = 0;
  6019. parser[2] = "2012";
  6020. parser[3] = 0;
  6021. parser[4] = 0;
  6022. exports.os[6] = parser;
  6023. parser = Object.create(null);
  6024. parser[0] = new RegExp("HbbTV/1.1.1 \\(; (Philips);.*NETTV/2");
  6025. parser[1] = 0;
  6026. parser[2] = "2011";
  6027. parser[3] = 0;
  6028. parser[4] = 0;
  6029. exports.os[7] = parser;
  6030. parser = Object.create(null);
  6031. parser[0] = new RegExp("HbbTV/\\d+\\.\\d+\\.\\d+.*(firetv)-firefox-plugin (\\d+).(\\d+).(\\d+)");
  6032. parser[1] = "FireHbbTV";
  6033. parser[2] = 0;
  6034. parser[3] = 0;
  6035. parser[4] = 0;
  6036. exports.os[8] = parser;
  6037. parser = Object.create(null);
  6038. parser[0] = new RegExp("HbbTV/\\d+\\.\\d+\\.\\d+ \\(.*; ?([a-zA-Z]+) ?;.*(201[1-9]).*\\)");
  6039. parser[1] = 0;
  6040. parser[2] = 0;
  6041. parser[3] = 0;
  6042. parser[4] = 0;
  6043. exports.os[9] = parser;
  6044. parser = Object.create(null);
  6045. parser[0] = new RegExp("(Windows Phone) (?:OS[ /])?(\\d+)\\.(\\d+)");
  6046. parser[1] = 0;
  6047. parser[2] = 0;
  6048. parser[3] = 0;
  6049. parser[4] = 0;
  6050. exports.os[10] = parser;
  6051. parser = Object.create(null);
  6052. parser[0] = new RegExp("(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone)[ +]+(\\d+)[_\\.](\\d+)(?:[_\\.](\\d+))?.*Outlook-iOS-Android");
  6053. parser[1] = "iOS";
  6054. parser[2] = 0;
  6055. parser[3] = 0;
  6056. parser[4] = 0;
  6057. exports.os[11] = parser;
  6058. parser = Object.create(null);
  6059. parser[0] = new RegExp("(Android)[ \\-/](\\d+)\\.(\\d+)(?:[.\\-]([a-z0-9]+))?");
  6060. parser[1] = 0;
  6061. parser[2] = 0;
  6062. parser[3] = 0;
  6063. parser[4] = 0;
  6064. exports.os[12] = parser;
  6065. parser = Object.create(null);
  6066. parser[0] = new RegExp("(Android) Donut");
  6067. parser[1] = 0;
  6068. parser[2] = "1";
  6069. parser[3] = "2";
  6070. parser[4] = 0;
  6071. exports.os[13] = parser;
  6072. parser = Object.create(null);
  6073. parser[0] = new RegExp("(Android) Eclair");
  6074. parser[1] = 0;
  6075. parser[2] = "2";
  6076. parser[3] = "1";
  6077. parser[4] = 0;
  6078. exports.os[14] = parser;
  6079. parser = Object.create(null);
  6080. parser[0] = new RegExp("(Android) Froyo");
  6081. parser[1] = 0;
  6082. parser[2] = "2";
  6083. parser[3] = "2";
  6084. parser[4] = 0;
  6085. exports.os[15] = parser;
  6086. parser = Object.create(null);
  6087. parser[0] = new RegExp("(Android) Gingerbread");
  6088. parser[1] = 0;
  6089. parser[2] = "2";
  6090. parser[3] = "3";
  6091. parser[4] = 0;
  6092. exports.os[16] = parser;
  6093. parser = Object.create(null);
  6094. parser[0] = new RegExp("(Android) Honeycomb");
  6095. parser[1] = 0;
  6096. parser[2] = "3";
  6097. parser[3] = 0;
  6098. parser[4] = 0;
  6099. exports.os[17] = parser;
  6100. parser = Object.create(null);
  6101. parser[0] = new RegExp("^UCWEB.*; (Adr) (\\d+)\\.(\\d+)(?:[.\\-]([a-z0-9]+))?;");
  6102. parser[1] = "Android";
  6103. parser[2] = 0;
  6104. parser[3] = 0;
  6105. parser[4] = 0;
  6106. exports.os[18] = parser;
  6107. parser = Object.create(null);
  6108. parser[0] = new RegExp("^UCWEB.*; (iPad|iPh|iPd) OS (\\d+)_(\\d+)(?:_(\\d+))?;");
  6109. parser[1] = "iOS";
  6110. parser[2] = 0;
  6111. parser[3] = 0;
  6112. parser[4] = 0;
  6113. exports.os[19] = parser;
  6114. parser = Object.create(null);
  6115. parser[0] = new RegExp("^UCWEB.*; (wds) (\\d+)\\.(\\d+)(?:\\.(\\d+))?;");
  6116. parser[1] = "Windows Phone";
  6117. parser[2] = 0;
  6118. parser[3] = 0;
  6119. parser[4] = 0;
  6120. exports.os[20] = parser;
  6121. parser = Object.create(null);
  6122. parser[0] = new RegExp("^(JUC).*; ?U; ?(?:Android)?(\\d+)\\.(\\d+)(?:[\\.\\-]([a-z0-9]+))?");
  6123. parser[1] = "Android";
  6124. parser[2] = 0;
  6125. parser[3] = 0;
  6126. parser[4] = 0;
  6127. exports.os[21] = parser;
  6128. parser = Object.create(null);
  6129. parser[0] = new RegExp("(Silk-Accelerated=[a-z]{4,5})");
  6130. parser[1] = "Android";
  6131. parser[2] = 0;
  6132. parser[3] = 0;
  6133. parser[4] = 0;
  6134. exports.os[22] = parser;
  6135. parser = Object.create(null);
  6136. parser[0] = new RegExp("(XBLWP7)");
  6137. parser[1] = "Windows Phone";
  6138. parser[2] = 0;
  6139. parser[3] = 0;
  6140. parser[4] = 0;
  6141. exports.os[23] = parser;
  6142. parser = Object.create(null);
  6143. parser[0] = new RegExp("(Windows ?Mobile)");
  6144. parser[1] = "Windows Mobile";
  6145. parser[2] = 0;
  6146. parser[3] = 0;
  6147. parser[4] = 0;
  6148. exports.os[24] = parser;
  6149. parser = Object.create(null);
  6150. parser[0] = new RegExp("(Windows (?:NT 5\\.2|NT 5\\.1))");
  6151. parser[1] = "Windows";
  6152. parser[2] = "XP";
  6153. parser[3] = 0;
  6154. parser[4] = 0;
  6155. exports.os[25] = parser;
  6156. parser = Object.create(null);
  6157. parser[0] = new RegExp("(Windows NT 6\\.1)");
  6158. parser[1] = "Windows";
  6159. parser[2] = "7";
  6160. parser[3] = 0;
  6161. parser[4] = 0;
  6162. exports.os[26] = parser;
  6163. parser = Object.create(null);
  6164. parser[0] = new RegExp("(Windows NT 6\\.0)");
  6165. parser[1] = "Windows";
  6166. parser[2] = "Vista";
  6167. parser[3] = 0;
  6168. parser[4] = 0;
  6169. exports.os[27] = parser;
  6170. parser = Object.create(null);
  6171. parser[0] = new RegExp("(Win 9x 4\\.90)");
  6172. parser[1] = "Windows";
  6173. parser[2] = "ME";
  6174. parser[3] = 0;
  6175. parser[4] = 0;
  6176. exports.os[28] = parser;
  6177. parser = Object.create(null);
  6178. parser[0] = new RegExp("(Windows 98|Windows XP|Windows ME|Windows 95|Windows CE|Windows 7|Windows NT 4\\.0|Windows Vista|Windows 2000|Windows 3.1)");
  6179. parser[1] = 0;
  6180. parser[2] = 0;
  6181. parser[3] = 0;
  6182. parser[4] = 0;
  6183. exports.os[29] = parser;
  6184. parser = Object.create(null);
  6185. parser[0] = new RegExp("(Windows NT 6\\.2; ARM;)");
  6186. parser[1] = "Windows";
  6187. parser[2] = "RT";
  6188. parser[3] = 0;
  6189. parser[4] = 0;
  6190. exports.os[30] = parser;
  6191. parser = Object.create(null);
  6192. parser[0] = new RegExp("(Windows NT 6\\.2)");
  6193. parser[1] = "Windows";
  6194. parser[2] = "8";
  6195. parser[3] = 0;
  6196. parser[4] = 0;
  6197. exports.os[31] = parser;
  6198. parser = Object.create(null);
  6199. parser[0] = new RegExp("(Windows NT 6\\.3; ARM;)");
  6200. parser[1] = "Windows";
  6201. parser[2] = "RT 8.1";
  6202. parser[3] = 0;
  6203. parser[4] = 0;
  6204. exports.os[32] = parser;
  6205. parser = Object.create(null);
  6206. parser[0] = new RegExp("(Windows NT 6\\.3)");
  6207. parser[1] = "Windows";
  6208. parser[2] = "8.1";
  6209. parser[3] = 0;
  6210. parser[4] = 0;
  6211. exports.os[33] = parser;
  6212. parser = Object.create(null);
  6213. parser[0] = new RegExp("(Windows NT 6\\.4)");
  6214. parser[1] = "Windows";
  6215. parser[2] = "10";
  6216. parser[3] = 0;
  6217. parser[4] = 0;
  6218. exports.os[34] = parser;
  6219. parser = Object.create(null);
  6220. parser[0] = new RegExp("(Windows NT 10\\.0)");
  6221. parser[1] = "Windows";
  6222. parser[2] = "10";
  6223. parser[3] = 0;
  6224. parser[4] = 0;
  6225. exports.os[35] = parser;
  6226. parser = Object.create(null);
  6227. parser[0] = new RegExp("(Windows NT 5\\.0)");
  6228. parser[1] = "Windows";
  6229. parser[2] = "2000";
  6230. parser[3] = 0;
  6231. parser[4] = 0;
  6232. exports.os[36] = parser;
  6233. parser = Object.create(null);
  6234. parser[0] = new RegExp("(WinNT4.0)");
  6235. parser[1] = "Windows";
  6236. parser[2] = "NT 4.0";
  6237. parser[3] = 0;
  6238. parser[4] = 0;
  6239. exports.os[37] = parser;
  6240. parser = Object.create(null);
  6241. parser[0] = new RegExp("(Windows ?CE)");
  6242. parser[1] = "Windows";
  6243. parser[2] = "CE";
  6244. parser[3] = 0;
  6245. parser[4] = 0;
  6246. exports.os[38] = parser;
  6247. parser = Object.create(null);
  6248. parser[0] = new RegExp("Win ?(95|98|3.1|NT|ME|2000)");
  6249. parser[1] = "Windows";
  6250. parser[2] = "$1";
  6251. parser[3] = 0;
  6252. parser[4] = 0;
  6253. exports.os[39] = parser;
  6254. parser = Object.create(null);
  6255. parser[0] = new RegExp("Win16");
  6256. parser[1] = "Windows";
  6257. parser[2] = "3.1";
  6258. parser[3] = 0;
  6259. parser[4] = 0;
  6260. exports.os[40] = parser;
  6261. parser = Object.create(null);
  6262. parser[0] = new RegExp("Win32");
  6263. parser[1] = "Windows";
  6264. parser[2] = "95";
  6265. parser[3] = 0;
  6266. parser[4] = 0;
  6267. exports.os[41] = parser;
  6268. parser = Object.create(null);
  6269. parser[0] = new RegExp("^Box.*Windows/([\\d.]+);");
  6270. parser[1] = "Windows";
  6271. parser[2] = "$1";
  6272. parser[3] = 0;
  6273. parser[4] = 0;
  6274. exports.os[42] = parser;
  6275. parser = Object.create(null);
  6276. parser[0] = new RegExp("(Tizen)[/ ](\\d+)\\.(\\d+)");
  6277. parser[1] = 0;
  6278. parser[2] = 0;
  6279. parser[3] = 0;
  6280. parser[4] = 0;
  6281. exports.os[43] = parser;
  6282. parser = Object.create(null);
  6283. parser[0] = new RegExp("((?:Mac[ +]?|; )OS[ +]X)[\\s+/](?:(\\d+)[_.](\\d+)(?:[_.](\\d+))?|Mach-O)");
  6284. parser[1] = "Mac OS X";
  6285. parser[2] = 0;
  6286. parser[3] = 0;
  6287. parser[4] = 0;
  6288. exports.os[44] = parser;
  6289. parser = Object.create(null);
  6290. parser[0] = new RegExp(" (Dar)(win)/(9).(\\d+).*\\((?:i386|x86_64|Power Macintosh)\\)");
  6291. parser[1] = "Mac OS X";
  6292. parser[2] = "10";
  6293. parser[3] = "5";
  6294. parser[4] = 0;
  6295. exports.os[45] = parser;
  6296. parser = Object.create(null);
  6297. parser[0] = new RegExp(" (Dar)(win)/(10).(\\d+).*\\((?:i386|x86_64)\\)");
  6298. parser[1] = "Mac OS X";
  6299. parser[2] = "10";
  6300. parser[3] = "6";
  6301. parser[4] = 0;
  6302. exports.os[46] = parser;
  6303. parser = Object.create(null);
  6304. parser[0] = new RegExp(" (Dar)(win)/(11).(\\d+).*\\((?:i386|x86_64)\\)");
  6305. parser[1] = "Mac OS X";
  6306. parser[2] = "10";
  6307. parser[3] = "7";
  6308. parser[4] = 0;
  6309. exports.os[47] = parser;
  6310. parser = Object.create(null);
  6311. parser[0] = new RegExp(" (Dar)(win)/(12).(\\d+).*\\((?:i386|x86_64)\\)");
  6312. parser[1] = "Mac OS X";
  6313. parser[2] = "10";
  6314. parser[3] = "8";
  6315. parser[4] = 0;
  6316. exports.os[48] = parser;
  6317. parser = Object.create(null);
  6318. parser[0] = new RegExp(" (Dar)(win)/(13).(\\d+).*\\((?:i386|x86_64)\\)");
  6319. parser[1] = "Mac OS X";
  6320. parser[2] = "10";
  6321. parser[3] = "9";
  6322. parser[4] = 0;
  6323. exports.os[49] = parser;
  6324. parser = Object.create(null);
  6325. parser[0] = new RegExp("Mac_PowerPC");
  6326. parser[1] = "Mac OS";
  6327. parser[2] = 0;
  6328. parser[3] = 0;
  6329. parser[4] = 0;
  6330. exports.os[50] = parser;
  6331. parser = Object.create(null);
  6332. parser[0] = new RegExp("(?:PPC|Intel) (Mac OS X)");
  6333. parser[1] = 0;
  6334. parser[2] = 0;
  6335. parser[3] = 0;
  6336. parser[4] = 0;
  6337. exports.os[51] = parser;
  6338. parser = Object.create(null);
  6339. parser[0] = new RegExp("^Box.*;(Darwin)/(10)\\.(1\\d)(?:\\.(\\d+))?");
  6340. parser[1] = "Mac OS X";
  6341. parser[2] = 0;
  6342. parser[3] = 0;
  6343. parser[4] = 0;
  6344. exports.os[52] = parser;
  6345. parser = Object.create(null);
  6346. parser[0] = new RegExp("(Apple\\s?TV)(?:/(\\d+)\\.(\\d+))?");
  6347. parser[1] = "ATV OS X";
  6348. parser[2] = 0;
  6349. parser[3] = 0;
  6350. parser[4] = 0;
  6351. exports.os[53] = parser;
  6352. parser = Object.create(null);
  6353. parser[0] = new RegExp("(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS)[ +]+(\\d+)[_\\.](\\d+)(?:[_\\.](\\d+))?");
  6354. parser[1] = "iOS";
  6355. parser[2] = 0;
  6356. parser[3] = 0;
  6357. parser[4] = 0;
  6358. exports.os[54] = parser;
  6359. parser = Object.create(null);
  6360. parser[0] = new RegExp("(iPhone|iPad|iPod); Opera");
  6361. parser[1] = "iOS";
  6362. parser[2] = 0;
  6363. parser[3] = 0;
  6364. parser[4] = 0;
  6365. exports.os[55] = parser;
  6366. parser = Object.create(null);
  6367. parser[0] = new RegExp("(iPhone|iPad|iPod).*Mac OS X.*Version/(\\d+)\\.(\\d+)");
  6368. parser[1] = "iOS";
  6369. parser[2] = 0;
  6370. parser[3] = 0;
  6371. parser[4] = 0;
  6372. exports.os[56] = parser;
  6373. parser = Object.create(null);
  6374. parser[0] = new RegExp("(CFNetwork)/(5)48\\.0\\.3.* Darwin/11\\.0\\.0");
  6375. parser[1] = "iOS";
  6376. parser[2] = 0;
  6377. parser[3] = 0;
  6378. parser[4] = 0;
  6379. exports.os[57] = parser;
  6380. parser = Object.create(null);
  6381. parser[0] = new RegExp("(CFNetwork)/(5)48\\.(0)\\.4.* Darwin/(1)1\\.0\\.0");
  6382. parser[1] = "iOS";
  6383. parser[2] = 0;
  6384. parser[3] = 0;
  6385. parser[4] = 0;
  6386. exports.os[58] = parser;
  6387. parser = Object.create(null);
  6388. parser[0] = new RegExp("(CFNetwork)/(5)48\\.(1)\\.4");
  6389. parser[1] = "iOS";
  6390. parser[2] = 0;
  6391. parser[3] = 0;
  6392. parser[4] = 0;
  6393. exports.os[59] = parser;
  6394. parser = Object.create(null);
  6395. parser[0] = new RegExp("(CFNetwork)/(4)85\\.1(3)\\.9");
  6396. parser[1] = "iOS";
  6397. parser[2] = 0;
  6398. parser[3] = 0;
  6399. parser[4] = 0;
  6400. exports.os[60] = parser;
  6401. parser = Object.create(null);
  6402. parser[0] = new RegExp("(CFNetwork)/(6)09\\.(1)\\.4");
  6403. parser[1] = "iOS";
  6404. parser[2] = 0;
  6405. parser[3] = 0;
  6406. parser[4] = 0;
  6407. exports.os[61] = parser;
  6408. parser = Object.create(null);
  6409. parser[0] = new RegExp("(CFNetwork)/(6)(0)9");
  6410. parser[1] = "iOS";
  6411. parser[2] = 0;
  6412. parser[3] = 0;
  6413. parser[4] = 0;
  6414. exports.os[62] = parser;
  6415. parser = Object.create(null);
  6416. parser[0] = new RegExp("(CFNetwork)/6(7)2\\.(1)\\.13");
  6417. parser[1] = "iOS";
  6418. parser[2] = 0;
  6419. parser[3] = 0;
  6420. parser[4] = 0;
  6421. exports.os[63] = parser;
  6422. parser = Object.create(null);
  6423. parser[0] = new RegExp("(CFNetwork)/6(7)2\\.(1)\\.(1)4");
  6424. parser[1] = "iOS";
  6425. parser[2] = 0;
  6426. parser[3] = 0;
  6427. parser[4] = 0;
  6428. exports.os[64] = parser;
  6429. parser = Object.create(null);
  6430. parser[0] = new RegExp("(CF)(Network)/6(7)(2)\\.1\\.15");
  6431. parser[1] = "iOS";
  6432. parser[2] = "7";
  6433. parser[3] = "1";
  6434. parser[4] = 0;
  6435. exports.os[65] = parser;
  6436. parser = Object.create(null);
  6437. parser[0] = new RegExp("(CFNetwork)/6(7)2\\.(0)\\.(?:2|8)");
  6438. parser[1] = "iOS";
  6439. parser[2] = 0;
  6440. parser[3] = 0;
  6441. parser[4] = 0;
  6442. exports.os[66] = parser;
  6443. parser = Object.create(null);
  6444. parser[0] = new RegExp("(CFNetwork)/709\\.1");
  6445. parser[1] = "iOS";
  6446. parser[2] = "8";
  6447. parser[3] = "0.b5";
  6448. parser[4] = 0;
  6449. exports.os[67] = parser;
  6450. parser = Object.create(null);
  6451. parser[0] = new RegExp("(CF)(Network)/711\\.(\\d)");
  6452. parser[1] = "iOS";
  6453. parser[2] = "8";
  6454. parser[3] = 0;
  6455. parser[4] = 0;
  6456. exports.os[68] = parser;
  6457. parser = Object.create(null);
  6458. parser[0] = new RegExp("(CF)(Network)/(720)\\.(\\d)");
  6459. parser[1] = "Mac OS X";
  6460. parser[2] = "10";
  6461. parser[3] = "10";
  6462. parser[4] = 0;
  6463. exports.os[69] = parser;
  6464. parser = Object.create(null);
  6465. parser[0] = new RegExp("(CF)(Network)/(760)\\.(\\d)");
  6466. parser[1] = "Mac OS X";
  6467. parser[2] = "10";
  6468. parser[3] = "11";
  6469. parser[4] = 0;
  6470. exports.os[70] = parser;
  6471. parser = Object.create(null);
  6472. parser[0] = new RegExp("(CF)(Network)/758\\.(\\d)");
  6473. parser[1] = "iOS";
  6474. parser[2] = "9";
  6475. parser[3] = 0;
  6476. parser[4] = 0;
  6477. exports.os[71] = parser;
  6478. parser = Object.create(null);
  6479. parser[0] = new RegExp("(CF)(Network)/808\\.(\\d)");
  6480. parser[1] = "iOS";
  6481. parser[2] = "10";
  6482. parser[3] = 0;
  6483. parser[4] = 0;
  6484. exports.os[72] = parser;
  6485. parser = Object.create(null);
  6486. parser[0] = new RegExp("CFNetwork/.* Darwin/16\\.\\d+.*\\(x86_64\\)");
  6487. parser[1] = "Mac OS X";
  6488. parser[2] = "10";
  6489. parser[3] = "12";
  6490. parser[4] = 0;
  6491. exports.os[73] = parser;
  6492. parser = Object.create(null);
  6493. parser[0] = new RegExp("CFNetwork/8.* Darwin/15\\.\\d+.*\\(x86_64\\)");
  6494. parser[1] = "Mac OS X";
  6495. parser[2] = "10";
  6496. parser[3] = "11";
  6497. parser[4] = 0;
  6498. exports.os[74] = parser;
  6499. parser = Object.create(null);
  6500. parser[0] = new RegExp("CFNetwork/.* Darwin/(9)\\.\\d+");
  6501. parser[1] = "iOS";
  6502. parser[2] = "1";
  6503. parser[3] = 0;
  6504. parser[4] = 0;
  6505. exports.os[75] = parser;
  6506. parser = Object.create(null);
  6507. parser[0] = new RegExp("CFNetwork/.* Darwin/(10)\\.\\d+");
  6508. parser[1] = "iOS";
  6509. parser[2] = "4";
  6510. parser[3] = 0;
  6511. parser[4] = 0;
  6512. exports.os[76] = parser;
  6513. parser = Object.create(null);
  6514. parser[0] = new RegExp("CFNetwork/.* Darwin/(11)\\.\\d+");
  6515. parser[1] = "iOS";
  6516. parser[2] = "5";
  6517. parser[3] = 0;
  6518. parser[4] = 0;
  6519. exports.os[77] = parser;
  6520. parser = Object.create(null);
  6521. parser[0] = new RegExp("CFNetwork/.* Darwin/(13)\\.\\d+");
  6522. parser[1] = "iOS";
  6523. parser[2] = "6";
  6524. parser[3] = 0;
  6525. parser[4] = 0;
  6526. exports.os[78] = parser;
  6527. parser = Object.create(null);
  6528. parser[0] = new RegExp("CFNetwork/6.* Darwin/(14)\\.\\d+");
  6529. parser[1] = "iOS";
  6530. parser[2] = "7";
  6531. parser[3] = 0;
  6532. parser[4] = 0;
  6533. exports.os[79] = parser;
  6534. parser = Object.create(null);
  6535. parser[0] = new RegExp("CFNetwork/7.* Darwin/(14)\\.\\d+");
  6536. parser[1] = "iOS";
  6537. parser[2] = "8";
  6538. parser[3] = "0";
  6539. parser[4] = 0;
  6540. exports.os[80] = parser;
  6541. parser = Object.create(null);
  6542. parser[0] = new RegExp("CFNetwork/7.* Darwin/(15)\\.\\d+");
  6543. parser[1] = "iOS";
  6544. parser[2] = "9";
  6545. parser[3] = "0";
  6546. parser[4] = 0;
  6547. exports.os[81] = parser;
  6548. parser = Object.create(null);
  6549. parser[0] = new RegExp("CFNetwork/8.* Darwin/16\\.5\\.\\d+");
  6550. parser[1] = "iOS";
  6551. parser[2] = "10";
  6552. parser[3] = "3";
  6553. parser[4] = 0;
  6554. exports.os[82] = parser;
  6555. parser = Object.create(null);
  6556. parser[0] = new RegExp("CFNetwork/8.* Darwin/16\\.6\\.\\d+");
  6557. parser[1] = "iOS";
  6558. parser[2] = "10";
  6559. parser[3] = "3";
  6560. parser[4] = "2";
  6561. exports.os[83] = parser;
  6562. parser = Object.create(null);
  6563. parser[0] = new RegExp("CFNetwork/8.* Darwin/16\\.7\\.\\d+");
  6564. parser[1] = "iOS";
  6565. parser[2] = "10";
  6566. parser[3] = "3";
  6567. parser[4] = "3";
  6568. exports.os[84] = parser;
  6569. parser = Object.create(null);
  6570. parser[0] = new RegExp("CFNetwork/8.* Darwin/(16)\\.\\d+");
  6571. parser[1] = "iOS";
  6572. parser[2] = "10";
  6573. parser[3] = 0;
  6574. parser[4] = 0;
  6575. exports.os[85] = parser;
  6576. parser = Object.create(null);
  6577. parser[0] = new RegExp("CFNetwork/8.* Darwin/17\\.0\\.\\d+");
  6578. parser[1] = "iOS";
  6579. parser[2] = "11";
  6580. parser[3] = "0";
  6581. parser[4] = 0;
  6582. exports.os[86] = parser;
  6583. parser = Object.create(null);
  6584. parser[0] = new RegExp("CFNetwork/8.* Darwin/17\\.2\\.\\d+");
  6585. parser[1] = "iOS";
  6586. parser[2] = "11";
  6587. parser[3] = "1";
  6588. parser[4] = 0;
  6589. exports.os[87] = parser;
  6590. parser = Object.create(null);
  6591. parser[0] = new RegExp("CFNetwork/8.* Darwin/17\\.3\\.\\d+");
  6592. parser[1] = "iOS";
  6593. parser[2] = "11";
  6594. parser[3] = "2";
  6595. parser[4] = 0;
  6596. exports.os[88] = parser;
  6597. parser = Object.create(null);
  6598. parser[0] = new RegExp("CFNetwork/8.* Darwin/(17)\\.\\d+");
  6599. parser[1] = "iOS";
  6600. parser[2] = "11";
  6601. parser[3] = 0;
  6602. parser[4] = 0;
  6603. exports.os[89] = parser;
  6604. parser = Object.create(null);
  6605. parser[0] = new RegExp("\\b(iOS[ /]|iOS; |iPhone(?:/| v|[ _]OS[/,]|; | OS : |\\d,\\d/|\\d,\\d; )|iPad/)(\\d{1,2})[_\\.](\\d{1,2})(?:[_\\.](\\d+))?");
  6606. parser[1] = "iOS";
  6607. parser[2] = 0;
  6608. parser[3] = 0;
  6609. parser[4] = 0;
  6610. exports.os[90] = parser;
  6611. parser = Object.create(null);
  6612. parser[0] = new RegExp("\\((iOS);");
  6613. parser[1] = 0;
  6614. parser[2] = 0;
  6615. parser[3] = 0;
  6616. parser[4] = 0;
  6617. exports.os[91] = parser;
  6618. parser = Object.create(null);
  6619. parser[0] = new RegExp("(tvOS)/(\\d+).(\\d+)");
  6620. parser[1] = "tvOS";
  6621. parser[2] = 0;
  6622. parser[3] = 0;
  6623. parser[4] = 0;
  6624. exports.os[92] = parser;
  6625. parser = Object.create(null);
  6626. parser[0] = new RegExp("(CrOS) [a-z0-9_]+ (\\d+)\\.(\\d+)(?:\\.(\\d+))?");
  6627. parser[1] = "Chrome OS";
  6628. parser[2] = 0;
  6629. parser[3] = 0;
  6630. parser[4] = 0;
  6631. exports.os[93] = parser;
  6632. parser = Object.create(null);
  6633. parser[0] = new RegExp("([Dd]ebian)");
  6634. parser[1] = "Debian";
  6635. parser[2] = 0;
  6636. parser[3] = 0;
  6637. parser[4] = 0;
  6638. exports.os[94] = parser;
  6639. parser = Object.create(null);
  6640. parser[0] = new RegExp("(Linux Mint)(?:/(\\d+))?");
  6641. parser[1] = 0;
  6642. parser[2] = 0;
  6643. parser[3] = 0;
  6644. parser[4] = 0;
  6645. exports.os[95] = parser;
  6646. parser = Object.create(null);
  6647. parser[0] = new RegExp("(Mandriva)(?: Linux)?/(?:[\\d.-]+m[a-z]{2}(\\d+).(\\d))?");
  6648. parser[1] = 0;
  6649. parser[2] = 0;
  6650. parser[3] = 0;
  6651. parser[4] = 0;
  6652. exports.os[96] = parser;
  6653. parser = Object.create(null);
  6654. parser[0] = new RegExp("(Symbian[Oo][Ss])[/ ](\\d+)\\.(\\d+)");
  6655. parser[1] = "Symbian OS";
  6656. parser[2] = 0;
  6657. parser[3] = 0;
  6658. parser[4] = 0;
  6659. exports.os[97] = parser;
  6660. parser = Object.create(null);
  6661. parser[0] = new RegExp("(Symbian/3).+NokiaBrowser/7\\.3");
  6662. parser[1] = "Symbian^3 Anna";
  6663. parser[2] = 0;
  6664. parser[3] = 0;
  6665. parser[4] = 0;
  6666. exports.os[98] = parser;
  6667. parser = Object.create(null);
  6668. parser[0] = new RegExp("(Symbian/3).+NokiaBrowser/7\\.4");
  6669. parser[1] = "Symbian^3 Belle";
  6670. parser[2] = 0;
  6671. parser[3] = 0;
  6672. parser[4] = 0;
  6673. exports.os[99] = parser;
  6674. parser = Object.create(null);
  6675. parser[0] = new RegExp("(Symbian/3)");
  6676. parser[1] = "Symbian^3";
  6677. parser[2] = 0;
  6678. parser[3] = 0;
  6679. parser[4] = 0;
  6680. exports.os[100] = parser;
  6681. parser = Object.create(null);
  6682. parser[0] = new RegExp("\\b(Series 60|SymbOS|S60Version|S60V\\d|S60\\b)");
  6683. parser[1] = "Symbian OS";
  6684. parser[2] = 0;
  6685. parser[3] = 0;
  6686. parser[4] = 0;
  6687. exports.os[101] = parser;
  6688. parser = Object.create(null);
  6689. parser[0] = new RegExp("(MeeGo)");
  6690. parser[1] = 0;
  6691. parser[2] = 0;
  6692. parser[3] = 0;
  6693. parser[4] = 0;
  6694. exports.os[102] = parser;
  6695. parser = Object.create(null);
  6696. parser[0] = new RegExp("Symbian [Oo][Ss]");
  6697. parser[1] = "Symbian OS";
  6698. parser[2] = 0;
  6699. parser[3] = 0;
  6700. parser[4] = 0;
  6701. exports.os[103] = parser;
  6702. parser = Object.create(null);
  6703. parser[0] = new RegExp("Series40;");
  6704. parser[1] = "Nokia Series 40";
  6705. parser[2] = 0;
  6706. parser[3] = 0;
  6707. parser[4] = 0;
  6708. exports.os[104] = parser;
  6709. parser = Object.create(null);
  6710. parser[0] = new RegExp("Series30Plus;");
  6711. parser[1] = "Nokia Series 30 Plus";
  6712. parser[2] = 0;
  6713. parser[3] = 0;
  6714. parser[4] = 0;
  6715. exports.os[105] = parser;
  6716. parser = Object.create(null);
  6717. parser[0] = new RegExp("(BB10);.+Version/(\\d+)\\.(\\d+)\\.(\\d+)");
  6718. parser[1] = "BlackBerry OS";
  6719. parser[2] = 0;
  6720. parser[3] = 0;
  6721. parser[4] = 0;
  6722. exports.os[106] = parser;
  6723. parser = Object.create(null);
  6724. parser[0] = new RegExp("(Black[Bb]erry)[0-9a-z]+/(\\d+)\\.(\\d+)\\.(\\d+)(?:\\.(\\d+))?");
  6725. parser[1] = "BlackBerry OS";
  6726. parser[2] = 0;
  6727. parser[3] = 0;
  6728. parser[4] = 0;
  6729. exports.os[107] = parser;
  6730. parser = Object.create(null);
  6731. parser[0] = new RegExp("(Black[Bb]erry).+Version/(\\d+)\\.(\\d+)\\.(\\d+)(?:\\.(\\d+))?");
  6732. parser[1] = "BlackBerry OS";
  6733. parser[2] = 0;
  6734. parser[3] = 0;
  6735. parser[4] = 0;
  6736. exports.os[108] = parser;
  6737. parser = Object.create(null);
  6738. parser[0] = new RegExp("(RIM Tablet OS) (\\d+)\\.(\\d+)\\.(\\d+)");
  6739. parser[1] = "BlackBerry Tablet OS";
  6740. parser[2] = 0;
  6741. parser[3] = 0;
  6742. parser[4] = 0;
  6743. exports.os[109] = parser;
  6744. parser = Object.create(null);
  6745. parser[0] = new RegExp("(Play[Bb]ook)");
  6746. parser[1] = "BlackBerry Tablet OS";
  6747. parser[2] = 0;
  6748. parser[3] = 0;
  6749. parser[4] = 0;
  6750. exports.os[110] = parser;
  6751. parser = Object.create(null);
  6752. parser[0] = new RegExp("(Black[Bb]erry)");
  6753. parser[1] = "BlackBerry OS";
  6754. parser[2] = 0;
  6755. parser[3] = 0;
  6756. parser[4] = 0;
  6757. exports.os[111] = parser;
  6758. parser = Object.create(null);
  6759. parser[0] = new RegExp("\\((?:Mobile|Tablet);.+Gecko/18.0 Firefox/\\d+\\.\\d+");
  6760. parser[1] = "Firefox OS";
  6761. parser[2] = "1";
  6762. parser[3] = "0";
  6763. parser[4] = "1";
  6764. exports.os[112] = parser;
  6765. parser = Object.create(null);
  6766. parser[0] = new RegExp("\\((?:Mobile|Tablet);.+Gecko/18.1 Firefox/\\d+\\.\\d+");
  6767. parser[1] = "Firefox OS";
  6768. parser[2] = "1";
  6769. parser[3] = "1";
  6770. parser[4] = 0;
  6771. exports.os[113] = parser;
  6772. parser = Object.create(null);
  6773. parser[0] = new RegExp("\\((?:Mobile|Tablet);.+Gecko/26.0 Firefox/\\d+\\.\\d+");
  6774. parser[1] = "Firefox OS";
  6775. parser[2] = "1";
  6776. parser[3] = "2";
  6777. parser[4] = 0;
  6778. exports.os[114] = parser;
  6779. parser = Object.create(null);
  6780. parser[0] = new RegExp("\\((?:Mobile|Tablet);.+Gecko/28.0 Firefox/\\d+\\.\\d+");
  6781. parser[1] = "Firefox OS";
  6782. parser[2] = "1";
  6783. parser[3] = "3";
  6784. parser[4] = 0;
  6785. exports.os[115] = parser;
  6786. parser = Object.create(null);
  6787. parser[0] = new RegExp("\\((?:Mobile|Tablet);.+Gecko/30.0 Firefox/\\d+\\.\\d+");
  6788. parser[1] = "Firefox OS";
  6789. parser[2] = "1";
  6790. parser[3] = "4";
  6791. parser[4] = 0;
  6792. exports.os[116] = parser;
  6793. parser = Object.create(null);
  6794. parser[0] = new RegExp("\\((?:Mobile|Tablet);.+Gecko/32.0 Firefox/\\d+\\.\\d+");
  6795. parser[1] = "Firefox OS";
  6796. parser[2] = "2";
  6797. parser[3] = "0";
  6798. parser[4] = 0;
  6799. exports.os[117] = parser;
  6800. parser = Object.create(null);
  6801. parser[0] = new RegExp("\\((?:Mobile|Tablet);.+Gecko/34.0 Firefox/\\d+\\.\\d+");
  6802. parser[1] = "Firefox OS";
  6803. parser[2] = "2";
  6804. parser[3] = "1";
  6805. parser[4] = 0;
  6806. exports.os[118] = parser;
  6807. parser = Object.create(null);
  6808. parser[0] = new RegExp("\\((?:Mobile|Tablet);.+Firefox/\\d+\\.\\d+");
  6809. parser[1] = "Firefox OS";
  6810. parser[2] = 0;
  6811. parser[3] = 0;
  6812. parser[4] = 0;
  6813. exports.os[119] = parser;
  6814. parser = Object.create(null);
  6815. parser[0] = new RegExp("(BREW)[ /](\\d+)\\.(\\d+)\\.(\\d+)");
  6816. parser[1] = 0;
  6817. parser[2] = 0;
  6818. parser[3] = 0;
  6819. parser[4] = 0;
  6820. exports.os[120] = parser;
  6821. parser = Object.create(null);
  6822. parser[0] = new RegExp("(BREW);");
  6823. parser[1] = 0;
  6824. parser[2] = 0;
  6825. parser[3] = 0;
  6826. parser[4] = 0;
  6827. exports.os[121] = parser;
  6828. parser = Object.create(null);
  6829. parser[0] = new RegExp("(Brew MP|BMP)[ /](\\d+)\\.(\\d+)\\.(\\d+)");
  6830. parser[1] = "Brew MP";
  6831. parser[2] = 0;
  6832. parser[3] = 0;
  6833. parser[4] = 0;
  6834. exports.os[122] = parser;
  6835. parser = Object.create(null);
  6836. parser[0] = new RegExp("BMP;");
  6837. parser[1] = "Brew MP";
  6838. parser[2] = 0;
  6839. parser[3] = 0;
  6840. parser[4] = 0;
  6841. exports.os[123] = parser;
  6842. parser = Object.create(null);
  6843. parser[0] = new RegExp("(GoogleTV)(?: (\\d+)\\.(\\d+)(?:\\.(\\d+))?|/[\\da-z]+)");
  6844. parser[1] = 0;
  6845. parser[2] = 0;
  6846. parser[3] = 0;
  6847. parser[4] = 0;
  6848. exports.os[124] = parser;
  6849. parser = Object.create(null);
  6850. parser[0] = new RegExp("(WebTV)/(\\d+).(\\d+)");
  6851. parser[1] = 0;
  6852. parser[2] = 0;
  6853. parser[3] = 0;
  6854. parser[4] = 0;
  6855. exports.os[125] = parser;
  6856. parser = Object.create(null);
  6857. parser[0] = new RegExp("(CrKey)(?:[/](\\d+)\\.(\\d+)(?:\\.(\\d+))?)?");
  6858. parser[1] = "Chromecast";
  6859. parser[2] = 0;
  6860. parser[3] = 0;
  6861. parser[4] = 0;
  6862. exports.os[126] = parser;
  6863. parser = Object.create(null);
  6864. parser[0] = new RegExp("(hpw|web)OS/(\\d+)\\.(\\d+)(?:\\.(\\d+))?");
  6865. parser[1] = "webOS";
  6866. parser[2] = 0;
  6867. parser[3] = 0;
  6868. parser[4] = 0;
  6869. exports.os[127] = parser;
  6870. parser = Object.create(null);
  6871. parser[0] = new RegExp("(VRE);");
  6872. parser[1] = 0;
  6873. parser[2] = 0;
  6874. parser[3] = 0;
  6875. parser[4] = 0;
  6876. exports.os[128] = parser;
  6877. parser = Object.create(null);
  6878. parser[0] = new RegExp("(Fedora|Red Hat|PCLinuxOS|Puppy|Ubuntu|Kindle|Bada|Lubuntu|BackTrack|Slackware|(?:Free|Open|Net|\\b)BSD)[/ ](\\d+)\\.(\\d+)(?:\\.(\\d+)(?:\\.(\\d+))?)?");
  6879. parser[1] = 0;
  6880. parser[2] = 0;
  6881. parser[3] = 0;
  6882. parser[4] = 0;
  6883. exports.os[129] = parser;
  6884. parser = Object.create(null);
  6885. parser[0] = new RegExp("(Linux)[ /](\\d+)\\.(\\d+)(?:\\.(\\d+))?.*gentoo");
  6886. parser[1] = "Gentoo";
  6887. parser[2] = 0;
  6888. parser[3] = 0;
  6889. parser[4] = 0;
  6890. exports.os[130] = parser;
  6891. parser = Object.create(null);
  6892. parser[0] = new RegExp("\\((Bada);");
  6893. parser[1] = 0;
  6894. parser[2] = 0;
  6895. parser[3] = 0;
  6896. parser[4] = 0;
  6897. exports.os[131] = parser;
  6898. parser = Object.create(null);
  6899. parser[0] = new RegExp("(Windows|Android|WeTab|Maemo|Web0S)");
  6900. parser[1] = 0;
  6901. parser[2] = 0;
  6902. parser[3] = 0;
  6903. parser[4] = 0;
  6904. exports.os[132] = parser;
  6905. parser = Object.create(null);
  6906. parser[0] = new RegExp("(Ubuntu|Kubuntu|Arch Linux|CentOS|Slackware|Gentoo|openSUSE|SUSE|Red Hat|Fedora|PCLinuxOS|Mageia|(?:Free|Open|Net|\\b)BSD)");
  6907. parser[1] = 0;
  6908. parser[2] = 0;
  6909. parser[3] = 0;
  6910. parser[4] = 0;
  6911. exports.os[133] = parser;
  6912. parser = Object.create(null);
  6913. parser[0] = new RegExp("(Linux)(?:[ /](\\d+)\\.(\\d+)(?:\\.(\\d+))?)?");
  6914. parser[1] = 0;
  6915. parser[2] = 0;
  6916. parser[3] = 0;
  6917. parser[4] = 0;
  6918. exports.os[134] = parser;
  6919. parser = Object.create(null);
  6920. parser[0] = new RegExp("SunOS");
  6921. parser[1] = "Solaris";
  6922. parser[2] = 0;
  6923. parser[3] = 0;
  6924. parser[4] = 0;
  6925. exports.os[135] = parser;
  6926. parser = Object.create(null);
  6927. parser[0] = new RegExp("^(Roku)/DVP-(\\d+)\\.(\\d+)");
  6928. parser[1] = 0;
  6929. parser[2] = 0;
  6930. parser[3] = 0;
  6931. parser[4] = 0;
  6932. exports.os[136] = parser;
  6933. parser = Object.create(null);
  6934. parser[0] = new RegExp("(iOS) (\\d+)\\.(\\d+)(?:\\.(\\d+))?");
  6935. parser[1] = 0;
  6936. parser[2] = 0;
  6937. parser[3] = 0;
  6938. parser[4] = 0;
  6939. exports.os[137] = parser;
  6940. exports.os.length = 138;