"), t.push(""), this.insertDOM($("body"), t.join("")), this.tokenListner()) }, showToken: function(t, e) { var n = $(".re_box"),
i = "",
a = "";
n.length <= 0 && this.insertToken(), n = $(".re_box"), i = $(".resault_f").eq(0), a = $(".resault_f").eq(1), this.tokenTimer && clearTimeout(this.tokenTimer), i.hasClass("showFadeAnimate") && i.html("").hide().removeClass("showFadeAnimate"), a.hasClass("showAnimate") && (a.find("p").html(""), a.hide().removeClass("showAnimate")), "undefined" != typeof e && (e ? (i.show().html(t).addClass("showFadeAnimate"), this.tokenTimer = setTimeout(function() { i.html("").hide().removeClass("showFadeAnimate") }, 5e3)) : e || a.show().addClass("showAnimate").find("p").html(t)) }, getShowNum: function(t) { return t > 0 ? t > 1e4 ? parseInt(t / 1e4) + "\u4e07" : t : 0 }, checkApp: function(t) { return !!this.includeStr(this.UA, t) }, isWeiboApp: function() { return this.checkApp(this.uaIDs.weibo) }, isSinanews: function() { return this.checkApp(this.uaIDs.sinanews) }, isQQBrowser: function() { return this.checkApp(this.uaIDs.qqBrowser) }, isSafari: function() { var t = this,
e = t.isBaiduBrowser() || t.isQQBrowser() || t.isUCBrowser() || t.isSinanews() || t.isWeiboApp() || t.isWeixinApp(),
n = !1; for (var i in t.uaIDs.other) { var a = t.uaIDs.other[i];!n && (n = t.checkApp(a)) } return !t.isAndroid() && t.UA.match(t.uaIDs.safari) && !e && !n }, isUCBrowser: function() { return this.checkApp(this.uaIDs.ucBrowser) }, isBaiduBrowser: function() { return this.checkApp(this.uaIDs.baidu) }, isWeixinApp: function() { return this.checkApp(this.uaIDs.weixin) }, isQQApp: function() { return this.checkApp(this.uaIDs.qq) && this.checkApp("nettype") }, isAndroid: function() { return this.getPlatform() == this.systems.android }, isIOS: function() { return this.getPlatform() == this.systems.ios }, getSystem: function() { return this.systems }, getPlatform: function() { var t = this.includeStr(this.UA, this.uaIDs.iphone),
e = this.includeStr(this.UA, this.uaIDs.ipod); return t || e ? this.systems.ios : this.systems.android }, getBrowserVersion: function() { var t = this.isUCBrowser(),
e = this.isQQBrowser(),
n = this.UA,
i = 0;
function a(t) { var e = t.split("."); return parseFloat(e[0] + "." + parseInt(e[1])) } return t ? i = a(n.split(this.uaIDs.ucBrowser)[1]) : e && (i = a(n.split(this.uaIDs.qqBrowser)[1])), i }, getAllPlatformsInfo: function() { return { isWeiboApp: this.isWeiboApp(), isSinanews: this.isSinanews(), isBaiduBrowser: this.isBaiduBrowser(), isWeixinApp: this.isWeixinApp(), isQQApp: this.isQQApp() && !this.isWeixinApp(), isQQBrowser: this.isQQBrowser() && !this.isQQApp() && !this.isWeixinApp(), isUCBrowser: this.isUCBrowser(), isSafari: this.isSafari(), system: this.getPlatform(), version: this.getBrowserVersion() } }, getScreenInfo: function() { var t = window.innerWidth,
e = window.innerHeight,
n = document.documentElement,
i = document.body; return { width: t || Math.min(n.clientHeight, i.clientHeight) || 320, height: e || Math.min(n.clientHeight, i.clientHeight) || 480, scrollTop: i.scrollTop || n.scrollTop || 0, scrollLeft: i.scrollLeft || n.scrollLeft || 0 } }, setCookie: function(t, e, n, i, a, o) { var r = []; if (r.push(t + "=" + escape(e)), n) { var s = new Date;
s.setTime(Date.now() + n), r.push("expires=" + s.toGMTString()) }
i && r.push("path=" + i), a && r.push("domain=" + a), o && r.push(o), document.cookie = r.join(";") }, getCookie: function(t) { if (!t) return console.log("missing key, get cookie abort!"), "";
t = t.replace(/([\.\[\]\$])/g, "\\$1"); var e = new RegExp(t + "=([^;]*)?;", "i"); return (document.cookie + ";").match(e) ? RegExp.$1 : "" } }, e.a = i }, function(t, e, n) { "use strict";
function i(t) { return (i = "function" === typeof Symbol && "symbol" === typeof Symbol.iterator ? function(t) { return typeof t } : function(t) { return t && "function" === typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t })(t) }
function a(t) { return (a = "function" === typeof Symbol && "symbol" === i(Symbol.iterator) ? function(t) { return i(t) } : function(t) { return t && "function" === typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : i(t) })(t) }
function o(t, e) { return !e || "object" !== a(e) && "function" !== typeof e ? function(t) { if (void 0 === t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return t }(t) : e }
n.d(e, "a", function() { return o }) }, function(t, e, n) { "use strict";
function i(t, e) { return (i = Object.setPrototypeOf || function(t, e) { return t.__proto__ = e, t })(t, e) }
function a(t, e) { if ("function" !== typeof e && null !== e) throw new TypeError("Super expression must either be null or a function");
t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), e && i(t, e) }
n.d(e, "a", function() { return a }) }, function(t, e, n) { var i = n(7),
a = n(45).f,
o = n(15),
r = n(34),
s = n(48),
c = n(69),
l = n(113);
t.exports = function(t, e) { var n, d, u, p, f, h = t.target,
m = t.global,
g = t.stat; if (n = m ? i : g ? i[h] || s(h, {}) : (i[h] || {}).prototype)
for (d in e) { if (p = e[d], u = t.noTargetGet ? (f = a(n, d)) && f.value : n[d], !l(m ? d : h + (g ? "." : "#") + d, t.forced) && void 0 !== u) { if (typeof p === typeof u) continue;
c(p, u) }(t.sham || u && u.sham) && o(p, "sham", !0), r(n, d, p, t) } } }, function(t, e) { var n;
n = function() { return this }(); try { n = n || new Function("return this")() } catch (i) { "object" === typeof window && (n = window) }
t.exports = n }, function(t, e) { t.exports = function(t, e) { return { enumerable: !(1 & t), configurable: !(2 & t), writable: !(4 & t), value: e } } }, function(t, e, n) { var i = n(65),
a = n(47);
t.exports = function(t) { return i(a(t)) } }, function(t, e, n) { var i = n(7),
a = n(48),
o = n(35),
r = i["__core-js_shared__"] || a("__core-js_shared__", {});
(t.exports = function(t, e) { return r[t] || (r[t] = void 0 !== e ? e : {}) })("versions", []).push({ version: "3.1.3", mode: o ? "pure" : "global", copyright: "\xa9 2019 Denis Pushkarev (zloirock.ru)" }) }, function(t, e, n) { var i = n(47);
t.exports = function(t) { return Object(i(t)) } }, function(t, e, n) { var i = n(13).f,
a = n(10),
o = n(8)("toStringTag");
t.exports = function(t, e, n) { t && !a(t = n ? t : t.prototype, o) && i(t, o, { configurable: !0, value: e }) } }, function(t, e, n) { var i = n(4);
t.exports = function(t) { "use strict";
t = t || {}; var e = "",
n = i.$escape,
a = t.data,
o = t.option,
r = t.total,
s = i.$each,
c = (t.$val, t.i, t.commentConfig); return e += '\n\n\t\n\t\n\n" } }, function(t, e, n) { var i = n(4);
t.exports = function(t) { "use strict";
t = t || {}; var e = "",
n = i.$escape,
a = t.title,
o = t.type; return e += '\n\t', i.commentConfig.showTitle && (e += '\n\t
', e += n(a), e += "
\n\t"), e += '\n\t\n\t', "article" == i.commentConfig.page && (e += '\n\t\t\u5168\u90e8\u8bc4\u8bba\n\t'), e += "\n\n" } }, function(t, e, n) { "use strict"; var i = n(1),
a = n(2),
o = new(function() {
function t() { Object(i.a)(this, t) } return Object(a.a)(t, [{ key: "UA", get: function() { return this._UA || (this._UA = navigator.userAgent) }, set: function(t) { return null } }, { key: "platformInfo", get: function() { var t = { client: { weibo: "weibo", weixin: "micromessenger", qq: "mqqbrowser", uc: "uc", baidu: "baidu" }, system: { ios: "ios", android: "android" } },
e = this.UA,
n = [],
i = [],
a = {}; return Object.keys(t).forEach(function(e) { n = n.concat(Object.keys(t[e]).map(function(n) { return t[e][n] })) }), (i = e.toLowerCase().match(new RegExp("(" + n.join("|") + ")+", "ig"))) && i.length > 0 && Object.keys(t).forEach(function(e) { var n = t[e],
o = "other";
Object.keys(n).some(function(t) { return -1 !== i.indexOf(n[t]) && (o = t, !0) }), a[e] = o }), "android" !== a.system && (a.system = "ios"), this._platformInfo = a, this._platformInfo }, set: function(t) { return null } }]), t }());
e.a = o }, function(t, e, n) { t.exports = n.p + "static/img/defaultImg.66414521.png" }, function(t, e, n) { var i = n(12);
t.exports = function(t, e) { if (!i(t)) return t; var n, a; if (e && "function" == typeof(n = t.toString) && !i(a = n.call(t))) return a; if ("function" == typeof(n = t.valueOf) && !i(a = n.call(t))) return a; if (!e && "function" == typeof(n = t.toString) && !i(a = n.call(t))) return a; throw TypeError("Can't convert object to primitive value") } }, function(t, e, n) { var i = n(7),
a = n(26),
o = n(15),
r = n(10),
s = n(48),
c = n(68),
l = n(49),
d = l.get,
u = l.enforce,
p = String(c).split("toString");
a("inspectSource", function(t) { return c.call(t) }), (t.exports = function(t, e, n, a) { var c = !!a && !!a.unsafe,
l = !!a && !!a.enumerable,
d = !!a && !!a.noTargetGet; "function" == typeof n && ("string" != typeof e || r(n, "name") || o(n, "name", e), u(n).source = p.join("string" == typeof e ? e : "")), t !== i ? (c ? !d && t[e] && (l = !0) : delete t[e], l ? t[e] = n : o(t, e, n)) : l ? t[e] = n : s(e, n) })(Function.prototype, "toString", function() { return "function" == typeof this && d(this).source || c.call(this) }) }, function(t, e) { t.exports = !1 }, function(t, e, n) { var i = n(26),
a = n(50),
o = i("keys");
t.exports = function(t) { return o[t] || (o[t] = a(t)) } }, function(t, e) { t.exports = {} }, function(t, e, n) { var i = n(52),
a = Math.min;
t.exports = function(t) { return t > 0 ? a(i(t), 9007199254740991) : 0 } }, function(t, e) { t.exports = {} }, function(t, e, n) { var i = n(4);
t.exports = function(t) { "use strict";
t = t || {}; var e = "",
n = i.$each,
a = t.replylist,
o = (t.$value, t.$index, i.$escape),
r = t.option; return n(a, function(t, n) { e += '\n\t\n\t \n\t \n\t\n" }), e += "\n" } }, function(t, e, n) { "use strict";
e.a = function() { var t = location.href.toLocaleLowerCase().match(/\?(.*)$/),
e = null; return t && (e = t[1].match(/\&?wm=([0-9_]+)/)), e && e[1] } }, function(t, e, n) { "use strict";
e.a = function() { var t = this;
this.openLogin = function(t, e) { "undefined" != typeof t && "undefined" != typeof e ? this.myLogin(!1, t, e) : "undefined" != typeof t ? this.myLogin(!1, t) : this.myLogin(!1) }, this.myLogin = function(t, e, n, i) { userInfo || this.login(t, e, n, i) }, this.login = function(e, n, i, a) { var o = arguments.length; if (window.SINA_OUTLOGIN_LAYER && !e) { var r = window.SINA_OUTLOGIN_LAYER;
r.set("sso", { entry: "wapsso" }).init(), r.show(), r.register("login_success", function(e) { switch (t.updateUserInfo(e), o) {
case 2:
n(); break;
case 3:
n(i); break;
case 4:
n(i, a); break;
default:
window.location.href = window.location.href } }), r.register("layer_hide", function() { n = null }) } return !1 }, this.updateUserInfo = function(t) { if ("undefined" != typeof t && "undefined" != typeof t.nick) { window.userInfo = {}, window.userInfo.uname = t.nick, window.userInfo.userface = t.portrait, window.userInfo.uid = t.uid, window.userInfo.islogin = 1; for (var e = ["#loginBox", "#loginImg", ".userImage"], n = $("#footer_entry"), i = 0; i < e.length; i++) { var a = $(e[i]); if (a.length > 0 && a.find("img").length > 0) a.find("img").attr("src", t.portrait);
else if (a.length > 0 && a.find("img").length <= 0) { var o = '';
a.html(o) } } if (n.length > 0) { var r = "http://passport.sina.cn/sso/logout?entry=wapsso&vt=4&r=" + encodeURIComponent(window.location.href);
n.html("\u9000\u51fa").attr("href", r) } } return !1 } } }, function(t, e, n) { var i, a;! function(o) { if (void 0 === (a = "function" === typeof(i = o) ? i.call(e, n, e, t) : i) || (t.exports = a), !0, t.exports = o(), !!0) { var r = window.Cookies,
s = window.Cookies = o();
s.noConflict = function() { return window.Cookies = r, s } } }(function() {
function t() { for (var t = 0, e = {}; t < arguments.length; t++) { var n = arguments[t]; for (var i in n) e[i] = n[i] } return e } return function e(n) {
function i(e, a, o) { var r; if ("undefined" !== typeof document) { if (arguments.length > 1) { if ("number" === typeof(o = t({ path: "/" }, i.defaults, o)).expires) { var s = new Date;
s.setMilliseconds(s.getMilliseconds() + 864e5 * o.expires), o.expires = s }
o.expires = o.expires ? o.expires.toUTCString() : ""; try { r = JSON.stringify(a), /^[\{\[]/.test(r) && (a = r) } catch (g) {}
a = n.write ? n.write(a, e) : encodeURIComponent(String(a)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent), e = (e = (e = encodeURIComponent(String(e))).replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent)).replace(/[\(\)]/g, escape); var c = ""; for (var l in o) o[l] && (c += "; " + l, !0 !== o[l] && (c += "=" + o[l])); return document.cookie = e + "=" + a + c }
e || (r = {}); for (var d = document.cookie ? document.cookie.split("; ") : [], u = /(%[0-9A-Z]{2})+/g, p = 0; p < d.length; p++) { var f = d[p].split("="),
h = f.slice(1).join("=");
this.json || '"' !== h.charAt(0) || (h = h.slice(1, -1)); try { var m = f[0].replace(u, decodeURIComponent); if (h = n.read ? n.read(h, m) : n(h, m) || h.replace(u, decodeURIComponent), this.json) try { h = JSON.parse(h) } catch (g) {}
if (e === m) { r = h; break }
e || (r[m] = h) } catch (g) {} } return r } } return i.set = i, i.get = function(t) { return i.call(i, t) }, i.getJSON = function() { return i.apply({ json: !0 }, [].slice.call(arguments)) }, i.defaults = {}, i.remove = function(e, n) { i(e, "", t(n, { expires: -1 })) }, i.withConverter = e, i }(function() {}) }) }, function(t, e, n) { "use strict";
(function(e) { var i = n(199),
a = n(200),
o = /^[A-Za-z][A-Za-z0-9+-.]*:\/\//,
r = /^([a-z][a-z0-9.+-]*:)?(\/\/)?([\S\s]*)/i,
s = new RegExp("^[\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF]+");
function c(t) { return (t || "").toString().replace(s, "") } var l = [
["#", "hash"],
["?", "query"],
function(t) { return t.replace("\\", "/") },
["/", "pathname"],
["@", "auth", 1],
[NaN, "host", void 0, 1, 1],
[/:(\d+)$/, "port", void 0, 1],
[NaN, "hostname", void 0, 1, 1]
],
d = { hash: 1, query: 1 };
function u(t) { var n, i = ("undefined" !== typeof window ? window : "undefined" !== typeof e ? e : "undefined" !== typeof self ? self : {}).location || {},
a = {},
r = typeof(t = t || i); if ("blob:" === t.protocol) a = new f(unescape(t.pathname), {});
else if ("string" === r)
for (n in a = new f(t, {}), d) delete a[n];
else if ("object" === r) { for (n in t) n in d || (a[n] = t[n]);
void 0 === a.slashes && (a.slashes = o.test(t.href)) } return a }
function p(t) { t = c(t); var e = r.exec(t); return { protocol: e[1] ? e[1].toLowerCase() : "", slashes: !!e[2], rest: e[3] } }
function f(t, e, n) { if (t = c(t), !(this instanceof f)) return new f(t, e, n); var o, r, s, d, h, m, g = l.slice(),
v = typeof e,
_ = this,
w = 0; for ("object" !== v && "string" !== v && (n = e, e = null), n && "function" !== typeof n && (n = a.parse), e = u(e), o = !(r = p(t || "")).protocol && !r.slashes, _.slashes = r.slashes || o && e.slashes, _.protocol = r.protocol || e.protocol || "", t = r.rest, r.slashes || (g[3] = [/(.*)/, "pathname"]); w < g.length; w++) "function" !== typeof(d = g[w]) ? (s = d[0], m = d[1], s !== s ? _[m] = t : "string" === typeof s ? ~(h = t.indexOf(s)) && ("number" === typeof d[2] ? (_[m] = t.slice(0, h), t = t.slice(h + d[2])) : (_[m] = t.slice(h), t = t.slice(0, h))) : (h = s.exec(t)) && (_[m] = h[1], t = t.slice(0, h.index)), _[m] = _[m] || o && d[3] && e[m] || "", d[4] && (_[m] = _[m].toLowerCase())) : t = d(t);
n && (_.query = n(_.query)), o && e.slashes && "/" !== _.pathname.charAt(0) && ("" !== _.pathname || "" !== e.pathname) && (_.pathname = function(t, e) { if ("" === t) return e; for (var n = (e || "/").split("/").slice(0, -1).concat(t.split("/")), i = n.length, a = n[i - 1], o = !1, r = 0; i--;) "." === n[i] ? n.splice(i, 1) : ".." === n[i] ? (n.splice(i, 1), r++) : r && (0 === i && (o = !0), n.splice(i, 1), r--); return o && n.unshift(""), "." !== a && ".." !== a || n.push(""), n.join("/") }(_.pathname, e.pathname)), i(_.port, _.protocol) || (_.host = _.hostname, _.port = ""), _.username = _.password = "", _.auth && (d = _.auth.split(":"), _.username = d[0] || "", _.password = d[1] || ""), _.origin = _.protocol && _.host && "file:" !== _.protocol ? _.protocol + "//" + _.host : "null", _.href = _.toString() }
f.prototype = { set: function(t, e, n) { var o = this; switch (t) {
case "query":
"string" === typeof e && e.length && (e = (n || a.parse)(e)), o[t] = e; break;
case "port":
o[t] = e, i(e, o.protocol) ? e && (o.host = o.hostname + ":" + e) : (o.host = o.hostname, o[t] = ""); break;
case "hostname":
o[t] = e, o.port && (e += ":" + o.port), o.host = e; break;
case "host":
o[t] = e, /:\d+$/.test(e) ? (e = e.split(":"), o.port = e.pop(), o.hostname = e.join(":")) : (o.hostname = e, o.port = ""); break;
case "protocol":
o.protocol = e.toLowerCase(), o.slashes = !n; break;
case "pathname":
case "hash":
if (e) { var r = "pathname" === t ? "/" : "#";
o[t] = e.charAt(0) !== r ? r + e : e } else o[t] = e; break;
default:
o[t] = e } for (var s = 0; s < l.length; s++) { var c = l[s];
c[4] && (o[c[1]] = o[c[1]].toLowerCase()) } return o.origin = o.protocol && o.host && "file:" !== o.protocol ? o.protocol + "//" + o.host : "null", o.href = o.toString(), o }, toString: function(t) { t && "function" === typeof t || (t = a.stringify); var e, n = this,
i = n.protocol;
i && ":" !== i.charAt(i.length - 1) && (i += ":"); var o = i + (n.slashes ? "//" : ""); return n.username && (o += n.username, n.password && (o += ":" + n.password), o += "@"), o += n.host + n.pathname, (e = "object" === typeof n.query ? t(n.query) : n.query) && (o += "?" !== e.charAt(0) ? "?" + e : e), n.hash && (o += n.hash), o } }, f.extractProtocol = p, f.location = u, f.trimLeft = c, f.qs = a, t.exports = f }).call(this, n(23)) }, function(t, e, n) { var i = n(14),
a = n(64),
o = n(24),
r = n(25),
s = n(33),
c = n(10),
l = n(66),
d = Object.getOwnPropertyDescriptor;
e.f = i ? d : function(t, e) { if (t = r(t), e = s(e, !0), l) try { return d(t, e) } catch (n) {}
if (c(t, e)) return o(!a.f.call(t, e), t[e]) } }, function(t, e) { var n = {}.toString;
t.exports = function(t) { return n.call(t).slice(8, -1) } }, function(t, e) { t.exports = function(t) { if (void 0 == t) throw TypeError("Can't call method on " + t); return t } }, function(t, e, n) { var i = n(7),
a = n(15);
t.exports = function(t, e) { try { a(i, t, e) } catch (n) { i[t] = e } return e } }, function(t, e, n) { var i, a, o, r = n(109),
s = n(7),
c = n(12),
l = n(15),
d = n(10),
u = n(36),
p = n(37),
f = s.WeakMap; if (r) { var h = new f,
m = h.get,
g = h.has,
v = h.set;
i = function(t, e) { return v.call(h, t, e), e }, a = function(t) { return m.call(h, t) || {} }, o = function(t) { return g.call(h, t) } } else { var _ = u("state");
p[_] = !0, i = function(t, e) { return l(t, _, e), e }, a = function(t) { return d(t, _) ? t[_] : {} }, o = function(t) { return d(t, _) } }
t.exports = { set: i, get: a, has: o, enforce: function(t) { return o(t) ? a(t) : i(t, {}) }, getterFor: function(t) { return function(e) { var n; if (!c(e) || (n = a(e)).type !== t) throw TypeError("Incompatible receiver, " + t + " required"); return n } } } }, function(t, e) { var n = 0,
i = Math.random();
t.exports = function(t) { return "Symbol(" + String(void 0 === t ? "" : t) + ")_" + (++n + i).toString(36) } }, function(t, e, n) { var i = n(72),
a = n(53).concat("length", "prototype");
e.f = Object.getOwnPropertyNames || function(t) { return i(t, a) } }, function(t, e) { var n = Math.ceil,
i = Math.floor;
t.exports = function(t) { return isNaN(t = +t) ? 0 : (t > 0 ? i : n)(t) } }, function(t, e) { t.exports = ["constructor", "hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable", "toLocaleString", "toString", "valueOf"] }, function(t, e, n) { var i = n(46);
t.exports = Array.isArray || function(t) { return "Array" == i(t) } }, function(t, e, n) { "use strict"; var i = Object.getOwnPropertySymbols,
a = Object.prototype.hasOwnProperty,
o = Object.prototype.propertyIsEnumerable;
t.exports = function() { try { if (!Object.assign) return !1; var t = new String("abc"); if (t[5] = "de", "5" === Object.getOwnPropertyNames(t)[0]) return !1; for (var e = {}, n = 0; n < 10; n++) e["_" + String.fromCharCode(n)] = n; if ("0123456789" !== Object.getOwnPropertyNames(e).map(function(t) { return e[t] }).join("")) return !1; var i = {}; return "abcdefghijklmnopqrst".split("").forEach(function(t) { i[t] = t }), "abcdefghijklmnopqrst" === Object.keys(Object.assign({}, i)).join("") } catch (a) { return !1 } }() ? Object.assign : function(t, e) { for (var n, r, s = function(t) { if (null === t || void 0 === t) throw new TypeError("Object.assign cannot be called with null or undefined"); return Object(t) }(t), c = 1; c < arguments.length; c++) { for (var l in n = Object(arguments[c])) a.call(n, l) && (s[l] = n[l]); if (i) { r = i(n); for (var d = 0; d < r.length; d++) o.call(n, r[d]) && (s[r[d]] = n[r[d]]) } } return s } }, function(t, e) { var n, i, a = t.exports = {};
function o() { throw new Error("setTimeout has not been defined") }
function r() { throw new Error("clearTimeout has not been defined") }
function s(t) { if (n === setTimeout) return setTimeout(t, 0); if ((n === o || !n) && setTimeout) return n = setTimeout, setTimeout(t, 0); try { return n(t, 0) } catch (e) { try { return n.call(null, t, 0) } catch (e) { return n.call(this, t, 0) } } }! function() { try { n = "function" === typeof setTimeout ? setTimeout : o } catch (t) { n = o } try { i = "function" === typeof clearTimeout ? clearTimeout : r } catch (t) { i = r } }(); var c, l = [],
d = !1,
u = -1;
function p() { d && c && (d = !1, c.length ? l = c.concat(l) : u = -1, l.length && f()) }
function f() { if (!d) { var t = s(p);
d = !0; for (var e = l.length; e;) { for (c = l, l = []; ++u < e;) c && c[u].run();
u = -1, e = l.length }
c = null, d = !1,
function(t) { if (i === clearTimeout) return clearTimeout(t); if ((i === r || !i) && clearTimeout) return i = clearTimeout, clearTimeout(t); try { i(t) } catch (e) { try { return i.call(null, t) } catch (e) { return i.call(this, t) } } }(t) } }
function h(t, e) { this.fun = t, this.array = e }
function m() {}
a.nextTick = function(t) { var e = new Array(arguments.length - 1); if (arguments.length > 1)
for (var n = 1; n < arguments.length; n++) e[n - 1] = arguments[n];
l.push(new h(t, e)), 1 !== l.length || d || s(f) }, h.prototype.run = function() { this.fun.apply(null, this.array) }, a.title = "browser", a.browser = !0, a.env = {}, a.argv = [], a.version = "", a.versions = {}, a.on = m, a.addListener = m, a.once = m, a.off = m, a.removeListener = m, a.removeAllListeners = m, a.emit = m, a.prependListener = m, a.prependOnceListener = m, a.listeners = function(t) { return [] }, a.binding = function(t) { throw new Error("process.binding is not supported") }, a.cwd = function() { return "/" }, a.chdir = function(t) { throw new Error("process.chdir is not supported") }, a.umask = function() { return 0 } }, function(t, e, n) {! function() { "use strict"; var t, e = function e(n, a) { if (!(this instanceof e)) return new e(n, a); var o = { direction: "horizontal", touchEventsTarget: "container", initialSlide: 0, speed: 300, autoplay: !1, autoplayDisableOnInteraction: !0, autoplayStopOnLast: !1, freeMode: !1, freeModeMomentum: !0, freeModeMomentumRatio: 1, freeModeMomentumBounce: !0, freeModeMomentumBounceRatio: 1, freeModeMomentumVelocityRatio: 1, freeModeSticky: !1, freeModeMinimumVelocity: .02, setWrapperSize: !1, virtualTranslate: !1, observeAutoPlay: !1, effect: "slide", spaceBetween: 0, slidesPerView: 1, slidesPerColumn: 1, slidesPerGroup: 1, slidesOffsetBefore: 0, slidesOffsetAfter: 0, roundLengths: !1, touchRatio: 1, touchAngle: 45, simulateTouch: !0, shortSwipes: !0, longSwipes: !0, longSwipesRatio: .5, longSwipesMs: 300, followFinger: !0, threshold: 0, touchMoveStopPropagation: !0, uniqueNavElements: !0, pagination: null, paginationElement: "span", paginationBulletRender: null, paginationProgressRender: null, paginationFractionRender: null, paginationCustomRender: null, paginationType: "bullets", resistance: !0, resistanceRatio: .85, nextButton: null, prevButton: null, preventClicks: !0, preventClicksPropagation: !0, lazyLoading: !1, lazyLoadingInPrevNext: !1, lazyLoadingInPrevNextAmount: 1, lazyLoadingOnTransitionStart: !1, loop: !1, loopAdditionalSlides: 0, loopedSlides: null, controlInverse: !1, controlBy: "slide", allowSwipeToPrev: !0, allowSwipeToNext: !0, swipeHandler: null, noSwiping: !0, noSwipingClass: "swiper-no-swiping", passiveListeners: !0, containerModifierClass: "swiper-container-", slideClass: "swiper-slide", slideActiveClass: "swiper-slide-active", slideDuplicateActiveClass: "swiper-slide-duplicate-active", slideVisibleClass: "swiper-slide-visible", slideDuplicateClass: "swiper-slide-duplicate", slideNextClass: "swiper-slide-next", slideDuplicateNextClass: "swiper-slide-duplicate-next", slidePrevClass: "swiper-slide-prev", slideDuplicatePrevClass: "swiper-slide-duplicate-prev", wrapperClass: "swiper-wrapper", bulletClass: "swiper-pagination-bullet", bulletActiveClass: "swiper-pagination-bullet-active", buttonDisabledClass: "swiper-button-disabled", paginationCurrentClass: "swiper-pagination-current", paginationTotalClass: "swiper-pagination-total", paginationHiddenClass: "swiper-pagination-hidden", paginationProgressbarClass: "swiper-pagination-progressbar", paginationModifierClass: "swiper-pagination-", lazyLoadingClass: "swiper-lazy", lazyStatusLoadingClass: "swiper-lazy-loading", lazyStatusLoadedClass: "swiper-lazy-loaded", lazyPreloaderClass: "swiper-lazy-preloader", notificationClass: "swiper-notification", preloaderClass: "preloader", zoomContainerClass: "swiper-zoom-container", observer: !1, prevSlideMessage: "Previous slide", nextSlideMessage: "Next slide", firstSlideMessage: "This is the first slide", lastSlideMessage: "This is the last slide", paginationBulletMessage: "Go to slide {{index}}", runCallbacksOnInit: !0 };
a = a || {}; var r = {}; for (var s in a)
if ("object" !== typeof a[s] || null === a[s] || (a[s].nodeType || a[s] === window || a[s] === document || "undefined" !== typeof i && a[s] instanceof i || "undefined" !== typeof jQuery && a[s] instanceof jQuery)) r[s] = a[s];
else
for (var c in r[s] = {}, a[s]) r[s][c] = a[s][c];
for (var l in o)
if ("undefined" === typeof a[l]) a[l] = o[l];
else if ("object" === typeof a[l])
for (var d in o[l]) "undefined" === typeof a[l][d] && (a[l][d] = o[l][d]); var u = this; if (u.params = a, u.originalParams = r, u.classNames = [], "undefined" !== typeof t && "undefined" !== typeof i && (t = i), ("undefined" !== typeof t || (t = "undefined" === typeof i ? window.Dom7 || window.Zepto || window.jQuery : i)) && (u.$ = t, u.container = t(n), 0 !== u.container.length)) { if (u.container.length > 1) { var p = []; return u.container.each(function() { p.push(new e(this, a)) }), p }
u.container[0].swiper = u, u.container.data("swiper", u), u.classNames.push(u.params.containerModifierClass + u.params.direction), u.params.freeMode && u.classNames.push(u.params.containerModifierClass + "free-mode"), u.support.flexbox || (u.classNames.push(u.params.containerModifierClass + "no-flexbox"), u.params.slidesPerColumn = 1), u.wrapper = u.container.children("." + u.params.wrapperClass), u.params.pagination && (u.paginationContainer = t(u.params.pagination), u.params.uniqueNavElements && "string" === typeof u.params.pagination && u.paginationContainer.length > 1 && 1 === u.container.find(u.params.pagination).length && (u.paginationContainer = u.container.find(u.params.pagination)), u.paginationContainer.addClass(u.params.paginationModifierClass + u.params.paginationType)), u.isHorizontal = function() { return "horizontal" === u.params.direction }, u.rtl = u.isHorizontal() && ("rtl" === u.container[0].dir.toLowerCase() || "rtl" === u.container.css("direction")), u.rtl && u.classNames.push(u.params.containerModifierClass + "rtl"), u.rtl && (u.wrongRTL = "-webkit-box" === u.wrapper.css("display")), u.device.android && u.classNames.push(u.params.containerModifierClass + "android"), u.container.addClass(u.classNames.join(" ")), u.translate = 0, u.progress = 0, u.velocity = 0, u.imagesToLoad = [], u.imagesLoaded = 0, u.loadImage = function(t, e, n, i, a, o) { var r;
function s() { o && o() }
t.complete && a ? s() : e ? ((r = new window.Image).onload = s, r.onerror = s, i && (r.sizes = i), n && (r.srcset = n), e && (r.src = e)) : s() }, u.autoplayTimeoutId = void 0, u.autoplaying = !1, u.autoplayPaused = !1, u.startAutoplay = function() { return "undefined" === typeof u.autoplayTimeoutId && (!!u.params.autoplay && (!u.autoplaying && (u.autoplaying = !0, u.emit("onAutoplayStart", u), void I()))) }, u.stopAutoplay = function(t) { u.autoplayTimeoutId && (u.autoplayTimeoutId && clearTimeout(u.autoplayTimeoutId), u.autoplaying = !1, u.autoplayTimeoutId = void 0, u.emit("onAutoplayStop", u)) }, u.pauseAutoplay = function(t) { u.autoplayPaused || (u.autoplayTimeoutId && clearTimeout(u.autoplayTimeoutId), u.autoplayPaused = !0, 0 === t ? (u.autoplayPaused = !1, I()) : u.wrapper.transitionEnd(function() { u && (u.autoplayPaused = !1, u.autoplaying ? I() : u.stopAutoplay()) })) }, u.minTranslate = function() { return -u.snapGrid[0] }, u.maxTranslate = function() { return -u.snapGrid[u.snapGrid.length - 1] }, u.updateContainerSize = function() { var t, e;
t = "undefined" !== typeof u.params.width ? u.params.width : u.container[0].clientWidth, e = "undefined" !== typeof u.params.height ? u.params.height : u.container[0].clientHeight, 0 === t && u.isHorizontal() || 0 === e && !u.isHorizontal() || (t = t - parseInt(u.container.css("padding-left"), 10) - parseInt(u.container.css("padding-right"), 10), e = e - parseInt(u.container.css("padding-top"), 10) - parseInt(u.container.css("padding-bottom"), 10), u.width = t, u.height = e, u.size = u.isHorizontal() ? u.width : u.height) }, u.updateSlidesSize = function() { u.slides = u.wrapper.children("." + u.params.slideClass), u.snapGrid = [], u.slidesGrid = [], u.slidesSizesGrid = []; var t, e = u.params.spaceBetween,
n = -u.params.slidesOffsetBefore,
i = 0; if ("undefined" !== typeof u.size) { var a; "string" === typeof e && e.indexOf("%") >= 0 && (e = parseFloat(e.replace("%", "")) / 100 * u.size), u.virtualSize = -e, u.rtl ? u.slides.css({ marginLeft: "", marginTop: "" }) : u.slides.css({ marginRight: "", marginBottom: "" }); var o, r = void 0 / u.params.slidesPerColumn;
u.params.slidesPerColumn, u.slides.length; for (t = 0; t < u.slides.length; t++) { a = 0; var s = u.slides.eq(t); "none" !== s.css("display") && ("auto" === u.params.slidesPerView ? (a = u.isHorizontal() ? s.outerWidth(!0) : s.outerHeight(!0), u.params.roundLengths && (a = T(a))) : (a = (u.size - (u.params.slidesPerView - 1) * e) / u.params.slidesPerView, u.params.roundLengths && (a = T(a)), u.isHorizontal() ? u.slides[t].style.width = a + "px" : u.slides[t].style.height = a + "px"), u.slides[t].swiperSlideSize = a, u.slidesSizesGrid.push(a), u.params.centeredSlides || (i % u.params.slidesPerGroup === 0 && u.snapGrid.push(n), u.slidesGrid.push(n), n = n + a + e), u.virtualSize += a + e, a, i++) } if (u.virtualSize = Math.max(u.virtualSize, u.size) + u.params.slidesOffsetAfter, u.rtl && u.wrongRTL && ("slide" === u.params.effect || "coverflow" === u.params.effect) && u.wrapper.css({ width: u.virtualSize + u.params.spaceBetween + "px" }), u.support.flexbox && !u.params.setWrapperSize || (u.isHorizontal() ? u.wrapper.css({ width: u.virtualSize + u.params.spaceBetween + "px" }) : u.wrapper.css({ height: u.virtualSize + u.params.spaceBetween + "px" })), !u.params.centeredSlides) { for (o = [], t = 0; t < u.snapGrid.length; t++) u.snapGrid[t] <= u.virtualSize - u.size && o.push(u.snapGrid[t]);
u.snapGrid = o, Math.floor(u.virtualSize - u.size) - Math.floor(u.snapGrid[u.snapGrid.length - 1]) > 1 && u.snapGrid.push(u.virtualSize - u.size) }
0 === u.snapGrid.length && (u.snapGrid = [0]), 0 !== u.params.spaceBetween && (u.isHorizontal() ? u.rtl ? u.slides.css({ marginLeft: e + "px" }) : u.slides.css({ marginRight: e + "px" }) : u.slides.css({ marginBottom: e + "px" })), u.params.watchSlidesProgress && u.updateSlidesOffset() } }, u.updateSlidesOffset = function() { for (var t = 0; t < u.slides.length; t++) u.slides[t].swiperSlideOffset = u.isHorizontal() ? u.slides[t].offsetLeft : u.slides[t].offsetTop }, u.updateSlidesProgress = function(t) { if ("undefined" === typeof t && (t = u.translate || 0), 0 !== u.slides.length) { "undefined" === typeof u.slides[0].swiperSlideOffset && u.updateSlidesOffset(); var e = -t;
u.rtl && (e = t), u.slides.removeClass(u.params.slideVisibleClass); for (var n = 0; n < u.slides.length; n++) { var i = u.slides[n],
a = (e + (u.params.centeredSlides ? u.minTranslate() : 0) - i.swiperSlideOffset) / (i.swiperSlideSize + u.params.spaceBetween);
i.progress = u.rtl ? -a : a } } }, u.updateProgress = function(t) { "undefined" === typeof t && (t = u.translate || 0); var e = u.maxTranslate() - u.minTranslate(),
n = u.isBeginning,
i = u.isEnd;
0 === e ? (u.progress = 0, u.isBeginning = u.isEnd = !0) : (u.progress = (t - u.minTranslate()) / e, u.isBeginning = u.progress <= 0, u.isEnd = u.progress >= 1), u.isBeginning && !n && u.emit("onReachBeginning", u), u.isEnd && !i && u.emit("onReachEnd", u), u.params.watchSlidesProgress && u.updateSlidesProgress(t), u.emit("onProgress", u, u.progress) }, u.updateActiveIndex = function() { var t, e, n, i = u.rtl ? u.translate : -u.translate; for (e = 0; e < u.slidesGrid.length; e++) "undefined" !== typeof u.slidesGrid[e + 1] ? i >= u.slidesGrid[e] && i < u.slidesGrid[e + 1] - (u.slidesGrid[e + 1] - u.slidesGrid[e]) / 2 ? t = e : i >= u.slidesGrid[e] && i < u.slidesGrid[e + 1] && (t = e + 1) : i >= u.slidesGrid[e] && (t = e);
(n = Math.floor(t / u.params.slidesPerGroup)) >= u.snapGrid.length && (n = u.snapGrid.length - 1), t !== u.activeIndex && (u.snapIndex = n, u.previousIndex = u.activeIndex, u.activeIndex = t, u.updateClasses(), u.updateRealIndex()) }, u.updateRealIndex = function() { u.realIndex = u.slides.eq(u.activeIndex).attr("data-swiper-slide-index") || u.activeIndex }, u.updateClasses = function() { u.slides.removeClass(u.params.slideActiveClass + " " + u.params.slideNextClass + " " + u.params.slidePrevClass + " " + u.params.slideDuplicateActiveClass + " " + u.params.slideDuplicateNextClass + " " + u.params.slideDuplicatePrevClass); var e = u.slides.eq(u.activeIndex);
e.addClass(u.params.slideActiveClass), a.loop && (e.hasClass(u.params.slideDuplicateClass) ? u.wrapper.children("." + u.params.slideClass + ":not(." + u.params.slideDuplicateClass + ')[data-swiper-slide-index="' + u.realIndex + '"]').addClass(u.params.slideDuplicateActiveClass) : u.wrapper.children("." + u.params.slideClass + "." + u.params.slideDuplicateClass + '[data-swiper-slide-index="' + u.realIndex + '"]').addClass(u.params.slideDuplicateActiveClass)); var n = e.next("." + u.params.slideClass).addClass(u.params.slideNextClass);
u.params.loop && 0 === n.length && (n = u.slides.eq(0)).addClass(u.params.slideNextClass); var i = e.prev("." + u.params.slideClass).addClass(u.params.slidePrevClass); if (u.params.loop && 0 === i.length && (i = u.slides.eq(-1)).addClass(u.params.slidePrevClass), a.loop && (n.hasClass(u.params.slideDuplicateClass) ? u.wrapper.children("." + u.params.slideClass + ":not(." + u.params.slideDuplicateClass + ')[data-swiper-slide-index="' + n.attr("data-swiper-slide-index") + '"]').addClass(u.params.slideDuplicateNextClass) : u.wrapper.children("." + u.params.slideClass + "." + u.params.slideDuplicateClass + '[data-swiper-slide-index="' + n.attr("data-swiper-slide-index") + '"]').addClass(u.params.slideDuplicateNextClass), i.hasClass(u.params.slideDuplicateClass) ? u.wrapper.children("." + u.params.slideClass + ":not(." + u.params.slideDuplicateClass + ')[data-swiper-slide-index="' + i.attr("data-swiper-slide-index") + '"]').addClass(u.params.slideDuplicatePrevClass) : u.wrapper.children("." + u.params.slideClass + "." + u.params.slideDuplicateClass + '[data-swiper-slide-index="' + i.attr("data-swiper-slide-index") + '"]').addClass(u.params.slideDuplicatePrevClass)), u.paginationContainer && u.paginationContainer.length > 0) { var o, r = u.params.loop ? Math.ceil((u.slides.length - 2 * u.loopedSlides) / u.params.slidesPerGroup) : u.snapGrid.length;
u.params.loop ? ((o = Math.ceil((u.activeIndex - u.loopedSlides) / u.params.slidesPerGroup)) > u.slides.length - 1 - 2 * u.loopedSlides && (o -= u.slides.length - 2 * u.loopedSlides), o > r - 1 && (o -= r), o < 0 && "bullets" !== u.params.paginationType && (o = r + o)) : o = "undefined" !== typeof u.snapIndex ? u.snapIndex : u.activeIndex || 0, "bullets" === u.params.paginationType && u.bullets && u.bullets.length > 0 && (u.bullets.removeClass(u.params.bulletActiveClass), u.paginationContainer.length > 1 ? u.bullets.each(function() { t(this).index() === o && t(this).addClass(u.params.bulletActiveClass) }) : u.bullets.eq(o).addClass(u.params.bulletActiveClass)), "fraction" === u.params.paginationType && (u.paginationContainer.find("." + u.params.paginationCurrentClass).text(o + 1), u.paginationContainer.find("." + u.params.paginationTotalClass).text(r)) }
u.params.loop || u.params.prevButton && u.prevButton && u.prevButton.length > 0 && (u.isBeginning ? u.prevButton.addClass(u.params.buttonDisabledClass) : u.prevButton.removeClass(u.params.buttonDisabledClass)) }, u.updatePagination = function() { if (u.params.pagination && u.paginationContainer && u.paginationContainer.length > 0) { var t = ""; if ("bullets" === u.params.paginationType) { for (var e = u.params.loop ? Math.ceil((u.slides.length - 2 * u.loopedSlides) / u.params.slidesPerGroup) : u.snapGrid.length, n = 0; n < e; n++) u.params.paginationBulletRender ? t += u.params.paginationBulletRender(u, n, u.params.bulletClass) : t += "<" + u.params.paginationElement + ' class="' + u.params.bulletClass + '">' + u.params.paginationElement + ">";
u.paginationContainer.html(t), u.bullets = u.paginationContainer.find("." + u.params.bulletClass) } "fraction" === u.params.paginationType && (t = u.params.paginationFractionRender ? u.params.paginationFractionRender(u, u.params.paginationCurrentClass, u.params.paginationTotalClass) : ' / ', u.paginationContainer.html(t)) } }, u.update = function(t) {
function e() { u.rtl, u.translate;
n = Math.min(Math.max(u.translate, u.maxTranslate()), u.minTranslate()), u.setWrapperTranslate(n), u.updateActiveIndex(), u.updateClasses() } var n;
(u.updateContainerSize(), u.updateSlidesSize(), u.updateProgress(), u.updatePagination(), u.updateClasses(), t) && (u.controller && u.controller.spline && (u.controller.spline = void 0), u.params.freeMode ? e() : (("auto" === u.params.slidesPerView || u.params.slidesPerView > 1) && u.isEnd && !u.params.centeredSlides ? u.slideTo(u.slides.length - 1, 0, !1, !0) : u.slideTo(u.activeIndex, 0, !1, !0)) || e()) }, u.onResize = function(t) { u.params.breakpoints && u.setBreakpoint(); var e = u.params.allowSwipeToPrev,
n = u.params.allowSwipeToNext;
u.params.allowSwipeToPrev = u.params.allowSwipeToNext = !0, u.updateContainerSize(), u.updateSlidesSize(), ("auto" === u.params.slidesPerView || u.params.freeMode || t) && u.updatePagination(), u.controller && u.controller.spline && (u.controller.spline = void 0); var i = !1; if (u.params.freeMode) { var a = Math.min(Math.max(u.translate, u.maxTranslate()), u.minTranslate());
u.setWrapperTranslate(a), u.updateActiveIndex(), u.updateClasses() } else u.updateClasses(), i = ("auto" === u.params.slidesPerView || u.params.slidesPerView > 1) && u.isEnd && !u.params.centeredSlides ? u.slideTo(u.slides.length - 1, 0, !1, !0) : u.slideTo(u.activeIndex, 0, !1, !0);
u.params.lazyLoading && !i && u.lazy && u.lazy.load(), u.params.allowSwipeToPrev = e, u.params.allowSwipeToNext = n }, u.touchEventsDesktop = { start: "mousedown", move: "mousemove", end: "mouseup" }, window.navigator.pointerEnabled ? u.touchEventsDesktop = { start: "pointerdown", move: "pointermove", end: "pointerup" } : window.navigator.msPointerEnabled && (u.touchEventsDesktop = { start: "MSPointerDown", move: "MSPointerMove", end: "MSPointerUp" }), u.touchEvents = { start: u.support.touch || !u.params.simulateTouch ? "touchstart" : u.touchEventsDesktop.start, move: u.support.touch || !u.params.simulateTouch ? "touchmove" : u.touchEventsDesktop.move, end: u.support.touch || !u.params.simulateTouch ? "touchend" : u.touchEventsDesktop.end }, (window.navigator.pointerEnabled || window.navigator.msPointerEnabled) && ("container" === u.params.touchEventsTarget ? u.container : u.wrapper).addClass("swiper-wp8-" + u.params.direction), u.initEvents = function(t) { var e = t ? "removeEventListener" : "addEventListener",
n = "container" === u.params.touchEventsTarget ? u.container[0] : u.wrapper[0],
i = (u.support.touch || document, !!u.params.nested); if (u.browser.ie);
else { if (u.support.touch) { var o = !("touchstart" !== u.touchEvents.start || !u.support.passiveListener || !u.params.passiveListeners) && { passive: !0, capture: !1 };
n[e](u.touchEvents.start, u.onTouchStart, o), n[e](u.touchEvents.move, u.onTouchMove, i), n[e](u.touchEvents.end, u.onTouchEnd, o) }(a.simulateTouch && !u.device.ios && !u.device.android || a.simulateTouch && !u.support.touch && u.device.ios) && (n[e]("mousedown", u.onTouchStart, !1), document[e]("mousemove", u.onTouchMove, i), document[e]("mouseup", u.onTouchEnd, !1)) }
window[e]("resize", u.onResize), (u.params.preventClicks || u.params.preventClicksPropagation) && n[e]("click", u.preventClicks, !0) }, u.attachEvents = function() { u.initEvents() }, u.detachEvents = function() { u.initEvents(!0) }, u.allowClick = !0, u.preventClicks = function(t) { u.allowClick || (u.params.preventClicks && t.preventDefault(), u.params.preventClicksPropagation && u.animating && (t.stopPropagation(), t.stopImmediatePropagation())) }; var f, h, m, g, v, _, w, y, b, x, C = "input, select, textarea, button, video",
k = Date.now(),
S = []; for (var A in u.animating = !1, u.touches = { startX: 0, startY: 0, currentX: 0, currentY: 0, diff: 0 }, u.onTouchStart = function(e) { if (e.originalEvent && (e = e.originalEvent), (x = "touchstart" === e.type) || !("which" in e) || 3 !== e.which)
if (u.params.noSwiping && function(e, n) { var i = t(e.target); if (!i.is(n))
if ("string" === typeof n) i = i.parents(n);
else if (n.nodeType) { var a; return i.parents().each(function(t, e) { e === n && (a = n) }), a ? n : void 0 } if (0 !== i.length) return i[0] }(e, "." + u.params.noSwipingClass)) u.allowClick = !0;
else { var n = u.touches.currentX = "touchstart" === e.type ? e.targetTouches[0].pageX : e.pageX,
i = u.touches.currentY = "touchstart" === e.type ? e.targetTouches[0].pageY : e.pageY; if (f = !0, h = !1, m = !0, v = void 0, void 0, u.touches.startX = n, u.touches.startY = i, g = Date.now(), u.allowClick = !0, u.updateContainerSize(), u.swipeDirection = void 0, "touchstart" !== e.type) { var a = !0;
t(e.target).is(C) && (a = !1), document.activeElement && t(document.activeElement).is(C) && document.activeElement.blur(), a && e.preventDefault() }
u.emit("onTouchStart", u, e) } }, u.onTouchMove = function(e) { if (e.originalEvent && (e = e.originalEvent), !x || "mousemove" !== e.type) { if (e.preventedByNestedSwiper) return u.touches.startX = "touchmove" === e.type ? e.targetTouches[0].pageX : e.pageX, void(u.touches.startY = "touchmove" === e.type ? e.targetTouches[0].pageY : e.pageY); if (u.params.onlyExternal) return u.allowClick = !1, void(f && (u.touches.startX = u.touches.currentX = "touchmove" === e.type ? e.targetTouches[0].pageX : e.pageX, u.touches.startY = u.touches.currentY = "touchmove" === e.type ? e.targetTouches[0].pageY : e.pageY, g = Date.now())); if (x && document.activeElement && e.target === document.activeElement && t(e.target).is(C)) return h = !0, void(u.allowClick = !1); if (m && u.emit("onTouchMove", u, e), !(e.targetTouches && e.targetTouches.length > 1)) { var n; if (u.touches.currentX = "touchmove" === e.type ? e.targetTouches[0].pageX : e.pageX, u.touches.currentY = "touchmove" === e.type ? e.targetTouches[0].pageY : e.pageY, "undefined" === typeof v) u.isHorizontal() && u.touches.currentY === u.touches.startY || !u.isHorizontal() && u.touches.currentX !== u.touches.startX ? v = !1 : (n = 180 * Math.atan2(Math.abs(u.touches.currentY - u.touches.startY), Math.abs(u.touches.currentX - u.touches.startX)) / Math.PI, v = u.isHorizontal() ? n > u.params.touchAngle : 90 - n > u.params.touchAngle); if (v && u.emit("onTouchMoveOpposite", u, e), f)
if (v) f = !1;
else { u.allowClick = !1, u.emit("onSliderMove", u, e), e.preventDefault(), u.params.touchMoveStopPropagation && !u.params.nested && e.stopPropagation(), h || (a.loop && u.fixLoop(), w = u.getWrapperTranslate(), u.setWrapperTransition(0), u.animating && u.wrapper.trigger("webkitTransitionEnd transitionend oTransitionEnd MSTransitionEnd msTransitionEnd"), u.params.autoplay && u.autoplaying && (u.params.autoplayDisableOnInteraction ? u.stopAutoplay() : u.pauseAutoplay()), b = !1), h = !0; var i = u.touches.diff = u.isHorizontal() ? u.touches.currentX - u.touches.startX : u.touches.currentY - u.touches.startY;
i *= u.params.touchRatio, u.rtl && (i = -i), u.swipeDirection = i > 0 ? "prev" : "next", _ = i + w; var o = !0;
i > 0 && _ > u.minTranslate() ? (o = !1, u.params.resistance && (_ = u.minTranslate() - 1 + Math.pow(-u.minTranslate() + w + i, u.params.resistanceRatio))) : i < 0 && _ < u.maxTranslate() && (o = !1, u.params.resistance && (_ = u.maxTranslate() + 1 - Math.pow(u.maxTranslate() - w - i, u.params.resistanceRatio))), o && (e.preventedByNestedSwiper = !0), u.params.followFinger && ((u.params.freeMode || u.params.watchSlidesProgress) && u.updateActiveIndex(), u.params.freeMode && (0 === S.length && S.push({ position: u.touches[u.isHorizontal() ? "startX" : "startY"], time: g }), S.push({ position: u.touches[u.isHorizontal() ? "currentX" : "currentY"], time: (new window.Date).getTime() })), u.updateProgress(_), u.setWrapperTranslate(_)) } } } }, u.onTouchEnd = function(t) { if (t.originalEvent && (t = t.originalEvent), m && u.emit("onTouchEnd", u, t), m = !1, f) { var e, n = Date.now(),
i = n - g; if (u.allowClick && (u.emit("onTap", u, t), i < 300 && n - k > 300 && (y && clearTimeout(y), y = setTimeout(function() { u && u.emit("onClick", u, t) }, 300))), k = Date.now(), setTimeout(function() { u && (u.allowClick = !0) }, 0), f && h && u.swipeDirection && 0 !== u.touches.diff && _ !== w)
if (f = h = !1, e = u.params.followFinger ? u.rtl ? u.translate : -u.translate : -_, u.params.freeMode) { if (e < -u.minTranslate()) return void u.slideTo(u.activeIndex); if (e > -u.maxTranslate()) return void(u.slides.length < u.snapGrid.length ? u.slideTo(u.snapGrid.length - 1) : u.slideTo(u.slides.length - 1)); if (u.params.freeModeMomentum) { if (S.length > 1) { var a = S.pop(),
o = S.pop(),
r = a.position - o.position,
s = a.time - o.time;
u.velocity = r / s, u.velocity = u.velocity / 2, Math.abs(u.velocity) < u.params.freeModeMinimumVelocity && (u.velocity = 0), (s > 150 || (new window.Date).getTime() - a.time > 300) && (u.velocity = 0) } else u.velocity = 0;
u.velocity = u.velocity * u.params.freeModeMomentumVelocityRatio, S.length = 0; var c = 1e3 * u.params.freeModeMomentumRatio,
l = u.velocity * c,
d = u.translate + l;
u.rtl && (d = -d); var p, v = !1,
x = 20 * Math.abs(u.velocity) * u.params.freeModeMomentumBounceRatio; if (d < u.maxTranslate()) u.params.freeModeMomentumBounce ? (d + u.maxTranslate() < -x && (d = u.maxTranslate() - x), p = u.maxTranslate(), v = !0, b = !0) : d = u.maxTranslate();
else if (d > u.minTranslate()) u.params.freeModeMomentumBounce ? (d - u.minTranslate() > x && (d = u.minTranslate() + x), p = u.minTranslate(), v = !0, b = !0) : d = u.minTranslate();
else if (u.params.freeModeSticky) { var C, A = 0; for (A = 0; A < u.snapGrid.length; A += 1)
if (u.snapGrid[A] > -d) { C = A; break }
d = Math.abs(u.snapGrid[C] - d) < Math.abs(u.snapGrid[C - 1] - d) || "next" === u.swipeDirection ? u.snapGrid[C] : u.snapGrid[C - 1], u.rtl || (d = -d) } if (0 !== u.velocity) c = u.rtl ? Math.abs((-d - u.translate) / u.velocity) : Math.abs((d - u.translate) / u.velocity);
else if (u.params.freeModeSticky) return void u.slideReset();
u.params.freeModeMomentumBounce && v ? (u.updateProgress(p), u.setWrapperTransition(c), u.setWrapperTranslate(d), u.onTransitionStart(), u.animating = !0, u.wrapper.transitionEnd(function() { u && b && (u.emit("onMomentumBounce", u), u.setWrapperTransition(u.params.speed), u.setWrapperTranslate(p), u.wrapper.transitionEnd(function() { u && u.onTransitionEnd() })) })) : u.velocity ? (u.updateProgress(d), u.setWrapperTransition(c), u.setWrapperTranslate(d), u.onTransitionStart(), u.animating || (u.animating = !0, u.wrapper.transitionEnd(function() { u && u.onTransitionEnd() }))) : u.updateProgress(d), u.updateActiveIndex() }(!u.params.freeModeMomentum || i >= u.params.longSwipesMs) && (u.updateProgress(), u.updateActiveIndex()) } else { var E, T = 0,
I = u.slidesSizesGrid[0]; for (E = 0; E < u.slidesGrid.length; E += u.params.slidesPerGroup) "undefined" !== typeof u.slidesGrid[E + u.params.slidesPerGroup] ? e >= u.slidesGrid[E] && e < u.slidesGrid[E + u.params.slidesPerGroup] && (T = E, I = u.slidesGrid[E + u.params.slidesPerGroup] - u.slidesGrid[E]) : e >= u.slidesGrid[E] && (T = E, I = u.slidesGrid[u.slidesGrid.length - 1] - u.slidesGrid[u.slidesGrid.length - 2]); var M = (e - u.slidesGrid[T]) / I; if (i > u.params.longSwipesMs) { if (!u.params.longSwipes) return void u.slideTo(u.activeIndex); "next" === u.swipeDirection && (M >= u.params.longSwipesRatio ? u.slideTo(T + u.params.slidesPerGroup) : u.slideTo(T)), "prev" === u.swipeDirection && (M > 1 - u.params.longSwipesRatio ? u.slideTo(T + u.params.slidesPerGroup) : u.slideTo(T)) } else { if (!u.params.shortSwipes) return void u.slideTo(u.activeIndex); "next" === u.swipeDirection && u.slideTo(T + u.params.slidesPerGroup), "prev" === u.swipeDirection && u.slideTo(T) } }
else f = h = !1 } }, u._slideTo = function(t, e) { return u.slideTo(t, e, !0, !0) }, u.slideTo = function(t, e, n, i) { "undefined" === typeof n && (n = !0), "undefined" === typeof t && (t = 0), t < 0 && (t = 0), u.snapIndex = Math.floor(t / u.params.slidesPerGroup), u.snapIndex >= u.snapGrid.length && (u.snapIndex = u.snapGrid.length - 1); var a = -u.snapGrid[u.snapIndex]; return u.params.autoplay && u.autoplaying && (i || !u.params.autoplayDisableOnInteraction ? u.pauseAutoplay(e) : u.stopAutoplay()), u.updateProgress(a), !(!u.params.allowSwipeToPrev && a > u.translate && a > u.maxTranslate() && (u.activeIndex || 0) !== t) && ("undefined" === typeof e && (e = u.params.speed), u.previousIndex = u.activeIndex || 0, u.activeIndex = t, u.updateRealIndex(), u.rtl && -a === u.translate || !u.rtl && a === u.translate ? (u.updateClasses(), "slide" !== u.params.effect && u.setWrapperTranslate(a), !1) : (u.updateClasses(), u.onTransitionStart(n), 0 === e || u.browser.lteIE9 ? (u.setWrapperTranslate(a), u.setWrapperTransition(0), u.onTransitionEnd(n)) : (u.setWrapperTranslate(a), u.setWrapperTransition(e), u.animating || (u.animating = !0, u.wrapper.transitionEnd(function() { u && u.onTransitionEnd(n) }))), !0)) }, u.onTransitionStart = function(t) { "undefined" === typeof t && (t = !0), u.lazy && u.lazy.onTransitionStart(), t && (u.emit("onTransitionStart", u), u.activeIndex !== u.previousIndex && (u.emit("onSlideChangeStart", u), u.activeIndex > u.previousIndex ? u.emit("onSlideNextStart", u) : u.emit("onSlidePrevStart", u))) }, u.onTransitionEnd = function(t) { u.animating = !1, u.setWrapperTransition(0), "undefined" === typeof t && (t = !0), u.lazy && u.lazy.onTransitionEnd(), t && (u.emit("onTransitionEnd", u), u.activeIndex !== u.previousIndex && (u.emit("onSlideChangeEnd", u), u.activeIndex > u.previousIndex ? u.emit("onSlideNextEnd", u) : u.emit("onSlidePrevEnd", u))) }, u.slideNext = function(t, e, n) { if (u.params.loop) { if (u.animating) return !1;
u.fixLoop();
u.container[0].clientLeft; return u.slideTo(u.activeIndex + u.params.slidesPerGroup, e, t, n) } return u.slideTo(u.activeIndex + u.params.slidesPerGroup, e, t, n) }, u._slideNext = function(t) { return u.slideNext(!0, t, !0) }, u.slidePrev = function(t, e, n) { if (u.params.loop) { if (u.animating) return !1;
u.fixLoop();
u.container[0].clientLeft; return u.slideTo(u.activeIndex - 1, e, t, n) } return u.slideTo(u.activeIndex - 1, e, t, n) }, u._slidePrev = function(t) { return u.slidePrev(!0, t, !0) }, u.slideReset = function(t, e, n) { return u.slideTo(u.activeIndex, e, t) }, u.disableTouchControl = function() { return u.params.onlyExternal = !0, !0 }, u.enableTouchControl = function() { return u.params.onlyExternal = !1, !0 }, u.setWrapperTransition = function(t, e) { u.wrapper.transition(t), u.emit("onSetTransition", u, t) }, u.setWrapperTranslate = function(t, e, n) { var i = 0,
a = 0;
u.isHorizontal() ? i = u.rtl ? -t : t : a = t, u.params.roundLengths && (i = T(i), a = T(a)), u.params.virtualTranslate || (u.support.transforms3d ? u.wrapper.transform("translate3d(" + i + "px, " + a + "px, 0px)") : u.wrapper.transform("translate(" + i + "px, " + a + "px)")), u.translate = u.isHorizontal() ? i : a; var o = u.maxTranslate() - u.minTranslate();
(0 === o ? 0 : (t - u.minTranslate()) / o) !== u.progress && u.updateProgress(t), e && u.updateActiveIndex(), u.emit("onSetTranslate", u, u.translate) }, u.getTranslate = function(t, e) { var n, i, a, o; return "undefined" === typeof e && (e = "x"), a = window.getComputedStyle(t, null), window.WebKitCSSMatrix ? ((i = a.transform || a.webkitTransform).split(",").length > 6 && (i = i.split(", ").map(function(t) { return t.replace(",", ".") }).join(", ")), o = new window.WebKitCSSMatrix("none" === i ? "" : i)) : n = (o = a.MozTransform || a.OTransform || a.MsTransform || a.msTransform || a.transform || a.getPropertyValue("transform").replace("translate(", "matrix(1, 0, 0, 1,")).toString().split(","), "x" === e && (i = window.WebKitCSSMatrix ? o.m41 : 16 === n.length ? parseFloat(n[12]) : parseFloat(n[4])), "y" === e && (i = window.WebKitCSSMatrix ? o.m42 : 16 === n.length ? parseFloat(n[13]) : parseFloat(n[5])), u.rtl && i && (i = -i), i || 0 }, u.getWrapperTranslate = function(t) { return "undefined" === typeof t && (t = u.isHorizontal() ? "x" : "y"), u.getTranslate(u.wrapper[0], t) }, u.observers = [], u.createLoop = function() { u.wrapper.children("." + u.params.slideClass + "." + u.params.slideDuplicateClass).remove(); var e = u.wrapper.children("." + u.params.slideClass); "auto" !== u.params.slidesPerView || u.params.loopedSlides || (u.params.loopedSlides = e.length), u.loopedSlides = parseInt(u.params.loopedSlides || u.params.slidesPerView, 10), u.loopedSlides = u.loopedSlides + u.params.loopAdditionalSlides, u.loopedSlides > e.length && (u.loopedSlides = e.length); var n, i = [],
a = []; for (e.each(function(n, o) { var r = t(this);
n < u.loopedSlides && a.push(o), n < e.length && n >= e.length - u.loopedSlides && i.push(o), r.attr("data-swiper-slide-index", n) }), n = 0; n < a.length; n++) u.wrapper.append(t(a[n].cloneNode(!0)).addClass(u.params.slideDuplicateClass)); for (n = i.length - 1; n >= 0; n--) u.wrapper.prepend(t(i[n].cloneNode(!0)).addClass(u.params.slideDuplicateClass)) }, u.destroyLoop = function() { u.wrapper.children("." + u.params.slideClass + "." + u.params.slideDuplicateClass).remove(), u.slides.removeAttr("data-swiper-slide-index") }, u.fixLoop = function() { var t;
u.activeIndex < u.loopedSlides ? (t = u.slides.length - 3 * u.loopedSlides + u.activeIndex, t += u.loopedSlides, u.slideTo(t, 0, !1, !0)) : ("auto" === u.params.slidesPerView && u.activeIndex >= 2 * u.loopedSlides || u.activeIndex > u.slides.length - 2 * u.params.slidesPerView) && (t = -u.slides.length + u.activeIndex + u.loopedSlides, t += u.loopedSlides, u.slideTo(t, 0, !1, !0)) }, u.afterSlide = function(t, e) { if (u.params.loop && u.destroyLoop(), e <= u.activeIndex) var n = u.activeIndex + 1; if ("object" === typeof t && t.length) { for (var i = 0; i < t.length; i++) t[i] && u.wrapper.insert(t[i], e, u.activeIndex);
e <= u.activeIndex && (n = u.activeIndex + t.length) } else u.wrapper.insert(t, e, u.activeIndex);
u.params.loop && u.createLoop(), u.params.observer && u.support.observer || u.update(!0), e < u.activeIndex ? u.slideTo(n, 0, !1) : e == u.activeIndex && u.slideTo(n - 1, 0, !1) }, u.removeSlide = function(t) { u.params.loop && (u.destroyLoop(), u.slides = u.wrapper.children("." + u.params.slideClass)); var e, n = u.activeIndex; if ("object" === typeof t && t.length) { for (var i = 0; i < t.length; i++) e = t[i], u.slides[e] && u.slides.eq(e).remove(), e < n && n--;
n = Math.max(n, 0) } else e = t, u.slides[e] && u.slides.eq(e).remove(), e < n && n--, n = Math.max(n, 0);
u.params.loop && u.createLoop(), u.params.observer && u.support.observer || u.update(!0), u.params.loop ? u.slideTo(n + u.loopedSlides, 0, !1) : u.slideTo(n, 0, !1) }, u.effects = {}, u.lazy = { initialImageLoaded: !1, loadImageInSlide: function(e, n) { if ("undefined" !== typeof e && ("undefined" === typeof n && (n = !0), 0 !== u.slides.length)) { var i = u.slides.eq(e),
a = i.find("." + u.params.lazyLoadingClass + ":not(." + u.params.lazyStatusLoadedClass + "):not(." + u.params.lazyStatusLoadingClass + ")");!i.hasClass(u.params.lazyLoadingClass) || i.hasClass(u.params.lazyStatusLoadedClass) || i.hasClass(u.params.lazyStatusLoadingClass) || (a = a.add(i[0])), 0 !== a.length && a.each(function() { var e = t(this);
e.addClass(u.params.lazyStatusLoadingClass); var a = e.attr("data-background"),
o = e.attr("data-src"),
r = e.attr("data-srcset"),
s = e.attr("data-sizes");
u.loadImage(e[0], o || a, r, s, !1, function() { if (a ? (e.css("background-image", 'url("' + a + '")'), e.removeAttr("data-background")) : (r && (e.attr("srcset", r), e.removeAttr("data-srcset")), s && (e.attr("sizes", s), e.removeAttr("data-sizes")), o && (e.attr("src", o), e.removeAttr("data-src"))), e.addClass(u.params.lazyStatusLoadedClass).removeClass(u.params.lazyStatusLoadingClass), i.find("." + u.params.lazyPreloaderClass + ", ." + u.params.preloaderClass).remove(), u.params.loop && n) { var t = i.attr("data-swiper-slide-index"); if (i.hasClass(u.params.slideDuplicateClass)) { var c = u.wrapper.children('[data-swiper-slide-index="' + t + '"]:not(.' + u.params.slideDuplicateClass + ")");
u.lazy.loadImageInSlide(c.index(), !1) } else { var l = u.wrapper.children("." + u.params.slideDuplicateClass + '[data-swiper-slide-index="' + t + '"]');
u.lazy.loadImageInSlide(l.index(), !1) } }
u.emit("onLazyImageReady", u, i[0], e[0]) }), u.emit("onLazyImageLoad", u, i[0], e[0]) }) } }, load: function() { var t, e = u.params.slidesPerView; if ("auto" === e && (e = 0), u.lazy.initialImageLoaded)
if (e > 1)
for (t = u.activeIndex; t < u.activeIndex + e; t++) u.slides[t] && u.lazy.loadImageInSlide(t);
else u.lazy.loadImageInSlide(u.activeIndex);
else u.lazy.initialImageLoaded = !0; if (u.params.lazyLoadingInPrevNext)
if (e > 1 || u.params.lazyLoadingInPrevNextAmount && u.params.lazyLoadingInPrevNextAmount > 1) { var n = u.params.lazyLoadingInPrevNextAmount,
i = e,
a = Math.min(u.activeIndex + i + Math.max(n, i), u.slides.length),
o = Math.max(u.activeIndex - Math.max(i, n), 0); for (t = u.activeIndex + e; t < a; t++) u.slides[t] && u.lazy.loadImageInSlide(t); for (t = o; t < u.activeIndex; t++) u.slides[t] && u.lazy.loadImageInSlide(t) } else { var r = u.wrapper.children("." + u.params.slideNextClass);
r.length > 0 && u.lazy.loadImageInSlide(r.index()); var s = u.wrapper.children("." + u.params.slidePrevClass);
s.length > 0 && u.lazy.loadImageInSlide(s.index()) } }, onTransitionStart: function() { u.params.lazyLoading && (u.params.lazyLoadingOnTransitionStart || !u.params.lazyLoadingOnTransitionStart && !u.lazy.initialImageLoaded) && u.lazy.load() }, onTransitionEnd: function() { u.params.lazyLoading && !u.params.lazyLoadingOnTransitionStart && u.lazy.load() } }, u.controller = {}, u.enableObserveAutoPlay = function() { var e = document.documentElement.clientHeight,
n = u.container[0].offsetHeight;
t(document).on("scroll", function(t) { var i = document.documentElement.scrollTop || document.body.scrollTop,
a = function(t) { var e = t.offsetLeft,
n = t.offsetTop; for (; t.offsetParent;) t = t.offsetParent, e += t.offsetLeft, n += t.offsetTop; return { x: e, y: n } }(u.container[0]).y;
i > a + n || a + n > i + e ? u.stopAutoplay() : u.startAutoplay() }) }, u._plugins = [], u.plugins) { var E = u.plugins[A](u, u.params[A]);
E && u._plugins.push(E) } return u.callPlugins = function(t) { for (var e = 0; e < u._plugins.length; e++) t in u._plugins[e] && u._plugins[e][t](arguments[1], arguments[2], arguments[3], arguments[4], arguments[5]) }, u.emitterEventListeners = {}, u.emit = function(t) { var e; if (u.params[t] && u.params[t](arguments[1], arguments[2], arguments[3], arguments[4], arguments[5]), u.emitterEventListeners[t])
for (e = 0; e < u.emitterEventListeners[t].length; e++) u.emitterEventListeners[t][e](arguments[1], arguments[2], arguments[3], arguments[4], arguments[5]);
u.callPlugins && u.callPlugins(t, arguments[1], arguments[2], arguments[3], arguments[4], arguments[5]) }, u.on = function(t, e) { return t = M(t), u.emitterEventListeners[t] || (u.emitterEventListeners[t] = []), u.emitterEventListeners[t].push(e), u }, u.off = function(t, e) { var n; if (t = M(t), "undefined" === typeof e) return u.emitterEventListeners[t] = [], u; if (u.emitterEventListeners[t] && 0 !== u.emitterEventListeners[t].length) { for (n = 0; n < u.emitterEventListeners[t].length; n++) u.emitterEventListeners[t][n] === e && u.emitterEventListeners[t].splice(n, 1); return u } }, u.init = function() { u.params.loop && u.createLoop(), u.updateContainerSize(), u.updateSlidesSize(), u.updatePagination(), u.params.loop ? u.slideTo(u.params.initialSlide + u.loopedSlides, 0, u.params.runCallbacksOnInit) : (u.slideTo(u.params.initialSlide, 0, u.params.runCallbacksOnInit), 0 === u.params.initialSlide && u.lazy && u.params.lazyLoading && (u.lazy.load(), u.lazy.initialImageLoaded = !0)), u.attachEvents(), u.params.autoplay && u.startAutoplay(), u.params.observeAutoPlay && u.enableObserveAutoPlay && u.enableObserveAutoPlay(), u.emit("onInit", u) }, u.cleanupStyles = function() { u.container.removeClass(u.classNames.join(" ")).removeAttr("style"), u.wrapper.removeAttr("style"), u.slides && u.slides.length && u.slides.removeClass([u.params.slideVisibleClass, u.params.slideActiveClass, u.params.slideNextClass, u.params.slidePrevClass].join(" ")).removeAttr("style").removeAttr("data-swiper-column").removeAttr("data-swiper-row"), u.paginationContainer && u.paginationContainer.length && u.paginationContainer.removeClass(u.params.paginationHiddenClass), u.bullets && u.bullets.length && u.bullets.removeClass(u.params.bulletActiveClass) }, u.destroy = function(t, e) { u.detachEvents(), u.stopAutoplay(), u.params.loop && u.destroyLoop(), e && u.cleanupStyles(), u.emit("onDestroy"), !1 !== t && (u = null) }, u.init(), u }
function T(t) { return Math.floor(t) }
function I() { var t = u.params.autoplay,
e = u.slides.eq(u.activeIndex);
e.attr("data-swiper-autoplay") && (t = e.attr("data-swiper-autoplay") || u.params.autoplay), u.autoplayTimeoutId = setTimeout(function() { u.params.loop ? (u.fixLoop(), u._slideNext(), u.emit("onAutoplay", u)) : u.isEnd ? a.autoplayStopOnLast ? u.stopAutoplay() : (u._slideTo(0), u.emit("onAutoplay", u)) : (u._slideNext(), u.emit("onAutoplay", u)) }, t) }
function M(t) { return 0 !== t.indexOf("on") && (t = t[0] !== t[0].toUpperCase() ? "on" + t[0].toUpperCase() + t.substring(1) : "on" + t), t } };
e.prototype = { browser: {}, device: function() { var t = navigator.userAgent,
e = t.match(/(Android);?[\s\/]+([\d.]+)?/),
n = t.match(/(iPad).*OS\s([\d_]+)/),
i = t.match(/(iPod)(.*OS\s([\d_]+))?/),
a = !n && t.match(/(iPhone\sOS)\s([\d_]+)/); return { ios: n || a || i, android: e } }(), support: { touch: window.Modernizr && !0 === Modernizr.touch || !!("ontouchstart" in window || window.DocumentTouch && document instanceof DocumentTouch), transforms3d: window.Modernizr && !0 === Modernizr.csstransforms3d || function() { var t = document.createElement("div").style; return "webkitPerspective" in t || "MozPerspective" in t || "OPerspective" in t || "MsPerspective" in t || "perspective" in t }(), flexbox: function() { for (var t = document.createElement("div").style, e = "alignItems webkitAlignItems webkitBoxAlign msFlexAlign mozBoxAlign webkitFlexDirection msFlexDirection mozBoxDirection mozBoxOrient webkitBoxDirection webkitBoxOrient".split(" "), n = 0; n < e.length; n++)
if (e[n] in t) return !0 }(), observer: "MutationObserver" in window || "WebkitMutationObserver" in window, passiveListener: function() { var t = !1; try { var e = Object.defineProperty({}, "passive", { get: function() { t = !0 } });
window.addEventListener("testPassiveListener", null, e) } catch (n) {} return t }(), gestures: "ongesturestart" in window }, plugins: {} }; for (var n, i = function() { var t = function(t) { var e = 0; for (e = 0; e < t.length; e++) this[e] = t[e]; return this.length = t.length, this },
e = function(e, n) { var i = [],
a = 0; if (e && !n && e instanceof t) return e; if (e)
if ("string" === typeof e) { var o, r, s = e.trim(); if (s.indexOf("<") >= 0 && s.indexOf(">") >= 0) { var c = "div"; for (0 === s.indexOf("
:~]/) ? (n || document).querySelectorAll(e) : [document.getElementById(e.split("#")[1])], a = 0; a < o.length; a++) o[a] && i.push(o[a]) } else if (e.nodeType || e === window || e === document) i.push(e);
else if (e.length > 0 && e[0].nodeType)
for (a = 0; a < e.length; a++) i.push(e[a]); return new t(i) }; return t.prototype = { addClass: function(t) { if ("undefined" === typeof t) return this; for (var e = t.split(" "), n = 0; n < e.length; n++)
for (var i = 0; i < this.length; i++) this[i].classList.add(e[n]); return this }, removeClass: function(t) { for (var e = t.split(" "), n = 0; n < e.length; n++)
for (var i = 0; i < this.length; i++) this[i].classList.remove(e[n]); return this }, hasClass: function(t) { return !!this[0] && this[0].classList.contains(t) }, attr: function(t, e) { if (1 === arguments.length && "string" === typeof t) return this[0] ? this[0].getAttribute(t) : void 0; for (var n = 0; n < this.length; n++)
if (2 === arguments.length) this[n].setAttribute(t, e);
else
for (var i in t) this[n][i] = t[i], this[n].setAttribute(i, t[i]);
return this }, removeAttr: function(t) { for (var e = 0; e < this.length; e++) this[e].removeAttribute(t); return this }, data: function(t, e) { for (var n = 0; n < this.length; n++) { var i = this[n];
i.dom7ElementDataStorage || (i.dom7ElementDataStorage = {}), i.dom7ElementDataStorage[t] = e } return this }, transform: function(t) { for (var e = 0; e < this.length; e++) { var n = this[e].style;
n.webkitTransform = n.MsTransform = n.msTransform = n.MozTransform = n.OTransform = n.transform = t } return this }, transition: function(t) { "string" !== typeof t && (t += "ms"); for (var e = 0; e < this.length; e++) { var n = this[e].style;
n.webkitTransitionDuration = n.MsTransitionDuration = n.msTransitionDuration = n.MozTransitionDuration = n.OTransitionDuration = n.transitionDuration = t } return this }, on: function(t, n, i, a) {
function o(t) { var a = t.target; if (e(a).is(n)) i.call(a, t);
else
for (var o = e(a).parents(), r = 0; r < o.length; r++) e(o[r]).is(n) && i.call(o[r], t) } var r, s, c = t.split(" "); for (r = 0; r < this.length; r++)
if ("function" === typeof n || !1 === n)
for ("function" === typeof n && (i = arguments[1], a = arguments[2] || !1), s = 0; s < c.length; s++) this[r].addEventListener(c[s], i, a);
else
for (s = 0; s < c.length; s++) this[r].dom7LiveListeners || (this[r].dom7LiveListeners = []), this[r].dom7LiveListeners.push({ listener: i, liveListener: o }), this[r].addEventListener(c[s], o, a);
return this }, off: function(t, e, n, i) { for (var a = t.split(" "), o = 0; o < a.length; o++)
for (var r = 0; r < this.length; r++)
if ("function" === typeof e || !1 === e) "function" === typeof e && (n = arguments[1], i = arguments[2] || !1), this[r].removeEventListener(a[o], n, i);
else if (this[r].dom7LiveListeners)
for (var s = 0; s < this[r].dom7LiveListeners.length; s++) this[r].dom7LiveListeners[s].listener === n && this[r].removeEventListener(a[o], this[r].dom7LiveListeners[s].liveListener, i); return this }, trigger: function(t, e) { for (var n = 0; n < this.length; n++) { var i; try { i = new window.CustomEvent(t, { detail: e, bubbles: !0, cancelable: !0 }) } catch (a) {
(i = document.createEvent("Event")).initEvent(t, !0, !0), i.detail = e }
this[n].dispatchEvent(i) } return this }, transitionEnd: function(t) { var e, n = ["webkitTransitionEnd", "transitionend", "oTransitionEnd", "MSTransitionEnd", "msTransitionEnd"],
i = this;
function a(o) { if (o.target === this)
for (t.call(this, o), e = 0; e < n.length; e++) i.off(n[e], a) } if (t)
for (e = 0; e < n.length; e++) i.on(n[e], a); return this }, outerWidth: function(t) { return this.length > 0 ? t ? this[0].offsetWidth + parseFloat(this.css("margin-right")) + parseFloat(this.css("margin-left")) : this[0].offsetWidth : null }, outerHeight: function(t) { return this.length > 0 ? t ? this[0].offsetHeight + parseFloat(this.css("margin-top")) + parseFloat(this.css("margin-bottom")) : this[0].offsetHeight : null }, css: function(t, e) { var n; if (1 === arguments.length) { if ("string" !== typeof t) { for (n = 0; n < this.length; n++)
for (var i in t) this[n].style[i] = t[i]; return this } if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(t) } if (2 === arguments.length && "string" === typeof t) { for (n = 0; n < this.length; n++) this[n].style[t] = e; return this } return this }, each: function(t) { for (var e = 0; e < this.length; e++) t.call(this[e], e, this[e]); return this }, html: function(t) { if ("undefined" === typeof t) return this[0] ? this[0].innerHTML : void 0; for (var e = 0; e < this.length; e++) this[e].innerHTML = t; return this }, text: function(t) { if ("undefined" === typeof t) return this[0] ? this[0].textContent.trim() : null; for (var e = 0; e < this.length; e++) this[e].textContent = t; return this }, is: function(n) { if (!this[0]) return !1; var i, a; if ("string" === typeof n) { var o = this[0]; if (o === document) return n === document; if (o === window) return n === window; if (o.matches) return o.matches(n); if (o.webkitMatchesSelector) return o.webkitMatchesSelector(n); if (o.mozMatchesSelector) return o.mozMatchesSelector(n); if (o.msMatchesSelector) return o.msMatchesSelector(n); for (i = e(n), a = 0; a < i.length; a++)
if (i[a] === this[0]) return !0;
return !1 } if (n === document) return this[0] === document; if (n === window) return this[0] === window; if (n.nodeType || n instanceof t) { for (i = n.nodeType ? [n] : n, a = 0; a < i.length; a++)
if (i[a] === this[0]) return !0;
return !1 } return !1 }, index: function() { if (this[0]) { for (var t = this[0], e = 0; null !== (t = t.previousSibling);) 1 === t.nodeType && e++; return e } }, eq: function(e) { if ("undefined" === typeof e) return this; var n, i = this.length; return new t(e > i - 1 ? [] : e < 0 ? (n = i + e) < 0 ? [] : [this[n]] : [this[e]]) }, insert: function(e, n, i) { if (n >= i) { for (a = 0; a < this.length; a++) { if ("string" === typeof e)
for ((r = document.createElement("div")).innerHTML = e; r.firstChild;) n > this[a].children.length ? this[a].appendChild(r.firstChild) : this[a].insertBefore(r.firstChild, this[a].children[n]);
else if (e instanceof t)
for (o = 0; o < e.length; o++) this[a].appendChild(e[o]);
else n > this[a].children.length ? this[a].appendChild(e) : this[a].insertBefore(e, this[a].children[n]) } return this } var a, o; for (a = 0; a < this.length; a++) { var r; if ("string" === typeof e)
for ((r = document.createElement("div")).innerHTML = e, o = r.childNodes.length - 1; o >= 0; o--) 0 == n ? this[a].insertBefore(r.childNodes[o], this[a].children[0]) : n == i ? this[a].insertBefore(r.childNodes[o], this[a].children[i]) : this[a].insertBefore(r.childNodes[o], this[a].children[n]);
else if (e instanceof t)
for (o = 0; o < e.length; o++) this[a].insertBefore(e[o], this[a].children[n]);
else this[a].insertBefore(e, this[a].children[n]) } return this }, append: function(e) { var n, i; for (n = 0; n < this.length; n++)
if ("string" === typeof e) { var a = document.createElement("div"); for (a.innerHTML = e; a.firstChild;) this[n].appendChild(a.firstChild) } else if (e instanceof t)
for (i = 0; i < e.length; i++) this[n].appendChild(e[i]);
else this[n].appendChild(e); return this }, prepend: function(e) { var n, i; for (n = 0; n < this.length; n++)
if ("string" === typeof e) { var a = document.createElement("div"); for (a.innerHTML = e, i = a.childNodes.length - 1; i >= 0; i--) this[n].insertBefore(a.childNodes[i], this[n].childNodes[0]) } else if (e instanceof t)
for (i = 0; i < e.length; i++) this[n].insertBefore(e[i], this[n].childNodes[0]);
else this[n].insertBefore(e, this[n].childNodes[0]); return this }, insertBefore: function(t) { for (var n = e(t), i = 0; i < this.length; i++)
if (1 === n.length) n[0].parentNode.insertBefore(this[i], n[0]);
else if (n.length > 1)
for (var a = 0; a < n.length; a++) n[a].parentNode.insertBefore(this[i].cloneNode(!0), n[a]) }, insertAfter: function(t) { for (var n = e(t), i = 0; i < this.length; i++)
if (1 === n.length) n[0].parentNode.insertBefore(this[i], n[0].nextSibling);
else if (n.length > 1)
for (var a = 0; a < n.length; a++) n[a].parentNode.insertBefore(this[i].cloneNode(!0), n[a].nextSibling) }, next: function(n) { return this.length > 0 ? n ? this[0].nextElementSibling && e(this[0].nextElementSibling).is(n) ? new t([this[0].nextElementSibling]) : new t([]) : this[0].nextElementSibling ? new t([this[0].nextElementSibling]) : new t([]) : new t([]) }, prev: function(n) { return this.length > 0 ? n ? this[0].previousElementSibling && e(this[0].previousElementSibling).is(n) ? new t([this[0].previousElementSibling]) : new t([]) : this[0].previousElementSibling ? new t([this[0].previousElementSibling]) : new t([]) : new t([]) }, parents: function(t) { for (var n = [], i = 0; i < this.length; i++)
for (var a = this[i].parentNode; a;) t ? e(a).is(t) && n.push(a) : n.push(a), a = a.parentNode; return e(e.unique(n)) }, find: function(e) { for (var n = [], i = 0; i < this.length; i++)
for (var a = this[i].querySelectorAll(e), o = 0; o < a.length; o++) n.push(a[o]); return new t(n) }, children: function(n) { for (var i = [], a = 0; a < this.length; a++)
for (var o = this[a].childNodes, r = 0; r < o.length; r++) n ? 1 === o[r].nodeType && e(o[r]).is(n) && i.push(o[r]) : 1 === o[r].nodeType && i.push(o[r]); return new t(e.unique(i)) }, remove: function() { for (var t = 0; t < this.length; t++) this[t].parentNode && this[t].parentNode.removeChild(this[t]); return this }, add: function() { var t, n; for (t = 0; t < arguments.length; t++) { var i = e(arguments[t]); for (n = 0; n < i.length; n++) this[this.length] = i[n], this.length++ } return this } }, e.fn = t.prototype, e.unique = function(t) { for (var e = [], n = 0; n < t.length; n++) - 1 === e.indexOf(t[n]) && e.push(t[n]); return e }, e }(), a = ["jQuery", "Zepto", "Dom7"], o = 0; o < a.length; o++) window[a[o]] && r(window[a[o]]);
function r(t) { t.fn.swiper = function(n) { var i; return t(this).each(function() { var t = new e(this, n);
i || (i = t) }), i } }(n = "undefined" === typeof i ? window.Dom7 || window.Zepto || window.jQuery : i) && ("transitionEnd" in n.fn || (n.fn.transitionEnd = function(t) { var e, n = ["webkitTransitionEnd", "transitionend", "oTransitionEnd", "MSTransitionEnd", "msTransitionEnd"],
i = this;
function a(o) { if (o.target === this)
for (t.call(this, o), e = 0; e < n.length; e++) i.off(n[e], a) } if (t)
for (e = 0; e < n.length; e++) i.on(n[e], a); return this }), "transform" in n.fn || (n.fn.transform = function(t) { for (var e = 0; e < this.length; e++) { var n = this[e].style;
n.webkitTransform = n.MsTransform = n.msTransform = n.MozTransform = n.OTransform = n.transform = t } return this }), "transition" in n.fn || (n.fn.transition = function(t) { "string" !== typeof t && (t += "ms"); for (var e = 0; e < this.length; e++) { var n = this[e].style;
n.webkitTransitionDuration = n.MsTransitionDuration = n.msTransitionDuration = n.MozTransitionDuration = n.OTransitionDuration = n.transitionDuration = t } return this }), "outerWidth" in n.fn || (n.fn.outerWidth = function(t) { return this.length > 0 ? t ? this[0].offsetWidth + parseFloat(this.css("margin-right")) + parseFloat(this.css("margin-left")) : this[0].offsetWidth : null })), window.Swiper = e }(), t.exports = window.Swiper }, function(t, e, n) { "use strict"; var i = n(42),
a = n(19),
o = function() { this.docConfig = "undefined" != typeof __docConfig && __docConfig || {}, this.curLink = window.location.href, this.favorConfig = { btnClass: "j_iadd_btn", favorId: "", URL: "http://data.api.sina.cn/api/count/count.php?act=", backURL: this.docConfig.__docUrl || this.curLink, colleid: this.docConfig.__colleid || "", collekey: this.docConfig.__collekey || "", docid: this.docConfig.__gspsId || "", domain: this.docConfig.__domain || this.curLink.split("//")[1].split("/")[0].split(".")[0], number: 0 }, this.tokenTxt = { addOK: "\u60a8\u5df2\u6536\u85cf\uff0c\u8bf7\u5230\u4e2a\u4eba\u4e2d\u5fc3\u67e5\u770b", addFail: "\u6536\u85cf\u5931\u8d25!", cancelOK: "\u5df2\u53d6\u6d88\u6536\u85cf", cancelFail: "\u53d6\u6d88\u6536\u85cf\u5931\u8d25!" }, this.status = { INIT: 0, ADD: 1, CANCEL: 2 }, this.myUtility = new a.a, this.myLogin = new i.a };
o.prototype = { showToken: function(t, e) { this.myUtility.showToken(t, e) }, ajaxByJsonp: function(t) { this.myUtility.ajaxByJsonp(t) }, getShowNum: function(t) { return this.myUtility.getShowNum(t) }, openLogin: function(t, e) { this.myLogin.openLogin(t, e) }, cf: { closeTxt: !1, onClass: [] }, getConfig: function(t) { t || (t = $("." + this.favorConfig.btnClass).eq(0)), t.length < 1 || (this.cf.closeTxt = t.data("closetxt") && !!parseInt(t.data("closetxt")) || !1, this.cf.onClass = t.data("onclass") && t.data("onclass").split(",") || []) }, favorInit: function() { var t = this.favorConfig,
e = this.status,
n = this;
this.favorEvent(e.INIT), $("body").on("click tap", function() {}), document.addEventListener("click", function(i) { var a = i.target || n.getEvent().target,
o = $(a),
r = $(a).parents("." + t.btnClass); if (o.hasClass(t.btnClass) || r.length > 0) { r.length < 1 ? n.getConfig(o) : n.getConfig(r); var s = e.ADD;
o.hasClass("on") && (s = e.CANCEL), n.showToken(), n.favorEvent(s) } }, !1) }, favorEvent: function(t) { var e = this.favorConfig,
n = this.status,
i = $("." + e.btnClass),
a = this; if (e.colleid && e.collekey && "undefined" != typeof userInfo) { userInfo.uid; var o = "",
r = "undefined" != typeof t ? t : n.ADD; if (userInfo || userInfo.islogin) { o = r == n.INIT ? "&op=isFav&jsoncallback=initFavorCallback" : r == n.CANCEL && e.favorId ? "&op=del&fid=" + e.favorId + "&jsoncallback=cancelFavorCallback" : "&op=add&jsoncallback=addFavorCallback"; var s = document.location.protocol + "//my.sina.cn/aj/artfavorite?docid=" + e.docid + "&backurl=" + e.backURL + "&tj_ch=" + e.domain + "&ch=&csrftime=" + e.colleid + "&csrfcode=" + e.collekey + "&channel=" + e.domain + o;
this.ajaxByJsonp(s) } else r == n.ADD && a.openLogin(a.favorEvent.bind(a)) }
window.cancelFavorCallback = function(t) { i.data("loading", "no"), i && 1 == t.status ? (a.cf.closeTxt || i.html("\u6536\u85cf"), a.cf.onClass.length > 0 && a.cf.onClass.forEach(function(t) { i.removeClass(t) }), i.removeClass("on"), a.showToken(a.tokenTxt.cancelOK, !0), e.favorId = null) : t && 2 == t.code ? document.location.href = t.data : a.showToken(a.tokenTxt.cancelFail, !0) }, window.addFavorCallback = function(t) { i.data("loading", "no"), t && 1 == t.code ? (a.cf.closeTxt || i.html("\u5df2\u6536\u85cf"), a.cf.onClass.length > 0 && a.cf.onClass.forEach(function(t) { i.addClass(t) }), i.addClass("on"), a.showToken(a.tokenTxt.addOK, !1), e.favorId = t.data) : a.showToken(a.tokenTxt.addFail, !0) }, window.initFavorCallback = function(t) { t && 1 == t.code && t.data.id && (a.cf.closeTxt || i.html("\u5df2\u6536\u85cf"), a.cf.onClass.length > 0 && a.cf.onClass.forEach(function(t) { i.addClass(t) }), i.addClass("on"), e.favorId = t.data.id) } }, init: function() { this.getConfig(), this.favorInit() } }, e.a = o }, function(t, e, n) { n(4);
t.exports = function(t) { "use strict";
t = t || {}; return '\n\t\n\n', '\n\t\n\n' } }, function(t, e, n) { var i = n(4);
t.exports = function(t) { "use strict";
t = t || {}; var e = "",
n = i.$escape; return e += '\n\t\n\t\t
', e += n(i.commentConfig.cmntTitle), e += '
\n\t\t\n\t\n\n" } }, function(t, e) { var n = location.origin + location.pathname,
i = function(t) { return void 0 != t && "" != t && a(document.cookie, t, ";", "") },
a = function(t, e, n, i) { if ("" == t) return "";
e += i = "" == i ? "=" : i; var a = t.indexOf(e); if (a < 0) return "";
a += e.length; var o = t.indexOf(n, a); return o < a && (o = t.length), t.substring(a, o) };
t.exports = { collectData: function() { var t = navigator.connection || navigator.mozConnection || navigator.webkitConnection,
e = "UNKNOW"; return t && (e = t.type || t.effectiveType || e), { connection: t, platform: navigator.platform, urlCutQueryString: n, href: location.href, useragent: navigator.userAgent, ustat: i("ustat") || "" } }, getCookie: i } }, function(t, e, n) { var i = n(4);
t.exports = function(t) { "use strict";
t = t || {}; var e = "",
n = i.$each,
a = t.faceLen,
o = (t.val1, t.i, t.onePageNum),
r = (t.val2, t.j, t.item, t.cmntFace),
s = i.$escape;
t.$value, t.$index; return e += '\n \n
\n ', n(i.Array(a), function(t, a) { e += '\n
\n ', n(i.Array(o), function(t, n) { e += "\n "; var i = r[a * o + n];
e += "\n ", i && (e += '\n \n '), e += "\n " }), e += "\n
\n " }), e += '\n
\n \n
\n ', n(i.Array(a), function(t, n) { e += '\n
', e += s(n), e += "
\n " }), e += "\n
\n" } }, function(t, e, n) { "use strict"; var i = function t(e) { if (!(this instanceof t)) return new t(e);
this.options = this.extend(e, { detectScreenOrientation: !0, sortPluginsFor: [/palemoon/i], userDefinedFonts: [] }), this.nativeForEach = Array.prototype.forEach, this.nativeMap = Array.prototype.map };
i.prototype = { extend: function(t, e) { if (null == t) return e; for (var n in t) null != t[n] && e[n] !== t[n] && (e[n] = t[n]); return e }, get: function(t) { var e = [];
e = this.userAgentKey(e), e = this.languageKey(e), e = this.colorDepthKey(e), e = this.pixelRatioKey(e), e = this.hardwareConcurrencyKey(e), e = this.screenResolutionKey(e), e = this.availableScreenResolutionKey(e), e = this.timezoneOffsetKey(e), e = this.sessionStorageKey(e), e = this.localStorageKey(e), e = this.indexedDbKey(e), e = this.addBehaviorKey(e), e = this.openDatabaseKey(e), e = this.cpuClassKey(e), e = this.platformKey(e), e = this.doNotTrackKey(e), e = this.pluginsKey(e), e = this.canvasKey(e), e = this.webglKey(e), e = this.adBlockKey(e), e = this.hasLiedLanguagesKey(e), e = this.hasLiedResolutionKey(e), e = this.hasLiedOsKey(e), e = this.hasLiedBrowserKey(e), e = this.touchSupportKey(e), e = this.customEntropyFunction(e); var n = this;
this.fontsKey(e, function(e) { var i = [],
a = ["js_fonts", "webgl", "canvas"];
n.each(e, function(t) { var e = t.value,
o = t.key; "undefined" !== typeof t.value.join && (e = t.value.join(";"), t.value = e), -1 !== a.indexOf(o) && (t.value = n.x64hash128(t.value, 31)), i.push(e) }); var o = n.x64hash128(i.join("~~~"), 31); return t(o, e) }) }, customEntropyFunction: function(t) { return "function" === typeof this.options.customFunction && t.push({ key: "custom", value: this.options.customFunction() }), t }, userAgentKey: function(t) { return this.options.excludeUserAgent || t.push({ key: "user_agent", value: this.getUserAgent() }), t }, getUserAgent: function() { return navigator.userAgent }, languageKey: function(t) { return this.options.excludeLanguage || t.push({ key: "language", value: navigator.language || navigator.userLanguage || navigator.browserLanguage || navigator.systemLanguage || "" }), t }, colorDepthKey: function(t) { return this.options.excludeColorDepth || t.push({ key: "color_depth", value: screen.colorDepth || -1 }), t }, pixelRatioKey: function(t) { return this.options.excludePixelRatio || t.push({ key: "pixel_ratio", value: this.getPixelRatio() }), t }, getPixelRatio: function() { return window.devicePixelRatio || "" }, screenResolutionKey: function(t) { return this.options.excludeScreenResolution ? t : this.getScreenResolution(t) }, getScreenResolution: function(t) { var e; return "undefined" !== typeof(e = this.options.detectScreenOrientation && screen.height > screen.width ? [screen.height, screen.width] : [screen.width, screen.height]) ? t.push({ key: "resolution", value: e }) : t.push({ key: "resolution", value: "unknown" }), t }, availableScreenResolutionKey: function(t) { return this.options.excludeAvailableScreenResolution ? t : this.getAvailableScreenResolution(t) }, getAvailableScreenResolution: function(t) { var e; return screen.availWidth && screen.availHeight && (e = this.options.detectScreenOrientation ? screen.availHeight > screen.availWidth ? [screen.availHeight, screen.availWidth] : [screen.availWidth, screen.availHeight] : [screen.availHeight, screen.availWidth]), "undefined" !== typeof e ? t.push({ key: "available_resolution", value: e }) : t.push({ key: "available_resolution", value: "unknown" }), t }, timezoneOffsetKey: function(t) { return this.options.excludeTimezoneOffset || t.push({ key: "timezone_offset", value: (new Date).getTimezoneOffset() }), t }, sessionStorageKey: function(t) { return !this.options.excludeSessionStorage && this.hasSessionStorage() && t.push({ key: "session_storage", value: 1 }), t }, localStorageKey: function(t) { return !this.options.excludeSessionStorage && this.hasLocalStorage() && t.push({ key: "local_storage", value: 1 }), t }, indexedDbKey: function(t) { return this.options.excludeIndexedDB || (this.hasIndexedDB() ? t.push({ key: "indexed_db", value: 1 }) : t.push({ key: "indexed_db", value: 0 })), t }, addBehaviorKey: function(t) { return this.options.excludeAddBehavior || (document.body && document.body.addBehavior ? t.push({ key: "add_behavior", value: 1 }) : t.push({ key: "add_behavior", value: 0 })), t }, openDatabaseKey: function(t) { return this.options.excludeOpenDatabase || (window.openDatabase ? t.push({ key: "open_database", value: 1 }) : t.push({ key: "open_database", value: 0 })), t }, cpuClassKey: function(t) { return this.options.excludeCpuClass || t.push({ key: "cpu_class", value: this.getNavigatorCpuClass() }), t }, platformKey: function(t) { return this.options.excludePlatform || t.push({ key: "navigator_platform", value: this.getNavigatorPlatform() }), t }, doNotTrackKey: function(t) { return this.options.excludeDoNotTrack || t.push({ key: "do_not_track", value: this.getDoNotTrack() }), t }, canvasKey: function(t) { return this.options.excludeCanvas || (this.isCanvasSupported() ? t.push({ key: "canvas", value: this.getCanvasFp() }) : t.push({ key: "canvas", value: "unSupported" })), t }, webglKey: function(t) { return this.options.excludeWebGL ? t : this.isWebGlSupported() ? (t.push({ key: "webgl", value: this.getWebglFp() }), t) : (t.push({ key: "webgl", value: "unSupported" }), t) }, adBlockKey: function(t) { return this.options.excludeAdBlock || t.push({ key: "adblock", value: this.getAdBlock() }), t }, hasLiedLanguagesKey: function(t) { return this.options.excludeHasLiedLanguages || t.push({ key: "has_lied_languages", value: this.getHasLiedLanguages() }), t }, hasLiedResolutionKey: function(t) { return this.options.excludeHasLiedResolution || t.push({ key: "has_lied_resolution", value: this.getHasLiedResolution() }), t }, hasLiedOsKey: function(t) { return this.options.excludeHasLiedOs || t.push({ key: "has_lied_os", value: this.getHasLiedOs() }), t }, hasLiedBrowserKey: function(t) { return this.options.excludeHasLiedBrowser || t.push({ key: "has_lied_browser", value: this.getHasLiedBrowser() }), t }, fontsKey: function(t, e) { return this.options.excludeJsFonts ? e(t) : this.jsFontsKey(t, e) }, jsFontsKey: function(t, e) { var n = this; return setTimeout(function() { var i = ["monospace", "sans-serif", "serif"],
a = ["Andale Mono", "Arial", "Arial Black", "Arial Hebrew", "Arial MT", "Arial Narrow", "Arial Rounded MT Bold", "Arial Unicode MS", "Bitstream Vera Sans Mono", "Book Antiqua", "Bookman Old Style", "Calibri", "Cambria", "Cambria Math", "Century", "Century Gothic", "Century Schoolbook", "Comic Sans", "Comic Sans MS", "Consolas", "Courier", "Courier New", "Garamond", "Geneva", "Georgia", "Helvetica", "Helvetica Neue", "Impact", "Lucida Bright", "Lucida Calligraphy", "Lucida Console", "Lucida Fax", "LUCIDA GRANDE", "Lucida Handwriting", "Lucida Sans", "Lucida Sans Typewriter", "Lucida Sans Unicode", "Microsoft Sans Serif", "Monaco", "Monotype Corsiva", "MS Gothic", "MS Outlook", "MS PGothic", "MS Reference Sans Serif", "MS Sans Serif", "MS Serif", "MYRIAD", "MYRIAD PRO", "Palatino", "Palatino Linotype", "Segoe Print", "Segoe Script", "Segoe UI", "Segoe UI Light", "Segoe UI Semibold", "Segoe UI Symbol", "Tahoma", "Times", "Times New Roman", "Times New Roman PS", "Trebuchet MS", "Verdana", "Wingdings", "Wingdings 2", "Wingdings 3"];
n.options.extendedJsFonts && (a = a.concat(["Abadi MT Condensed Light", "Academy Engraved LET", "ADOBE CASLON PRO", "Adobe Garamond", "ADOBE GARAMOND PRO", "Agency FB", "Aharoni", "Albertus Extra Bold", "Albertus Medium", "Algerian", "Amazone BT", "American Typewriter", "American Typewriter Condensed", "AmerType Md BT", "Andalus", "Angsana New", "AngsanaUPC", "Antique Olive", "Aparajita", "Apple Chancery", "Apple Color Emoji", "Apple SD Gothic Neo", "Arabic Typesetting", "ARCHER", "ARNO PRO", "Arrus BT", "Aurora Cn BT", "AvantGarde Bk BT", "AvantGarde Md BT", "AVENIR", "Ayuthaya", "Bandy", "Bangla Sangam MN", "Bank Gothic", "BankGothic Md BT", "Baskerville", "Baskerville Old Face", "Batang", "BatangChe", "Bauer Bodoni", "Bauhaus 93", "Bazooka", "Bell MT", "Bembo", "Benguiat Bk BT", "Berlin Sans FB", "Berlin Sans FB Demi", "Bernard MT Condensed", "BernhardFashion BT", "BernhardMod BT", "Big Caslon", "BinnerD", "Blackadder ITC", "BlairMdITC TT", "Bodoni 72", "Bodoni 72 Oldstyle", "Bodoni 72 Smallcaps", "Bodoni MT", "Bodoni MT Black", "Bodoni MT Condensed", "Bodoni MT Poster Compressed", "Bookshelf Symbol 7", "Boulder", "Bradley Hand", "Bradley Hand ITC", "Bremen Bd BT", "Britannic Bold", "Broadway", "Browallia New", "BrowalliaUPC", "Brush Script MT", "Californian FB", "Calisto MT", "Calligrapher", "Candara", "CaslonOpnface BT", "Castellar", "Centaur", "Cezanne", "CG Omega", "CG Times", "Chalkboard", "Chalkboard SE", "Chalkduster", "Charlesworth", "Charter Bd BT", "Charter BT", "Chaucer", "ChelthmITC Bk BT", "Chiller", "Clarendon", "Clarendon Condensed", "CloisterBlack BT", "Cochin", "Colonna MT", "Constantia", "Cooper Black", "Copperplate", "Copperplate Gothic", "Copperplate Gothic Bold", "Copperplate Gothic Light", "CopperplGoth Bd BT", "Corbel", "Cordia New", "CordiaUPC", "Cornerstone", "Coronet", "Cuckoo", "Curlz MT", "DaunPenh", "Dauphin", "David", "DB LCD Temp", "DELICIOUS", "Denmark", "DFKai-SB", "Didot", "DilleniaUPC", "DIN", "DokChampa", "Dotum", "DotumChe", "Ebrima", "Edwardian Script ITC", "Elephant", "English 111 Vivace BT", "Engravers MT", "EngraversGothic BT", "Eras Bold ITC", "Eras Demi ITC", "Eras Light ITC", "Eras Medium ITC", "EucrosiaUPC", "Euphemia", "Euphemia UCAS", "EUROSTILE", "Exotc350 Bd BT", "FangSong", "Felix Titling", "Fixedsys", "FONTIN", "Footlight MT Light", "Forte", "FrankRuehl", "Fransiscan", "Freefrm721 Blk BT", "FreesiaUPC", "Freestyle Script", "French Script MT", "FrnkGothITC Bk BT", "Fruitger", "FRUTIGER", "Futura", "Futura Bk BT", "Futura Lt BT", "Futura Md BT", "Futura ZBlk BT", "FuturaBlack BT", "Gabriola", "Galliard BT", "Gautami", "Geeza Pro", "Geometr231 BT", "Geometr231 Hv BT", "Geometr231 Lt BT", "GeoSlab 703 Lt BT", "GeoSlab 703 XBd BT", "Gigi", "Gill Sans", "Gill Sans MT", "Gill Sans MT Condensed", "Gill Sans MT Ext Condensed Bold", "Gill Sans Ultra Bold", "Gill Sans Ultra Bold Condensed", "Gisha", "Gloucester MT Extra Condensed", "GOTHAM", "GOTHAM BOLD", "Goudy Old Style", "Goudy Stout", "GoudyHandtooled BT", "GoudyOLSt BT", "Gujarati Sangam MN", "Gulim", "GulimChe", "Gungsuh", "GungsuhChe", "Gurmukhi MN", "Haettenschweiler", "Harlow Solid Italic", "Harrington", "Heather", "Heiti SC", "Heiti TC", "HELV", "Herald", "High Tower Text", "Hiragino Kaku Gothic ProN", "Hiragino Mincho ProN", "Hoefler Text", "Humanst 521 Cn BT", "Humanst521 BT", "Humanst521 Lt BT", "Imprint MT Shadow", "Incised901 Bd BT", "Incised901 BT", "Incised901 Lt BT", "INCONSOLATA", "Informal Roman", "Informal011 BT", "INTERSTATE", "IrisUPC", "Iskoola Pota", "JasmineUPC", "Jazz LET", "Jenson", "Jester", "Jokerman", "Juice ITC", "Kabel Bk BT", "Kabel Ult BT", "Kailasa", "KaiTi", "Kalinga", "Kannada Sangam MN", "Kartika", "Kaufmann Bd BT", "Kaufmann BT", "Khmer UI", "KodchiangUPC", "Kokila", "Korinna BT", "Kristen ITC", "Krungthep", "Kunstler Script", "Lao UI", "Latha", "Leelawadee", "Letter Gothic", "Levenim MT", "LilyUPC", "Lithograph", "Lithograph Light", "Long Island", "Lydian BT", "Magneto", "Maiandra GD", "Malayalam Sangam MN", "Malgun Gothic", "Mangal", "Marigold", "Marion", "Marker Felt", "Market", "Marlett", "Matisse ITC", "Matura MT Script Capitals", "Meiryo", "Meiryo UI", "Microsoft Himalaya", "Microsoft JhengHei", "Microsoft New Tai Lue", "Microsoft PhagsPa", "Microsoft Tai Le", "Microsoft Uighur", "Microsoft YaHei", "Microsoft Yi Baiti", "MingLiU", "MingLiU_HKSCS", "MingLiU_HKSCS-ExtB", "MingLiU-ExtB", "Minion", "Minion Pro", "Miriam", "Miriam Fixed", "Mistral", "Modern", "Modern No. 20", "Mona Lisa Solid ITC TT", "Mongolian Baiti", "MONO", "MoolBoran", "Mrs Eaves", "MS LineDraw", "MS Mincho", "MS PMincho", "MS Reference Specialty", "MS UI Gothic", "MT Extra", "MUSEO", "MV Boli", "Nadeem", "Narkisim", "NEVIS", "News Gothic", "News GothicMT", "NewsGoth BT", "Niagara Engraved", "Niagara Solid", "Noteworthy", "NSimSun", "Nyala", "OCR A Extended", "Old Century", "Old English Text MT", "Onyx", "Onyx BT", "OPTIMA", "Oriya Sangam MN", "OSAKA", "OzHandicraft BT", "Palace Script MT", "Papyrus", "Parchment", "Party LET", "Pegasus", "Perpetua", "Perpetua Titling MT", "PetitaBold", "Pickwick", "Plantagenet Cherokee", "Playbill", "PMingLiU", "PMingLiU-ExtB", "Poor Richard", "Poster", "PosterBodoni BT", "PRINCETOWN LET", "Pristina", "PTBarnum BT", "Pythagoras", "Raavi", "Rage Italic", "Ravie", "Ribbon131 Bd BT", "Rockwell", "Rockwell Condensed", "Rockwell Extra Bold", "Rod", "Roman", "Sakkal Majalla", "Santa Fe LET", "Savoye LET", "Sceptre", "Script", "Script MT Bold", "SCRIPTINA", "Serifa", "Serifa BT", "Serifa Th BT", "ShelleyVolante BT", "Sherwood", "Shonar Bangla", "Showcard Gothic", "Shruti", "Signboard", "SILKSCREEN", "SimHei", "Simplified Arabic", "Simplified Arabic Fixed", "SimSun", "SimSun-ExtB", "Sinhala Sangam MN", "Sketch Rockwell", "Skia", "Small Fonts", "Snap ITC", "Snell Roundhand", "Socket", "Souvenir Lt BT", "Staccato222 BT", "Steamer", "Stencil", "Storybook", "Styllo", "Subway", "Swis721 BlkEx BT", "Swiss911 XCm BT", "Sylfaen", "Synchro LET", "System", "Tamil Sangam MN", "Technical", "Teletype", "Telugu Sangam MN", "Tempus Sans ITC", "Terminal", "Thonburi", "Traditional Arabic", "Trajan", "TRAJAN PRO", "Tristan", "Tubular", "Tunga", "Tw Cen MT", "Tw Cen MT Condensed", "Tw Cen MT Condensed Extra Bold", "TypoUpright BT", "Unicorn", "Univers", "Univers CE 55 Medium", "Univers Condensed", "Utsaah", "Vagabond", "Vani", "Vijaya", "Viner Hand ITC", "VisualUI", "Vivaldi", "Vladimir Script", "Vrinda", "Westminster", "WHITNEY", "Wide Latin", "ZapfEllipt BT", "ZapfHumnst BT", "ZapfHumnst Dm BT", "Zapfino", "Zurich BlkEx BT", "Zurich Ex BT", "ZWAdobeF"])), a = a.concat(n.options.userDefinedFonts); var o = document.getElementsByTagName("body")[0],
r = document.createElement("div"),
s = document.createElement("div"),
c = {},
l = {},
d = function() { var t = document.createElement("span"); return t.style.position = "absolute", t.style.left = "-9999px", t.style.fontSize = "72px", t.style.lineHeight = "normal", t.innerHTML = "mmmmmmmmmmlli", t },
u = function(t, e) { var n = d(); return n.style.fontFamily = "'" + t + "'," + e, n },
p = function(t) { for (var e = !1, n = 0; n < i.length; n++)
if (e = t[n].offsetWidth !== c[i[n]] || t[n].offsetHeight !== l[i[n]]) return e;
return e },
f = function() { for (var t = [], e = 0, n = i.length; e < n; e++) { var a = d();
a.style.fontFamily = i[e], r.appendChild(a), t.push(a) } return t }();
o.appendChild(r); for (var h = 0, m = i.length; h < m; h++) c[i[h]] = f[h].offsetWidth, l[i[h]] = f[h].offsetHeight; var g = function() { for (var t = {}, e = 0, n = a.length; e < n; e++) { for (var o = [], r = 0, c = i.length; r < c; r++) { var l = u(a[e], i[r]);
s.appendChild(l), o.push(l) }
t[a[e]] = o } return t }();
o.appendChild(s); for (var v = [], _ = 0, w = a.length; _ < w; _++) p(g[a[_]]) && v.push(a[_]);
o.removeChild(s), o.removeChild(r), t.push({ key: "js_fonts", value: v }), e(t) }, 1) }, pluginsKey: function(t) { return this.options.excludePlugins || (this.isIE() ? this.options.excludeIEPlugins || t.push({ key: "ie_plugins", value: this.getIEPlugins() }) : t.push({ key: "regular_plugins", value: this.getRegularPlugins() })), t }, getRegularPlugins: function() { for (var t = [], e = 0, n = navigator.plugins.length; e < n; e++) t.push(navigator.plugins[e]); return this.pluginsShouldBeSorted() && (t = t.sort(function(t, e) { return t.name > e.name ? 1 : t.name < e.name ? -1 : 0 })), this.map(t, function(t) { var e = this.map(t, function(t) { return [t.type, t.suffixes].join("~") }).join(","); return [t.name, t.description, e].join("::") }, this) }, getIEPlugins: function() { var t = []; if (Object.getOwnPropertyDescriptor && Object.getOwnPropertyDescriptor(window, "ActiveXObject") || "ActiveXObject" in window) { t = this.map(["AcroPDF.PDF", "Adodb.Stream", "AgControl.AgControl", "DevalVRXCtrl.DevalVRXCtrl.1", "MacromediaFlashPaper.MacromediaFlashPaper", "Msxml2.DOMDocument", "Msxml2.XMLHTTP", "PDF.PdfCtrl", "QuickTime.QuickTime", "QuickTimeCheckObject.QuickTimeCheck.1", "RealPlayer", "RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)", "RealVideo.RealVideo(tm) ActiveX Control (32-bit)", "Scripting.Dictionary", "SWCtl.SWCtl", "Shell.UIHelper", "ShockwaveFlash.ShockwaveFlash", "Skype.Detection", "TDCCtl.TDCCtl", "WMPlayer.OCX", "rmocx.RealPlayer G2 Control", "rmocx.RealPlayer G2 Control.1"], function(t) { try { return new ActiveXObject(t), t } catch (e) { return null } }) } return navigator.plugins && (t = t.concat(this.getRegularPlugins())), t }, pluginsShouldBeSorted: function() { for (var t = !1, e = 0, n = this.options.sortPluginsFor.length; e < n; e++) { var i = this.options.sortPluginsFor[e]; if (navigator.userAgent.match(i)) { t = !0; break } } return t }, touchSupportKey: function(t) { return this.options.excludeTouchSupport || t.push({ key: "touch_support", value: this.getTouchSupport() }), t }, hardwareConcurrencyKey: function(t) { return this.options.excludeHardwareConcurrency || t.push({ key: "hardware_concurrency", value: this.getHardwareConcurrency() }), t }, hasSessionStorage: function() { try { return !!window.sessionStorage } catch (t) { return !0 } }, hasLocalStorage: function() { try { return !!window.localStorage } catch (t) { return !0 } }, hasIndexedDB: function() { try { return !!window.indexedDB } catch (t) { return !0 } }, getHardwareConcurrency: function() { return navigator.hardwareConcurrency ? navigator.hardwareConcurrency : "unknown" }, getNavigatorCpuClass: function() { return navigator.cpuClass ? navigator.cpuClass : "unknown" }, getNavigatorPlatform: function() { return navigator.platform ? navigator.platform : "unknown" }, getDoNotTrack: function() { return navigator.doNotTrack ? navigator.doNotTrack : navigator.msDoNotTrack ? navigator.msDoNotTrack : window.doNotTrack ? window.doNotTrack : "unknown" }, getTouchSupport: function() { var t = 0,
e = !1; "undefined" !== typeof navigator.maxTouchPoints ? t = navigator.maxTouchPoints : "undefined" !== typeof navigator.msMaxTouchPoints && (t = navigator.msMaxTouchPoints); try { document.createEvent("TouchEvent"), e = !0 } catch (n) {} return [t, e, "ontouchstart" in window] }, getCanvasFp: function() { var t = [],
e = document.createElement("canvas");
e.width = 2e3, e.height = 200, e.style.display = "inline"; var n = e.getContext("2d"); return n.rect(0, 0, 10, 10), n.rect(2, 2, 6, 6), t.push("canvas winding:" + (!1 === n.isPointInPath(5, 5, "evenodd") ? "yes" : "no")), n.textBaseline = "alphabetic", n.fillStyle = "#f60", n.fillRect(125, 1, 62, 20), n.fillStyle = "#069", this.options.dontUseFakeFontInCanvas ? n.font = "11pt Arial" : n.font = "11pt no-real-font-123", n.fillText("Cwm fjordbank glyphs vext quiz, \ud83d\ude03", 2, 15), n.fillStyle = "rgba(102, 204, 0, 0.2)", n.font = "18pt Arial", n.fillText("Cwm fjordbank glyphs vext quiz, \ud83d\ude03", 4, 45), n.globalCompositeOperation = "multiply", n.fillStyle = "rgb(255,0,255)", n.beginPath(), n.arc(50, 50, 50, 0, 2 * Math.PI, !0), n.closePath(), n.fill(), n.fillStyle = "rgb(0,255,255)", n.beginPath(), n.arc(100, 50, 50, 0, 2 * Math.PI, !0), n.closePath(), n.fill(), n.fillStyle = "rgb(255,255,0)", n.beginPath(), n.arc(75, 100, 50, 0, 2 * Math.PI, !0), n.closePath(), n.fill(), n.fillStyle = "rgb(255,0,255)", n.arc(75, 75, 75, 0, 2 * Math.PI, !0), n.arc(75, 75, 25, 0, 2 * Math.PI, !0), n.fill("evenodd"), t.push("canvas fp:" + e.toDataURL()), t.join("~") }, getWebglFp: function() { var t, e = function(e) { return t.clearColor(0, 0, 0, 1), t.enable(t.DEPTH_TEST), t.depthFunc(t.LEQUAL), t.clear(t.COLOR_BUFFER_BIT | t.DEPTH_BUFFER_BIT), "[" + e[0] + ", " + e[1] + "]" }; if (!(t = this.getWebglCanvas())) return null; var n = [],
i = t.createBuffer();
t.bindBuffer(t.ARRAY_BUFFER, i); var a = new Float32Array([-.2, -.9, 0, .4, -.26, 0, 0, .732134444, 0]);
t.bufferData(t.ARRAY_BUFFER, a, t.STATIC_DRAW), i.itemSize = 3, i.numItems = 3; var o = t.createProgram(),
r = t.createShader(t.VERTEX_SHADER);
t.shaderSource(r, "attribute vec2 attrVertex;varying vec2 varyinTexCoordinate;uniform vec2 uniformOffset;void main(){varyinTexCoordinate=attrVertex+uniformOffset;gl_Position=vec4(attrVertex,0,1);}"), t.compileShader(r); var s = t.createShader(t.FRAGMENT_SHADER);
t.shaderSource(s, "precision mediump float;varying vec2 varyinTexCoordinate;void main() {gl_FragColor=vec4(varyinTexCoordinate,0,1);}"), t.compileShader(s), t.attachShader(o, r), t.attachShader(o, s), t.linkProgram(o), t.useProgram(o), o.vertexPosAttrib = t.getAttribLocation(o, "attrVertex"), o.offsetUniform = t.getUniformLocation(o, "uniformOffset"), t.enableVertexAttribArray(o.vertexPosArray), t.vertexAttribPointer(o.vertexPosAttrib, i.itemSize, t.FLOAT, !1, 0, 0), t.uniform2f(o.offsetUniform, 1, 1), t.drawArrays(t.TRIANGLE_STRIP, 0, i.numItems), null != t.canvas && n.push(t.canvas.toDataURL()), n.push("extensions:" + t.getSupportedExtensions().join(";")), n.push("webgl aliased line width range:" + e(t.getParameter(t.ALIASED_LINE_WIDTH_RANGE))), n.push("webgl aliased point size range:" + e(t.getParameter(t.ALIASED_POINT_SIZE_RANGE))), n.push("webgl alpha bits:" + t.getParameter(t.ALPHA_BITS)), n.push("webgl antialiasing:" + (t.getContextAttributes().antialias ? "yes" : "no")), n.push("webgl blue bits:" + t.getParameter(t.BLUE_BITS)), n.push("webgl depth bits:" + t.getParameter(t.DEPTH_BITS)), n.push("webgl green bits:" + t.getParameter(t.GREEN_BITS)), n.push("webgl max anisotropy:" + function(t) { var e, n = t.getExtension("EXT_texture_filter_anisotropic") || t.getExtension("WEBKIT_EXT_texture_filter_anisotropic") || t.getExtension("MOZ_EXT_texture_filter_anisotropic"); return n ? (0 === (e = t.getParameter(n.MAX_TEXTURE_MAX_ANISOTROPY_EXT)) && (e = 2), e) : null }(t)), n.push("webgl max combined texture image units:" + t.getParameter(t.MAX_COMBINED_TEXTURE_IMAGE_UNITS)), n.push("webgl max cube map texture size:" + t.getParameter(t.MAX_CUBE_MAP_TEXTURE_SIZE)), n.push("webgl max fragment uniform vectors:" + t.getParameter(t.MAX_FRAGMENT_UNIFORM_VECTORS)), n.push("webgl max render buffer size:" + t.getParameter(t.MAX_RENDERBUFFER_SIZE)), n.push("webgl max texture image units:" + t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS)), n.push("webgl max texture size:" + t.getParameter(t.MAX_TEXTURE_SIZE)), n.push("webgl max varying vectors:" + t.getParameter(t.MAX_VARYING_VECTORS)), n.push("webgl max vertex attribs:" + t.getParameter(t.MAX_VERTEX_ATTRIBS)), n.push("webgl max vertex texture image units:" + t.getParameter(t.MAX_VERTEX_TEXTURE_IMAGE_UNITS)), n.push("webgl max vertex uniform vectors:" + t.getParameter(t.MAX_VERTEX_UNIFORM_VECTORS)), n.push("webgl max viewport dims:" + e(t.getParameter(t.MAX_VIEWPORT_DIMS))), n.push("webgl red bits:" + t.getParameter(t.RED_BITS)), n.push("webgl renderer:" + t.getParameter(t.RENDERER)), n.push("webgl shading language version:" + t.getParameter(t.SHADING_LANGUAGE_VERSION)), n.push("webgl stencil bits:" + t.getParameter(t.STENCIL_BITS)), n.push("webgl vendor:" + t.getParameter(t.VENDOR)), n.push("webgl version:" + t.getParameter(t.VERSION)); try { var c = t.getExtension("WEBGL_debug_renderer_info");
c && (n.push("webgl unmasked vendor:" + t.getParameter(c.UNMASKED_VENDOR_WEBGL)), n.push("webgl unmasked renderer:" + t.getParameter(c.UNMASKED_RENDERER_WEBGL))) } catch (l) {} return t.getShaderPrecisionFormat ? (n.push("webgl vertex shader high float precision:" + t.getShaderPrecisionFormat(t.VERTEX_SHADER, t.HIGH_FLOAT).precision), n.push("webgl vertex shader high float precision rangeMin:" + t.getShaderPrecisionFormat(t.VERTEX_SHADER, t.HIGH_FLOAT).rangeMin), n.push("webgl vertex shader high float precision rangeMax:" + t.getShaderPrecisionFormat(t.VERTEX_SHADER, t.HIGH_FLOAT).rangeMax), n.push("webgl vertex shader medium float precision:" + t.getShaderPrecisionFormat(t.VERTEX_SHADER, t.MEDIUM_FLOAT).precision), n.push("webgl vertex shader medium float precision rangeMin:" + t.getShaderPrecisionFormat(t.VERTEX_SHADER, t.MEDIUM_FLOAT).rangeMin), n.push("webgl vertex shader medium float precision rangeMax:" + t.getShaderPrecisionFormat(t.VERTEX_SHADER, t.MEDIUM_FLOAT).rangeMax), n.push("webgl vertex shader low float precision:" + t.getShaderPrecisionFormat(t.VERTEX_SHADER, t.LOW_FLOAT).precision), n.push("webgl vertex shader low float precision rangeMin:" + t.getShaderPrecisionFormat(t.VERTEX_SHADER, t.LOW_FLOAT).rangeMin), n.push("webgl vertex shader low float precision rangeMax:" + t.getShaderPrecisionFormat(t.VERTEX_SHADER, t.LOW_FLOAT).rangeMax), n.push("webgl fragment shader high float precision:" + t.getShaderPrecisionFormat(t.FRAGMENT_SHADER, t.HIGH_FLOAT).precision), n.push("webgl fragment shader high float precision rangeMin:" + t.getShaderPrecisionFormat(t.FRAGMENT_SHADER, t.HIGH_FLOAT).rangeMin), n.push("webgl fragment shader high float precision rangeMax:" + t.getShaderPrecisionFormat(t.FRAGMENT_SHADER, t.HIGH_FLOAT).rangeMax), n.push("webgl fragment shader medium float precision:" + t.getShaderPrecisionFormat(t.FRAGMENT_SHADER, t.MEDIUM_FLOAT).precision), n.push("webgl fragment shader medium float precision rangeMin:" + t.getShaderPrecisionFormat(t.FRAGMENT_SHADER, t.MEDIUM_FLOAT).rangeMin), n.push("webgl fragment shader medium float precision rangeMax:" + t.getShaderPrecisionFormat(t.FRAGMENT_SHADER, t.MEDIUM_FLOAT).rangeMax), n.push("webgl fragment shader low float precision:" + t.getShaderPrecisionFormat(t.FRAGMENT_SHADER, t.LOW_FLOAT).precision), n.push("webgl fragment shader low float precision rangeMin:" + t.getShaderPrecisionFormat(t.FRAGMENT_SHADER, t.LOW_FLOAT).rangeMin), n.push("webgl fragment shader low float precision rangeMax:" + t.getShaderPrecisionFormat(t.FRAGMENT_SHADER, t.LOW_FLOAT).rangeMax), n.push("webgl vertex shader high int precision:" + t.getShaderPrecisionFormat(t.VERTEX_SHADER, t.HIGH_INT).precision), n.push("webgl vertex shader high int precision rangeMin:" + t.getShaderPrecisionFormat(t.VERTEX_SHADER, t.HIGH_INT).rangeMin), n.push("webgl vertex shader high int precision rangeMax:" + t.getShaderPrecisionFormat(t.VERTEX_SHADER, t.HIGH_INT).rangeMax), n.push("webgl vertex shader medium int precision:" + t.getShaderPrecisionFormat(t.VERTEX_SHADER, t.MEDIUM_INT).precision), n.push("webgl vertex shader medium int precision rangeMin:" + t.getShaderPrecisionFormat(t.VERTEX_SHADER, t.MEDIUM_INT).rangeMin), n.push("webgl vertex shader medium int precision rangeMax:" + t.getShaderPrecisionFormat(t.VERTEX_SHADER, t.MEDIUM_INT).rangeMax), n.push("webgl vertex shader low int precision:" + t.getShaderPrecisionFormat(t.VERTEX_SHADER, t.LOW_INT).precision), n.push("webgl vertex shader low int precision rangeMin:" + t.getShaderPrecisionFormat(t.VERTEX_SHADER, t.LOW_INT).rangeMin), n.push("webgl vertex shader low int precision rangeMax:" + t.getShaderPrecisionFormat(t.VERTEX_SHADER, t.LOW_INT).rangeMax), n.push("webgl fragment shader high int precision:" + t.getShaderPrecisionFormat(t.FRAGMENT_SHADER, t.HIGH_INT).precision), n.push("webgl fragment shader high int precision rangeMin:" + t.getShaderPrecisionFormat(t.FRAGMENT_SHADER, t.HIGH_INT).rangeMin), n.push("webgl fragment shader high int precision rangeMax:" + t.getShaderPrecisionFormat(t.FRAGMENT_SHADER, t.HIGH_INT).rangeMax), n.push("webgl fragment shader medium int precision:" + t.getShaderPrecisionFormat(t.FRAGMENT_SHADER, t.MEDIUM_INT).precision), n.push("webgl fragment shader medium int precision rangeMin:" + t.getShaderPrecisionFormat(t.FRAGMENT_SHADER, t.MEDIUM_INT).rangeMin), n.push("webgl fragment shader medium int precision rangeMax:" + t.getShaderPrecisionFormat(t.FRAGMENT_SHADER, t.MEDIUM_INT).rangeMax), n.push("webgl fragment shader low int precision:" + t.getShaderPrecisionFormat(t.FRAGMENT_SHADER, t.LOW_INT).precision), n.push("webgl fragment shader low int precision rangeMin:" + t.getShaderPrecisionFormat(t.FRAGMENT_SHADER, t.LOW_INT).rangeMin), n.push("webgl fragment shader low int precision rangeMax:" + t.getShaderPrecisionFormat(t.FRAGMENT_SHADER, t.LOW_INT).rangeMax), n.join("~")) : n.join("~") }, getAdBlock: function() { var t = document.createElement("div");
t.innerHTML = " ", t.className = "adsbox"; var e = !1; try { document.body.appendChild(t), e = 0 === document.getElementsByClassName("adsbox")[0].offsetHeight, document.body.removeChild(t) } catch (n) { e = !1 } return e }, getHasLiedLanguages: function() { if ("undefined" !== typeof navigator.languages) try { if (navigator.languages[0].substr(0, 2) !== navigator.language.substr(0, 2)) return !0 } catch (t) { return !0 }
return !1 }, getHasLiedResolution: function() { return screen.width < screen.availWidth || screen.height < screen.availHeight }, getHasLiedOs: function() { var t, e = navigator.userAgent.toLowerCase(),
n = navigator.oscpu,
i = navigator.platform.toLowerCase(); if (t = e.indexOf("windows phone") >= 0 ? "Windows Phone" : e.indexOf("win") >= 0 ? "Windows" : e.indexOf("android") >= 0 ? "Android" : e.indexOf("linux") >= 0 ? "Linux" : e.indexOf("iphone") >= 0 || e.indexOf("ipad") >= 0 ? "iOS" : e.indexOf("mac") >= 0 ? "Mac" : "Other", ("ontouchstart" in window || navigator.maxTouchPoints > 0 || navigator.msMaxTouchPoints > 0) && "Windows Phone" !== t && "Android" !== t && "iOS" !== t && "Other" !== t) return !0; if ("undefined" !== typeof n) { if ((n = n.toLowerCase()).indexOf("win") >= 0 && "Windows" !== t && "Windows Phone" !== t) return !0; if (n.indexOf("linux") >= 0 && "Linux" !== t && "Android" !== t) return !0; if (n.indexOf("mac") >= 0 && "Mac" !== t && "iOS" !== t) return !0; if (0 === n.indexOf("win") && 0 === n.indexOf("linux") && n.indexOf("mac") >= 0 && "other" !== t) return !0 } return i.indexOf("win") >= 0 && "Windows" !== t && "Windows Phone" !== t || ((i.indexOf("linux") >= 0 || i.indexOf("android") >= 0 || i.indexOf("pike") >= 0) && "Linux" !== t && "Android" !== t || ((i.indexOf("mac") >= 0 || i.indexOf("ipad") >= 0 || i.indexOf("ipod") >= 0 || i.indexOf("iphone") >= 0) && "Mac" !== t && "iOS" !== t || (0 === i.indexOf("win") && 0 === i.indexOf("linux") && i.indexOf("mac") >= 0 && "other" !== t || "undefined" === typeof navigator.plugins && "Windows" !== t && "Windows Phone" !== t))) }, getHasLiedBrowser: function() { var t, e = navigator.userAgent.toLowerCase(),
n = navigator.productSub; if (("Chrome" === (t = e.indexOf("firefox") >= 0 ? "Firefox" : e.indexOf("opera") >= 0 || e.indexOf("opr") >= 0 ? "Opera" : e.indexOf("chrome") >= 0 ? "Chrome" : e.indexOf("safari") >= 0 ? "Safari" : e.indexOf("trident") >= 0 ? "Internet Explorer" : "Other") || "Safari" === t || "Opera" === t) && "20030107" !== n) return !0; var i, a = eval.toString().length; if (37 === a && "Safari" !== t && "Firefox" !== t && "Other" !== t) return !0; if (39 === a && "Internet Explorer" !== t && "Other" !== t) return !0; if (33 === a && "Chrome" !== t && "Opera" !== t && "Other" !== t) return !0; try { throw "a" } catch (o) { try { o.toSource(), i = !0 } catch (r) { i = !1 } } return !(!i || "Firefox" === t || "Other" === t) }, isCanvasSupported: function() { var t = document.createElement("canvas"); return !(!t.getContext || !t.getContext("2d")) }, isWebGlSupported: function() { if (!this.isCanvasSupported()) return !1; var t, e = document.createElement("canvas"); try { t = e.getContext && (e.getContext("webgl") || e.getContext("experimental-webgl")) } catch (n) { t = !1 } return !!window.WebGLRenderingContext && !!t }, isIE: function() { return "Microsoft Internet Explorer" === navigator.appName || !("Netscape" !== navigator.appName || !/Trident/.test(navigator.userAgent)) }, getWebglCanvas: function() { var t = document.createElement("canvas"),
e = null; try { e = t.getContext("webgl") || t.getContext("experimental-webgl") } catch (n) {} return e || (e = null), e }, each: function(t, e, n) { if (null !== t)
if (this.nativeForEach && t.forEach === this.nativeForEach) t.forEach(e, n);
else if (t.length === +t.length) { for (var i = 0, a = t.length; i < a; i++)
if (e.call(n, t[i], i, t) === {}) return } else
for (var o in t)
if (t.hasOwnProperty(o) && e.call(n, t[o], o, t) === {}) return }, map: function(t, e, n) { var i = []; return null == t ? i : this.nativeMap && t.map === this.nativeMap ? t.map(e, n) : (this.each(t, function(t, a, o) { i[i.length] = e.call(n, t, a, o) }), i) }, x64Add: function(t, e) { t = [t[0] >>> 16, 65535 & t[0], t[1] >>> 16, 65535 & t[1]], e = [e[0] >>> 16, 65535 & e[0], e[1] >>> 16, 65535 & e[1]]; var n = [0, 0, 0, 0]; return n[3] += t[3] + e[3], n[2] += n[3] >>> 16, n[3] &= 65535, n[2] += t[2] + e[2], n[1] += n[2] >>> 16, n[2] &= 65535, n[1] += t[1] + e[1], n[0] += n[1] >>> 16, n[1] &= 65535, n[0] += t[0] + e[0], n[0] &= 65535, [n[0] << 16 | n[1], n[2] << 16 | n[3]] }, x64Multiply: function(t, e) { t = [t[0] >>> 16, 65535 & t[0], t[1] >>> 16, 65535 & t[1]], e = [e[0] >>> 16, 65535 & e[0], e[1] >>> 16, 65535 & e[1]]; var n = [0, 0, 0, 0]; return n[3] += t[3] * e[3], n[2] += n[3] >>> 16, n[3] &= 65535, n[2] += t[2] * e[3], n[1] += n[2] >>> 16, n[2] &= 65535, n[2] += t[3] * e[2], n[1] += n[2] >>> 16, n[2] &= 65535, n[1] += t[1] * e[3], n[0] += n[1] >>> 16, n[1] &= 65535, n[1] += t[2] * e[2], n[0] += n[1] >>> 16, n[1] &= 65535, n[1] += t[3] * e[1], n[0] += n[1] >>> 16, n[1] &= 65535, n[0] += t[0] * e[3] + t[1] * e[2] + t[2] * e[1] + t[3] * e[0], n[0] &= 65535, [n[0] << 16 | n[1], n[2] << 16 | n[3]] }, x64Rotl: function(t, e) { return 32 === (e %= 64) ? [t[1], t[0]] : e < 32 ? [t[0] << e | t[1] >>> 32 - e, t[1] << e | t[0] >>> 32 - e] : (e -= 32, [t[1] << e | t[0] >>> 32 - e, t[0] << e | t[1] >>> 32 - e]) }, x64LeftShift: function(t, e) { return 0 === (e %= 64) ? t : e < 32 ? [t[0] << e | t[1] >>> 32 - e, t[1] << e] : [t[1] << e - 32, 0] }, x64Xor: function(t, e) { return [t[0] ^ e[0], t[1] ^ e[1]] }, x64Fmix: function(t) { return t = this.x64Xor(t, [0, t[0] >>> 1]), t = this.x64Multiply(t, [4283543511, 3981806797]), t = this.x64Xor(t, [0, t[0] >>> 1]), t = this.x64Multiply(t, [3301882366, 444984403]), t = this.x64Xor(t, [0, t[0] >>> 1]) }, x64hash128: function(t, e) { e = e || 0; for (var n = (t = t || "").length % 16, i = t.length - n, a = [0, e], o = [0, e], r = [0, 0], s = [0, 0], c = [2277735313, 289559509], l = [1291169091, 658871167], d = 0; d < i; d += 16) r = [255 & t.charCodeAt(d + 4) | (255 & t.charCodeAt(d + 5)) << 8 | (255 & t.charCodeAt(d + 6)) << 16 | (255 & t.charCodeAt(d + 7)) << 24, 255 & t.charCodeAt(d) | (255 & t.charCodeAt(d + 1)) << 8 | (255 & t.charCodeAt(d + 2)) << 16 | (255 & t.charCodeAt(d + 3)) << 24], s = [255 & t.charCodeAt(d + 12) | (255 & t.charCodeAt(d + 13)) << 8 | (255 & t.charCodeAt(d + 14)) << 16 | (255 & t.charCodeAt(d + 15)) << 24, 255 & t.charCodeAt(d + 8) | (255 & t.charCodeAt(d + 9)) << 8 | (255 & t.charCodeAt(d + 10)) << 16 | (255 & t.charCodeAt(d + 11)) << 24], r = this.x64Multiply(r, c), r = this.x64Rotl(r, 31), r = this.x64Multiply(r, l), a = this.x64Xor(a, r), a = this.x64Rotl(a, 27), a = this.x64Add(a, o), a = this.x64Add(this.x64Multiply(a, [0, 5]), [0, 1390208809]), s = this.x64Multiply(s, l), s = this.x64Rotl(s, 33), s = this.x64Multiply(s, c), o = this.x64Xor(o, s), o = this.x64Rotl(o, 31), o = this.x64Add(o, a), o = this.x64Add(this.x64Multiply(o, [0, 5]), [0, 944331445]); switch (r = [0, 0], s = [0, 0], n) {
case 15:
s = this.x64Xor(s, this.x64LeftShift([0, t.charCodeAt(d + 14)], 48));
case 14:
s = this.x64Xor(s, this.x64LeftShift([0, t.charCodeAt(d + 13)], 40));
case 13:
s = this.x64Xor(s, this.x64LeftShift([0, t.charCodeAt(d + 12)], 32));
case 12:
s = this.x64Xor(s, this.x64LeftShift([0, t.charCodeAt(d + 11)], 24));
case 11:
s = this.x64Xor(s, this.x64LeftShift([0, t.charCodeAt(d + 10)], 16));
case 10:
s = this.x64Xor(s, this.x64LeftShift([0, t.charCodeAt(d + 9)], 8));
case 9:
s = this.x64Xor(s, [0, t.charCodeAt(d + 8)]), s = this.x64Multiply(s, l), s = this.x64Rotl(s, 33), s = this.x64Multiply(s, c), o = this.x64Xor(o, s);
case 8:
r = this.x64Xor(r, this.x64LeftShift([0, t.charCodeAt(d + 7)], 56));
case 7:
r = this.x64Xor(r, this.x64LeftShift([0, t.charCodeAt(d + 6)], 48));
case 6:
r = this.x64Xor(r, this.x64LeftShift([0, t.charCodeAt(d + 5)], 40));
case 5:
r = this.x64Xor(r, this.x64LeftShift([0, t.charCodeAt(d + 4)], 32));
case 4:
r = this.x64Xor(r, this.x64LeftShift([0, t.charCodeAt(d + 3)], 24));
case 3:
r = this.x64Xor(r, this.x64LeftShift([0, t.charCodeAt(d + 2)], 16));
case 2:
r = this.x64Xor(r, this.x64LeftShift([0, t.charCodeAt(d + 1)], 8));
case 1:
r = this.x64Xor(r, [0, t.charCodeAt(d)]), r = this.x64Multiply(r, c), r = this.x64Rotl(r, 31), r = this.x64Multiply(r, l), a = this.x64Xor(a, r) } return a = this.x64Xor(a, [0, t.length]), o = this.x64Xor(o, [0, t.length]), a = this.x64Add(a, o), o = this.x64Add(o, a), a = this.x64Fmix(a), o = this.x64Fmix(o), a = this.x64Add(a, o), o = this.x64Add(o, a), ("00000000" + (a[0] >>> 0).toString(16)).slice(-8) + ("00000000" + (a[1] >>> 0).toString(16)).slice(-8) + ("00000000" + (o[0] >>> 0).toString(16)).slice(-8) + ("00000000" + (o[1] >>> 0).toString(16)).slice(-8) } }, i.VERSION = "1.5.1", t.exports && (e = t.exports = i), e.Fingerprint2 = i }, function(t, e, n) { "use strict"; var i = {}.propertyIsEnumerable,
a = Object.getOwnPropertyDescriptor,
o = a && !i.call({ 1: 2 }, 1);
e.f = o ? function(t) { var e = a(this, t); return !!e && e.enumerable } : i }, function(t, e, n) { var i = n(11),
a = n(46),
o = "".split;
t.exports = i(function() { return !Object("z").propertyIsEnumerable(0) }) ? function(t) { return "String" == a(t) ? o.call(t, "") : Object(t) } : Object }, function(t, e, n) { var i = n(14),
a = n(11),
o = n(67);
t.exports = !i && !a(function() { return 7 != Object.defineProperty(o("div"), "a", { get: function() { return 7 } }).a }) }, function(t, e, n) { var i = n(7),
a = n(12),
o = i.document,
r = a(o) && a(o.createElement);
t.exports = function(t) { return r ? o.createElement(t) : {} } }, function(t, e, n) { var i = n(26);
t.exports = i("native-function-to-string", Function.toString) }, function(t, e, n) { var i = n(10),
a = n(110),
o = n(45),
r = n(13);
t.exports = function(t, e) { for (var n = a(e), s = r.f, c = o.f, l = 0; l < n.length; l++) { var d = n[l];
i(t, d) || s(t, d, c(e, d)) } } }, function(t, e, n) { var i = n(71),
a = n(7),
o = function(t) { return "function" == typeof t ? t : void 0 };
t.exports = function(t, e) { return arguments.length < 2 ? o(i[t]) || o(a[t]) : i[t] && i[t][e] || a[t] && a[t][e] } }, function(t, e, n) { t.exports = n(7) }, function(t, e, n) { var i = n(10),
a = n(25),
o = n(111).indexOf,
r = n(37);
t.exports = function(t, e) { var n, s = a(t),
c = 0,
l = []; for (n in s) !i(r, n) && i(s, n) && l.push(n); for (; e.length > c;) i(s, n = e[c++]) && (~o(l, n) || l.push(n)); return l } }, function(t, e) { e.f = Object.getOwnPropertySymbols }, function(t, e, n) { var i = n(11);
t.exports = !!Object.getOwnPropertySymbols && !i(function() { return !String(Symbol()) }) }, function(t, e, n) { var i = n(16),
a = n(114),
o = n(53),
r = n(37),
s = n(115),
c = n(67),
l = n(36)("IE_PROTO"),
d = function() {},
u = function() { var t, e = c("iframe"),
n = o.length; for (e.style.display = "none", s.appendChild(e), e.src = String("javascript:"), (t = e.contentWindow.document).open(), t.write("