PageSourceSearch

https://www.carecure-dc-matsudo.com/assets/lib/js/ua-parser.min.js

js carecure-dc-matsudo.com collected 2026-10-05 10:44:54 UTC 25,417 bytes, 612 lines download raw bytes

vendor: 5,624 bytes, lines 1-175
1/* UAParser.js v1.0.35
2   Copyright © 2012-2021 Faisal Salman <[email protected]>
3   MIT License */
4(function (window, undefined) {
5	'use strict';
6	var LIBVERSION = '1.0.35',
7		EMPTY = '',
8		UNKNOWN = '?',
9		FUNC_TYPE = 'function',
10		UNDEF_TYPE = 'undefined',
11		OBJ_TYPE = 'object',
12		STR_TYPE = 'string',
13		MAJOR = 'major',
14		MODEL = 'model',
15		NAME = 'name',
16		TYPE = 'type',
17		VENDOR = 'vendor',
18		VERSION = 'version',
19		ARCHITECTURE = 'architecture',
20		CONSOLE = 'console',
21		MOBILE = 'mobile',
22		TABLET = 'tablet',
23		SMARTTV = 'smarttv',
24		WEARABLE = 'wearable',
25		EMBEDDED = 'embedded',
26		UA_MAX_LENGTH = 350;
27	var AMAZON = 'Amazon',
28		APPLE = 'Apple',
29		ASUS = 'ASUS',
30		BLACKBERRY = 'BlackBerry',
31		BROWSER = 'Browser',
32		CHROME = 'Chrome',
33		EDGE = 'Edge',
34		FIREFOX = 'Firefox',
35		GOOGLE = 'Google',
36		HUAWEI = 'Huawei',
37		LG = 'LG',
38		MICROSOFT = 'Microsoft',
39		MOTOROLA = 'Motorola',
40		OPERA = 'Opera',
41		SAMSUNG = 'Samsung',
42		SHARP = 'Sharp',
43		SONY = 'Sony',
44		VIERA = 'Viera',
45		XIAOMI = 'Xiaomi',
46		ZEBRA = 'Zebra',
47		FACEBOOK = 'Facebook',
48		CHROMIUM_OS = 'Chromium OS',
49		MAC_OS = 'Mac OS';
50	var extend = function (regexes, extensions) {
51			var mergedRegexes = {};
52			for (var i in regexes) {
53				if (extensions[i] && extensions[i].length % 2 === 0) {
54					mergedRegexes[i] = extensions[i].concat(regexes[i]);
55				} else {
56					mergedRegexes[i] = regexes[i];
57				}
58			}
59			return mergedRegexes;
60		},
61		enumerize = function (arr) {
62			var enums = {};
63			for (var i = 0; i < arr.length; i++) {
64				enums[arr[i].toUpperCase()] = arr[i];
65			}
66			return enums;
67		},
68		has = function (str1, str2) {
69			return typeof str1 === STR_TYPE ? lowerize(str2).indexOf(lowerize(str1)) !== -1 : false;
70		},
71		lowerize = function (str) {
72			return str.toLowerCase();
73		},
74		majorize = function (version) {
75			return typeof version === STR_TYPE ? version.replace(/[^\d\.]/g, EMPTY).split('.')[0] : undefined;
76		},
77		trim = function (str, len) {
78			if (typeof str === STR_TYPE) {
79				str = str.replace(/^\s\s*/, EMPTY);
80				return typeof len === UNDEF_TYPE ? str : str.substring(0, UA_MAX_LENGTH);
81			}
82		};
83	var rgxMapper = function (ua, arrays) {
84			var i = 0,
85				j,
86				k,
87				p,
88				q,
89				matches,
90				match;
91			while (i < arrays.length && !matches) {
92				var regex = arrays[i],
93					props = arrays[i + 1];
94				j = k = 0;
95				while (j < regex.length && !matches) {
96					if (!regex[j]) {
97						break;
98					}
99					matches = regex[j++].exec(ua);
100					if (!!matches) {
101						for (p = 0; p < props.length; p++) {
102							match = matches[++k];
103							q = props[p];
104							if (typeof q === OBJ_TYPE && q.length > 0) {
105								if (q.length === 2) {
106									if (typeof q[1] == FUNC_TYPE) {
107										this[q[0]] = q[1].call(this, match);
108									} else {
109										this[q[0]] = q[1];
110									}
111								} else if (q.length === 3) {
112									if (typeof q[1] === FUNC_TYPE && !(q[1].exec && q[1].test)) {
113										this[q[0]] = match ? q[1].call(this, match, q[2]) : undefined;
114									} else {
115										this[q[0]] = match ? match.replace(q[1], q[2]) : undefined;
116									}
117								} else if (q.length === 4) {
118									this[q[0]] = match ? q[3].call(this, match.replace(q[1], q[2])) : undefined;
119								}
120							} else {
121								this[q] = match ? match : undefined;
122							}
123						}
124					}
125				}
126				i += 2;
127			}
128		},
129		strMapper = function (str, map) {
130			for (var i in map) {
131				if (typeof map[i] === OBJ_TYPE && map[i].length > 0) {
132					for (var j = 0; j < map[i].length; j++) {
133						if (has(map[i][j], str)) {
134							return i === UNKNOWN ? undefined : i;
135						}
136					}
137				} else if (has(map[i], str)) {
138					return i === UNKNOWN ? undefined : i;
139				}
140			}
141			return str;
142		};
143	var oldSafariMap = {'1.0': '/8', 1.2: '/1', 1.3: '/3', '2.0': '/412', '2.0.2': '/416', '2.0.3': '/417', '2.0.4': '/419', '?': '/'},
144		windowsVersionMap = {ME: '4.90', 'NT 3.11': 'NT3.51', 'NT 4.0': 'NT4.0', 2e3: 'NT 5.0', XP: ['NT 5.1', 'NT 5.2'], Vista: 'NT 6.0', 7: 'NT 6.1', 8: 'NT 6.2', 8.1: 'NT 6.3', 10: ['NT 6.4', 'NT 10.0'], RT: 'ARM'};
145	var regexes = {
146		browser: [
147			[/\b(?:crmo|crios)\/([\w\.]+)/i],
148			[VERSION, [NAME, 'Chrome']],
149			[/edg(?:e|ios|a)?\/([\w\.]+)/i],
150			[VERSION, [NAME, 'Edge']],
151			[/(opera mini)\/([-\w\.]+)/i, /(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i, /(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i],
152			[NAME, VERSION],
153			[/opios[\/ ]+([\w\.]+)/i],
154			[VERSION, [NAME, OPERA + ' Mini']],
155			[/\bopr\/([\w\.]+)/i],
156			[VERSION, [NAME, OPERA]],
157			[/(kindle)\/([\w\.]+)/i, /(lunascape|maxthon|netfront|jasmine|blazer)[\/ ]?([\w\.]*)/i, /(avant |iemobile|slim)(?:browser)?[\/ ]?([\w\.]*)/i, /(ba?idubrowser)[\/ ]?([\w\.]+)/i, /(?:ms|\()(ie) ([\w\.]+)/i, /(flock|rockmelt|midori|epiphany|silk|skyfire|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|qq|duckduckgo)\/([-\w\.]+)/i, /(heytap|ovi)browser\/([\d\.]+)/i, /(weibo)__([\d\.]+)/i],
158			[NAME, VERSION],
159			[/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i],
160			[VERSION, [NAME, 'UC' + BROWSER]],
161			[/microm.+\bqbcore\/([\w\.]+)/i, /\bqbcore\/([\w\.]+).+microm/i],
162			[VERSION, [NAME, 'WeChat(Win) Desktop']],
163			[/micromessenger\/([\w\.]+)/i],
164			[VERSION, [NAME, 'WeChat']],
165			[/konqueror\/([\w\.]+)/i],
166			[VERSION, [NAME, 'Konqueror']],
167			[/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i],
168			[VERSION, [NAME, 'IE']],
169			[/ya(?:search)?browser\/([\w\.]+)/i],
170			[VERSION, [NAME, 'Yandex']],
171			[/(avast|avg)\/([\w\.]+)/i],
172			[[NAME, /(.+)/, '$1 Secure ' + BROWSER], VERSION],
173			[/\bfocus\/([\w\.]+)/i],
174			[VERSION, [NAME, FIREFOX + ' Focus']],
175			[/\bopt\/([\w\.]+)/i],
vendor: 12,590 bytes, lines 176-441
176			[VERSION, [NAME, OPERA + ' Touch']],
177			[/coc_coc\w+\/([\w\.]+)/i],
178			[VERSION, [NAME, 'Coc Coc']],
179			[/dolfin\/([\w\.]+)/i],
180			[VERSION, [NAME, 'Dolphin']],
181			[/coast\/([\w\.]+)/i],
182			[VERSION, [NAME, OPERA + ' Coast']],
183			[/miuibrowser\/([\w\.]+)/i],
184			[VERSION, [NAME, 'MIUI ' + BROWSER]],
185			[/fxios\/([-\w\.]+)/i],
186			[VERSION, [NAME, FIREFOX]],
187			[/\bqihu|(qi?ho?o?|360)browser/i],
188			[[NAME, '360 ' + BROWSER]],
189			[/(oculus|samsung|sailfish|huawei)browser\/([\w\.]+)/i],
190			[[NAME, /(.+)/, '$1 ' + BROWSER], VERSION],
191			[/(comodo_dragon)\/([\w\.]+)/i],
192			[[NAME, /_/g, ' '], VERSION],
193			[/(electron)\/([\w\.]+) safari/i, /(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i, /m?(qqbrowser|baiduboxapp|2345Explorer)[\/ ]?([\w\.]+)/i],
194			[NAME, VERSION],
195			[/(metasr)[\/ ]?([\w\.]+)/i, /(lbbrowser)/i, /\[(linkedin)app\]/i],
196			[NAME],
197			[/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i],
198			[[NAME, FACEBOOK], VERSION],
199			[/(kakao(?:talk|story))[\/ ]([\w\.]+)/i, /(naver)\(.*?(\d+\.[\w\.]+).*\)/i, /safari (line)\/([\w\.]+)/i, /\b(line)\/([\w\.]+)\/iab/i, /(chromium|instagram)[\/ ]([-\w\.]+)/i],
200			[NAME, VERSION],
201			[/\bgsa\/([\w\.]+) .*safari\//i],
202			[VERSION, [NAME, 'GSA']],
203			[/musical_ly(?:.+app_?version\/|_)([\w\.]+)/i],
204			[VERSION, [NAME, 'TikTok']],
205			[/headlesschrome(?:\/([\w\.]+)| )/i],
206			[VERSION, [NAME, CHROME + ' Headless']],
207			[/ wv\).+(chrome)\/([\w\.]+)/i],
208			[[NAME, CHROME + ' WebView'], VERSION],
209			[/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i],
210			[VERSION, [NAME, 'Android ' + BROWSER]],
211			[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i],
212			[NAME, VERSION],
213			[/version\/([\w\.\,]+) .*mobile\/\w+ (safari)/i],
214			[VERSION, [NAME, 'Mobile Safari']],
215			[/version\/([\w(\.|\,)]+) .*(mobile ?safari|safari)/i],
216			[VERSION, NAME],
217			[/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i],
218			[NAME, [VERSION, strMapper, oldSafariMap]],
219			[/(webkit|khtml)\/([\w\.]+)/i],
220			[NAME, VERSION],
221			[/(navigator|netscape\d?)\/([-\w\.]+)/i],
222			[[NAME, 'Netscape'], VERSION],
223			[/mobile vr; rv:([\w\.]+)\).+firefox/i],
224			[VERSION, [NAME, FIREFOX + ' Reality']],
225			[/ekiohf.+(flow)\/([\w\.]+)/i, /(swiftfox)/i, /(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\/ ]?([\w\.\+]+)/i, /(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([-\w\.]+)$/i, /(firefox)\/([\w\.]+)/i, /(mozilla)\/([\w\.]+) .+rv\:.+gecko\/\d+/i, /(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i, /(links) \(([\w\.]+)/i, /panasonic;(viera)/i],
226			[NAME, VERSION],
227			[/(cobalt)\/([\w\.]+)/i],
228			[NAME, [VERSION, /master.|lts./, '']],
229		],
230		cpu: [[/(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\)]/i], [[ARCHITECTURE, 'amd64']], [/(ia32(?=;))/i], [[ARCHITECTURE, lowerize]], [/((?:i[346]|x)86)[;\)]/i], [[ARCHITECTURE, 'ia32']], [/\b(aarch64|arm(v?8e?l?|_?64))\b/i], [[ARCHITECTURE, 'arm64']], [/\b(arm(?:v[67])?ht?n?[fl]p?)\b/i], [[ARCHITECTURE, 'armhf']], [/windows (ce|mobile); ppc;/i], [[ARCHITECTURE, 'arm']], [/((?:ppc|powerpc)(?:64)?)(?: mac|;|\))/i], [[ARCHITECTURE, /ower/, EMPTY, lowerize]], [/(sun4\w)[;\)]/i], [[ARCHITECTURE, 'sparc']], [/((?:avr32|ia64(?=;))|68k(?=\))|\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\b|pa-risc)/i], [[ARCHITECTURE, lowerize]]],
231		device: [
232			[/\b(sch-i[89]0\d|shw-m380s|sm-[ptx]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i],
233			[MODEL, [VENDOR, SAMSUNG], [TYPE, TABLET]],
234			[/\b((?:s[cgp]h|gt|sm)-\w+|sc[g-]?[\d]+a?|galaxy nexus)/i, /samsung[- ]([-\w]+)/i, /sec-(sgh\w+)/i],
235			[MODEL, [VENDOR, SAMSUNG], [TYPE, MOBILE]],
236			[/(?:\/|\()(ip(?:hone|od)[\w, ]*)(?:\/|;)/i],
237			[MODEL, [VENDOR, APPLE], [TYPE, MOBILE]],
238			[/\((ipad);[-\w\),; ]+apple/i, /applecoremedia\/[\w\.]+ \((ipad)/i, /\b(ipad)\d\d?,\d\d?[;\]].+ios/i],
239			[MODEL, [VENDOR, APPLE], [TYPE, TABLET]],
240			[/(macintosh);/i],
241			[MODEL, [VENDOR, APPLE]],
242			[/\b(sh-?[altvz]?\d\d[a-ekm]?)/i],
243			[MODEL, [VENDOR, SHARP], [TYPE, MOBILE]],
244			[/\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\d{2})\b(?!.+d\/s)/i],
245			[MODEL, [VENDOR, HUAWEI], [TYPE, TABLET]],
246			[/(?:huawei|honor)([-\w ]+)[;\)]/i, /\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][012359c][adn]?)\b(?!.+d\/s)/i],
247			[MODEL, [VENDOR, HUAWEI], [TYPE, MOBILE]],
248			[/\b(poco[\w ]+)(?: bui|\))/i, /\b; (\w+) build\/hm\1/i, /\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i, /\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i, /\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\))/i],
249			[
250				[MODEL, /_/g, ' '],
251				[VENDOR, XIAOMI],
252				[TYPE, MOBILE],
253			],
254			[/\b(mi[-_ ]?(?:pad)(?:[\w_ ]+))(?: bui|\))/i],
255			[
256				[MODEL, /_/g, ' '],
257				[VENDOR, XIAOMI],
258				[TYPE, TABLET],
259			],
260			[/; (\w+) bui.+ oppo/i, /\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i],
261			[MODEL, [VENDOR, 'OPPO'], [TYPE, MOBILE]],
262			[/vivo (\w+)(?: bui|\))/i, /\b(v[12]\d{3}\w?[at])(?: bui|;)/i],
263			[MODEL, [VENDOR, 'Vivo'], [TYPE, MOBILE]],
264			[/\b(rmx[12]\d{3})(?: bui|;|\))/i],
265			[MODEL, [VENDOR, 'Realme'], [TYPE, MOBILE]],
266			[/\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i, /\bmot(?:orola)?[- ](\w*)/i, /((?:moto[\w\(\) ]+|xt\d{3,4}|nexus 6)(?= bui|\)))/i],
267			[MODEL, [VENDOR, MOTOROLA], [TYPE, MOBILE]],
268			[/\b(mz60\d|xoom[2 ]{0,2}) build\//i],
269			[MODEL, [VENDOR, MOTOROLA], [TYPE, TABLET]],
270			[/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i],
271			[MODEL, [VENDOR, LG], [TYPE, TABLET]],
272			[/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i, /\blg[-e;\/ ]+((?!browser|netcast|android tv)\w+)/i, /\blg-?([\d\w]+) bui/i],
273			[MODEL, [VENDOR, LG], [TYPE, MOBILE]],
274			[/(ideatab[-\w ]+)/i, /lenovo ?(s[56]000[-\w]+|tab(?:[\w ]+)|yt[-\d\w]{6}|tb[-\d\w]{6})/i],
275			[MODEL, [VENDOR, 'Lenovo'], [TYPE, TABLET]],
276			[/(?:maemo|nokia).*(n900|lumia \d+)/i, /nokia[-_ ]?([-\w\.]*)/i],
277			[
278				[MODEL, /_/g, ' '],
279				[VENDOR, 'Nokia'],
280				[TYPE, MOBILE],
281			],
282			[/(pixel c)\b/i],
283			[MODEL, [VENDOR, GOOGLE], [TYPE, TABLET]],
284			[/droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i],
285			[MODEL, [VENDOR, GOOGLE], [TYPE, MOBILE]],
286			[/droid.+ (a?\d[0-2]{2}so|[c-g]\d{4}|so[-gl]\w+|xq-a\w[4-7][12])(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i],
287			[MODEL, [VENDOR, SONY], [TYPE, MOBILE]],
288			[/sony tablet [ps]/i, /\b(?:sony)?sgp\w+(?: bui|\))/i],
289			[
290				[MODEL, 'Xperia Tablet'],
291				[VENDOR, SONY],
292				[TYPE, TABLET],
293			],
294			[/ (kb2005|in20[12]5|be20[12][59])\b/i, /(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i],
295			[MODEL, [VENDOR, 'OnePlus'], [TYPE, MOBILE]],
296			[/(alexa)webm/i, /(kf[a-z]{2}wi|aeo[c-r]{2})( bui|\))/i, /(kf[a-z]+)( bui|\)).+silk\//i],
297			[MODEL, [VENDOR, AMAZON], [TYPE, TABLET]],
298			[/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i],
299			[
300				[MODEL, /(.+)/g, 'Fire Phone $1'],
301				[VENDOR, AMAZON],
302				[TYPE, MOBILE],
303			],
304			[/(playbook);[-\w\),; ]+(rim)/i],
305			[MODEL, VENDOR, [TYPE, TABLET]],
306			[/\b((?:bb[a-f]|st[hv])100-\d)/i, /\(bb10; (\w+)/i],
307			[MODEL, [VENDOR, BLACKBERRY], [TYPE, MOBILE]],
308			[/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i],
309			[MODEL, [VENDOR, ASUS], [TYPE, TABLET]],
310			[/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i],
311			[MODEL, [VENDOR, ASUS], [TYPE, MOBILE]],
312			[/(nexus 9)/i],
313			[MODEL, [VENDOR, 'HTC'], [TYPE, TABLET]],
314			[/(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i, /(zte)[- ]([\w ]+?)(?: bui|\/|\))/i, /(alcatel|geeksphone|nexian|panasonic(?!(?:;|\.))|sony(?!-bra))[-_ ]?([-\w]*)/i],
315			[VENDOR, [MODEL, /_/g, ' '], [TYPE, MOBILE]],
316			[/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i],
317			[MODEL, [VENDOR, 'Acer'], [TYPE, TABLET]],
318			[/droid.+; (m[1-5] note) bui/i, /\bmz-([-\w]{2,})/i],
319			[MODEL, [VENDOR, 'Meizu'], [TYPE, MOBILE]],
320			[/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron)[-_ ]?([-\w]*)/i, /(hp) ([\w ]+\w)/i, /(asus)-?(\w+)/i, /(microsoft); (lumia[\w ]+)/i, /(lenovo)[-_ ]?([-\w]+)/i, /(jolla)/i, /(oppo) ?([\w ]+) bui/i],
321			[VENDOR, MODEL, [TYPE, MOBILE]],
322			[/(kobo)\s(ereader|touch)/i, /(archos) (gamepad2?)/i, /(hp).+(touchpad(?!.+tablet)|tablet)/i, /(kindle)\/([\w\.]+)/i, /(nook)[\w ]+build\/(\w+)/i, /(dell) (strea[kpr\d ]*[\dko])/i, /(le[- ]+pan)[- ]+(\w{1,9}) bui/i, /(trinity)[- ]*(t\d{3}) bui/i, /(gigaset)[- ]+(q\w{1,9}) bui/i, /(vodafone) ([\w ]+)(?:\)| bui)/i],
323			[VENDOR, MODEL, [TYPE, TABLET]],
324			[/(surface duo)/i],
325			[MODEL, [VENDOR, MICROSOFT], [TYPE, TABLET]],
326			[/droid [\d\.]+; (fp\du?)(?: b|\))/i],
327			[MODEL, [VENDOR, 'Fairphone'], [TYPE, MOBILE]],
328			[/(u304aa)/i],
329			[MODEL, [VENDOR, 'AT&T'], [TYPE, MOBILE]],
330			[/\bsie-(\w*)/i],
331			[MODEL, [VENDOR, 'Siemens'], [TYPE, MOBILE]],
332			[/\b(rct\w+) b/i],
333			[MODEL, [VENDOR, 'RCA'], [TYPE, TABLET]],
334			[/\b(venue[\d ]{2,7}) b/i],
335			[MODEL, [VENDOR, 'Dell'], [TYPE, TABLET]],
336			[/\b(q(?:mv|ta)\w+) b/i],
337			[MODEL, [VENDOR, 'Verizon'], [TYPE, TABLET]],
338			[/\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i],
339			[MODEL, [VENDOR, 'Barnes & Noble'], [TYPE, TABLET]],
340			[/\b(tm\d{3}\w+) b/i],
341			[MODEL, [VENDOR, 'NuVision'], [TYPE, TABLET]],
342			[/\b(k88) b/i],
343			[MODEL, [VENDOR, 'ZTE'], [TYPE, TABLET]],
344			[/\b(nx\d{3}j) b/i],
345			[MODEL, [VENDOR, 'ZTE'], [TYPE, MOBILE]],
346			[/\b(gen\d{3}) b.+49h/i],
347			[MODEL, [VENDOR, 'Swiss'], [TYPE, MOBILE]],
348			[/\b(zur\d{3}) b/i],
349			[MODEL, [VENDOR, 'Swiss'], [TYPE, TABLET]],
350			[/\b((zeki)?tb.*\b) b/i],
351			[MODEL, [VENDOR, 'Zeki'], [TYPE, TABLET]],
352			[/\b([yr]\d{2}) b/i, /\b(dragon[- ]+touch |dt)(\w{5}) b/i],
353			[[VENDOR, 'Dragon Touch'], MODEL, [TYPE, TABLET]],
354			[/\b(ns-?\w{0,9}) b/i],
355			[MODEL, [VENDOR, 'Insignia'], [TYPE, TABLET]],
356			[/\b((nxa|next)-?\w{0,9}) b/i],
357			[MODEL, [VENDOR, 'NextBook'], [TYPE, TABLET]],
358			[/\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i],
359			[[VENDOR, 'Voice'], MODEL, [TYPE, MOBILE]],
360			[/\b(lvtel\-)?(v1[12]) b/i],
361			[[VENDOR, 'LvTel'], MODEL, [TYPE, MOBILE]],
362			[/\b(ph-1) /i],
363			[MODEL, [VENDOR, 'Essential'], [TYPE, MOBILE]],
364			[/\b(v(100md|700na|7011|917g).*\b) b/i],
365			[MODEL, [VENDOR, 'Envizen'], [TYPE, TABLET]],
366			[/\b(trio[-\w\. ]+) b/i],
367			[MODEL, [VENDOR, 'MachSpeed'], [TYPE, TABLET]],
368			[/\btu_(1491) b/i],
369			[MODEL, [VENDOR, 'Rotor'], [TYPE, TABLET]],
370			[/(shield[\w ]+) b/i],
371			[MODEL, [VENDOR, 'Nvidia'], [TYPE, TABLET]],
372			[/(sprint) (\w+)/i],
373			[VENDOR, MODEL, [TYPE, MOBILE]],
374			[/(kin\.[onetw]{3})/i],
375			[
376				[MODEL, /\./g, ' '],
377				[VENDOR, MICROSOFT],
378				[TYPE, MOBILE],
379			],
380			[/droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i],
381			[MODEL, [VENDOR, ZEBRA], [TYPE, TABLET]],
382			[/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i],
383			[MODEL, [VENDOR, ZEBRA], [TYPE, MOBILE]],
384			[/smart-tv.+(samsung)/i],
385			[VENDOR, [TYPE, SMARTTV]],
386			[/hbbtv.+maple;(\d+)/i],
387			[
388				[MODEL, /^/, 'SmartTV'],
389				[VENDOR, SAMSUNG],
390				[TYPE, SMARTTV],
391			],
392			[/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i],
393			[
394				[VENDOR, LG],
395				[TYPE, SMARTTV],
396			],
397			[/(apple) ?tv/i],
398			[VENDOR, [MODEL, APPLE + ' TV'], [TYPE, SMARTTV]],
399			[/crkey/i],
400			[
401				[MODEL, CHROME + 'cast'],
402				[VENDOR, GOOGLE],
403				[TYPE, SMARTTV],
404			],
405			[/droid.+aft(\w)( bui|\))/i],
406			[MODEL, [VENDOR, AMAZON], [TYPE, SMARTTV]],
407			[/\(dtv[\);].+(aquos)/i, /(aquos-tv[\w ]+)\)/i],
408			[MODEL, [VENDOR, SHARP], [TYPE, SMARTTV]],
409			[/(bravia[\w ]+)( bui|\))/i],
410			[MODEL, [VENDOR, SONY], [TYPE, SMARTTV]],
411			[/(mitv-\w{5}) bui/i],
412			[MODEL, [VENDOR, XIAOMI], [TYPE, SMARTTV]],
413			[/Hbbtv.*(technisat) (.*);/i],
414			[VENDOR, MODEL, [TYPE, SMARTTV]],
415			[/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i, /hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i],
416			[
417				[VENDOR, trim],
418				[MODEL, trim],
419				[TYPE, SMARTTV],
420			],
421			[/\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i],
422			[[TYPE, SMARTTV]],
423			[/(ouya)/i, /(nintendo) ([wids3utch]+)/i],
424			[VENDOR, MODEL, [TYPE, CONSOLE]],
425			[/droid.+; (shield) bui/i],
426			[MODEL, [VENDOR, 'Nvidia'], [TYPE, CONSOLE]],
427			[/(playstation [345portablevi]+)/i],
428			[MODEL, [VENDOR, SONY], [TYPE, CONSOLE]],
429			[/\b(xbox(?: one)?(?!; xbox))[\); ]/i],
430			[MODEL, [VENDOR, MICROSOFT], [TYPE, CONSOLE]],
431			[/((pebble))app/i],
432			[VENDOR, MODEL, [TYPE, WEARABLE]],
433			[/(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i],
434			[MODEL, [VENDOR, APPLE], [TYPE, WEARABLE]],
435			[/droid.+; (glass) \d/i],
436			[MODEL, [VENDOR, GOOGLE], [TYPE, WEARABLE]],
437			[/droid.+; (wt63?0{2,3})\)/i],
438			[MODEL, [VENDOR, ZEBRA], [TYPE, WEARABLE]],
439			[/(quest( 2| pro)?)/i],
440			[MODEL, [VENDOR, FACEBOOK], [TYPE, WEARABLE]],
441			[/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i],
vendor: 7,203 bytes, lines 442-612
442			[VENDOR, [TYPE, EMBEDDED]],
443			[/(aeobc)\b/i],
444			[MODEL, [VENDOR, AMAZON], [TYPE, EMBEDDED]],
445			[/droid .+?; ([^;]+?)(?: bui|\) applew).+? mobile safari/i],
446			[MODEL, [TYPE, MOBILE]],
447			[/droid .+?; ([^;]+?)(?: bui|\) applew).+?(?! mobile) safari/i],
448			[MODEL, [TYPE, TABLET]],
449			[/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i],
450			[[TYPE, TABLET]],
451			[/(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i],
452			[[TYPE, MOBILE]],
453			[/(android[-\w\. ]{0,9});.+buil/i],
454			[MODEL, [VENDOR, 'Generic']],
455		],
456		engine: [[/windows.+ edge\/([\w\.]+)/i], [VERSION, [NAME, EDGE + 'HTML']], [/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i], [VERSION, [NAME, 'Blink']], [/(presto)\/([\w\.]+)/i, /(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\/([\w\.]+)/i, /ekioh(flow)\/([\w\.]+)/i, /(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i, /(icab)[\/ ]([23]\.[\d\.]+)/i, /\b(libweb)/i], [NAME, VERSION], [/rv\:([\w\.]{1,9})\b.+(gecko)/i], [VERSION, NAME]],
457		os: [
458			[/microsoft (windows) (vista|xp)/i],
459			[NAME, VERSION],
460			[/(windows) nt 6\.2; (arm)/i, /(windows (?:phone(?: os)?|mobile))[\/ ]?([\d\.\w ]*)/i, /(windows)[\/ ]?([ntce\d\. ]+\w)(?!.+xbox)/i],
461			[NAME, [VERSION, strMapper, windowsVersionMap]],
462			[/(win(?=3|9|n)|win 9x )([nt\d\.]+)/i],
463			[
464				[NAME, 'Windows'],
465				[VERSION, strMapper, windowsVersionMap],
466			],
467			[/ip[honead]{2,4}\b(?:.*os ([\w]+) like mac|; opera)/i, /ios;fbsv\/([\d\.]+)/i, /cfnetwork\/.+darwin/i],
468			[
469				[VERSION, /_/g, '.'],
470				[NAME, 'iOS'],
471			],
472			[/(mac os x) ?([\w\. ]*)/i, /(macintosh|mac_powerpc\b)(?!.+haiku)/i],
473			[
474				[NAME, MAC_OS],
475				[VERSION, /_/g, '.'],
476			],
477			[/droid ([\w\.]+)\b.+(android[- ]x86|harmonyos)/i],
478			[VERSION, NAME],
479			[/(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\/ ]?([\w\.]*)/i, /(blackberry)\w*\/([\w\.]*)/i, /(tizen|kaios)[\/ ]([\w\.]+)/i, /\((series40);/i],
480			[NAME, VERSION],
481			[/\(bb(10);/i],
482			[VERSION, [NAME, BLACKBERRY]],
483			[/(?:symbian ?os|symbos|s60(?=;)|series60)[-\/ ]?([\w\.]*)/i],
484			[VERSION, [NAME, 'Symbian']],
485			[/mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i],
486			[VERSION, [NAME, FIREFOX + ' OS']],
487			[/web0s;.+rt(tv)/i, /\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i],
488			[VERSION, [NAME, 'webOS']],
489			[/watch(?: ?os[,\/]|\d,\d\/)([\d\.]+)/i],
490			[VERSION, [NAME, 'watchOS']],
491			[/crkey\/([\d\.]+)/i],
492			[VERSION, [NAME, CHROME + 'cast']],
493			[/(cros) [\w]+(?:\)| ([\w\.]+)\b)/i],
494			[[NAME, CHROMIUM_OS], VERSION],
495			[/panasonic;(viera)/i, /(netrange)mmh/i, /(nettv)\/(\d+\.[\w\.]+)/i, /(nintendo|playstation) ([wids345portablevuch]+)/i, /(xbox); +xbox ([^\);]+)/i, /\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i, /(mint)[\/\(\) ]?(\w*)/i, /(mageia|vectorlinux)[; ]/i, /([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i, /(hurd|linux) ?([\w\.]*)/i, /(gnu) ?([\w\.]*)/i, /\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i, /(haiku) (\w+)/i],
496			[NAME, VERSION],
497			[/(sunos) ?([\w\.\d]*)/i],
498			[[NAME, 'Solaris'], VERSION],
499			[/((?:open)?solaris)[-\/ ]?([\w\.]*)/i, /(aix) ((\d)(?=\.|\)| )[\w\.])*/i, /\b(beos|os\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i, /(unix) ?([\w\.]*)/i],
500			[NAME, VERSION],
501		],
502	};
503	var UAParser = function (ua, extensions) {
504		if (typeof ua === OBJ_TYPE) {
505			extensions = ua;
506			ua = undefined;
507		}
508		if (!(this instanceof UAParser)) {
509			return new UAParser(ua, extensions).getResult();
510		}
511		var _navigator = typeof window !== UNDEF_TYPE && window.navigator ? window.navigator : undefined;
512		var _ua = ua || (_navigator && _navigator.userAgent ? _navigator.userAgent : EMPTY);
513		var _uach = _navigator && _navigator.userAgentData ? _navigator.userAgentData : undefined;
514		var _rgxmap = extensions ? extend(regexes, extensions) : regexes;
515		var _isSelfNav = _navigator && _navigator.userAgent == _ua;
516		this.getBrowser = function () {
517			var _browser = {};
518			_browser[NAME] = undefined;
519			_browser[VERSION] = undefined;
520			rgxMapper.call(_browser, _ua, _rgxmap.browser);
521			_browser[MAJOR] = majorize(_browser[VERSION]);
522			if (_isSelfNav && _navigator && _navigator.brave && typeof _navigator.brave.isBrave == FUNC_TYPE) {
523				_browser[NAME] = 'Brave';
524			}
525			return _browser;
526		};
527		this.getCPU = function () {
528			var _cpu = {};
529			_cpu[ARCHITECTURE] = undefined;
530			rgxMapper.call(_cpu, _ua, _rgxmap.cpu);
531			return _cpu;
532		};
533		this.getDevice = function () {
534			var _device = {};
535			_device[VENDOR] = undefined;
536			_device[MODEL] = undefined;
537			_device[TYPE] = undefined;
538			rgxMapper.call(_device, _ua, _rgxmap.device);
539			if (_isSelfNav && !_device[TYPE] && _uach && _uach.mobile) {
540				_device[TYPE] = MOBILE;
541			}
542			if (_isSelfNav && _device[MODEL] == 'Macintosh' && _navigator && typeof _navigator.standalone !== UNDEF_TYPE && _navigator.maxTouchPoints && _navigator.maxTouchPoints > 2) {
543				_device[MODEL] = 'iPad';
544				_device[TYPE] = TABLET;
545			}
546			return _device;
547		};
548		this.getEngine = function () {
549			var _engine = {};
550			_engine[NAME] = undefined;
551			_engine[VERSION] = undefined;
552			rgxMapper.call(_engine, _ua, _rgxmap.engine);
553			return _engine;
554		};
555		this.getOS = function () {
556			var _os = {};
557			_os[NAME] = undefined;
558			_os[VERSION] = undefined;
559			rgxMapper.call(_os, _ua, _rgxmap.os);
560			if (_isSelfNav && !_os[NAME] && _uach && _uach.platform != 'Unknown') {
561				_os[NAME] = _uach.platform.replace(/chrome os/i, CHROMIUM_OS).replace(/macos/i, MAC_OS);
562			}
563			return _os;
564		};
565		this.getResult = function () {
566			return {ua: this.getUA(), browser: this.getBrowser(), engine: this.getEngine(), os: this.getOS(), device: this.getDevice(), cpu: this.getCPU()};
567		};
568		this.getUA = function () {
569			return _ua;
570		};
571		this.setUA = function (ua) {
572			_ua = typeof ua === STR_TYPE && ua.length > UA_MAX_LENGTH ? trim(ua, UA_MAX_LENGTH) : ua;
573			return this;
574		};
575		this.setUA(_ua);
576		return this;
577	};
578	UAParser.VERSION = LIBVERSION;
579	UAParser.BROWSER = enumerize([NAME, VERSION, MAJOR]);
580	UAParser.CPU = enumerize([ARCHITECTURE]);
581	UAParser.DEVICE = enumerize([MODEL, VENDOR, TYPE, CONSOLE, MOBILE, SMARTTV, TABLET, WEARABLE, EMBEDDED]);
582	UAParser.ENGINE = UAParser.OS = enumerize([NAME, VERSION]);
583	if (typeof exports !== UNDEF_TYPE) {
584		if (typeof module !== UNDEF_TYPE && module.exports) {
585			exports = module.exports = UAParser;
586		}
587		exports.UAParser = UAParser;
588	} else {
589		if (typeof define === FUNC_TYPE && define.amd) {
590			define(function () {
591				return UAParser;
592			});
593		} else if (typeof window !== UNDEF_TYPE) {
594			window.UAParser = UAParser;
595		}
596	}
597	var $ = typeof window !== UNDEF_TYPE && (window.jQuery || window.Zepto);
598	if ($ && !$.ua) {
599		var parser = new UAParser();
600		$.ua = parser.getResult();
601		$.ua.get = function () {
602			return parser.getUA();
603		};
604		$.ua.set = function (ua) {
605			parser.setUA(ua);
606			var result = parser.getResult();
607			for (var prop in result) {
608				$.ua[prop] = result[prop];
609			}
610		};
611	}
612})(typeof window === 'object' ? window : this);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.