Files
discord-decomp/sources/by-id/module-00654.js
T
2026-07-28 01:06:53 +03:00

6869 lines
384 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/* Metro module 654; source: unknown; dependencies: [] */
function _fun7368(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#7368, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:704:6, offset: 0x00d16f35, size: 44 bytes, params: 8, frame: 11
_fun7369.call(this);
function _fun7369() { // fn#7369, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:704:32, offset: 0x00d16f61, size: 473 bytes, params: 1, frame: 19
var r8;
var r3;
let value = this;
const capitalize_7370 = function(a0) {
var value = (0, global.String)(a0);
return value.charAt(0).toUpperCase() + value.slice(1);
};
const closure = function(a0, a1) {
var r4;
var propertyName;
var propertyName2;
for (propertyName in a0) {
if (!hasOwnProperty.call(a0, propertyName)) {
r4 = propertyName2;
continue;
}
a1(a0[propertyName], propertyName, a0);
r4 = propertyName2;
}
};
const qualify = function(a0) {
return (0, global.String)(a0).replace(RegExp('([ -])(?!$)', 'g'), '$1?');
};
const trim_7377 = function(a0) {
return (0, global.String)(a0).replace(RegExp('^ +| +$', 'g'), '');
};
const object = {'function': true, 'object': true};
let r4 = object[typeof global.window] && global.window;
r4 = !r4 ? value : r4;
const env0_0 = r4;
const r7 = object[typeof env0_2] && env0_2;
const env0_1 = r7;
const r5 = object[typeof env0_1] && env0_1 && !env0_1.nodeType && env0_1;
const r0 = r7 && r5 && typeof env0_0 === 'object' && env0_0;
if (r0) {
r8 = r0.global !== r0 && r0.window !== r0;
r8 = r8 && r0.self !== r0;
r3 = r8;
} else {
r3 = !r0;
}
r4 = !r3 ? r0 : r4;
const Math = global.Math;
var env0_2 = Math.pow(2, 53) - 1;
const env0_3 = RegExp('\\bOpera', '');
const Object = global.Object;
const prototype = Object.prototype;
const env0_4 = prototype.hasOwnProperty;
const env0_5 = prototype.toString;
value = parse_7378();
if (typeof global.define !== 'function') {
if (r7) {
if (r5) {
closure(value, _fun7395);
} else {
r4.platform = value;
}
} else {
r4.platform = value;
}
} else if (typeof global.define.amd !== 'object') {
if (r7) {
if (r5) {
closure(value, _fun7395);
} else {
r4.platform = value;
}
} else {
r4.platform = value;
}
} else if (global.define.amd) {
r4.platform = value;
global.define(_fun7394);
} else if (r7) {
if (r5) {
closure(value, _fun7395);
} else {
r4.platform = value;
}
} else {
r4.platform = value;
}
function format(a0) { // fn#7371, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:704:415, offset: 0x00d17176, size: 58 bytes, params: 2, frame: 13
const value2 = trim_7377(a0);
const regexp = RegExp('^(?:webOS|i(?:OS|P))', '');
return regexp.test(value2) ? value2 : capitalize_7370(value2);
}
function getClassOf(a0) { // fn#7373, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:704:559, offset: 0x00d171f3, size: 64 bytes, params: 2, frame: 14
var r0;
var value;
if (a0 == null) {
r0 = capitalize_7370(a0);
} else {
value = toString.call(a0);
value = value.slice(8, -1);
r0 = value;
}
return r0;
}
function reduce_7375(a0, a1) { // fn#7375, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:704:700, offset: 0x00d17266, size: 123 bytes, params: 3, frame: 17
var environment;
var length;
var r3;
var value2;
const env0_0 = a0;
const env0_1 = a1;
const env0_2 = null;
const closure = _fun7376;
let value = 0;
reducibleJoin2: while (true) {
if (a0) {
length = a0.length;
break reducibleJoin2;
}
length = value;
break reducibleJoin2;
}
reducibleJoin8: while (true) {
reducibleJoin5: while (true) {
if (typeof length !== 'number') {
break reducibleJoin5;
}
if (length > -1) {
value2 = environment;
if (length <= env0_2) {
if (value < length) {
r3 = value;
reducibleLoop7: while (true) {
closure(a0[r3], r3, a0);
value = typeof r3 === 'bigint' ? r3 + 1n : +r3 + 1;
if (value < length) {
r3 = value;
continue reducibleLoop7;
}
break reducibleJoin8;
}
return env0_2;
}
break reducibleJoin8;
}
break reducibleJoin5;
}
break reducibleJoin5;
}
value = environment;
forOwn_7372(a0, closure);
break reducibleJoin8;
}
return env0_2;
function _fun7376(a0, a1) { // fn#7376, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:704:861, offset: 0x00d172e1, size: 35 bytes, params: 3, frame: 18
moduleValue = require(moduleValue, a0, a1, env0_0);
}
}
function parse_7378(a0) { // fn#7378, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:704:956, offset: 0x00d17335, size: 11143 bytes, params: 2, frame: 66
var environment;
var r9;
var r10;
var r28;
var r20;
var r26;
var r42;
var r11;
var r14;
var r40;
var r39;
var r38;
var r34;
var r37;
var r41;
var r13;
var r36;
var r27;
var r12;
var r56;
var r45;
var r51;
var r50;
var r48;
var r6;
var r49;
var r482;
var r5;
var r47;
var r3;
var r43;
var r30;
var r18;
var r33;
var r24;
var version;
var r35;
var r31;
var r25;
var r32;
var r29;
var r46;
var r44;
var r23;
var r19;
var r17;
var r1;
var r16;
var r4;
var value4;
var getClassOfBinding;
var classOf;
var value6;
var value7;
var regexp;
var test;
var toStringBinding;
var toString2;
var java;
var opera;
var property;
var value9;
var value10;
var value30;
var exec;
var value31;
var trim_7377Binding;
var value32;
var replace;
var value33;
var value34;
var RegExp;
var qualifyBinding;
var value35;
var value36;
var value37;
var value38;
var value39;
var value40;
var value42;
var value43;
var value44;
var value46;
var push;
var value47;
var value48;
var value49;
var value50;
var value51;
var value52;
var value53;
var value54;
var value55;
var slice;
var indexOf;
var value56;
var value57;
var value58;
var regexp2;
var value59;
var value60;
var value61;
var value62;
var unshift;
var value63;
var value64;
var value65;
var value66;
var value67;
var value68;
var value69;
var value70;
var parse_7378Binding;
var value71;
var manufacturer;
var product;
var value72;
var value73;
var parseFloat;
var float;
var value74;
var value75;
var value76;
var value77;
var value78;
var value79;
var value80;
var value81;
var value82;
var value83;
var value84;
var value85;
var value86;
var value87;
var value88;
var value89;
var value90;
var value91;
var value92;
var value93;
var value94;
var value95;
var value96;
var value97;
var global;
var value98;
var value99;
var value100;
var value101;
var runtime;
var phantom;
var documentMode;
var value102;
var value103;
var value104;
var value105;
var value106;
var items10;
var value107;
var String;
var toFixed;
var value108;
var major;
var value109;
var minor;
var value110;
var patch;
var value111;
var value112;
var flash;
var system;
var Capabilities;
var os;
var lang;
var System;
var getProperty;
var value113;
var value114;
var value115;
var value116;
var process;
var value117;
var browser;
var value118;
var versions;
var electron;
var nw;
var value119;
var node;
var value120;
var value121;
var value122;
var arch;
var platform;
var value123;
var require;
var moduleValue;
var join;
var value124;
var value125;
var error;
var system2;
var system3;
var value126;
var value127;
var value128;
var formatBinding;
var value129;
var value130;
var value131;
var appMinorVersion;
var value132;
var value133;
var value134;
var value135;
var value136;
var value137;
var value138;
var value139;
var value140;
var value141;
var value142;
var value143;
var value144;
var value145;
var value146;
var value147;
var forOwn_7372Binding;
var value148;
var value149;
var value150;
var value151;
var value152;
var value153;
var value154;
var value155;
var value156;
var value157;
var value158;
var value159;
var value160;
var call;
var value161;
var value162;
var value163;
var name;
var value164;
var value165;
var value166;
var value167;
var value168;
var value169;
var value170;
var value171;
var value172;
var items12;
var value173;
var value174;
var external;
var value175;
var value176;
var value177;
var value178;
var value179;
var value181;
var value182;
var float2;
var items13;
var value183;
var value184;
var value185;
var value186;
var value187;
var value188;
var value189;
var value190;
var value191;
var value192;
var value193;
var value194;
var float3;
var value195;
var value196;
var value197;
var value198;
var value199;
var value200;
var value201;
var value202;
var value203;
var value204;
var value205;
var value206;
var value207;
var value208;
var value209;
var value210;
var value211;
var value212;
var value213;
var value214;
var value215;
var value216;
var value217;
var value218;
var value219;
var value220;
var value221;
var value222;
var value223;
var value224;
var value225;
var value226;
var value227;
var value228;
var value229;
var value230;
var value231;
var value232;
var value233;
var value234;
var value235;
var value236;
var value237;
var value238;
var value239;
var parseInt;
var int;
var value240;
var value241;
var value242;
var value243;
var value244;
var value245;
var value246;
var value247;
var value248;
var value249;
var value250;
var value251;
var value252;
var value253;
var value254;
var value255;
var value256;
var value257;
var value258;
var value259;
var value260;
var value261;
var value262;
var value263;
var value264;
var value265;
var value266;
var value267;
var value268;
var value269;
var value270;
var value271;
var length;
var value272;
var value273;
var value274;
var value275;
var value276;
var value277;
var value278;
var value279;
var charAt;
var length2;
var value280;
var value281;
var value282;
var value283;
var family;
var value284;
var value285;
var cpuClass;
var split;
let value = a0;
let env0_0 = value;
const value2 = undefined;
const closure = function(a0) {
return reduce_7375(a0, _fun7380);
};
const closure2 = function(a0) {
return reduce_7375(a0, _fun7382);
};
let binding = env0_0;
reducibleJoin2: while (true) {
if (value) {
value4 = typeof value === 'object';
r9 = value4;
break reducibleJoin2;
}
r9 = value;
break reducibleJoin2;
}
reducibleJoin4: while (true) {
if (r9) {
classOf = getClassOf(value);
value6 = classOf != 'String';
r9 = value6;
break reducibleJoin4;
}
break reducibleJoin4;
}
reducibleJoin6: while (true) {
if (r9) {
value7 = null;
env0_0 = value7;
r10 = value7;
r28 = value;
break reducibleJoin6;
}
r10 = value;
r28 = binding;
break reducibleJoin6;
}
const navigator = r28.navigator;
reducibleJoin8: while (true) {
if (navigator) {
r20 = navigator;
break reducibleJoin8;
}
r20 = {};
break reducibleJoin8;
}
let userAgent = r20.userAgent;
reducibleJoin10: while (true) {
if (userAgent) {
break reducibleJoin10;
}
value = '';
userAgent = value;
break reducibleJoin10;
}
reducibleJoin12: while (true) {
if (r10) {
break reducibleJoin12;
}
env0_0 = userAgent;
r10 = userAgent;
break reducibleJoin12;
}
if (r9) {
r26 = !!r20.likeChrome;
} else {
regexp = RegExp('\\bChrome\\b', '');
value = regexp.test(r10);
reducibleJoin15: while (true) {
if (value) {
regexp = RegExp('internal|\\n', 'i');
test = regexp.test;
toStringBinding = toString;
toString2 = toStringBinding.toString;
value = !Reflect.apply(test, regexp, [Reflect.apply(toString2, toStringBinding, [])]);
r26 = value;
break reducibleJoin15;
}
r26 = value;
break reducibleJoin15;
}
}
value = 'ScriptBridgingProxyObject';
reducibleJoin19: while (true) {
if (r9) {
value = 'Object';
r42 = value;
break reducibleJoin19;
}
r42 = value;
break reducibleJoin19;
}
value = 'Environment';
reducibleJoin21: while (true) {
if (r9) {
value = 'Object';
r11 = value;
break reducibleJoin21;
}
r11 = value;
break reducibleJoin21;
}
reducibleJoin24: while (true) {
reducibleJoin23: while (true) {
if (r9) {
java = r28.java;
value = 'JavaPackage';
if (java) {
r14 = value;
break reducibleJoin24;
}
break reducibleJoin23;
}
break reducibleJoin23;
}
getClassOfBinding = getClassOf;
java = r28.java;
value = getClassOfBinding(java);
r14 = value;
break reducibleJoin24;
}
value = 'RuntimeObject';
reducibleJoin26: while (true) {
if (r9) {
value = 'Object';
r40 = value;
break reducibleJoin26;
}
r40 = value;
break reducibleJoin26;
}
value = RegExp('\\bJava', '').test(r14);
reducibleJoin28: while (true) {
if (value) {
java = r28.java;
r39 = java;
break reducibleJoin28;
}
r39 = value;
break reducibleJoin28;
}
reducibleJoin30: while (true) {
if (r39) {
getClassOfBinding = getClassOf;
environment = r28.environment;
value = getClassOfBinding(environment) == r11;
r38 = value;
break reducibleJoin30;
}
r38 = r39;
break reducibleJoin30;
}
value = 'α';
reducibleJoin32: while (true) {
if (r39) {
value = 'a';
r34 = value;
break reducibleJoin32;
}
r34 = value;
break reducibleJoin32;
}
value = 'β';
reducibleJoin34: while (true) {
if (r39) {
value = 'b';
r37 = value;
break reducibleJoin34;
}
r37 = value;
break reducibleJoin34;
}
const document = r28.document;
reducibleJoin36: while (true) {
if (document) {
r41 = document;
break reducibleJoin36;
}
r41 = {};
break reducibleJoin36;
}
const operamini = r28.operamini;
reducibleJoin38: while (true) {
if (operamini) {
r13 = operamini;
break reducibleJoin38;
}
opera = r28.opera;
r13 = opera;
break reducibleJoin38;
}
binding = env0_3;
test = binding.test;
reducibleJoin42: while (true) {
reducibleJoin40: while (true) {
if (r9) {
if (r13) {
property = r13['[[Class]]'];
r9 = property;
break reducibleJoin42;
}
break reducibleJoin40;
}
break reducibleJoin40;
}
value = getClassOf(r13);
r9 = value;
break reducibleJoin42;
}
value = Reflect.apply(test, binding, [r9]);
const value8 = null;
if (value) {
r36 = r9;
r9 = r13;
} else {
r9 = value8;
r36 = value8;
}
let object = [];
value = r10 == userAgent;
let r2 = value && r9;
reducibleJoin46: while (true) {
if (r2) {
version = r9.version;
value9 = typeof version === 'function';
r2 = value9;
break reducibleJoin46;
}
break reducibleJoin46;
}
reducibleJoin48: while (true) {
if (r2) {
version = r9.version;
value10 = Reflect.apply(version, r9, []);
r2 = value10;
break reducibleJoin48;
}
break reducibleJoin48;
}
const value11 = 'Trident';
const value12 = 'WebKit';
const value13 = 'Presto';
const value14 = 'NetFront';
const value15 = 'Tasman';
const value16 = ((a0) => reduce_7375(a0, _fun7384))([{'label': 'EdgeHTML', 'pattern': 'Edge'}, value11,
{'label': 'WebKit', 'pattern': 'AppleWebKit'}, 'iCab', value13, value14, value15, 'KHTML', 'Gecko']);
const value17 = 'PhantomJS';
const value18 = 'Opera';
const value19 = 'Chrome Mobile';
const value20 = 'IE';
const value21 = 'Safari';
const value22 = ((a0) => reduce_7375(a0, _fun7386))(['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|Edg|EdgA|EdgiOS)'},
'Midori', 'Nook Browser', 'PaleMoon', value17, 'Raven', 'Rekonq', 'RockMelt', {'label': 'Samsung Internet',
'pattern': 'SamsungBrowser'}, 'SeaMonkey', {'label': 'Silk', 'pattern': '(?:Cloud9|Silk-Accelerated)'},
'Sleipnir', 'SlimBrowser', {'label': 'SRWare Iron', 'pattern': 'Iron'}, 'Sunrise', 'Swiftfox', 'Vivaldi',
'Waterfox', 'WebPositive', {'label': 'Yandex Browser', 'pattern': 'YaBrowser'}, {'label': 'UC Browser',
'pattern': 'UCBrowser'}, 'Opera Mini', {'label': 'Opera Mini', 'pattern': 'OPiOS'}, value18, {'label': 'Opera',
'pattern': 'OPR'}, 'Chromium', 'Chrome', {'label': 'Chrome', 'pattern': '(?:HeadlessChrome)'},
{'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'}, value21]);
const value23 = 'BlackBerry';
const value24 = closure([{'label': 'BlackBerry', 'pattern': 'BB10'}, value23, {'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']);
var env0_2;
const value25 = 1;
const value26 = ((a0) => reduce_7375(a0, _fun7388))({Apple: {'iPad': 1, 'iPhone': 1, 'iPod': 1}, Alcatel: {},
Archos: {}, Amazon: {'Kindle': 1, 'Kindle Fire': 1}, Asus: {Transformer: value25},
['Barnes & Noble']: {Nook: value25}, BlackBerry: {PlayBook: value25}, Google: {'Google TV': 1, 'Nexus': 1},
HP: {TouchPad: value25}, HTC: {}, Huawei: {}, Lenovo: {}, LG: {}, Microsoft: {'Xbox': 1, 'Xbox One': 1},
Motorola: {Xoom: value25}, Nintendo: {'Wii U': 1, 'Wii': 1}, Nokia: {Lumia: value25}, Oppo: {},
Samsung: {'Galaxy S': 1, 'Galaxy S2': 1, 'Galaxy S3': 1, 'Galaxy S4': 1}, Sony: {'PlayStation': 1,
'PlayStation Vita': 1}, Xiaomi: {'Mi': 1, 'Redmi': 1}});
const value27 = 'Kubuntu';
const value28 = ((a0) => reduce_7375(a0, _fun7390))(['Windows Phone', 'KaiOS', 'Android', 'CentOS',
{'label': 'Chrome OS', 'pattern': 'CrOS'}, 'Debian', {'label': 'DragonFly BSD', 'pattern': 'DragonFly'},
'Fedora', 'FreeBSD', 'Gentoo', 'Haiku', value27, '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 ']);
reducibleJoin50: while (true) {
if (value16) {
r27 = [value16];
break reducibleJoin50;
}
r27 = value16;
break reducibleJoin50;
}
const value29 = RegExp('\\bAndroid\\b', '').test(value28);
reducibleJoin52: while (true) {
if (value29) {
value30 = !value24;
r11 = value30;
break reducibleJoin52;
}
r11 = value29;
break reducibleJoin52;
}
reducibleJoin54: while (true) {
if (r11) {
regexp = RegExp('\\bAndroid[^;]*;(.*?)(?:Build|\\) AppleWebKit)\\b', 'i');
exec = regexp.exec;
value31 = Reflect.apply(exec, regexp, [r10]);
r11 = value31;
r12 = value31;
break reducibleJoin54;
}
r12 = value2;
break reducibleJoin54;
}
reducibleJoin57: while (true) {
if (r11) {
value32 = trim_7377(r12[value25]);
replace = value32.replace;
value33 = Reflect.apply(replace, value32, [RegExp('^[a-z]{2}-[a-z]{2};\\s*', 'i'), '']);
r11 = value33 || value8;
env0_2 = r11;
r56 = r11;
break reducibleJoin57;
}
r56 = value24;
break reducibleJoin57;
}
reducibleJoin63: while (true) {
reducibleJoin61: while (true) {
if (value26) {
if (r56) {
if (value26) {
r11 = r56;
break reducibleJoin61;
}
r11 = value26;
break reducibleJoin61;
}
value34 = closure([value26]);
env0_2 = value34;
r45 = value34;
break reducibleJoin63;
}
if (value26) {
r11 = r56;
break reducibleJoin61;
}
r11 = value26;
break reducibleJoin61;
}
if (r11) {
replace = r56.replace;
RegExp = global.RegExp;
qualifyBinding = qualify;
value35 = qualifyBinding(value26);
value36 = RegExp('^(' + value35 + ')[-_.\\s]', 'i');
value37 = Reflect.apply(replace, r56, [value36, value26 + ' ']);
replace = value37.replace;
RegExp = global.RegExp;
value38 = '^(' + qualifyBinding(value26);
value39 = RegExp(value38 + ')[-_.]?(\\w)', 'i');
value40 = Reflect.apply(replace, value37, [value39, value26 + ' $2']);
env0_2 = value40;
r45 = value40;
break reducibleJoin63;
}
r45 = r56;
break reducibleJoin63;
}
const value41 = RegExp('\\bGoogle TV\\b', '').exec(r45);
reducibleJoin65: while (true) {
if (value41) {
property = value41[0];
env0_2 = property;
r51 = property;
break reducibleJoin65;
}
r51 = r45;
break reducibleJoin65;
}
regexp = RegExp('\\bSimulator\\b', 'i');
reducibleJoin69: while (true) {
if (regexp.test(r10)) {
value42 = '';
reducibleJoin68: while (true) {
if (r51) {
value43 = r51 + ' ';
r50 = value43;
break reducibleJoin68;
}
r50 = value42;
break reducibleJoin68;
}
value44 = r50 + 'Simulator';
env0_2 = value44;
r45 = value44;
break reducibleJoin69;
}
r45 = r51;
break reducibleJoin69;
}
const value45 = value22 == 'Opera Mini';
reducibleJoin71: while (true) {
if (value45) {
regexp = RegExp('\\bOPiOS\\b', '');
test = regexp.test;
value46 = Reflect.apply(test, regexp, [r10]);
r11 = value46;
break reducibleJoin71;
}
r11 = value45;
break reducibleJoin71;
}
reducibleJoin73: while (true) {
if (r11) {
push = object.push;
Reflect.apply(push, object, ['running in Turbo/Uncompressed mode']);
break reducibleJoin73;
}
break reducibleJoin73;
}
reducibleJoin135: while (true) {
reducibleJoin75: while (true) {
if (value20 != value22) {
break reducibleJoin75;
}
regexp = RegExp('\\blike iPhone OS\\b', '');
test = regexp.test;
if (Reflect.apply(test, regexp, [r10])) {
parse_7378Binding = parse_7378;
replace = r10.replace;
value71 = parse_7378Binding(Reflect.apply(replace, r10, [RegExp('like iPhone OS', ''), '']));
manufacturer = value71.manufacturer;
product = value71.product;
env0_2 = product;
r5 = value28;
r6 = value22;
r11 = manufacturer;
r14 = product;
break reducibleJoin135;
}
break reducibleJoin75;
}
regexp = RegExp('^iP', '');
test = regexp.test;
if (Reflect.apply(test, regexp, [r45])) {
r6 = value22 || value21;
regexp = RegExp(' OS ([\\d_]+)', 'i');
exec = regexp.exec;
value66 = Reflect.apply(exec, regexp, [r10]);
value67 = '';
reducibleJoin133: while (true) {
if (value66) {
property = value66[value25];
replace = property.replace;
value68 = Reflect.apply(replace, property, [RegExp('_', 'g'), '.']);
value69 = ' ' + value68;
r47 = value69;
break reducibleJoin133;
}
r47 = value67;
break reducibleJoin133;
}
value70 = 'iOS' + r47;
r5 = value70;
r11 = value26;
r14 = r45;
break reducibleJoin135;
}
if (value22 == 'Konqueror') {
regexp = RegExp('^Linux\\b', 'i');
if (regexp.test(value28)) {
r5 = value27;
r6 = value22;
r11 = value26;
r14 = r45;
break reducibleJoin135;
}
}
if (value26) {
if (value26 != 'Google') {
regexp = RegExp('Chrome', '');
test = regexp.test;
if (Reflect.apply(test, regexp, [value22])) {
regexp = RegExp('\\bMobile Safari\\b', 'i');
if (!regexp.test(r10)) {
value63 = 'Android Browser';
regexp = RegExp('\\bAndroid\\b', '');
value64 = regexp.test(value28);
value65 = 'Android';
r48 = value64 ? value28 : value65;
r5 = r48;
r6 = value63;
r11 = value26;
r14 = r45;
break reducibleJoin135;
}
}
regexp = RegExp('\\bVita\\b', '');
test = regexp.test;
if (Reflect.apply(test, regexp, [r45])) {
value63 = 'Android Browser';
regexp = RegExp('\\bAndroid\\b', '');
value64 = regexp.test(value28);
value65 = 'Android';
r48 = value64 ? value28 : value65;
r5 = r48;
r6 = value63;
r11 = value26;
r14 = r45;
break reducibleJoin135;
}
}
}
regexp = RegExp('\\bAndroid\\b', '');
test = regexp.test;
if (Reflect.apply(test, regexp, [value28])) {
regexp = RegExp('^Chrome', '');
test = regexp.test;
if (Reflect.apply(test, regexp, [value22])) {
regexp = RegExp('\\bVersion\\/', 'i');
test = regexp.test;
if (Reflect.apply(test, regexp, [r10])) {
value63 = 'Android Browser';
regexp = RegExp('\\bAndroid\\b', '');
test = regexp.test;
value64 = Reflect.apply(test, regexp, [value28]);
value65 = 'Android';
r48 = value64 ? value28 : value65;
r5 = r48;
r6 = value63;
r11 = value26;
r14 = r45;
break reducibleJoin135;
}
}
}
if (value22 == 'Silk') {
regexp = RegExp('\\bMobi', 'i');
test = regexp.test;
reducibleJoin126: while (true) {
if (Reflect.apply(test, regexp, [r10])) {
r5 = value28;
break reducibleJoin126;
}
value62 = 'Android';
unshift = object.unshift;
Reflect.apply(unshift, object, ['desktop mode']);
r5 = value62;
break reducibleJoin126;
}
regexp = RegExp('Accelerated *= *true', 'i');
test = regexp.test;
if (Reflect.apply(test, regexp, [r10])) {
unshift = object.unshift;
Reflect.apply(unshift, object, ['accelerated']);
r6 = value22;
r11 = value26;
r14 = r45;
break reducibleJoin135;
}
r6 = value22;
r11 = value26;
r14 = r45;
break reducibleJoin135;
}
if (value22 == 'UC Browser') {
regexp = RegExp('\\bUCWEB\\b', '');
test = regexp.test;
if (Reflect.apply(test, regexp, [r10])) {
push = object.push;
Reflect.apply(push, object, ['speed mode']);
r5 = value28;
r6 = value22;
r11 = value26;
r14 = r45;
break reducibleJoin135;
}
}
if (value22 != 'PaleMoon') {
r12 = value41;
} else {
regexp = RegExp('\\bFirefox\\/([\\d.]+)\\b', '');
exec = regexp.exec;
value47 = Reflect.apply(exec, regexp, [r10]);
if (value47) {
push = object.push;
Reflect.apply(push, object, ['identifying as Firefox ' + value47[value25]]);
r5 = value28;
r6 = value22;
r11 = value26;
r14 = r45;
break reducibleJoin135;
}
r12 = value47;
}
if (value22 == 'Firefox') {
regexp = RegExp('\\b(Mobile|Tablet|TV)\\b', 'i');
exec = regexp.exec;
value48 = Reflect.apply(exec, regexp, [r10]);
if (value48) {
reducibleJoin120: while (true) {
if (value28) {
r5 = value28;
break reducibleJoin120;
}
value61 = 'Firefox OS';
r5 = value61;
break reducibleJoin120;
}
if (r45) {
r6 = value22;
r11 = value26;
r14 = r45;
break reducibleJoin135;
}
property = value48[value25];
env0_2 = property;
r6 = value22;
r11 = value26;
r14 = property;
break reducibleJoin135;
}
r12 = value48;
}
if (value22) {
regexp = RegExp('\\bMinefield\\b', 'i');
test = regexp.test;
value49 = Reflect.apply(test, regexp, [r10]);
value50 = !value49;
reducibleJoin96: while (true) {
if (value49) {
r11 = value50;
break reducibleJoin96;
}
regexp = RegExp('\\b(?:Firefox|Safari)\\b', '');
exec = regexp.exec;
value51 = Reflect.apply(exec, regexp, [value22]);
r11 = value51;
break reducibleJoin96;
}
if (!r11) {
value52 = value22 == 'Electron';
reducibleJoin101: while (true) {
if (value52) {
regexp = RegExp('\\bChrome\\/([\\d.]+)\\b', '');
exec = regexp.exec;
value53 = Reflect.apply(exec, regexp, [r10]);
reducibleJoin100: while (true) {
if (value53) {
r11 = value53;
break reducibleJoin100;
}
value54 = 0;
r11 = value54;
break reducibleJoin100;
}
property = r11[value25];
r12 = property;
r48 = property;
break reducibleJoin101;
}
r12 = r11;
r48 = value52;
break reducibleJoin101;
}
if (r48) {
push = object.push;
Reflect.apply(push, object, ['Chromium ' + r12]);
r5 = value28;
r6 = value22;
r11 = value26;
r14 = r45;
break reducibleJoin135;
}
r5 = value28;
r6 = value22;
r11 = value26;
r14 = r45;
break reducibleJoin135;
}
r12 = r11;
}
reducibleJoin105: while (true) {
if (value22) {
value55 = !r45;
r48 = value55;
break reducibleJoin105;
}
r48 = value22;
break reducibleJoin105;
}
reducibleJoin107: while (true) {
if (r48) {
regexp = RegExp('[\\/,]|^[^(]+?\\)', '');
test = regexp.test;
slice = r10.slice;
indexOf = r10.indexOf;
value56 = Reflect.apply(indexOf, r10, [r12 + '/']);
value57 = Reflect.apply(test, regexp, [Reflect.apply(slice, r10, [value56 + 8])]);
r48 = value57;
break reducibleJoin107;
}
break reducibleJoin107;
}
r6 = r48 ? value8 : value22;
r48 = r45 || value26;
if (!r48) {
r48 = value28;
}
reducibleJoin115: while (true) {
if (r48) {
r49 = r45 || value26;
reducibleJoin114: while (true) {
if (r49) {
break reducibleJoin114;
}
regexp = RegExp('\\b(?:Android|Symbian OS|Tablet OS|webOS)\\b', '');
test = regexp.test;
value58 = Reflect.apply(test, regexp, [value28]);
r49 = value58;
break reducibleJoin114;
}
r482 = r49;
break reducibleJoin115;
}
r482 = r48;
break reducibleJoin115;
}
if (r482) {
regexp = RegExp('[a-z]+(?: Hat)?', 'i');
exec = regexp.exec;
regexp2 = RegExp('\\bAndroid\\b', '');
test = regexp2.test;
if (Reflect.apply(test, regexp2, [value28])) {
r48 = value28;
}
value59 = Reflect.apply(exec, regexp, [r48]);
value60 = value59 + ' Browser';
r5 = value28;
r6 = value60;
r11 = value26;
r14 = r45;
break reducibleJoin135;
}
r5 = value28;
r11 = value26;
r14 = r45;
break reducibleJoin135;
}
reducibleJoin137: while (true) {
if (r2) {
r3 = r2;
break reducibleJoin137;
}
value72 = qualify(r6);
value73 = closure2(['(?:Cloud9|CriOS|CrMo|Edge|Edg|EdgA|EdgiOS|FxiOS|HeadlessChrome|IEMobile|Iron|Opera ?Mini|OPiOS|OPR|Raven|SamsungBrowser|Silk(?!/[\\d.]+$)|UCBrowser|YaBrowser)',
'Version', value72, '(?:Firefox|Minefield|NetFront)']);
r3 = value73;
break reducibleJoin137;
}
reducibleJoin144: while (true) {
reducibleJoin143: while (true) {
if (r27 != 'iCab') {
regexp = RegExp('\\bOpera\\b', '');
value74 = regexp.test(r6);
if (value74) {
regexp = RegExp('\\bOPR\\b', '');
reducibleJoin142: while (true) {
if (regexp.test(r10)) {
value75 = 'Blink';
r43 = value75;
break reducibleJoin142;
}
r43 = value13;
break reducibleJoin142;
}
r30 = r43;
break reducibleJoin143;
}
r30 = value74;
break reducibleJoin143;
}
parseFloat = global.parseFloat;
float = parseFloat(r3);
if (float > 3) {
r18 = value12;
break reducibleJoin144;
}
regexp = RegExp('\\bOpera\\b', '');
test = regexp.test;
value74 = Reflect.apply(test, regexp, [r6]);
if (value74) {
regexp = RegExp('\\bOPR\\b', '');
test = regexp.test;
reducibleJoin142: while (true) {
if (Reflect.apply(test, regexp, [r10])) {
value75 = 'Blink';
r43 = value75;
break reducibleJoin142;
}
r43 = value13;
break reducibleJoin142;
}
r30 = r43;
break reducibleJoin143;
}
r30 = value74;
break reducibleJoin143;
}
r18 = r30;
break reducibleJoin144;
}
reducibleJoin149: while (true) {
if (r18) {
break reducibleJoin149;
}
regexp = RegExp('\\b(?:Midori|Nook|Safari)\\b', 'i');
test = regexp.test;
value76 = Reflect.apply(test, regexp, [r10]);
reducibleJoin147: while (true) {
if (value76) {
regexp = RegExp('^(?:Trident|EdgeHTML)$', '');
test = regexp.test;
value77 = !Reflect.apply(test, regexp, [r27]);
r30 = value77;
break reducibleJoin147;
}
r30 = value76;
break reducibleJoin147;
}
if (r30) {
r30 = value12;
}
r18 = r30;
break reducibleJoin149;
}
reducibleJoin156: while (true) {
if (r18) {
break reducibleJoin156;
}
value78 = !r27;
reducibleJoin152: while (true) {
if (r27) {
r30 = value78;
break reducibleJoin152;
}
regexp = RegExp('\\bMSIE\\b', 'i');
test = regexp.test;
value79 = Reflect.apply(test, regexp, [r10]);
r30 = value79;
break reducibleJoin152;
}
reducibleJoin155: while (true) {
if (r30) {
r43 = r5 == 'Mac OS' ? value15 : value11;
r30 = r43;
break reducibleJoin155;
}
break reducibleJoin155;
}
r18 = r30;
break reducibleJoin156;
}
reducibleJoin161: while (true) {
if (r18) {
break reducibleJoin161;
}
value80 = value12 == r27;
reducibleJoin159: while (true) {
if (value80) {
regexp = RegExp('\\bPlayStation\\b(?! Vita\\b)', 'i');
test = regexp.test;
value81 = Reflect.apply(test, regexp, [r6]);
r30 = value81;
break reducibleJoin159;
}
r30 = value80;
break reducibleJoin159;
}
if (r30) {
r30 = value14;
}
r18 = r30;
break reducibleJoin161;
}
reducibleJoin163: while (true) {
if (r18) {
r33 = [r18];
break reducibleJoin163;
}
r33 = r27;
break reducibleJoin163;
}
reducibleJoin185: while (true) {
reducibleJoin167: while (true) {
if (value20 != r6) {
r12 = r18;
break reducibleJoin167;
}
regexp = RegExp('; *(?:XBLWP|ZuneWP)(\\d+)', 'i');
exec = regexp.exec;
value82 = Reflect.apply(exec, regexp, [r10]);
reducibleJoin166: while (true) {
if (value82) {
r18 = value82;
break reducibleJoin166;
}
value83 = 0;
r18 = value83;
break reducibleJoin166;
}
property = r18[value25];
if (property) {
value94 = r6 + ' Mobile';
regexp = RegExp('\\+$', '');
test = regexp.test;
reducibleJoin184: while (true) {
if (Reflect.apply(test, regexp, [property])) {
r24 = property;
break reducibleJoin184;
}
value95 = property + '.x';
r24 = value95;
break reducibleJoin184;
}
value96 = 'Windows Phone ' + r24;
unshift = object.unshift;
Reflect.apply(unshift, object, ['desktop mode']);
r5 = value96;
r6 = value94;
r12 = property;
break reducibleJoin185;
}
r12 = property;
break reducibleJoin167;
}
regexp = RegExp('\\bWPDesktop\\b', 'i');
test = regexp.test;
if (Reflect.apply(test, regexp, [r10])) {
value90 = 'IE Mobile';
value91 = 'Windows Phone 8.x';
unshift = object.unshift;
Reflect.apply(unshift, object, ['desktop mode']);
if (r3) {
r5 = value91;
r6 = value90;
break reducibleJoin185;
}
regexp = RegExp('\\brv:([\\d.]+)', '');
exec = regexp.exec;
value92 = Reflect.apply(exec, regexp, [r10]);
reducibleJoin181: while (true) {
if (value92) {
r18 = value92;
break reducibleJoin181;
}
value93 = 0;
r18 = value93;
break reducibleJoin181;
}
property = r18[value25];
r3 = property;
r5 = value91;
r6 = value90;
break reducibleJoin185;
}
value84 = value20 != r6;
reducibleJoin170: while (true) {
if (value84) {
value85 = value11 == r33;
r18 = value85;
break reducibleJoin170;
}
r18 = value84;
break reducibleJoin170;
}
reducibleJoin172: while (true) {
if (r18) {
regexp = RegExp('\\brv:([\\d.]+)', '');
exec = regexp.exec;
value86 = Reflect.apply(exec, regexp, [r10]);
r12 = value86;
r18 = value86;
break reducibleJoin172;
}
break reducibleJoin172;
}
if (r18) {
reducibleJoin177: while (true) {
if (r6) {
push = object.push;
value87 = 'identifying as ' + r6;
value88 = '';
reducibleJoin176: while (true) {
if (r3) {
value89 = ' ' + r3;
r18 = value89;
break reducibleJoin176;
}
r18 = value88;
break reducibleJoin176;
}
Reflect.apply(push, object, [value87 + r18]);
break reducibleJoin177;
}
break reducibleJoin177;
}
property = r12[value25];
r3 = property;
r6 = value20;
break reducibleJoin185;
}
break reducibleJoin185;
}
reducibleJoin254: while (true) {
if (value) {
value97 = 'number';
reducibleJoin188: while (true) {
if (value8 != r28) {
global = r28.global;
value98 = typeof global;
r43 = value98;
break reducibleJoin188;
}
r43 = value97;
break reducibleJoin188;
}
regexp = RegExp('^(?:boolean|number|string|undefined)$', '');
test = regexp.test;
value99 = Reflect.apply(test, regexp, [r43]);
reducibleJoin192: while (true) {
if (value99) {
r27 = value99;
break reducibleJoin192;
}
value100 = r43 === 'object';
reducibleJoin191: while (true) {
if (value100) {
global = r28.global;
value101 = !global;
r43 = value101;
break reducibleJoin191;
}
r43 = value100;
break reducibleJoin191;
}
r27 = r43;
break reducibleJoin192;
}
if (r27) {
getClassOfBinding = getClassOf;
runtime = r28.runtime;
if (getClassOfBinding(runtime) == r42) {
value112 = 'Adobe AIR';
flash = runtime.flash;
system = flash.system;
Capabilities = system.Capabilities;
os = Capabilities.os;
r5 = os;
r6 = value112;
r12 = runtime;
r27 = r33;
r30 = r10;
} else {
getClassOfBinding = getClassOf;
phantom = r28.phantom;
if (getClassOfBinding(phantom) == r40) {
version = phantom.version;
if (!version) {
version = value8;
}
reducibleJoin212: while (true) {
if (version) {
major = version.major;
value109 = major + '.';
minor = version.minor;
value110 = value109 + minor;
patch = version.patch;
value111 = value110 + '.' + patch;
r35 = value111;
break reducibleJoin212;
}
r35 = version;
break reducibleJoin212;
}
r3 = r35;
r6 = value17;
r12 = version;
r27 = r33;
r30 = r10;
} else {
documentMode = r41.documentMode;
reducibleJoin251: while (true) {
reducibleJoin199: while (true) {
if (value97 !== typeof documentMode) {
r12 = phantom;
value103 = value97 === typeof r41.documentMode;
if (value103) {
regexp = RegExp('^(?:Chrome|Firefox)\\b', '');
test = regexp.test;
value104 = Reflect.apply(test, regexp, [r6]);
r40 = value104;
break reducibleJoin199;
}
r40 = value103;
break reducibleJoin199;
}
regexp = RegExp('\\bTrident\\/(\\d+)', 'i');
exec = regexp.exec;
value102 = Reflect.apply(exec, regexp, [r10]);
if (value102) {
items10 = [r3];
items10[1] = r41.documentMode;
value107 = Number(value102[value25]) + 4;
reducibleJoin205: while (true) {
if (value107 == items10[value25]) {
break reducibleJoin205;
}
push = object.push;
Reflect.apply(push, object, ['IE ' + items10[value25] + ' mode']);
reducibleJoin204: while (true) {
if (r33) {
r33[value25] = '';
break reducibleJoin204;
}
break reducibleJoin204;
}
items10[value25] = value107;
break reducibleJoin205;
}
if (value20 == r6) {
String = global.String;
property = items10[value25];
toFixed = property.toFixed;
value108 = String(Reflect.apply(toFixed, property, [value25]));
r40 = value108;
} else {
property = items10[0];
r40 = property;
}
r3 = r40;
r12 = value107;
r27 = r33;
r30 = r10;
break reducibleJoin251;
}
r12 = value102;
documentMode = r41.documentMode;
value103 = value97 === typeof documentMode;
if (value103) {
regexp = RegExp('^(?:Chrome|Firefox)\\b', '');
test = regexp.test;
value104 = Reflect.apply(test, regexp, [r6]);
r40 = value104;
break reducibleJoin199;
}
r40 = value103;
break reducibleJoin199;
}
if (r40) {
push = object.push;
Reflect.apply(push, object, ['masking as ' + r6 + ' ' + r3]);
value105 = '11.0';
value106 = 'Windows';
r3 = value105;
r5 = value106;
r6 = value20;
r27 = ['Trident'];
r30 = r10;
break reducibleJoin251;
}
r27 = r33;
r30 = r10;
break reducibleJoin251;
}
}
}
} else {
reducibleJoin218: while (true) {
if (r39) {
lang = r39.lang;
System = lang.System;
getProperty = System.getProperty;
value113 = Reflect.apply(getProperty, System, ['os.arch']);
reducibleJoin217: while (true) {
if (r5) {
r40 = r5;
break reducibleJoin217;
}
getProperty = System.getProperty;
value114 = Reflect.apply(getProperty, System, ['os.name']);
value115 = value114 + ' ';
getProperty = System.getProperty;
value116 = value115 + Reflect.apply(getProperty, System, ['os.version']);
r40 = value116;
break reducibleJoin217;
}
r5 = r40;
r12 = System;
r35 = value113;
break reducibleJoin218;
}
r35 = r10;
break reducibleJoin218;
}
if (r38) {
reducibleJoin236: while (true) {
reduciblePort249: while (true) {
exceptionLanding243: while (true) {
try {
require = r28.require;
} catch (error) {
break exceptionLanding243;
}
break reducibleJoin236;
}
system = r28.system;
reducibleJoin245: while (true) {
if (system) {
global = system.global;
system2 = global.system;
system3 = r28.system;
value126 = system2 == system3;
r38 = value126;
break reducibleJoin245;
}
r38 = system;
break reducibleJoin245;
}
reducibleJoin249: while (true) {
if (r38) {
value127 = 'Narwhal';
if (r5) {
r6 = value127;
r12 = system;
break reducibleJoin249;
}
os = system[0].os;
r38 = os || value8;
r5 = r38;
r6 = value127;
r12 = system;
break reducibleJoin249;
}
r12 = system;
break reducibleJoin249;
}
break reduciblePort249;
}
reducibleJoin251: while (true) {
if (r6) {
r27 = r33;
r30 = r35;
break reducibleJoin251;
}
value128 = 'Rhino';
r6 = value128;
r27 = r33;
r30 = r35;
break reducibleJoin251;
}
reducibleJoin253: while (true) {
if (r5) {
value129 = format(r5);
r33 = value129;
break reducibleJoin253;
}
r33 = r5;
break reducibleJoin253;
}
r5 = r33;
r18 = r30;
r24 = r27;
break reducibleJoin254;
}
try {
moduleValue = Reflect.apply(require, r28, ['ringo/engine']);
} catch (error) {
break exceptionLanding243;
}
try {
version = moduleValue.version;
} catch (error) {
break exceptionLanding243;
}
try {
join = version.join;
} catch (error) {
break exceptionLanding243;
}
try {
value124 = Reflect.apply(join, version, ['.']);
} catch (error) {
break exceptionLanding243;
}
value125 = 'RingoJS';
r3 = value124;
r6 = value125;
reducibleJoin251: while (true) {
if (r6) {
r27 = r33;
r30 = r35;
break reducibleJoin251;
}
value128 = 'Rhino';
r6 = value128;
r27 = r33;
r30 = r35;
break reducibleJoin251;
}
} else {
process = r28.process;
value117 = typeof process === 'object';
reducibleJoin221: while (true) {
if (value117) {
process = r28.process;
browser = process.browser;
value118 = !browser;
r38 = value118;
break reducibleJoin221;
}
r38 = value117;
break reducibleJoin221;
}
reducibleJoin223: while (true) {
if (r38) {
process = r28.process;
r12 = process;
r38 = process;
break reducibleJoin223;
}
break reducibleJoin223;
}
reducibleJoin251: while (true) {
if (r38) {
versions = r12.versions;
reducibleJoin229: while (true) {
if (typeof versions !== 'object') {
break reducibleJoin229;
}
versions = r12.versions;
electron = versions.electron;
if (typeof electron === 'string') {
push = object.push;
versions = r12.versions;
Reflect.apply(push, object, ['Node ' + versions.node]);
value121 = 'Electron';
versions = r12.versions;
electron = versions.electron;
r3 = electron;
r6 = value121;
break reducibleJoin229;
}
versions = r12.versions;
nw = versions.nw;
if (typeof nw !== 'string') {
break reducibleJoin229;
}
push = object.push;
value119 = 'Chromium ' + r3;
versions = r12.versions;
node = versions.node;
Reflect.apply(push, object, [value119, 'Node ' + node]);
value120 = 'NW.js';
versions = r12.versions;
nw = versions.nw;
r3 = nw;
r6 = value120;
break reducibleJoin229;
}
reducibleJoin233: while (true) {
if (r6) {
r38 = r35;
break reducibleJoin233;
}
value122 = 'Node.js';
arch = r12.arch;
platform = r12.platform;
regexp = RegExp('[\\d.]+', '');
exec = regexp.exec;
version = r12.version;
value123 = Reflect.apply(exec, regexp, [version]);
reducibleJoin232: while (true) {
if (value123) {
property = value123[0];
r40 = property;
break reducibleJoin232;
}
r40 = value8;
break reducibleJoin232;
}
r3 = r40;
r5 = platform;
r6 = value122;
r38 = arch;
break reducibleJoin233;
}
r27 = r33;
r30 = r38;
break reducibleJoin251;
}
r27 = r33;
r30 = r35;
break reducibleJoin251;
}
}
}
reducibleJoin253: while (true) {
if (r5) {
value129 = format(r5);
r33 = value129;
break reducibleJoin253;
}
r33 = r5;
break reducibleJoin253;
}
r5 = r33;
r18 = r30;
r24 = r27;
break reducibleJoin254;
}
r18 = r10;
r24 = r33;
break reducibleJoin254;
}
reducibleJoin264: while (true) {
if (r3) {
regexp = RegExp('(?:[ab]|dp|pre|[ab]\\d+pre)(?:\\d+\\+?)?$', 'i');
exec = regexp.exec;
value130 = Reflect.apply(exec, regexp, [r3]);
reducibleJoin259: while (true) {
if (value130) {
r27 = value130;
break reducibleJoin259;
}
regexp = RegExp('(?:alpha|beta)(?: ?\\d)?', 'i');
exec = regexp.exec;
value131 = r10 + ';';
reducibleJoin258: while (true) {
if (value) {
appMinorVersion = r20.appMinorVersion;
r33 = appMinorVersion;
break reducibleJoin258;
}
r33 = value;
break reducibleJoin258;
}
value132 = Reflect.apply(exec, regexp, [value131 + r33]);
r27 = value132;
break reducibleJoin259;
}
reducibleJoin263: while (true) {
if (r27) {
break reducibleJoin263;
}
regexp = RegExp('\\bMinefield\\b', 'i');
test = regexp.test;
value133 = Reflect.apply(test, regexp, [r10]);
reducibleJoin262: while (true) {
if (value133) {
value134 = 'a';
r33 = value134;
break reducibleJoin262;
}
r33 = value133;
break reducibleJoin262;
}
r27 = r33;
break reducibleJoin263;
}
r12 = r27;
r30 = r27;
break reducibleJoin264;
}
r30 = r3;
break reducibleJoin264;
}
reducibleJoin270: while (true) {
if (r30) {
regexp = RegExp('b', 'i');
test = regexp.test;
value135 = Reflect.apply(test, regexp, [r12]);
value136 = 'alpha';
reducibleJoin267: while (true) {
if (value135) {
value137 = 'beta';
r30 = value137;
break reducibleJoin267;
}
r30 = value136;
break reducibleJoin267;
}
replace = r3.replace;
RegExp = global.RegExp;
value138 = RegExp(r12 + '\\+?$');
value139 = '';
value140 = Reflect.apply(replace, r3, [value138, value139]);
if (r30 === 'beta') {
r34 = r37;
}
value141 = value140 + r34;
regexp = RegExp('\\d+\\+?', '');
exec = regexp.exec;
value142 = Reflect.apply(exec, regexp, [r12]);
r33 = value142 || value139;
value143 = value141 + r33;
r3 = value143;
r27 = r30;
break reducibleJoin270;
}
r27 = value8;
break reducibleJoin270;
}
reducibleJoin353: while (true) {
reduciblePort354: while (true) {
exceptionLanding345: while (true) {
if (r6 == 'Fennec') {
break reducibleJoin353;
}
if (r6 == 'Firefox') {
regexp = RegExp('\\b(?:Android|Firefox OS|KaiOS)\\b', '');
if (regexp.test(r5)) {
break reducibleJoin353;
}
}
if (r6 == 'Maxthon') {
if (r3) {
replace = r3.replace;
value179 = Reflect.apply(replace, r3, [RegExp('\\.[\\d.]+', ''), '.x']);
r2 = r14;
r3 = value179;
r9 = r24;
r13 = r11;
break reduciblePort354;
}
}
regexp = RegExp('\\bXbox\\b', 'i');
test = regexp.test;
if (Reflect.apply(test, regexp, [r14])) {
if (r14 == 'Xbox 360') {
r5 = value8;
}
value177 = r14 == 'Xbox 360';
reducibleJoin350: while (true) {
if (value177) {
regexp = RegExp('\\bIEMobile\\b', '');
test = regexp.test;
value178 = Reflect.apply(test, regexp, [r10]);
r25 = value178;
break reducibleJoin350;
}
r25 = value177;
break reducibleJoin350;
}
if (r25) {
unshift = object.unshift;
Reflect.apply(unshift, object, ['mobile mode']);
r2 = r14;
r9 = r24;
r13 = r11;
break reduciblePort354;
}
r2 = r14;
r9 = r24;
r13 = r11;
break reduciblePort354;
}
regexp = RegExp('^(?:Chrome|IE|Opera)$', '');
test = regexp.test;
if (!Reflect.apply(test, regexp, [r6])) {
if (r6) {
if (!r14) {
regexp = RegExp('Browser|Mobi', '');
test = regexp.test;
if (!Reflect.apply(test, regexp, [r6])) {
if (r5 != 'Windows CE') {
regexp = RegExp('Mobi', 'i');
test = regexp.test;
if (!Reflect.apply(test, regexp, [r10])) {
if (value20 == r6) {
if (value) {
try {
external = r28.external;
} catch (error) {
break exceptionLanding345;
}
try {
value175 = value8 !== external;
} catch (error) {
break exceptionLanding345;
}
if (value175) {
r2 = r14;
r9 = r24;
r13 = r11;
break reduciblePort354;
}
try {
unshift = object.unshift;
} catch (error) {
break exceptionLanding345;
}
try {
Reflect.apply(unshift, object, ['platform preview']);
} catch (error) {
break exceptionLanding345;
}
r2 = r14;
r9 = r24;
r13 = r11;
break reduciblePort354;
}
}
regexp = RegExp('\\bBlackBerry\\b', '');
test = regexp.test;
if (!Reflect.apply(test, regexp, [r14])) {
regexp = RegExp('\\bBB10\\b', '');
test = regexp.test;
if (!Reflect.apply(test, regexp, [r10])) {
value148 = this != forOwn_7372;
reducibleJoin292: while (true) {
if (value148) {
value149 = r14 != 'Wii';
r30 = value149;
break reducibleJoin292;
}
r30 = value148;
break reducibleJoin292;
}
reducibleJoin319: while (true) {
if (r30) {
r2 = value && r9;
reducibleJoin298: while (true) {
if (r2) {
break reducibleJoin298;
}
regexp = RegExp('Opera', '');
test = regexp.test;
value150 = Reflect.apply(test, regexp, [r6]);
reducibleJoin297: while (true) {
if (value150) {
regexp = RegExp('\\b(?:MSIE|Firefox)\\b', 'i');
test = regexp.test;
value151 = Reflect.apply(test, regexp, [r10]);
r9 = value151;
break reducibleJoin297;
}
r9 = value150;
break reducibleJoin297;
}
r2 = r9;
break reducibleJoin298;
}
reducibleJoin302: while (true) {
if (r2) {
break reducibleJoin302;
}
value152 = r6 == 'Firefox';
reducibleJoin301: while (true) {
if (value152) {
regexp = RegExp('\\bOS X (?:\\d+\\.){2,}', '');
test = regexp.test;
value153 = Reflect.apply(test, regexp, [r5]);
r9 = value153;
break reducibleJoin301;
}
r9 = value152;
break reducibleJoin301;
}
r2 = r9;
break reducibleJoin302;
}
reducibleJoin318: while (true) {
if (r2) {
break reducibleJoin318;
}
value154 = value20 == r6;
reducibleJoin317: while (true) {
if (value154) {
reducibleJoin306: while (true) {
if (r5) {
regexp = RegExp('^Win', '');
test = regexp.test;
value155 = !Reflect.apply(test, regexp,
[r5]);
r13 = value155;
break reducibleJoin306;
}
r13 = r5;
break reducibleJoin306;
}
reducibleJoin308: while (true) {
if (r13) {
value156 = r3 > 5.5;
r13 = value156;
break reducibleJoin308;
}
break reducibleJoin308;
}
reducibleJoin312: while (true) {
if (r13) {
break reducibleJoin312;
}
regexp = RegExp('\\bWindows XP\\b', '');
test = regexp.test;
value157 = Reflect.apply(test, regexp, [r5]);
reducibleJoin311: while (true) {
if (value157) {
value158 = r3 > 8;
r31 = value158;
break reducibleJoin311;
}
r31 = value157;
break reducibleJoin311;
}
r13 = r31;
break reducibleJoin312;
}
reducibleJoin316: while (true) {
if (r13) {
break reducibleJoin316;
}
value159 = r3 == 8;
reducibleJoin315: while (true) {
if (value159) {
regexp = RegExp('\\bTrident\\b', '');
test = regexp.test;
value160 = !Reflect.apply(test, regexp,
[r10]);
r31 = value160;
break reducibleJoin315;
}
r31 = value159;
break reducibleJoin315;
}
r13 = r31;
break reducibleJoin316;
}
r9 = r13;
break reducibleJoin317;
}
r9 = value154;
break reducibleJoin317;
}
r2 = r9;
break reducibleJoin318;
}
r30 = r2;
break reducibleJoin319;
}
break reducibleJoin319;
}
reducibleJoin321: while (true) {
if (r30) {
binding = env0_3;
test = binding.test;
parse_7378Binding = parse_7378;
call = parse_7378Binding.call;
forOwn_7372Binding = forOwn_7372;
replace = r10.replace;
value161 = Reflect.apply(replace, r10, [env0_3, '']);
value162 = Reflect.apply(call, parse_7378Binding,
[forOwn_7372Binding,
value161 + ';']);
value163 = !Reflect.apply(test, binding, [value162]);
r12 = value162;
r30 = value163;
break reducibleJoin321;
}
break reducibleJoin321;
}
reducibleJoin323: while (true) {
if (r30) {
name = r12.name;
r30 = name;
break reducibleJoin323;
}
break reducibleJoin323;
}
if (r30) {
name = r12.name;
value164 = 'ing as ' + name;
version = r12.version;
value165 = '';
reducibleJoin326: while (true) {
if (version) {
value166 = ' ' + version;
r30 = value166;
break reducibleJoin326;
}
r30 = value165;
break reducibleJoin326;
}
value167 = value164 + r30;
binding = env0_3;
test = binding.test;
if (Reflect.apply(test, binding, [r6])) {
regexp = RegExp('\\bIE\\b', '');
test = regexp.test;
value170 = Reflect.apply(test, regexp, [value167]);
reducibleJoin333: while (true) {
if (value170) {
value171 = r5 == 'Mac OS';
r30 = value171;
break reducibleJoin333;
}
r30 = value170;
break reducibleJoin333;
}
if (r30) {
r5 = value8;
}
value172 = 'identify' + value167;
r12 = value172;
} else {
value168 = 'mask' + value167;
reducibleJoin329: while (true) {
if (r36) {
formatBinding = format;
replace = r36.replace;
value169 = formatBinding(Reflect.apply(replace, r36,
[RegExp('([a-z])([A-Z])',
'g'),
'$1 $2']));
r30 = value169;
break reducibleJoin329;
}
r30 = value18;
break reducibleJoin329;
}
regexp = RegExp('\\bIE\\b', '');
test = regexp.test;
if (Reflect.apply(test, regexp, [value168])) {
r5 = value8;
}
if (value) {
r6 = r30;
r12 = value168;
} else {
r3 = value8;
r6 = r30;
r12 = value168;
}
}
push = object.push;
Reflect.apply(push, object, [r12]);
r2 = r14;
r9 = ['Presto'];
r13 = r11;
break reduciblePort354;
}
r2 = r14;
r9 = r24;
r13 = r11;
break reduciblePort354;
}
}
RegExp = global.RegExp;
replace = r14.replace;
value145 = RegExp(Reflect.apply(replace, r14, [RegExp(' +', 'g'),
' *']) + '/([.\\d]+)',
'i');
value146 = value145.exec(r10);
reducibleJoin288: while (true) {
if (value146) {
r30 = value146;
break reducibleJoin288;
}
value147 = 0;
r30 = value147;
break reducibleJoin288;
}
r30 = r30[value25] || r3;
if (r30) {
items12 = [r30];
regexp = RegExp('BB10', '');
items12[1] = regexp.test(r10);
value173 = 'Device Software';
reducibleJoin338: while (true) {
if (items12[value25]) {
env0_2 = value8;
r30 = value23;
r31 = value8;
r34 = value23;
break reducibleJoin338;
}
r30 = r11;
r31 = r14;
r34 = value173;
break reducibleJoin338;
}
value174 = r34 + ' ' + items12[0];
r2 = r31;
r3 = value8;
r5 = value174;
r9 = r24;
r13 = r30;
break reduciblePort354;
}
r12 = r30;
value148 = this != forOwn_7372;
reducibleJoin292: while (true) {
if (value148) {
value149 = r14 != 'Wii';
r30 = value149;
break reducibleJoin292;
}
r30 = value148;
break reducibleJoin292;
}
reducibleJoin319: while (true) {
if (r30) {
r2 = value && r9;
reducibleJoin298: while (true) {
if (r2) {
break reducibleJoin298;
}
regexp = RegExp('Opera', '');
test = regexp.test;
value150 = Reflect.apply(test, regexp, [r6]);
reducibleJoin297: while (true) {
if (value150) {
regexp = RegExp('\\b(?:MSIE|Firefox)\\b', 'i');
test = regexp.test;
value151 = Reflect.apply(test, regexp, [r10]);
r9 = value151;
break reducibleJoin297;
}
r9 = value150;
break reducibleJoin297;
}
r2 = r9;
break reducibleJoin298;
}
reducibleJoin302: while (true) {
if (r2) {
break reducibleJoin302;
}
value152 = r6 == 'Firefox';
reducibleJoin301: while (true) {
if (value152) {
regexp = RegExp('\\bOS X (?:\\d+\\.){2,}', '');
test = regexp.test;
value153 = Reflect.apply(test, regexp, [r5]);
r9 = value153;
break reducibleJoin301;
}
r9 = value152;
break reducibleJoin301;
}
r2 = r9;
break reducibleJoin302;
}
reducibleJoin318: while (true) {
if (r2) {
break reducibleJoin318;
}
value154 = value20 == r6;
reducibleJoin317: while (true) {
if (value154) {
reducibleJoin306: while (true) {
if (r5) {
regexp = RegExp('^Win', '');
test = regexp.test;
value155 = !Reflect.apply(test, regexp, [r5]);
r13 = value155;
break reducibleJoin306;
}
r13 = r5;
break reducibleJoin306;
}
reducibleJoin308: while (true) {
if (r13) {
value156 = r3 > 5.5;
r13 = value156;
break reducibleJoin308;
}
break reducibleJoin308;
}
reducibleJoin312: while (true) {
if (r13) {
break reducibleJoin312;
}
regexp = RegExp('\\bWindows XP\\b', '');
test = regexp.test;
value157 = Reflect.apply(test, regexp, [r5]);
reducibleJoin311: while (true) {
if (value157) {
value158 = r3 > 8;
r31 = value158;
break reducibleJoin311;
}
r31 = value157;
break reducibleJoin311;
}
r13 = r31;
break reducibleJoin312;
}
reducibleJoin316: while (true) {
if (r13) {
break reducibleJoin316;
}
value159 = r3 == 8;
reducibleJoin315: while (true) {
if (value159) {
regexp = RegExp('\\bTrident\\b', '');
test = regexp.test;
value160 = !Reflect.apply(test, regexp, [r10]);
r31 = value160;
break reducibleJoin315;
}
r31 = value159;
break reducibleJoin315;
}
r13 = r31;
break reducibleJoin316;
}
r9 = r13;
break reducibleJoin317;
}
r9 = value154;
break reducibleJoin317;
}
r2 = r9;
break reducibleJoin318;
}
r30 = r2;
break reducibleJoin319;
}
break reducibleJoin319;
}
reducibleJoin321: while (true) {
if (r30) {
binding = env0_3;
test = binding.test;
parse_7378Binding = parse_7378;
call = parse_7378Binding.call;
forOwn_7372Binding = forOwn_7372;
replace = r10.replace;
value161 = Reflect.apply(replace, r10, [env0_3, '']);
value162 = Reflect.apply(call, parse_7378Binding, [forOwn_7372Binding,
value161 + ';']);
value163 = !Reflect.apply(test, binding, [value162]);
r12 = value162;
r30 = value163;
break reducibleJoin321;
}
break reducibleJoin321;
}
reducibleJoin323: while (true) {
if (r30) {
name = r12.name;
r30 = name;
break reducibleJoin323;
}
break reducibleJoin323;
}
if (r30) {
name = r12.name;
value164 = 'ing as ' + name;
version = r12.version;
value165 = '';
reducibleJoin326: while (true) {
if (version) {
value166 = ' ' + version;
r30 = value166;
break reducibleJoin326;
}
r30 = value165;
break reducibleJoin326;
}
value167 = value164 + r30;
binding = env0_3;
if (binding.test(r6)) {
regexp = RegExp('\\bIE\\b', '');
value170 = regexp.test(value167);
reducibleJoin333: while (true) {
if (value170) {
value171 = r5 == 'Mac OS';
r30 = value171;
break reducibleJoin333;
}
r30 = value170;
break reducibleJoin333;
}
if (r30) {
r5 = value8;
}
value172 = 'identify' + value167;
r12 = value172;
} else {
value168 = 'mask' + value167;
reducibleJoin329: while (true) {
if (r36) {
formatBinding = format;
replace = r36.replace;
value169 = formatBinding(Reflect.apply(replace, r36,
[RegExp('([a-z])([A-Z])',
'g'),
'$1 $2']));
r30 = value169;
break reducibleJoin329;
}
r30 = value18;
break reducibleJoin329;
}
regexp = RegExp('\\bIE\\b', '');
if (regexp.test(value168)) {
r5 = value8;
}
if (value) {
r6 = r30;
r12 = value168;
} else {
r3 = value8;
r6 = r30;
r12 = value168;
}
}
push = object.push;
Reflect.apply(push, object, [r12]);
r2 = r14;
r9 = ['Presto'];
r13 = r11;
break reduciblePort354;
}
r2 = r14;
r9 = r24;
r13 = r11;
break reduciblePort354;
}
}
value176 = r6 + ' Mobile';
r2 = r14;
r6 = value176;
r9 = r24;
r13 = r11;
break reduciblePort354;
}
}
}
if (value20 == r6) {
if (value) {
try {
external = r28.external;
} catch (error) {
break exceptionLanding345;
}
try {
value175 = value8 !== external;
} catch (error) {
break exceptionLanding345;
}
if (value175) {
r2 = r14;
r9 = r24;
r13 = r11;
break reduciblePort354;
}
try {
unshift = object.unshift;
} catch (error) {
break exceptionLanding345;
}
try {
Reflect.apply(unshift, object, ['platform preview']);
} catch (error) {
break exceptionLanding345;
}
r2 = r14;
r9 = r24;
r13 = r11;
break reduciblePort354;
}
}
regexp = RegExp('\\bBlackBerry\\b', '');
test = regexp.test;
if (!Reflect.apply(test, regexp, [r14])) {
regexp = RegExp('\\bBB10\\b', '');
test = regexp.test;
if (!Reflect.apply(test, regexp, [r10])) {
value148 = this != forOwn_7372;
reducibleJoin292: while (true) {
if (value148) {
value149 = r14 != 'Wii';
r30 = value149;
break reducibleJoin292;
}
r30 = value148;
break reducibleJoin292;
}
reducibleJoin319: while (true) {
if (r30) {
r2 = value && r9;
reducibleJoin298: while (true) {
if (r2) {
break reducibleJoin298;
}
regexp = RegExp('Opera', '');
test = regexp.test;
value150 = Reflect.apply(test, regexp, [r6]);
reducibleJoin297: while (true) {
if (value150) {
regexp = RegExp('\\b(?:MSIE|Firefox)\\b', 'i');
test = regexp.test;
value151 = Reflect.apply(test, regexp, [r10]);
r9 = value151;
break reducibleJoin297;
}
r9 = value150;
break reducibleJoin297;
}
r2 = r9;
break reducibleJoin298;
}
reducibleJoin302: while (true) {
if (r2) {
break reducibleJoin302;
}
value152 = r6 == 'Firefox';
reducibleJoin301: while (true) {
if (value152) {
regexp = RegExp('\\bOS X (?:\\d+\\.){2,}', '');
test = regexp.test;
value153 = Reflect.apply(test, regexp, [r5]);
r9 = value153;
break reducibleJoin301;
}
r9 = value152;
break reducibleJoin301;
}
r2 = r9;
break reducibleJoin302;
}
reducibleJoin318: while (true) {
if (r2) {
break reducibleJoin318;
}
value154 = value20 == r6;
reducibleJoin317: while (true) {
if (value154) {
reducibleJoin306: while (true) {
if (r5) {
regexp = RegExp('^Win', '');
test = regexp.test;
value155 = !Reflect.apply(test, regexp, [r5]);
r13 = value155;
break reducibleJoin306;
}
r13 = r5;
break reducibleJoin306;
}
reducibleJoin308: while (true) {
if (r13) {
value156 = r3 > 5.5;
r13 = value156;
break reducibleJoin308;
}
break reducibleJoin308;
}
reducibleJoin312: while (true) {
if (r13) {
break reducibleJoin312;
}
regexp = RegExp('\\bWindows XP\\b', '');
test = regexp.test;
value157 = Reflect.apply(test, regexp, [r5]);
reducibleJoin311: while (true) {
if (value157) {
value158 = r3 > 8;
r31 = value158;
break reducibleJoin311;
}
r31 = value157;
break reducibleJoin311;
}
r13 = r31;
break reducibleJoin312;
}
reducibleJoin316: while (true) {
if (r13) {
break reducibleJoin316;
}
value159 = r3 == 8;
reducibleJoin315: while (true) {
if (value159) {
regexp = RegExp('\\bTrident\\b', '');
test = regexp.test;
value160 = !Reflect.apply(test, regexp, [r10]);
r31 = value160;
break reducibleJoin315;
}
r31 = value159;
break reducibleJoin315;
}
r13 = r31;
break reducibleJoin316;
}
r9 = r13;
break reducibleJoin317;
}
r9 = value154;
break reducibleJoin317;
}
r2 = r9;
break reducibleJoin318;
}
r30 = r2;
break reducibleJoin319;
}
break reducibleJoin319;
}
reducibleJoin321: while (true) {
if (r30) {
binding = env0_3;
test = binding.test;
parse_7378Binding = parse_7378;
call = parse_7378Binding.call;
forOwn_7372Binding = forOwn_7372;
replace = r10.replace;
value161 = Reflect.apply(replace, r10, [env0_3, '']);
value162 = Reflect.apply(call, parse_7378Binding, [forOwn_7372Binding,
value161 + ';']);
value163 = !Reflect.apply(test, binding, [value162]);
r12 = value162;
r30 = value163;
break reducibleJoin321;
}
break reducibleJoin321;
}
reducibleJoin323: while (true) {
if (r30) {
name = r12.name;
r30 = name;
break reducibleJoin323;
}
break reducibleJoin323;
}
if (r30) {
name = r12.name;
value164 = 'ing as ' + name;
version = r12.version;
value165 = '';
reducibleJoin326: while (true) {
if (version) {
value166 = ' ' + version;
r30 = value166;
break reducibleJoin326;
}
r30 = value165;
break reducibleJoin326;
}
value167 = value164 + r30;
binding = env0_3;
test = binding.test;
if (Reflect.apply(test, binding, [r6])) {
regexp = RegExp('\\bIE\\b', '');
test = regexp.test;
value170 = Reflect.apply(test, regexp, [value167]);
reducibleJoin333: while (true) {
if (value170) {
value171 = r5 == 'Mac OS';
r30 = value171;
break reducibleJoin333;
}
r30 = value170;
break reducibleJoin333;
}
if (r30) {
r5 = value8;
}
value172 = 'identify' + value167;
r12 = value172;
} else {
value168 = 'mask' + value167;
reducibleJoin329: while (true) {
if (r36) {
formatBinding = format;
replace = r36.replace;
value169 = formatBinding(Reflect.apply(replace, r36,
[RegExp('([a-z])([A-Z])',
'g'),
'$1 $2']));
r30 = value169;
break reducibleJoin329;
}
r30 = value18;
break reducibleJoin329;
}
regexp = RegExp('\\bIE\\b', '');
test = regexp.test;
if (Reflect.apply(test, regexp, [value168])) {
r5 = value8;
}
if (value) {
r6 = r30;
r12 = value168;
} else {
r3 = value8;
r6 = r30;
r12 = value168;
}
}
push = object.push;
Reflect.apply(push, object, [r12]);
r2 = r14;
r9 = ['Presto'];
r13 = r11;
break reduciblePort354;
}
r2 = r14;
r9 = r24;
r13 = r11;
break reduciblePort354;
}
}
RegExp = global.RegExp;
replace = r14.replace;
value144 = Reflect.apply(replace, r14, [RegExp(' +', 'g'), ' *']);
value145 = RegExp(value144 + '/([.\\d]+)', 'i');
exec = value145.exec;
value146 = Reflect.apply(exec, value145, [r10]);
reducibleJoin288: while (true) {
if (value146) {
r30 = value146;
break reducibleJoin288;
}
value147 = 0;
r30 = value147;
break reducibleJoin288;
}
property = r30[value25];
r30 = property || r3;
if (r30) {
items12 = [r30];
regexp = RegExp('BB10', '');
test = regexp.test;
items12[1] = Reflect.apply(test, regexp, [r10]);
value173 = 'Device Software';
reducibleJoin338: while (true) {
if (items12[value25]) {
env0_2 = value8;
r30 = value23;
r31 = value8;
r34 = value23;
break reducibleJoin338;
}
r30 = r11;
r31 = r14;
r34 = value173;
break reducibleJoin338;
}
property = items12[0];
value174 = r34 + ' ' + property;
r2 = r31;
r3 = value8;
r5 = value174;
r9 = r24;
r13 = r30;
break reduciblePort354;
}
r12 = r30;
value148 = this != forOwn_7372;
reducibleJoin292: while (true) {
if (value148) {
value149 = r14 != 'Wii';
r30 = value149;
break reducibleJoin292;
}
r30 = value148;
break reducibleJoin292;
}
reducibleJoin319: while (true) {
if (r30) {
r2 = value && r9;
reducibleJoin298: while (true) {
if (r2) {
break reducibleJoin298;
}
regexp = RegExp('Opera', '');
test = regexp.test;
value150 = Reflect.apply(test, regexp, [r6]);
reducibleJoin297: while (true) {
if (value150) {
regexp = RegExp('\\b(?:MSIE|Firefox)\\b', 'i');
test = regexp.test;
value151 = Reflect.apply(test, regexp, [r10]);
r9 = value151;
break reducibleJoin297;
}
r9 = value150;
break reducibleJoin297;
}
r2 = r9;
break reducibleJoin298;
}
reducibleJoin302: while (true) {
if (r2) {
break reducibleJoin302;
}
value152 = r6 == 'Firefox';
reducibleJoin301: while (true) {
if (value152) {
regexp = RegExp('\\bOS X (?:\\d+\\.){2,}', '');
test = regexp.test;
value153 = Reflect.apply(test, regexp, [r5]);
r9 = value153;
break reducibleJoin301;
}
r9 = value152;
break reducibleJoin301;
}
r2 = r9;
break reducibleJoin302;
}
reducibleJoin318: while (true) {
if (r2) {
break reducibleJoin318;
}
value154 = value20 == r6;
reducibleJoin317: while (true) {
if (value154) {
reducibleJoin306: while (true) {
if (r5) {
regexp = RegExp('^Win', '');
test = regexp.test;
value155 = !Reflect.apply(test, regexp, [r5]);
r13 = value155;
break reducibleJoin306;
}
r13 = r5;
break reducibleJoin306;
}
reducibleJoin308: while (true) {
if (r13) {
value156 = r3 > 5.5;
r13 = value156;
break reducibleJoin308;
}
break reducibleJoin308;
}
reducibleJoin312: while (true) {
if (r13) {
break reducibleJoin312;
}
regexp = RegExp('\\bWindows XP\\b', '');
test = regexp.test;
value157 = Reflect.apply(test, regexp, [r5]);
reducibleJoin311: while (true) {
if (value157) {
value158 = r3 > 8;
r31 = value158;
break reducibleJoin311;
}
r31 = value157;
break reducibleJoin311;
}
r13 = r31;
break reducibleJoin312;
}
reducibleJoin316: while (true) {
if (r13) {
break reducibleJoin316;
}
value159 = r3 == 8;
reducibleJoin315: while (true) {
if (value159) {
regexp = RegExp('\\bTrident\\b', '');
test = regexp.test;
value160 = !Reflect.apply(test, regexp, [r10]);
r31 = value160;
break reducibleJoin315;
}
r31 = value159;
break reducibleJoin315;
}
r13 = r31;
break reducibleJoin316;
}
r9 = r13;
break reducibleJoin317;
}
r9 = value154;
break reducibleJoin317;
}
r2 = r9;
break reducibleJoin318;
}
r30 = r2;
break reducibleJoin319;
}
break reducibleJoin319;
}
reducibleJoin321: while (true) {
if (r30) {
binding = env0_3;
test = binding.test;
parse_7378Binding = parse_7378;
call = parse_7378Binding.call;
forOwn_7372Binding = forOwn_7372;
replace = r10.replace;
value161 = Reflect.apply(replace, r10, [env0_3, '']);
value162 = Reflect.apply(call, parse_7378Binding, [forOwn_7372Binding, value161 + ';']);
value163 = !Reflect.apply(test, binding, [value162]);
r12 = value162;
r30 = value163;
break reducibleJoin321;
}
break reducibleJoin321;
}
reducibleJoin323: while (true) {
if (r30) {
name = r12.name;
r30 = name;
break reducibleJoin323;
}
break reducibleJoin323;
}
if (r30) {
name = r12.name;
value164 = 'ing as ' + name;
version = r12.version;
value165 = '';
reducibleJoin326: while (true) {
if (version) {
value166 = ' ' + version;
r30 = value166;
break reducibleJoin326;
}
r30 = value165;
break reducibleJoin326;
}
value167 = value164 + r30;
binding = env0_3;
test = binding.test;
if (Reflect.apply(test, binding, [r6])) {
regexp = RegExp('\\bIE\\b', '');
test = regexp.test;
value170 = Reflect.apply(test, regexp, [value167]);
reducibleJoin333: while (true) {
if (value170) {
value171 = r5 == 'Mac OS';
r30 = value171;
break reducibleJoin333;
}
r30 = value170;
break reducibleJoin333;
}
if (r30) {
r5 = value8;
}
value172 = 'identify' + value167;
r12 = value172;
} else {
value168 = 'mask' + value167;
reducibleJoin329: while (true) {
if (r36) {
formatBinding = format;
replace = r36.replace;
value169 = formatBinding(Reflect.apply(replace, r36, [RegExp('([a-z])([A-Z])', 'g'),
'$1 $2']));
r30 = value169;
break reducibleJoin329;
}
r30 = value18;
break reducibleJoin329;
}
regexp = RegExp('\\bIE\\b', '');
test = regexp.test;
if (Reflect.apply(test, regexp, [value168])) {
r5 = value8;
}
if (value) {
r6 = r30;
r12 = value168;
} else {
r3 = value8;
r6 = r30;
r12 = value168;
}
}
push = object.push;
Reflect.apply(push, object, [r12]);
r2 = r14;
r9 = ['Presto'];
r13 = r11;
break reduciblePort354;
}
r2 = r14;
r9 = r24;
r13 = r11;
break reduciblePort354;
}
if (r5 != 'Windows CE') {
regexp = RegExp('Mobi', 'i');
test = regexp.test;
if (!Reflect.apply(test, regexp, [r10])) {
if (value20 == r6) {
if (value) {
try {
external = r28.external;
} catch (error) {
break exceptionLanding345;
}
try {
value175 = value8 !== external;
} catch (error) {
break exceptionLanding345;
}
if (value175) {
r2 = r14;
r9 = r24;
r13 = r11;
break reduciblePort354;
}
try {
unshift = object.unshift;
} catch (error) {
break exceptionLanding345;
}
try {
Reflect.apply(unshift, object, ['platform preview']);
} catch (error) {
break exceptionLanding345;
}
r2 = r14;
r9 = r24;
r13 = r11;
break reduciblePort354;
}
}
regexp = RegExp('\\bBlackBerry\\b', '');
test = regexp.test;
if (!Reflect.apply(test, regexp, [r14])) {
regexp = RegExp('\\bBB10\\b', '');
test = regexp.test;
if (!Reflect.apply(test, regexp, [r10])) {
value148 = this != forOwn_7372;
reducibleJoin292: while (true) {
if (value148) {
value149 = r14 != 'Wii';
r30 = value149;
break reducibleJoin292;
}
r30 = value148;
break reducibleJoin292;
}
reducibleJoin319: while (true) {
if (r30) {
r2 = value && r9;
reducibleJoin298: while (true) {
if (r2) {
break reducibleJoin298;
}
regexp = RegExp('Opera', '');
test = regexp.test;
value150 = Reflect.apply(test, regexp, [r6]);
reducibleJoin297: while (true) {
if (value150) {
regexp = RegExp('\\b(?:MSIE|Firefox)\\b', 'i');
test = regexp.test;
value151 = Reflect.apply(test, regexp, [r10]);
r9 = value151;
break reducibleJoin297;
}
r9 = value150;
break reducibleJoin297;
}
r2 = r9;
break reducibleJoin298;
}
reducibleJoin302: while (true) {
if (r2) {
break reducibleJoin302;
}
value152 = r6 == 'Firefox';
reducibleJoin301: while (true) {
if (value152) {
regexp = RegExp('\\bOS X (?:\\d+\\.){2,}', '');
test = regexp.test;
value153 = Reflect.apply(test, regexp, [r5]);
r9 = value153;
break reducibleJoin301;
}
r9 = value152;
break reducibleJoin301;
}
r2 = r9;
break reducibleJoin302;
}
reducibleJoin318: while (true) {
if (r2) {
break reducibleJoin318;
}
value154 = value20 == r6;
reducibleJoin317: while (true) {
if (value154) {
reducibleJoin306: while (true) {
if (r5) {
regexp = RegExp('^Win', '');
test = regexp.test;
value155 = !Reflect.apply(test, regexp, [r5]);
r13 = value155;
break reducibleJoin306;
}
r13 = r5;
break reducibleJoin306;
}
reducibleJoin308: while (true) {
if (r13) {
value156 = r3 > 5.5;
r13 = value156;
break reducibleJoin308;
}
break reducibleJoin308;
}
reducibleJoin312: while (true) {
if (r13) {
break reducibleJoin312;
}
regexp = RegExp('\\bWindows XP\\b', '');
test = regexp.test;
value157 = Reflect.apply(test, regexp, [r5]);
reducibleJoin311: while (true) {
if (value157) {
value158 = r3 > 8;
r31 = value158;
break reducibleJoin311;
}
r31 = value157;
break reducibleJoin311;
}
r13 = r31;
break reducibleJoin312;
}
reducibleJoin316: while (true) {
if (r13) {
break reducibleJoin316;
}
value159 = r3 == 8;
reducibleJoin315: while (true) {
if (value159) {
regexp = RegExp('\\bTrident\\b', '');
test = regexp.test;
value160 = !Reflect.apply(test, regexp, [r10]);
r31 = value160;
break reducibleJoin315;
}
r31 = value159;
break reducibleJoin315;
}
r13 = r31;
break reducibleJoin316;
}
r9 = r13;
break reducibleJoin317;
}
r9 = value154;
break reducibleJoin317;
}
r2 = r9;
break reducibleJoin318;
}
r30 = r2;
break reducibleJoin319;
}
break reducibleJoin319;
}
reducibleJoin321: while (true) {
if (r30) {
binding = env0_3;
test = binding.test;
parse_7378Binding = parse_7378;
call = parse_7378Binding.call;
forOwn_7372Binding = forOwn_7372;
replace = r10.replace;
value161 = Reflect.apply(replace, r10, [env0_3, '']);
value162 = Reflect.apply(call, parse_7378Binding, [forOwn_7372Binding,
value161 + ';']);
value163 = !Reflect.apply(test, binding, [value162]);
r12 = value162;
r30 = value163;
break reducibleJoin321;
}
break reducibleJoin321;
}
reducibleJoin323: while (true) {
if (r30) {
name = r12.name;
r30 = name;
break reducibleJoin323;
}
break reducibleJoin323;
}
if (r30) {
name = r12.name;
value164 = 'ing as ' + name;
version = r12.version;
value165 = '';
reducibleJoin326: while (true) {
if (version) {
value166 = ' ' + version;
r30 = value166;
break reducibleJoin326;
}
r30 = value165;
break reducibleJoin326;
}
value167 = value164 + r30;
binding = env0_3;
test = binding.test;
if (Reflect.apply(test, binding, [r6])) {
regexp = RegExp('\\bIE\\b', '');
test = regexp.test;
value170 = Reflect.apply(test, regexp, [value167]);
reducibleJoin333: while (true) {
if (value170) {
value171 = r5 == 'Mac OS';
r30 = value171;
break reducibleJoin333;
}
r30 = value170;
break reducibleJoin333;
}
if (r30) {
r5 = value8;
}
value172 = 'identify' + value167;
r12 = value172;
} else {
value168 = 'mask' + value167;
reducibleJoin329: while (true) {
if (r36) {
formatBinding = format;
replace = r36.replace;
value169 = formatBinding(Reflect.apply(replace, r36,
[RegExp('([a-z])([A-Z])',
'g'),
'$1 $2']));
r30 = value169;
break reducibleJoin329;
}
r30 = value18;
break reducibleJoin329;
}
regexp = RegExp('\\bIE\\b', '');
test = regexp.test;
if (Reflect.apply(test, regexp, [value168])) {
r5 = value8;
}
if (value) {
r6 = r30;
r12 = value168;
} else {
r3 = value8;
r6 = r30;
r12 = value168;
}
}
push = object.push;
Reflect.apply(push, object, [r12]);
r2 = r14;
r9 = ['Presto'];
r13 = r11;
break reduciblePort354;
}
r2 = r14;
r9 = r24;
r13 = r11;
break reduciblePort354;
}
}
RegExp = global.RegExp;
replace = r14.replace;
value144 = Reflect.apply(replace, r14, [RegExp(' +', 'g'), ' *']);
value145 = RegExp(value144 + '/([.\\d]+)', 'i');
exec = value145.exec;
value146 = Reflect.apply(exec, value145, [r10]);
reducibleJoin288: while (true) {
if (value146) {
r30 = value146;
break reducibleJoin288;
}
value147 = 0;
r30 = value147;
break reducibleJoin288;
}
property = r30[value25];
r30 = property || r3;
if (r30) {
items12 = [r30];
regexp = RegExp('BB10', '');
test = regexp.test;
items12[1] = Reflect.apply(test, regexp, [r10]);
value173 = 'Device Software';
reducibleJoin338: while (true) {
if (items12[value25]) {
env0_2 = value8;
r30 = value23;
r31 = value8;
r34 = value23;
break reducibleJoin338;
}
r30 = r11;
r31 = r14;
r34 = value173;
break reducibleJoin338;
}
property = items12[0];
value174 = r34 + ' ' + property;
r2 = r31;
r3 = value8;
r5 = value174;
r9 = r24;
r13 = r30;
break reduciblePort354;
}
r12 = r30;
value148 = this != forOwn_7372;
reducibleJoin292: while (true) {
if (value148) {
value149 = r14 != 'Wii';
r30 = value149;
break reducibleJoin292;
}
r30 = value148;
break reducibleJoin292;
}
reducibleJoin319: while (true) {
if (r30) {
r2 = value && r9;
reducibleJoin298: while (true) {
if (r2) {
break reducibleJoin298;
}
regexp = RegExp('Opera', '');
test = regexp.test;
value150 = Reflect.apply(test, regexp, [r6]);
reducibleJoin297: while (true) {
if (value150) {
regexp = RegExp('\\b(?:MSIE|Firefox)\\b', 'i');
test = regexp.test;
value151 = Reflect.apply(test, regexp, [r10]);
r9 = value151;
break reducibleJoin297;
}
r9 = value150;
break reducibleJoin297;
}
r2 = r9;
break reducibleJoin298;
}
reducibleJoin302: while (true) {
if (r2) {
break reducibleJoin302;
}
value152 = r6 == 'Firefox';
reducibleJoin301: while (true) {
if (value152) {
regexp = RegExp('\\bOS X (?:\\d+\\.){2,}', '');
test = regexp.test;
value153 = Reflect.apply(test, regexp, [r5]);
r9 = value153;
break reducibleJoin301;
}
r9 = value152;
break reducibleJoin301;
}
r2 = r9;
break reducibleJoin302;
}
reducibleJoin318: while (true) {
if (r2) {
break reducibleJoin318;
}
value154 = value20 == r6;
reducibleJoin317: while (true) {
if (value154) {
reducibleJoin306: while (true) {
if (r5) {
regexp = RegExp('^Win', '');
test = regexp.test;
value155 = !Reflect.apply(test, regexp, [r5]);
r13 = value155;
break reducibleJoin306;
}
r13 = r5;
break reducibleJoin306;
}
reducibleJoin308: while (true) {
if (r13) {
value156 = r3 > 5.5;
r13 = value156;
break reducibleJoin308;
}
break reducibleJoin308;
}
reducibleJoin312: while (true) {
if (r13) {
break reducibleJoin312;
}
regexp = RegExp('\\bWindows XP\\b', '');
test = regexp.test;
value157 = Reflect.apply(test, regexp, [r5]);
reducibleJoin311: while (true) {
if (value157) {
value158 = r3 > 8;
r31 = value158;
break reducibleJoin311;
}
r31 = value157;
break reducibleJoin311;
}
r13 = r31;
break reducibleJoin312;
}
reducibleJoin316: while (true) {
if (r13) {
break reducibleJoin316;
}
value159 = r3 == 8;
reducibleJoin315: while (true) {
if (value159) {
regexp = RegExp('\\bTrident\\b', '');
test = regexp.test;
value160 = !Reflect.apply(test, regexp, [r10]);
r31 = value160;
break reducibleJoin315;
}
r31 = value159;
break reducibleJoin315;
}
r13 = r31;
break reducibleJoin316;
}
r9 = r13;
break reducibleJoin317;
}
r9 = value154;
break reducibleJoin317;
}
r2 = r9;
break reducibleJoin318;
}
r30 = r2;
break reducibleJoin319;
}
break reducibleJoin319;
}
reducibleJoin321: while (true) {
if (r30) {
binding = env0_3;
test = binding.test;
parse_7378Binding = parse_7378;
call = parse_7378Binding.call;
forOwn_7372Binding = forOwn_7372;
replace = r10.replace;
value161 = Reflect.apply(replace, r10, [env0_3, '']);
value162 = Reflect.apply(call, parse_7378Binding, [forOwn_7372Binding, value161 + ';']);
value163 = !Reflect.apply(test, binding, [value162]);
r12 = value162;
r30 = value163;
break reducibleJoin321;
}
break reducibleJoin321;
}
reducibleJoin323: while (true) {
if (r30) {
name = r12.name;
r30 = name;
break reducibleJoin323;
}
break reducibleJoin323;
}
if (r30) {
name = r12.name;
value164 = 'ing as ' + name;
version = r12.version;
value165 = '';
reducibleJoin326: while (true) {
if (version) {
value166 = ' ' + version;
r30 = value166;
break reducibleJoin326;
}
r30 = value165;
break reducibleJoin326;
}
value167 = value164 + r30;
binding = env0_3;
test = binding.test;
if (Reflect.apply(test, binding, [r6])) {
regexp = RegExp('\\bIE\\b', '');
test = regexp.test;
value170 = Reflect.apply(test, regexp, [value167]);
reducibleJoin333: while (true) {
if (value170) {
value171 = r5 == 'Mac OS';
r30 = value171;
break reducibleJoin333;
}
r30 = value170;
break reducibleJoin333;
}
if (r30) {
r5 = value8;
}
value172 = 'identify' + value167;
r12 = value172;
} else {
value168 = 'mask' + value167;
reducibleJoin329: while (true) {
if (r36) {
formatBinding = format;
replace = r36.replace;
value169 = formatBinding(Reflect.apply(replace, r36, [RegExp('([a-z])([A-Z])',
'g'),
'$1 $2']));
r30 = value169;
break reducibleJoin329;
}
r30 = value18;
break reducibleJoin329;
}
regexp = RegExp('\\bIE\\b', '');
test = regexp.test;
if (Reflect.apply(test, regexp, [value168])) {
r5 = value8;
}
if (value) {
r6 = r30;
r12 = value168;
} else {
r3 = value8;
r6 = r30;
r12 = value168;
}
}
push = object.push;
Reflect.apply(push, object, [r12]);
r2 = r14;
r9 = ['Presto'];
r13 = r11;
break reduciblePort354;
}
r2 = r14;
r9 = r24;
r13 = r11;
break reduciblePort354;
}
}
value176 = r6 + ' Mobile';
r2 = r14;
r6 = value176;
r9 = r24;
r13 = r11;
break reduciblePort354;
}
unshift = object.unshift;
Reflect.apply(unshift, object, ['embedded']);
r2 = r14;
r9 = r24;
r13 = r11;
break reduciblePort354;
}
regexp = RegExp('\\bAppleWebKit\\/([\\d.]+\\+?)', 'i');
exec = regexp.exec;
value181 = Reflect.apply(exec, regexp, [r10]);
reducibleJoin356: while (true) {
if (value181) {
r11 = value181;
break reducibleJoin356;
}
value182 = 0;
r11 = value182;
break reducibleJoin356;
}
property = r11[value25];
reducibleJoin475: while (true) {
if (property) {
parseFloat = global.parseFloat;
replace = property.replace;
float2 = parseFloat(Reflect.apply(replace, property, [RegExp('\\.(\\d)$', ''), '.0$1']));
items13 = [float2, property];
reducibleJoin365: while (true) {
reducibleJoin363: while (true) {
if (value21 != r6) {
value184 = r3 != items13[value25];
if (value184) {
regexp = RegExp('\\bSafari\\/([\\d.]+\\+?)', 'i');
exec = regexp.exec;
value185 = Reflect.apply(exec, regexp, [r10]);
reducibleJoin362: while (true) {
if (value185) {
r24 = value185;
break reducibleJoin362;
}
value186 = 0;
r24 = value186;
break reducibleJoin362;
}
property = r24[value25];
items13[2] = property;
value187 = r3 != property;
r28 = value187;
break reducibleJoin363;
}
r28 = value184;
break reducibleJoin363;
}
property = items13[value25];
slice = property.slice;
value183 = Reflect.apply(slice, property, [-1]);
if (value183 == '+') {
value188 = 'WebKit Nightly';
property = items13[value25];
slice = property.slice;
value189 = Reflect.apply(slice, property, [0, -1]);
value190 = 'alpha';
r3 = value189;
r6 = value188;
r24 = value190;
break reducibleJoin365;
}
value184 = r3 != items13[value25];
if (value184) {
regexp = RegExp('\\bSafari\\/([\\d.]+\\+?)', 'i');
exec = regexp.exec;
value185 = Reflect.apply(exec, regexp, [r10]);
reducibleJoin362: while (true) {
if (value185) {
r24 = value185;
break reducibleJoin362;
}
value186 = 0;
r24 = value186;
break reducibleJoin362;
}
property = r24[value25];
items13[2] = property;
value187 = r3 != property;
r28 = value187;
break reducibleJoin363;
}
r28 = value184;
break reducibleJoin363;
}
if (r28) {
r24 = r27;
break reducibleJoin365;
}
r3 = value8;
r24 = r27;
break reducibleJoin365;
}
regexp = RegExp('\\b(?:Headless)?Chrome\\/([\\d.]+)', 'i');
exec = regexp.exec;
value191 = Reflect.apply(exec, regexp, [r10]);
reducibleJoin367: while (true) {
if (value191) {
r27 = value191;
break reducibleJoin367;
}
value192 = 0;
r27 = value192;
break reducibleJoin367;
}
items13[value25] = r27[value25];
value193 = items13[0] == 537.36;
reducibleJoin369: while (true) {
if (value193) {
value194 = items13[2] == 537.36;
r27 = value194;
break reducibleJoin369;
}
r27 = value193;
break reducibleJoin369;
}
reducibleJoin371: while (true) {
if (r27) {
parseFloat = global.parseFloat;
float3 = parseFloat(items13[value25]);
value195 = float3 >= 28;
r27 = value195;
break reducibleJoin371;
}
break reducibleJoin371;
}
reducibleJoin373: while (true) {
if (r27) {
value196 = value12 == r9;
r27 = value196;
break reducibleJoin373;
}
break reducibleJoin373;
}
reducibleJoin375: while (true) {
if (r27) {
r9 = ['Blink'];
break reducibleJoin375;
}
break reducibleJoin375;
}
reducibleJoin462: while (true) {
reducibleJoin406: while (true) {
if (value) {
if (!r26) {
if (!items13[value25]) {
reducibleJoin380: while (true) {
if (r9) {
r9[value25] = 'like Safari';
break reducibleJoin380;
}
break reducibleJoin380;
}
property = items13[0];
if (property < 400) {
r26 = value25;
break reducibleJoin406;
}
reducibleJoin405: while (true) {
if (property < 500) {
r27 = 2;
break reducibleJoin405;
}
value198 = 3;
reducibleJoin404: while (true) {
if (property < 526) {
r29 = value198;
break reducibleJoin404;
}
value199 = 4;
reducibleJoin403: while (true) {
if (property < 533) {
r30 = value199;
break reducibleJoin403;
}
value200 = '4+';
reducibleJoin402: while (true) {
if (property < 534) {
r31 = value200;
break reducibleJoin402;
}
value201 = 5;
reducibleJoin401: while (true) {
if (property < 535) {
r32 = value201;
break reducibleJoin401;
}
value202 = 6;
reducibleJoin400: while (true) {
if (property < 537) {
r33 = value202;
break reducibleJoin400;
}
value203 = 7;
reducibleJoin399: while (true) {
if (property < 538) {
r34 = value203;
break reducibleJoin399;
}
value204 = 8;
reducibleJoin398: while (true) {
if (property < 601) {
r35 = value204;
break reducibleJoin398;
}
value205 = 9;
reducibleJoin397: while (true) {
if (property < 602) {
r36 = value205;
break reducibleJoin397;
}
value206 = 10;
reducibleJoin396: while (true) {
if (property < 604) {
r37 = value206;
break reducibleJoin396;
}
value207 = 11;
reducibleJoin395: while (true) {
if (property < 606) {
r38 = value207;
break reducibleJoin395;
}
value208 = '12';
reducibleJoin394: while (true) {
if (property < 608) {
value209 = 12;
r39 = value209;
break reducibleJoin394;
}
r39 = value208;
break reducibleJoin394;
}
r38 = r39;
break reducibleJoin395;
}
r37 = r38;
break reducibleJoin396;
}
r36 = r37;
break reducibleJoin397;
}
r35 = r36;
break reducibleJoin398;
}
r34 = r35;
break reducibleJoin399;
}
r33 = r34;
break reducibleJoin400;
}
r32 = r33;
break reducibleJoin401;
}
r31 = r32;
break reducibleJoin402;
}
r30 = r31;
break reducibleJoin403;
}
r29 = r30;
break reducibleJoin404;
}
r27 = r29;
break reducibleJoin405;
}
r26 = r27;
break reducibleJoin406;
}
}
reducibleJoin409: while (true) {
if (r9) {
r9[value25] = 'like Chrome';
break reducibleJoin409;
}
break reducibleJoin409;
}
property = items13[value25];
reducibleJoin461: while (true) {
if (property) {
r26 = property;
break reducibleJoin461;
}
property = items13[0];
reducibleJoin460: while (true) {
if (property < 530) {
r27 = value25;
break reducibleJoin460;
}
value210 = 2;
reducibleJoin459: while (true) {
if (property < 532) {
r28 = value210;
break reducibleJoin459;
}
value211 = 3;
reducibleJoin458: while (true) {
if (property < 532.05) {
r29 = value211;
break reducibleJoin458;
}
value212 = 4;
reducibleJoin457: while (true) {
if (property < 533) {
r30 = value212;
break reducibleJoin457;
}
value213 = 5;
reducibleJoin456: while (true) {
if (property < 534.03) {
r31 = value213;
break reducibleJoin456;
}
value214 = 6;
reducibleJoin455: while (true) {
if (property < 534.07) {
r32 = value214;
break reducibleJoin455;
}
value215 = 7;
reducibleJoin454: while (true) {
if (property < 534.1) {
r33 = value215;
break reducibleJoin454;
}
value216 = 8;
reducibleJoin453: while (true) {
if (property < 534.13) {
r34 = value216;
break reducibleJoin453;
}
value217 = 9;
reducibleJoin452: while (true) {
if (property < 534.16) {
r35 = value217;
break reducibleJoin452;
}
value218 = 10;
reducibleJoin451: while (true) {
if (property < 534.24) {
r36 = value218;
break reducibleJoin451;
}
value219 = 11;
reducibleJoin450: while (true) {
if (property < 534.3) {
r37 = value219;
break reducibleJoin450;
}
value220 = 12;
reducibleJoin449: while (true) {
if (property < 535.01) {
r38 = value220;
break reducibleJoin449;
}
value221 = '13+';
reducibleJoin448: while (true) {
if (property < 535.02) {
r39 = value221;
break reducibleJoin448;
}
value222 = 15;
reducibleJoin447: while (true) {
if (property < 535.07) {
r40 = value222;
break reducibleJoin447;
}
value223 = 16;
reducibleJoin446: while (true) {
if (property < 535.11) {
r41 = value223;
break reducibleJoin446;
}
value224 = 17;
reducibleJoin445: while (true) {
if (property < 535.19) {
r42 = value224;
break reducibleJoin445;
}
value225 = 18;
reducibleJoin444: while (true) {
if (property < 536.05) {
r43 = value225;
break reducibleJoin444;
}
value226 = 19;
reducibleJoin443: while (true) {
if (property < 536.1) {
r44 = value226;
break reducibleJoin443;
}
value227 = 20;
reducibleJoin442: while (true) {
if (property < 537.01) {
r45 = value227;
break reducibleJoin442;
}
value228 = '21+';
reducibleJoin441: while (true) {
if (property < 537.11) {
r46 = value228;
break reducibleJoin441;
}
value229 = 23;
reducibleJoin440: while (true) {
if (property < 537.13) {
r47 = value229;
break reducibleJoin440;
}
value230 = 24;
reducibleJoin439: while (true) {
if (property < 537.18) {
r48 = value230;
break reducibleJoin439;
}
value231 = 25;
reducibleJoin438: while (true) {
if (property < 537.24) {
r49 = value231;
break reducibleJoin438;
}
value232 = 26;
reducibleJoin437: while (true) {
if (property < 537.36) {
r50 = value232;
break reducibleJoin437;
}
value233 = '28';
reducibleJoin436: while (true) {
if (r9 != 'Blink') {
value234 = '27';
r51 = value234;
break reducibleJoin436;
}
r51 = value233;
break reducibleJoin436;
}
r50 = r51;
break reducibleJoin437;
}
r49 = r50;
break reducibleJoin438;
}
r48 = r49;
break reducibleJoin439;
}
r47 = r48;
break reducibleJoin440;
}
r46 = r47;
break reducibleJoin441;
}
r45 = r46;
break reducibleJoin442;
}
r44 = r45;
break reducibleJoin443;
}
r43 = r44;
break reducibleJoin444;
}
r42 = r43;
break reducibleJoin445;
}
r41 = r42;
break reducibleJoin446;
}
r40 = r41;
break reducibleJoin447;
}
r39 = r40;
break reducibleJoin448;
}
r38 = r39;
break reducibleJoin449;
}
r37 = r38;
break reducibleJoin450;
}
r36 = r37;
break reducibleJoin451;
}
r35 = r36;
break reducibleJoin452;
}
r34 = r35;
break reducibleJoin453;
}
r33 = r34;
break reducibleJoin454;
}
r32 = r33;
break reducibleJoin455;
}
r31 = r32;
break reducibleJoin456;
}
r30 = r31;
break reducibleJoin457;
}
r29 = r30;
break reducibleJoin458;
}
r28 = r29;
break reducibleJoin459;
}
r27 = r28;
break reducibleJoin460;
}
r26 = r27;
break reducibleJoin461;
}
r12 = r26;
break reducibleJoin462;
}
reducibleJoin380: while (true) {
if (r9) {
r9[value25] = 'like Safari';
break reducibleJoin380;
}
break reducibleJoin380;
}
property = items13[0];
if (property < 400) {
r26 = value25;
break reducibleJoin406;
}
value197 = 2;
reducibleJoin405: while (true) {
if (property < 500) {
r27 = value197;
break reducibleJoin405;
}
value198 = 3;
reducibleJoin404: while (true) {
if (property < 526) {
r29 = value198;
break reducibleJoin404;
}
value199 = 4;
reducibleJoin403: while (true) {
if (property < 533) {
r30 = value199;
break reducibleJoin403;
}
value200 = '4+';
reducibleJoin402: while (true) {
if (property < 534) {
r31 = value200;
break reducibleJoin402;
}
value201 = 5;
reducibleJoin401: while (true) {
if (property < 535) {
r32 = value201;
break reducibleJoin401;
}
value202 = 6;
reducibleJoin400: while (true) {
if (property < 537) {
r33 = value202;
break reducibleJoin400;
}
value203 = 7;
reducibleJoin399: while (true) {
if (property < 538) {
r34 = value203;
break reducibleJoin399;
}
value204 = 8;
reducibleJoin398: while (true) {
if (property < 601) {
r35 = value204;
break reducibleJoin398;
}
value205 = 9;
reducibleJoin397: while (true) {
if (property < 602) {
r36 = value205;
break reducibleJoin397;
}
value206 = 10;
reducibleJoin396: while (true) {
if (property < 604) {
r37 = value206;
break reducibleJoin396;
}
value207 = 11;
reducibleJoin395: while (true) {
if (property < 606) {
r38 = value207;
break reducibleJoin395;
}
value208 = '12';
reducibleJoin394: while (true) {
if (property < 608) {
value209 = 12;
r39 = value209;
break reducibleJoin394;
}
r39 = value208;
break reducibleJoin394;
}
r38 = r39;
break reducibleJoin395;
}
r37 = r38;
break reducibleJoin396;
}
r36 = r37;
break reducibleJoin397;
}
r35 = r36;
break reducibleJoin398;
}
r34 = r35;
break reducibleJoin399;
}
r33 = r34;
break reducibleJoin400;
}
r32 = r33;
break reducibleJoin401;
}
r31 = r32;
break reducibleJoin402;
}
r30 = r31;
break reducibleJoin403;
}
r29 = r30;
break reducibleJoin404;
}
r27 = r29;
break reducibleJoin405;
}
r26 = r27;
break reducibleJoin406;
}
r12 = r26;
break reducibleJoin462;
}
reducibleJoin468: while (true) {
if (r9) {
property = r9[value25];
value235 = '.x';
reducibleJoin467: while (true) {
if (typeof r12 === 'number') {
r26 = value235;
break reducibleJoin467;
}
regexp = RegExp('[.+]', '');
test = regexp.test;
value236 = Reflect.apply(test, regexp, [r12]);
value237 = '+';
reducibleJoin466: while (true) {
if (value236) {
value238 = '';
r29 = value238;
break reducibleJoin466;
}
r29 = value237;
break reducibleJoin466;
}
r26 = r29;
break reducibleJoin467;
}
value239 = r12 + r26;
r9[value25] = property + (' ' + value239);
r12 = value239;
break reducibleJoin468;
}
break reducibleJoin468;
}
if (value21 == r6) {
if (!r3) {
r3 = r12;
r11 = r24;
r14 = r9;
break reducibleJoin475;
}
parseInt = global.parseInt;
int = parseInt(r3);
if (int > 45) {
r3 = r12;
r11 = r24;
r14 = r9;
break reducibleJoin475;
}
}
value240 = r6 == 'Chrome';
reducibleJoin473: while (true) {
if (value240) {
regexp = RegExp('\\bHeadlessChrome', 'i');
test = regexp.test;
value241 = Reflect.apply(test, regexp, [r10]);
r25 = value241;
break reducibleJoin473;
}
r25 = value240;
break reducibleJoin473;
}
if (r25) {
unshift = object.unshift;
Reflect.apply(unshift, object, ['headless']);
r11 = r24;
r14 = r9;
break reducibleJoin475;
}
r11 = r24;
r14 = r9;
break reducibleJoin475;
}
r11 = r27;
r12 = property;
r14 = r9;
break reducibleJoin475;
}
reducibleJoin491: while (true) {
reducibleJoin483: while (true) {
if (value18 != r6) {
if (value21 == r6) {
regexp = RegExp('\\bChrome\\b', '');
exec = regexp.exec;
reducibleJoin480: while (true) {
if (r14) {
property = r14[value25];
r9 = property;
break reducibleJoin480;
}
r9 = r14;
break reducibleJoin480;
}
if (Reflect.apply(exec, regexp, [r9])) {
unshift = object.unshift;
Reflect.apply(unshift, object, ['desktop mode']);
regexp = RegExp('\\bOS X\\b', '');
if (regexp.test(r5)) {
value246 = 'iOS 4.3+';
value247 = 'Apple';
r3 = value8;
r5 = value246;
r6 = value19;
r9 = value247;
break reducibleJoin491;
}
r3 = value8;
r5 = value8;
r6 = value19;
r9 = r13;
break reducibleJoin491;
}
}
regexp = RegExp('\\bSRWare Iron\\b', '');
value243 = regexp.test(r6);
if (value243) {
value244 = !r3;
r23 = value244;
break reducibleJoin483;
}
r23 = value243;
break reducibleJoin483;
}
regexp = RegExp('\\bzbov|zvav$', '');
exec = regexp.exec;
value242 = Reflect.apply(exec, regexp, [r5]);
if (value242) {
value248 = r6 + ' ';
unshift = object.unshift;
Reflect.apply(unshift, object, ['desktop mode']);
if (value242 == 'zvav') {
value250 = value248 + 'Mini';
r3 = value8;
r6 = value250;
} else {
value249 = value248 + 'Mobile';
r6 = value249;
}
replace = r5.replace;
RegExp = global.RegExp;
value251 = RegExp(' *' + value242 + '$');
value252 = Reflect.apply(replace, r5, [value251, '']);
r5 = value252;
r9 = r13;
r12 = value242;
break reducibleJoin491;
}
r12 = value242;
if (value21 == r6) {
regexp = RegExp('\\bChrome\\b', '');
exec = regexp.exec;
reducibleJoin480: while (true) {
if (r14) {
property = r14[value25];
r9 = property;
break reducibleJoin480;
}
r9 = r14;
break reducibleJoin480;
}
if (Reflect.apply(exec, regexp, [r9])) {
unshift = object.unshift;
Reflect.apply(unshift, object, ['desktop mode']);
regexp = RegExp('\\bOS X\\b', '');
if (regexp.test(r5)) {
value246 = 'iOS 4.3+';
value247 = 'Apple';
r3 = value8;
r5 = value246;
r6 = value19;
r9 = value247;
break reducibleJoin491;
}
r3 = value8;
r5 = value8;
r6 = value19;
r9 = r13;
break reducibleJoin491;
}
}
regexp = RegExp('\\bSRWare Iron\\b', '');
test = regexp.test;
value243 = Reflect.apply(test, regexp, [r6]);
if (value243) {
value244 = !r3;
r23 = value244;
break reducibleJoin483;
}
r23 = value243;
break reducibleJoin483;
}
if (r23) {
value245 = closure2('Chrome');
r3 = value245;
r9 = r13;
break reducibleJoin491;
}
r9 = r13;
break reducibleJoin491;
}
reducibleJoin493: while (true) {
if (r3) {
indexOf = r3.indexOf;
regexp = RegExp('[\\d.]+$', '');
exec = regexp.exec;
value253 = Reflect.apply(exec, regexp, [r5]);
value254 = Reflect.apply(indexOf, r3, [value253]);
value255 = value254 == 0;
r12 = value253;
r13 = value255;
break reducibleJoin493;
}
r13 = r3;
break reducibleJoin493;
}
reducibleJoin495: while (true) {
if (r13) {
indexOf = r10.indexOf;
value256 = Reflect.apply(indexOf, r10, ['/' + r12 + '-']);
value257 = value256 > -1;
r13 = value257;
break reducibleJoin495;
}
break reducibleJoin495;
}
reducibleJoin497: while (true) {
if (r13) {
trim_7377Binding = trim_7377;
replace = r5.replace;
value258 = trim_7377Binding(Reflect.apply(replace, r5, [r12, '']));
r5 = value258;
break reducibleJoin497;
}
break reducibleJoin497;
}
reducibleJoin499: while (true) {
if (r5) {
indexOf = r5.indexOf;
value259 = Reflect.apply(indexOf, r5, [r6]);
value260 = value259 != -1;
r13 = value260;
break reducibleJoin499;
}
r13 = r5;
break reducibleJoin499;
}
reducibleJoin501: while (true) {
if (r13) {
RegExp = global.RegExp;
value261 = RegExp(r6 + ' OS');
test = value261.test;
value262 = !Reflect.apply(test, value261, [r5]);
r13 = value262;
break reducibleJoin501;
}
break reducibleJoin501;
}
reducibleJoin503: while (true) {
if (r13) {
replace = r5.replace;
RegExp = global.RegExp;
value263 = qualify(r6);
value264 = RegExp(' *' + value263 + ' *');
value265 = Reflect.apply(replace, r5, [value264, '']);
r5 = value265;
break reducibleJoin503;
}
break reducibleJoin503;
}
reducibleJoin505: while (true) {
if (r14) {
regexp = RegExp('\\b(?:Avant|Nook)\\b', '');
test = regexp.test;
value266 = !Reflect.apply(test, regexp, [r6]);
r13 = value266;
break reducibleJoin505;
}
r13 = r14;
break reducibleJoin505;
}
reducibleJoin517: while (true) {
if (r13) {
regexp = RegExp('Browser|Lunascape|Maxthon', '');
test = regexp.test;
value267 = Reflect.apply(test, regexp, [r6]);
reducibleJoin512: while (true) {
if (value267) {
r17 = value267;
break reducibleJoin512;
}
value268 = value21 != r6;
reducibleJoin509: while (true) {
if (value268) {
regexp = RegExp('^iOS', '');
test = regexp.test;
value269 = Reflect.apply(test, regexp, [r5]);
r19 = value269;
break reducibleJoin509;
}
r19 = value268;
break reducibleJoin509;
}
reducibleJoin511: while (true) {
if (r19) {
regexp = RegExp('\\bSafari\\b', '');
test = regexp.test;
value270 = Reflect.apply(test, regexp, [r14[value25]]);
r19 = value270;
break reducibleJoin511;
}
break reducibleJoin511;
}
r17 = r19;
break reducibleJoin512;
}
reducibleJoin516: while (true) {
if (r17) {
break reducibleJoin516;
}
regexp = RegExp('^(?:Adobe|Arora|Breach|Midori|Opera|Phantom|Rekonq|Rock|Samsung Internet|Sleipnir|SRWare Iron|Vivaldi|Web)',
'');
test = regexp.test;
value271 = Reflect.apply(test, regexp, [r6]);
reducibleJoin515: while (true) {
if (value271) {
property = r14[value25];
r19 = property;
break reducibleJoin515;
}
r19 = value271;
break reducibleJoin515;
}
r17 = r19;
break reducibleJoin516;
}
r13 = r17;
break reducibleJoin517;
}
break reducibleJoin517;
}
reducibleJoin519: while (true) {
if (r13) {
length = r14.length;
property = r14[length - value25];
r12 = property;
r13 = property;
break reducibleJoin519;
}
break reducibleJoin519;
}
reducibleJoin521: while (true) {
if (r13) {
push = object.push;
Reflect.apply(push, object, [r12]);
break reducibleJoin521;
}
break reducibleJoin521;
}
length = object.length;
reducibleJoin523: while (true) {
if (length) {
join = object.join;
value272 = Reflect.apply(join, object, ['; ']);
value273 = '(' + value272;
r1 = [value273 + ')'];
break reducibleJoin523;
}
r1 = object;
break reducibleJoin523;
}
r13 = r9 && r2;
reducibleJoin526: while (true) {
if (r13) {
indexOf = r2.indexOf;
value274 = Reflect.apply(indexOf, r2, [r9]);
value275 = value274 < 0;
r13 = value275;
break reducibleJoin526;
}
break reducibleJoin526;
}
reducibleJoin528: while (true) {
if (r13) {
push = r1.push;
Reflect.apply(push, r1, ['on ' + r9]);
break reducibleJoin528;
}
break reducibleJoin528;
}
reducibleJoin532: while (true) {
if (r2) {
push = r1.push;
regexp = RegExp('^on ', '');
test = regexp.test;
length = r1.length;
value276 = Reflect.apply(test, regexp, [r1[length - value25]]);
value277 = 'on ';
reducibleJoin531: while (true) {
if (value276) {
value278 = '';
r13 = value278;
break reducibleJoin531;
}
r13 = value277;
break reducibleJoin531;
}
Reflect.apply(push, r1, [r13 + r2]);
break reducibleJoin532;
}
break reducibleJoin532;
}
reducibleJoin541: while (true) {
if (r5) {
regexp = RegExp(' ([\\d.+]+)$', '');
exec = regexp.exec;
value279 = Reflect.apply(exec, regexp, [r5]);
reducibleJoin535: while (true) {
if (value279) {
charAt = r5.charAt;
length = r5.length;
length2 = value279[0].length;
value280 = Reflect.apply(charAt, r5, [length - length2 - value25]);
value281 = value280 == '/';
r17 = value281;
break reducibleJoin535;
}
r17 = value279;
break reducibleJoin535;
}
var env0_1 = r17;
object = {architecture: 32};
reducibleJoin538: while (true) {
if (value279) {
if (r17) {
r17 = r5;
break reducibleJoin538;
}
replace = r5.replace;
value282 = Reflect.apply(replace, r5, [value279[0], '']);
r17 = value282;
break reducibleJoin538;
}
r17 = r5;
break reducibleJoin538;
}
object.family = r17;
reducibleJoin540: while (true) {
if (value279) {
property = value279[value25];
r17 = property;
break reducibleJoin540;
}
r17 = value8;
break reducibleJoin540;
}
object.version = r17;
object.toString = toString_7391;
r5 = object;
break reducibleJoin541;
}
break reducibleJoin541;
}
regexp = RegExp('\\b(?:AMD|IA|Win|WOW|x86_|x)64\\b', 'i');
exec = regexp.exec;
value283 = Reflect.apply(exec, regexp, [r18]);
reducibleJoin565: while (true) {
reducibleJoin563: while (true) {
if (value283) {
regexp = RegExp('\\bi686\\b', 'i');
test = regexp.test;
if (Reflect.apply(test, regexp, [r18])) {
reducibleJoin559: while (true) {
if (r5) {
regexp = RegExp('^OS X', '');
test = regexp.test;
family = r5.family;
value = Reflect.apply(test, regexp, [family]);
r12 = value;
break reducibleJoin559;
}
r12 = r5;
break reducibleJoin559;
}
reducibleJoin561: while (true) {
if (r12) {
value = r6 == 'Chrome';
r12 = value;
break reducibleJoin561;
}
break reducibleJoin561;
}
if (r12) {
parseFloat = global.parseFloat;
value = parseFloat(r3);
value = value >= 39;
r12 = value;
break reducibleJoin563;
}
break reducibleJoin563;
}
reducibleJoin545: while (true) {
if (r5) {
r5.architecture = 64;
family = r5.family;
replace = family.replace;
RegExp = global.RegExp;
value284 = RegExp(' *' + value283);
r5.family = Reflect.apply(replace, family, [value284, '']);
break reducibleJoin545;
}
break reducibleJoin545;
}
reducibleJoin555: while (true) {
if (r6) {
regexp = RegExp('\\bWOW64\\b', 'i');
test = regexp.test;
value285 = Reflect.apply(test, regexp, [r10]);
reducibleJoin554: while (true) {
if (value285) {
r13 = value285;
break reducibleJoin554;
}
reducibleJoin551: while (true) {
if (value) {
regexp = RegExp('\\w(?:86|32)$', '');
test = regexp.test;
cpuClass = r20.cpuClass;
reducibleJoin550: while (true) {
if (cpuClass) {
r17 = cpuClass;
break reducibleJoin550;
}
platform = r20.platform;
r17 = platform;
break reducibleJoin550;
}
value = Reflect.apply(test, regexp, [r17]);
r16 = value;
break reducibleJoin551;
}
r16 = value;
break reducibleJoin551;
}
reducibleJoin553: while (true) {
if (r16) {
regexp = RegExp('\\bWin64; x64\\b', 'i');
test = regexp.test;
value = !Reflect.apply(test, regexp, [r10]);
r16 = value;
break reducibleJoin553;
}
break reducibleJoin553;
}
r13 = r16;
break reducibleJoin554;
}
r12 = r13;
break reducibleJoin555;
}
r12 = r6;
break reducibleJoin555;
}
if (r12) {
unshift = r1.unshift;
Reflect.apply(unshift, r1, ['32-bit']);
break reducibleJoin565;
}
break reducibleJoin565;
}
reducibleJoin559: while (true) {
if (r5) {
regexp = RegExp('^OS X', '');
test = regexp.test;
family = r5.family;
value = Reflect.apply(test, regexp, [family]);
r12 = value;
break reducibleJoin559;
}
r12 = r5;
break reducibleJoin559;
}
reducibleJoin561: while (true) {
if (r12) {
value = r6 == 'Chrome';
r12 = value;
break reducibleJoin561;
}
break reducibleJoin561;
}
if (r12) {
parseFloat = global.parseFloat;
value = parseFloat(r3);
value = value >= 39;
r12 = value;
break reducibleJoin563;
}
break reducibleJoin563;
}
if (r12) {
r5.architecture = 64;
break reducibleJoin565;
}
break reducibleJoin565;
}
reducibleJoin567: while (true) {
if (r10) {
break reducibleJoin567;
}
env0_0 = value8;
r10 = value8;
break reducibleJoin567;
}
object = {description: r10};
reducibleJoin569: while (true) {
if (r14) {
property = r14[0];
r12 = property;
break reducibleJoin569;
}
r12 = r14;
break reducibleJoin569;
}
object.layout = r12;
object.manufacturer = r9;
object.name = r6;
object.prerelease = r11;
object.product = r2;
object.ua = r10;
r9 = r6 && r3;
object.version = r9;
reducibleJoin572: while (true) {
if (r5) {
r9 = r5;
break reducibleJoin572;
}
r9 = {'architecture': null, 'family': null, 'version': null, toString: function() {
return 'null';
}};
break reducibleJoin572;
}
object.os = r9;
object.parse = parse_7378;
object.toString = toString_7393;
version = object.version;
reducibleJoin574: while (true) {
if (version) {
unshift = r1.unshift;
Reflect.apply(unshift, r1, [r3]);
break reducibleJoin574;
}
break reducibleJoin574;
}
name = object.name;
reducibleJoin576: while (true) {
if (name) {
unshift = r1.unshift;
Reflect.apply(unshift, r1, [r6]);
break reducibleJoin576;
}
break reducibleJoin576;
}
r3 = r5 && r6;
reducibleJoin583: while (true) {
if (r3) {
String = global.String;
value = String(r5);
split = value.split;
value = Reflect.apply(split, value, [' ']);
value = r5 != value[0];
reducibleJoin582: while (true) {
if (value) {
r4 = value;
break reducibleJoin582;
}
split = r6.split;
value = r5 != Reflect.apply(split, r6, [' '])[0];
reducibleJoin581: while (true) {
if (value) {
value = !r2;
r6 = value;
break reducibleJoin581;
}
r6 = value;
break reducibleJoin581;
}
r4 = r6;
break reducibleJoin582;
}
r3 = r4;
break reducibleJoin583;
}
break reducibleJoin583;
}
reducibleJoin588: while (true) {
if (r3) {
push = r1.push;
if (r2) {
value = '(' + r5 + ')';
r2 = value;
} else {
value = 'on ' + r5;
r2 = value;
}
Reflect.apply(push, r1, [r2]);
break reducibleJoin588;
}
break reducibleJoin588;
}
length = r1.length;
reducibleJoin590: while (true) {
if (length) {
join = r1.join;
object.description = Reflect.apply(join, r1, [' ']);
break reducibleJoin590;
}
break reducibleJoin590;
}
return object;
}
const value180 = 'Firefox Mobile';
r2 = r14;
r6 = value180;
r9 = r24;
r13 = r11;
value181 = RegExp('\\bAppleWebKit\\/([\\d.]+\\+?)', 'i').exec(r10);
reducibleJoin356: while (true) {
if (value181) {
r11 = value181;
break reducibleJoin356;
}
value182 = 0;
r11 = value182;
break reducibleJoin356;
}
property = r11[value25];
reducibleJoin475: while (true) {
if (property) {
parseFloat = global.parseFloat;
replace = property.replace;
float2 = parseFloat(Reflect.apply(replace, property, [RegExp('\\.(\\d)$', ''), '.0$1']));
items13 = [float2, property];
reducibleJoin365: while (true) {
reducibleJoin363: while (true) {
if (value21 != r6) {
value184 = r3 != items13[value25];
if (value184) {
regexp = RegExp('\\bSafari\\/([\\d.]+\\+?)', 'i');
exec = regexp.exec;
value185 = Reflect.apply(exec, regexp, [r10]);
reducibleJoin362: while (true) {
if (value185) {
r24 = value185;
break reducibleJoin362;
}
value186 = 0;
r24 = value186;
break reducibleJoin362;
}
property = r24[value25];
items13[2] = property;
value187 = r3 != property;
r28 = value187;
break reducibleJoin363;
}
r28 = value184;
break reducibleJoin363;
}
property = items13[value25];
slice = property.slice;
value183 = Reflect.apply(slice, property, [-1]);
if (value183 == '+') {
value188 = 'WebKit Nightly';
property = items13[value25];
slice = property.slice;
value189 = Reflect.apply(slice, property, [0, -1]);
value190 = 'alpha';
r3 = value189;
r6 = value188;
r24 = value190;
break reducibleJoin365;
}
value184 = r3 != items13[value25];
if (value184) {
regexp = RegExp('\\bSafari\\/([\\d.]+\\+?)', 'i');
exec = regexp.exec;
value185 = Reflect.apply(exec, regexp, [r10]);
reducibleJoin362: while (true) {
if (value185) {
r24 = value185;
break reducibleJoin362;
}
value186 = 0;
r24 = value186;
break reducibleJoin362;
}
property = r24[value25];
items13[2] = property;
value187 = r3 != property;
r28 = value187;
break reducibleJoin363;
}
r28 = value184;
break reducibleJoin363;
}
if (r28) {
r24 = r27;
break reducibleJoin365;
}
r3 = value8;
r24 = r27;
break reducibleJoin365;
}
regexp = RegExp('\\b(?:Headless)?Chrome\\/([\\d.]+)', 'i');
exec = regexp.exec;
value191 = Reflect.apply(exec, regexp, [r10]);
reducibleJoin367: while (true) {
if (value191) {
r27 = value191;
break reducibleJoin367;
}
value192 = 0;
r27 = value192;
break reducibleJoin367;
}
items13[value25] = r27[value25];
value193 = items13[0] == 537.36;
reducibleJoin369: while (true) {
if (value193) {
value194 = items13[2] == 537.36;
r27 = value194;
break reducibleJoin369;
}
r27 = value193;
break reducibleJoin369;
}
reducibleJoin371: while (true) {
if (r27) {
parseFloat = global.parseFloat;
float3 = parseFloat(items13[value25]);
value195 = float3 >= 28;
r27 = value195;
break reducibleJoin371;
}
break reducibleJoin371;
}
reducibleJoin373: while (true) {
if (r27) {
value196 = value12 == r9;
r27 = value196;
break reducibleJoin373;
}
break reducibleJoin373;
}
reducibleJoin375: while (true) {
if (r27) {
r9 = ['Blink'];
break reducibleJoin375;
}
break reducibleJoin375;
}
reducibleJoin462: while (true) {
reducibleJoin406: while (true) {
if (value) {
if (!r26) {
if (!items13[value25]) {
reducibleJoin380: while (true) {
if (r9) {
r9[value25] = 'like Safari';
break reducibleJoin380;
}
break reducibleJoin380;
}
property = items13[0];
if (property < 400) {
r26 = value25;
break reducibleJoin406;
}
reducibleJoin405: while (true) {
if (property < 500) {
r27 = 2;
break reducibleJoin405;
}
value198 = 3;
reducibleJoin404: while (true) {
if (property < 526) {
r29 = value198;
break reducibleJoin404;
}
value199 = 4;
reducibleJoin403: while (true) {
if (property < 533) {
r30 = value199;
break reducibleJoin403;
}
value200 = '4+';
reducibleJoin402: while (true) {
if (property < 534) {
r31 = value200;
break reducibleJoin402;
}
value201 = 5;
reducibleJoin401: while (true) {
if (property < 535) {
r32 = value201;
break reducibleJoin401;
}
value202 = 6;
reducibleJoin400: while (true) {
if (property < 537) {
r33 = value202;
break reducibleJoin400;
}
value203 = 7;
reducibleJoin399: while (true) {
if (property < 538) {
r34 = value203;
break reducibleJoin399;
}
value204 = 8;
reducibleJoin398: while (true) {
if (property < 601) {
r35 = value204;
break reducibleJoin398;
}
value205 = 9;
reducibleJoin397: while (true) {
if (property < 602) {
r36 = value205;
break reducibleJoin397;
}
value206 = 10;
reducibleJoin396: while (true) {
if (property < 604) {
r37 = value206;
break reducibleJoin396;
}
value207 = 11;
reducibleJoin395: while (true) {
if (property < 606) {
r38 = value207;
break reducibleJoin395;
}
value208 = '12';
reducibleJoin394: while (true) {
if (property < 608) {
value209 = 12;
r39 = value209;
break reducibleJoin394;
}
r39 = value208;
break reducibleJoin394;
}
r38 = r39;
break reducibleJoin395;
}
r37 = r38;
break reducibleJoin396;
}
r36 = r37;
break reducibleJoin397;
}
r35 = r36;
break reducibleJoin398;
}
r34 = r35;
break reducibleJoin399;
}
r33 = r34;
break reducibleJoin400;
}
r32 = r33;
break reducibleJoin401;
}
r31 = r32;
break reducibleJoin402;
}
r30 = r31;
break reducibleJoin403;
}
r29 = r30;
break reducibleJoin404;
}
r27 = r29;
break reducibleJoin405;
}
r26 = r27;
break reducibleJoin406;
}
}
reducibleJoin409: while (true) {
if (r9) {
r9[value25] = 'like Chrome';
break reducibleJoin409;
}
break reducibleJoin409;
}
property = items13[value25];
reducibleJoin461: while (true) {
if (property) {
r26 = property;
break reducibleJoin461;
}
property = items13[0];
reducibleJoin460: while (true) {
if (property < 530) {
r27 = value25;
break reducibleJoin460;
}
value210 = 2;
reducibleJoin459: while (true) {
if (property < 532) {
r28 = value210;
break reducibleJoin459;
}
value211 = 3;
reducibleJoin458: while (true) {
if (property < 532.05) {
r29 = value211;
break reducibleJoin458;
}
value212 = 4;
reducibleJoin457: while (true) {
if (property < 533) {
r30 = value212;
break reducibleJoin457;
}
value213 = 5;
reducibleJoin456: while (true) {
if (property < 534.03) {
r31 = value213;
break reducibleJoin456;
}
value214 = 6;
reducibleJoin455: while (true) {
if (property < 534.07) {
r32 = value214;
break reducibleJoin455;
}
value215 = 7;
reducibleJoin454: while (true) {
if (property < 534.1) {
r33 = value215;
break reducibleJoin454;
}
value216 = 8;
reducibleJoin453: while (true) {
if (property < 534.13) {
r34 = value216;
break reducibleJoin453;
}
value217 = 9;
reducibleJoin452: while (true) {
if (property < 534.16) {
r35 = value217;
break reducibleJoin452;
}
value218 = 10;
reducibleJoin451: while (true) {
if (property < 534.24) {
r36 = value218;
break reducibleJoin451;
}
value219 = 11;
reducibleJoin450: while (true) {
if (property < 534.3) {
r37 = value219;
break reducibleJoin450;
}
value220 = 12;
reducibleJoin449: while (true) {
if (property < 535.01) {
r38 = value220;
break reducibleJoin449;
}
value221 = '13+';
reducibleJoin448: while (true) {
if (property < 535.02) {
r39 = value221;
break reducibleJoin448;
}
value222 = 15;
reducibleJoin447: while (true) {
if (property < 535.07) {
r40 = value222;
break reducibleJoin447;
}
value223 = 16;
reducibleJoin446: while (true) {
if (property < 535.11) {
r41 = value223;
break reducibleJoin446;
}
value224 = 17;
reducibleJoin445: while (true) {
if (property < 535.19) {
r42 = value224;
break reducibleJoin445;
}
value225 = 18;
reducibleJoin444: while (true) {
if (property < 536.05) {
r43 = value225;
break reducibleJoin444;
}
value226 = 19;
reducibleJoin443: while (true) {
if (property < 536.1) {
r44 = value226;
break reducibleJoin443;
}
value227 = 20;
reducibleJoin442: while (true) {
if (property < 537.01) {
r45 = value227;
break reducibleJoin442;
}
value228 = '21+';
reducibleJoin441: while (true) {
if (property < 537.11) {
r46 = value228;
break reducibleJoin441;
}
value229 = 23;
reducibleJoin440: while (true) {
if (property < 537.13) {
r47 = value229;
break reducibleJoin440;
}
value230 = 24;
reducibleJoin439: while (true) {
if (property < 537.18) {
r48 = value230;
break reducibleJoin439;
}
value231 = 25;
reducibleJoin438: while (true) {
if (property < 537.24) {
r49 = value231;
break reducibleJoin438;
}
value232 = 26;
reducibleJoin437: while (true) {
if (property < 537.36) {
r50 = value232;
break reducibleJoin437;
}
value233 = '28';
reducibleJoin436: while (true) {
if (r9 != 'Blink') {
value234 = '27';
r51 = value234;
break reducibleJoin436;
}
r51 = value233;
break reducibleJoin436;
}
r50 = r51;
break reducibleJoin437;
}
r49 = r50;
break reducibleJoin438;
}
r48 = r49;
break reducibleJoin439;
}
r47 = r48;
break reducibleJoin440;
}
r46 = r47;
break reducibleJoin441;
}
r45 = r46;
break reducibleJoin442;
}
r44 = r45;
break reducibleJoin443;
}
r43 = r44;
break reducibleJoin444;
}
r42 = r43;
break reducibleJoin445;
}
r41 = r42;
break reducibleJoin446;
}
r40 = r41;
break reducibleJoin447;
}
r39 = r40;
break reducibleJoin448;
}
r38 = r39;
break reducibleJoin449;
}
r37 = r38;
break reducibleJoin450;
}
r36 = r37;
break reducibleJoin451;
}
r35 = r36;
break reducibleJoin452;
}
r34 = r35;
break reducibleJoin453;
}
r33 = r34;
break reducibleJoin454;
}
r32 = r33;
break reducibleJoin455;
}
r31 = r32;
break reducibleJoin456;
}
r30 = r31;
break reducibleJoin457;
}
r29 = r30;
break reducibleJoin458;
}
r28 = r29;
break reducibleJoin459;
}
r27 = r28;
break reducibleJoin460;
}
r26 = r27;
break reducibleJoin461;
}
r12 = r26;
break reducibleJoin462;
}
reducibleJoin380: while (true) {
if (r9) {
r9[value25] = 'like Safari';
break reducibleJoin380;
}
break reducibleJoin380;
}
property = items13[0];
if (property < 400) {
r26 = value25;
break reducibleJoin406;
}
value197 = 2;
reducibleJoin405: while (true) {
if (property < 500) {
r27 = value197;
break reducibleJoin405;
}
value198 = 3;
reducibleJoin404: while (true) {
if (property < 526) {
r29 = value198;
break reducibleJoin404;
}
value199 = 4;
reducibleJoin403: while (true) {
if (property < 533) {
r30 = value199;
break reducibleJoin403;
}
value200 = '4+';
reducibleJoin402: while (true) {
if (property < 534) {
r31 = value200;
break reducibleJoin402;
}
value201 = 5;
reducibleJoin401: while (true) {
if (property < 535) {
r32 = value201;
break reducibleJoin401;
}
value202 = 6;
reducibleJoin400: while (true) {
if (property < 537) {
r33 = value202;
break reducibleJoin400;
}
value203 = 7;
reducibleJoin399: while (true) {
if (property < 538) {
r34 = value203;
break reducibleJoin399;
}
value204 = 8;
reducibleJoin398: while (true) {
if (property < 601) {
r35 = value204;
break reducibleJoin398;
}
value205 = 9;
reducibleJoin397: while (true) {
if (property < 602) {
r36 = value205;
break reducibleJoin397;
}
value206 = 10;
reducibleJoin396: while (true) {
if (property < 604) {
r37 = value206;
break reducibleJoin396;
}
value207 = 11;
reducibleJoin395: while (true) {
if (property < 606) {
r38 = value207;
break reducibleJoin395;
}
value208 = '12';
reducibleJoin394: while (true) {
if (property < 608) {
value209 = 12;
r39 = value209;
break reducibleJoin394;
}
r39 = value208;
break reducibleJoin394;
}
r38 = r39;
break reducibleJoin395;
}
r37 = r38;
break reducibleJoin396;
}
r36 = r37;
break reducibleJoin397;
}
r35 = r36;
break reducibleJoin398;
}
r34 = r35;
break reducibleJoin399;
}
r33 = r34;
break reducibleJoin400;
}
r32 = r33;
break reducibleJoin401;
}
r31 = r32;
break reducibleJoin402;
}
r30 = r31;
break reducibleJoin403;
}
r29 = r30;
break reducibleJoin404;
}
r27 = r29;
break reducibleJoin405;
}
r26 = r27;
break reducibleJoin406;
}
r12 = r26;
break reducibleJoin462;
}
reducibleJoin468: while (true) {
if (r9) {
property = r9[value25];
value235 = '.x';
reducibleJoin467: while (true) {
if (typeof r12 === 'number') {
r26 = value235;
break reducibleJoin467;
}
regexp = RegExp('[.+]', '');
test = regexp.test;
value236 = Reflect.apply(test, regexp, [r12]);
value237 = '+';
reducibleJoin466: while (true) {
if (value236) {
value238 = '';
r29 = value238;
break reducibleJoin466;
}
r29 = value237;
break reducibleJoin466;
}
r26 = r29;
break reducibleJoin467;
}
value239 = r12 + r26;
r9[value25] = property + (' ' + value239);
r12 = value239;
break reducibleJoin468;
}
break reducibleJoin468;
}
if (value21 == r6) {
if (!r3) {
r3 = r12;
r11 = r24;
r14 = r9;
break reducibleJoin475;
}
parseInt = global.parseInt;
int = parseInt(r3);
if (int > 45) {
r3 = r12;
r11 = r24;
r14 = r9;
break reducibleJoin475;
}
}
value240 = r6 == 'Chrome';
reducibleJoin473: while (true) {
if (value240) {
regexp = RegExp('\\bHeadlessChrome', 'i');
test = regexp.test;
value241 = Reflect.apply(test, regexp, [r10]);
r25 = value241;
break reducibleJoin473;
}
r25 = value240;
break reducibleJoin473;
}
if (r25) {
unshift = object.unshift;
Reflect.apply(unshift, object, ['headless']);
r11 = r24;
r14 = r9;
break reducibleJoin475;
}
r11 = r24;
r14 = r9;
break reducibleJoin475;
}
r11 = r27;
r12 = property;
r14 = r9;
break reducibleJoin475;
}
reducibleJoin491: while (true) {
reducibleJoin483: while (true) {
if (value18 != r6) {
if (value21 == r6) {
regexp = RegExp('\\bChrome\\b', '');
exec = regexp.exec;
reducibleJoin480: while (true) {
if (r14) {
property = r14[value25];
r9 = property;
break reducibleJoin480;
}
r9 = r14;
break reducibleJoin480;
}
if (Reflect.apply(exec, regexp, [r9])) {
unshift = object.unshift;
Reflect.apply(unshift, object, ['desktop mode']);
regexp = RegExp('\\bOS X\\b', '');
if (regexp.test(r5)) {
value246 = 'iOS 4.3+';
value247 = 'Apple';
r3 = value8;
r5 = value246;
r6 = value19;
r9 = value247;
break reducibleJoin491;
}
r3 = value8;
r5 = value8;
r6 = value19;
r9 = r13;
break reducibleJoin491;
}
}
regexp = RegExp('\\bSRWare Iron\\b', '');
value243 = regexp.test(r6);
if (value243) {
value244 = !r3;
r23 = value244;
break reducibleJoin483;
}
r23 = value243;
break reducibleJoin483;
}
regexp = RegExp('\\bzbov|zvav$', '');
exec = regexp.exec;
value242 = Reflect.apply(exec, regexp, [r5]);
if (value242) {
value248 = r6 + ' ';
unshift = object.unshift;
Reflect.apply(unshift, object, ['desktop mode']);
if (value242 == 'zvav') {
value250 = value248 + 'Mini';
r3 = value8;
r6 = value250;
} else {
value249 = value248 + 'Mobile';
r6 = value249;
}
replace = r5.replace;
RegExp = global.RegExp;
value251 = RegExp(' *' + value242 + '$');
value252 = Reflect.apply(replace, r5, [value251, '']);
r5 = value252;
r9 = r13;
r12 = value242;
break reducibleJoin491;
}
r12 = value242;
if (value21 == r6) {
regexp = RegExp('\\bChrome\\b', '');
exec = regexp.exec;
reducibleJoin480: while (true) {
if (r14) {
property = r14[value25];
r9 = property;
break reducibleJoin480;
}
r9 = r14;
break reducibleJoin480;
}
if (Reflect.apply(exec, regexp, [r9])) {
unshift = object.unshift;
Reflect.apply(unshift, object, ['desktop mode']);
regexp = RegExp('\\bOS X\\b', '');
if (regexp.test(r5)) {
value246 = 'iOS 4.3+';
value247 = 'Apple';
r3 = value8;
r5 = value246;
r6 = value19;
r9 = value247;
break reducibleJoin491;
}
r3 = value8;
r5 = value8;
r6 = value19;
r9 = r13;
break reducibleJoin491;
}
}
regexp = RegExp('\\bSRWare Iron\\b', '');
test = regexp.test;
value243 = Reflect.apply(test, regexp, [r6]);
if (value243) {
value244 = !r3;
r23 = value244;
break reducibleJoin483;
}
r23 = value243;
break reducibleJoin483;
}
if (r23) {
value245 = closure2('Chrome');
r3 = value245;
r9 = r13;
break reducibleJoin491;
}
r9 = r13;
break reducibleJoin491;
}
reducibleJoin493: while (true) {
if (r3) {
indexOf = r3.indexOf;
regexp = RegExp('[\\d.]+$', '');
exec = regexp.exec;
value253 = Reflect.apply(exec, regexp, [r5]);
value254 = Reflect.apply(indexOf, r3, [value253]);
value255 = value254 == 0;
r12 = value253;
r13 = value255;
break reducibleJoin493;
}
r13 = r3;
break reducibleJoin493;
}
reducibleJoin495: while (true) {
if (r13) {
indexOf = r10.indexOf;
value256 = Reflect.apply(indexOf, r10, ['/' + r12 + '-']);
value257 = value256 > -1;
r13 = value257;
break reducibleJoin495;
}
break reducibleJoin495;
}
reducibleJoin497: while (true) {
if (r13) {
trim_7377Binding = trim_7377;
replace = r5.replace;
value258 = trim_7377Binding(Reflect.apply(replace, r5, [r12, '']));
r5 = value258;
break reducibleJoin497;
}
break reducibleJoin497;
}
reducibleJoin499: while (true) {
if (r5) {
indexOf = r5.indexOf;
value259 = Reflect.apply(indexOf, r5, [r6]);
value260 = value259 != -1;
r13 = value260;
break reducibleJoin499;
}
r13 = r5;
break reducibleJoin499;
}
reducibleJoin501: while (true) {
if (r13) {
RegExp = global.RegExp;
value261 = RegExp(r6 + ' OS');
test = value261.test;
value262 = !Reflect.apply(test, value261, [r5]);
r13 = value262;
break reducibleJoin501;
}
break reducibleJoin501;
}
reducibleJoin503: while (true) {
if (r13) {
replace = r5.replace;
RegExp = global.RegExp;
value263 = qualify(r6);
value264 = RegExp(' *' + value263 + ' *');
value265 = Reflect.apply(replace, r5, [value264, '']);
r5 = value265;
break reducibleJoin503;
}
break reducibleJoin503;
}
reducibleJoin505: while (true) {
if (r14) {
regexp = RegExp('\\b(?:Avant|Nook)\\b', '');
test = regexp.test;
value266 = !Reflect.apply(test, regexp, [r6]);
r13 = value266;
break reducibleJoin505;
}
r13 = r14;
break reducibleJoin505;
}
reducibleJoin517: while (true) {
if (r13) {
regexp = RegExp('Browser|Lunascape|Maxthon', '');
test = regexp.test;
value267 = Reflect.apply(test, regexp, [r6]);
reducibleJoin512: while (true) {
if (value267) {
r17 = value267;
break reducibleJoin512;
}
value268 = value21 != r6;
reducibleJoin509: while (true) {
if (value268) {
regexp = RegExp('^iOS', '');
test = regexp.test;
value269 = Reflect.apply(test, regexp, [r5]);
r19 = value269;
break reducibleJoin509;
}
r19 = value268;
break reducibleJoin509;
}
reducibleJoin511: while (true) {
if (r19) {
regexp = RegExp('\\bSafari\\b', '');
test = regexp.test;
value270 = Reflect.apply(test, regexp, [r14[value25]]);
r19 = value270;
break reducibleJoin511;
}
break reducibleJoin511;
}
r17 = r19;
break reducibleJoin512;
}
reducibleJoin516: while (true) {
if (r17) {
break reducibleJoin516;
}
regexp = RegExp('^(?:Adobe|Arora|Breach|Midori|Opera|Phantom|Rekonq|Rock|Samsung Internet|Sleipnir|SRWare Iron|Vivaldi|Web)',
'');
test = regexp.test;
value271 = Reflect.apply(test, regexp, [r6]);
reducibleJoin515: while (true) {
if (value271) {
property = r14[value25];
r19 = property;
break reducibleJoin515;
}
r19 = value271;
break reducibleJoin515;
}
r17 = r19;
break reducibleJoin516;
}
r13 = r17;
break reducibleJoin517;
}
break reducibleJoin517;
}
reducibleJoin519: while (true) {
if (r13) {
length = r14.length;
property = r14[length - value25];
r12 = property;
r13 = property;
break reducibleJoin519;
}
break reducibleJoin519;
}
reducibleJoin521: while (true) {
if (r13) {
push = object.push;
Reflect.apply(push, object, [r12]);
break reducibleJoin521;
}
break reducibleJoin521;
}
reducibleJoin523: while (true) {
if (object.length) {
join = object.join;
value272 = Reflect.apply(join, object, ['; ']);
value273 = '(' + value272;
r1 = [value273 + ')'];
break reducibleJoin523;
}
r1 = object;
break reducibleJoin523;
}
r13 = r9 && r2;
reducibleJoin526: while (true) {
if (r13) {
indexOf = r2.indexOf;
value274 = Reflect.apply(indexOf, r2, [r9]);
value275 = value274 < 0;
r13 = value275;
break reducibleJoin526;
}
break reducibleJoin526;
}
reducibleJoin528: while (true) {
if (r13) {
push = r1.push;
Reflect.apply(push, r1, ['on ' + r9]);
break reducibleJoin528;
}
break reducibleJoin528;
}
reducibleJoin532: while (true) {
if (r2) {
push = r1.push;
regexp = RegExp('^on ', '');
test = regexp.test;
length = r1.length;
value276 = Reflect.apply(test, regexp, [r1[length - value25]]);
value277 = 'on ';
reducibleJoin531: while (true) {
if (value276) {
value278 = '';
r13 = value278;
break reducibleJoin531;
}
r13 = value277;
break reducibleJoin531;
}
Reflect.apply(push, r1, [r13 + r2]);
break reducibleJoin532;
}
break reducibleJoin532;
}
reducibleJoin541: while (true) {
if (r5) {
regexp = RegExp(' ([\\d.+]+)$', '');
exec = regexp.exec;
value279 = Reflect.apply(exec, regexp, [r5]);
reducibleJoin535: while (true) {
if (value279) {
charAt = r5.charAt;
length = r5.length;
length2 = value279[0].length;
value280 = Reflect.apply(charAt, r5, [length - length2 - value25]);
value281 = value280 == '/';
r17 = value281;
break reducibleJoin535;
}
r17 = value279;
break reducibleJoin535;
}
var env0_1 = r17;
object = {architecture: 32};
reducibleJoin538: while (true) {
if (value279) {
if (r17) {
r17 = r5;
break reducibleJoin538;
}
replace = r5.replace;
value282 = Reflect.apply(replace, r5, [value279[0], '']);
r17 = value282;
break reducibleJoin538;
}
r17 = r5;
break reducibleJoin538;
}
object.family = r17;
reducibleJoin540: while (true) {
if (value279) {
property = value279[value25];
r17 = property;
break reducibleJoin540;
}
r17 = value8;
break reducibleJoin540;
}
object.version = r17;
object.toString = toString_7391;
r5 = object;
break reducibleJoin541;
}
break reducibleJoin541;
}
value283 = RegExp('\\b(?:AMD|IA|Win|WOW|x86_|x)64\\b', 'i').exec(r18);
reducibleJoin565: while (true) {
reducibleJoin563: while (true) {
if (value283) {
regexp = RegExp('\\bi686\\b', 'i');
test = regexp.test;
if (Reflect.apply(test, regexp, [r18])) {
reducibleJoin559: while (true) {
if (r5) {
regexp = RegExp('^OS X', '');
test = regexp.test;
family = r5.family;
value = Reflect.apply(test, regexp, [family]);
r12 = value;
break reducibleJoin559;
}
r12 = r5;
break reducibleJoin559;
}
reducibleJoin561: while (true) {
if (r12) {
value = r6 == 'Chrome';
r12 = value;
break reducibleJoin561;
}
break reducibleJoin561;
}
if (r12) {
parseFloat = global.parseFloat;
value = parseFloat(r3);
value = value >= 39;
r12 = value;
break reducibleJoin563;
}
break reducibleJoin563;
}
reducibleJoin545: while (true) {
if (r5) {
r5.architecture = 64;
family = r5.family;
replace = family.replace;
RegExp = global.RegExp;
value284 = RegExp(' *' + value283);
r5.family = Reflect.apply(replace, family, [value284, '']);
break reducibleJoin545;
}
break reducibleJoin545;
}
reducibleJoin555: while (true) {
if (r6) {
regexp = RegExp('\\bWOW64\\b', 'i');
test = regexp.test;
value285 = Reflect.apply(test, regexp, [r10]);
reducibleJoin554: while (true) {
if (value285) {
r13 = value285;
break reducibleJoin554;
}
reducibleJoin551: while (true) {
if (value) {
regexp = RegExp('\\w(?:86|32)$', '');
test = regexp.test;
cpuClass = r20.cpuClass;
reducibleJoin550: while (true) {
if (cpuClass) {
r17 = cpuClass;
break reducibleJoin550;
}
platform = r20.platform;
r17 = platform;
break reducibleJoin550;
}
value = Reflect.apply(test, regexp, [r17]);
r16 = value;
break reducibleJoin551;
}
r16 = value;
break reducibleJoin551;
}
reducibleJoin553: while (true) {
if (r16) {
regexp = RegExp('\\bWin64; x64\\b', 'i');
test = regexp.test;
value = !Reflect.apply(test, regexp, [r10]);
r16 = value;
break reducibleJoin553;
}
break reducibleJoin553;
}
r13 = r16;
break reducibleJoin554;
}
r12 = r13;
break reducibleJoin555;
}
r12 = r6;
break reducibleJoin555;
}
if (r12) {
unshift = r1.unshift;
Reflect.apply(unshift, r1, ['32-bit']);
break reducibleJoin565;
}
break reducibleJoin565;
}
reducibleJoin559: while (true) {
if (r5) {
regexp = RegExp('^OS X', '');
test = regexp.test;
family = r5.family;
value = Reflect.apply(test, regexp, [family]);
r12 = value;
break reducibleJoin559;
}
r12 = r5;
break reducibleJoin559;
}
reducibleJoin561: while (true) {
if (r12) {
value = r6 == 'Chrome';
r12 = value;
break reducibleJoin561;
}
break reducibleJoin561;
}
if (r12) {
parseFloat = global.parseFloat;
value = parseFloat(r3);
value = value >= 39;
r12 = value;
break reducibleJoin563;
}
break reducibleJoin563;
}
if (r12) {
r5.architecture = 64;
break reducibleJoin565;
}
break reducibleJoin565;
}
reducibleJoin567: while (true) {
if (r10) {
break reducibleJoin567;
}
env0_0 = value8;
r10 = value8;
break reducibleJoin567;
}
object = {description: r10};
reducibleJoin569: while (true) {
if (r14) {
property = r14[0];
r12 = property;
break reducibleJoin569;
}
r12 = r14;
break reducibleJoin569;
}
object.layout = r12;
object.manufacturer = r9;
object.name = r6;
object.prerelease = r11;
object.product = r2;
object.ua = r10;
object.version = r6 && r3;
reducibleJoin572: while (true) {
if (r5) {
r9 = r5;
break reducibleJoin572;
}
r9 = {'architecture': null, 'family': null, 'version': null, toString: function() {
return 'null';
}};
break reducibleJoin572;
}
object.os = r9;
object.parse = parse_7378;
object.toString = function() {
return this.description || '';
};
reducibleJoin574: while (true) {
if (object.version) {
unshift = r1.unshift;
Reflect.apply(unshift, r1, [r3]);
break reducibleJoin574;
}
break reducibleJoin574;
}
reducibleJoin576: while (true) {
if (object.name) {
unshift = r1.unshift;
Reflect.apply(unshift, r1, [r6]);
break reducibleJoin576;
}
break reducibleJoin576;
}
r3 = r5 && r6;
reducibleJoin583: while (true) {
if (r3) {
String = global.String;
value = String(r5);
split = value.split;
value = Reflect.apply(split, value, [' ']);
value = r5 != value[0];
reducibleJoin582: while (true) {
if (value) {
r4 = value;
break reducibleJoin582;
}
split = r6.split;
value = r5 != Reflect.apply(split, r6, [' '])[0];
reducibleJoin581: while (true) {
if (value) {
value = !r2;
r6 = value;
break reducibleJoin581;
}
r6 = value;
break reducibleJoin581;
}
r4 = r6;
break reducibleJoin582;
}
r3 = r4;
break reducibleJoin583;
}
break reducibleJoin583;
}
reducibleJoin588: while (true) {
if (r3) {
push = r1.push;
if (r2) {
value = '(' + r5 + ')';
r2 = value;
} else {
value = 'on ' + r5;
r2 = value;
}
Reflect.apply(push, r1, [r2]);
break reducibleJoin588;
}
break reducibleJoin588;
}
reducibleJoin590: while (true) {
if (r1.length) {
join = r1.join;
object.description = Reflect.apply(join, r1, [' ']);
break reducibleJoin590;
}
break reducibleJoin590;
}
return object;
function getProduct(a0) { // fn#7379, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:704:5669, owner: parse_7378.getProduct, offset: 0x00d19ebc, size: 27 bytes, params: 2, frame: 13
return reduce_7375(a0, _fun7380);
function _fun7380(a0, a1) { // fn#7380, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:704:5709, offset: 0x00d19ed7, size: 511 bytes, params: 3, frame: 22
var r0;
var r1;
var r6;
var r4;
var r8;
var RegExp;
var exec;
var value6;
var String;
var label;
var property;
var regexp;
var value8;
var formatBinding;
var replace;
let value = a0;
const value2 = a1;
const r9 = value2.pattern || qualify(value2);
if (value) {
r1 = !value;
r6 = value;
} else {
RegExp = global.RegExp;
value = RegExp('\\b' + r9 + ' *\\d+[.\\w_]*', 'i');
exec = value.exec;
value6 = environment.__proto__;
value = Reflect.apply(exec, value, [userAgent]);
if (value) {
r0 = value;
} else {
RegExp = global.RegExp;
value = RegExp('\\b' + r9 + ' *\\w+-[\\w]*', 'i');
value = value.exec(userAgent);
r0 = value;
}
if (!r0) {
RegExp = global.RegExp;
value = RegExp('\\b' + r9 + '(?:; *(?:[a-z]+[_-])?[a-z]+\\d+|[^ ();-]*)', 'i');
value = value.exec(userAgent);
r0 = value;
}
r1 = r0;
r6 = r0;
}
if (r1) {
String = global.String;
label = value2.label;
if (label) {
RegExp = global.RegExp;
value = RegExp(r9, 'i');
r4 = value.test(value2.label) ? r6 : value2.label;
} else {
r4 = r6;
}
value = String(r4);
value = value.split('/');
property = value[1];
if (property) {
regexp = RegExp('[\\d.]+', '');
r6 = !regexp.test(value[0]);
} else {
r6 = property;
}
if (r6) {
value[0] = value[0] + (' ' + value[1]);
}
label = value2.label;
r8 = label || value2;
value8 = environment.__proto__.__proto__;
formatBinding = format;
property = value[0];
replace = property.replace;
RegExp = global.RegExp;
value = Reflect.apply(replace, property, [RegExp(r9, 'i'), r8]);
replace = value.replace;
RegExp = global.RegExp;
value = Reflect.apply(replace, value, [RegExp('; *(?:' + r8 + '[_-])?', 'i'), ' ']);
replace = value.replace;
RegExp = global.RegExp;
value = formatBinding(Reflect.apply(replace, value, [RegExp('(' + r8 + ')[-_.]?(\\w)', 'i'), '$1 $2']));
r0 = value;
} else {
r0 = r6;
}
return r0;
}
}
function getVersion(a0) { // fn#7381, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:704:6199, owner: parse_7378.getVersion, offset: 0x00d1a0d6, size: 27 bytes, params: 2, frame: 13
return reduce_7375(a0, _fun7382);
function _fun7382(a0, a1) { // fn#7382, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:704:6239, offset: 0x00d1a0f1, size: 76 bytes, params: 3, frame: 14
var r0;
var exec;
var value2;
let value = a0;
if (value) {
r0 = value;
} else {
value = global.RegExp(a1 + '(?:-[\\d.]+/|(?: for [\\w-]+)?[ /-])([\\d.]+[^ ();/_-]*)', 'i');
exec = value.exec;
value2 = environment.__proto__;
value = Reflect.apply(exec, value, [userAgent]);
r0 = (value || 0)[1];
}
r0 = !r0 ? null : r0;
return r0;
}
}
function getLayout(a0) { // fn#7383, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:704:1569, owner: parse_7378.getLayout, offset: 0x00d1a13d, size: 27 bytes, params: 2, frame: 13
return reduce_7375(a0, _fun7384);
function _fun7384(a0, a1) { // fn#7384, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:704:1608, offset: 0x00d1a158, size: 106 bytes, params: 3, frame: 15
var r1;
var r0;
var RegExp;
var pattern;
var exec;
var value3;
let value = a0;
const value2 = a1;
if (value) {
r0 = value;
} else {
RegExp = global.RegExp;
pattern = value2.pattern;
if (pattern) {
r1 = pattern;
} else {
value = environment.__proto__.__proto__;
value = qualify(value2);
r1 = value;
}
value = RegExp('\\b' + r1 + '\\b', 'i');
exec = value.exec;
value3 = environment.__proto__;
value = Reflect.apply(exec, value, [userAgent]);
r1 = value && (value2.label || value2);
r0 = r1;
}
return r0;
}
}
function getName(a0) { // fn#7385, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:704:1846, owner: parse_7378.getName, offset: 0x00d1a1c2, size: 27 bytes, params: 2, frame: 13
return reduce_7375(a0, _fun7386);
function _fun7386(a0, a1) { // fn#7386, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:704:1883, offset: 0x00d1a158, size: 106 bytes, params: 3, frame: 15
var r1;
var r0;
var RegExp;
var pattern;
var exec;
var value3;
let value = a0;
const value2 = a1;
if (value) {
r0 = value;
} else {
RegExp = global.RegExp;
pattern = value2.pattern;
if (pattern) {
r1 = pattern;
} else {
value = environment.__proto__.__proto__;
value = qualify(value2);
r1 = value;
}
value = RegExp('\\b' + r1 + '\\b', 'i');
exec = value.exec;
value3 = environment.__proto__;
value = Reflect.apply(exec, value, [userAgent]);
r1 = value && (value2.label || value2);
r0 = r1;
}
return r0;
}
}
function getManufacturer(a0) { // fn#7387, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:704:3692, owner: parse_7378.getManufacturer, offset: 0x00d1a1dd, size: 27 bytes, params: 2, frame: 13
return reduce_7375(a0, _fun7388);
function _fun7388(a0, a1, a2) { // fn#7388, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:704:3737, offset: 0x00d1a1f8, size: 143 bytes, params: 4, frame: 17
var r1;
var r0;
var property;
var regexp;
var RegExp;
var value3;
var value5;
let value = a0;
const value2 = a2;
if (value) {
r0 = value;
} else {
value = environment.__proto__;
property = a1[product];
if (property) {
r1 = property;
} else {
regexp = RegExp('^[a-z]+(?: +[a-z]+\\b)*', 'i');
r1 = a1[regexp.exec(product)];
}
if (!r1) {
RegExp = global.RegExp;
value3 = environment.__proto__.__proto__;
value5 = RegExp('\\b' + qualify(value2) + '(?:\\b|\\w*\\d)', 'i');
r1 = value5.exec(userAgent);
}
r1 = r1 && value2;
r0 = r1;
}
return r0;
}
}
function parse_7378GetOS(a0) { // fn#7389, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:704:4343, owner: parse_7378.getOS, offset: 0x00d1a287, size: 27 bytes, params: 2, frame: 13
return reduce_7375(a0, _fun7390);
function _fun7390(a0, a1) { // fn#7390, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:704:4378, offset: 0x00d1a2a2, size: 687 bytes, params: 3, frame: 18
var r2;
var r3;
var r5;
var r1;
var r6;
var r0;
var RegExp;
var exec;
var value6;
var object;
var regexp;
var property;
var replace;
var formatBinding;
let value = a0;
const value2 = a1;
const r8 = value2.pattern || qualify(value2);
if (value) {
r2 = !value;
r3 = value;
} else {
RegExp = global.RegExp;
value = RegExp('\\b' + r8 + '(?:/[\\d.]+|[ \\w.]*)', 'i');
exec = value.exec;
value6 = environment.__proto__;
value = Reflect.apply(exec, value, [userAgent]);
r2 = value;
r3 = value;
}
if (r2) {
r5 = value2.label || value2;
object = {'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'};
r1 = r8 && r5;
r1 = r1 && RegExp('^Win', 'i').test(r3);
if (r1) {
regexp = RegExp('^Windows Phone ', 'i');
r1 = !regexp.test(r3);
}
if (r1) {
regexp = RegExp('[\\d.]+$', '');
property = object[regexp.exec(r3)];
r1 = property;
r2 = property;
} else {
r2 = object;
}
value = global.String(r1 ? 'Windows ' + r2 : r3);
r2 = r8 && r5;
if (r2) {
replace = value.replace;
RegExp = global.RegExp;
value = Reflect.apply(replace, value, [RegExp(r8, 'i'), r5]);
r6 = value;
} else {
r6 = value;
}
value = environment.__proto__.__proto__;
formatBinding = format;
value = r6.replace(RegExp(' ce$', 'i'), ' CE');
value = value.replace(RegExp('\\bhpw', 'i'), 'web');
value = value.replace(RegExp('\\bMacintosh\\b', ''), 'Mac OS');
value = value.replace(RegExp('_PowerPC\\b', 'i'), ' OS');
value = value.replace(RegExp('\\b(OS X) [^ \\d]+', 'i'), '$1');
value = value.replace(RegExp('\\bMac (OS X)\\b', ''), '$1');
value = value.replace(RegExp('\\/(\\d)', ''), ' $1');
value = value.replace(RegExp('_', 'g'), '.');
value = value.replace(RegExp('(?: BePC|[ .]*fc[ \\d.]+)$', 'i'), '');
value = value.replace(RegExp('\\bx86\\.64\\b', 'gi'), 'x86_64');
value = value.replace(RegExp('\\b(Windows Phone) OS\\b', ''), '$1');
value = value.replace(RegExp('\\b(Chrome OS \\w+) [\\d.]+\\b', ''), '$1');
value = value.split(' on ');
value = formatBinding(value[0]);
r0 = value;
} else {
r0 = r3;
}
return r0;
}
}
function parse_7378ToString() { // fn#7391, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:704:13962, owner: parse_7378.toString, offset: 0x00d1a551, size: 80 bytes, params: 1, frame: 6
const version = this.version;
const family = this.family;
const value = '';
return family + (version ? env0_1 ? value : ' ' + version : value) + (this.architecture == 64 ? ' 64-bit' : value);
}
}
function _fun7394() { // fn#7394, offset: 0x00d1a5b8, size: 9 bytes, params: 1, frame: 1
return env0_6;
}
function _fun7395(a0, a1) { // fn#7395, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:704:15036, offset: 0x00d1a5c1, size: 21 bytes, params: 3, frame: 3
env0_1[a1] = a0;
}
}
}
function parse_7378ToString_7393() { // fn#7393, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:704:14675, owner: parse_7378.toString, offset: 0x00d1a5a7, size: 17 bytes, params: 1, frame: 2
let description = this.description;
description = !description ? '' : description;
return description;
}
global.__d(_fun7368, 654, []) /* metro module 654 */;