UNPKG

nim-web-sdk

Version:

基于网易云通讯web端sdk, 仅添加对TypeScript的支持,没有技术含量,都是体力活...,觉得搬运辛苦就给个star吧

1,473 lines 584 kB
!(function(e, t) { 'object' == typeof exports && 'object' == typeof module ? (module.exports = t()) : 'function' == typeof define && define.amd ? define([], t) : 'object' == typeof exports ? (exports.SDK = t()) : (e.SDK = t()); })(window, function() { return (function(e) { var t = {}; function n(r) { if (t[r]) return t[r].exports; var s = (t[r] = { i: r, l: !1, exports: {} }); return e[r].call(s.exports, s, s.exports, n), (s.l = !0), s.exports; } return ( (n.m = e), (n.c = t), (n.d = function(e, t, r) { n.o(e, t) || Object.defineProperty(e, t, { configurable: !1, enumerable: !0, get: r }); }), (n.r = function(e) { Object.defineProperty(e, '__esModule', { value: !0 }); }), (n.n = function(e) { var t = e && e.__esModule ? function() { return e.default; } : function() { return e; }; return n.d(t, 'a', t), t; }), (n.o = function(e, t) { return Object.prototype.hasOwnProperty.call(e, t); }), (n.p = ''), n((n.s = 481)) ); })([ function(e, t, n) { 'use strict'; var r, s = n(9), i = (r = s) && r.__esModule ? r : { default: r }; var o = n(73), a = n(68); n(87); var c, u, l = n(12), m = l.getGlobal(), d = /\s+/; (l.deduplicate = function(e) { var t = []; return ( e.forEach(function(e) { -1 === t.indexOf(e) && t.push(e); }), t ); }), (l.capFirstLetter = function(e) { return e ? (e = '' + e).slice(0, 1).toUpperCase() + e.slice(1) : ''; }), (l.guid = ((c = function() { return ((65536 * (1 + Math.random())) | 0).toString(16).substring(1); }), function() { return c() + c() + c() + c() + c() + c() + c() + c(); })), (l.extend = function(e, t, n) { for (var r in t) (void 0 !== e[r] && !0 !== n) || (e[r] = t[r]); }), (l.filterObj = function(e, t) { var n = {}; return ( l.isString(t) && (t = t.split(d)), t.forEach(function(t) { e.hasOwnProperty(t) && (n[t] = e[t]); }), n ); }), (l.copy = function(e, t) { return ( (t = t || {}), e ? (Object.keys(e).forEach(function(n) { l.exist(e[n]) && (t[n] = e[n]); }), t) : t ); }), (l.copyWithNull = function(e, t) { return ( (t = t || {}), e ? (Object.keys(e).forEach(function(n) { (l.exist(e[n]) || l.isnull(e[n])) && (t[n] = e[n]); }), t) : t ); }), (l.findObjIndexInArray = function(e, t) { e = e || []; var n = t.keyPath || 'id', r = -1; return ( e.some(function(e, s) { if (a(e, n) === t.value) return (r = s), !0; }), r ); }), (l.findObjInArray = function(e, t) { var n = l.findObjIndexInArray(e, t); return -1 === n ? null : e[n]; }), (l.mergeObjArray = function() { var e = [], t = [].slice.call(arguments, 0, -1), n = arguments[arguments.length - 1]; l.isArray(n) && (t.push(n), (n = {})); var r, s = (n.keyPath = n.keyPath || 'id'); for (n.sortPath = n.sortPath || s; !e.length && t.length; ) e = (e = t.shift() || []).slice(0); return ( t.forEach(function(t) { t && t.forEach(function(t) { -1 !== (r = l.findObjIndexInArray(e, { keyPath: s, value: a(t, s) })) ? (e[r] = l.merge({}, e[r], t)) : e.push(t); }); }), n.notSort || (e = l.sortObjArray(e, n)), e ); }), (l.cutObjArray = function(e) { var t = e.slice(0), n = arguments.length, r = [].slice.call(arguments, 1, n - 1), s = arguments[n - 1]; l.isObject(s) || (r.push(s), (s = {})); var i, o = (s.keyPath = s.keyPath || 'id'); return ( r.forEach(function(e) { l.isArray(e) || (e = [e]), e.forEach(function(e) { e && ((s.value = a(e, o)), -1 !== (i = l.findObjIndexInArray(t, s)) && t.splice(i, 1)); }); }), t ); }), (l.sortObjArray = function(e, t) { var n = (t = t || {}).sortPath || 'id'; o.insensitive = !!t.insensitive; var r, s, i, c = !!t.desc; return ( (i = l.isFunction(t.compare) ? t.compare : function(e, t) { return (r = a(e, n)), (s = a(t, n)), c ? o(s, r) : o(r, s); }), e.sort(i) ); }), (l.emptyFunc = function() {}), (l.isEmptyFunc = function(e) { return e === l.emptyFunc; }), (l.notEmptyFunc = function(e) { return e !== l.emptyFunc; }), (l.splice = function(e, t, n) { return [].splice.call(e, t, n); }), (l.reshape2d = function(e, t) { if (Array.isArray(e)) { l.verifyParamType('type', t, 'number', 'util::reshape2d'); var n = e.length; if (n <= t) return [e]; for (var r = Math.ceil(n / t), s = [], i = 0; i < r; i++) s.push(e.slice(i * t, (i + 1) * t)); return s; } return e; }), (l.flatten2d = function(e) { if (Array.isArray(e)) { var t = []; return ( e.forEach(function(e) { t = t.concat(e); }), t ); } return e; }), (l.dropArrayDuplicates = function(e) { if (Array.isArray(e)) { for (var t = {}, n = []; e.length > 0; ) { t[e.shift()] = !0; } for (var r in t) !0 === t[r] && n.push(r); return n; } return e; }), (l.onError = function(e) { throw new (function(e) { 'object' === (void 0 === e ? 'undefined' : (0, i.default)(e)) ? ((this.callFunc = e.callFunc || null), (this.message = e.message || 'UNKNOW ERROR')) : (this.message = e), (this.time = new Date()), (this.timetag = +this.time); })(e); }), (l.verifyParamPresent = function(e, t, n, r) { n = n || ''; var s = !1; switch (l.typeOf(t)) { case 'undefined': case 'null': s = !0; break; case 'string': '' === t && (s = !0); break; case 'StrStrMap': case 'object': Object.keys(t).length || (s = !0); break; case 'array': t.length ? t.some(function(e) { if (l.notexist(e)) return (s = !0), !0; }) : (s = !0); } s && l.onParamAbsent(n + e, r); }), (l.onParamAbsent = function(e, t) { l.onParamError('缺少参数 ' + e + ', 请确保参数不是 空字符串、空对象、空数组、null或undefined, 或数组的内容不是 null/undefined', t); }), (l.verifyParamAbsent = function(e, t, n, r) { (n = n || ''), void 0 !== t && l.onParamPresent(n + e, r); }), (l.onParamPresent = function(e, t) { l.onParamError('多余的参数 ' + e, t); }), (l.verifyParamType = function(e, t, n, r) { var s = l.typeOf(t).toLowerCase(); l.isArray(n) || (n = [n]); var i = !0; switch ( (-1 === (n = n.map(function(e) { return e.toLowerCase(); })).indexOf(s) && (i = !1), s) ) { case 'number': isNaN(t) && (i = !1); break; case 'string': 'numeric or numeric string' === n.join('') && (i = !!/^[0-9]+$/.test(t)); } i || l.onParamInvalidType(e, n, '', r); }), (l.onParamInvalidType = function(e, t, n, r) { (n = n || ''), (t = l.isArray(t) ? (t = t.map(function(e) { return '"' + e + '"'; })).join(', ') : '"' + t + '"'), l.onParamError('参数"' + n + e + '"类型错误, 合法的类型包括: [' + t + ']', r); }), (l.verifyParamValid = function(e, t, n, r) { l.isArray(n) || (n = [n]), -1 === n.indexOf(t) && l.onParamInvalidValue(e, n, r); }), (l.onParamInvalidValue = function(e, t, n) { l.isArray(t) || (t = [t]), (t = t.map(function(e) { return '"' + e + '"'; })), l.isArray(t) && (t = t.join(', ')), l.onParamError('参数 ' + e + '值错误, 合法的值包括: [' + JSON.stringify(t) + ']', n); }), (l.verifyParamMin = function(e, t, n, r) { t < n && l.onParamError('参数' + e + '的值不能小于' + n, r); }), (l.verifyParamMax = function(e, t, n, r) { t > n && l.onParamError('参数' + e + '的值不能大于' + n, r); }), (l.verifyArrayMax = function(e, t, n, r) { t.length > n && l.onParamError('参数' + e + '的长度不能大于' + n, r); }), (l.verifyEmail = ((u = /^\S+@\S+$/), function(e, t, n) { u.test(t) || l.onParamError('参数' + e + '邮箱格式错误, 合法格式必须包含@符号, @符号前后至少要各有一个字符', n); })), (l.verifyTel = (function() { var e = /^[+\-()\d]+$/; return function(t, n, r) { e.test(n) || l.onParamError('参数' + t + '电话号码格式错误, 合法字符包括+、-、英文括号和数字', r); }; })()), (l.verifyBirth = (function() { var e = /^(\d{4})-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])$/; return function(t, n, r) { e.test(n) || l.onParamError('参数' + t + '生日格式错误, 合法为"yyyy-MM-dd"', r); }; })()), (l.onParamError = function(e, t) { l.onError({ message: e, callFunc: t }); }), (l.verifyOptions = function(e, t, n, r, s) { if (((e = e || {}), t && (l.isString(t) && (t = t.split(d)), l.isArray(t)))) { 'boolean' != typeof n && ((s = n || null), (n = !0), (r = '')); var i = n ? l.verifyParamPresent : l.verifyParamAbsent; t.forEach(function(t) { i.call(l, t, e[t], r, s); }); } return e; }), (l.verifyParamAtLeastPresentOne = function(e, t, n) { t && (l.isString(t) && (t = t.split(d)), l.isArray(t) && (t.some(function(t) { return l.exist(e[t]); }) || l.onParamError('以下参数[' + t.join(', ') + ']至少需要传入一个', n))); }), (l.verifyParamPresentJustOne = function(e, t, n) { t && (l.isString(t) && (t = t.split(d)), l.isArray(t) && 1 !== t.reduce(function(t, n) { return l.exist(e[n]) && t++, t; }, 0) && l.onParamError('以下参数[' + t.join(', ') + ']必须且只能传入一个', n)); }), (l.verifyBooleanWithDefault = function(e, t, n, r, s) { l.undef(n) && (n = !0), d.test(t) && (t = t.split(d)), l.isArray(t) ? t.forEach(function(t) { l.verifyBooleanWithDefault(e, t, n, r, s); }) : void 0 === e[t] ? (e[t] = n) : l.isBoolean(e[t]) || l.onParamInvalidType(t, 'boolean', r, s); }), (l.verifyFileInput = function(e, t) { return l.verifyParamPresent('fileInput', e, '', t), l.isString(e) && ((e = document.getElementById(e)) || l.onParamError('找不到要上传的文件对应的input, 请检查fileInput id ' + e, t)), (e.tagName && 'input' === e.tagName.toLowerCase() && 'file' === e.type.toLowerCase()) || l.onParamError('请提供正确的 fileInput, 必须为 file 类型的 input 节点 tagname:' + e.tagName + ', filetype:' + e.type, t), e; }), (l.verifyFileType = function(e, t) { l.verifyParamValid('type', e, l.validFileTypes, t); }), (l.verifyCallback = function(e, t, n) { d.test(t) && (t = t.split(d)), l.isArray(t) ? t.forEach(function(t) { l.verifyCallback(e, t, n); }) : e[t] ? l.isFunction(e[t]) || l.onParamInvalidType(t, 'function', '', n) : (e[t] = l.emptyFunc); }), (l.verifyFileUploadCallback = function(e, t) { l.verifyCallback(e, 'uploadprogress uploaddone uploaderror uploadcancel', t); }), (l.validFileTypes = ['image', 'audio', 'video', 'file']), (l.validFileExts = { image: ['bmp', 'gif', 'jpg', 'jpeg', 'jng', 'png', 'webp'], audio: ['mp3', 'wav', 'aac', 'wma', 'wmv', 'amr', 'mp2', 'flac', 'vorbis', 'ac3'], video: ['mp4', 'rm', 'rmvb', 'wmv', 'avi', 'mpg', 'mpeg'] }), (l.filterFiles = function(e, t) { var n, r, s = 'file' === (t = t.toLowerCase()), i = []; return ( [].forEach.call(e, function(e) { if (s) i.push(e); else if (((n = e.name.slice(e.name.lastIndexOf('.') + 1)), (r = e.type.split('/'))[0] && r[1])) { (r[0].toLowerCase() === t || -1 !== l.validFileExts[t].indexOf(n)) && i.push(e); } }), i ); }); var p, f, g = (l.supportFormData = l.notundef(m.FormData)); (l.getFileName = function(e) { return (e = l.verifyFileInput(e)), g ? e.files[0].name : e.value.slice(e.value.lastIndexOf('\\') + 1); }), (l.getFileInfo = ((p = { ppt: 1, pptx: 2, pdf: 3 }), function(e) { var t = {}; if (!(e = l.verifyFileInput(e)).files) return t; var n = e.files[0]; return g && ((t.name = n.name), (t.size = n.size), (t.type = n.name.match(/\.(\w+)$/)), (t.type = t.type && t.type[1].toLowerCase()), (t.transcodeType = p[t.type] || 0)), t; })), (l.sizeText = ((f = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'BB']), function(e) { var t, n = 0; do { (t = (e = Math.floor(100 * e) / 100) + f[n]), (e /= 1024), n++; } while (e > 1); return t; })), (l.promises2cmds = function(e) { return e.map(function(e) { return e.cmd; }); }), (l.objs2accounts = function(e) { return e.map(function(e) { return e.account; }); }), (l.teams2ids = function(e) { return e.map(function(e) { return e.teamId; }); }), (l.objs2ids = function(e) { return e.map(function(e) { return e.id; }); }), (l.getMaxUpdateTime = function(e) { var t = e.map(function(e) { return +e.updateTime; }); return Math.max.apply(Math, t); }), (l.genCheckUniqueFunc = function(e, t) { return ( (e = e || 'id'), (t = t || 1e3), function(t) { (this.uniqueSet = this.uniqueSet || {}), (this.uniqueSet[e] = this.uniqueSet[e] || {}); var n = this.uniqueSet[e], r = t[e]; return !n[r] && ((n[r] = !0), !0); } ); }), (l.fillPropertyWithDefault = function(e, t, n) { return !!l.undef(e[t]) && ((e[t] = n), !0); }), (e.exports = l); }, , function(e, t, n) { 'use strict'; var r = { info: { hash: '1eb7eaefc2ae42b41a38b757b8d0a730c46e5067', shortHash: '1eb7eaef', version: '6.3.0', sdkVersion: '52', nrtcVersion: '4.5.0', nrtcSdkVersion: '1', protocolVersion: 1 }, agentVersion: '2.8.0.906', lbsUrl: 'https://lbs.netease.im/lbs/webconf.jsp', roomserver: 'roomserver.netease.im', connectTimeout: 8e3, xhrTimeout: 8e3, socketTimeout: 8e3, reconnectionDelay: 1600, reconnectionDelayMax: 8e3, reconnectionJitter: 0.01, reconnectiontimer: null, heartbeatInterval: 8e3, cmdTimeout: 8e3, defaultReportUrl: 'https://dr.netease.im/1.gif', isWeixinApp: !1, isNodejs: !1, isRN: !1, PUSHTOKEN: '', PUSHCONFIG: {}, CLIENTTYPE: 16, PushPermissionAsked: !1, iosPushConfig: null, androidPushConfig: null, netDetectAddr: 'https://roomserver-dev.netease.im/v1/sdk/detect/local' }; (r.weixinNetcall = r.nrtcNetcall = { checkSumUrl: 'https://nrtc.netease.im/demo/getChecksum.action', getChannelInfoUrl: 'https://nrtc.netease.im/nrtc/getChannelInfos.action' }), (r.formatSocketUrl = function(e) { var t = e.url, n = e.secure ? 'https' : 'http'; return -1 === t.indexOf('http') ? n + '://' + t : t; }), (r.uploadUrl = 'https://nos.netease.com'), (r.chunkUploadUrl = null), (r.commonMaxSize = 104857600), (r.chunkSize = 4194304), (r.chunkMaxSize = 4194304e4), (r.replaceUrl = 'https://{bucket}-nosdn.netease.im/{object}'), (r.downloadHost = 'nos.netease.com'), (r.downloadUrl = 'https://{bucket}-nosdn.netease.im/{object}'), (r.httpsEnabled = !1), (r.threshold = 0), (r.genUploadUrl = function(e) { return r.uploadUrl + '/' + e; }), (r.genChunkUploadUrl = function(e) { return r.chunkUploadUrl ? r.chunkUploadUrl + '/' + e.bucket + '/' + e.objectName : ''; }), (r.genDownloadUrl = function(e, t) { var n = e.bucket, s = (e.tag, e.expireSec), i = +new Date(), o = s ? '&survivalTime=' + s : '', a = r.replaceUrl + '?createTime=' + i + o; return (a = r.genNosProtocolUrl(a)).replace('{bucket}', n).replace('{object}', t); }), (r.genFileUrl = function(e) { var t = e.bucket, n = e.objectName; return r .genNosProtocolUrl(r.replaceUrl) .replace('{bucket}', t) .replace('{object}', n); }), (r.genNosProtocolUrl = function(e) { return /^http/.test(e) ? r.httpsEnabled && 0 !== e.indexOf('https://') && (e = e.replace('http', 'https')) : (e = r.httpsEnabled ? 'https://' + e : 'http://' + e), e; }), (e.exports = r); }, , , , function(e, t, n) { var r = n(42)('wks'), s = n(29), i = n(8).Symbol, o = 'function' == typeof i; (e.exports = function(e) { return r[e] || (r[e] = (o && i[e]) || (o ? i : s)('Symbol.' + e)); }).store = r; }, function(e, t) { var n = (e.exports = { version: '2.5.5' }); 'number' == typeof __e && (__e = n); }, function(e, t) { var n = (e.exports = 'undefined' != typeof window && window.Math == Math ? window : 'undefined' != typeof self && self.Math == Math ? self : Function('return this')()); 'number' == typeof __g && (__g = n); }, function(e, t, n) { 'use strict'; t.__esModule = !0; var r = o(n(106)), s = o(n(96)), i = 'function' == typeof s.default && 'symbol' == typeof r.default ? function(e) { return typeof e; } : function(e) { return e && 'function' == typeof s.default && e.constructor === s.default && e !== s.default.prototype ? 'symbol' : typeof e; }; function o(e) { return e && e.__esModule ? e : { default: e }; } t.default = 'function' == typeof s.default && 'symbol' === i(r.default) ? function(e) { return void 0 === e ? 'undefined' : i(e); } : function(e) { return e && 'function' == typeof s.default && e.constructor === s.default && e !== s.default.prototype ? 'symbol' : void 0 === e ? 'undefined' : i(e); }; }, function(e, t, n) { 'use strict'; var r = Object.prototype.hasOwnProperty, s = '~'; function i() {} function o(e, t, n) { (this.fn = e), (this.context = t), (this.once = n || !1); } function a() { (this._events = new i()), (this._eventsCount = 0); } Object.create && ((i.prototype = Object.create(null)), new i().__proto__ || (s = !1)), (a.prototype.eventNames = function() { var e, t, n = []; if (0 === this._eventsCount) return n; for (t in (e = this._events)) r.call(e, t) && n.push(s ? t.slice(1) : t); return Object.getOwnPropertySymbols ? n.concat(Object.getOwnPropertySymbols(e)) : n; }), (a.prototype.listeners = function(e, t) { var n = s ? s + e : e, r = this._events[n]; if (t) return !!r; if (!r) return []; if (r.fn) return [r.fn]; for (var i = 0, o = r.length, a = new Array(o); i < o; i++) a[i] = r[i].fn; return a; }), (a.prototype.emit = function(e, t, n, r, i, o) { var a = s ? s + e : e; if (!this._events[a]) return !1; var c, u, l = this._events[a], m = arguments.length; if (l.fn) { switch ((l.once && this.removeListener(e, l.fn, void 0, !0), m)) { case 1: return l.fn.call(l.context), !0; case 2: return l.fn.call(l.context, t), !0; case 3: return l.fn.call(l.context, t, n), !0; case 4: return l.fn.call(l.context, t, n, r), !0; case 5: return l.fn.call(l.context, t, n, r, i), !0; case 6: return l.fn.call(l.context, t, n, r, i, o), !0; } for (u = 1, c = new Array(m - 1); u < m; u++) c[u - 1] = arguments[u]; l.fn.apply(l.context, c); } else { var d, p = l.length; for (u = 0; u < p; u++) switch ((l[u].once && this.removeListener(e, l[u].fn, void 0, !0), m)) { case 1: l[u].fn.call(l[u].context); break; case 2: l[u].fn.call(l[u].context, t); break; case 3: l[u].fn.call(l[u].context, t, n); break; case 4: l[u].fn.call(l[u].context, t, n, r); break; default: if (!c) for (d = 1, c = new Array(m - 1); d < m; d++) c[d - 1] = arguments[d]; l[u].fn.apply(l[u].context, c); } } return !0; }), (a.prototype.on = function(e, t, n) { var r = new o(t, n || this), i = s ? s + e : e; return this._events[i] ? (this._events[i].fn ? (this._events[i] = [this._events[i], r]) : this._events[i].push(r)) : ((this._events[i] = r), this._eventsCount++), this; }), (a.prototype.once = function(e, t, n) { var r = new o(t, n || this, !0), i = s ? s + e : e; return this._events[i] ? (this._events[i].fn ? (this._events[i] = [this._events[i], r]) : this._events[i].push(r)) : ((this._events[i] = r), this._eventsCount++), this; }), (a.prototype.removeListener = function(e, t, n, r) { var o = s ? s + e : e; if (!this._events[o]) return this; if (!t) return 0 == --this._eventsCount ? (this._events = new i()) : delete this._events[o], this; var a = this._events[o]; if (a.fn) a.fn !== t || (r && !a.once) || (n && a.context !== n) || (0 == --this._eventsCount ? (this._events = new i()) : delete this._events[o]); else { for (var c = 0, u = [], l = a.length; c < l; c++) (a[c].fn !== t || (r && !a[c].once) || (n && a[c].context !== n)) && u.push(a[c]); u.length ? (this._events[o] = 1 === u.length ? u[0] : u) : 0 == --this._eventsCount ? (this._events = new i()) : delete this._events[o]; } return this; }), (a.prototype.removeAllListeners = function(e) { var t; return e ? ((t = s ? s + e : e), this._events[t] && (0 == --this._eventsCount ? (this._events = new i()) : delete this._events[t])) : ((this._events = new i()), (this._eventsCount = 0)), this; }), (a.prototype.off = a.prototype.removeListener), (a.prototype.addListener = a.prototype.on), (a.prototype.setMaxListeners = function() { return this; }), (a.prefixed = s), (a.EventEmitter = a), (e.exports = a); }, , function(e, t, n) { 'use strict'; (function(e) { Object.defineProperty(t, '__esModule', { value: !0 }), (t.url2origin = t.uniqueID = t.off = t.removeEventListener = t.on = t.addEventListener = t.format = t.regWhiteSpace = t.regBlank = t.emptyFunc = t.f = t.emptyObj = t.o = void 0); var r, s = n(9), i = (r = s) && r.__esModule ? r : { default: r }; (t.getGlobal = o), (t.detectCSSFeature = function(e) { var t = !1, n = 'Webkit Moz ms O'.split(' '), r = document.createElement('div'), s = null; (e = e.toLowerCase()), void 0 !== r.style[e] && (t = !0); if (!1 === t) { s = e.charAt(0).toUpperCase() + e.substr(1); for (var i = 0; i < n.length; i++) if (void 0 !== r.style[n[i] + s]) { t = !0; break; } } return t; }), (t.fix = a), (t.getYearStr = c), (t.getMonthStr = u), (t.getDayStr = l), (t.getHourStr = m), (t.getMinuteStr = d), (t.getSecondStr = p), (t.getMillisecondStr = f), (t.dateFromDateTimeLocal = function(e) { return (e = '' + e), new Date(e.replace(/-/g, '/').replace('T', ' ')); }), (t.getClass = y), (t.typeOf = v), (t.isString = b), (t.isNumber = function(e) { return 'number' === v(e); }), (t.isBoolean = function(e) { return 'boolean' === v(e); }), (t.isArray = M), (t.isFunction = T), (t.isDate = S), (t.isRegExp = function(e) { return 'regexp' === v(e); }), (t.isError = function(e) { return 'error' === v(e); }), (t.isnull = k), (t.notnull = C), (t.undef = P), (t.notundef = I), (t.exist = O), (t.notexist = x), (t.isObject = w), (t.isEmpty = function(e) { return x(e) || ((b(e) || M(e)) && 0 === e.length); }), (t.containsNode = function(e, t) { if (e === t) return !0; for (; t.parentNode; ) { if (t.parentNode === e) return !0; t = t.parentNode; } return !1; }), (t.calcHeight = function(e) { var t = e.parentNode || document.body; ((e = e.cloneNode(!0)).style.display = 'block'), (e.style.opacity = 0), (e.style.height = 'auto'), t.appendChild(e); var n = e.offsetHeight; return t.removeChild(e), n; }), (t.remove = function(e) { e.parentNode && e.parentNode.removeChild(e); }), (t.dataset = function(e, t, n) { if (!O(n)) return e.getAttribute('data-' + t); e.setAttribute('data-' + t, n); }), (t.target = function(e) { return e.target || e.srcElement; }), (t.createIframe = function(e) { var t; if ((e = e || {}).name) try { (t = document.createElement('<iframe name="' + e.name + '"></iframe>')).frameBorder = 0; } catch (n) { (t = document.createElement('iframe')).name = e.name; } else t = document.createElement('iframe'); e.visible || (t.style.display = 'none'); T(e.onload) && _(t, 'load', function n(r) { if (!t.src) return; e.multi || R(t, 'load', n); e.onload(r); }); (e.parent || document.body).appendChild(t); var n = e.src || 'about:blank'; return ( setTimeout(function() { t.src = n; }, 0), t ); }), (t.html2node = function(e) { var t = document.createElement('div'); t.innerHTML = e; var n = [], r = void 0, s = void 0; if (t.children) for (r = 0, s = t.children.length; r < s; r++) n.push(t.children[r]); else for (r = 0, s = t.childNodes.length; r < s; r++) { var i = t.childNodes[r]; 1 === i.nodeType && n.push(i); } return n.length > 1 ? t : n[0]; }), (t.scrollTop = function(e) { O(e) && (document.documentElement.scrollTop = document.body.scrollTop = e); return window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0; }), (t.forOwn = U), (t.mixin = j), (t.isJSON = F), (t.parseJSON = function e(t) { try { F(t) && (t = JSON.parse(t)), w(t) && U(t, function(n, r) { switch (v(r)) { case 'string': case 'object': t[n] = e(r); } }); } catch (e) { console.log('error:', e); } return t; }), (t.simpleClone = function(e) { var t = [], n = JSON.stringify(e, function(e, n) { if ('object' === (void 0 === n ? 'undefined' : (0, i.default)(n)) && null !== n) { if (-1 !== t.indexOf(n)) return; t.push(n); } return n; }); return JSON.parse(n); }), (t.merge = function() { for (var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, t = arguments.length, n = Array(t > 1 ? t - 1 : 0), r = 1; r < t; r++) n[r - 1] = arguments[r]; return ( n.forEach(function(t) { j(e, t); }), e ); }), (t.fillUndef = function(e, t) { return ( U(t, function(t, n) { P(e[t]) && (e[t] = n); }), e ); }), (t.checkWithDefault = function(e, t, n) { var r = e[t] || e[t.toLowerCase()]; x(r) && ((r = n), (e[t] = r)); return r; }), (t.fetch = function(e, t) { return ( U(e, function(n, r) { O(t[n]) && (e[n] = t[n]); }), e ); }), (t.string2object = function() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : '', t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : ',', n = {}; return ( e.split(t).forEach(function(e) { var t = e.split('='), r = t.shift(); r && (n[decodeURIComponent(r)] = decodeURIComponent(t.join('='))); }), n ); }), (t.object2string = D), (t.genUrlSep = function(e) { return e.indexOf('?') < 0 ? '?' : '&'; }), (t.object2query = function(e) { return D(e, '&', !0); }), (t.isFileInput = L), (t.getKeys = function(e, t) { var n = Object.keys(e); t && n.sort(function(t, n) { var r = L(e[t]), s = L(e[n]); return r === s ? 0 : r ? 1 : -1; }); return n; }); (t.o = {}), (t.emptyObj = {}), (t.f = function() {}), (t.emptyFunc = function() {}), (t.regBlank = /\s+/gi), (t.regWhiteSpace = /\s+/gi); function o() { return 'undefined' != typeof window ? window : void 0 !== e ? e : {}; } function a(e, t) { t = t || 2; for (var n = '' + e; n.length < t; ) n = '0' + n; return n; } function c(e) { return '' + e.getFullYear(); } function u(e) { return a(e.getMonth() + 1); } function l(e) { return a(e.getDate()); } function m(e) { return a(e.getHours()); } function d(e) { return a(e.getMinutes()); } function p(e) { return a(e.getSeconds()); } function f(e) { return a(e.getMilliseconds(), 3); } var g, h; t.format = ((g = /yyyy|MM|dd|hh|mm|ss|SSS/g), (h = { yyyy: c, MM: u, dd: l, hh: m, mm: d, ss: p, SSS: f }), function(e, t) { return ( (e = new Date(e)), isNaN(+e) ? 'invalid date' : (t = t || 'yyyy-MM-dd').replace(g, function(t) { return h[t](e); }) ); }); function y(e) { return Object.prototype.toString.call(e).slice(8, -1); } function v(e) { return y(e).toLowerCase(); } function b(e) { return 'string' === v(e); } function M(e) { return 'array' === v(e); } function T(e) { return 'function' === v(e); } function S(e) { return 'date' === v(e); } function k(e) { return null === e; } function C(e) { return null !== e; } function P(e) { return void 0 === e; } function I(e) { return void 0 !== e; } function O(e) { return I(e) && C(e); } function x(e) { return P(e) || k(e); } function w(e) { return O(e) && 'object' === v(e); } var A = (t.addEventListener = function(e, t, n) { e.addEventListener ? e.addEventListener(t, n, !1) : e.attachEvent && e.attachEvent('on' + t, n); }), _ = (t.on = A), E = (t.removeEventListener = function(e, t, n) { e.removeEventListener ? e.removeEventListener(t, n, !1) : e.detachEvent && e.detachEvent('on' + t, n); }), R = (t.off = E); function U() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : function() {}, n = arguments[2]; for (var r in e) e.hasOwnProperty(r) && t.call(n, r, e[r]); } function j(e, t) { U(t, function(t, n) { e[t] = n; }); } var N; t.uniqueID = ((N = 0), function() { return '' + N++; }); function F(e) { return b(e) && 0 === e.indexOf('{') && e.lastIndexOf('}') === e.length - 1; } function D(e, t, n) { if (!e) return ''; var r = []; return ( U(e, function(e, t) { T(t) || (S(t) ? (t = t.getTime()) : M(t) ? (t = t.join(',')) : w(t) && (t = JSON.stringify(t)), n && (t = encodeURIComponent(t)), r.push(encodeURIComponent(e) + '=' + t)); }), r.join(t || ',') ); } t.url2origin = (function() { var e = /^([\w]+?:\/\/.*?(?=\/|$))/i; return function(t) { return e.test(t || '') ? RegExp.$1.toLowerCase() : ''; }; })(); function L(e) { var t = o(); return (e.tagName && 'INPUT' === e.tagName.toUpperCase()) || (t.Blob && e instanceof t.Blob); } }.call(this, n(31))); }, function(e, t, n) { var r = n(16), s = n(64), i = n(44), o = Object.defineProperty; t.f = n(15) ? Object.defineProperty : function(e, t, n) { if ((r(e), (t = i(t, !0)), r(n), s)) try { return o(e, t, n); } catch (e) {} if ('get' in n || 'set' in n) throw TypeError('Accessors not supported!'); return 'value' in n && (e[t] = n.value), e; }; }, function(e, t) { var n = {}.hasOwnProperty; e.exports = function(e, t) { return n.call(e, t); }; }, function(e, t, n) { e.exports = !n(21)(function() { return ( 7 != Object.defineProperty({}, 'a', { get: function() { return 7; } }).a ); }); }, function(e, t, n) { var r = n(19); e.exports = function(e) { if (!r(e)) throw TypeError(e + ' is not an object!'); return e; }; }, function(e, t, n) { var r = n(8), s = n(7), i = n(37), o = n(20), a = n(14), c = function(e, t, n) { var u, l, m, d = e & c.F, p = e & c.G, f = e & c.S, g = e & c.P, h = e & c.B, y = e & c.W, v = p ? s : s[t] || (s[t] = {}), b = v.prototype, M = p ? r : f ? r[t] : (r[t] || {}).prototype; for (u in (p && (n = t), n)) ((l = !d && M && void 0 !== M[u]) && a(v, u)) || ((m = l ? M[u] : n[u]), (v[u] = p && 'function' != typeof M[u] ? n[u] : h && l ? i(m, r) : y && M[u] == m ? (function(e) { var t = function(t, n, r) { if (this instanceof e) { switch (arguments.length) { case 0: return new e(); case 1: return new e(t); case 2: return new e(t, n); } return new e(t, n, r); } return e.apply(this, arguments); }; return (t.prototype = e.prototype), t; })(m) : g && 'function' == typeof m ? i(Function.call, m) : m), g && (((v.virtual || (v.virtual = {}))[u] = m), e & c.R && b && !b[u] && o(b, u, m))); }; (c.F = 1), (c.G = 2), (c.S = 4), (c.P = 8), (c.B = 16), (c.W = 32), (c.U = 64), (c.R = 128), (e.exports = c); }, function(e, t, n) { var r = n(61), s = n(45); e.exports = function(e) { return r(s(e)); }; }, function(e, t) { e.exports = function(e) { return 'object' == typeof e ? null !== e : 'function' == typeof e; }; }, function(e, t, n) { var r = n(13), s = n(27); e.exports = n(15) ? function(e, t, n) { return r.f(e, t, s(1, n)); } : function(e, t, n) { return (e[t] = n), e; }; }, function(e, t) { e.exports = function(e) { try { return !!e(); } catch (e) { return !0; } }; }, function(e, t, n) { 'use strict'; (function(t) { var r, s = n(9), i = (r = s) && r.__esModule ? r : { default: r }; var o = (function() { var e = 'object' === (void 0 === t ? 'undefined' : (0, i.default)(t)) ? t : window, n = Math.pow(2, 53) - 1, r = /\bOpera/, s = Object.prototype, o = s.hasOwnProperty, a = s.toString; function c(e) { return (e = String(e)).charAt(0).toUpperCase() + e.slice(1); } function u(e) { return (e = f(e)), /^(?:webOS|i(?:OS|P))/.test(e) ? e : c(e); } function l(e, t) { for (var n in e) o.call(e, n) && t(e[n], n, e); } function m(e) { return null == e ? c(e) : a.call(e).slice(8, -1); } function d(e) { return String(e).replace(/([ -])(?!$)/g, '$1?'); } function p(e, t) { var r = null; return ( (function(e, t) { var r = -1, s = e ? e.length : 0; if ('number' == typeof s && s > -1 && s <= n) for (; ++r < s; ) t(e[r], r, e); else l(e, t); })(e, function(n, s) { r = t(r, n, s, e); }), r ); } function f(e) { return String(e).replace(/^ +| +$/g, ''); } return (function t(n) { var s = e, o = n && 'object' === (void 0 === n ? 'undefined' : (0, i.default)(n)) && 'String' != m(n); o && ((s = n), (n = null)); var c = s.navigator || {}, g = c.userAgent || ''; n || (n = g); var h, y, v, b, M, T = o ? !!c.likeChrome : /\bChrome\b/.test(n) && !/internal|\n/i.test(a.toString()), S = o ? 'Object' : 'ScriptBridgingProxyObject', k = o ? 'Object' : 'Environment', C = o && s.java ? 'JavaPackage' : m(s.java), P = o ? 'Object' : 'RuntimeObject', I = /\bJava/.test(C) && s.java, O = I && m(s.environment) == k, x = I ? 'a' : 'α', w = I ? 'b' : 'β', A = s.document || {}, _ = s.operamini || s.opera, E = r.test((E = o && _ ? _['[[Class]]'] : m(_))) ? E : (_ = null), R = n, U = [], j = null, N = n == g, F = N && _ && 'function' == typeof _.version && _.version(), D = p([{ label: 'EdgeHTML', pattern: 'Edge' }, 'Trident', { label: 'WebKit', pattern: 'AppleWebKit' }, 'iCab', 'Presto', 'NetFront', 'Tasman', 'KHTML', 'Gecko'], function(e, t) { return e || (RegExp('\\b' + (t.pattern || d(t)) + '\\b', 'i').exec(n) && (t.label || t)); }), L = (function(e) { return p(e, function(e, t) { return e || (RegExp('\\b' + (t.pattern || d(t)) + '\\b', 'i').exec(n) && (t.label || t)); }); })([ 'Adobe AIR', 'Arora', 'Avant Browser', 'Breach', 'Camino', 'Electron', 'Epiphany', 'Fennec', 'Flock', 'Galeon', 'GreenBrowser', 'iCab', 'Iceweasel', 'K-Meleon', 'Konqueror', 'Lunascape', 'Maxthon', { label: 'Microsoft Edge', pattern: 'Edge' }, 'Midori', 'Nook Browser', 'PaleMoon', 'PhantomJS', 'Raven', 'Rekonq', 'RockMelt', { label: 'Samsung Internet', pattern: 'SamsungBrowser' }, 'SeaMonkey', { label: 'Silk', pattern: '(?:Cloud9|Silk-Accelerated)' }, 'Sleipnir', 'SlimBrowser', { label: 'SRWare Iron', pattern: 'Iron' }, 'Sunrise', 'Swiftfox', 'Waterfox', 'WebPositive', 'Opera Mini', { label: 'Opera Mini', pattern: 'OPiOS' }, 'Opera', { label: 'Opera', pattern: 'OPR' }, 'Chrome', { label: 'Chrome Mobile', pattern: '(?:CriOS|CrMo)' }, { label: 'Firefox', pattern: '(?:Firefox|Minefield)' }, { label: 'Firefox for iOS', pattern: 'FxiOS' }, { label: 'IE', pattern: 'IEMobile' }, { label: 'IE', pattern: 'MSIE' }, 'Safari' ]), B = W([ { label: 'BlackBerry', pattern: 'BB10' }, 'BlackBerry', { label: 'Galaxy S', pattern: 'GT-I9000' }, { label: 'Galaxy S2', pattern: 'GT-I9100' }, { label: 'Galaxy S3', pattern: 'GT-I9300' }, { label: 'Galaxy S4', pattern: 'GT-I9500' }, { label: 'Galaxy S5', pattern: 'SM-G900' }, { label: 'Galaxy S6', pattern: 'SM-G920' }, { label: 'Galaxy S6 Edge', pattern: 'SM-G925' }, { label: 'Galaxy S7', pattern: 'SM-G930' }, { label: 'Galaxy S7 Edge', pattern: 'SM-G935' }, 'Google TV', 'Lumia', 'iPad', 'iPod', 'iPhone', 'Kindle', { label: 'Kindle Fire', pattern: '(?:Cloud9|Silk-Accelerated)' }, 'Nexus', 'Nook', 'PlayBook', 'PlayStation Vita', 'PlayStation', 'TouchPad', 'Transformer', { label: 'Wii U', pattern: 'WiiU' }, 'Wii', 'Xbox One', { label: 'Xbox 360', pattern: 'Xbox' }, 'Xoom' ]), q = (function(e) { return p(e, function(e, t, r) { return e || ((t[B] || t[/^[a-z]+(?: +[a-z]+\b)*/i.exec(B)] || RegExp('\\b' + d(r) + '(?:\\b|\\w*\\d)', 'i').exec(n)) && r); }); })({ Apple: { iPad: 1, iPhone: 1, iPod: 1 }, Archos: {}, Amazon: { Kindle: 1, 'Kindle Fire': 1 }, Asus: { Transformer: 1 }, 'Barnes & Noble': { Nook: 1 }, BlackBerry: { PlayBook: 1 }, Google: { 'Google TV': 1, Nexus: 1 }, HP: { TouchPad: 1 }, HTC: {}, LG: {}, Microsoft: { Xbox: 1, 'Xbox One': 1 }, Motorola: { Xoom: 1 }, Nintendo: { 'Wii U': 1, Wii: 1 }, Nokia: { Lumia: 1 }, Samsung: { 'Galaxy S': 1, 'Galaxy S2': 1, 'Galaxy S3': 1, 'Galaxy S4': 1 }, Sony: { PlayStation: 1, 'PlayStation Vita': 1 } }), H = (function(e) { return p(e, function(e, t) { var r = t.pattern || d(t); return ( !e && (e = RegExp('\\b' + r + '(?:/[\\d.]+|[ \\w.]*)', 'i').exec(n)) && (e = (function(e, t, n) { var r = { '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' }; return ( t && n && /^Win/i.test(e) && !/^Windows Phone /i.test(e) && (r = r[/[\d.]+$/.exec(e)]) && (e = 'Windows ' + r), (e = String(e)), t && n && (e = e.replace(RegExp(t, 'i'), n)), (e = u( e .replace(/ ce$/i, ' CE') .replace(/\bhpw/i, 'web') .replace(/\bMacintosh\b/, 'Mac OS') .replace(/_PowerPC\b/i, ' OS') .replace(/\b(OS X) [^ \d]+/i, '$1') .replace(/\bMac (OS X)\b/, '$1') .replace(/\/(\d)/, ' $1') .replace(/_/g, '.') .replace(/(?: BePC|[ .]*fc[ \d.]+)$/i, '') .replace(/\bx86\.64\b/gi, 'x86_64') .replace(/\b(Windows Phone) OS\b/, '$1') .replace(/\b(Chrome OS \w+) [\d.]+\b/, '$1') .split(' on ')[0] )) ); })(e, r, t.label || t)), e ); }); })(['Windows Phone', 'Android', 'CentOS', { label: 'Chrome OS', pattern: 'CrOS' }, 'Debian', 'Fedora', 'FreeBSD', 'Gentoo', 'Haiku', 'Kubuntu', 'Linux Mint', 'OpenBSD', 'Red Hat', 'SuSE', 'Ubuntu', 'Xubuntu', 'Cygwin', 'Symbian OS', 'hpwOS', 'webOS ', 'webOS', 'Tablet OS', 'Tizen', 'Linux', 'Mac OS X', 'Macintosh', 'Mac', 'Windows 98;', 'Windows ']); function W(e) { return p(e, function(e, t) { var r = t.pattern || d(t); return ( !e && (e = RegExp('\\b' + r + ' *\\d+[.\\w_]*', 'i').exec(n) || RegExp('\\b' + r + ' *\\w+-[\\w]*', 'i').exec(n) || RegExp('\\b' + r + '(?:; *(?:[a-z]+[_-])?[a-z]+\\d+|[^ ();-]*)', 'i').exec(n)) && ((e = String(t.label && !RegExp(r, 'i').test(t.label) ? t.label : e).split('/'))[1] && !/[\d.]+/.test(e[0]) && (e[0] += ' ' + e[1]), (t = t.label || t), (e = u( e[0] .replace(RegExp(r, 'i'), t) .replace(RegExp('; *(?:' + t + '[_-])?', 'i'), ' ') .replace(RegExp('(' + t + ')[-_.]?(\\w)', 'i'), '$1 $2') ))), e ); }); } if ( (D && (D = [D]), q && !B && (B = W([q])), (h = /\bGoogle TV\b/.exec(B)) && (B = h[0]), /\bSimulator\b/i.test(n) && (B = (B ? B + ' ' : '') + 'Simulator'), 'Opera Mini' == L && /\bOPiOS\b/.test(n) && U.push('running in Turbo/Uncompressed mode'), 'IE' == L && /\blike iPhone OS\b/.test(n) ? ((q = (h = t(n.replace(/like iPhone OS/, ''))).manufacturer), (B = h.product)) : /^iP/.test(B) ? (L || (L = 'Safari'), (H = 'iOS' + ((h = / OS ([\d_]+)/i.exec(n)) ? ' ' + h[1].replace(/_/g, '.') : ''))) : 'Konqueror' != L || /buntu/i.test(H) ? (q && 'Google' != q && ((/Chrome/.test(L) && !/\bMobile Safari\b/i.test(n)) || /\bVita\b/.test(B))) || (/\bAndroid\b/.test(H) && /^Chrome/.test(L) && /\bVersion\//i.test(n)) ? ((L = 'Android Browser'), (H = /\bAndroid\b/.test(H) ? H : 'Android')) : 'Silk' == L ? (/\bMobi/i.test(n) || ((H = 'Android'), U.unshift('desktop mode')), /Accelerated *= *true/i.test(n) && U.unshift('accelerated')) : 'PaleMoon' == L && (h = /\bFirefox\/([\d.]+)\b/.exec(n)) ? U.push('identifying as Firefox ' + h[1]) : 'Firefox' == L && (h = /\b(Mobile|Tablet|TV)\b/i.exec(n)) ? (H || (H = 'Firefox OS'), B || (B = h[1])) : !L || (h = !/\bMinefield\b/i.test(n) && /\b(?:Firefox|Safari)\b/.exec(L)) ? (L && !B && /[\/,]|^[^(]+?\)/.test(n.slice(n.indexOf(h + '/') + 8)) && (L = null), (h = B || q || H) && (B || q || /\b(?:Android|Symbian OS|Tablet OS|webOS)\b/.test(H)) && (L = /[a-z]+(?: Hat)?/i.exec(/\bAndroid\b/.test(H) ? H : h) + ' Browser')) : 'Electron' == L && (h = (/\bChrome\/([\d.]+)\b/.exec(n) || 0)[1]) && U.push('Chromium ' + h) : (H = 'Kubuntu'), F || (F = p(['(?:Cloud9|CriOS|CrMo|Edge|FxiOS|IEMobile|Iron|Opera ?Mini|OPiOS|OPR|Raven|SamsungBrowser|Silk(?!/[\\d.]+$))', 'Version', d(L), '(?:Firefox|Minefield|NetFront)'], function(e, t) { return e || (RegExp(t + '(?:-[\\d.]+/|(?: for [\\w-]+)?[ /-])([\\d.]+[^ ();/_-]*)', 'i').exec(n) || 0)[1] || null; })), (h = ('iCab' == D && parseFloat(F) > 3 ? 'WebKit' : /\bOpera\b/.test(L) && (/\bOPR\b/.test(n) ? 'Blink' : 'Presto')) || (/\b(?:Midori|Nook|Safari)\b/i.test(n) && !/^(?:Trident|EdgeHTML)$/.test(D) && 'WebKit') || (!D && /\bMSIE\b/i.test(n) && ('Mac OS' == H ? 'Tasman' : 'Trident')) || ('WebKit' == D && /\bPlayStation\b(?! Vita\b)/i.test(L) && 'NetFront')) && (D = [h]), 'IE' == L && (h = (/; *(?:XBLWP|ZuneWP)(\d+)/i.exec(n) || 0)[1]) ? ((L += ' Mobile'), (H = 'Windows Phone ' + (/\+$/.test(h) ? h : h + '.x')), U.unshift('desktop mode')) : /\bWPDesktop\b/i.test(n) ? ((L = 'IE Mobile'), (H = 'Windows Phone 8.x'), U.unshift('desktop mode'), F || (F = (/\brv:([\d.]+)/.exec(n) || 0)[1])) : 'IE' != L && 'Trident' == D && (h = /\brv:([\d.]+)/.exec(n)) && (L && U.push('identifying as ' + L + (F ? ' ' + F : '')), (L = 'IE'), (F = h[1])), N) ) { if (((b = 'global'), (M = null != (v = s) ? (0, i.default)(v[b]) : 'number'), /^(?:boolean|number|string|undefined)$/.test(M) || ('object' == M && !v[b]))) m((h = s.runtime)) == S ? ((L = 'Adobe AIR'), (H = h.flash.system.Capabilities.os)) : m((h = s.phantom)) == P ? ((L = 'PhantomJS'), (F = (h = h.version || null) && h.major + '.' + h.minor + '.' + h.patch)) : 'number' == typeof A.documentMode && (h = /\bTrident\/(\d+)/i.exec(n)) ? ((F = [F, A.documentMode]), (h = +h[1] + 4) != F[1] && (U.push('IE ' + F[1] + ' mode'), D && (D[1] = ''), (F[1] = h)), (F = 'IE' == L ? String(F[1].toFixed(1)) : F[0])) : 'number' == typeof A.documentMode && /^(?:Chrome|Firefox)\b/.test(L) && (U.push('masking as ' + L + ' ' + F), (L = 'IE'), (F = '11.0'), (D = ['Trident']), (H = 'Windows')); else if ((I && ((R = (h = I.lang.System).getProperty('os.arch')), (H = H || h.getProperty('os.name') + ' ' + h.getProperty('os.version'))), O)) { try { (F = s.require('ringo/engine').version.join('.')), (L = 'RingoJS'); } catch (e) { (h = s.system) && h.global.system == s.system && ((L = 'Narwhal'), H || (H = h[0].os || null)); } L || (L = 'Rhino'); } else 'object' === (0, i.default)(s.process) && !s.process.browser && (h = s.process) && ('object' === (0, i.default)(h.versions) && ('string' == typeof h.versions.electron ? (U.push('Node ' + h.versions.node), (L = 'Electron'), (F = h.versions.electron)) : 'string' == typeof h.versions.nw && (U.push('Chromium ' + F, 'Node ' + h.versions.node), (L = 'NW.js'), (F = h.versions.nw))), L || ((L = 'Node.js'), (R = h.arch), (H = h.platform), (F = (F = /[\d.]+/.exec(h.version)) ? F[0] : null))); H = H && u(H); } if ((F && (h = /(?:[ab]|dp|pre|[ab]\d+pre)(?:\d+\+?)?$/i.exec(F) || /(?:alpha|beta)(?: ?\d)?/i.exec(n + ';' + (N && c.appMinorVersion)) || (/\bMinefield\b/i.test(n) && 'a')) && ((j = /b/i.test(h) ? 'beta' : 'alpha'), (F = F.replace(RegExp(h + '\\+?$'), '') + ('beta' == j ? w : x) + (/\d+\+?/.exec(h) || ''))), 'Fennec' == L || ('Firefox' == L && /\b(?:Android|Firefox OS)\b/.test(H)))) L = 'Firefox Mobile'; else if ('Maxthon' == L && F) F = F.replace(/\.[\d.]+/, '.x'); else if (/\bXbox\b/i.test(B)) 'Xbox 360' == B && (H = null), 'Xbox 360' == B && /\bIEMobile\b/.test(n) && U.unshift('mobile mode'); else if ((!/^(?:Chrome|IE|Opera)$/.test(L) && (!L || B || /Browser|Mobi/.test(L))) || ('Windows CE' != H && !/Mobi/i.test(n))) if ('IE' == L && N) try { null === s.external && U.unshift('platform preview'); } catch (e) { U.unshift('embedded'); } else (/\bBlackBerry\b/.test(B) || /\bBB10\b/.test(n)) && (h = (RegExp(B.replace(/ +/g, ' *') + '/([.\\d]+)', 'i').exec(n) || 0)[1] || F) ? ((H = ((h = [h, /BB10/.test(n)])[1] ? ((B = null), (q = 'BlackBerry')) : 'Device Software') + ' ' + h[0]), (F = null)) : this != l && 'Wii' != B && ((N && _) || (/Opera/.test(L) && /\b(?:MSIE|Firefox)\b/i.test(n)) || ('Firefox' == L && /\bOS X (?:\d+\.){2,}/.test(H)) || ('IE' == L && ((H && !/^Win/.test(H) && F > 5.5) || (/\bWindows XP\b/.test(H) && F > 8) || (8 == F && !/\bTrident\b/.test(n))))) && !r.test((h = t.call(l, n.replace(r, '') + ';'))) && h.name && ((h = 'ing as '