// Metro module 4508 (f4509). import { $forInKeys } from "../_hermes/prelude"; (function() { "use strict"; let _this, c14278_1, c14278_2, hasOwnProperty, toString2, forOwn2, getClassOf2, qualify2, reduce2, trim2, c14278_11, parse2; const format2 = function format(a0) { const r9 = String(a0).replace(/^ +| +$/g, ""); const r12 = /^(?:webOS|i(?:OS|P))/.test(r9); let r13 = r9; if (!r12) { const r15 = String(r9); r13 = r15.charAt(0).toUpperCase() + r15.slice(1); } return r13; }; forOwn2 = function forOwn(a0, a1) { for (const key in a0) { const call = hasOwnProperty.call; if (hasOwnProperty.call(a0, key)) { a1(a0[key], key, a0); } } }; getClassOf2 = function getClassOf(a0) { let r10; if (a0 == null) { const r6 = String(a0); r10 = r6.charAt(0).toUpperCase() + r6.slice(1); } else { const call = toString2.call; r10 = toString2.call(a0).slice(8, -1); } return r10; }; qualify2 = function qualify(a0) { return String(a0).replace(/([ -])(?!$)/g, "$1?"); }; reduce2 = function reduce(a0, a1) { let r6, r17; L13: { const length = a0.length; if (typeof length === "number" && length > -1 && length <= c14278_1) { let r26 = 0; const r4 = 0 < length; let r27 = null; r6 = null; if (!r4) { break L13; } while (true) { r27 = a1(r27, a0[r26], r26, a0); r26 = r26 + 1; r6 = r27; if (!(r26 < length)) { break L13; } } } let r7 = null; r6 = null; for (const key in a0) { r17 = r7; r6 = r17; const call = hasOwnProperty.call; r7 = hasOwnProperty.call(a0, key) ? a1(r17, a0[key], key, a0) : r17; } r17 = r7; r6 = r17; } return r6; }; trim2 = function trim(a0) { return String(a0).replace(/^ +| +$/g, ""); }; const r12 = { function: true, object: true }; let r9 = r12[typeof globalThis.window] && window || this; _this = r9; const r14 = r12[typeof exports] && exports; const r27 = r12[typeof module] && module && !module.nodeType && module; const r29 = r14 && r27 && typeof global === "object" && global; if (!(r29 ? r29.global !== r29 && r29.window !== r29 && r29.self !== r29 : !r29)) { _this = r29; r9 = r29; } L40: { c14278_1 = Math.pow(2, 53) - 1; c14278_2 = /\bOpera/; const prototype = Object.prototype; hasOwnProperty = prototype.hasOwnProperty; toString2 = prototype.toString; parse2 = function parse(a0) { let r234, r358, r398, r399, r452, r453, r454, r455, r569, r704, r705, r707, r730, r731, r803, r825, r954, r956, manufacturer, manufacturer2, product3; let c25174_1, product; let c25174_0 = a0; let r23 = _this; const r5 = (a0 ? typeof a0 === "object" : a0) && getClassOf2(a0) != "String"; let description = a0; if (r5) { c25174_0 = null; r23 = a0; description = null; } const r20 = r23.navigator || {}; const r56 = r20.userAgent || ""; if (!description) { c25174_0 = r56; description = r56; } const r59 = r5 ? !!r20.likeChrome : /\bChrome\b/.test(description) && !/internal|\n/i.test(toString2.toString()); const r35 = r5 ? "Object" : "ScriptBridgingProxyObject"; const r65 = r5 ? "Object" : "Environment"; const r67 = r5 ? r23.java ? "JavaPackage" : getClassOf2(r23.java) : getClassOf2(r23.java); const r25 = r5 ? "Object" : "RuntimeObject"; const r38 = /\bJava/.test(r67) && r23.java; const r37 = r38 && getClassOf2(r23.environment) == r65; let r28 = r38 ? "a" : "α"; const r32 = r38 ? "b" : "β"; const r44 = r23.document || {}; const r76 = r23.operamini || r23.opera; const r80 = r5 && r76 ? r76["[[Class]]"] : getClassOf2(r76); const r81 = c14278_2.test(r80); let r83 = null; let r34 = null; if (r81) { r83 = r76; r34 = r80; } let r16 = description == r56; const r84 = (r16 ? r83 : r16) && typeof r83.version === "function" && r83.version(); const getProduct = function getProduct(a0) { return reduce2(a0, function(a0, a1) { const r8 = a1.pattern || String(a1).replace(/([ -])(?!$)/g, "$1?"); let r10 = a0; let r17 = !a0; if (!a0) { const r23 = RegExp("\\b" + r8 + " *\\d+[.\\w_]*", "i"); r17 = r23.exec(c25174_0) || RegExp("\\b" + r8 + " *\\w+-[\\w]*", "i").exec(c25174_0) || RegExp("\\b" + r8 + "(?:; *(?:[a-z]+[_-])?[a-z]+\\d+|[^ ();-]*)", "i").exec(c25174_0); r10 = r17; } let r38 = r10; if (r17) { const r54 = String(a1.label ? RegExp(r8, "i").test(a1.label) ? r10 : a1.label : r10).split("/"); if (r54[1] && !/[\d.]+/.test(r54[0])) { r54[0] = r54[0] + (" " + r54[1]); } const r65 = a1.label || a1; const r95 = String(r54[0].replace(RegExp(r8, "i"), r65).replace(RegExp("; *(?:" + r65 + "[_-])?", "i"), " ").replace(RegExp("(" + r65 + ")[-_.]?(\\w)", "i"), "$1 $2")).replace(/^ +| +$/g, ""); const r98 = /^(?:webOS|i(?:OS|P))/.test(r95); let r99 = r95; if (!r98) { const r101 = String(r95); r99 = r101.charAt(0).toUpperCase() + r101.slice(1); } r38 = r99; } return r38; }); }; let r87 = r84; let r31 = "Presto"; const r26 = (function getLayout(a0) { return reduce2(a0, function(a0, a1) { return a0 ? a0 : RegExp("\\b" + (a1.pattern || String(a1).replace(/([ -])(?!$)/g, "$1?")) + "\\b", "i").exec(c25174_0) && (a1.label || a1); }); })([{ label: "EdgeHTML", pattern: "Edge" }, "Trident", { label: "WebKit", pattern: "AppleWebKit" }, "iCab", "Presto", "NetFront", "Tasman", "KHTML", "Gecko"]); let r121 = (function getName(a0) { return reduce2(a0, function(a0, a1) { return a0 ? a0 : RegExp("\\b" + (a1.pattern || String(a1).replace(/([ -])(?!$)/g, "$1?")) + "\\b", "i").exec(c25174_0) && (a1.label || a1); }); })(["Adobe AIR", "Arora", "Avant Browser", "Breach", "Camino", "Electron", "Epiphany", "Fennec", "Flock", "Galeon", "GreenBrowser", "iCab", "Iceweasel", "K-Meleon", "Konqueror", "Lunascape", "Maxthon", { label: "Microsoft Edge", pattern: "Edge" }, "Midori", "Nook Browser", "PaleMoon", "PhantomJS", "Raven", "Rekonq", "RockMelt", { label: "Samsung Internet", pattern: "SamsungBrowser" }, "SeaMonkey", { label: "Silk", pattern: "(?:Cloud9|Silk-Accelerated)" }, "Sleipnir", "SlimBrowser", { label: "SRWare Iron", pattern: "Iron" }, "Sunrise", "Swiftfox", "Waterfox", "WebPositive", "Opera Mini", { label: "Opera Mini", pattern: "OPiOS" }, "Opera", { label: "Opera", pattern: "OPR" }, "Chrome", { label: "Chrome Mobile", pattern: "(?:CriOS|CrMo)" }, { label: "Firefox", pattern: "(?:Firefox|Minefield)" }, { label: "Firefox for iOS", pattern: "FxiOS" }, { label: "IE", pattern: "IEMobile" }, { label: "IE", pattern: "MSIE" }, "Safari"]); let r152 = getProduct([{ label: "BlackBerry", pattern: "BB10" }, "BlackBerry", { label: "Galaxy S", pattern: "GT-I9000" }, { label: "Galaxy S2", pattern: "GT-I9100" }, { label: "Galaxy S3", pattern: "GT-I9300" }, { label: "Galaxy S4", pattern: "GT-I9500" }, { label: "Galaxy S5", pattern: "SM-G900" }, { label: "Galaxy S6", pattern: "SM-G920" }, { label: "Galaxy S6 Edge", pattern: "SM-G925" }, { label: "Galaxy S7", pattern: "SM-G930" }, { label: "Galaxy S7 Edge", pattern: "SM-G935" }, "Google TV", "Lumia", "iPad", "iPod", "iPhone", "Kindle", { label: "Kindle Fire", pattern: "(?:Cloud9|Silk-Accelerated)" }, "Nexus", "Nook", "PlayBook", "PlayStation Vita", "PlayStation", "TouchPad", "Transformer", { label: "Wii U", pattern: "WiiU" }, "Wii", "Xbox One", { label: "Xbox 360", pattern: "Xbox" }, "Xoom"]); product = r152; const r36 = (function getManufacturer(a0) { return reduce2(a0, function(a0, a1, a2) { let r1 = a0; if (!a0) { r1 = (a1[product] || a1[/^[a-z]+(?: +[a-z]+\b)*/i.exec(product)] || RegExp("\\b" + String(a2).replace(/([ -])(?!$)/g, "$1?") + "(?:\\b|\\w*\\d)", "i").exec(c25174_0)) && a2; } return r1; }); })({ Apple: { iPad: 1, iPhone: 1, iPod: 1 }, Archos: {}, Amazon: { Kindle: 1, "Kindle Fire": 1 }, Asus: { Transformer: 1 }, "Barnes & Noble": { Nook: 1 }, BlackBerry: { PlayBook: 1 }, Google: { "Google TV": 1, Nexus: 1 }, HP: { TouchPad: 1 }, HTC: {}, LG: {}, Microsoft: { Xbox: 1, "Xbox One": 1 }, Motorola: { Xoom: 1 }, Nintendo: { "Wii U": 1, Wii: 1 }, Nokia: { Lumia: 1 }, Samsung: { "Galaxy S": 1, "Galaxy S2": 1, "Galaxy S3": 1, "Galaxy S4": 1 }, Sony: { PlayStation: 1, "PlayStation Vita": 1 } }); let r24 = "Kubuntu"; const r39 = (function getOS(a0) { return reduce2(a0, function(a0, a1) { const r10 = a1.pattern || String(a1).replace(/([ -])(?!$)/g, "$1?"); let r13 = a0; let r14 = !a0; if (!a0) { r14 = RegExp("\\b" + r10 + "(?:/[\\d.]+|[ \\w.]*)", "i").exec(c25174_0); r13 = r14; } let r24 = r13; if (r14) { const r25 = a1.label || a1; let r26 = (r10 ? r25 : r10) && /^Win/i.test(r13) && !/^Windows Phone /i.test(r13); const r32 = { "10.0": "10", "6.4": "10 Technical Preview", "6.3": "8.1", "6.2": "8", "6.1": "Server 2008 R2 / 7", "6.0": "Server 2008 / Vista", "5.2": "Server 2003 / XP 64-bit", "5.1": "XP", "5.01": "2000 SP1", "5.0": "2000", "4.0": "NT", "4.90": "ME" }; let r33 = r32; if (r26) { r26 = r32[/[\d.]+$/.exec(r13)]; r33 = r26; } if (r26) { r13 = "Windows " + r33; } const r41 = String(r13); const r101 = String((r10 && r25 ? r41.replace(RegExp(r10, "i"), r25) : r41).replace(/ ce$/i, " CE").replace(/\bhpw/i, "web").replace(/\bMacintosh\b/, "Mac OS").replace(/_PowerPC\b/i, " OS").replace(/\b(OS X) [^ \d]+/i, "$1").replace(/\bMac (OS X)\b/, "$1").replace(/\/(\d)/, " $1").replace(/_/g, ".").replace(/(?: BePC|[ .]*fc[ \d.]+)$/i, "").replace(/\bx86\.64\b/gi, "x86_64").replace(/\b(Windows Phone) OS\b/, "$1").replace(/\b(Chrome OS \w+) [\d.]+\b/, "$1").split(" on ")[0]).replace(/^ +| +$/g, ""); const r104 = /^(?:webOS|i(?:OS|P))/.test(r101); let r105 = r101; if (!r104) { const r107 = String(r101); r105 = r107.charAt(0).toUpperCase() + r107.slice(1); } r24 = r105; } return r24; }); })(["Windows Phone", "Android", "CentOS", { label: "Chrome OS", pattern: "CrOS" }, "Debian", "Fedora", "FreeBSD", "Gentoo", "Haiku", "Kubuntu", "Linux Mint", "OpenBSD", "Red Hat", "SuSE", "Ubuntu", "Xubuntu", "Cygwin", "Symbian OS", "hpwOS", "webOS ", "webOS", "Tablet OS", "Tizen", "Linux", "Mac OS X", "Macintosh", "Mac", "Windows 98;", "Windows "]); const r197 = r26 && [r26]; if (r36 ? !r152 : r36) { product = getProduct([r36]); r152 = product; } const r45 = /\bGoogle TV\b/.exec(r152); let r204 = r152; if (r45) { product = r45[0]; r204 = product; } const r208 = /\bSimulator\b/i.test(description); let r209 = r204; if (r208) { product = (r204 ? r204 + " " : "") + "Simulator"; r209 = product; } const r215 = r121 == "Opera Mini" && /\bOPiOS\b/.test(description); const r218 = []; if (r215) { r218.push("running in Turbo/Uncompressed mode"); } L132: { if (r121 == "IE" && /\blike iPhone OS\b/.test(description)) { const r343 = parse2(description.replace(/like iPhone OS/, "")); manufacturer = r343.manufacturer; const product2 = r343.product; product = product2; r24 = r39; r234 = product2; } else { const r229 = /^iP/.test(r209); const r41 = r121; if (r229) { if (!r41) { r121 = "Safari"; } const r329 = / OS ([\d_]+)/i.exec(description); r24 = "iOS" + (r329 ? " " + r329[1].replace(/_/g, ".") : ""); manufacturer = r36; r234 = r209; } else { if (r41 == "Konqueror") { const r42 = /buntu/i.test(r39); manufacturer = r36; r234 = r209; if (!r42) { break L132; } } L123: { if (r36 && r36 != "Google") { if (/Chrome/.test(r121) && !/\bMobile Safari\b/i.test(description)) { break L123; } if (/\bVita\b/.test(r209)) { break L123; } } if (!(/\bAndroid\b/.test(r39) && (/^Chrome/.test(r121) && /\bVersion\//i.test(description)))) { if (r121 == "Silk") { const r312 = /\bMobi/i.test(description); let r313 = r39; if (!r312) { r218.unshift("desktop mode"); r313 = "Android"; } const r319 = /Accelerated *= *true/i.test(description); r24 = r313; manufacturer = r36; r234 = r209; if (!r319) { break L132; } r218.unshift("accelerated"); r24 = r313; manufacturer = r36; r234 = r209; break L132; } const r256 = r121; let r51 = r45; if (r256 == "PaleMoon") { const r259 = /\bFirefox\/([\d.]+)\b/.exec(description); r51 = r259; if (r51) { r218.push("identifying as Firefox " + r259[1]); r24 = r39; manufacturer = r36; r234 = r209; break L132; } } if (r121 == "Firefox") { const r264 = /\b(Mobile|Tablet|TV)\b/i.exec(description); r51 = r264; if (r51) { const r303 = r39 ? r39 : "Firefox OS"; r24 = r303; manufacturer = r36; r234 = r209; if (r209) { break L132; } product = r264[1]; r24 = r303; manufacturer = r36; r234 = product; break L132; } } if (r121) { const r268 = /\bMinefield\b/i.test(description); let r269 = r268 ? !r268 : /\b(?:Firefox|Safari)\b/.exec(r121); r51 = r269; if (!r51) { let r274 = r121 == "Electron"; if (r274) { r274 = (/\bChrome\/([\d.]+)\b/.exec(description) || 0)[1]; r269 = r274; } r24 = r39; manufacturer = r36; r234 = r209; if (!r274) { break L132; } r218.push("Chromium " + r269); r24 = r39; manufacturer = r36; r234 = r209; break L132; } } if (r121 && !r209 && /[\/,]|^[^(]+?\)/.test(description.slice(description.indexOf(r51 + "/") + 8))) { r121 = null; } let r291 = (r209 ? r209 : r36) || r39; const r292 = r291 ? (r209 ? r209 : r36) || /\b(?:Android|Symbian OS|Tablet OS|webOS)\b/.test(r39) : r291; r24 = r39; manufacturer = r36; r234 = r209; if (!r292) { break L132; } const r296 = /[a-z]+(?: Hat)?/i; if (/\bAndroid\b/.test(r39)) { r291 = r39; } r121 = r296.exec(r291) + " Browser"; r24 = r39; manufacturer = r36; r234 = r209; break L132; } } r121 = "Android Browser"; r24 = /\bAndroid\b/.test(r39) ? r39 : "Android"; manufacturer = r36; r234 = r209; } } } if (!r87) { r87 = (function getVersion(a0) { return reduce2(a0, function(a0, a1) { return (a0 ? a0 : (RegExp(a1 + "(?:-[\\d.]+/|(?: for [\\w-]+)?[ /-])([\\d.]+[^ ();/_-]*)", "i").exec(c25174_0) || 0)[1]) || null; }); })(["(?:Cloud9|CriOS|CrMo|Edge|FxiOS|IEMobile|Iron|Opera ?Mini|OPiOS|OPR|Raven|SamsungBrowser|Silk(?!/[\\d.]+$))", "Version", qualify2(r121), "(?:Firefox|Minefield|NetFront)"]); } L141: { if (r197 == "iCab") { const r357 = parseFloat(r87) > 3; r358 = "WebKit"; if (r357) { break L141; } } let r362 = /\bOpera\b/.test(r121); if (r362) { if (/\bOPR\b/.test(description)) { r31 = "Blink"; } r362 = r31; } r358 = r362; } if (!r358) { r358 = /\b(?:Midori|Nook|Safari)\b/i.test(description) && !/^(?:Trident|EdgeHTML)$/.test(r197) && "WebKit"; } if (!r358) { r358 = (r197 ? !r197 : /\bMSIE\b/i.test(description)) && (r24 == "Mac OS" ? "Tasman" : "Trident"); } if (!r358) { r358 = r197 == "WebKit" && /\bPlayStation\b(?! Vita\b)/i.test(r121) && "NetFront"; } const r383 = r358 ? [r358] : r197; L185: { if (r121 == "IE") { const r389 = (/; *(?:XBLWP|ZuneWP)(\d+)/i.exec(description) || 0)[1]; r358 = r389; if (r389) { r121 = r121 + " Mobile"; r398 = "Windows Phone " + (/\+$/.test(r389) ? r389 : r389 + ".x"); r218.unshift("desktop mode"); r399 = r389; break L185; } } if (/\bWPDesktop\b/i.test(description)) { r121 = "IE Mobile"; r218.unshift("desktop mode"); const r414 = r87; r398 = "Windows Phone 8.x"; r399 = r358; if (!r414) { r87 = (/\brv:([\d.]+)/.exec(description) || 0)[1]; r398 = "Windows Phone 8.x"; r399 = r358; } } else { let r394 = r121 != "IE" && r383 == "Trident"; let r395 = r358; if (r394) { r394 = /\brv:([\d.]+)/.exec(description); r395 = r394; } r398 = r24; r399 = r395; if (r394) { if (r121) { r218.push("identifying as " + r121 + (r87 ? " " + r87 : "")); } r121 = "IE"; r87 = r395[1]; r398 = r24; r399 = r395; } } } let r430 = r398; let r431 = r383; let r432 = description; let r433 = r399; if (r16) { L240: { if ((function isHostType(a0, a1) { const r4 = a0 != null ? typeof a0.global : "number"; let r8 = /^(?:boolean|number|string|undefined)$/.test(r4); if (!r8) { r8 = r4 === "object" && !a0.global; } return !r8; })(r23, "global")) { let r508 = r398; let r509 = description; if (r38) { const System = r38.lang.System; const property = System.getProperty("os.arch"); r508 = r398 ? r398 : System.getProperty("os.name") + " " + System.getProperty("os.version"); r509 = property; r399 = System; } if (r37) { try { r87 = r23.require("ringo/engine").version.join("."); r121 = "RingoJS"; r569 = r508; } catch ($e) { const system = r23.system; const r572 = system ? system.global.system == r23.system : system; r569 = r508; r399 = system; if (r572) { r121 = "Narwhal"; r569 = r508 ? r508 : system[0].os || null; r399 = system; } } const r579 = r121; r452 = r569; r453 = r383; r454 = r509; r455 = r399; if (!r579) { r121 = "Rhino"; r452 = r569; r453 = r383; r454 = r509; r455 = r399; } } else { const process = r23.process; let r525 = typeof process === "object" ? !r23.process.browser : typeof process === "object"; let r528 = r399; if (r525) { r525 = r23.process; r528 = r525; } r452 = r508; r453 = r383; r454 = r509; r455 = r528; if (r525) { if (typeof r528.versions === "object") { if (typeof r528.versions.electron === "string") { r218.push("Node " + r528.versions.node); r121 = "Electron"; r87 = r528.versions.electron; } else if (typeof r528.versions.nw === "string") { r218.push("Chromium " + r87, "Node " + r528.versions.node); r121 = "NW.js"; r87 = r528.versions.nw; } } const r551 = r121; let r552 = r508; let r553 = r509; if (!r551) { r121 = "Node.js"; const { arch, platform: platform2 } = r528; const r559 = /[\d.]+/.exec(r528.version); r87 = r559 ? r559[0] : null; r552 = platform2; r553 = arch; } r452 = r552; r454 = r553; r453 = r383; r455 = r528; } } } else { const runtime = r23.runtime; if (getClassOf2(runtime) == r35) { r121 = "Adobe AIR"; r452 = runtime.flash.system.Capabilities.os; r453 = r383; r454 = description; r455 = runtime; } else { const phantom = r23.phantom; if (getClassOf2(phantom) == r25) { r121 = "PhantomJS"; const r496 = phantom.version || null; r87 = r496 ? r496.major + "." + r496.minor + "." + r496.patch : r496; r452 = r398; r453 = r383; r454 = description; r455 = r496; } else { const documentMode = r44.documentMode; let r443 = phantom; if (typeof documentMode === "number") { const r446 = /\bTrident\/(\d+)/i.exec(description); r443 = r446; if (r443) { const r467 = [r87, r44.documentMode]; const r472 = +r446[1] + 4; if (r472 != r467[1]) { r218.push("IE " + r467[1] + " mode"); if (r383) { r383[1] = ""; } r467[1] = r472; } r87 = r121 == "IE" ? String(r467[1].toFixed(1)) : r467[0]; r452 = r398; r453 = r383; r454 = description; r455 = r472; break L240; } } const documentMode2 = r44.documentMode; const r448 = typeof documentMode2 === "number" ? /^(?:Chrome|Firefox)\b/.test(r121) : typeof documentMode2 === "number"; r452 = r398; r453 = r383; r454 = description; r455 = r443; if (r448) { r218.push("masking as " + r121 + " " + r87); r121 = "IE"; r87 = "11.0"; r453 = ["Trident"]; r452 = "Windows"; r454 = description; r455 = r443; } } } } } r430 = r452 && format2(r452); r431 = r453; r432 = r454; r433 = r455; } let r582 = r87; if (r582) { r582 = /(?:[ab]|dp|pre|[ab]\d+pre)(?:\d+\+?)?$/i.exec(r87) || /(?:alpha|beta)(?: ?\d)?/i.exec(description + ";" + (r16 ? r20.appMinorVersion : r16)) || /\bMinefield\b/i.test(description) && "a"; r433 = r582; } let r596 = null; if (r582) { const r600 = /b/i.test(r433) ? "beta" : "alpha"; const r609 = r87.replace(RegExp(r433 + "\\+?$"), ""); if (r600 === "beta") { r28 = r32; } r87 = r609 + r28 + (/\d+\+?/.exec(r433) || ""); r596 = r600; } L351: { L350: { if (r121 != "Fennec") { if (r121 == "Firefox" && /\b(?:Android|Firefox OS)\b/.test(r430)) { break L350; } if (r121 == "Maxthon" && r87) { r87 = r87.replace(/\.[\d.]+/, ".x"); r704 = r430; r705 = manufacturer; product3 = r234; r707 = r431; break L351; } if (/\bXbox\b/i.test(r234)) { const r762 = r234 == "Xbox 360" ? null : r430; const r763 = r234 == "Xbox 360" && /\bIEMobile\b/.test(description); r704 = r762; r705 = manufacturer; product3 = r234; r707 = r431; if (!r763) { break L351; } r218.unshift("mobile mode"); r704 = r762; r705 = manufacturer; product3 = r234; r707 = r431; break L351; } L273: { if (!/^(?:Chrome|IE|Opera)$/.test(r121)) { if (!r121) { break L273; } if (r234) { break L273; } if (/Browser|Mobi/.test(r121)) { break L273; } } if (!(r430 != "Windows CE" && !/Mobi/i.test(description))) { r121 = r121 + " Mobile"; r704 = r430; r705 = manufacturer; product3 = r234; r707 = r431; break L351; } } if (r121 == "IE" && r16) { try { if (r23.external === null) { r218.unshift("platform preview"); } r704 = r430; r705 = manufacturer; product3 = r234; r707 = r431; break L351; } catch ($e) { r218.unshift("embedded"); r704 = r430; r705 = manufacturer; product3 = r234; r707 = r431; break L351; } } if (!(!/\bBlackBerry\b/.test(r234) && !/\bBB10\b/.test(description))) { const r660 = (RegExp(r234.replace(/ +/g, " *") + "/([.\\d]+)", "i").exec(description) || 0)[1] || r87; r433 = r660; if (r433) { const r740 = [r660, /BB10/.test(description)]; const r744 = r740[1]; let r745 = "Device Software"; let r746 = manufacturer; let r747 = r234; if (r744) { product = null; r746 = "BlackBerry"; r747 = null; r745 = "BlackBerry"; } r704 = r745 + " " + r740[0]; r87 = null; r705 = r746; product3 = r747; r707 = r431; break L351; } } let r663 = this != forOwn2 && r234 != "Wii" && ((r16 ? r83 : r16) || /Opera/.test(r121) && /\b(?:MSIE|Firefox)\b/i.test(description) || r121 == "Firefox" && /\bOS X (?:\d+\.){2,}/.test(r430) || r121 == "IE" && ((r430 ? !/^Win/.test(r430) : r430) && r87 > 5.5 || /\bWindows XP\b/.test(r430) && r87 > 8 || r87 == 8 && !/\bTrident\b/.test(description))); if (r663) { const call = parse2.call; const r702 = parse2.call(forOwn2, description.replace(c14278_2, "") + ";"); r663 = !c14278_2.test(r702); r433 = r702; } if (r663) { r663 = r433.name; } r704 = r430; r705 = manufacturer; product3 = r234; r707 = r431; if (!r663) { break L351; } const r710 = "ing as " + r433.name; const version = r433.version; const r714 = r710 + (version ? " " + version : ""); if (c14278_2.test(r121)) { const r736 = /\bIE\b/.test(r714) && r430 == "Mac OS" ? null : r430; r731 = "identify" + r714; r730 = r736; } else { const r718 = r34 ? format2(r34.replace(/([a-z])([A-Z])/g, "$1 $2")) : "Opera"; const r725 = "mask" + r714; r121 = r718; const r729 = /\bIE\b/.test(r725) ? null : r430; r730 = r729; r731 = r725; if (!r16) { r87 = null; r730 = r729; r731 = r725; } } r707 = ["Presto"]; r218.push(r731); r704 = r730; r705 = manufacturer; product3 = r234; break L351; } } r121 = "Firefox Mobile"; r704 = r430; r705 = manufacturer; product3 = r234; r707 = r431; } const r776 = (/\bAppleWebKit\/([\d.]+\+?)/i.exec(description) || 0)[1]; let r777 = r707; let prerelease = r596; let r779 = r776; if (r779) { const r787 = [parseFloat(r776.replace(/\.(\d)$/, ".0$1")), r776]; if (r121 == "Safari" && r787[1].slice(-1) == "+") { r121 = "WebKit Nightly"; r87 = r787[1].slice(0, -1); r803 = "alpha"; } else { let r796 = r87 != r787[1]; if (r796) { const r797 = r87; const r801 = (/\bSafari\/([\d.]+\+?)/i.exec(description) || 0)[1]; r787[2] = r801; r796 = r797 != r801; } r803 = r596; if (!r796) { r87 = null; r803 = r596; } } r787[1] = (/\bChrome\/([\d.]+)/i.exec(description) || 0)[1]; if (r787[0] == 537.36 && r787[2] == 537.36 && parseFloat(r787[1]) >= 28 && r707 == "WebKit") { r707 = ["Blink"]; } L452: { L376: { if (r16) { if (!r59 && !r787[1]) { break L376; } if (r707) { r707[1] = "like Chrome"; } let r851 = r787[1]; if (!r851) { const r852 = r787[0]; const r854 = r852 < 530; let r855 = 1; if (!r854) { const r857 = r852 < 532; let r858 = 2; if (!r857) { const r860 = r852 < 532.05; let r861 = 3; if (!r860) { const r863 = r852 < 533; let r864 = 4; if (!r863) { const r866 = r852 < 534.03; let r867 = 5; if (!r866) { const r869 = r852 < 534.07; let r870 = 6; if (!r869) { const r872 = r852 < 534.1; let r873 = 7; if (!r872) { const r875 = r852 < 534.13; let r876 = 8; if (!r875) { const r878 = r852 < 534.16; let r879 = 9; if (!r878) { const r881 = r852 < 534.24; let r882 = 10; if (!r881) { const r884 = r852 < 534.3; let r885 = 11; if (!r884) { const r887 = r852 < 535.01; let r888 = 12; if (!r887) { const r890 = r852 < 535.02; let r891 = "13+"; if (!r890) { const r893 = r852 < 535.07; let r894 = 15; if (!r893) { const r896 = r852 < 535.11; let r897 = 16; if (!r896) { const r899 = r852 < 535.19; let r900 = 17; if (!r899) { const r902 = r852 < 536.05; let r903 = 18; if (!r902) { const r905 = r852 < 536.1; const r906 = r905 ? 19 : r852 < 537.01 ? 20 : r852 < 537.11 ? "21+" : r852 < 537.13 ? 23 : r852 < 537.18 ? 24 : r852 < 537.24 ? 25 : r852 < 537.36 ? 26 : r707 != "Blink" ? "27" : "28"; r903 = r906; } r900 = r903; } r897 = r900; } r894 = r897; } r891 = r894; } r888 = r891; } r885 = r888; } r882 = r885; } r879 = r882; } r876 = r879; } r873 = r876; } r870 = r873; } r867 = r870; } r864 = r867; } r861 = r864; } r858 = r861; } r855 = r858; } r851 = r855; } r825 = r851; break L452; } } if (r707) { r707[1] = "like Safari"; } const r822 = r787[0]; const r824 = r822 < 400; r825 = 1; if (!r824) { const r827 = r822 < 500; const r828 = r827 ? 2 : r822 < 526 ? 3 : r822 < 533 ? 4 : r822 < 534 ? "4+" : r822 < 535 ? 5 : r822 < 537 ? 6 : r822 < 538 ? 7 : r822 < 601 ? 8 : "8"; r825 = r828; } } let r926 = r825; if (r707) { const r927 = r707[1]; const r933 = r825 + (typeof r825 !== "number" ? /[.+]/.test(r825) ? "" : "+" : ".x"); r707[1] = r927 + (" " + r933); r926 = r933; } let r938 = r121 == "Safari"; if (r938) { const r939 = r87; r938 = r939 ? parseInt(r87) > 45 : !r939; } r777 = r707; prerelease = r803; r779 = r926; if (r938) { r87 = r926; r777 = r707; prerelease = r803; r779 = r926; } } L478: { if (r121 == "Opera") { const r948 = /\bzbov|zvav$/.exec(r704); r779 = r948; if (r948) { const r967 = r121 + " "; r218.unshift("desktop mode"); if (r948 == "zvav") { r121 = r967 + "Mini"; r87 = null; } else { r121 = r967 + "Mobile"; } r954 = r704.replace(RegExp(" *" + r948 + "$"), ""); manufacturer2 = r705; r956 = r948; break L478; } } const r950 = r121 == "Safari" && /\bChrome\b/.exec(r777 ? r777[1] : r777); r954 = r704; manufacturer2 = r705; r956 = r779; if (r950) { r218.unshift("desktop mode"); r121 = "Chrome Mobile"; r87 = null; const r962 = /\bOS X\b/.test(r704); let r963 = null; let r964 = r705; if (r962) { r963 = "iOS 4.3+"; r964 = "Apple"; } r954 = r963; manufacturer2 = r964; r956 = r779; } } let r985 = r87; if (r985) { const r986 = r87; const r990 = /[\d.]+$/.exec(r954); r985 = r986.indexOf(r990) == 0; r956 = r990; } if (r985) { r985 = description.indexOf("/" + r956 + "-") > -1; } const r999 = r985 ? trim2(r954.replace(r956, "")) : r954; let r1004 = (r777 ? !/\b(?:Avant|Nook)\b/.test(r121) : r777) && (/Browser|Lunascape|Maxthon/.test(r121) || r121 != "Safari" && /^iOS/.test(r999) && /\bSafari\b/.test(r777[1]) || /^(?:Adobe|Arora|Breach|Midori|Opera|Phantom|Rekonq|Rock|Samsung Internet|Sleipnir|Web)/.test(r121) && r777[1]); if (r1004) { r1004 = r777[r777.length - 1]; r956 = r1004; } if (r1004) { r218.push(r956); } const r1030 = r218.length ? ["(" + r218.join("; ") + ")"] : r218; if (manufacturer2 && product3 && product3.indexOf(manufacturer2) < 0) { r1030.push("on " + manufacturer2); } if (product3) { r1030.push.call(r1030, (/^on /.test(r1030[r1030.length - 1]) ? "" : "on ") + product3); } let r1057 = r999; if (r1057) { const r1060 = / ([\d.+]+)$/.exec(r999); const r1061 = r1060 && r999.charAt(r999.length - r1060[0].length - 1) == "/"; c25174_1 = r1061; r1057 = { architecture: 32, family: r1060 ? r1061 ? r999 : r999.replace(r1060[0], "") : r999, version: r1060 ? r1060[1] : null, toString: function toString() { const version = this.version; const family = this.family; let r3 = ""; const r10 = family + (version ? c25174_1 ? "" : " " + version : ""); if (this.architecture == 64) { r3 = " 64-bit"; } return r10 + r3; } }; } L547: { const r1080 = /\b(?:AMD|IA|Win|WOW|x86_|x)64\b/i.exec(r432); if (r1080 && !/\bi686\b/i.test(r432)) { if (r1057) { r1057.architecture = 64; r1057.family = r1057.family.replace(RegExp(" *" + r1080), ""); } let r1094 = r121; if (r1094) { let r1097 = /\bWOW64\b/i.test(description); if (!r1097) { if (r16) { r16 = /\w(?:86|32)$/.test(r20.cpuClass || r20.platform); } if (r16) { r16 = !/\bWin64; x64\b/i.test(description); } r1097 = r16; } r1094 = r1097; } if (!r1094) { break L547; } r1030.unshift("32-bit"); } else if ((r1057 ? /^OS X/.test(r1057.family) : r1057) && r121 == "Chrome" && parseFloat(r87) >= 39) { r1057.architecture = 64; } } if (!description) { c25174_0 = null; description = null; } const layout = r777 && r777[0]; let name = r121; const r1118 = { description, layout, manufacturer: manufacturer2, name, prerelease, product: product3, ua: description }; if (name) { name = r87; } r1118.version = name; r1118.os = r1057 ? r1057 : { architecture: null, family: null, version: null, toString: function toString() { return "null"; } }; r1118.parse = parse2; r1118.toString = function toStringPlatform() { return this.description || ""; }; if (r1118.version) { r1030.unshift(r87); } if (r1118.name) { r1030.unshift(r121); } if (r1057 && r121 && (r1057 != String(r1057).split(" ")[0] || r1057 != r121.split(" ")[0] && !product3)) { r1030.push.call(r1030, product3 ? "(" + r1057 + ")" : "on " + r1057); } if (r1030.length) { r1118.description = r1030.join(" "); } return r1118; }; const platform2 = parse2(); c14278_11 = platform2; if (typeof globalThis.define === "function" && (typeof define.amd === "object" && define.amd)) { r9.platform = platform2; define(function() { return c14278_11; }); } else { if (r14 && r27) { const r51 = $forInKeys(platform2); let r52 = 0; const length = r51.length; if (r51 === void 0) { break L40; } while (true) { const r54 = r52 < length ? r51[r52++] : void 0; if (r54 === void 0) { break L40; } const call = hasOwnProperty.call; if (hasOwnProperty.call(platform2, r54)) { r14[r54] = platform2[r54]; } } } r9.platform = platform2; } } }).call(this);