题目链接:https://match.yuanrenxue.cn/match/16
翻页看看⬇️

点击Initiator看到是webpack⬇️

点window.request对应的js进入断点⬇️

在console执行下代码,发现m是btoa(p_s)得到的⬇️

断点btoa跟进去看看,通过传入的p_s时间戳长度进行循环,往c里面push,最后拼接一起得到m⬇️

直接将这个webpack.js扣出来,运行补补window和document,调用window.btoa执行时间戳(不嫌麻烦可以一点点跟着代码执行轨迹还原出代码)
js代码如下,太长分为两截:
var window = {}; var document = {}; (()=>{ var e = { 98: (e,t,n)=>{ var r, i, o; i = [n(755)], void 0 === (o = "function" == typeof (r = function(e) { function t(e) { return a.raw ? e : encodeURIComponent(e) } function n(e) { return a.raw ? e : decodeURIComponent(e) } function r(e) { return t(a.json ? JSON.stringify(e) : String(e)) } function i(t, n) { var r = a.raw ? t : function(e) { 0 === e.indexOf('"') && (e = e.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, "\\")); try { return e = decodeURIComponent(e.replace(o, " ")), a.json ? JSON.parse(e) : e } catch (e) {} }(t); return e.isFunction(n) ? n(r) : r } var o = /\+/g , a = e.cookie = function(o, s, l) { if (void 0 !== s && !e.isFunction(s)) { if ("number" == typeof (l = e.extend({}, a.defaults, l)).expires) { var u = l.expires , c = l.expires = new Date; c.setTime(+c + 864e5 * u) } return document.cookie = [t(o), "=", r(s), l.expires ? "; expires=" + l.expires.toUTCString() : "", l.path ? "; path=" + l.path : "", l.domain ? "; domain=" + l.domain : "", l.secure ? "; secure" : ""].join("") } for (var f = o ? void 0 : {}, d = document.cookie ? document.cookie.split("; ") : [], p = 0, h = d.length; h > p; p++) { var m = d[p].split("=") , g = n(m.shift()) , v = m.join("="); if (o && o === g) { f = i(v, s); break } o || void 0 === (v = i(v)) || (f[g] = v) } return f } ; a.defaults = {}, e.removeCookie = function(t, n) { return void 0 !== e.cookie(t) && (e.cookie(t, "", e.extend({}, n, { expires: -1 })), !e.cookie(t)) } } ) ? r.apply(t, i) : r) || (e.exports = o) } , 129: ()=>{} , 46: function(e, t) { var n, r, i; r = "undefined" != typeof window ? window : this, i = function(r, i) { var o = [] , a = o.slice , s = o.concat , l = o.push , u = o.indexOf , c = {} , f = c.toString , d = c.hasOwnProperty , p = {} , h = r.document , m = "2.1.4" , g = function(e, t) { return new g.fn.init(e,t) } , v = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g , y = /^-ms-/ , b = /-([\da-z])/gi , x = function(e, t) { return t.toUpperCase() }; function w(e) { var t = "length"in e && e.length , n = g.type(e); return "function" !== n && !g.isWindow(e) && (!(1 !== e.nodeType || !t) || "array" === n || 0 === t || "number" == typeof t && t > 0 && t - 1 in e) } g.fn = g.prototype = { jquery: m, constructor: g, selector: "", length: 0, toArray: function() { return a.call(this) }, get: function(e) { return null != e ? 0 > e ? this[e + this.length] : this[e] : a.call(this) }, pushStack: function(e) { var t = g.merge(this.constructor(), e); return t.prevObject = this, t.context = this.context, t }, each: function(e, t) { return g.each(this, e, t) }, map: function(e) { return this.pushStack(g.map(this, (function(t, n) { return e.call(t, n, t) } ))) }, slice: function() { return this.pushStack(a.apply(this, arguments)) }, first: function() { return this.eq(0) }, last: function() { return this.eq(-1) }, eq: function(e) { var t = this.length , n = +e + (0 > e ? t : 0); return this.pushStack(n >= 0 && t > n ? [this[n]] : []) }, end: function() { return this.prevObject || this.constructor(null) }, push: l, sort: o.sort, splice: o.splice }, g.extend = g.fn.extend = function() { var e, t, n, r, i, o, a = arguments[0] || {}, s = 1, l = arguments.length, u = !1; for ("boolean" == typeof a && (u = a, a = arguments[s] || {}, s++), "object" == typeof a || g.isFunction(a) || (a = {}), s === l && (a = this, s--); l > s; s++) if (null != (e = arguments[s])) for (t in e) n = a[t], a !== (r = e[t]) && (u && r && (g.isPlainObject(r) || (i = g.isArray(r))) ? (i ? (i = !1, o = n && g.isArray(n) ? n : []) : o = n && g.isPlainObject(n) ? n : {}, a[t] = g.extend(u, o, r)) : void 0 !== r && (a[t] = r)); return a } , g.extend({ expando: "jQuery" + (m + Math.random()).replace(/\D/g, ""), isReady: !0, error: function(e) { throw new Error(e) }, noop: function() {}, isFunction: function(e) { return "function" === g.type(e) }, isArray: Array.isArray, isWindow: function(e) { return null != e && e === e.window }, isNumeric: function(e) { return !g.isArray(e) && e - parseFloat(e) + 1 >= 0 }, isPlainObject: function(e) { return !("object" !== g.type(e) || e.nodeType || g.isWindow(e) || e.constructor && !d.call(e.constructor.prototype, "isPrototypeOf")) }, isEmptyObject: function(e) { var t; for (t in e) return !1; return !0 }, type: function(e) { return null == e ? e + "" : "object" == typeof e || "function" == typeof e ? c[f.call(e)] || "object" : typeof e }, globalEval: function(e) { var t, n = eval; (e = g.trim(e)) && (1 === e.indexOf("use strict") ? ((t = h.createElement("script")).text = e, h.head.appendChild(t).parentNode.removeChild(t)) : n(e)) }, camelCase: function(e) { return e.replace(y, "ms-").replace(b, x) }, nodeName: function(e, t) { return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase() }, each: function(e, t, n) { var r = 0 , i = e.length , o = w(e); if (n) { if (o) for (; i > r && !1 !== t.apply(e[r], n); r++) ; else for (r in e) if (!1 === t.apply(e[r], n)) break } else if (o) for (; i > r && !1 !== t.call(e[r], r, e[r]); r++) ; else for (r in e) if (!1 === t.call(e[r], r, e[r])) break; return e }, trim: function(e) { return null == e ? "" : (e + "").replace(v, "") }, makeArray: function(e, t) { var n = t || []; return null != e && (w(Object(e)) ? g.merge(n, "string" == typeof e ? [e] : e) : l.call(n, e)), n }, inArray: function(e, t, n) { return null == t ? -1 : u.call(t, e, n) }, merge: function(e, t) { for (var n = +t.length, r = 0, i = e.length; n > r; r++) e[i++] = t[r]; return e.length = i, e }, grep: function(e, t, n) { for (var r = [], i = 0, o = e.length, a = !n; o > i; i++) !t(e[i], i) !== a && r.push(e[i]); return r }, map: function(e, t, n) { var r, i = 0, o = e.length, a = []; if (w(e)) for (; o > i; i++) null != (r = t(e[i], i, n)) && a.push(r); else for (i in e) null != (r = t(e[i], i, n)) && a.push(r); return s.apply([], a) }, guid: 1, proxy: function(e, t) { var n, r, i; return "string" == typeof t && (n = e[t], t = e, e = n), g.isFunction(e) ? (r = a.call(arguments, 2), (i = function() { return e.apply(t || this, r.concat(a.call(arguments))) } ).guid = e.guid = e.guid || g.guid++, i) : void 0 }, now: Date.now, support: p }), g.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), (function(e, t) { c["[object " + t + "]"] = t.toLowerCase() } )); var T = function(e) { var t, n, r, i, o, a, s, l, u, c, f, d, p, h, m, g, v, y, b, x = "sizzle" + 1 * new Date, w = e.document, T = 0, k = 0, C = ae(), E = ae(), S = ae(), A = function(e, t) { return e === t && (f = !0), 0 }, D = 1 << 31, N = {}.hasOwnProperty, j = [], L = j.pop, O = j.push, q = j.push, $ = j.slice, I = function(e, t) { for (var n = 0, r = e.length; r > n; n++) if (e[n] === t) return n; return -1 }, M = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", P = "[\\x20\\t\\r\\n\\f]", H = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", R = H.replace("w", "w#"), F = "\\[" + P + "*(" + H + ")(?:" + P + "*([*^$|!~]?=)" + P + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + R + "))|)" + P + "*\\]", _ = ":(" + H + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + F + ")*)|.*)\\)|)", z = new RegExp(P + "+","g"), B = new RegExp("^" + P + "+|((?:^|[^\\\\])(?:\\\\.)*)" + P + "+$","g"), W = new RegExp("^" + P + "*," + P + "*"), U = new RegExp("^" + P + "*([>+~]|" + P + ")" + P + "*"), X = new RegExp("=" + P + "*([^\\]'\"]*?)" + P + "*\\]","g"), V = new RegExp(_), Q = new RegExp("^" + R + "$"), Y = { ID: new RegExp("^#(" + H + ")"), CLASS: new RegExp("^\\.(" + H + ")"), TAG: new RegExp("^(" + H.replace("w", "w*") + ")"), ATTR: new RegExp("^" + F), PSEUDO: new RegExp("^" + _), CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + P + "*(even|odd|(([+-]|)(\\d*)n|)" + P + "*(?:([+-]|)" + P + "*(\\d+)|))" + P + "*\\)|)","i"), bool: new RegExp("^(?:" + M + ")$","i"), needsContext: new RegExp("^" + P + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + P + "*((?:-\\d)?\\d*)" + P + "*\\)|)(?=[^-]|$)","i") }, G = /^(?:input|select|textarea|button)$/i, J = /^h\d$/i, K = /^[^{]+\{\s*\[native \w/, Z = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, ee = /[+~]/, te = /'|\\/g, ne = new RegExp("\\\\([\\da-f]{1,6}" + P + "?|(" + P + ")|.)","ig"), re = function(e, t, n) { var r = "0x" + t - 65536; return r != r || n ? t : 0 > r ? String.fromCharCode(r + 65536) : String.fromCharCode(r >> 10 | 55296, 1023 & r | 56320) }, ie = function() { d() }; try { q.apply(j = $.call(w.childNodes), w.childNodes), j[w.childNodes.length].nodeType } catch (e) { q = { apply: j.length ? function(e, t) { O.apply(e, $.call(t)) } : function(e, t) { for (var n = e.length, r = 0; e[n++] = t[r++]; ) ; e.length = n - 1 } } } function oe(e, t, r, i) { var o, s, u, c, f, h, v, y, T, k; if ((t ? t.ownerDocument || t : w) !== p && d(t), r = r || [], c = (t = t || p).nodeType, "string" != typeof e || !e || 1 !== c && 9 !== c && 11 !== c) return r; if (!i && m) { if (11 !== c && (o = Z.exec(e))) if (u = o[1]) { if (9 === c) { if (!(s = t.getElementById(u)) || !s.parentNode) return r; if (s.id === u) return r.push(s), r } else if (t.ownerDocument && (s = t.ownerDocument.getElementById(u)) && b(t, s) && s.id === u) return r.push(s), r } else { if (o[2]) return q.apply(r, t.getElementsByTagName(e)), r; if ((u = o[3]) && n.getElementsByClassName) return q.apply(r, t.getElementsByClassName(u)), r } if (n.qsa && (!g || !g.test(e))) { if (y = v = x, T = t, k = 1 !== c && e, 1 === c && "object" !== t.nodeName.toLowerCase()) { for (h = a(e), (v = t.getAttribute("id")) ? y = v.replace(te, "\\$&") : t.setAttribute("id", y), y = "[id='" + y + "'] ", f = h.length; f--; ) h[f] = y + ge(h[f]); T = ee.test(e) && he(t.parentNode) || t, k = h.join(",") } if (k) try { return q.apply(r, T.querySelectorAll(k)), r } catch (e) {} finally { v || t.removeAttribute("id") } } } return l(e.replace(B, "$1"), t, r, i) } function ae() { var e = []; return function t(n, i) { return e.push(n + " ") > r.cacheLength && delete t[e.shift()], t[n + " "] = i } } function se(e) { return e[x] = !0, e } function le(e) { var t = p.createElement("div"); try { return !!e(t) } catch (e) { return !1 } finally { t.parentNode && t.parentNode.removeChild(t), t = null } } function ue(e, t) { for (var n = e.split("|"), i = e.length; i--; ) r.attrHandle[n[i]] = t } function ce(e, t) { var n = t && e , r = n && 1 === e.nodeType && 1 === t.nodeType && (~t.sourceIndex || D) - (~e.sourceIndex || D); if (r) return r; if (n) for (; n = n.nextSibling; ) if (n === t) return -1; return e ? 1 : -1 } function fe(e) { return function(t) { return "input" === t.nodeName.toLowerCase() && t.type === e } } function de(e) { return function(t) { var n = t.nodeName.toLowerCase(); return ("input" === n || "button" === n) && t.type === e } } function pe(e) { return se((function(t) { return t = +t, se((function(n, r) { for (var i, o = e([], n.length, t), a = o.length; a--; ) n[i = o[a]] && (n[i] = !(r[i] = n[i])) } )) } )) } function he(e) { return e && void 0 !== e.getElementsByTagName && e } for (t in n = oe.support = {}, o = oe.isXML = function(e) { var t = e && (e.ownerDocument || e).documentElement; return !!t && "HTML" !== t.nodeName } , d = oe.setDocument = function(e) { var t, i, a = e ? e.ownerDocument || e : w; return a !== p && 9 === a.nodeType && a.documentElement ? (p = a, h = a.documentElement, (i = a.defaultView) && i !== i.top && (i.addEventListener ? i.addEventListener("unload", ie, !1) : i.attachEvent && i.attachEvent("onunload", ie)), m = !o(a), n.attributes = le((function(e) { return e.className = "i", !e.getAttribute("className") } )), n.getElementsByTagName = le((function(e) { return e.appendChild(a.createComment("")), !e.getElementsByTagName("*").length } )), n.getElementsByClassName = K.test(a.getElementsByClassName), n.getById = le((function(e) { return h.appendChild(e).id = x, !a.getElementsByName || !a.getElementsByName(x).length } )), n.getById ? (r.find.ID = function(e, t) { if (void 0 !== t.getElementById && m) { var n = t.getElementById(e); return n && n.parentNode ? [n] : [] } } , r.filter.ID = function(e) { var t = e.replace(ne, re); return function(e) { return e.getAttribute("id") === t } } ) : (delete r.find.ID, r.filter.ID = function(e) { var t = e.replace(ne, re); return function(e) { var n = void 0 !== e.getAttributeNode && e.getAttributeNode("id"); return n && n.value === t } } ), r.find.TAG = n.getElementsByTagName ? function(e, t) { return void 0 !== t.getElementsByTagName ? t.getElementsByTagName(e) : n.qsa ? t.querySelectorAll(e) : void 0 } : function(e, t) { var n, r = [], i = 0, o = t.getElementsByTagName(e); if ("*" === e) { for (; n = o[i++]; ) 1 === n.nodeType && r.push(n); return r } return o } , r.find.CLASS = n.getElementsByClassName && function(e, t) { return m ? t.getElementsByClassName(e) : void 0 } , v = [], g = [], (n.qsa = K.test(a.querySelectorAll)) && (le((function(e) { h.appendChild(e).innerHTML = "<a id='" + x + "'></a><select id='" + x + "-\f]' msallowcapture=''><option selected=''></option></select>", e.querySelectorAll("[msallowcapture^='']").length && g.push("[*^$]=" + P + "*(?:''|\"\")"), e.querySelectorAll("[selected]").length || g.push("\\[" + P + "*(?:value|" + M + ")"), e.querySelectorAll("[id~=" + x + "-]").length || g.push("~="), e.querySelectorAll(":checked").length || g.push(":checked"), e.querySelectorAll("a#" + x + "+*").length || g.push(".#.+[+~]") } )), le((function(e) { var t = a.createElement("input"); t.setAttribute("type", "hidden"), e.appendChild(t).setAttribute("name", "D"), e.querySelectorAll("[name=d]").length && g.push("name" + P + "*[*^$|!~]?="), e.querySelectorAll(":enabled").length || g.push(":enabled", ":disabled"), e.querySelectorAll("*,:x"), g.push(",.*:") } ))), (n.matchesSelector = K.test(y = h.matches || h.webkitMatchesSelector || h.mozMatchesSelector || h.oMatchesSelector || h.msMatchesSelector)) && le((function(e) { n.disconnectedMatch = y.call(e, "div"), y.call(e, "[s!='']:x"), v.push("!=", _) } )), g = g.length && new RegExp(g.join("|")), v = v.length && new RegExp(v.join("|")), t = K.test(h.compareDocumentPosition), b = t || K.test(h.contains) ? function(e, t) { var n = 9 === e.nodeType ? e.documentElement : e , r = t && t.parentNode; return e === r || !(!r || 1 !== r.nodeType || !(n.contains ? n.contains(r) : e.compareDocumentPosition && 16 & e.compareDocumentPosition(r))) } : function(e, t) { if (t) for (; t = t.parentNode; ) if (t === e) return !0; return !1 } , A = t ? function(e, t) { if (e === t) return f = !0, 0; var r = !e.compareDocumentPosition - !t.compareDocumentPosition; return r || (1 & (r = (e.ownerDocument || e) === (t.ownerDocument || t) ? e.compareDocumentPosition(t) : 1) || !n.sortDetached && t.compareDocumentPosition(e) === r ? e === a || e.ownerDocument === w && b(w, e) ? -1 : t === a || t.ownerDocument === w && b(w, t) ? 1 : c ? I(c, e) - I(c, t) : 0 : 4 & r ? -1 : 1) } : function(e, t) { if (e === t) return f = !0, 0; var n, r = 0, i = e.parentNode, o = t.parentNode, s = [e], l = [t]; if (!i || !o) return e === a ? -1 : t === a ? 1 : i ? -1 : o ? 1 : c ? I(c, e) - I(c, t) : 0; if (i === o) return ce(e, t); for (n = e; n = n.parentNode; ) s.unshift(n); for (n = t; n = n.parentNode; ) l.unshift(n); for (; s[r] === l[r]; ) r++; return r ? ce(s[r], l[r]) : s[r] === w ? -1 : l[r] === w ? 1 : 0 } , a) : p } , oe.matches = function(e, t) { return oe(e, null, null, t) } , oe.matchesSelector = function(e, t) { if ((e.ownerDocument || e) !== p && d(e), t = t.replace(X, "='$1']"), !(!n.matchesSelector || !m || v && v.test(t) || g && g.test(t))) try { var r = y.call(e, t); if (r || n.disconnectedMatch || e.document && 11 !== e.document.nodeType) return r } catch (e) {} return oe(t, p, null, [e]).length > 0 } , oe.contains = function(e, t) { return (e.ownerDocument || e) !== p && d(e), b(e, t) } , oe.attr = function(e, t) { (e.ownerDocument || e) !== p && d(e); var i = r.attrHandle[t.toLowerCase()] , o = i && N.call(r.attrHandle, t.toLowerCase()) ? i(e, t, !m) : void 0; return void 0 !== o ? o : n.attributes || !m ? e.getAttribute(t) : (o = e.getAttributeNode(t)) && o.specified ? o.value : null } , oe.error = function(e) { throw new Error("Syntax error, unrecognized expression: " + e) } , oe.uniqueSort = function(e) { var t, r = [], i = 0, o = 0; if (f = !n.detectDuplicates, c = !n.sortStable && e.slice(0), e.sort(A), f) { for (; t = e[o++]; ) t === e[o] && (i = r.push(o)); for (; i--; ) e.splice(r[i], 1) } return c = null, e } , i = oe.getText = function(e) { var t, n = "", r = 0, o = e.nodeType; if (o) { if (1 === o || 9 === o || 11 === o) { if ("string" == typeof e.textContent) return e.textContent; for (e = e.firstChild; e; e = e.nextSibling) n += i(e) } else if (3 === o || 4 === o) return e.nodeValue } else for (; t = e[r++]; ) n += i(t); return n } , (r = oe.selectors = { cacheLength: 50, createPseudo: se, match: Y, attrHandle: {}, find: {}, relative: { ">": { dir: "parentNode", first: !0 }, " ": { dir: "parentNode" }, "+": { dir: "previousSibling", first: !0 }, "~": { dir: "previousSibling" } }, preFilter: { ATTR: function(e) { return e[1] = e[1].replace(ne, re), e[3] = (e[3] || e[4] || e[5] || "").replace(ne, re), "~=" === e[2] && (e[3] = " " + e[3] + " "), e.slice(0, 4) }, CHILD: function(e) { return e[1] = e[1].toLowerCase(), "nth" === e[1].slice(0, 3) ? (e[3] || oe.error(e[0]), e[4] = +(e[4] ? e[5] + (e[6] || 1) : 2 * ("even" === e[3] || "odd" === e[3])), e[5] = +(e[7] + e[8] || "odd" === e[3])) : e[3] && oe.error(e[0]), e }, PSEUDO: function(e) { var t, n = !e[6] && e[2]; return Y.CHILD.test(e[0]) ? null : (e[3] ? e[2] = e[4] || e[5] || "" : n && V.test(n) && (t = a(n, !0)) && (t = n.indexOf(")", n.length - t) - n.length) && (e[0] = e[0].slice(0, t), e[2] = n.slice(0, t)), e.slice(0, 3)) } }, filter: { TAG: function(e) { var t = e.replace(ne, re).toLowerCase(); return "*" === e ? function() { return !0 } : function(e) { return e.nodeName && e.nodeName.toLowerCase() === t } }, CLASS: function(e) { var t = C[e + " "]; return t || (t = new RegExp("(^|" + P + ")" + e + "(" + P + "|$)")) && C(e, (function(e) { return t.test("string" == typeof e.className && e.className || void 0 !== e.getAttribute && e.getAttribute("class") || "") } )) }, ATTR: function(e, t, n) { return function(r) { var i = oe.attr(r, e); return null == i ? "!=" === t : !t || (i += "", "=" === t ? i === n : "!=" === t ? i !== n : "^=" === t ? n && 0 === i.indexOf(n) : "*=" === t ? n && i.indexOf(n) > -1 : "$=" === t ? n && i.slice(-n.length) === n : "~=" === t ? (" " + i.replace(z, " ") + " ").indexOf(n) > -1 : "|=" === t && (i === n || i.slice(0, n.length + 1) === n + "-")) } }, CHILD: function(e, t, n, r, i) { var o = "nth" !== e.slice(0, 3) , a = "last" !== e.slice(-4) , s = "of-type" === t; return 1 === r && 0 === i ? function(e) { return !!e.parentNode } : function(t, n, l) { var u, c, f, d, p, h, m = o !== a ? "nextSibling" : "previousSibling", g = t.parentNode, v = s && t.nodeName.toLowerCase(), y = !l && !s; if (g) { if (o) { for (; m; ) { for (f = t; f = f[m]; ) if (s ? f.nodeName.toLowerCase() === v : 1 === f.nodeType) return !1; h = m = "only" === e && !h && "nextSibling" } return !0 } if (h = [a ? g.firstChild : g.lastChild], a && y) { for (p = (u = (c = g[x] || (g[x] = {}))[e] || [])[0] === T && u[1], d = u[0] === T && u[2], f = p && g.childNodes[p]; f = ++p && f && f[m] || (d = p = 0) || h.pop(); ) if (1 === f.nodeType && ++d && f === t) { c[e] = [T, p, d]; break } } else if (y && (u = (t[x] || (t[x] = {}))[e]) && u[0] === T) d = u[1]; else for (; (f = ++p && f && f[m] || (d = p = 0) || h.pop()) && ((s ? f.nodeName.toLowerCase() !== v : 1 !== f.nodeType) || !++d || (y && ((f[x] || (f[x] = {}))[e] = [T, d]), f !== t)); ) ; return (d -= i) === r || d % r == 0 && d / r >= 0 } } }, PSEUDO: function(e, t) { var n, i = r.pseudos[e] || r.setFilters[e.toLowerCase()] || oe.error("unsupported pseudo: " + e); return i[x] ? i(t) : i.length > 1 ? (n = [e, e, "", t], r.setFilters.hasOwnProperty(e.toLowerCase()) ? se((function(e, n) { for (var r, o = i(e, t), a = o.length; a--; ) e[r = I(e, o[a])] = !(n[r] = o[a]) } )) : function(e) { return i(e, 0, n) } ) : i } }, pseudos: { not: se((function(e) { var t = [] , n = [] , r = s(e.replace(B, "$1")); return r[x] ? se((function(e, t, n, i) { for (var o, a = r(e, null, i, []), s = e.length; s--; ) (o = a[s]) && (e[s] = !(t[s] = o)) } )) : function(e, i, o) { return t[0] = e, r(t, null, o, n), t[0] = null, !n.pop() } } )), has: se((function(e) { return function(t) { return oe(e, t).length > 0 } } )), contains: se((function(e) { return e = e.replace(ne, re), function(t) { return (t.textContent || t.innerText || i(t)).indexOf(e) > -1 } } )), lang: se((function(e) { return Q.test(e || "") || oe.error("unsupported lang: " + e), e = e.replace(ne, re).toLowerCase(), function(t) { var n; do { if (n = m ? t.lang : t.getAttribute("xml:lang") || t.getAttribute("lang")) return (n = n.toLowerCase()) === e || 0 === n.indexOf(e + "-") } while ((t = t.parentNode) && 1 === t.nodeType); return !1 } } )), target: function(t) { var n = e.location && e.location.hash; return n && n.slice(1) === t.id }, root: function(e) { return e === h }, focus: function(e) { return e === p.activeElement && (!p.hasFocus || p.hasFocus()) && !!(e.type || e.href || ~e.tabIndex) }, enabled: function(e) { return !1 === e.disabled }, disabled: function(e) { return !0 === e.disabled }, checked: function(e) { var t = e.nodeName.toLowerCase(); return "input" === t && !!e.checked || "option" === t && !!e.selected }, selected: function(e) { return e.parentNode && e.parentNode.selectedIndex, !0 === e.selected }, empty: function(e) { for (e = e.firstChild; e; e = e.nextSibling) if (e.nodeType < 6) return !1; return !0 }, parent: function(e) { return !r.pseudos.empty(e) }, header: function(e) { return J.test(e.nodeName) }, input: function(e) { return G.test(e.nodeName) }, button: function(e) { var t = e.nodeName.toLowerCase(); return "input" === t && "button" === e.type || "button" === t }, text: function(e) { var t; return "input" === e.nodeName.toLowerCase() && "text" === e.type && (null == (t = e.getAttribute("type")) || "text" === t.toLowerCase()) }, first: pe((function() { return [0] } )), last: pe((function(e, t) { return [t - 1] } )), eq: pe((function(e, t, n) { return [0 > n ? n + t : n] } )), even: pe((function(e, t) { for (var n = 0; t > n; n += 2) e.push(n); return e } )), odd: pe((function(e, t) { for (var n = 1; t > n; n += 2) e.push(n); return e } )), lt: pe((function(e, t, n) { for (var r = 0 > n ? n + t : n; --r >= 0; ) e.push(r); return e } )), gt: pe((function(e, t, n) { for (var r = 0 > n ? n + t : n; ++r < t; ) e.push(r); return e } )) } }).pseudos.nth = r.pseudos.eq, { radio: !0, checkbox: !0, file: !0, password: !0, image: !0 }) r.pseudos[t] = fe(t); for (t in { submit: !0, reset: !0 }) r.pseudos[t] = de(t); function me() {} function ge(e) { for (var t = 0, n = e.length, r = ""; n > t; t++) r += e[t].value; return r } function ve(e, t, n) { var r = t.dir , i = n && "parentNode" === r , o = k++; return t.first ? function(t, n, o) { for (; t = t[r]; ) if (1 === t.nodeType || i) return e(t, n, o) } : function(t, n, a) { var s, l, u = [T, o]; if (a) { for (; t = t[r]; ) if ((1 === t.nodeType || i) && e(t, n, a)) return !0 } else for (; t = t[r]; ) if (1 === t.nodeType || i) { if ((s = (l = t[x] || (t[x] = {}))[r]) && s[0] === T && s[1] === o) return u[2] = s[2]; if (l[r] = u, u[2] = e(t, n, a)) return !0 } } } function ye(e) { return e.length > 1 ? function(t, n, r) { for (var i = e.length; i--; ) if (!e[i](t, n, r)) return !1; return !0 } : e[0] } function be(e, t, n, r, i) { for (var o, a = [], s = 0, l = e.length, u = null != t; l > s; s++) (o = e[s]) && (!n || n(o, r, i)) && (a.push(o), u && t.push(s)); return a } function xe(e, t, n, r, i, o) { return r && !r[x] && (r = xe(r)), i && !i[x] && (i = xe(i, o)), se((function(o, a, s, l) { var u, c, f, d = [], p = [], h = a.length, m = o || function(e, t, n) { for (var r = 0, i = t.length; i > r; r++) oe(e, t[r], n); return n }(t || "*", s.nodeType ? [s] : s, []), g = !e || !o && t ? m : be(m, d, e, s, l), v = n ? i || (o ? e : h || r) ? [] : a : g; if (n && n(g, v, s, l), r) for (u = be(v, p), r(u, [], s, l), c = u.length; c--; ) (f = u[c]) && (v[p[c]] = !(g[p[c]] = f)); if (o) { if (i || e) { if (i) { for (u = [], c = v.length; c--; ) (f = v[c]) && u.push(g[c] = f); i(null, v = [], u, l) } for (c = v.length; c--; ) (f = v[c]) && (u = i ? I(o, f) : d[c]) > -1 && (o[u] = !(a[u] = f)) } } else v = be(v === a ? v.splice(h, v.length) : v), i ? i(null, a, v, l) : q.apply(a, v) } )) } function we(e) { for (var t, n, i, o = e.length, a = r.relative[e[0].type], s = a || r.relative[" "], l = a ? 1 : 0, c = ve((function(e) { return e === t } ), s, !0), f = ve((function(e) { return I(t, e) > -1 } ), s, !0), d = [function(e, n, r) { var i = !a && (r || n !== u) || ((t = n).nodeType ? c(e, n, r) : f(e, n, r)); return t = null, i } ]; o > l; l++) if (n = r.relative[e[l].type]) d = [ve(ye(d), n)]; else { if ((n = r.filter[e[l].type].apply(null, e[l].matches))[x]) { for (i = ++l; o > i && !r.relative[e[i].type]; i++) ; return xe(l > 1 && ye(d), l > 1 && ge(e.slice(0, l - 1).concat({ value: " " === e[l - 2].type ? "*" : "" })).replace(B, "$1"), n, i > l && we(e.slice(l, i)), o > i && we(e = e.slice(i)), o > i && ge(e)) } d.push(n) } return ye(d) } function Te(e, t) { var n = t.length > 0 , i = e.length > 0 , o = function(o, a, s, l, c) { var f, d, h, m = 0, g = "0", v = o && [], y = [], b = u, x = o || i && r.find.TAG("*", c), w = T += null == b ? 1 : Math.random() || .1, k = x.length; for (c && (u = a !== p && a); g !== k && null != (f = x[g]); g++) { if (i && f) { for (d = 0; h = e[d++]; ) if (h(f, a, s)) { l.push(f); break } c && (T = w) } n && ((f = !h && f) && m--, o && v.push(f)) } if (m += g, n && g !== m) { for (d = 0; h = t[d++]; ) h(v, y, a, s); if (o) { if (m > 0) for (; g--; ) v[g] || y[g] || (y[g] = L.call(l)); y = be(y) } q.apply(l, y), c && !o && y.length > 0 && m + t.length > 1 && oe.uniqueSort(l) } return c && (T = w, u = b), v }; return n ? se(o) : o } return me.prototype = r.filters = r.pseudos, r.setFilters = new me, a = oe.tokenize = function(e, t) { var n, i, o, a, s, l, u, c = E[e + " "]; if (c) return t ? 0 : c.slice(0); for (s = e, l = [], u = r.preFilter; s; ) { for (a in (!n || (i = W.exec(s))) && (i && (s = s.slice(i[0].length) || s), l.push(o = [])), n = !1, (i = U.exec(s)) && (n = i.shift(), o.push({ value: n, type: i[0].replace(B, " ") }), s = s.slice(n.length)), r.filter) !(i = Y[a].exec(s)) || u[a] && !(i = u[a](i)) || (n = i.shift(), o.push({ value: n, type: a, matches: i }), s = s.slice(n.length)); if (!n) break } return t ? s.length : s ? oe.error(e) : E(e, l).slice(0) } , s = oe.compile = function(e, t) { var n, r = [], i = [], o = S[e + " "]; if (!o) { for (t || (t = a(e)), n = t.length; n--; ) (o = we(t[n]))[x] ? r.push(o) : i.push(o); (o = S(e, Te(i, r))).selector = e } return o } , l = oe.select = function(e, t, i, o) { var l, u, c, f, d, p = "function" == typeof e && e, h = !o && a(e = p.selector || e); if (i = i || [], 1 === h.length) { if ((u = h[0] = h[0].slice(0)).length > 2 && "ID" === (c = u[0]).type && n.getById && 9 === t.nodeType && m && r.relative[u[1].type]) { if (!(t = (r.find.ID(c.matches[0].replace(ne, re), t) || [])[0])) return i; p && (t = t.parentNode), e = e.slice(u.shift().value.length) } for (l = Y.needsContext.test(e) ? 0 : u.length; l-- && (c = u[l], !r.relative[f = c.type]); ) if ((d = r.find[f]) && (o = d(c.matches[0].replace(ne, re), ee.test(u[0].type) && he(t.parentNode) || t))) { if (u.splice(l, 1), !(e = o.length && ge(u))) return q.apply(i, o), i; break } } return (p || s(e, h))(o, t, !m, i, ee.test(e) && he(t.parentNode) || t), i } , n.sortStable = x.split("").sort(A).join("") === x, n.detectDuplicates = !!f, d(), n.sortDetached = le((function(e) { return 1 & e.compareDocumentPosition(p.createElement("div")) } )), le((function(e) { return e.innerHTML = "<a href='#'></a>", "#" === e.firstChild.getAttribute("href") } )) || ue("type|href|height|width", (function(e, t, n) { return n ? void 0 : e.getAttribute(t, "type" === t.toLowerCase() ? 1 : 2) } )), n.attributes && le((function(e) { return e.innerHTML = "<input/>", e.firstChild.setAttribute("value", ""), "" === e.firstChild.getAttribute("value") } )) || ue("value", (function(e, t, n) { return n || "input" !== e.nodeName.toLowerCase() ? void 0 : e.defaultValue } )), le((function(e) { return null == e.getAttribute("disabled") } )) || ue(M, (function(e, t, n) { var r; return n ? void 0 : !0 === e[t] ? t.toLowerCase() : (r = e.getAttributeNode(t)) && r.specified ? r.value : null } )), oe }(r); g.find = T, g.expr = T.selectors, g.expr[":"] = g.expr.pseudos, g.unique = T.uniqueSort, g.text = T.getText, g.isXMLDoc = T.isXML, g.contains = T.contains; var k = g.expr.match.needsContext , C = /^<(\w+)\s*\/?>(?:<\/\1>|)$/ , E = /^.[^:#\[\.,]*$/; function S(e, t, n) { if (g.isFunction(t)) return g.grep(e, (function(e, r) { return !!t.call(e, r, e) !== n } )); if (t.nodeType) return g.grep(e, (function(e) { return e === t !== n } )); if ("string" == typeof t) { if (E.test(t)) return g.filter(t, e, n); t = g.filter(t, e) } return g.grep(e, (function(e) { return u.call(t, e) >= 0 !== n } )) } g.filter = function(e, t, n) { var r = t[0]; return n && (e = ":not(" + e + ")"), 1 === t.length && 1 === r.nodeType ? g.find.matchesSelector(r, e) ? [r] : [] : g.find.matches(e, g.grep(t, (function(e) { return 1 === e.nodeType } ))) } , g.fn.extend({ find: function(e) { var t, n = this.length, r = [], i = this; if ("string" != typeof e) return this.pushStack(g(e).filter((function() { for (t = 0; n > t; t++) if (g.contains(i[t], this)) return !0 } ))); for (t = 0; n > t; t++) g.find(e, i[t], r); return (r = this.pushStack(n > 1 ? g.unique(r) : r)).selector = this.selector ? this.selector + " " + e : e, r }, filter: function(e) { return this.pushStack(S(this, e || [], !1)) }, not: function(e) { return this.pushStack(S(this, e || [], !0)) }, is: function(e) { return !!S(this, "string" == typeof e && k.test(e) ? g(e) : e || [], !1).length } }); var A, D = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/; (g.fn.init = function(e, t) { var n, r; if (!e) return this; if ("string" == typeof e) { if (!(n = "<" === e[0] && ">" === e[e.length - 1] && e.length >= 3 ? [null, e, null] : D.exec(e)) || !n[1] && t) return !t || t.jquery ? (t || A).find(e) : this.constructor(t).find(e); if (n[1]) { if (t = t instanceof g ? t[0] : t, g.merge(this, g.parseHTML(n[1], t && t.nodeType ? t.ownerDocument || t : h, !0)), C.test(n[1]) && g.isPlainObject(t)) for (n in t) g.isFunction(this[n]) ? this[n](t[n]) : this.attr(n, t[n]); return this } return (r = h.getElementById(n[2])) && r.parentNode && (this.length = 1, this[0] = r), this.context = h, this.selector = e, this } return e.nodeType ? (this.context = this[0] = e, this.length = 1, this) : g.isFunction(e) ? void 0 !== A.ready ? A.ready(e) : e(g) : (void 0 !== e.selector && (this.selector = e.selector, this.context = e.context), g.makeArray(e, this)) } ).prototype = g.fn, A = g(h); var N = /^(?:parents|prev(?:Until|All))/ , j = { children: !0, contents: !0, next: !0, prev: !0 }; function L(e, t) { for (; (e = e[t]) && 1 !== e.nodeType; ) ; return e } g.extend({ dir: function(e, t, n) { for (var r = [], i = void 0 !== n; (e = e[t]) && 9 !== e.nodeType; ) if (1 === e.nodeType) { if (i && g(e).is(n)) break; r.push(e) } return r }, sibling: function(e, t) { for (var n = []; e; e = e.nextSibling) 1 === e.nodeType && e !== t && n.push(e); return n } }), g.fn.extend({ has: function(e) { var t = g(e, this) , n = t.length; return this.filter((function() { for (var e = 0; n > e; e++) if (g.contains(this, t[e])) return !0 } )) }, closest: function(e, t) { for (var n, r = 0, i = this.length, o = [], a = k.test(e) || "string" != typeof e ? g(e, t || this.context) : 0; i > r; r++) for (n = this[r]; n && n !== t; n = n.parentNode) if (n.nodeType < 11 && (a ? a.index(n) > -1 : 1 === n.nodeType && g.find.matchesSelector(n, e))) { o.push(n); break } return this.pushStack(o.length > 1 ? g.unique(o) : o) }, index: function(e) { return e ? "string" == typeof e ? u.call(g(e), this[0]) : u.call(this, e.jquery ? e[0] : e) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1 }, add: function(e, t) { return this.pushStack(g.unique(g.merge(this.get(), g(e, t)))) }, addBack: function(e) { return this.add(null == e ? this.prevObject : this.prevObject.filter(e)) } }), g.each({ parent: function(e) { var t = e.parentNode; return t && 11 !== t.nodeType ? t : null }, parents: function(e) { return g.dir(e, "parentNode") }, parentsUntil: function(e, t, n) { return g.dir(e, "parentNode", n) }, next: function(e) { return L(e, "nextSibling") }, prev: function(e) { return L(e, "previousSibling") }, nextAll: function(e) { return g.dir(e, "nextSibling") }, prevAll: function(e) { return g.dir(e, "previousSibling") }, nextUntil: function(e, t, n) { return g.dir(e, "nextSibling", n) }, prevUntil: function(e, t, n) { return g.dir(e, "previousSibling", n) }, siblings: function(e) { return g.sibling((e.parentNode || {}).firstChild, e) }, children: function(e) { return g.sibling(e.firstChild) }, contents: function(e) { return e.contentDocument || g.merge([], e.childNodes) } }, (function(e, t) { g.fn[e] = function(n, r) { var i = g.map(this, t, n); return "Until" !== e.slice(-5) && (r = n), r && "string" == typeof r && (i = g.filter(r, i)), this.length > 1 && (j[e] || g.unique(i), N.test(e) && i.reverse()), this.pushStack(i) } } )); var O, q = /\S+/g, $ = {}; function I() { h.removeEventListener("DOMContentLoaded", I, !1), r.removeEventListener("load", I, !1), g.ready() } g.Callbacks = function(e) { e = "string" == typeof e ? $[e] || function(e) { var t = $[e] = {}; return g.each(e.match(q) || [], (function(e, n) { t[n] = !0 } )), t }(e) : g.extend({}, e); var t, n, r, i, o, a, s = [], l = !e.once && [], u = function(f) { for (t = e.memory && f, n = !0, a = i || 0, i = 0, o = s.length, r = !0; s && o > a; a++) if (!1 === s[a].apply(f[0], f[1]) && e.stopOnFalse) { t = !1; break } r = !1, s && (l ? l.length && u(l.shift()) : t ? s = [] : c.disable()) }, c = { add: function() { if (s) { var n = s.length; !function t(n) { g.each(n, (function(n, r) { var i = g.type(r); "function" === i ? e.unique && c.has(r) || s.push(r) : r && r.length && "string" !== i && t(r) } )) }(arguments), r ? o = s.length : t && (i = n, u(t)) } return this }, remove: function() { return s && g.each(arguments, (function(e, t) { for (var n; (n = g.inArray(t, s, n)) > -1; ) s.splice(n, 1), r && (o >= n && o--, a >= n && a--) } )), this }, has: function(e) { return e ? g.inArray(e, s) > -1 : !(!s || !s.length) }, empty: function() { return s = [], o = 0, this }, disable: function() { return s = l = t = void 0, this }, disabled: function() { return !s }, lock: function() { return l = void 0, t || c.disable(), this }, locked: function() { return !l }, fireWith: function(e, t) { return !s || n && !l || (t = [e, (t = t || []).slice ? t.slice() : t], r ? l.push(t) : u(t)), this }, fire: function() { return c.fireWith(this, arguments), this }, fired: function() { return !!n } }; return c } , g.extend({ Deferred: function(e) { var t = [["resolve", "done", g.Callbacks("once memory"), "resolved"], ["reject", "fail", g.Callbacks("once memory"), "rejected"], ["notify", "progress", g.Callbacks("memory")]] , n = "pending" , r = { state: function() { return n }, always: function() { return i.done(arguments).fail(arguments), this }, then: function() { var e = arguments; return g.Deferred((function(n) { g.each(t, (function(t, o) { var a = g.isFunction(e[t]) && e[t]; i[o[1]]((function() { var e = a && a.apply(this, arguments); e && g.isFunction(e.promise) ? e.promise().done(n.resolve).fail(n.reject).progress(n.notify) : n[o[0] + "With"](this === r ? n.promise() : this, a ? [e] : arguments) } )) } )), e = null } )).promise() }, promise: function(e) { return null != e ? g.extend(e, r) : r } } , i = {}; return r.pipe = r.then, g.each(t, (function(e, o) { var a = o[2] , s = o[3]; r[o[1]] = a.add, s && a.add((function() { n = s } ), t[1 ^ e][2].disable, t[2][2].lock), i[o[0]] = function() { return i[o[0] + "With"](this === i ? r : this, arguments), this } , i[o[0] + "With"] = a.fireWith } )), r.promise(i), e && e.call(i, i), i }, when: function(e) { var t, n, r, i = 0, o = a.call(arguments), s = o.length, l = 1 !== s || e && g.isFunction(e.promise) ? s : 0, u = 1 === l ? e : g.Deferred(), c = function(e, n, r) { return function(i) { n[e] = this, r[e] = arguments.length > 1 ? a.call(arguments) : i, r === t ? u.notifyWith(n, r) : --l || u.resolveWith(n, r) } }; if (s > 1) for (t = new Array(s), n = new Array(s), r = new Array(s); s > i; i++) o[i] && g.isFunction(o[i].promise) ? o[i].promise().done(c(i, r, o)).fail(u.reject).progress(c(i, n, t)) : --l; return l || u.resolveWith(r, o), u.promise() } }), g.fn.ready = function(e) { return g.ready.promise().done(e), this } , g.extend({ isReady: !1, readyWait: 1, holdReady: function(e) { e ? g.readyWait++ : g.ready(!0) }, ready: function(e) { (!0 === e ? --g.readyWait : g.isReady) || (g.isReady = !0, !0 !== e && --g.readyWait > 0 || (O.resolveWith(h, [g]), g.fn.triggerHandler && (g(h).triggerHandler("ready"), g(h).off("ready")))) } }), g.ready.promise = function(e) { return O || (O = g.Deferred(), "complete" === h.readyState ? setTimeout(g.ready) : (h.addEventListener("DOMContentLoaded", I, !1), r.addEventListener("load", I, !1))), O.promise(e) } , g.ready.promise(); var M = g.access = function(e, t, n, r, i, o, a) { var s = 0 , l = e.length , u = null == n; if ("object" === g.type(n)) for (s in i = !0, n) g.access(e, t, s, n[s], !0, o, a); else if (void 0 !== r && (i = !0, g.isFunction(r) || (a = !0), u && (a ? (t.call(e, r), t = null) : (u = t, t = function(e, t, n) { return u.call(g(e), n) } )), t)) for (; l > s; s++) t(e[s], n, a ? r : r.call(e[s], s, t(e[s], n))); return i ? e : u ? t.call(e) : l ? t(e[0], n) : o } ; function P() { Object.defineProperty(this.cache = {}, 0, { get: function() { return {} } }), this.expando = g.expando + P.uid++ } g.acceptData = function(e) { return 1 === e.nodeType || 9 === e.nodeType || !+e.nodeType } , P.uid = 1, P.accepts = g.acceptData, P.prototype = { key: function(e) { if (!P.accepts(e)) return 0; var t = {} , n = e[this.expando]; if (!n) { n = P.uid++; try { t[this.expando] = { value: n }, Object.defineProperties(e, t) } catch (r) { t[this.expando] = n, g.extend(e, t) } } return this.cache[n] || (this.cache[n] = {}), n }, set: function(e, t, n) { var r, i = this.key(e), o = this.cache[i]; if ("string" == typeof t) o[t] = n; else if (g.isEmptyObject(o)) g.extend(this.cache[i], t); else for (r in t) o[r] = t[r]; return o }, get: function(e, t) { var n = this.cache[this.key(e)]; return void 0 === t ? n : n[t] }, access: function(e, t, n) { var r; return void 0 === t || t && "string" == typeof t && void 0 === n ? void 0 !== (r = this.get(e, t)) ? r : this.get(e, g.camelCase(t)) : (this.set(e, t, n), void 0 !== n ? n : t) }, remove: function(e, t) { var n, r, i, o = this.key(e), a = this.cache[o]; if (void 0 === t) this.cache[o] = {}; else { g.isArray(t) ? r = t.concat(t.map(g.camelCase)) : (i = g.camelCase(t), r = t in a ? [t, i] : (r = i)in a ? [r] : r.match(q) || []), n = r.length; for (; n--; ) delete a[r[n]] } }, hasData: function(e) { return !g.isEmptyObject(this.cache[e[this.expando]] || {}) }, discard: function(e) { e[this.expando] && delete this.cache[e[this.expando]] } }; var H = new P , R = new P , F = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/ , _ = /([A-Z])/g; function z(e, t, n) { var r; if (void 0 === n && 1 === e.nodeType) if (r = "data-" + t.replace(_, "-$1").toLowerCase(), "string" == typeof (n = e.getAttribute(r))) { try { n = "true" === n || "false" !== n && ("null" === n ? null : +n + "" === n ? +n : F.test(n) ? g.parseJSON(n) : n) } catch (e) {} R.set(e, t, n) } else n = void 0; return n } g.extend({ hasData: function(e) { return R.hasData(e) || H.hasData(e) }, data: function(e, t, n) { return R.access(e, t, n) }, removeData: function(e, t) { R.remove(e, t) }, _data: function(e, t, n) { return H.access(e, t, n) }, _removeData: function(e, t) { H.remove(e, t) } }), g.fn.extend({ data: function(e, t) { var n, r, i, o = this[0], a = o && o.attributes; if (void 0 === e) { if (this.length && (i = R.get(o), 1 === o.nodeType && !H.get(o, "hasDataAttrs"))) { for (n = a.length; n--; ) a[n] && 0 === (r = a[n].name).indexOf("data-") && (r = g.camelCase(r.slice(5)), z(o, r, i[r])); H.set(o, "hasDataAttrs", !0) } return i } return "object" == typeof e ? this.each((function() { R.set(this, e) } )) : M(this, (function(t) { var n, r = g.camelCase(e); if (o && void 0 === t) { if (void 0 !== (n = R.get(o, e))) return n; if (void 0 !== (n = R.get(o, r))) return n; if (void 0 !== (n = z(o, r, void 0))) return n } else this.each((function() { var n = R.get(this, r); R.set(this, r, t), -1 !== e.indexOf("-") && void 0 !== n && R.set(this, e, t) } )) } ), null, t, arguments.length > 1, null, !0) }, removeData: function(e) { return this.each((function() { R.remove(this, e) } )) } }), g.extend({ queue: function(e, t, n) { var r; return e ? (t = (t || "fx") + "queue", r = H.get(e, t), n && (!r || g.isArray(n) ? r = H.access(e, t, g.makeArray(n)) : r.push(n)), r || []) : void 0 }, dequeue: function(e, t) { t = t || "fx"; var n = g.queue(e, t) , r = n.length , i = n.shift() , o = g._queueHooks(e, t); "inprogress" === i && (i = n.shift(), r--), i && ("fx" === t && n.unshift("inprogress"), delete o.stop, i.call(e, (function() { g.dequeue(e, t) } ), o)), !r && o && o.empty.fire() }, _queueHooks: function(e, t) { var n = t + "queueHooks"; return H.get(e, n) || H.access(e, n, { empty: g.Callbacks("once memory").add((function() { H.remove(e, [t + "queue", n]) } )) }) } }), g.fn.extend({ queue: function(e, t) { var n = 2; return "string" != typeof e && (t = e, e = "fx", n--), arguments.length < n ? g.queue(this[0], e) : void 0 === t ? this : this.each((function() { var n = g.queue(this, e, t); g._queueHooks(this, e), "fx" === e && "inprogress" !== n[0] && g.dequeue(this, e) } )) }, dequeue: function(e) { return this.each((function() { g.dequeue(this, e) } )) }, clearQueue: function(e) { return this.queue(e || "fx", []) }, promise: function(e, t) { var n, r = 1, i = g.Deferred(), o = this, a = this.length, s = function() { --r || i.resolveWith(o, [o]) }; for ("string" != typeof e && (t = e, e = void 0), e = e || "fx"; a--; ) (n = H.get(o[a], e + "queueHooks")) && n.empty && (r++, n.empty.add(s)); return s(), i.promise(t) } }); var B = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source , W = ["Top", "Right", "Bottom", "Left"] , U = function(e, t) { return e = t || e, "none" === g.css(e, "display") || !g.contains(e.ownerDocument, e) } , X = /^(?:checkbox|radio)$/i; !function() { var e = h.createDocumentFragment().appendChild(h.createElement("div")) , t = h.createElement("input"); t.setAttribute("type", "radio"), t.setAttribute("checked", "checked"), t.setAttribute("name", "t"), e.appendChild(t), p.checkClone = e.cloneNode(!0).cloneNode(!0).lastChild.checked, e.innerHTML = "<textarea>x</textarea>", p.noCloneChecked = !!e.cloneNode(!0).lastChild.defaultValue }(); var V = "undefined"; p.focusinBubbles = "onfocusin"in r; var Q = /^key/ , Y = /^(?:mouse|pointer|contextmenu)|click/ , G = /^(?:focusinfocus|focusoutblur)$/ , J = /^([^.]*)(?:\.(.+)|)$/; function K() { return !0 } function Z() { return !1 } function ee() { try { return h.activeElement } catch (e) {} } g.event = { global: {}, add: function(e, t, n, r, i) { var o, a, s, l, u, c, f, d, p, h, m, v = H.get(e); if (v) for (n.handler && (n = (o = n).handler, i = o.selector), n.guid || (n.guid = g.guid++), (l = v.events) || (l = v.events = {}), (a = v.handle) || (a = v.handle = function(t) { return typeof g !== V && g.event.triggered !== t.type ? g.event.dispatch.apply(e, arguments) : void 0 } ), u = (t = (t || "").match(q) || [""]).length; u--; ) p = m = (s = J.exec(t[u]) || [])[1], h = (s[2] || "").split(".").sort(), p && (f = g.event.special[p] || {}, p = (i ? f.delegateType : f.bindType) || p, f = g.event.special[p] || {}, c = g.extend({ type: p, origType: m, data: r, handler: n, guid: n.guid, selector: i, needsContext: i && g.expr.match.needsContext.test(i), namespace: h.join(".") }, o), (d = l[p]) || ((d = l[p] = []).delegateCount = 0, f.setup && !1 !== f.setup.call(e, r, h, a) || e.addEventListener && e.addEventListener(p, a, !1)), f.add && (f.add.call(e, c), c.handler.guid || (c.handler.guid = n.guid)), i ? d.splice(d.delegateCount++, 0, c) : d.push(c), g.event.global[p] = !0) }, remove: function(e, t, n, r, i) { var o, a, s, l, u, c, f, d, p, h, m, v = H.hasData(e) && H.get(e); if (v && (l = v.events)) { for (u = (t = (t || "").match(q) || [""]).length; u--; ) if (p = m = (s = J.exec(t[u]) || [])[1], h = (s[2] || "").split(".").sort(), p) { for (f = g.event.special[p] || {}, d = l[p = (r ? f.delegateType : f.bindType) || p] || [], s = s[2] && new RegExp("(^|\\.)" + h.join("\\.(?:.*\\.|)") + "(\\.|$)"), a = o = d.length; o--; ) c = d[o], !i && m !== c.origType || n && n.guid !== c.guid || s && !s.test(c.namespace) || r && r !== c.selector && ("**" !== r || !c.selector) || (d.splice(o, 1), c.selector && d.delegateCount--, f.remove && f.remove.call(e, c)); a && !d.length && (f.teardown && !1 !== f.teardown.call(e, h, v.handle) || g.removeEvent(e, p, v.handle), delete l[p]) } else for (p in l) g.event.remove(e, p + t[u], n, r, !0); g.isEmptyObject(l) && (delete v.handle, H.remove(e, "events")) } }, trigger: function(e, t, n, i) { var o, a, s, l, u, c, f, p = [n || h], m = d.call(e, "type") ? e.type : e, v = d.call(e, "namespace") ? e.namespace.split(".") : []; if (a = s = n = n || h, 3 !== n.nodeType && 8 !== n.nodeType && !G.test(m + g.event.triggered) && (m.indexOf(".") >= 0 && (v = m.split("."), m = v.shift(), v.sort()), u = m.indexOf(":") < 0 && "on" + m, (e = e[g.expando] ? e : new g.Event(m,"object" == typeof e && e)).isTrigger = i ? 2 : 3, e.namespace = v.join("."), e.namespace_re = e.namespace ? new RegExp("(^|\\.)" + v.join("\\.(?:.*\\.|)") + "(\\.|$)") : null, e.result = void 0, e.target || (e.target = n), t = null == t ? [e] : g.makeArray(t, [e]), f = g.event.special[m] || {}, i || !f.trigger || !1 !== f.trigger.apply(n, t))) { if (!i && !f.noBubble && !g.isWindow(n)) { for (l = f.delegateType || m, G.test(l + m) || (a = a.parentNode); a; a = a.parentNode) p.push(a), s = a; s === (n.ownerDocument || h) && p.push(s.defaultView || s.parentWindow || r) } for (o = 0; (a = p[o++]) && !e.isPropagationStopped(); ) e.type = o > 1 ? l : f.bindType || m, (c = (H.get(a, "events") || {})[e.type] && H.get(a, "handle")) && c.apply(a, t), (c = u && a[u]) && c.apply && g.acceptData(a) && (e.result = c.apply(a, t), !1 === e.result && e.preventDefault()); return e.type = m, i || e.isDefaultPrevented() || f._default && !1 !== f._default.apply(p.pop(), t) || !g.acceptData(n) || u && g.isFunction(n[m]) && !g.isWindow(n) && ((s = n[u]) && (n[u] = null), g.event.triggered = m, n[m](), g.event.triggered = void 0, s && (n[u] = s)), e.result } }, dispatch: function(e) { e = g.event.fix(e); var t, n, r, i, o, s = [], l = a.call(arguments), u = (H.get(this, "events") || {})[e.type] || [], c = g.event.special[e.type] || {}; if (l[0] = e, e.delegateTarget = this, !c.preDispatch || !1 !== c.preDispatch.call(this, e)) { for (s = g.event.handlers.call(this, e, u), t = 0; (i = s[t++]) && !e.isPropagationStopped(); ) for (e.currentTarget = i.elem, n = 0; (o = i.handlers[n++]) && !e.isImmediatePropagationStopped(); ) (!e.namespace_re || e.namespace_re.test(o.namespace)) && (e.handleObj = o, e.data = o.data, void 0 !== (r = ((g.event.special[o.origType] || {}).handle || o.handler).apply(i.elem, l)) && !1 === (e.result = r) && (e.preventDefault(), e.stopPropagation())); return c.postDispatch && c.postDispatch.call(this, e), e.result } }, handlers: function(e, t) { var n, r, i, o, a = [], s = t.delegateCount, l = e.target; if (s && l.nodeType && (!e.button || "click" !== e.type)) for (; l !== this; l = l.parentNode || this) if (!0 !== l.disabled || "click" !== e.type) { for (r = [], n = 0; s > n; n++) void 0 === r[i = (o = t[n]).selector + " "] && (r[i] = o.needsContext ? g(i, this).index(l) >= 0 : g.find(i, this, null, [l]).length), r[i] && r.push(o); r.length && a.push({ elem: l, handlers: r }) } return s < t.length && a.push({ elem: this, handlers: t.slice(s) }), a }, props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "), fixHooks: {}, keyHooks: { props: "char charCode key keyCode".split(" "), filter: function(e, t) { return null == e.which && (e.which = null != t.charCode ? t.charCode : t.keyCode), e } }, mouseHooks: { props: "button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "), filter: function(e, t) { var n, r, i, o = t.button; return null == e.pageX && null != t.clientX && (r = (n = e.target.ownerDocument || h).documentElement, i = n.body, e.pageX = t.clientX + (r && r.scrollLeft || i && i.scrollLeft || 0) - (r && r.clientLeft || i && i.clientLeft || 0), e.pageY = t.clientY + (r && r.scrollTop || i && i.scrollTop || 0) - (r && r.clientTop || i && i.clientTop || 0)), e.which || void 0 === o || (e.which = 1 & o ? 1 : 2 & o ? 3 : 4 & o ? 2 : 0), e } }, fix: function(e) { if (e[g.expando]) return e; var t, n, r, i = e.type, o = e, a = this.fixHooks[i]; for (a || (this.fixHooks[i] = a = Y.test(i) ? this.mouseHooks : Q.test(i) ? this.keyHooks : {}), r = a.props ? this.props.concat(a.props) : this.props, e = new g.Event(o), t = r.length; t--; ) e[n = r[t]] = o[n]; return e.target || (e.target = h), 3 === e.target.nodeType && (e.target = e.target.parentNode), a.filter ? a.filter(e, o) : e }, special: { load: { noBubble: !0 }, focus: { trigger: function() { return this !== ee() && this.focus ? (this.focus(), !1) : void 0 }, delegateType: "focusin" }, blur: { trigger: function() { return this === ee() && this.blur ? (this.blur(), !1) : void 0 }, delegateType: "focusout" }, click: { trigger: function() { return "checkbox" === this.type && this.click && g.nodeName(this, "input") ? (this.click(), !1) : void 0 }, _default: function(e) { return g.nodeName(e.target, "a") } }, beforeunload: { postDispatch: function(e) { void 0 !== e.result && e.originalEvent && (e.originalEvent.returnValue = e.result) } } }, simulate: function(e, t, n, r) { var i = g.extend(new g.Event, n, { type: e, isSimulated: !0, originalEvent: {} }); r ? g.event.trigger(i, null, t) : g.event.dispatch.call(t, i), i.isDefaultPrevented() && n.preventDefault() } }, g.removeEvent = function(e, t, n) { e.removeEventListener && e.removeEventListener(t, n, !1) } , g.Event = function(e, t) { return this instanceof g.Event ? (e && e.type ? (this.originalEvent = e, this.type = e.type, this.isDefaultPrevented = e.defaultPrevented || void 0 === e.defaultPrevented && !1 === e.returnValue ? K : Z) : this.type = e, t && g.extend(this, t), this.timeStamp = e && e.timeStamp || g.now(), void (this[g.expando] = !0)) : new g.Event(e,t) } , g.Event.prototype = { isDefaultPrevented: Z, isPropagationStopped: Z, isImmediatePropagationStopped: Z, preventDefault: function() { var e = this.originalEvent; this.isDefaultPrevented = K, e && e.preventDefault && e.preventDefault() }, stopPropagation: function() { var e = this.originalEvent; this.isPropagationStopped = K, e && e.stopPropagation && e.stopPropagation() }, stopImmediatePropagation: function() { var e = this.originalEvent; this.isImmediatePropagationStopped = K, e && e.stopImmediatePropagation && e.stopImmediatePropagation(), this.stopPropagation() } }, g.each({ mouseenter: "mouseover", mouseleave: "mouseout", pointerenter: "pointerover", pointerleave: "pointerout" }, (function(e, t) { g.event.special[e] = { delegateType: t, bindType: t, handle: function(e) { var n, r = this, i = e.relatedTarget, o = e.handleObj; return (!i || i !== r && !g.contains(r, i)) && (e.type = o.origType, n = o.handler.apply(this, arguments), e.type = t), n } } } )), p.focusinBubbles || g.each({ focus: "focusin", blur: "focusout" }, (function(e, t) { var n = function(e) { g.event.simulate(t, e.target, g.event.fix(e), !0) }; g.event.special[t] = { setup: function() { var r = this.ownerDocument || this , i = H.access(r, t); i || r.addEventListener(e, n, !0), H.access(r, t, (i || 0) + 1) }, teardown: function() { var r = this.ownerDocument || this , i = H.access(r, t) - 1; i ? H.access(r, t, i) : (r.removeEventListener(e, n, !0), H.remove(r, t)) } } } )), g.fn.extend({ on: function(e, t, n, r, i) { var o, a; if ("object" == typeof e) { for (a in "string" != typeof t && (n = n || t, t = void 0), e) this.on(a, t, n, e[a], i); return this } if (null == n && null == r ? (r = t, n = t = void 0) : null == r && ("string" == typeof t ? (r = n, n = void 0) : (r = n, n = t, t = void 0)), !1 === r) r = Z; else if (!r) return this; return 1 === i && (o = r, (r = function(e) { return g().off(e), o.apply(this, arguments) } ).guid = o.guid || (o.guid = g.guid++)), this.each((function() { g.event.add(this, e, r, n, t) } )) }, one: function(e, t, n, r) { return this.on(e, t, n, r, 1) }, off: function(e, t, n) { var r, i; if (e && e.preventDefault && e.handleObj) return r = e.handleObj, g(e.delegateTarget).off(r.namespace ? r.origType + "." + r.namespace : r.origType, r.selector, r.handler), this; if ("object" == typeof e) { for (i in e) this.off(i, t, e[i]); return this } return (!1 === t || "function" == typeof t) && (n = t, t = void 0), !1 === n && (n = Z), this.each((function() { g.event.remove(this, e, n, t) } )) }, trigger: function(e, t) { return this.each((function() { g.event.trigger(e, t, this) } )) }, triggerHandler: function(e, t) { var n = this[0]; return n ? g.event.trigger(e, t, n, !0) : void 0 } }); var te = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi , ne = /<([\w:]+)/ , re = /<|&#?\w+;/ , ie = /<(?:script|style|link)/i , oe = /checked\s*(?:[^=]|=\s*.checked.)/i , ae = /^$|\/(?:java|ecma)script/i , se = /^true\/(.*)/ , le = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g , ue = { option: [1, "<select multiple='multiple'>", "</select>"], thead: [1, "<table>", "</table>"], col: [2, "<table><colgroup>", "</colgroup></table>"], tr: [2, "<table><tbody>", "</tbody></table>"], td: [3, "<table><tbody><tr>", "</tr></tbody></table>"], _default: [0, "", ""] }; function ce(e, t) { return g.nodeName(e, "table") && g.nodeName(11 !== t.nodeType ? t : t.firstChild, "tr") ? e.getElementsByTagName("tbody")[0] || e.appendChild(e.ownerDocument.createElement("tbody")) : e } function fe(e) { return e.type = (null !== e.getAttribute("type")) + "/" + e.type, e } function de(e) { var t = se.exec(e.type); return t ? e.type = t[1] : e.removeAttribute("type"), e } function pe(e, t) { for (var n = 0, r = e.length; r > n; n++) H.set(e[n], "globalEval", !t || H.get(t[n], "globalEval")) } function he(e, t) { var n, r, i, o, a, s, l, u; if (1 === t.nodeType) { if (H.hasData(e) && (o = H.access(e), a = H.set(t, o), u = o.events)) for (i in delete a.handle, a.events = {}, u) for (n = 0, r = u[i].length; r > n; n++) g.event.add(t, i, u[i][n]); R.hasData(e) && (s = R.access(e), l = g.extend({}, s), R.set(t, l)) } } function me(e, t) { var n = e.getElementsByTagName ? e.getElementsByTagName(t || "*") : e.querySelectorAll ? e.querySelectorAll(t || "*") : []; return void 0 === t || t && g.nodeName(e, t) ? g.merge([e], n) : n } function ge(e, t) { var n = t.nodeName.toLowerCase(); "input" === n && X.test(e.type) ? t.checked = e.checked : ("input" === n || "textarea" === n) && (t.defaultValue = e.defaultValue) } ue.optgroup = ue.option, ue.tbody = ue.tfoot = ue.colgroup = ue.caption = ue.thead, ue.th = ue.td, g.extend({ clone: function(e, t, n) { var r, i, o, a, s = e.cloneNode(!0), l = g.contains(e.ownerDocument, e); if (!(p.noCloneChecked || 1 !== e.nodeType && 11 !== e.nodeType || g.isXMLDoc(e))) for (a = me(s), r = 0, i = (o = me(e)).length; i > r; r++) ge(o[r], a[r]); if (t) if (n) for (o = o || me(e), a = a || me(s), r = 0, i = o.length; i > r; r++) he(o[r], a[r]); else he(e, s); return (a = me(s, "script")).length > 0 && pe(a, !l && me(e, "script")), s }, buildFragment: function(e, t, n, r) { for (var i, o, a, s, l, u, c = t.createDocumentFragment(), f = [], d = 0, p = e.length; p > d; d++) if ((i = e[d]) || 0 === i) if ("object" === g.type(i)) g.merge(f, i.nodeType ? [i] : i); else if (re.test(i)) { for (o = o || c.appendChild(t.createElement("div")), a = (ne.exec(i) || ["", ""])[1].toLowerCase(), s = ue[a] || ue._default, o.innerHTML = s[1] + i.replace(te, "<$1></$2>") + s[2], u = s[0]; u--; ) o = o.lastChild; g.merge(f, o.childNodes), (o = c.firstChild).textContent = "" } else f.push(t.createTextNode(i)); for (c.textContent = "", d = 0; i = f[d++]; ) if ((!r || -1 === g.inArray(i, r)) && (l = g.contains(i.ownerDocument, i), o = me(c.appendChild(i), "script"), l && pe(o), n)) for (u = 0; i = o[u++]; ) ae.test(i.type || "") && n.push(i); return c }, cleanData: function(e) { for (var t, n, r, i, o = g.event.special, a = 0; void 0 !== (n = e[a]); a++) { if (g.acceptData(n) && (i = n[H.expando]) && (t = H.cache[i])) { if (t.events) for (r in t.events) o[r] ? g.event.remove(n, r) : g.removeEvent(n, r, t.handle); H.cache[i] && delete H.cache[i] } delete R.cache[n[R.expando]] } } }), g.fn.extend({ text: function(e) { return M(this, (function(e) { return void 0 === e ? g.text(this) : this.empty().each((function() { (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) && (this.textContent = e) } )) } ), null, e, arguments.length) }, append: function() { return this.domManip(arguments, (function(e) { 1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || ce(this, e).appendChild(e) } )) }, prepend: function() { return this.domManip(arguments, (function(e) { if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) { var t = ce(this, e); t.insertBefore(e, t.firstChild) } } )) }, before: function() { return this.domManip(arguments, (function(e) { this.parentNode && this.parentNode.insertBefore(e, this) } )) }, after: function() { return this.domManip(arguments, (function(e) { this.parentNode && this.parentNode.insertBefore(e, this.nextSibling) } )) }, remove: function(e, t) { for (var n, r = e ? g.filter(e, this) : this, i = 0; null != (n = r[i]); i++) t || 1 !== n.nodeType || g.cleanData(me(n)), n.parentNode && (t && g.contains(n.ownerDocument, n) && pe(me(n, "script")), n.parentNode.removeChild(n)); return this }, empty: function() { for (var e, t = 0; null != (e = this[t]); t++) 1 === e.nodeType && (g.cleanData(me(e, !1)), e.textContent = ""); return this }, clone: function(e, t) { return e = null != e && e, t = null == t ? e : t, this.map((function() { return g.clone(this, e, t) } )) }, html: function(e) { return M(this, (function(e) { var t = this[0] || {} , n = 0 , r = this.length; if (void 0 === e && 1 === t.nodeType) return t.innerHTML; if ("string" == typeof e && !ie.test(e) && !ue[(ne.exec(e) || ["", ""])[1].toLowerCase()]) { e = e.replace(te, "<$1></$2>"); try { for (; r > n; n++) 1 === (t = this[n] || {}).nodeType && (g.cleanData(me(t, !1)), t.innerHTML = e); t = 0 } catch (e) {} } t && this.empty().append(e) } ), null, e, arguments.length) }, replaceWith: function() { var e = arguments[0]; return this.domManip(arguments, (function(t) { e = this.parentNode, g.cleanData(me(this)), e && e.replaceChild(t, this) } )), e && (e.length || e.nodeType) ? this : this.remove() }, detach: function(e) { return this.remove(e, !0) }, domManip: function(e, t) { e = s.apply([], e); var n, r, i, o, a, l, u = 0, c = this.length, f = this, d = c - 1, h = e[0], m = g.isFunction(h); if (m || c > 1 && "string" == typeof h && !p.checkClone && oe.test(h)) return this.each((function(n) { var r = f.eq(n); m && (e[0] = h.call(this, n, r.html())), r.domManip(e, t) } )); if (c && (r = (n = g.buildFragment(e, this[0].ownerDocument, !1, this)).firstChild, 1 === n.childNodes.length && (n = r), r)) { for (o = (i = g.map(me(n, "script"), fe)).length; c > u; u++) a = n, u !== d && (a = g.clone(a, !0, !0), o && g.merge(i, me(a, "script"))), t.call(this[u], a, u); if (o) for (l = i[i.length - 1].ownerDocument, g.map(i, de), u = 0; o > u; u++) a = i[u], ae.test(a.type || "") && !H.access(a, "globalEval") && g.contains(l, a) && (a.src ? g._evalUrl && g._evalUrl(a.src) : g.globalEval(a.textContent.replace(le, ""))) } return this } }), g.each({ appendTo: "append", prependTo: "prepend", insertBefore: "before", insertAfter: "after", replaceAll: "replaceWith" }, (function(e, t) { g.fn[e] = function(e) { for (var n, r = [], i = g(e), o = i.length - 1, a = 0; o >= a; a++) n = a === o ? this : this.clone(!0), g(i[a])[t](n), l.apply(r, n.get()); return this.pushStack(r) } } )); var ve, ye = {}; function be(e, t) { var n, i = g(t.createElement(e)).appendTo(t.body), o = r.getDefaultComputedStyle && (n = r.getDefaultComputedStyle(i[0])) ? n.display : g.css(i[0], "display"); return i.detach(), o } function xe(e) { var t = h , n = ye[e]; return n || ("none" !== (n = be(e, t)) && n || ((t = (ve = (ve || g("<iframe frameborder='0' width='0' height='0'/>")).appendTo(t.documentElement))[0].contentDocument).write(), t.close(), n = be(e, t), ve.detach()), ye[e] = n), n } var we = /^margin/ , Te = new RegExp("^(" + B + ")(?!px)[a-z%]+$","i") , ke = function(e) { return e.ownerDocument.defaultView.opener ? e.ownerDocument.defaultView.getComputedStyle(e, null) : r.getComputedStyle(e, null) }; function Ce(e, t, n) { var r, i, o, a, s = e.style; return (n = n || ke(e)) && (a = n.getPropertyValue(t) || n[t]), n && ("" !== a || g.contains(e.ownerDocument, e) || (a = g.style(e, t)), Te.test(a) && we.test(t) && (r = s.width, i = s.minWidth, o = s.maxWidth, s.minWidth = s.maxWidth = s.width = a, a = n.width, s.width = r, s.minWidth = i, s.maxWidth = o)), void 0 !== a ? a + "" : a } function Ee(e, t) { return { get: function() { return e() ? void delete this.get : (this.get = t).apply(this, arguments) } } } !function() { var e, t, n = h.documentElement, i = h.createElement("div"), o = h.createElement("div"); if (o.style) { function a() { o.style.cssText = "-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute", o.innerHTML = "", n.appendChild(i); var a = r.getComputedStyle(o, null); e = "1%" !== a.top, t = "4px" === a.width, n.removeChild(i) } o.style.backgroundClip = "content-box", o.cloneNode(!0).style.backgroundClip = "", p.clearCloneStyle = "content-box" === o.style.backgroundClip, i.style.cssText = "border:0;width:0;height:0;top:0;left:-9999px;margin-top:1px;position:absolute", i.appendChild(o), r.getComputedStyle && g.extend(p, { pixelPosition: function() { return a(), e }, boxSizingReliable: function() { return null == t && a(), t }, reliableMarginRight: function() { var e, t = o.appendChild(h.createElement("div")); return t.style.cssText = o.style.cssText = "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0", t.style.marginRight = t.style.width = "0", o.style.width = "1px", n.appendChild(i), e = !parseFloat(r.getComputedStyle(t, null).marginRight), n.removeChild(i), o.removeChild(t), e } }) } }(), g.swap = function(e, t, n, r) { var i, o, a = {}; for (o in t) a[o] = e.style[o], e.style[o] = t[o]; for (o in i = n.apply(e, r || []), t) e.style[o] = a[o]; return i } ; var Se = /^(none|table(?!-c[ea]).+)/ , Ae = new RegExp("^(" + B + ")(.*)$","i") , De = new RegExp("^([+-])=(" + B + ")","i") , Ne = { position: "absolute", visibility: "hidden", display: "block" } , je = { letterSpacing: "0", fontWeight: "400" } , Le = ["Webkit", "O", "Moz", "ms"]; function Oe(e, t) { if (t in e) return t; for (var n = t[0].toUpperCase() + t.slice(1), r = t, i = Le.length; i--; ) if ((t = Le[i] + n)in e) return t; return r } function qe(e, t, n) { var r = Ae.exec(t); return r ? Math.max(0, r[1] - (n || 0)) + (r[2] || "px") : t } function $e(e, t, n, r, i) { for (var o = n === (r ? "border" : "content") ? 4 : "width" === t ? 1 : 0, a = 0; 4 > o; o += 2) "margin" === n && (a += g.css(e, n + W[o], !0, i)), r ? ("content" === n && (a -= g.css(e, "padding" + W[o], !0, i)), "margin" !== n && (a -= g.css(e, "border" + W[o] + "Width", !0, i))) : (a += g.css(e, "padding" + W[o], !0, i), "padding" !== n && (a += g.css(e, "border" + W[o] + "Width", !0, i))); return a } function Ie(e, t, n) { var r = !0 , i = "width" === t ? e.offsetWidth : e.offsetHeight , o = ke(e) , a = "border-box" === g.css(e, "boxSizing", !1, o); if (0 >= i || null == i) { if ((0 > (i = Ce(e, t, o)) || null == i) && (i = e.style[t]), Te.test(i)) return i; r = a && (p.boxSizingReliable() || i === e.style[t]), i = parseFloat(i) || 0 } return i + $e(e, t, n || (a ? "border" : "content"), r, o) + "px" } function Me(e, t) { for (var n, r, i, o = [], a = 0, s = e.length; s > a; a++) (r = e[a]).style && (o[a] = H.get(r, "olddisplay"), n = r.style.display, t ? (o[a] || "none" !== n || (r.style.display = ""), "" === r.style.display && U(r) && (o[a] = H.access(r, "olddisplay", xe(r.nodeName)))) : (i = U(r), "none" === n && i || H.set(r, "olddisplay", i ? n : g.css(r, "display")))); for (a = 0; s > a; a++) (r = e[a]).style && (t && "none" !== r.style.display && "" !== r.style.display || (r.style.display = t ? o[a] || "" : "none")); return e } function Pe(e, t, n, r, i) { return new Pe.prototype.init(e,t,n,r,i) } g.extend({ cssHooks: { opacity: { get: function(e, t) { if (t) { var n = Ce(e, "opacity"); return "" === n ? "1" : n } } } }, cssNumber: { columnCount: !0, fillOpacity: !0, flexGrow: !0, flexShrink: !0, fontWeight: !0, lineHeight: !0, opacity: !0, order: !0, orphans: !0, widows: !0, zIndex: !0, zoom: !0 }, cssProps: { float: "cssFloat" }, style: function(e, t, n, r) { if (e && 3 !== e.nodeType && 8 !== e.nodeType && e.style) { var i, o, a, s = g.camelCase(t), l = e.style; return t = g.cssProps[s] || (g.cssProps[s] = Oe(l, s)), a = g.cssHooks[t] || g.cssHooks[s], void 0 === n ? a && "get"in a && void 0 !== (i = a.get(e, !1, r)) ? i : l[t] : ("string" == (o = typeof n) && (i = De.exec(n)) && (n = (i[1] + 1) * i[2] + parseFloat(g.css(e, t)), o = "number"), void (null != n && n == n && ("number" !== o || g.cssNumber[s] || (n += "px"), p.clearCloneStyle || "" !== n || 0 !== t.indexOf("background") || (l[t] = "inherit"), a && "set"in a && void 0 === (n = a.set(e, n, r)) || (l[t] = n)))) } }, css: function(e, t, n, r) { var i, o, a, s = g.camelCase(t); return t = g.cssProps[s] || (g.cssProps[s] = Oe(e.style, s)), (a = g.cssHooks[t] || g.cssHooks[s]) && "get"in a && (i = a.get(e, !0, n)), void 0 === i && (i = Ce(e, t, r)), "normal" === i && t in je && (i = je[t]), "" === n || n ? (o = parseFloat(i), !0 === n || g.isNumeric(o) ? o || 0 : i) : i } }), g.each(["height", "width"], (function(e, t) { g.cssHooks[t] = { get: function(e, n, r) { return n ? Se.test(g.css(e, "display")) && 0 === e.offsetWidth ? g.swap(e, Ne, (function() { return Ie(e, t, r) } )) : Ie(e, t, r) : void 0 }, set: function(e, n, r) { var i = r && ke(e); return qe(0, n, r ? $e(e, t, r, "border-box" === g.css(e, "boxSizing", !1, i), i) : 0) } } } )), g.cssHooks.marginRight = Ee(p.reliableMarginRight, (function(e, t) { return t ? g.swap(e, { display: "inline-block" }, Ce, [e, "marginRight"]) : void 0 } )), g.each({ margin: "", padding: "", border: "Width" }, (function(e, t) { g.cssHooks[e + t] = { expand: function(n) { for (var r = 0, i = {}, o = "string" == typeof n ? n.split(" ") : [n]; 4 > r; r++) i[e + W[r] + t] = o[r] || o[r - 2] || o[0]; return i } }, we.test(e) || (g.cssHooks[e + t].set = qe) } )), g.fn.extend({ css: function(e, t) { return M(this, (function(e, t, n) { var r, i, o = {}, a = 0; if (g.isArray(t)) { for (r = ke(e), i = t.length; i > a; a++) o[t[a]] = g.css(e, t[a], !1, r); return o } return void 0 !== n ? g.style(e, t, n) : g.css(e, t) } ), e, t, arguments.length > 1) }, show: function() { return Me(this, !0) }, hide: function() { return Me(this) }, toggle: function(e) { return "boolean" == typeof e ? e ? this.show() : this.hide() : this.each((function() { U(this) ? g(this).show() : g(this).hide() } )) } }), g.Tween = Pe, Pe.prototype = { constructor: Pe, init: function(e, t, n, r, i, o) { this.elem = e, this.prop = n, this.easing = i || "swing", this.options = t, this.start = this.now = this.cur(), this.end = r, this.unit = o || (g.cssNumber[n] ? "" : "px") }, cur: function() { var e = Pe.propHooks[this.prop]; return e && e.get ? e.get(this) : Pe.propHooks._default.get(this) }, run: function(e) { var t, n = Pe.propHooks[this.prop]; return this.options.duration ? this.pos = t = g.easing[this.easing](e, this.options.duration * e, 0, 1, this.options.duration) : this.pos = t = e, this.now = (this.end - this.start) * t + this.start, this.options.step && this.options.step.call(this.elem, this.now, this), n && n.set ? n.set(this) : Pe.propHooks._default.set(this), this } }, Pe.prototype.init.prototype = Pe.prototype, Pe.propHooks = { _default: { get: function(e) { var t; return null == e.elem[e.prop] || e.elem.style && null != e.elem.style[e.prop] ? (t = g.css(e.elem, e.prop, "")) && "auto" !== t ? t : 0 : e.elem[e.prop] }, set: function(e) { g.fx.step[e.prop] ? g.fx.step[e.prop](e) : e.elem.style && (null != e.elem.style[g.cssProps[e.prop]] || g.cssHooks[e.prop]) ? g.style(e.elem, e.prop, e.now + e.unit) : e.elem[e.prop] = e.now } } }, Pe.propHooks.scrollTop = Pe.propHooks.scrollLeft = { set: function(e) { e.elem.nodeType && e.elem.parentNode && (e.elem[e.prop] = e.now) } }, g.easing = { linear: function(e) { return e }, swing: function(e) { return .5 - Math.cos(e * Math.PI) / 2 } }, g.fx = Pe.prototype.init, g.fx.step = {}; var He, Re, Fe = /^(?:toggle|show|hide)$/, _e = new RegExp("^(?:([+-])=|)(" + B + ")([a-z%]*)$","i"), ze = /queueHooks$/, Be = [function(e, t, n) { var r, i, o, a, s, l, u, c = this, f = {}, d = e.style, p = e.nodeType && U(e), h = H.get(e, "fxshow"); for (r in n.queue || (null == (s = g._queueHooks(e, "fx")).unqueued && (s.unqueued = 0, l = s.empty.fire, s.empty.fire = function() { s.unqueued || l() } ), s.unqueued++, c.always((function() { c.always((function() { s.unqueued--, g.queue(e, "fx").length || s.empty.fire() } )) } ))), 1 === e.nodeType && ("height"in t || "width"in t) && (n.overflow = [d.overflow, d.overflowX, d.overflowY], "inline" === ("none" === (u = g.css(e, "display")) ? H.get(e, "olddisplay") || xe(e.nodeName) : u) && "none" === g.css(e, "float") && (d.display = "inline-block")), n.overflow && (d.overflow = "hidden", c.always((function() { d.overflow = n.overflow[0], d.overflowX = n.overflow[1], d.overflowY = n.overflow[2] } ))), t) if (i = t[r], Fe.exec(i)) { if (delete t[r], o = o || "toggle" === i, i === (p ? "hide" : "show")) { if ("show" !== i || !h || void 0 === h[r]) continue; p = !0 } f[r] = h && h[r] || g.style(e, r) } else u = void 0; if (g.isEmptyObject(f)) "inline" === ("none" === u ? xe(e.nodeName) : u) && (d.display = u); else for (r in h ? "hidden"in h && (p = h.hidden) : h = H.access(e, "fxshow", {}), o && (h.hidden = !p), p ? g(e).show() : c.done((function() { g(e).hide() } )), c.done((function() { var t; for (t in H.remove(e, "fxshow"), f) g.style(e, t, f[t]) } )), f) a = Ve(p ? h[r] : 0, r, c), r in h || (h[r] = a.start, p && (a.end = a.start, a.start = "width" === r || "height" === r ? 1 : 0)) } ], We = { "*": [function(e, t) { var n = this.createTween(e, t) , r = n.cur() , i = _e.exec(t) , o = i && i[3] || (g.cssNumber[e] ? "" : "px") , a = (g.cssNumber[e] || "px" !== o && +r) && _e.exec(g.css(n.elem, e)) , s = 1 , l = 20; if (a && a[3] !== o) { o = o || a[3], i = i || [], a = +r || 1; do { a /= s = s || ".5", g.style(n.elem, e, a + o) } while (s !== (s = n.cur() / r) && 1 !== s && --l) } return i && (a = n.start = +a || +r || 0, n.unit = o, n.end = i[1] ? a + (i[1] + 1) * i[2] : +i[2]), n } ] }; function Ue() { return setTimeout((function() { He = void 0 } )), He = g.now() } function Xe(e, t) { var n, r = 0, i = { height: e }; for (t = t ? 1 : 0; 4 > r; r += 2 - t) i["margin" + (n = W[r])] = i["padding" + n] = e; return t && (i.opacity = i.width = e), i } function Ve(e, t, n) { for (var r, i = (We[t] || []).concat(We["*"]), o = 0, a = i.length; a > o; o++) if (r = i[o].call(n, t, e)) return r } function Qe(e, t, n) { var r, i, o = 0, a = Be.length, s = g.Deferred().always((function() { delete l.elem } )), l = function() { if (i) return !1; for (var t = He || Ue(), n = Math.max(0, u.startTime + u.duration - t), r = 1 - (n / u.duration || 0), o = 0, a = u.tweens.length; a > o; o++) u.tweens[o].run(r); return s.notifyWith(e, [u, r, n]), 1 > r && a ? n : (s.resolveWith(e, [u]), !1) }, u = s.promise({ elem: e, props: g.extend({}, t), opts: g.extend(!0, { specialEasing: {} }, n), originalProperties: t, originalOptions: n, startTime: He || Ue(), duration: n.duration, tweens: [], createTween: function(t, n) { var r = g.Tween(e, u.opts, t, n, u.opts.specialEasing[t] || u.opts.easing); return u.tweens.push(r), r }, stop: function(t) { var n = 0 , r = t ? u.tweens.length : 0; if (i) return this; for (i = !0; r > n; n++) u.tweens[n].run(1); return t ? s.resolveWith(e, [u, t]) : s.rejectWith(e, [u, t]), this } }), c = u.props; for (function(e, t) { var n, r, i, o, a; for (n in e) if (i = t[r = g.camelCase(n)], o = e[n], g.isArray(o) && (i = o[1], o = e[n] = o[0]), n !== r && (e[r] = o, delete e[n]), (a = g.cssHooks[r]) && "expand"in a) for (n in o = a.expand(o), delete e[r], o) n in e || (e[n] = o[n], t[n] = i); else t[r] = i }(c, u.opts.specialEasing); a > o; o++) if (r = Be[o].call(u, e, c, u.opts)) return r; return g.map(c, Ve, u), g.isFunction(u.opts.start) && u.opts.start.call(e, u), g.fx.timer(g.extend(l, { elem: e, anim: u, queue: u.opts.queue })), u.progress(u.opts.progress).done(u.opts.done, u.opts.complete).fail(u.opts.fail).always(u.opts.always) } g.Animation = g.extend(Qe, { tweener: function(e, t) { g.isFunction(e) ? (t = e, e = ["*"]) : e = e.split(" "); for (var n, r = 0, i = e.length; i > r; r++) n = e[r], We[n] = We[n] || [], We[n].unshift(t) }, prefilter: function(e, t) { t ? Be.unshift(e) : Be.push(e) } }), g.speed = function(e, t, n) { var r = e && "object" == typeof e ? g.extend({}, e) : { complete: n || !n && t || g.isFunction(e) && e, duration: e, easing: n && t || t && !g.isFunction(t) && t }; return r.duration = g.fx.off ? 0 : "number" == typeof r.duration ? r.duration : r.duration in g.fx.speeds ? g.fx.speeds[r.duration] : g.fx.speeds._default, (null == r.queue || !0 === r.queue) && (r.queue = "fx"), r.old = r.complete, r.complete = function() { g.isFunction(r.old) && r.old.call(this), r.queue && g.dequeue(this, r.queue) } , r } , g.fn.extend({ fadeTo: function(e, t, n, r) { return this.filter(U).css("opacity", 0).show().end().animate({ opacity: t }, e, n, r) }, animate: function(e, t, n, r) { var i = g.isEmptyObject(e) , o = g.speed(t, n, r) , a = function() { var t = Qe(this, g.extend({}, e), o); (i || H.get(this, "finish")) && t.stop(!0) }; return a.finish = a, i || !1 === o.queue ? this.each(a) : this.queue(o.queue, a) }, stop: function(e, t, n) { var r = function(e) { var t = e.stop; delete e.stop, t(n) }; return "string" != typeof e && (n = t, t = e, e = void 0), t && !1 !== e && this.queue(e || "fx", []), this.each((function() { var t = !0 , i = null != e && e + "queueHooks" , o = g.timers , a = H.get(this); if (i) a[i] && a[i].stop && r(a[i]); else for (i in a) a[i] && a[i].stop && ze.test(i) && r(a[i]); for (i = o.length; i--; ) o[i].elem !== this || null != e && o[i].queue !== e || (o[i].anim.stop(n), t = !1, o.splice(i, 1)); (t || !n) && g.dequeue(this, e) } )) }, finish: function(e) { return !1 !== e && (e = e || "fx"), this.each((function() { var t, n = H.get(this), r = n[e + "queue"], i = n[e + "queueHooks"], o = g.timers, a = r ? r.length : 0; for (n.finish = !0, g.queue(this, e, []), i && i.stop && i.stop.call(this, !0), t = o.length; t--; ) o[t].elem === this && o[t].queue === e && (o[t].anim.stop(!0), o.splice(t, 1)); for (t = 0; a > t; t++) r[t] && r[t].finish && r[t].finish.call(this); delete n.finish } )) } }), g.each(["toggle", "show", "hide"], (function(e, t) { var n = g.fn[t]; g.fn[t] = function(e, r, i) { return null == e || "boolean" == typeof e ? n.apply(this, arguments) : this.animate(Xe(t, !0), e, r, i) } } )), g.each({ slideDown: Xe("show"), slideUp: Xe("hide"), slideToggle: Xe("toggle"), fadeIn: { opacity: "show" }, fadeOut: { opacity: "hide" }, fadeToggle: { opacity: "toggle" } }, (function(e, t) { g.fn[e] = function(e, n, r) { return this.animate(t, e, n, r) } } )), g.timers = [], g.fx.tick = function() { var e, t = 0, n = g.timers; for (He = g.now(); t < n.length; t++) (e = n[t])() || n[t] !== e || n.splice(t--, 1); n.length || g.fx.stop(), He = void 0 } , g.fx.timer = function(e) { g.timers.push(e), e() ? g.fx.start() : g.timers.pop() } , g.fx.interval = 13, g.fx.start = function() { Re || (Re = setInterval(g.fx.tick, g.fx.interval)) } , g.fx.stop = function() { clearInterval(Re), Re = null } , g.fx.speeds = { slow: 600, fast: 200, _default: 400 }, g.fn.delay = function(e, t) { return e = g.fx && g.fx.speeds[e] || e, t = t || "fx", this.queue(t, (function(t, n) { var r = setTimeout(t, e); n.stop = function() { clearTimeout(r) } } )) } , function() { var e = h.createElement("input") , t = h.createElement("select") , n = t.appendChild(h.createElement("option")); e.type = "checkbox", p.checkOn = "" !== e.value, p.optSelected = n.selected, t.disabled = !0, p.optDisabled = !n.disabled, (e = h.createElement("input")).value = "t", e.type = "radio", p.radioValue = "t" === e.value }(); var Ye, Ge = g.expr.attrHandle; g.fn.extend({ attr: function(e, t) { return M(this, g.attr, e, t, arguments.length > 1) }, removeAttr: function(e) { return this.each((function() { g.removeAttr(this, e) } )) } }), g.extend({ attr: function(e, t, n) { var r, i, o = e.nodeType; if (e && 3 !== o && 8 !== o && 2 !== o) return typeof e.getAttribute === V ? g.prop(e, t, n) : (1 === o && g.isXMLDoc(e) || (t = t.toLowerCase(), r = g.attrHooks[t] || (g.expr.match.bool.test(t) ? Ye : void 0)), void 0 === n ? r && "get"in r && null !== (i = r.get(e, t)) ? i : null == (i = g.find.attr(e, t)) ? void 0 : i : null !== n ? r && "set"in r && void 0 !== (i = r.set(e, n, t)) ? i : (e.setAttribute(t, n + ""), n) : void g.removeAttr(e, t)) }, removeAttr: function(e, t) { var n, r, i = 0, o = t && t.match(q); if (o && 1 === e.nodeType) for (; n = o[i++]; ) r = g.propFix[n] || n, g.expr.match.bool.test(n) && (e[r] = !1), e.removeAttribute(n) }, attrHooks: { type: { set: function(e, t) { if (!p.radioValue && "radio" === t && g.nodeName(e, "input")) { var n = e.value; return e.setAttribute("type", t), n && (e.value = n), t } } } } }), Ye = { set: function(e, t, n) { return !1 === t ? g.removeAttr(e, n) : e.setAttribute(n, n), n } }, g.each(g.expr.match.bool.source.match(/\w+/g), (function(e, t) { var n = Ge[t] || g.find.attr; Ge[t] = function(e, t, r) { var i, o; return r || (o = Ge[t], Ge[t] = i, i = null != n(e, t, r) ? t.toLowerCase() : null, Ge[t] = o), i } } )); var Je = /^(?:input|select|textarea|button)$/i; g.fn.extend({ prop: function(e, t) { return M(this, g.prop, e, t, arguments.length > 1) }, removeProp: function(e) { return this.each((function() { delete this[g.propFix[e] || e] } )) } }), g.extend({ propFix: { for: "htmlFor", class: "className" }, prop: function(e, t, n) { var r, i, o = e.nodeType; if (e && 3 !== o && 8 !== o && 2 !== o) return (1 !== o || !g.isXMLDoc(e)) && (t = g.propFix[t] || t, i = g.propHooks[t]), void 0 !== n ? i && "set"in i && void 0 !== (r = i.set(e, n, t)) ? r : e[t] = n : i && "get"in i && null !== (r = i.get(e, t)) ? r : e[t] }, propHooks: { tabIndex: { get: function(e) { return e.hasAttribute("tabindex") || Je.test(e.nodeName) || e.href ? e.tabIndex : -1 } } } }), p.optSelected || (g.propHooks.selected = { get: function(e) { var t = e.parentNode; return t && t.parentNode && t.parentNode.selectedIndex, null } }), g.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], (function() { g.propFix[this.toLowerCase()] = this } )); var Ke = /[\t\r\n\f]/g; g.fn.extend({ addClass: function(e) { var t, n, r, i, o, a, s = "string" == typeof e && e, l = 0, u = this.length; if (g.isFunction(e)) return this.each((function(t) { g(this).addClass(e.call(this, t, this.className)) } )); if (s) for (t = (e || "").match(q) || []; u > l; l++) if (r = 1 === (n = this[l]).nodeType && (n.className ? (" " + n.className + " ").replace(Ke, " ") : " ")) { for (o = 0; i = t[o++]; ) r.indexOf(" " + i + " ") < 0 && (r += i + " "); a = g.trim(r), n.className !== a && (n.className = a) } return this }, removeClass: function(e) { var t, n, r, i, o, a, s = 0 === arguments.length || "string" == typeof e && e, l = 0, u = this.length; if (g.isFunction(e)) return this.each((function(t) { g(this).removeClass(e.call(this, t, this.className)) } )); if (s) for (t = (e || "").match(q) || []; u > l; l++) if (r = 1 === (n = this[l]).nodeType && (n.className ? (" " + n.className + " ").replace(Ke, " ") : "")) { for (o = 0; i = t[o++]; ) for (; r.indexOf(" " + i + " ") >= 0; ) r = r.replace(" " + i + " ", " "); a = e ? g.trim(r) : "", n.className !== a && (n.className = a) } return this }, toggleClass: function(e, t) { var n = typeof e; return "boolean" == typeof t && "string" === n ? t ? this.addClass(e) : this.removeClass(e) : this.each(g.isFunction(e) ? function(n) { g(this).toggleClass(e.call(this, n, this.className, t), t) } : function() { if ("string" === n) for (var t, r = 0, i = g(this), o = e.match(q) || []; t = o[r++]; ) i.hasClass(t) ? i.removeClass(t) : i.addClass(t); else (n === V || "boolean" === n) && (this.className && H.set(this, "__className__", this.className), this.className = this.className || !1 === e ? "" : H.get(this, "__className__") || "") } ) }, hasClass: function(e) { for (var t = " " + e + " ", n = 0, r = this.length; r > n; n++) if (1 === this[n].nodeType && (" " + this[n].className + " ").replace(Ke, " ").indexOf(t) >= 0) return !0; return !1 } }); var Ze = /\r/g; g.fn.extend({ val: function(e) { var t, n, r, i = this[0]; return arguments.length ? (r = g.isFunction(e), this.each((function(n) { var i; 1 === this.nodeType && (null == (i = r ? e.call(this, n, g(this).val()) : e) ? i = "" : "number" == typeof i ? i += "" : g.isArray(i) && (i = g.map(i, (function(e) { return null == e ? "" : e + "" } ))), (t = g.valHooks[this.type] || g.valHooks[this.nodeName.toLowerCase()]) && "set"in t && void 0 !== t.set(this, i, "value") || (this.value = i)) } ))) : i ? (t = g.valHooks[i.type] || g.valHooks[i.nodeName.toLowerCase()]) && "get"in t && void 0 !== (n = t.get(i, "value")) ? n : "string" == typeof (n = i.value) ? n.replace(Ze, "") : null == n ? "" : n : void 0 } }), g.extend({ valHooks: { option: { get: function(e) { var t = g.find.attr(e, "value"); return null != t ? t : g.trim(g.text(e)) } }, select: { get: function(e) { for (var t, n, r = e.options, i = e.selectedIndex, o = "select-one" === e.type || 0 > i, a = o ? null : [], s = o ? i + 1 : r.length, l = 0 > i ? s : o ? i : 0; s > l; l++) if (!(!(n = r[l]).selected && l !== i || (p.optDisabled ? n.disabled : null !== n.getAttribute("disabled")) || n.parentNode.disabled && g.nodeName(n.parentNode, "optgroup"))) { if (t = g(n).val(), o) return t; a.push(t) } return a }, set: function(e, t) { for (var n, r, i = e.options, o = g.makeArray(t), a = i.length; a--; ) ((r = i[a]).selected = g.inArray(r.value, o) >= 0) && (n = !0); return n || (e.selectedIndex = -1), o } } } }), g.each(["radio", "checkbox"], (function() { g.valHooks[this] = { set: function(e, t) { return g.isArray(t) ? e.checked = g.inArray(g(e).val(), t) >= 0 : void 0 } }, p.checkOn || (g.valHooks[this].get = function(e) { return null === e.getAttribute("value") ? "on" : e.value } ) } )), g.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "), (function(e, t) { g.fn[t] = function(e, n) { return arguments.length > 0 ? this.on(t, null, e, n) : this.trigger(t) } } )), g.fn.extend({ hover: function(e, t) { return this.mouseenter(e).mouseleave(t || e) }, bind: function(e, t, n) { return this.on(e, null, t, n) }, unbind: function(e, t) { return this.off(e, null, t) }, delegate: function(e, t, n, r) { return this.on(t, e, n, r) }, undelegate: function(e, t, n) { return 1 === arguments.length ? this.off(e, "**") : this.off(t, e || "**", n) } }); var et = g.now() , tt = /\?/; g.parseJSON = function(e) { return JSON.parse(e + "") } , g.parseXML = function(e) { var t; if (!e || "string" != typeof e) return null; try { t = (new DOMParser).parseFromString(e, "text/xml") } catch (e) { t = void 0 } return (!t || t.getElementsByTagName("parsererror").length) && g.error("Invalid XML: " + e), t } ; var nt = /#.*$/ , rt = /([?&])_=[^&]*/ , it = /^(.*?):[ \t]*([^\r\n]*)$/gm , ot = /^(?:GET|HEAD)$/ , at = /^\/\// , st = /^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/ , lt = {} , ut = {} , ct = "*/".concat("*") , ft = r.location.href , dt = st.exec(ft.toLowerCase()) || []; function pt(e) { return function(t, n) { "string" != typeof t && (n = t, t = "*"); var r, i = 0, o = t.toLowerCase().match(q) || []; if (g.isFunction(n)) for (; r = o[i++]; ) "+" === r[0] ? (r = r.slice(1) || "*", (e[r] = e[r] || []).unshift(n)) : (e[r] = e[r] || []).push(n) } } function ht(e, t, n, r) { var i = {} , o = e === ut; function a(s) { var l; return i[s] = !0, g.each(e[s] || [], (function(e, s) { var u = s(t, n, r); return "string" != typeof u || o || i[u] ? o ? !(l = u) : void 0 : (t.dataTypes.unshift(u), a(u), !1) } )), l } return a(t.dataTypes[0]) || !i["*"] && a("*") } function mt(e, t) { var n, r, i = g.ajaxSettings.flatOptions || {}; for (n in t) void 0 !== t[n] && ((i[n] ? e : r || (r = {}))[n] = t[n]); return r && g.extend(!0, e, r), e } g.extend({ active: 0, lastModified: {}, etag: {}, ajaxSettings: { url: ft, type: "GET", isLocal: /^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(dt[1]), global: !0, processData: !0, async: !0, contentType: "application/x-www-form-urlencoded; charset=UTF-8", accepts: { "*": ct, text: "text/plain", html: "text/html", xml: "application/xml, text/xml", json: "application/json, text/javascript" }, contents: { xml: /xml/, html: /html/, json: /json/ }, responseFields: { xml: "responseXML", text: "responseText", json: "responseJSON" }, converters: { "* text": String, "text html": !0, "text json": g.parseJSON, "text xml": g.parseXML }, flatOptions: { url: !0, context: !0 } }, ajaxSetup: function(e, t) { return t ? mt(mt(e, g.ajaxSettings), t) : mt(g.ajaxSettings, e) }, ajaxPrefilter: pt(lt), ajaxTransport: pt(ut), ajax: function(e, t) { "object" == typeof e && (t = e, e = void 0), t = t || {}; var n, r, i, o, a, s, l, u, c = g.ajaxSetup({}, t), f = c.context || c, d = c.context && (f.nodeType || f.jquery) ? g(f) : g.event, p = g.Deferred(), h = g.Callbacks("once memory"), m = c.statusCode || {}, v = {}, y = {}, b = 0, x = "canceled", w = { readyState: 0, getResponseHeader: function(e) { var t; if (2 === b) { if (!o) for (o = {}; t = it.exec(i); ) o[t[1].toLowerCase()] = t[2]; t = o[e.toLowerCase()] } return null == t ? null : t }, getAllResponseHeaders: function() { return 2 === b ? i : null }, setRequestHeader: function(e, t) { var n = e.toLowerCase(); return b || (e = y[n] = y[n] || e, v[e] = t), this }, overrideMimeType: function(e) { return b || (c.mimeType = e), this }, statusCode: function(e) { var t; if (e) if (2 > b) for (t in e) m[t] = [m[t], e[t]]; else w.always(e[w.status]); return this }, abort: function(e) { var t = e || x; return n && n.abort(t), T(0, t), this } }; if (p.promise(w).complete = h.add, w.success = w.done, w.error = w.fail, c.url = ((e || c.url || ft) + "").replace(nt, "").replace(at, dt[1] + "//"), c.type = t.method || t.type || c.method || c.type, c.dataTypes = g.trim(c.dataType || "*").toLowerCase().match(q) || [""], null == c.crossDomain && (s = st.exec(c.url.toLowerCase()), c.crossDomain = !(!s || s[1] === dt[1] && s[2] === dt[2] && (s[3] || ("http:" === s[1] ? "80" : "443")) === (dt[3] || ("http:" === dt[1] ? "80" : "443")))), c.data && c.processData && "string" != typeof c.data && (c.data = g.param(c.data, c.traditional)), ht(lt, c, t, w), 2 === b) return w; for (u in (l = g.event && c.global) && 0 == g.active++ && g.event.trigger("ajaxStart"), c.type = c.type.toUpperCase(), c.hasContent = !ot.test(c.type), r = c.url, c.hasContent || (c.data && (r = c.url += (tt.test(r) ? "&" : "?") + c.data, delete c.data), !1 === c.cache && (c.url = rt.test(r) ? r.replace(rt, "$1_=" + et++) : r + (tt.test(r) ? "&" : "?") + "_=" + et++)), c.ifModified && (g.lastModified[r] && w.setRequestHeader("If-Modified-Since", g.lastModified[r]), g.etag[r] && w.setRequestHeader("If-None-Match", g.etag[r])), (c.data && c.hasContent && !1 !== c.contentType || t.contentType) && w.setRequestHeader("Content-Type", c.contentType), w.setRequestHeader("Accept", c.dataTypes[0] && c.accepts[c.dataTypes[0]] ? c.accepts[c.dataTypes[0]] + ("*" !== c.dataTypes[0] ? ", " + ct + "; q=0.01" : "") : c.accepts["*"]), c.headers) w.setRequestHeader(u, c.headers[u]); if (c.beforeSend && (!1 === c.beforeSend.call(f, w, c) || 2 === b)) return w.abort(); for (u in x = "abort", { success: 1, error: 1, complete: 1 }) w[u](c[u]); if (n = ht(ut, c, t, w)) { w.readyState = 1, l && d.trigger("ajaxSend", [w, c]), c.async && c.timeout > 0 && (a = setTimeout((function() { w.abort("timeout") } ), c.timeout)); try { b = 1, n.send(v, T) } catch (e) { if (!(2 > b)) throw e; T(-1, e) } } else T(-1, "No Transport"); function T(e, t, o, s) { var u, v, y, x, T, k = t; 2 !== b && (b = 2, a && clearTimeout(a), n = void 0, i = s || "", w.readyState = e > 0 ? 4 : 0, u = e >= 200 && 300 > e || 304 === e, o && (x = function(e, t, n) { for (var r, i, o, a, s = e.contents, l = e.dataTypes; "*" === l[0]; ) l.shift(), void 0 === r && (r = e.mimeType || t.getResponseHeader("Content-Type")); if (r) for (i in s) if (s[i] && s[i].test(r)) { l.unshift(i); break } if (l[0]in n) o = l[0]; else { for (i in n) { if (!l[0] || e.converters[i + " " + l[0]]) { o = i; break } a || (a = i) } o = o || a } return o ? (o !== l[0] && l.unshift(o), n[o]) : void 0 }(c, w, o)), x = function(e, t, n, r) { var i, o, a, s, l, u = {}, c = e.dataTypes.slice(); if (c[1]) for (a in e.converters) u[a.toLowerCase()] = e.converters[a]; for (o = c.shift(); o; ) if (e.responseFields[o] && (n[e.responseFields[o]] = t), !l && r && e.dataFilter && (t = e.dataFilter(t, e.dataType)), l = o, o = c.shift()) if ("*" === o) o = l; else if ("*" !== l && l !== o) { if (!(a = u[l + " " + o] || u["* " + o])) for (i in u) if ((s = i.split(" "))[1] === o && (a = u[l + " " + s[0]] || u["* " + s[0]])) { !0 === a ? a = u[i] : !0 !== u[i] && (o = s[0], c.unshift(s[1])); break } if (!0 !== a) if (a && e.throws) t = a(t); else try { t = a(t) } catch (e) { return { state: "parsererror", error: a ? e : "No conversion from " + l + " to " + o } } } return { state: "success", data: t } }(c, x, w, u), u ? (c.ifModified && ((T = w.getResponseHeader("Last-Modified")) && (g.lastModified[r] = T), (T = w.getResponseHeader("etag")) && (g.etag[r] = T)), 204 === e || "HEAD" === c.type ? k = "nocontent" : 304 === e ? k = "notmodified" : (k = x.state, v = x.data, u = !(y = x.error))) : (y = k, (e || !k) && (k = "error", 0 > e && (e = 0))), w.status = e, w.statusText = (t || k) + "", u ? p.resolveWith(f, [v, k, w]) : p.rejectWith(f, [w, k, y]), w.statusCode(m), m = void 0, l && d.trigger(u ? "ajaxSuccess" : "ajaxError", [w, c, u ? v : y]), h.fireWith(f, [w, k]), l && (d.trigger("ajaxComplete", [w, c]), --g.active || g.event.trigger("ajaxStop"))) } return w }, getJSON: function(e, t, n) { return g.get(e, t, n, "json") }, getScript: function(e, t) { return g.get(e, void 0, t, "script") } }), g.each(["get", "post"], (function(e, t) { g[t] = function(e, n, r, i) { return g.isFunction(n) && (i = i || r, r = n, n = void 0), g.ajax({ url: e, type: t, dataType: i, data: n, success: r }) } } )), g._evalUrl = function(e) { return g.ajax({ url: e, type: "GET", dataType: "script", async: !1, global: !1, throws: !0 }) } , g.fn.extend({ wrapAll: function(e) { var t; return g.isFunction(e) ? this.each((function(t) { g(this).wrapAll(e.call(this, t)) } )) : (this[0] && (t = g(e, this[0].ownerDocument).eq(0).clone(!0), this[0].parentNode && t.insertBefore(this[0]), t.map((function() { for (var e = this; e.firstElementChild; ) e = e.firstElementChild; return e } )).append(this)), this) }, wrapInner: function(e) { return this.each(g.isFunction(e) ? function(t) { g(this).wrapInner(e.call(this, t)) } : function() { var t = g(this) , n = t.contents(); n.length ? n.wrapAll(e) : t.append(e) } ) }, wrap: function(e) { var t = g.isFunction(e); return this.each((function(n) { g(this).wrapAll(t ? e.call(this, n) : e) } )) }, unwrap: function() { return this.parent().each((function() { g.nodeName(this, "body") || g(this).replaceWith(this.childNodes) } )).end() } }), g.expr.filters.hidden = function(e) { return e.offsetWidth <= 0 && e.offsetHeight <= 0 } , g.expr.filters.visible = function(e) { return !g.expr.filters.hidden(e) } ; var gt = /%20/g , vt = /\[\]$/ , yt = /\r?\n/g , bt = /^(?:submit|button|image|reset|file)$/i , xt = /^(?:input|select|textarea|keygen)/i; function wt(e, t, n, r) { var i; if (g.isArray(t)) g.each(t, (function(t, i) { n || vt.test(e) ? r(e, i) : wt(e + "[" + ("object" == typeof i ? t : "") + "]", i, n, r) } )); else if (n || "object" !== g.type(t)) r(e, t); else for (i in t) wt(e + "[" + i + "]", t[i], n, r) } g.param = function(e, t) { var n, r = [], i = function(e, t) { t = g.isFunction(t) ? t() : null == t ? "" : t, r[r.length] = encodeURIComponent(e) + "=" + encodeURIComponent(t) }; if (void 0 === t && (t = g.ajaxSettings && g.ajaxSettings.traditional), g.isArray(e) || e.jquery && !g.isPlainObject(e)) g.each(e, (function() { i(this.name, this.value) } )); else for (n in e) wt(n, e[n], t, i); return r.join("&").replace(gt, "+") } , g.fn.extend({ serialize: function() { return g.param(this.serializeArray()) }, serializeArray: function() { return this.map((function() { var e = g.prop(this, "elements"); return e ? g.makeArray(e) : this } )).filter((function() { var e = this.type; return this.name && !g(this).is(":disabled") && xt.test(this.nodeName) && !bt.test(e) && (this.checked || !X.test(e)) } )).map((function(e, t) { var n = g(this).val(); return null == n ? null : g.isArray(n) ? g.map(n, (function(e) { return { name: t.name, value: e.replace(yt, "\r\n") } } )) : { name: t.name, value: n.replace(yt, "\r\n") } } )).get() } }), g.ajaxSettings.xhr = function() { try { return new XMLHttpRequest } catch (e) {} } ; var Tt = 0 , kt = {} , Ct = { 0: 200, 1223: 204 } , Et = g.ajaxSettings.xhr(); r.attachEvent && r.attachEvent("onunload", (function() { for (var e in kt) kt[e]() } )), p.cors = !!Et && "withCredentials"in Et, p.ajax = Et = !!Et, g.ajaxTransport((function(e) { var t; return p.cors || Et && !e.crossDomain ? { send: function(n, r) { var i, o = e.xhr(), a = ++Tt; if (o.open(e.type, e.url, e.async, e.username, e.password), e.xhrFields) for (i in e.xhrFields) o[i] = e.xhrFields[i]; for (i in e.mimeType && o.overrideMimeType && o.overrideMimeType(e.mimeType), e.crossDomain || n["X-Requested-With"] || (n["X-Requested-With"] = "XMLHttpRequest"), n) o.setRequestHeader(i, n[i]); t = function(e) { return function() { t && (delete kt[a], t = o.onload = o.onerror = null, "abort" === e ? o.abort() : "error" === e ? r(o.status, o.statusText) : r(Ct[o.status] || o.status, o.statusText, "string" == typeof o.responseText ? { text: o.responseText } : void 0, o.getAllResponseHeaders())) } } , o.onload = t(), o.onerror = t("error"), t = kt[a] = t("abort"); try { o.send(e.hasContent && e.data || null) } catch (e) { if (t) throw e } }, abort: function() { t && t() } } : void 0 } )), g.ajaxSetup({ accepts: { script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript" }, contents: { script: /(?:java|ecma)script/ }, converters: { "text script": function(e) { return g.globalEval(e), e } } }), g.ajaxPrefilter("script", (function(e) { void 0 === e.cache && (e.cache = !1), e.crossDomain && (e.type = "GET") } )), g.ajaxTransport("script", (function(e) { var t, n; if (e.crossDomain) return { send: function(r, i) { t = g("<script>").prop({ async: !0, charset: e.scriptCharset, src: e.url }).on("load error", n = function(e) { t.remove(), n = null, e && i("error" === e.type ? 404 : 200, e.type) } ), h.head.appendChild(t[0]) }, abort: function() { n && n() } } } )); var St = [] , At = /(=)\?(?=&|$)|\?\?/; g.ajaxSetup({ jsonp: "callback", jsonpCallback: function() { var e = St.pop() || g.expando + "_" + et++; return this[e] = !0, e } }), g.ajaxPrefilter("json jsonp", (function(e, t, n) { var i, o, a, s = !1 !== e.jsonp && (At.test(e.url) ? "url" : "string" == typeof e.data && !(e.contentType || "").indexOf("application/x-www-form-urlencoded") && At.test(e.data) && "data"); return s || "jsonp" === e.dataTypes[0] ? (i = e.jsonpCallback = g.isFunction(e.jsonpCallback) ? e.jsonpCallback() : e.jsonpCallback, s ? e[s] = e[s].replace(At, "$1" + i) : !1 !== e.jsonp && (e.url += (tt.test(e.url) ? "&" : "?") + e.jsonp + "=" + i), e.converters["script json"] = function() { return a || g.error(i + " was not called"), a[0] } , e.dataTypes[0] = "json", o = r[i], r[i] = function() { a = arguments } , n.always((function() { r[i] = o, e[i] && (e.jsonpCallback = t.jsonpCallback, St.push(i)), a && g.isFunction(o) && o(a[0]), a = o = void 0 } )), "script") : void 0 } )), g.parseHTML = function(e, t, n) { if (!e || "string" != typeof e) return null; "boolean" == typeof t && (n = t, t = !1), t = t || h; var r = C.exec(e) , i = !n && []; return r ? [t.createElement(r[1])] : (r = g.buildFragment([e], t, i), i && i.length && g(i).remove(), g.merge([], r.childNodes)) } ; var Dt = g.fn.load; g.fn.load = function(e, t, n) { if ("string" != typeof e && Dt) return Dt.apply(this, arguments); var r, i, o, a = this, s = e.indexOf(" "); return s >= 0 && (r = g.trim(e.slice(s)), e = e.slice(0, s)), g.isFunction(t) ? (n = t, t = void 0) : t && "object" == typeof t && (i = "POST"), a.length > 0 && g.ajax({ url: e, type: i, dataType: "html", data: t }).done((function(e) { o = arguments, a.html(r ? g("<div>").append(g.parseHTML(e)).find(r) : e) } )).complete(n && function(e, t) { a.each(n, o || [e.responseText, t, e]) } ), this } , g.each(["ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], (function(e, t) { g.fn[t] = function(e) { return this.on(t, e) } } )), g.expr.filters.animated = function(e) { return g.grep(g.timers, (function(t) { return e === t.elem } )).length } ; var Nt = r.document.documentElement; function jt(e) { return g.isWindow(e) ? e : 9 === e.nodeType && e.defaultView } g.offset = { setOffset: function(e, t, n) { var r, i, o, a, s, l, u = g.css(e, "position"), c = g(e), f = {}; "static" === u && (e.style.position = "relative"), s = c.offset(), o = g.css(e, "top"), l = g.css(e, "left"), ("absolute" === u || "fixed" === u) && (o + l).indexOf("auto") > -1 ? (a = (r = c.position()).top, i = r.left) : (a = parseFloat(o) || 0, i = parseFloat(l) || 0), g.isFunction(t) && (t = t.call(e, n, s)), null != t.top && (f.top = t.top - s.top + a), null != t.left && (f.left = t.left - s.left + i), "using"in t ? t.using.call(e, f) : c.css(f) } }, g.fn.extend({ offset: function(e) { if (arguments.length) return void 0 === e ? this : this.each((function(t) { g.offset.setOffset(this, e, t) } )); var t, n, r = this[0], i = { top: 0, left: 0 }, o = r && r.ownerDocument; return o ? (t = o.documentElement, g.contains(t, r) ? (typeof r.getBoundingClientRect !== V && (i = r.getBoundingClientRect()), n = jt(o), { top: i.top + n.pageYOffset - t.clientTop, left: i.left + n.pageXOffset - t.clientLeft }) : i) : void 0 }, position: function() { if (this[0]) { var e, t, n = this[0], r = { top: 0, left: 0 }; return "fixed" === g.css(n, "position") ? t = n.getBoundingClientRect() : (e = this.offsetParent(), t = this.offset(), g.nodeName(e[0], "html") || (r = e.offset()), r.top += g.css(e[0], "borderTopWidth", !0), r.left += g.css(e[0], "borderLeftWidth", !0)), { top: t.top - r.top - g.css(n, "marginTop", !0), left: t.left - r.left - g.css(n, "marginLeft", !0) } } }, offsetParent: function() { return this.map((function() { for (var e = this.offsetParent || Nt; e && !g.nodeName(e, "html") && "static" === g.css(e, "position"); ) e = e.offsetParent; return e || Nt } )) } }), g.each({ scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, (function(e, t) { var n = "pageYOffset" === t; g.fn[e] = function(i) { return M(this, (function(e, i, o) { var a = jt(e); return void 0 === o ? a ? a[t] : e[i] : void (a ? a.scrollTo(n ? r.pageXOffset : o, n ? o : r.pageYOffset) : e[i] = o) } ), e, i, arguments.length, null) } } )), g.each(["top", "left"], (function(e, t) { g.cssHooks[t] = Ee(p.pixelPosition, (function(e, n) { return n ? (n = Ce(e, t), Te.test(n) ? g(e).position()[t] + "px" : n) : void 0 } )) } )), g.each({ Height: "height", Width: "width" }, (function(e, t) { g.each({ padding: "inner" + e, content: t, "": "outer" + e }, (function(n, r) { g.fn[r] = function(r, i) { var o = arguments.length && (n || "boolean" != typeof r) , a = n || (!0 === r || !0 === i ? "margin" : "border"); return M(this, (function(t, n, r) { var i; return g.isWindow(t) ? t.document.documentElement["client" + e] : 9 === t.nodeType ? (i = t.documentElement, Math.max(t.body["scroll" + e], i["scroll" + e], t.body["offset" + e], i["offset" + e], i["client" + e])) : void 0 === r ? g.css(t, n, a) : g.style(t, n, r, a) } ), t, o ? r : void 0, o, null) } } )) } )), g.fn.size = function() { return this.length } , g.fn.andSelf = g.fn.addBack, void 0 === (n = function() { return g } .apply(t, [])) || (e.exports = n); var Lt = r.jQuery , Ot = r.$; return g.noConflict = function(e) { return r.$ === g && (r.$ = Ot), e && r.jQuery === g && (r.jQuery = Lt), g } , typeof i === V && (r.jQuery = r.$ = g), g } , "object" == typeof e.exports ? e.exports = r.document ? i(r, !0) : function(e) { if (!e.document) throw new Error("jQuery requires a window with a document"); return i(e) } : i(r) }, 127: ()=>{ var e, t; _0x4c28 = ["18|38|15|2", "ucisR", "wWwRM", "LzcOo", "yWGcu", "PlAEw", "ihcci", "hBKtU", "rvloG", "xcQTI", "uhJgH", "vRqUp", "EQEzR", "abc", "QgSUn", "0|45|44|19", "WMqBp", "koePJ", "jGSEC", "IKbhW", "wEOgn", "|49|71|11|", "xgzfr", "ABCDEF", "DdHPB", "aFxRD", "sFtiw", "concat", "YhaCC", "YVBwM", "abYok", "2|28|6|36|", "NLOsy", "bRLIN", "xGAWc", "length", "zYRlD", "14|67|61|3", "bolvy", "pagBT", "mdsJQ", "4|69|41|26", "kaXPV", "IWxBE", "pviAr", "5|0|2", "lvwPz", "YcDFe", "yGmJD", "FcYqi", "AAZoR", "|46|5|3|50", "PnITs", "ABCDEFGHIJ", "charCodeAt", "KLMNOPQRST", "prrXX", "FDiNG", "split", "oBesn", "9|24|10|56", "VaXsK", "fromCharCo", "FDfcp", "rrdPR", "HHkBN", "89+/", "mfuQZ", "PbrnX", "FcXlo", "rNapo", "fEXNi", "qtIDJ", "60|53|21|5", "Rtsed", "SUrST", "nsaps", "vyNVU", "2|29|23|64", "0|43|57|4|", "NNXUu", "nCrbn", "wQPIq", "XBcOb", "39|40|47|6", "ljkOt", "yMPhx", "TXzzv", "0123456789", "fmdcS", "iXQwu", "grCxb", "3|6|1|4|7|", "wKeAM", "Iekey", "opqrstuvwx", "|7|17", "BQgZQ", "BtzmV", "jZUAt", "HYhpy", "Yvoqt", "VyzBI", "NNVLf", "dbmfK", "0|58|16|32", "UAFHv", "WNIsZ", "2|1|4|3|5|", "JFqRJ", "zObVA", "d24fb0d696", "XfWkD", "MFmWH", "lZISZ", "WzbFA", "kaQlD", "3f7d28e17f", "eSwEi", "YpeFX", "kZhzK", "KxKIe", "LAIPf", "LjyKQ", "YLwOK", "iqfMz", "51|8|0|65|", "JRihE", "nqEyg", "|37|22|27|", "ZXsFi", "goEwl", "|31|63|48|", "wvVCN", "wnDlW", "Myvqp", "UlhBp", "fwCDC", "charAt", "Lmhlz", "WQCAS", "UXeVn", "KIXRL", "HiEZt", "WNzfT", "lNWda", "tsNzQ"], e = _0x4c28, t = 368, function(t) { for (; --t; ) e.push(e.shift()) }(++t); var n = function(e, t) { return _0x4c28[e -= 0] }; window.md5 = function(e) { var t = n , r = { fEXNi: function(e, t) { return e(t) }, LzcOo: function(e, t, n) { return e(t, n) } }; r[t(3)] = function(e, t) { return e(t) } , r.wEOgn = function(e, t, n) { return e(t, n) } , r[t(120)] = function(e, t, n) { return e(t, n) } , r[t(69)] = function(e, t) { return e == t } , r[t(109)] = function(e, t) { return e(t) } , r[t(112)] = t(86), r.oBesn = "900150983c" + t(37) + t(43) + "72", r[t(70)] = t(18) + t(118), r[t(16)] = function(e, t) { return e < t } , r[t(2)] = t(110) + t(5) + t(133) + "|55|13|12|" + t(146) + t(114) + t(94) + "35|68|33|4" + t(104) + t(52) + t(73) + t(88) + t(55) + "25|34|1|2|" + t(10) + t(4) + t(124) + t(58) + "52|59|66|7" + t(31) + t(22), r[t(53)] = function(e, t, n, r, i, o, a, s) { return e(t, n, r, i, o, a, s) } , r[t(35)] = function(e, t) { return e + t } , r[t(141)] = function(e, t, n, r, i, o, a, s) { return e(t, n, r, i, o, a, s) } , r[t(91)] = function(e, t, n, r, i, o, a, s) { return e(t, n, r, i, o, a, s) } , r[t(65)] = function(e, t) { return e + t } , r[t(38)] = function(e, t, n, r, i, o, a, s) { return e(t, n, r, i, o, a, s) } , r[t(19)] = function(e, t) { return e + t } , r[t(117)] = function(e, t, n) { return e(t, n) } , r[t(92)] = function(e, t) { return e + t } , r[t(82)] = function(e, t) { return e + t } , r[t(111)] = function(e, t, n) { return e(t, n) } , r[t(78)] = function(e, t) { return e + t } , r.lZISZ = function(e, t, n, r, i, o, a, s) { return e(t, n, r, i, o, a, s) } , r.Iekey = function(e, t, n, r, i, o, a, s) { return e(t, n, r, i, o, a, s) } , r.AAZoR = function(e, t) { return e + t } , r[t(67)] = function(e, t, n, r, i, o, a, s) { return e(t, n, r, i, o, a, s) } , r.UlhBp = function(e, t) { return e + t } , r.yMPhx = function(e, t, n, r, i, o, a, s) { return e(t, n, r, i, o, a, s) } , r[t(138)] = function(e, t) { return e + t } , r[t(121)] = function(e, t) { return e + t } , r[t(98)] = function(e, t, n) { return e(t, n) } , r.kHuTw = function(e, t, n, r, i, o, a, s) { return e(t, n, r, i, o, a, s) } , r[t(50)] = function(e, t, n, r, i, o, a, s) { return e(t, n, r, i, o, a, s) } , r[t(142)] = function(e, t, n, r, i, o, a, s) { return e(t, n, r, i, o, a, s) } , r[t(87)] = function(e, t) { return e + t } , r[t(90)] = function(e, t) { return e + t } , r[t(59)] = function(e, t, n, r, i, o, a, s) { return e(t, n, r, i, o, a, s) } , r[t(28)] = function(e, t) { return e + t } , r[t(119)] = function(e, t) { return e + t } , r.YpeFX = function(e, t) { return e + t } , r[t(7)] = function(e, t, n, r, i, o, a, s) { return e(t, n, r, i, o, a, s) } , r.prrXX = function(e, t) { return e + t } , r.kaQlD = function(e, t) { return e + t } , r.qtIDJ = function(e, t, n, r, i, o, a, s) { return e(t, n, r, i, o, a, s) } , r.xGAWc = function(e, t) { return e + t } , r[t(134)] = function(e, t, n, r, i, o, a, s) { return e(t, n, r, i, o, a, s) } , r[t(89)] = function(e, t) { return e + t } , r[t(15)] = function(e, t, n, r, i, o, a, s) { return e(t, n, r, i, o, a, s) } , r[t(9)] = function(e, t) { return e + t } , r[t(56)] = function(e, t) { return e + t } , r[t(6)] = function(e, t, n, r, i, o, a, s) { return e(t, n, r, i, o, a, s) } , r[t(32)] = function(e, t) { return e + t } , r[t(99)] = function(e, t, n, r, i, o, a, s) { return e(t, n, r, i, o, a, s) } , r[t(39)] = function(e, t) { return e + t } , r[t(113)] = function(e, t, n, r, i, o, a, s) { return e(t, n, r, i, o, a, s) } , r[t(106)] = function(e, t, n, r, i, o, a, s) { return e(t, n, r, i, o, a, s) } , r[t(66)] = function(e, t, n, r, i, o, a, s) { return e(t, n, r, i, o, a, s) } , r.TXzzv = function(e, t) { return e + t } , r.NNVLf = function(e, t, n, r, i, o, a, s) { return e(t, n, r, i, o, a, s) } , r[t(79)] = function(e, t) { return e + t } , r[t(1)] = function(e, t, n, r, i, o, a, s) { return e(t, n, r, i, o, a, s) } , r[t(81)] = function(e, t) { return e + t } , r.MXnIN = function(e, t) { return e >> t } , r[t(23)] = function(e, t) { return e << t } , r.nqEyg = function(e, t) { return e % t } , r.kaXPV = function(e, t) { return e >>> t } , r[t(24)] = function(e, t, n) { return e(t, n) } , r[t(44)] = function(e, t, n) { return e(t, n) } , r[t(30)] = function(e, t, n) { return e(t, n) } , r[t(143)] = function(e, t) { return e | t } , r[t(101)] = function(e, t) { return e & t } , r[t(122)] = function(e, t, n, r, i, o, a) { return e(t, n, r, i, o, a) } , r.ZpUiH = function(e, t) { return e & t } , r[t(72)] = function(e, t) { return e ^ t } , r[t(130)] = function(e, t) { return e ^ t } , r[t(41)] = function(e, t) { return e | t } , r[t(116)] = function(e, t) { return e > t } , r[t(80)] = function(e, t) { return e(t) } , r[t(33)] = function(e, t, n) { return e(t, n) } , r[t(83)] = function(e, t) { return e(t) } , r[t(60)] = function(e, t) { return e + t } , r.FDfcp = function(e, t) { return e * t } , r[t(95)] = function(e, t) { return e + t } , r[t(51)] = function(e, t) { return e & t } , r.DdHPB = function(e, t) { return e >> t } , r.abYok = function(e, t) { return e | t } , r[t(84)] = function(e, t) { return e << t } , r[t(105)] = function(e, t) { return e & t } , r[t(8)] = function(e, t) { return e - t } , r[t(137)] = function(e) { return e() } , r.YVBwM = function(e, t) { return e << t } , r[t(27)] = function(e, t) { return e & t } , r[t(26)] = function(e, t) { return e / t } , r[t(74)] = function(e, t) { return e * t } , r[t(49)] = t(14) + "abcdef", r[t(36)] = function(e, t) { return e >> t } , r[t(46)] = function(e, t) { return e + t } , r[t(75)] = function(e, t) { return e >> t } , r[t(47)] = function(e, t) { return e * t } , r[t(11)] = t(126) + t(128) + "UVWXYZabcdefghijklmn" + t(21) + "yz01234567" + t(139), r[t(63)] = function(e, t) { return e * t } , r.KIXRL = function(e, t) { return e << t } , r[t(57)] = function(e, t) { return e % t } , r[t(77)] = function(e, t) { return e << t } , r[t(71)] = function(e, t) { return e >> t } , r.jZUAt = function(e, t) { return e >> t } , r[t(48)] = function(e, t) { return e + t } , r[t(17)] = function(e, t) { return e % t } , r[t(85)] = function(e, t) { return e * t } , r[t(61)] = function(e, t) { return e < t } , r.mfuQZ = function(e, t) { return e + t } , r[t(125)] = function(e, t) { return e * t } , r[t(0)] = function(e, t) { return e(t) } ; var i = r; function o(e, n) { for (var r = t, o = i.WNzfT[r(131)]("|"), a = 0; ; ) { switch (o[a++]) { case "0": for (var d = 0; i.iXQwu(d, e.length); d += 16) for (var p = i[r(2)][r(131)]("|"), h = 0; ; ) { switch (p[h++]) { case "0": w = i[r(53)](l, w, b, x, T, e[d + 2], 9, -51403784); continue; case "1": x = u(x, T, w, b, e[d + 6], 23, 76029189); continue; case "2": b = i[r(53)](u, b, x, T, w, e[i.JFqRJ(d, 9)], 4, -640364487); continue; case "3": T = i[r(141)](c, T, w, b, x, e[d + 10], 15, -1051523); continue; case "4": T = s(T, w, b, x, e[i.JFqRJ(d, 2)], 17, 606105819); continue; case "5": w = i[r(91)](c, w, b, x, T, e[i[r(65)](d, 3)], 10, -1894446606); continue; case "6": w = i.XfWkD(l, w, b, x, T, e[i.wKeAM(d, 14)], 9, -1019803690); continue; case "7": T = i.pviAr(f, T, v); continue; case "8": b = i.XfWkD(l, b, x, T, w, e[i[r(92)](d, 13)], 5, -1444681467); continue; case "9": x = i[r(38)](s, x, T, w, b, e[i[r(82)](d, 3)], 22, -1044525330); continue; case "10": w = s(w, b, x, T, e[i[r(82)](d, 5)], 12, 1200080426); continue; case "11": x = i[r(38)](l, x, T, w, b, e[i[r(82)](d, 0)], 20, -373897302); continue; case "12": w = i[r(38)](s, w, b, x, T, e[i[r(82)](d, 9)], 12, -1958435417); continue; case "13": b = i.XfWkD(s, b, x, T, w, e[i.xcQTI(d, 8)], 7, 1770035416); continue; case "14": var m = b; continue; case "15": w = i[r(38)](u, w, b, x, T, e[i.xcQTI(d, 8)], 11, -2022574463); continue; case "16": b = f(b, m); continue; case "17": w = i[r(111)](f, w, g); continue; case "18": x = l(x, T, w, b, e[i[r(78)](d, 12)], 20, -1921207734); continue; case "19": w = i[r(40)](u, w, b, x, T, e[d + 4], 11, 1272893353); continue; case "20": T = i[r(20)](u, T, w, b, x, e[i.PlAEw(d, 11)], 16, 1839030562); continue; case "21": b = s(b, x, T, w, e[i[r(123)](d, 12)], 7, 1804550682); continue; case "22": x = u(x, T, w, b, e[i[r(123)](d, 10)], 23, -1094730640); continue; case "23": T = i[r(67)](c, T, w, b, x, e[d + 14], 15, -1416354905); continue; case "24": b = s(b, x, T, w, e[i[r(123)](d, 4)], 7, -176418897); continue; case "25": w = i.UXeVn(u, w, b, x, T, e[d + 0], 11, -358537222); continue; case "26": b = i.UXeVn(l, b, x, T, w, e[i[r(62)](d, 1)], 5, -165796510); continue; case "27": b = i.UXeVn(u, b, x, T, w, e[i[r(62)](d, 13)], 4, 681279174); continue; case "28": b = i[r(12)](l, b, x, T, w, e[i[r(138)](d, 9)], 5, 568446438); continue; case "29": w = i.yMPhx(c, w, b, x, T, e[d + 7], 10, 11261161415); continue; case "30": var g = w; continue; case "31": b = c(b, x, T, w, e[i.yGmJD(d, 8)], 6, 1873313359); continue; case "32": x = i.aFxRD(f, x, y); continue; case "33": T = i[r(12)](l, T, w, b, x, e[i[r(121)](d, 15)], 14, -660478335); continue; case "34": T = i.kHuTw(u, T, w, b, x, e[d + 3], 16, -722881979); continue; case "35": b = i[r(50)](l, b, x, T, w, e[i[r(121)](d, 5)], 5, -701520691); continue; case "36": T = l(T, w, b, x, e[i[r(121)](d, 3)], 14, -187363961); continue; case "37": T = i[r(142)](u, T, w, b, x, e[i.QgSUn(d, 7)], 16, -155497632); continue; case "38": b = i.FcXlo(u, b, x, T, w, e[i.koePJ(d, 5)], 4, -378558); continue; case "39": w = i[r(142)](u, w, b, x, T, e[i[r(90)](d, 12)], 11, -421815835); continue; case "40": T = i[r(59)](u, T, w, b, x, e[i[r(28)](d, 15)], 16, 530742520); continue; case "41": x = i.wvVCN(s, x, T, w, b, e[d + 15], 22, 1236531029); continue; case "42": x = i[r(59)](l, x, T, w, b, e[i[r(119)](d, 4)], 20, -405537848); continue; case "43": b = i[r(59)](s, b, x, T, w, e[i.lvwPz(d, 0)], 7, -680976936); continue; case "44": b = i[r(59)](u, b, x, T, w, e[i[r(45)](d, 1)], 4, -1530992060); continue; case "45": x = i.nCrbn(u, x, T, w, b, e[i[r(129)](d, 14)], 23, -35311556); continue; case "46": b = c(b, x, T, w, e[i[r(42)](d, 12)], 6, 1700485571); continue; case "47": x = i[r(7)](u, x, T, w, b, e[i.kaQlD(d, 2)], 23, -995338651); continue; case "48": T = c(T, w, b, x, e[d + 6], 15, -1560198380); continue; case "49": w = i[r(145)](l, w, b, x, T, e[i[r(107)](d, 6)], 9, -1069501632); continue; case "50": x = i[r(134)](c, x, T, w, b, e[i[r(89)](d, 1)], 21, -2054922799); continue; case "51": x = i.fmdcS(l, x, T, w, b, e[d + 8], 20, 1163531501); continue; case "52": x = i[r(15)](c, x, T, w, b, e[i[r(9)](d, 13)], 21, 1309151649); continue; case "53": x = i[r(15)](s, x, T, w, b, e[i[r(56)](d, 11)], 22, -1990404162); continue; case "54": w = i[r(6)](s, w, b, x, T, e[i[r(32)](d, 13)], 12, -40341101); continue; case "55": x = i.sFtiw(s, x, T, w, b, e[i.UAFHv(d, 7)], 22, -45705983); continue; case "56": T = i.sFtiw(s, T, w, b, x, e[i.MFmWH(d, 6)], 17, -1473231341); continue; case "57": w = i[r(99)](s, w, b, x, T, e[i.MFmWH(d, 1)], 12, -389564586); continue; case "58": x = c(x, T, w, b, e[i[r(39)](d, 9)], 21, -343485551); continue; case "59": b = i[r(113)](c, b, x, T, w, e[i[r(39)](d, 4)], 6, -145523070); continue; case "60": T = i.bRLIN(s, T, w, b, x, e[i[r(39)](d, 10)], 17, -42063); continue; case "61": var v = T; continue; case "62": b = i[r(66)](c, b, x, T, w, e[d + 0], 6, -198630844); continue; case "63": w = i[r(66)](c, w, b, x, T, e[i[r(13)](d, 15)], 10, -30611744); continue; case "64": x = c(x, T, w, b, e[d + 5], 21, -57434055); continue; case "65": T = i[r(29)](l, T, w, b, x, e[i[r(13)](d, 7)], 14, 1735328473); continue; case "66": w = i[r(29)](c, w, b, x, T, e[i[r(79)](d, 11)], 10, -1120210379); continue; case "67": var y = x; continue; case "68": w = i[r(1)](l, w, b, x, T, e[d + 10], 9, 38016083); continue; case "69": T = i[r(1)](s, T, w, b, x, e[i[r(79)](d, 14)], 17, -1502002290); continue; case "70": T = i.SUrST(c, T, w, b, x, e[i[r(79)](d, 2)], 15, 718787259); continue; case "71": T = l(T, w, b, x, e[i[r(81)](d, 11)], 14, 643717713); continue } break } continue; case "1": var b = 1732584193; continue; case "2": return Array(b, x, T, w); case "3": e[i.MXnIN(n, 5)] |= i[r(23)](128, i[r(54)](n, 32)); continue; case "4": var x = -271733879; continue; case "5": var w = 271733878; continue; case "6": e[i.BQgZQ(i[r(115)](n + 64, 9), 4) + 14] = n; continue; case "7": var T = -1732584194; continue } break } } function a(e, n, r, o, a, s) { var l = t; return f(i.BtzmV(d, i[l(44)](f, i.dbmfK(f, n, e), i[l(30)](f, o, s)), a), r) } function s(e, n, r, o, s, l, u) { var c = t; return a(i[c(143)](i[c(101)](n, r), i[c(101)](~n, o)), e, n, s, l, u) } function l(e, n, r, o, s, l, u) { var c = t; return i[c(122)](a, i[c(143)](i.ZpUiH(n, o), i.ZpUiH(r, ~o)), e, n, s, l, u) } function u(e, n, r, o, s, l, u) { return i[t(122)](a, i.tsNzQ(n ^ r, o), e, n, s, l, u) } function c(e, n, r, o, s, l, u) { var c = t; return i[c(122)](a, i[c(130)](r, i[c(41)](n, ~o)), e, n, s, l, u) } function f(e, n) { var r = t , o = i[r(95)](65535 & e, i.iqfMz(n, 65535)) , a = i[r(95)](e >> 16, i[r(97)](n, 16)) + i[r(97)](o, 16); return i[r(103)](i[r(84)](a, 16), i[r(105)](o, 65535)) } function d(e, n) { var r = t; return i.abYok(e << n, e >>> i[r(8)](32, n)) } function p(e) { for (var n = t, r = i[n(137)](Array), o = i[n(8)](i.vRqUp(1, 16), 1), a = 0; a < i.FDfcp(e[n(108)], 16); a += 16) r[i[n(97)](a, 5)] |= i[n(102)](i[n(27)](e[n(127)](i[n(26)](a, 16)), o), i[n(54)](a, 32)); return r } function h(e) { for (var n = t, r = i[n(49)], o = "", a = 0; i.iXQwu(a, i[n(74)](e[n(108)], 4)); a++) o += i.xgzfr(r[n(64)](15 & i[n(36)](e[i[n(36)](a, 2)], i[n(46)](i[n(74)](a % 4, 8), 4))), r[n(64)](15 & i.wWwRM(e[a >> 2], i[n(47)](a % 4, 8)))); return o } return i[t(0)]((function(e) { var n = t; return i[n(144)](h, i[n(76)](o, i.vyNVU(p, e), 16 * e[n(108)])) } ), e) } } , 639: ()=>{ "use strict"; var e = function() {}; e.__proto__.getAllElement = function(e) { let t = [] , n = e.children; if (0 !== e.children.length) for (let e = 0; e < n.length; e++) t.push(n[e]), t = t.concat(this.getAllElement(n[e])); return t } , e.__proto__.getNodeOriginalSize = function(t) { let n = [0, 0]; return e.getAllElement(t).forEach((function(e) { "absolute" != getComputedStyle(e, null).position && (n[0] = e.offsetWidth > n[0] ? e.offsetWidth : n[0], e.parentNode === t && (n[1] += e.offsetHeight)) } )), n } , e.__proto__.maxZIndex = function() { let e = [].slice.call(document.all); return parseInt(e.reduce((function(e, t) { let n = getComputedStyle(t, null).zIndex; return Math.max(e, isNaN(n) ? 0 : n) } ), 0)) } , e.__proto__.eventTarget = function(e, t, n, r, i) { i && (i = !1), e.addEventListener(n, (function(n) { if (n.target === e || n.target === e) return !1; let i = [].slice.call(e.querySelectorAll(t)); if (-1 !== i.indexOf(n.target)) r.apply(n.target); else { let t = n.target.parentNode; for (; t !== e; ) { if (-1 !== i.indexOf(t)) { r.apply(t); break } t = t.parentNode } } } ), i) } , e.__proto__.objectToDom = function(e) { let t = {}; for (let n in e) { let r = document.createElement(e[n].nodeType); if (void 0 !== e[n].nodeType) { for (let t in e[n]) if ("nodeType" != t) if ("innerhtml" == t.toLocaleLowerCase()) { let i = this.objectToDom(e[n][t]); for (let e in i) r.insertAdjacentElement("beforeend", i[e]) } else "innertext" == t.toLocaleLowerCase() ? r.insertAdjacentText("beforeend", e[n][t]) : r.setAttribute(t, e[n][t]); t[n] = r } } return t } , e.__proto__.loadFile = function(e) { let t = null , n = null; switch (e.substring(e.toLowerCase().lastIndexOf(".") + 1)) { case "css": t = document.head.querySelectorAll("link"), t = t.item(t.lenth - 1), n = document.createElement("link"), n.rel = "stylesheet", n.href = e; break; case "js": t = document.head.querySelectorAll("script"), t = t.item(t.length - 1), n = document.createElement("script"), n.src = e } t.insertAdjacentElement("afterend", n) } , e.__proto__.deepClone = function(e) { return JSON.parse(JSON.stringify(e)) } , e.__proto__.launchFullscreen = function(e) { e.requestFullscreen ? e.requestFullscreen() : e.mozRequestFullScreen ? e.mozRequestFullScreen() : e.msRequestFullscreen ? e.msRequestFullscreen() : e.webkitRequestFullscreen && e.webkitRequestFullScreen() } , e.__proto__.exitFullscreen = function() { document.exitFullscreen ? document.exitFullscreen() : document.msExitFullscreen ? document.msExitFullscreen() : document.mozCancelFullScreen ? document.mozCancelFullScreen() : document.webkitExitFullscreen && document.webkitExitFullscreen() } , e.__proto__.getFullscreenNode = function() { return document.fullscreenElement || document.msFullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || !1 } ; var t = function(e) { try { e.hook && "function" == typeof e.hook.initStart && e.hook.initStart(this); let n = Object.getPrototypeOf(this); Object.keys(n).forEach((function(e, r) { "option" === e ? (this.option = {}, Object.keys(n[e]).forEach((function(r, i) { ["text", "pageOption"].indexOf(r) >= 0 ? this.option[r] = t.assistant.util.deepClone(n[e][r]) : this.option[r] = n[e][r] } ), this)) : n[e]instanceof Function || (n[e]instanceof Object ? this[e] = t.assistant.util.deepClone(n[e]) : this[e] = n[e]) } ), this), this.initOption(e); let r = this.initBuildData() , i = this.initNode(r); e.hook && "function" == typeof e.hook.initEnded && e.hook.initEnded(this), Object.keys(i).forEach((function(e) { document.body.insertAdjacentElement("beforeend", i[e]) } )) } catch (e) { return console.error(e), { status: "error", message: e } } }; t.prototype.status = "hide", t.prototype.globalVariable = {}, t.prototype.timeoutClock = [], t.prototype.intervalClock = [], t.prototype.option = { index: 0, title: null, content: null, okText: null, noText: null, cancelText: null, type: "msg", mask: !0, skin: "default", transitionTime: .2, transitionOpacity: 0, transitionScale: [.45, .45], areaProportion: [.18, .21], pageArea: [800, 600], popupTime: 5, resize: !0, drag: !0, dragOverflow: !1, clickMaskRemove: !0, contentFullContainer: !1, displayProgressBar: !1, displayProgressBarPos: "bottom", displayProgressBarColor: "deepskyblue", parentModalLayer: null, text: { content: "", title: "标题栏", okButton: "确定", noButton: "拒绝", cancelButton: "取消" }, pageOption: { src: null, srcdoc: null, frameborder: 0, scrolling: "no", allowfullscreen: !0, name: "modal-layer-page-" }, hook: { initStart: null, initEnded: null }, callback: { ok: null, no: null, cancel: function() { t.getModalLayerByDom(this).remove() }, close: function() { t.getModalLayerByDom(this).remove() }, expand: function() { let e = t.getModalLayerByDom(this) , n = e.status , r = e.getNodes().container.querySelector("iframe[name=" + e.option.pageOption.name + e.option.index + "]") , i = function(t) { t.target === r ? e.setStatus("expand") : !1 === t.target && (window.removeEventListener("fullscreenchange", i), e.setStatus(n)) } , o = function(e) { t.msg({ mask: !1, popupTime: 5, title: "错误", displayProgressBar: !0, displayProgressBarPos: "bottom", content: '<i class="fas fa-window-close" style="color: red"></i> 全屏失败, 错误原因: ' + e }), window.removeEventListener("fullscreenerror", o) }; window.addEventListener("fullscreenerror", o), window.addEventListener("fullscreenchange", i), t.assistant.util.launchFullscreen(r) }, minimize: function() { t.getModalLayerByDom(this).minimize() }, clickMask: function() { t.getModalLayerByDom(this).remove() } }, event: { active: function(e) { let n = t.getModalLayerByDom(this) , r = 0 , i = n.getNodes() , o = (new Date).getTime(); if (!(0 !== (e || window.event).button || n.globalVariable.mousedown && n.globalVariable.mousedown[0] && o - n.globalVariable.mousedown[0] <= 200) && (n.globalVariable.mousedown = [!0, o], t.instance.forEach((function(e) { "show" === e.status && r++ } ), n), r >= 2)) { let e = t.assistant.util.maxZIndex(); if (i.container.style.zIndex == e) return; Object.keys(i).forEach((function(t) { i[t].style.zIndex = e + 1 } ), n), i.container.style.zIndex = parseInt(i.container.style.zIndex) + 1 } }, drag: function(e) { let n = t.getModalLayerByDom(this) , r = n.status , i = (new Date).getTime() , o = e || window.event , a = n.getNodes().container , s = a.getBoundingClientRect() , l = [o.screenX, o.screenY] , u = (a.querySelector(".modal-layer-title"), window.document.documentElement.getBoundingClientRect()) , c = [u.left, u.left + u.width, u.left, u.top + u.height]; if (0 !== o.button || n.globalVariable.mousedown && n.globalVariable.mousedown[0] && i - n.globalVariable.mousedown[0] <= 200) return; n.globalVariable.mousedown = [!0, i], s.y = s.top, s.x = s.left, window.getSelection().removeAllRanges(); let f = a.querySelector(".modal-layer-drag-mask"); f || (f = t.assistant.util.objectToDom([n.nodeData.dragMask])[0], a.querySelector(".modal-layer-content").insertAdjacentElement("afterbegin", f)), f.style.visibility = "visible"; let d = function(e, t) { n.option.dragOverflow || (s.x + e < c[0] && (s.x = c[0] - e), s.x + s.width + e > c[1] && (s.x = c[1] - s.width - e), s.y + t < c[2] && (s.y = c[2] - t), s.y + s.height + t > c[3] && (s.y = c[3] - s.height - t)), s.x += e, s.y += t, a.style.marginLeft = s.x + "px", a.style.marginTop = s.y + "px", n.setStatus("drag") } , p = function(e) { let t = e || window.event , n = t.screenX - l[0] , r = t.screenY - l[1]; l = [t.screenX, t.screenY], d(n, r) } , h = function(e) { let n = [] , r = e || window.event , i = r.keyCode || r.which , o = [t.enum.arrow.up, t.enum.arrow.dw, t.enum.arrow.left, t.enum.arrow.right]; if (!(o.indexOf(i) < 0)) { switch (i) { case o[0]: n[1] = -1; break; case o[1]: n[1] = 1; break; case o[2]: n[0] = -1; break; case o[3]: n[0] = 1 } d(n[0], n[1]) } } , m = function() { delete n.globalVariable.mousedown, a.querySelector(".modal-layer-drag-mask").removeAttribute("style"), document.removeEventListener("keydown", h), document.removeEventListener("mousemove", p), document.removeEventListener("mouseup", m), n.setStatus(r) }; document.addEventListener("mouseup", m), document.addEventListener("mousemove", p), document.addEventListener("keydown", h) }, resize: function(e) { let n = t.getModalLayerByDom(this) , r = n.status , i = (new Date).getTime() , o = e || window.event , a = o.target , s = n.getNodes().container , l = s.getBoundingClientRect() , u = n.globalVariable.defaultArea , c = [o.screenX, o.screenY] , f = [l.width, l.height] , d = document.documentElement.getBoundingClientRect(); if (0 !== o.button || n.globalVariable.mousedown && n.globalVariable.mousedown[0] && i - n.globalVariable.mousedown[0] <= 200) return; n.globalVariable.mousedown = [!0, i], l.y = l.top, l.x = l.left, window.getSelection().removeAllRanges(); let p = s.querySelector(".modal-layer-resize-mask") , h = document.querySelector(".modal-layer-resize-mask"); p || (p = t.assistant.util.objectToDom([n.nodeData.resizeMask])[0], s.insertAdjacentElement("afterbegin", p)), h.parentNode === document.body && p !== h && h || (h = t.assistant.util.objectToDom([n.nodeData.resizeMask])[0], h.style.zIndex = parseInt(s.style.zIndex) - 1, h.style.cssText += "top: 0; left: 0; right: 0; bottom: 0; position: fixed;", document.body.insertAdjacentElement("afterbegin", h)), p.style.visibility = "visible", h.style.visibility = "visible"; let m = function(e) { let t = e || window.event , r = t.screenX - c[0] , i = t.screenY - c[1] , o = a.getAttribute("position-resize-bar") , s = [l.x, l.y, f[0], f[1]]; n.setStatus("resize"), o.indexOf("top") >= 0 && (s[1] += i, s[3] -= i, s[1] < d.y && (s[3] -= d.y - s[1]), s[3] < u[1] && (s[1] += s[3] - u[1], s[3] = u[1])), o.indexOf("bottom") >= 0 && (s[3] += i, s[3] < u[1] && (s[3] = u[1])), o.indexOf("left") >= 0 && (s[0] += r, s[2] -= r, s[0] < d.x && (s[2] -= d.x - s[0]), s[2] < u[0] && (s[0] += s[2] - u[0], s[2] = u[0])), o.indexOf("right") >= 0 && (s[2] += r, s[2] < u[0] && (s[2] = u[0])), n.resizeByXYWH(s[0], s[1], s[2], s[3]) } , g = function() { delete n.globalVariable.mousedown, s.querySelector(".modal-layer-resize-mask").removeAttribute("style"), document.body.removeChild(document.querySelector(".modal-layer-resize-mask")), document.removeEventListener("mousemove", m), document.removeEventListener("mouseup", g), n.setStatus(r) }; document.addEventListener("mouseup", g), document.addEventListener("mousemove", m) } } }, t.prototype.nodeData = { mask: { nodeType: "div", id: "modal-layer-mask" }, container: { nodeType: "div", id: "modal-layer-container" }, title: { nodeType: "div", class: "modal-layer-title", innerHTML: [{ nodeType: "h4", class: "modal-layer-title-content" }] }, content: { nodeType: "div", class: "modal-layer-content" }, contentPage: { nodeType: "iframe", name: "", scrolling: "no", frameborder: 0 }, dragMask: { nodeType: "div", class: "modal-layer-drag-mask" }, interaction: { nodeType: "div", class: "modal-layer-interaction", innerHTML: [{ nodeType: "span", class: "modal-layer-button modal-layer-button-ok" }, { nodeType: "span", class: "modal-layer-button modal-layer-button-cancel" }, { nodeType: "span", class: "modal-layer-button modal-layer-button-no" }] }, action: { nodeType: "div", class: "modal-layer-action", innerHTML: [{ nodeType: "span", "data-fa-transform": "up-4 shrink-2", class: "fas fa-window-minimize modal-layer-action-btn modal-layer-action-minimize" }, { nodeType: "span", "data-fa-transform": "shrink-2", class: "fas fa-expand-arrows-alt modal-layer-action-btn modal-layer-action-expand" }, { nodeType: "span", "data-fa-transform": "rotate-45 grow-1", class: "fas fa-plus modal-layer-action-btn modal-layer-action-close" }] }, displayProgressBar: { nodeType: "div", class: "modal-layer-display-progress-bar", innerHTML: [{ nodeType: "div", class: "modal-layer-display-progress-background", innerHTML: [{ nodeType: "span", class: "modal-layer-display-bar-progress" }] }] }, resizeBox: { nodeType: "div", class: "modal-layer-resize-box", innerHTML: [{ nodeType: "div", class: "modal-layer-resize-bar", "position-resize-bar": "top" }, { nodeType: "div", class: "modal-layer-resize-bar", "position-resize-bar": "left" }, { nodeType: "div", class: "modal-layer-resize-bar", "position-resize-bar": "right" }, { nodeType: "div", class: "modal-layer-resize-bar", "position-resize-bar": "bottom" }, { nodeType: "div", class: "modal-layer-resize-bar", "position-resize-bar": "left-top" }, { nodeType: "div", class: "modal-layer-resize-bar", "position-resize-bar": "right-top" }, { nodeType: "div", class: "modal-layer-resize-bar", "position-resize-bar": "left-bottom" }, { nodeType: "div", class: "modal-layer-resize-bar", "position-resize-bar": "right-bottom" }] }, resizeMask: { nodeType: "div", class: "modal-layer-resize-mask" }, minimizeTaskbar: { nodeType: "div", id: "modal-layer-minimize-taskbar" }, minimizeTaskbarItem: { nodeType: "div", class: "modal-layer-minimize-item", innerHTML: [{ nodeType: "h4", class: "modal-layer-minimize-item-title" }] } }, t.prototype.initOption = function(e) { Object.keys(e).forEach((function(n) { if ("type" === n && void 0 === t.enum.type[e[n]]) throw Error("无效的类型"); ["text", "pageOption", "callback", "hook", "event"].indexOf(n) >= 0 ? Object.keys(e[n]).forEach((function(t) { void 0 !== this.option[n][t] && ("function" == typeof e[n][t] ? this.option[n][t] = e[n][t].bind(this) : this.option[n][t] = e[n][t]) } ), this) : void 0 !== this.option[n] && (this.option[n] = e[n]) } ), this), this.option.popupTime <= 0 && (this.option.displayProgressBar = !1), !1 === this.option.mask && (this.option.clickMaskRemove = !1), "msg" === this.option.type && (this.option.title = !1), !1 === this.option.title && (this.option.drag = !1), !1 === this.option.drag && (this.option.dragOverflow = !1), this.option.index = t.instance.length } , t.prototype.initBuildData = function() { let e = {}; return this.option.mask && (e.mask = this.nodeData.mask), e.container = this.nodeData.container, void 0 === e.container.innerHTML && (e.container.innerHTML = []), void 0 === this.nodeData.content.innerHTML && (this.nodeData.content.innerHTML = []), this.option.resize && e.container.innerHTML.push(this.nodeData.resizeMask), !1 !== this.option.title && e.container.innerHTML.push(this.nodeData.title), this.option.drag && this.nodeData.content.innerHTML.push(this.nodeData.dragMask), ["page", "video", "audio"].indexOf(this.option.type) >= 0 && this.nodeData.content.innerHTML.push(this.nodeData.contentPage), e.container.innerHTML.push(this.nodeData.content), e.container.innerHTML.push(this.nodeData.interaction), e.container.innerHTML.push(this.nodeData.action), this.option.displayProgressBar && e.container.innerHTML.push(this.nodeData.displayProgressBar), this.option.resize && e.container.innerHTML.push(this.nodeData.resizeBox), e } , t.prototype.initNode = function(e) { let n = "modal-layer-ui" , r = "modal-layer-skin-" + this.option.skin , i = "modal-layer-index-" + this.option.index , o = t.assistant.util.objectToDom(e) , a = Object.keys(o) , s = t.assistant.util.maxZIndex() , l = "opacity: " + this.option.transitionOpacity + ";" , u = "opacity " + this.option.transitionTime + "s ease" , c = "transform " + this.option.transitionTime + "s ease" , f = ";-webkit-transition: " + u + ", " + c + "; -o-transition:" + u + ", " + c + "; transition:" + u + ", " + c + ";" , d = ";-webkit-transform: scale(" + this.option.transitionScale[0] + ", " + this.option.transitionScale[1] + ");-ms-transform: scale(" + this.option.transitionScale[0] + ", " + this.option.transitionScale[1] + ");-o-transform: scale(" + this.option.transitionScale[0] + ", " + this.option.transitionScale[1] + ");transform: scale(" + this.option.transitionScale[0] + ", " + this.option.transitionScale[1] + ");"; if (o.container.setAttribute("modal-layer-type", this.option.type), o.container.setAttribute("modal-layer-popup-time", this.option.popupTime), o.container.setAttribute("click-mask-remove", this.option.clickMaskRemove), o.container.setAttribute("content-full-container", this.option.contentFullContainer), this.option.drag && o.container.setAttribute("allow-drag", this.option.drag), this.option.resize && o.container.setAttribute("allow-resize", this.option.resize), this.option.displayProgressBar) { let e = ["top", "left", "right", "bottom"] , t = o.container.querySelector(".modal-layer-display-progress-bar"); !1 === e.indexOf(this.option.displayProgressBarPos.toLowerCase()) && (this.option.displayProgressBarPos = e[3]), t.setAttribute("progress-bar-position", this.option.displayProgressBarPos), t.querySelector(".modal-layer-display-bar-progress").style.cssText += "background: " + this.option.displayProgressBarColor } if ("page" === this.option.type) { let e = o.container.querySelector(".modal-layer-content iframe") , t = "display: block; width: " + this.option.pageArea[0] + "px; height: " + this.option.pageArea[1] + "px"; void 0 !== this.option.pageOption.srcdoc && void 0 !== this.option.pageOption.src && delete this.option.pageOption.srcdoc, Object.keys(this.option.pageOption).forEach((function(t) { "name" === t ? e.setAttribute("name", this.option.pageOption.name + this.option.index) : e.setAttribute(t, this.option.pageOption[t]) } ), this), e.style.cssText = t } return this.initContent(o.container), a.forEach((function(e) { let a = t.assistant.util.getAllElement(o[e]); for (let e = 0; e < a.length; e++) { let t = a[e].classList; t.contains(n), t.add(n) } o[e].classList.add(n), o[e].classList.add(r), o[e].classList.add(i), o[e].classList.add("modal-layer-hide"), o[e].style.cssText = l + f, o[e].style.zIndex = s + 1 } ), this), o.container.style.cssText += d, this.initEvent(o), t.instance.push(this), o } , t.prototype.initContent = function(e) { let t = e.querySelector(".modal-layer-title-content") , n = e.querySelector(".modal-layer-content") , r = e.querySelector(".modal-layer-interaction"); "page" !== this.option.type && (this.option.drag ? n.innerHTML = e.querySelector(".modal-layer-drag-mask").outerHTML + (this.option.content ? this.option.content : this.option.text.content) : n.innerHTML = this.option.content ? this.option.content : this.option.text.content), "msg" !== this.option.type && (t.innerHTML = this.option.title ? this.option.title : this.option.text.title, r.querySelector(".modal-layer-button-ok").innerHTML = this.option.okText ? this.option.okText : this.option.text.okButton, r.querySelector(".modal-layer-button-no").innerHTML = this.option.noText ? this.option.noText : this.option.text.noButton, r.querySelector(".modal-layer-button-cancel").innerHTML = this.option.cancelText ? this.option.cancelText : this.option.text.cancelButton) } , t.prototype.initEvent = function(e) { let n = this; if (this.option.mask && this.option.clickMaskRemove && e.mask.addEventListener("click", this.option.callback.clickMask), this.option.drag && e.container.querySelector(".modal-layer-title").addEventListener("mousedown", this.option.event.drag), this.option.resize && t.assistant.util.eventTarget(e.container, ".modal-layer-resize-bar", "mousedown", this.option.event.resize), e.container.addEventListener("mousedown", this.option.event.active), this.option.popupTime > 0) { let t = "modal-layer-show" , r = 1e3 * this.option.popupTime; this.intervalClock.push(setInterval((function() { if (e.container.classList.contains(t)) { if (n.stopAllInterval(), n.option.displayProgressBar) { let t = "" , r = e.container.querySelector(".modal-layer-display-bar-progress"); switch (n.option.displayProgressBarPos) { case "top": case "bottom": t = "widthFull"; break; case "left": case "right": t = "heightFull" } r.style.cssText += ";animation: " + t + " " + n.option.popupTime + "s linear; -webkit-animation: " + t + " " + n.option.popupTime + "s linear;" } n.timeoutClock.push(setTimeout((function() { n.remove(n.option.index) } ), r)) } } ), 10)) } if (this.option.callback.close && t.assistant.util.eventTarget(e.container, ".modal-layer-action-close", "click", this.option.callback.close), this.option.callback.expand && t.assistant.util.eventTarget(e.container, ".modal-layer-action-expand", "click", this.option.callback.expand), this.option.callback.minimize && t.assistant.util.eventTarget(e.container, ".modal-layer-action-minimize", "click", this.option.callback.minimize), "msg" !== this.option.type) { let t = e.container.querySelector(".modal-layer-button-ok") , n = e.container.querySelector(".modal-layer-button-no") , r = e.container.querySelector(".modal-layer-button-cancel"); void 0 !== this.option.callback.ok && t.addEventListener("click", this.option.callback.ok), void 0 !== this.option.callback.no && n.addEventListener("click", this.option.callback.no), r.addEventListener("click", this.option.callback.cancel) } } , t.prototype.stopAllInterval = function() { this.intervalClock.forEach((function(e, t) { this.stopInterval(t) } ), this) } , t.prototype.stopInterval = function(e) { clearInterval(this.intervalClock[e]), delete this.intervalClock[e] } , t.prototype.stopAllTimeout = function() { this.timeoutClock.forEach((function(e, t) { this.stopTimeout(t) } ), this) } , t.prototype.stopTimeout = function(e) { clearTimeout(this.timeoutClock[e]), delete this.timeoutClock[e] } , t.prototype.removeAllEvent = function() { let e = this.getNodes(); if (0 === Object.keys(e).length) return !1; this.option.mask && e.mask.removeEventListener("click", this.option.callback.clickMask), this.option.drag && e.container.querySelector(".modal-layer-title").removeEventListener("mousedown", this.option.event.drag), this.option.resize && e.container.removeEventListener("mousedown", this.option.event.resize), e.container.removeEventListener("mousedown", this.option.event.active); let t = e.container.querySelector(".modal-layer-button-ok") , n = e.container.querySelector(".modal-layer-button-no") , r = e.container.querySelector(".modal-layer-button-cancel"); t && t.removeEventListener("click", this.option.callback.ok), n && n.removeEventListener("click", this.option.callback.no), r && r.removeEventListener("click", this.option.callback.cancel), e.container.removeEventListener("click", this.option.callback.close), e.container.removeEventListener("click", this.option.callback.expand), e.container.removeEventListener("click", this.option.callback.minimize) } , t.__proto__.getModalLayerByDom = function(e) { let n = null , r = e.classList , i = "modal-layer-index-"; for (; e.getAttribute("class").indexOf(i) < 0 && e !== document; ) r = e.classList, e = e.parentNode; r = e.classList; for (let e = 0, t = r.length; e < t; e++) { let t = r.item(e); if (t.indexOf(i) >= 0) { n = t.replace(i, ""); break } } return t.instance[n] } , t.prototype.getNodes = function() { let e = {} , t = document.querySelector("#modal-layer-mask.modal-layer-index-" + this.option.index) , n = document.querySelector("#modal-layer-container.modal-layer-index-" + this.option.index); return document.querySelector("#modal-layer-container.modal-layer-index-"), t && (e.mask = t), n && (e.container = n), e } , t.prototype.setStatus = function(e) { if (void 0 === t.enum.status[e]) throw Error("不存在该状态, 无法设置."); this.status = e } , t.prototype.resize = function() { let e = 0 , t = 0 , n = null , r = window.innerWidth , i = (window.innerHeight, this.getNodes().container) , o = this.option.areaProportion[0].toString().length - (this.option.areaProportion[0].toString().indexOf(".") + 1); if (this.option.areaProportion[1].toString().length, this.option.areaProportion[1].toString().indexOf("."), "page" === this.option.type.toLowerCase()) { let r = i.querySelector("iframe[name=" + this.option.pageOption.name + this.option.index + "]"); n = i.children, e = r.offsetWidth + 2 * r.parentNode.offsetLeft; for (let e = 0; e < n.length; e++) t += "absolute" == getComputedStyle(n[e], null).position ? 0 : n[e].offsetHeight; i.style.width = e + "px", i.style.height = t + "px" } else { e = r * (10 * o * this.option.areaProportion[0]) / (10 * o), i.style.width = e + "px", n = i.children; for (let e = 0; e < n.length; e++) t += "absolute" == getComputedStyle(n[e], null).position ? 0 : n[e].offsetHeight; i.style.height = t + "px" } this.globalVariable.defaultArea = [e, t] } , t.prototype.resizeByXYWH = function(e, t, n, r) { let i = this.getNodes().container , o = document.documentElement.getBoundingClientRect(); if (e < o.left && (e = o.left), e + n > o.right && (n = o.right - e), t < o.y && (t = o.y), t + r > o.bottom && (r = o.bottom - t), i.style.marginLeft = e + "px", i.style.marginTop = t + "px", i.style.width = n + "px", i.style.height = r + "px", ["page", "video", "audio"].indexOf(this.option.type) >= 0) { let e = i.querySelector("iframe[name=" + this.option.pageOption.name + this.option.index + "]"); e.style.width = this.option.pageArea[0] + n - this.globalVariable.defaultArea[0] + "px", e.style.height = this.option.pageArea[1] + r - this.globalVariable.defaultArea[1] + "px" } } , t.prototype.show = function() { let e = "show" , n = "modal-layer-hide" , r = this.getNodes() , i = t.assistant.util.maxZIndex(); if (0 === Object.keys(r).length || this.status === e) return !1; this.option.mask && (r.mask.style.zIndex = i + 1), r.container.style.zIndex = i + 2, this.option.mask && (r.mask.style.opacity = 1), r.container.style.opacity = 1, r.container.style.transform = "scale(1, 1)", Object.keys(r).forEach((function(e) { r[e].classList.contains(n) && (r[e].classList.add("modal-layer-show"), r[e].classList.remove(n)) } )), this.setStatus(e) } , t.prototype.hide = function(e) { let t = this , n = "hide" , r = "modal-layer-show" , i = this.getNodes(); if (0 === Object.keys(i).length || this.status === n) return !1; this.option.mask && (i.mask.style.opacity = this.option.transitionOpacity), i.container.style.opacity = this.option.transitionOpacity, i.container.style.transform = "scale(" + this.option.transitionScale[0] + ", " + this.option.transitionScale[1] + ")", setTimeout((function() { Object.keys(i).forEach((function(e) { i[e].classList.contains(r) && (i[e].classList.add("modal-layer-hide"), i[e].classList.remove(r)) } )), t.setStatus(n), e instanceof Function && e.apply(t) } ), 1e3 * (1e3 * this.option.transitionTime / 700).toFixed(2)) } , t.prototype.minimize = function() { let e = null , n = null , r = null , i = null , o = "minimize"; if (this.status === o) return; n = document.querySelector("#modal-layer-minimize-taskbar"), n || (n = t.assistant.util.objectToDom([this.nodeData.minimizeTaskbar])[0], document.body.insertAdjacentElement("beforeend", n), t.assistant.util.eventTarget(n, ".modal-layer-minimize-item", "click", (function() { if (this.getAttribute("clicked")) return; let e = this.getAttribute("modal-layer-index"); this.setAttribute("clicked", !0), t.minimizeList.splice(t.minimizeList.indexOf(t.instance[e]), 1)[0].revert() } ))), i = t.minimizeList.length < 3 ? "25%" : t.minimizeList.length < 5 ? "20%" : "12.5%", e = 0 === this.option.title.length ? this.option.text.title : this.option.title, r = t.assistant.util.objectToDom([this.nodeData.minimizeTaskbarItem])[0], r.setAttribute("modal-layer-index", this.option.index), r.querySelector(".modal-layer-minimize-item-title").innerHTML = e, n.insertAdjacentElement("beforeend", r); let a = n.querySelectorAll("." + r.className); for (let e = 0, t = a.length; e < t; e++) a[e].style.width = i; let s = setInterval((function() { r.parentNode && (r.style.cssText += "opacity: 1;-webkit-transform: scale(1);-ms-transform: scale(1);-o-transform: scale(1);transform: scale(1);", clearInterval(s)) } ), 10); this.hide((function() { this.setStatus(o), t.minimizeList.push(this) } )) } , t.prototype.revert = function() { let e = document.querySelector("#modal-layer-minimize-taskbar") , n = e.querySelector('.modal-layer-minimize-item[modal-layer-index="' + this.option.index + '"]'); ["minimize"].indexOf(this.status) < 0 || (this.show(), this.setStatus("show"), n.style.opacity = "", n.style.transform = "", setTimeout((function() { e.removeChild(n), t.minimizeList.length <= 0 && document.body.removeChild(e) } ), 250)) } , t.prototype.remove = function() { let e = "removed" , t = "removing" , n = this.getNodes(); if (0 === Object.keys(n).length || this.status === t || this.status === e) return !1; this.setStatus(t), this.stopAllTimeout(), this.stopAllInterval(), this.hide((function() { this.removeAllEvent(), Object.keys(n).forEach((function(e) { n[e].parentNode.removeChild(n[e]) } )), this.setStatus(e), null !== this.option.parentModalLayer && this.option.parentModalLayer.show() } )) } , t.__proto__.removeAll = function() { for (let e = 0; e < t.instance.length; e++) t.instance[e].remove() } , t.__proto__.msg = function(e) { let n = null; return "string" == typeof e ? e = { content: e } : e.type = "msg", n = new t(e), n.resize(), n.show(), n } , t.__proto__.alert = function(e) { let n = null; return e.type = "alert", n = new t(e), n.resize(), n.show(), n } , t.__proto__.prompt = function(e) { let n = null; return e.type = "prompt", n = new t(e), n.resize(), n.show(), n } , t.__proto__.confirm = function(e) { let n = null; return e.type = "confirm", n = new t(e), n.resize(), n.show(), n } , t.__proto__.page = function(e) { let n = null; return e.type = "page", e.callback || (e.callback = {}), n = new t(e), n.resize(), n.show(), n } , t.__proto__.image = function(e) {} , t.__proto__.video = function(e) {} , t.__proto__.audio = function(e) {} , t.__proto__.instance = [], t.__proto__.minimizeList = [], t.__proto__.assistant = { util: e }, t.__proto__.enum = { type: { msg: 0, alert: 1, prompt: 2, confirm: 3, page: 4, loading: 5, image: 6, video: 7, audio: 8 }, status: { hide: 0, show: 1, expand: 2, minimize: 3, removing: 4, removed: 5, drag: 6, resize: 7 }, arrow: { left: 37, up: 38, right: 39, dw: 40 } } } ,
732: function(e, t, n) { var r, o, a, s; _0x34e7 = [ "split", "ABHICESQWK", "FKByN", "U987654321", "lmHcG", "dICfr", "Szksx", "Bgrij", "iwnNJ", "jihgfdecba", "GfTek", "gfdecbaZXY", "constructo", "QIoXW", "jLRMs", "AqLWq", "0zyxwvutsr", "TKgNw", "eMnqD", "thjIz", "btoa", "MNPQRSTWXY", "oPsqh", "niIlq", "evetF", "LVZVH", "fYWEX", "kmnprstwxy", "aYkvo", "tsrqpomnlk", "HfLqY", "aQCDK", "lGBLj", "test", "3210zyxwvu", "QWK2Fi", "return /\" ", "hsJtK", "jdwcO", "SlFsj", "OWUOc", "LCaAn", "[^ ]+)+)+[", "FAVYf", "2Fi+987654", "floor", "join", "EuwBW", "OXYrZ", "charCodeAt", "SkkHG", "iYuJr", "GwoYF", "kPdGe", "cVCcp", "INQRH", "INVALID_CH", "charAt", "push", "apply", "lalCJ", "kTcRS", "+ this + \"", "ykpOn", "gLnjm", "gmBaq", "kukBH", "dvEWE", "SFKLi", "^([^ ]+( +", "qpomnlkjih", "^ ]}", "pHtmC", "length" ], a = _0x34e7, s = function(e) { for (; --e; ) a.push(a.shift()) } var l = function(e, t) { return _0x34e7[e -= 188] } , u = l var f = u(191) + u(204) + u(258) + u(199) + "WVUTSRQPON" + u(189) + u(232) + u(222) + u(217) + u(197) + "ZXYWVUTSRQPONABHICES" + u(223); function d(e) { var t = u , n = {}; n[t(214)] = function(e, t) { return e || t } , n.bWcgB = function(e, t) { return e * t } , n[t(227)] = "ABCDEFGHJK" + t(209) + "Zabcdefhij" + t(215) + "z2345678"; for (var r = n, o = "1|3|0|4|2|5"[t(188)]("|"), a = 0; ; ) { switch (o[a++]) { case "0": var s = l[t(261)]; continue; case "1": e = r[t(214)](e, 32); continue; case "2": for (i = 0; i < e; i++) c += l[t(245)](Math[t(233)](r.bWcgB(Math.random(), s))); continue; case "3": var l = r[t(227)]; continue; case "4": var c = ""; continue; case "5": return c } break } } window[u(208)] = function(e) { var t = u , r = {}; r.TGmSp = t(244) + "ARACTER_ERR", r[t(238)] = t(224) + t(250) + "/", r[t(205)] = "^([^ ]+( +" + t(230) + t(259), r.aYkvo = function(e) { return e() } , r[t(254)] = function(e, t) { return e % t } , r.evetF = function(e, t) { return e >> t } , r.GfTek = t(196), r[t(260)] = function(e, t) { return e << t } , r[t(229)] = function(e, t) { return e | t } , r[t(242)] = function(e, t) { return e << t } , r[t(228)] = function(e, t) { return e & t } , r[t(207)] = function(e, t) { return e << t } , r[t(202)] = function(e, t) { return e & t } , r.jdwcO = function(e, t) { return e === t } , r.kPdGe = t(231), r[t(195)] = t(213), r[t(201)] = function(e, t) { return e & t } , r[t(206)] = function(e, t) { return e == t } , r[t(219)] = function(e, t) { return e + t } , r[t(220)] = function(e, t) { return e(t) } ; var i = r; if (/([^\u0000-\u00ff])/.test(e)) throw new Error(i.TGmSp); for (var o, a, s, l = 0, c = []; l < e[t(261)]; ) { switch (a = e[t(237)](l), s = i.kukBH(l, 6)) { case 0: delete window, delete document, c[t(246)](f[t(245)](i[t(212)](a, 2))); break; case 1: try { "WhHMm" === i[t(198)] || n.g && c[t(246)](f[t(245)](i.pHtmC(2 & o, 3) | i.evetF(a, 4))) } catch (e) { c[t(246)](f[t(245)](i[t(229)](i.cVCcp(3 & o, 4), a >> 4))) } break; case 2: c[t(246)](f[t(245)](i[t(229)](i[t(242)](15 & o, 2), i.evetF(a, 6)))), c[t(246)](f[t(245)](i[t(228)](a, 63))); break; case 3: c[t(246)](f[t(245)](i[t(212)](a, 3))); break; case 4: c.push(f[t(245)](i[t(229)](i[t(207)](i.OWUOc(o, 4), 6), i[t(212)](a, 6)))); break; case 5: c[t(246)](f[t(245)](i[t(229)](i[t(207)](i[t(202)](o, 15), 4), a >> 8))), c.push(f.charAt(i[t(202)](a, 63))) } o = a, l++ } return 0 == s ? i[t(226)](i[t(241)], i[t(195)]) || (c[t(246)](f[t(245)](i[t(201)](o, 3) << 4)), c.push("FM")) : i.eMnqD(s, 1) && (c[t(246)](f[t(245)]((15 & o) << 2)), c[t(246)]("K")), i[t(219)](i.aQCDK(d(15), window.md5(c[t(234)](""))), i[t(220)](d, 10)) } 755: function(e, t) { var n; !function(t, n) { "use strict"; "object" == typeof e.exports ? e.exports = t.document ? n(t, !0) : function(e) { if (!e.document) throw new Error("jQuery requires a window with a document"); return n(e) } : n(t) }("undefined" != typeof window ? window : this, (function(r, i) { "use strict"; var o = [] , a = Object.getPrototypeOf , s = o.slice , l = o.flat ? function(e) { return o.flat.call(e) } : function(e) { return o.concat.apply([], e) } , u = o.push , c = o.indexOf , f = {} , d = f.toString , p = f.hasOwnProperty , h = p.toString , m = h.call(Object) , g = {} , v = function(e) { return "function" == typeof e && "number" != typeof e.nodeType } , y = function(e) { return null != e && e === e.window } , b = r.document , x = { type: !0, src: !0, nonce: !0, noModule: !0 }; function w(e, t, n) { var r, i, o = (n = n || b).createElement("script"); if (o.text = e, t) for (r in x) (i = t[r] || t.getAttribute && t.getAttribute(r)) && o.setAttribute(r, i); n.head.appendChild(o).parentNode.removeChild(o) } function T(e) { return null == e ? e + "" : "object" == typeof e || "function" == typeof e ? f[d.call(e)] || "object" : typeof e } var k = "3.5.1" , C = function(e, t) { return new C.fn.init(e,t) }; function E(e) { var t = !!e && "length"in e && e.length , n = T(e); return !v(e) && !y(e) && ("array" === n || 0 === t || "number" == typeof t && t > 0 && t - 1 in e) } C.fn = C.prototype = { jquery: k, constructor: C, length: 0, toArray: function() { return s.call(this) }, get: function(e) { return null == e ? s.call(this) : e < 0 ? this[e + this.length] : this[e] }, pushStack: function(e) { var t = C.merge(this.constructor(), e); return t.prevObject = this, t }, each: function(e) { return C.each(this, e) }, map: function(e) { return this.pushStack(C.map(this, (function(t, n) { return e.call(t, n, t) } ))) }, slice: function() { return this.pushStack(s.apply(this, arguments)) }, first: function() { return this.eq(0) }, last: function() { return this.eq(-1) }, even: function() { return this.pushStack(C.grep(this, (function(e, t) { return (t + 1) % 2 } ))) }, odd: function() { return this.pushStack(C.grep(this, (function(e, t) { return t % 2 } ))) }, eq: function(e) { var t = this.length , n = +e + (e < 0 ? t : 0); return this.pushStack(n >= 0 && n < t ? [this[n]] : []) }, end: function() { return this.prevObject || this.constructor() }, push: u, sort: o.sort, splice: o.splice }, C.extend = C.fn.extend = function() { var e, t, n, r, i, o, a = arguments[0] || {}, s = 1, l = arguments.length, u = !1; for ("boolean" == typeof a && (u = a, a = arguments[s] || {}, s++), "object" == typeof a || v(a) || (a = {}), s === l && (a = this, s--); s < l; s++) if (null != (e = arguments[s])) for (t in e) r = e[t], "__proto__" !== t && a !== r && (u && r && (C.isPlainObject(r) || (i = Array.isArray(r))) ? (n = a[t], o = i && !Array.isArray(n) ? [] : i || C.isPlainObject(n) ? n : {}, i = !1, a[t] = C.extend(u, o, r)) : void 0 !== r && (a[t] = r)); return a } , C.extend({ expando: "jQuery" + (k + Math.random()).replace(/\D/g, ""), isReady: !0, error: function(e) { throw new Error(e) }, noop: function() {}, isPlainObject: function(e) { var t, n; return !(!e || "[object Object]" !== d.call(e) || (t = a(e)) && ("function" != typeof (n = p.call(t, "constructor") && t.constructor) || h.call(n) !== m)) }, isEmptyObject: function(e) { var t; for (t in e) return !1; return !0 }, globalEval: function(e, t, n) { w(e, { nonce: t && t.nonce }, n) }, each: function(e, t) { var n, r = 0; if (E(e)) for (n = e.length; r < n && !1 !== t.call(e[r], r, e[r]); r++) ; else for (r in e) if (!1 === t.call(e[r], r, e[r])) break; return e }, makeArray: function(e, t) { var n = t || []; return null != e && (E(Object(e)) ? C.merge(n, "string" == typeof e ? [e] : e) : u.call(n, e)), n }, inArray: function(e, t, n) { return null == t ? -1 : c.call(t, e, n) }, merge: function(e, t) { for (var n = +t.length, r = 0, i = e.length; r < n; r++) e[i++] = t[r]; return e.length = i, e }, grep: function(e, t, n) { for (var r = [], i = 0, o = e.length, a = !n; i < o; i++) !t(e[i], i) !== a && r.push(e[i]); return r }, map: function(e, t, n) { var r, i, o = 0, a = []; if (E(e)) for (r = e.length; o < r; o++) null != (i = t(e[o], o, n)) && a.push(i); else for (o in e) null != (i = t(e[o], o, n)) && a.push(i); return l(a) }, guid: 1, support: g }), "function" == typeof Symbol && (C.fn[Symbol.iterator] = o[Symbol.iterator]), C.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), (function(e, t) { f["[object " + t + "]"] = t.toLowerCase() } )); var S = function(e) { var t, n, r, i, o, a, s, l, u, c, f, d, p, h, m, g, v, y, b, x = "sizzle" + 1 * new Date, w = e.document, T = 0, k = 0, C = le(), E = le(), S = le(), A = le(), D = function(e, t) { return e === t && (f = !0), 0 }, N = {}.hasOwnProperty, j = [], L = j.pop, O = j.push, q = j.push, $ = j.slice, I = function(e, t) { for (var n = 0, r = e.length; n < r; n++) if (e[n] === t) return n; return -1 }, M = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", P = "[\\x20\\t\\r\\n\\f]", H = "(?:\\\\[\\da-fA-F]{1,6}[\\x20\\t\\r\\n\\f]?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+", R = "\\[[\\x20\\t\\r\\n\\f]*(" + H + ")(?:" + P + "*([*^$|!~]?=)" + P + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + H + "))|)" + P + "*\\]", F = ":(" + H + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + R + ")*)|.*)\\)|)", _ = new RegExp(P + "+","g"), z = new RegExp("^[\\x20\\t\\r\\n\\f]+|((?:^|[^\\\\])(?:\\\\.)*)[\\x20\\t\\r\\n\\f]+$","g"), B = new RegExp("^[\\x20\\t\\r\\n\\f]*,[\\x20\\t\\r\\n\\f]*"), W = new RegExp("^[\\x20\\t\\r\\n\\f]*([>+~]|[\\x20\\t\\r\\n\\f])[\\x20\\t\\r\\n\\f]*"), U = new RegExp(P + "|>"), X = new RegExp(F), V = new RegExp("^" + H + "$"), Q = { ID: new RegExp("^#(" + H + ")"), CLASS: new RegExp("^\\.(" + H + ")"), TAG: new RegExp("^(" + H + "|[*])"), ATTR: new RegExp("^" + R), PSEUDO: new RegExp("^" + F), CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\([\\x20\\t\\r\\n\\f]*(even|odd|(([+-]|)(\\d*)n|)[\\x20\\t\\r\\n\\f]*(?:([+-]|)[\\x20\\t\\r\\n\\f]*(\\d+)|))[\\x20\\t\\r\\n\\f]*\\)|)","i"), bool: new RegExp("^(?:" + M + ")$","i"), needsContext: new RegExp("^[\\x20\\t\\r\\n\\f]*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\([\\x20\\t\\r\\n\\f]*((?:-\\d)?\\d*)[\\x20\\t\\r\\n\\f]*\\)|)(?=[^-]|$)","i") }, Y = /HTML$/i, G = /^(?:input|select|textarea|button)$/i, J = /^h\d$/i, K = /^[^{]+\{\s*\[native \w/, Z = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, ee = /[+~]/, te = new RegExp("\\\\[\\da-fA-F]{1,6}[\\x20\\t\\r\\n\\f]?|\\\\([^\\r\\n\\f])","g"), ne = function(e, t) { var n = "0x" + e.slice(1) - 65536; return t || (n < 0 ? String.fromCharCode(n + 65536) : String.fromCharCode(n >> 10 | 55296, 1023 & n | 56320)) }, re = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, ie = function(e, t) { return t ? "\0" === e ? "�" : e.slice(0, -1) + "\\" + e.charCodeAt(e.length - 1).toString(16) + " " : "\\" + e }, oe = function() { d() }, ae = xe((function(e) { return !0 === e.disabled && "fieldset" === e.nodeName.toLowerCase() } ), { dir: "parentNode", next: "legend" }); try { q.apply(j = $.call(w.childNodes), w.childNodes), j[w.childNodes.length].nodeType } catch (e) { q = { apply: j.length ? function(e, t) { O.apply(e, $.call(t)) } : function(e, t) { for (var n = e.length, r = 0; e[n++] = t[r++]; ) ; e.length = n - 1 } } } function se(e, t, r, i) { var o, s, u, c, f, h, v, y = t && t.ownerDocument, w = t ? t.nodeType : 9; if (r = r || [], "string" != typeof e || !e || 1 !== w && 9 !== w && 11 !== w) return r; if (!i && (d(t), t = t || p, m)) { if (11 !== w && (f = Z.exec(e))) if (o = f[1]) { if (9 === w) { if (!(u = t.getElementById(o))) return r; if (u.id === o) return r.push(u), r } else if (y && (u = y.getElementById(o)) && b(t, u) && u.id === o) return r.push(u), r } else { if (f[2]) return q.apply(r, t.getElementsByTagName(e)), r; if ((o = f[3]) && n.getElementsByClassName && t.getElementsByClassName) return q.apply(r, t.getElementsByClassName(o)), r } if (n.qsa && !A[e + " "] && (!g || !g.test(e)) && (1 !== w || "object" !== t.nodeName.toLowerCase())) { if (v = e, y = t, 1 === w && (U.test(e) || W.test(e))) { for ((y = ee.test(e) && ve(t.parentNode) || t) === t && n.scope || ((c = t.getAttribute("id")) ? c = c.replace(re, ie) : t.setAttribute("id", c = x)), s = (h = a(e)).length; s--; ) h[s] = (c ? "#" + c : ":scope") + " " + be(h[s]); v = h.join(",") } try { return q.apply(r, y.querySelectorAll(v)), r } catch (t) { A(e, !0) } finally { c === x && t.removeAttribute("id") } } } return l(e.replace(z, "$1"), t, r, i) } function le() { var e = []; return function t(n, i) { return e.push(n + " ") > r.cacheLength && delete t[e.shift()], t[n + " "] = i } } function ue(e) { return e[x] = !0, e } function ce(e) { var t = p.createElement("fieldset"); try { return !!e(t) } catch (e) { return !1 } finally { t.parentNode && t.parentNode.removeChild(t), t = null } } function fe(e, t) { for (var n = e.split("|"), i = n.length; i--; ) r.attrHandle[n[i]] = t } function de(e, t) { var n = t && e , r = n && 1 === e.nodeType && 1 === t.nodeType && e.sourceIndex - t.sourceIndex; if (r) return r; if (n) for (; n = n.nextSibling; ) if (n === t) return -1; return e ? 1 : -1 } function pe(e) { return function(t) { return "input" === t.nodeName.toLowerCase() && t.type === e } } function he(e) { return function(t) { var n = t.nodeName.toLowerCase(); return ("input" === n || "button" === n) && t.type === e } } function me(e) { return function(t) { return "form"in t ? t.parentNode && !1 === t.disabled ? "label"in t ? "label"in t.parentNode ? t.parentNode.disabled === e : t.disabled === e : t.isDisabled === e || t.isDisabled !== !e && ae(t) === e : t.disabled === e : "label"in t && t.disabled === e } } function ge(e) { return ue((function(t) { return t = +t, ue((function(n, r) { for (var i, o = e([], n.length, t), a = o.length; a--; ) n[i = o[a]] && (n[i] = !(r[i] = n[i])) } )) } )) } function ve(e) { return e && void 0 !== e.getElementsByTagName && e } for (t in n = se.support = {}, o = se.isXML = function(e) { var t = e.namespaceURI , n = (e.ownerDocument || e).documentElement; return !Y.test(t || n && n.nodeName || "HTML") } , d = se.setDocument = function(e) { var t, i, a = e ? e.ownerDocument || e : w; return a != p && 9 === a.nodeType && a.documentElement ? (h = (p = a).documentElement, m = !o(p), w != p && (i = p.defaultView) && i.top !== i && (i.addEventListener ? i.addEventListener("unload", oe, !1) : i.attachEvent && i.attachEvent("onunload", oe)), n.scope = ce((function(e) { return h.appendChild(e).appendChild(p.createElement("div")), void 0 !== e.querySelectorAll && !e.querySelectorAll(":scope fieldset div").length } )), n.attributes = ce((function(e) { return e.className = "i", !e.getAttribute("className") } )), n.getElementsByTagName = ce((function(e) { return e.appendChild(p.createComment("")), !e.getElementsByTagName("*").length } )), n.getElementsByClassName = K.test(p.getElementsByClassName), n.getById = ce((function(e) { return h.appendChild(e).id = x, !p.getElementsByName || !p.getElementsByName(x).length } )), n.getById ? (r.filter.ID = function(e) { var t = e.replace(te, ne); return function(e) { return e.getAttribute("id") === t } } , r.find.ID = function(e, t) { if (void 0 !== t.getElementById && m) { var n = t.getElementById(e); return n ? [n] : [] } } ) : (r.filter.ID = function(e) { var t = e.replace(te, ne); return function(e) { var n = void 0 !== e.getAttributeNode && e.getAttributeNode("id"); return n && n.value === t } } , r.find.ID = function(e, t) { if (void 0 !== t.getElementById && m) { var n, r, i, o = t.getElementById(e); if (o) { if ((n = o.getAttributeNode("id")) && n.value === e) return [o]; for (i = t.getElementsByName(e), r = 0; o = i[r++]; ) if ((n = o.getAttributeNode("id")) && n.value === e) return [o] } return [] } } ), r.find.TAG = n.getElementsByTagName ? function(e, t) { return void 0 !== t.getElementsByTagName ? t.getElementsByTagName(e) : n.qsa ? t.querySelectorAll(e) : void 0 } : function(e, t) { var n, r = [], i = 0, o = t.getElementsByTagName(e); if ("*" === e) { for (; n = o[i++]; ) 1 === n.nodeType && r.push(n); return r } return o } , r.find.CLASS = n.getElementsByClassName && function(e, t) { if (void 0 !== t.getElementsByClassName && m) return t.getElementsByClassName(e) } , v = [], g = [], (n.qsa = K.test(p.querySelectorAll)) && (ce((function(e) { var t; h.appendChild(e).innerHTML = "<a id='" + x + "'></a><select id='" + x + "-\r\\' msallowcapture=''><option selected=''></option></select>", e.querySelectorAll("[msallowcapture^='']").length && g.push("[*^$]=[\\x20\\t\\r\\n\\f]*(?:''|\"\")"), e.querySelectorAll("[selected]").length || g.push("\\[[\\x20\\t\\r\\n\\f]*(?:value|" + M + ")"), e.querySelectorAll("[id~=" + x + "-]").length || g.push("~="), (t = p.createElement("input")).setAttribute("name", ""), e.appendChild(t), e.querySelectorAll("[name='']").length || g.push("\\[[\\x20\\t\\r\\n\\f]*name[\\x20\\t\\r\\n\\f]*=[\\x20\\t\\r\\n\\f]*(?:''|\"\")"), e.querySelectorAll(":checked").length || g.push(":checked"), e.querySelectorAll("a#" + x + "+*").length || g.push(".#.+[+~]"), e.querySelectorAll("\\\f"), g.push("[\\r\\n\\f]") } )), ce((function(e) { e.innerHTML = "<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>"; var t = p.createElement("input"); t.setAttribute("type", "hidden"), e.appendChild(t).setAttribute("name", "D"), e.querySelectorAll("[name=d]").length && g.push("name[\\x20\\t\\r\\n\\f]*[*^$|!~]?="), 2 !== e.querySelectorAll(":enabled").length && g.push(":enabled", ":disabled"), h.appendChild(e).disabled = !0, 2 !== e.querySelectorAll(":disabled").length && g.push(":enabled", ":disabled"), e.querySelectorAll("*,:x"), g.push(",.*:") } ))), (n.matchesSelector = K.test(y = h.matches || h.webkitMatchesSelector || h.mozMatchesSelector || h.oMatchesSelector || h.msMatchesSelector)) && ce((function(e) { n.disconnectedMatch = y.call(e, "*"), y.call(e, "[s!='']:x"), v.push("!=", F) } )), g = g.length && new RegExp(g.join("|")), v = v.length && new RegExp(v.join("|")), t = K.test(h.compareDocumentPosition), b = t || K.test(h.contains) ? function(e, t) { var n = 9 === e.nodeType ? e.documentElement : e , r = t && t.parentNode; return e === r || !(!r || 1 !== r.nodeType || !(n.contains ? n.contains(r) : e.compareDocumentPosition && 16 & e.compareDocumentPosition(r))) } : function(e, t) { if (t) for (; t = t.parentNode; ) if (t === e) return !0; return !1 } , D = t ? function(e, t) { if (e === t) return f = !0, 0; var r = !e.compareDocumentPosition - !t.compareDocumentPosition; return r || (1 & (r = (e.ownerDocument || e) == (t.ownerDocument || t) ? e.compareDocumentPosition(t) : 1) || !n.sortDetached && t.compareDocumentPosition(e) === r ? e == p || e.ownerDocument == w && b(w, e) ? -1 : t == p || t.ownerDocument == w && b(w, t) ? 1 : c ? I(c, e) - I(c, t) : 0 : 4 & r ? -1 : 1) } : function(e, t) { if (e === t) return f = !0, 0; var n, r = 0, i = e.parentNode, o = t.parentNode, a = [e], s = [t]; if (!i || !o) return e == p ? -1 : t == p ? 1 : i ? -1 : o ? 1 : c ? I(c, e) - I(c, t) : 0; if (i === o) return de(e, t); for (n = e; n = n.parentNode; ) a.unshift(n); for (n = t; n = n.parentNode; ) s.unshift(n); for (; a[r] === s[r]; ) r++; return r ? de(a[r], s[r]) : a[r] == w ? -1 : s[r] == w ? 1 : 0 } , p) : p } , se.matches = function(e, t) { return se(e, null, null, t) } , se.matchesSelector = function(e, t) { if (d(e), n.matchesSelector && m && !A[t + " "] && (!v || !v.test(t)) && (!g || !g.test(t))) try { var r = y.call(e, t); if (r || n.disconnectedMatch || e.document && 11 !== e.document.nodeType) return r } catch (e) { A(t, !0) } return se(t, p, null, [e]).length > 0 } , se.contains = function(e, t) { return (e.ownerDocument || e) != p && d(e), b(e, t) } , se.attr = function(e, t) { (e.ownerDocument || e) != p && d(e); var i = r.attrHandle[t.toLowerCase()] , o = i && N.call(r.attrHandle, t.toLowerCase()) ? i(e, t, !m) : void 0; return void 0 !== o ? o : n.attributes || !m ? e.getAttribute(t) : (o = e.getAttributeNode(t)) && o.specified ? o.value : null } , se.escape = function(e) { return (e + "").replace(re, ie) } , se.error = function(e) { throw new Error("Syntax error, unrecognized expression: " + e) } , se.uniqueSort = function(e) { var t, r = [], i = 0, o = 0; if (f = !n.detectDuplicates, c = !n.sortStable && e.slice(0), e.sort(D), f) { for (; t = e[o++]; ) t === e[o] && (i = r.push(o)); for (; i--; ) e.splice(r[i], 1) } return c = null, e } , i = se.getText = function(e) { var t, n = "", r = 0, o = e.nodeType; if (o) { if (1 === o || 9 === o || 11 === o) { if ("string" == typeof e.textContent) return e.textContent; for (e = e.firstChild; e; e = e.nextSibling) n += i(e) } else if (3 === o || 4 === o) return e.nodeValue } else for (; t = e[r++]; ) n += i(t); return n } , (r = se.selectors = { cacheLength: 50, createPseudo: ue, match: Q, attrHandle: {}, find: {}, relative: { ">": { dir: "parentNode", first: !0 }, " ": { dir: "parentNode" }, "+": { dir: "previousSibling", first: !0 }, "~": { dir: "previousSibling" } }, preFilter: { ATTR: function(e) { return e[1] = e[1].replace(te, ne), e[3] = (e[3] || e[4] || e[5] || "").replace(te, ne), "~=" === e[2] && (e[3] = " " + e[3] + " "), e.slice(0, 4) }, CHILD: function(e) { return e[1] = e[1].toLowerCase(), "nth" === e[1].slice(0, 3) ? (e[3] || se.error(e[0]), e[4] = +(e[4] ? e[5] + (e[6] || 1) : 2 * ("even" === e[3] || "odd" === e[3])), e[5] = +(e[7] + e[8] || "odd" === e[3])) : e[3] && se.error(e[0]), e }, PSEUDO: function(e) { var t, n = !e[6] && e[2]; return Q.CHILD.test(e[0]) ? null : (e[3] ? e[2] = e[4] || e[5] || "" : n && X.test(n) && (t = a(n, !0)) && (t = n.indexOf(")", n.length - t) - n.length) && (e[0] = e[0].slice(0, t), e[2] = n.slice(0, t)), e.slice(0, 3)) } }, filter: { TAG: function(e) { var t = e.replace(te, ne).toLowerCase(); return "*" === e ? function() { return !0 } : function(e) { return e.nodeName && e.nodeName.toLowerCase() === t } }, CLASS: function(e) { var t = C[e + " "]; return t || (t = new RegExp("(^|[\\x20\\t\\r\\n\\f])" + e + "(" + P + "|$)")) && C(e, (function(e) { return t.test("string" == typeof e.className && e.className || void 0 !== e.getAttribute && e.getAttribute("class") || "") } )) }, ATTR: function(e, t, n) { return function(r) { var i = se.attr(r, e); return null == i ? "!=" === t : !t || (i += "", "=" === t ? i === n : "!=" === t ? i !== n : "^=" === t ? n && 0 === i.indexOf(n) : "*=" === t ? n && i.indexOf(n) > -1 : "$=" === t ? n && i.slice(-n.length) === n : "~=" === t ? (" " + i.replace(_, " ") + " ").indexOf(n) > -1 : "|=" === t && (i === n || i.slice(0, n.length + 1) === n + "-")) } }, CHILD: function(e, t, n, r, i) { var o = "nth" !== e.slice(0, 3) , a = "last" !== e.slice(-4) , s = "of-type" === t; return 1 === r && 0 === i ? function(e) { return !!e.parentNode } : function(t, n, l) { var u, c, f, d, p, h, m = o !== a ? "nextSibling" : "previousSibling", g = t.parentNode, v = s && t.nodeName.toLowerCase(), y = !l && !s, b = !1; if (g) { if (o) { for (; m; ) { for (d = t; d = d[m]; ) if (s ? d.nodeName.toLowerCase() === v : 1 === d.nodeType) return !1; h = m = "only" === e && !h && "nextSibling" } return !0 } if (h = [a ? g.firstChild : g.lastChild], a && y) { for (b = (p = (u = (c = (f = (d = g)[x] || (d[x] = {}))[d.uniqueID] || (f[d.uniqueID] = {}))[e] || [])[0] === T && u[1]) && u[2], d = p && g.childNodes[p]; d = ++p && d && d[m] || (b = p = 0) || h.pop(); ) if (1 === d.nodeType && ++b && d === t) { c[e] = [T, p, b]; break } } else if (y && (b = p = (u = (c = (f = (d = t)[x] || (d[x] = {}))[d.uniqueID] || (f[d.uniqueID] = {}))[e] || [])[0] === T && u[1]), !1 === b) for (; (d = ++p && d && d[m] || (b = p = 0) || h.pop()) && ((s ? d.nodeName.toLowerCase() !== v : 1 !== d.nodeType) || !++b || (y && ((c = (f = d[x] || (d[x] = {}))[d.uniqueID] || (f[d.uniqueID] = {}))[e] = [T, b]), d !== t)); ) ; return (b -= i) === r || b % r == 0 && b / r >= 0 } } }, PSEUDO: function(e, t) { var n, i = r.pseudos[e] || r.setFilters[e.toLowerCase()] || se.error("unsupported pseudo: " + e); return i[x] ? i(t) : i.length > 1 ? (n = [e, e, "", t], r.setFilters.hasOwnProperty(e.toLowerCase()) ? ue((function(e, n) { for (var r, o = i(e, t), a = o.length; a--; ) e[r = I(e, o[a])] = !(n[r] = o[a]) } )) : function(e) { return i(e, 0, n) } ) : i } }, pseudos: { not: ue((function(e) { var t = [] , n = [] , r = s(e.replace(z, "$1")); return r[x] ? ue((function(e, t, n, i) { for (var o, a = r(e, null, i, []), s = e.length; s--; ) (o = a[s]) && (e[s] = !(t[s] = o)) } )) : function(e, i, o) { return t[0] = e, r(t, null, o, n), t[0] = null, !n.pop() } } )), has: ue((function(e) { return function(t) { return se(e, t).length > 0 } } )), contains: ue((function(e) { return e = e.replace(te, ne), function(t) { return (t.textContent || i(t)).indexOf(e) > -1 } } )), lang: ue((function(e) { return V.test(e || "") || se.error("unsupported lang: " + e), e = e.replace(te, ne).toLowerCase(), function(t) { var n; do { if (n = m ? t.lang : t.getAttribute("xml:lang") || t.getAttribute("lang")) return (n = n.toLowerCase()) === e || 0 === n.indexOf(e + "-") } while ((t = t.parentNode) && 1 === t.nodeType); return !1 } } )), target: function(t) { var n = e.location && e.location.hash; return n && n.slice(1) === t.id }, root: function(e) { return e === h }, focus: function(e) { return e === p.activeElement && (!p.hasFocus || p.hasFocus()) && !!(e.type || e.href || ~e.tabIndex) }, enabled: me(!1), disabled: me(!0), checked: function(e) { var t = e.nodeName.toLowerCase(); return "input" === t && !!e.checked || "option" === t && !!e.selected }, selected: function(e) { return e.parentNode && e.parentNode.selectedIndex, !0 === e.selected }, empty: function(e) { for (e = e.firstChild; e; e = e.nextSibling) if (e.nodeType < 6) return !1; return !0 }, parent: function(e) { return !r.pseudos.empty(e) }, header: function(e) { return J.test(e.nodeName) }, input: function(e) { return G.test(e.nodeName) }, button: function(e) { var t = e.nodeName.toLowerCase(); return "input" === t && "button" === e.type || "button" === t }, text: function(e) { var t; return "input" === e.nodeName.toLowerCase() && "text" === e.type && (null == (t = e.getAttribute("type")) || "text" === t.toLowerCase()) }, first: ge((function() { return [0] } )), last: ge((function(e, t) { return [t - 1] } )), eq: ge((function(e, t, n) { return [n < 0 ? n + t : n] } )), even: ge((function(e, t) { for (var n = 0; n < t; n += 2) e.push(n); return e } )), odd: ge((function(e, t) { for (var n = 1; n < t; n += 2) e.push(n); return e } )), lt: ge((function(e, t, n) { for (var r = n < 0 ? n + t : n > t ? t : n; --r >= 0; ) e.push(r); return e } )), gt: ge((function(e, t, n) { for (var r = n < 0 ? n + t : n; ++r < t; ) e.push(r); return e } )) } }).pseudos.nth = r.pseudos.eq, { radio: !0, checkbox: !0, file: !0, password: !0, image: !0 }) r.pseudos[t] = pe(t); for (t in { submit: !0, reset: !0 }) r.pseudos[t] = he(t); function ye() {} function be(e) { for (var t = 0, n = e.length, r = ""; t < n; t++) r += e[t].value; return r } function xe(e, t, n) { var r = t.dir , i = t.next , o = i || r , a = n && "parentNode" === o , s = k++; return t.first ? function(t, n, i) { for (; t = t[r]; ) if (1 === t.nodeType || a) return e(t, n, i); return !1 } : function(t, n, l) { var u, c, f, d = [T, s]; if (l) { for (; t = t[r]; ) if ((1 === t.nodeType || a) && e(t, n, l)) return !0 } else for (; t = t[r]; ) if (1 === t.nodeType || a) if (c = (f = t[x] || (t[x] = {}))[t.uniqueID] || (f[t.uniqueID] = {}), i && i === t.nodeName.toLowerCase()) t = t[r] || t; else { if ((u = c[o]) && u[0] === T && u[1] === s) return d[2] = u[2]; if (c[o] = d, d[2] = e(t, n, l)) return !0 } return !1 } } function we(e) { return e.length > 1 ? function(t, n, r) { for (var i = e.length; i--; ) if (!e[i](t, n, r)) return !1; return !0 } : e[0] } function Te(e, t, n, r, i) { for (var o, a = [], s = 0, l = e.length, u = null != t; s < l; s++) (o = e[s]) && (n && !n(o, r, i) || (a.push(o), u && t.push(s))); return a } function ke(e, t, n, r, i, o) { return r && !r[x] && (r = ke(r)), i && !i[x] && (i = ke(i, o)), ue((function(o, a, s, l) { var u, c, f, d = [], p = [], h = a.length, m = o || function(e, t, n) { for (var r = 0, i = t.length; r < i; r++) se(e, t[r], n); return n }(t || "*", s.nodeType ? [s] : s, []), g = !e || !o && t ? m : Te(m, d, e, s, l), v = n ? i || (o ? e : h || r) ? [] : a : g; if (n && n(g, v, s, l), r) for (u = Te(v, p), r(u, [], s, l), c = u.length; c--; ) (f = u[c]) && (v[p[c]] = !(g[p[c]] = f)); if (o) { if (i || e) { if (i) { for (u = [], c = v.length; c--; ) (f = v[c]) && u.push(g[c] = f); i(null, v = [], u, l) } for (c = v.length; c--; ) (f = v[c]) && (u = i ? I(o, f) : d[c]) > -1 && (o[u] = !(a[u] = f)) } } else v = Te(v === a ? v.splice(h, v.length) : v), i ? i(null, a, v, l) : q.apply(a, v) } )) } function Ce(e) { for (var t, n, i, o = e.length, a = r.relative[e[0].type], s = a || r.relative[" "], l = a ? 1 : 0, c = xe((function(e) { return e === t } ), s, !0), f = xe((function(e) { return I(t, e) > -1 } ), s, !0), d = [function(e, n, r) { var i = !a && (r || n !== u) || ((t = n).nodeType ? c(e, n, r) : f(e, n, r)); return t = null, i } ]; l < o; l++) if (n = r.relative[e[l].type]) d = [xe(we(d), n)]; else { if ((n = r.filter[e[l].type].apply(null, e[l].matches))[x]) { for (i = ++l; i < o && !r.relative[e[i].type]; i++) ; return ke(l > 1 && we(d), l > 1 && be(e.slice(0, l - 1).concat({ value: " " === e[l - 2].type ? "*" : "" })).replace(z, "$1"), n, l < i && Ce(e.slice(l, i)), i < o && Ce(e = e.slice(i)), i < o && be(e)) } d.push(n) } return we(d) } return ye.prototype = r.filters = r.pseudos, r.setFilters = new ye, a = se.tokenize = function(e, t) { var n, i, o, a, s, l, u, c = E[e + " "]; if (c) return t ? 0 : c.slice(0); for (s = e, l = [], u = r.preFilter; s; ) { for (a in n && !(i = B.exec(s)) || (i && (s = s.slice(i[0].length) || s), l.push(o = [])), n = !1, (i = W.exec(s)) && (n = i.shift(), o.push({ value: n, type: i[0].replace(z, " ") }), s = s.slice(n.length)), r.filter) !(i = Q[a].exec(s)) || u[a] && !(i = u[a](i)) || (n = i.shift(), o.push({ value: n, type: a, matches: i }), s = s.slice(n.length)); if (!n) break } return t ? s.length : s ? se.error(e) : E(e, l).slice(0) } , s = se.compile = function(e, t) { var n, i = [], o = [], s = S[e + " "]; if (!s) { for (t || (t = a(e)), n = t.length; n--; ) (s = Ce(t[n]))[x] ? i.push(s) : o.push(s); (s = S(e, function(e, t) { var n = t.length > 0 , i = e.length > 0 , o = function(o, a, s, l, c) { var f, h, g, v = 0, y = "0", b = o && [], x = [], w = u, k = o || i && r.find.TAG("*", c), C = T += null == w ? 1 : Math.random() || .1, E = k.length; for (c && (u = a == p || a || c); y !== E && null != (f = k[y]); y++) { if (i && f) { for (h = 0, a || f.ownerDocument == p || (d(f), s = !m); g = e[h++]; ) if (g(f, a || p, s)) { l.push(f); break } c && (T = C) } n && ((f = !g && f) && v--, o && b.push(f)) } if (v += y, n && y !== v) { for (h = 0; g = t[h++]; ) g(b, x, a, s); if (o) { if (v > 0) for (; y--; ) b[y] || x[y] || (x[y] = L.call(l)); x = Te(x) } q.apply(l, x), c && !o && x.length > 0 && v + t.length > 1 && se.uniqueSort(l) } return c && (T = C, u = w), b }; return n ? ue(o) : o }(o, i))).selector = e } return s } , l = se.select = function(e, t, n, i) { var o, l, u, c, f, d = "function" == typeof e && e, p = !i && a(e = d.selector || e); if (n = n || [], 1 === p.length) { if ((l = p[0] = p[0].slice(0)).length > 2 && "ID" === (u = l[0]).type && 9 === t.nodeType && m && r.relative[l[1].type]) { if (!(t = (r.find.ID(u.matches[0].replace(te, ne), t) || [])[0])) return n; d && (t = t.parentNode), e = e.slice(l.shift().value.length) } for (o = Q.needsContext.test(e) ? 0 : l.length; o-- && (u = l[o], !r.relative[c = u.type]); ) if ((f = r.find[c]) && (i = f(u.matches[0].replace(te, ne), ee.test(l[0].type) && ve(t.parentNode) || t))) { if (l.splice(o, 1), !(e = i.length && be(l))) return q.apply(n, i), n; break } } return (d || s(e, p))(i, t, !m, n, !t || ee.test(e) && ve(t.parentNode) || t), n } , n.sortStable = x.split("").sort(D).join("") === x, n.detectDuplicates = !!f, d(), n.sortDetached = ce((function(e) { return 1 & e.compareDocumentPosition(p.createElement("fieldset")) } )), ce((function(e) { return e.innerHTML = "<a href='#'></a>", "#" === e.firstChild.getAttribute("href") } )) || fe("type|href|height|width", (function(e, t, n) { if (!n) return e.getAttribute(t, "type" === t.toLowerCase() ? 1 : 2) } )), n.attributes && ce((function(e) { return e.innerHTML = "<input/>", e.firstChild.setAttribute("value", ""), "" === e.firstChild.getAttribute("value") } )) || fe("value", (function(e, t, n) { if (!n && "input" === e.nodeName.toLowerCase()) return e.defaultValue } )), ce((function(e) { return null == e.getAttribute("disabled") } )) || fe(M, (function(e, t, n) { var r; if (!n) return !0 === e[t] ? t.toLowerCase() : (r = e.getAttributeNode(t)) && r.specified ? r.value : null } )), se }(r); C.find = S, C.expr = S.selectors, C.expr[":"] = C.expr.pseudos, C.uniqueSort = C.unique = S.uniqueSort, C.text = S.getText, C.isXMLDoc = S.isXML, C.contains = S.contains, C.escapeSelector = S.escape; var A = function(e, t, n) { for (var r = [], i = void 0 !== n; (e = e[t]) && 9 !== e.nodeType; ) if (1 === e.nodeType) { if (i && C(e).is(n)) break; r.push(e) } return r } , D = function(e, t) { for (var n = []; e; e = e.nextSibling) 1 === e.nodeType && e !== t && n.push(e); return n } , N = C.expr.match.needsContext; function j(e, t) { return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase() } var L = /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i; function O(e, t, n) { return v(t) ? C.grep(e, (function(e, r) { return !!t.call(e, r, e) !== n } )) : t.nodeType ? C.grep(e, (function(e) { return e === t !== n } )) : "string" != typeof t ? C.grep(e, (function(e) { return c.call(t, e) > -1 !== n } )) : C.filter(t, e, n) } C.filter = function(e, t, n) { var r = t[0]; return n && (e = ":not(" + e + ")"), 1 === t.length && 1 === r.nodeType ? C.find.matchesSelector(r, e) ? [r] : [] : C.find.matches(e, C.grep(t, (function(e) { return 1 === e.nodeType } ))) } , C.fn.extend({ find: function(e) { var t, n, r = this.length, i = this; if ("string" != typeof e) return this.pushStack(C(e).filter((function() { for (t = 0; t < r; t++) if (C.contains(i[t], this)) return !0 } ))); for (n = this.pushStack([]), t = 0; t < r; t++) C.find(e, i[t], n); return r > 1 ? C.uniqueSort(n) : n }, filter: function(e) { return this.pushStack(O(this, e || [], !1)) }, not: function(e) { return this.pushStack(O(this, e || [], !0)) }, is: function(e) { return !!O(this, "string" == typeof e && N.test(e) ? C(e) : e || [], !1).length } }); var q, $ = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/; (C.fn.init = function(e, t, n) { var r, i; if (!e) return this; if (n = n || q, "string" == typeof e) { if (!(r = "<" === e[0] && ">" === e[e.length - 1] && e.length >= 3 ? [null, e, null] : $.exec(e)) || !r[1] && t) return !t || t.jquery ? (t || n).find(e) : this.constructor(t).find(e); if (r[1]) { if (t = t instanceof C ? t[0] : t, C.merge(this, C.parseHTML(r[1], t && t.nodeType ? t.ownerDocument || t : b, !0)), L.test(r[1]) && C.isPlainObject(t)) for (r in t) v(this[r]) ? this[r](t[r]) : this.attr(r, t[r]); return this } return (i = b.getElementById(r[2])) && (this[0] = i, this.length = 1), this } return e.nodeType ? (this[0] = e, this.length = 1, this) : v(e) ? void 0 !== n.ready ? n.ready(e) : e(C) : C.makeArray(e, this) } ).prototype = C.fn, q = C(b); var I = /^(?:parents|prev(?:Until|All))/ , M = { children: !0, contents: !0, next: !0, prev: !0 }; function P(e, t) { for (; (e = e[t]) && 1 !== e.nodeType; ) ; return e } C.fn.extend({ has: function(e) { var t = C(e, this) , n = t.length; return this.filter((function() { for (var e = 0; e < n; e++) if (C.contains(this, t[e])) return !0 } )) }, closest: function(e, t) { var n, r = 0, i = this.length, o = [], a = "string" != typeof e && C(e); if (!N.test(e)) for (; r < i; r++) for (n = this[r]; n && n !== t; n = n.parentNode) if (n.nodeType < 11 && (a ? a.index(n) > -1 : 1 === n.nodeType && C.find.matchesSelector(n, e))) { o.push(n); break } return this.pushStack(o.length > 1 ? C.uniqueSort(o) : o) }, index: function(e) { return e ? "string" == typeof e ? c.call(C(e), this[0]) : c.call(this, e.jquery ? e[0] : e) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1 }, add: function(e, t) { return this.pushStack(C.uniqueSort(C.merge(this.get(), C(e, t)))) }, addBack: function(e) { return this.add(null == e ? this.prevObject : this.prevObject.filter(e)) } }), C.each({ parent: function(e) { var t = e.parentNode; return t && 11 !== t.nodeType ? t : null }, parents: function(e) { return A(e, "parentNode") }, parentsUntil: function(e, t, n) { return A(e, "parentNode", n) }, next: function(e) { return P(e, "nextSibling") }, prev: function(e) { return P(e, "previousSibling") }, nextAll: function(e) { return A(e, "nextSibling") }, prevAll: function(e) { return A(e, "previousSibling") }, nextUntil: function(e, t, n) { return A(e, "nextSibling", n) }, prevUntil: function(e, t, n) { return A(e, "previousSibling", n) }, siblings: function(e) { return D((e.parentNode || {}).firstChild, e) }, children: function(e) { return D(e.firstChild) }, contents: function(e) { return null != e.contentDocument && a(e.contentDocument) ? e.contentDocument : (j(e, "template") && (e = e.content || e), C.merge([], e.childNodes)) } }, (function(e, t) { C.fn[e] = function(n, r) { var i = C.map(this, t, n); return "Until" !== e.slice(-5) && (r = n), r && "string" == typeof r && (i = C.filter(r, i)), this.length > 1 && (M[e] || C.uniqueSort(i), I.test(e) && i.reverse()), this.pushStack(i) } } )); var H = /[^\x20\t\r\n\f]+/g; function R(e) { return e } function F(e) { throw e } function _(e, t, n, r) { var i; try { e && v(i = e.promise) ? i.call(e).done(t).fail(n) : e && v(i = e.then) ? i.call(e, t, n) : t.apply(void 0, [e].slice(r)) } catch (e) { n.apply(void 0, [e]) } } C.Callbacks = function(e) { e = "string" == typeof e ? function(e) { var t = {}; return C.each(e.match(H) || [], (function(e, n) { t[n] = !0 } )), t }(e) : C.extend({}, e); var t, n, r, i, o = [], a = [], s = -1, l = function() { for (i = i || e.once, r = t = !0; a.length; s = -1) for (n = a.shift(); ++s < o.length; ) !1 === o[s].apply(n[0], n[1]) && e.stopOnFalse && (s = o.length, n = !1); e.memory || (n = !1), t = !1, i && (o = n ? [] : "") }, u = { add: function() { return o && (n && !t && (s = o.length - 1, a.push(n)), function t(n) { C.each(n, (function(n, r) { v(r) ? e.unique && u.has(r) || o.push(r) : r && r.length && "string" !== T(r) && t(r) } )) }(arguments), n && !t && l()), this }, remove: function() { return C.each(arguments, (function(e, t) { for (var n; (n = C.inArray(t, o, n)) > -1; ) o.splice(n, 1), n <= s && s-- } )), this }, has: function(e) { return e ? C.inArray(e, o) > -1 : o.length > 0 }, empty: function() { return o && (o = []), this }, disable: function() { return i = a = [], o = n = "", this }, disabled: function() { return !o }, lock: function() { return i = a = [], n || t || (o = n = ""), this }, locked: function() { return !!i }, fireWith: function(e, n) { return i || (n = [e, (n = n || []).slice ? n.slice() : n], a.push(n), t || l()), this }, fire: function() { return u.fireWith(this, arguments), this }, fired: function() { return !!r } }; return u } , C.extend({ Deferred: function(e) { var t = [["notify", "progress", C.Callbacks("memory"), C.Callbacks("memory"), 2], ["resolve", "done", C.Callbacks("once memory"), C.Callbacks("once memory"), 0, "resolved"], ["reject", "fail", C.Callbacks("once memory"), C.Callbacks("once memory"), 1, "rejected"]] , n = "pending" , i = { state: function() { return n }, always: function() { return o.done(arguments).fail(arguments), this }, catch: function(e) { return i.then(null, e) }, pipe: function() { var e = arguments; return C.Deferred((function(n) { C.each(t, (function(t, r) { var i = v(e[r[4]]) && e[r[4]]; o[r[1]]((function() { var e = i && i.apply(this, arguments); e && v(e.promise) ? e.promise().progress(n.notify).done(n.resolve).fail(n.reject) : n[r[0] + "With"](this, i ? [e] : arguments) } )) } )), e = null } )).promise() }, then: function(e, n, i) { var o = 0; function a(e, t, n, i) { return function() { var s = this , l = arguments , u = function() { var r, u; if (!(e < o)) { if ((r = n.apply(s, l)) === t.promise()) throw new TypeError("Thenable self-resolution"); u = r && ("object" == typeof r || "function" == typeof r) && r.then, v(u) ? i ? u.call(r, a(o, t, R, i), a(o, t, F, i)) : (o++, u.call(r, a(o, t, R, i), a(o, t, F, i), a(o, t, R, t.notifyWith))) : (n !== R && (s = void 0, l = [r]), (i || t.resolveWith)(s, l)) } } , c = i ? u : function() { try { u() } catch (r) { C.Deferred.exceptionHook && C.Deferred.exceptionHook(r, c.stackTrace), e + 1 >= o && (n !== F && (s = void 0, l = [r]), t.rejectWith(s, l)) } } ; e ? c() : (C.Deferred.getStackHook && (c.stackTrace = C.Deferred.getStackHook()), r.setTimeout(c)) } } return C.Deferred((function(r) { t[0][3].add(a(0, r, v(i) ? i : R, r.notifyWith)), t[1][3].add(a(0, r, v(e) ? e : R)), t[2][3].add(a(0, r, v(n) ? n : F)) } )).promise() }, promise: function(e) { return null != e ? C.extend(e, i) : i } } , o = {}; return C.each(t, (function(e, r) { var a = r[2] , s = r[5]; i[r[1]] = a.add, s && a.add((function() { n = s } ), t[3 - e][2].disable, t[3 - e][3].disable, t[0][2].lock, t[0][3].lock), a.add(r[3].fire), o[r[0]] = function() { return o[r[0] + "With"](this === o ? void 0 : this, arguments), this } , o[r[0] + "With"] = a.fireWith } )), i.promise(o), e && e.call(o, o), o }, when: function(e) { var t = arguments.length , n = t , r = Array(n) , i = s.call(arguments) , o = C.Deferred() , a = function(e) { return function(n) { r[e] = this, i[e] = arguments.length > 1 ? s.call(arguments) : n, --t || o.resolveWith(r, i) } }; if (t <= 1 && (_(e, o.done(a(n)).resolve, o.reject, !t), "pending" === o.state() || v(i[n] && i[n].then))) return o.then(); for (; n--; ) _(i[n], a(n), o.reject); return o.promise() } }); var z = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; C.Deferred.exceptionHook = function(e, t) { r.console && r.console.warn && e && z.test(e.name) && r.console.warn("jQuery.Deferred exception: " + e.message, e.stack, t) } , C.readyException = function(e) { r.setTimeout((function() { throw e } )) } ; var B = C.Deferred(); function W() { b.removeEventListener("DOMContentLoaded", W), r.removeEventListener("load", W), C.ready() } C.fn.ready = function(e) { return B.then(e).catch((function(e) { C.readyException(e) } )), this } , C.extend({ isReady: !1, readyWait: 1, ready: function(e) { (!0 === e ? --C.readyWait : C.isReady) || (C.isReady = !0, !0 !== e && --C.readyWait > 0 || B.resolveWith(b, [C])) } }), C.ready.then = B.then, "complete" === b.readyState || "loading" !== b.readyState && !b.documentElement.doScroll ? r.setTimeout(C.ready) : (b.addEventListener("DOMContentLoaded", W), r.addEventListener("load", W)); var U = function(e, t, n, r, i, o, a) { var s = 0 , l = e.length , u = null == n; if ("object" === T(n)) for (s in i = !0, n) U(e, t, s, n[s], !0, o, a); else if (void 0 !== r && (i = !0, v(r) || (a = !0), u && (a ? (t.call(e, r), t = null) : (u = t, t = function(e, t, n) { return u.call(C(e), n) } )), t)) for (; s < l; s++) t(e[s], n, a ? r : r.call(e[s], s, t(e[s], n))); return i ? e : u ? t.call(e) : l ? t(e[0], n) : o } , X = /^-ms-/ , V = /-([a-z])/g; function Q(e, t) { return t.toUpperCase() } function Y(e) { return e.replace(X, "ms-").replace(V, Q) } var G = function(e) { return 1 === e.nodeType || 9 === e.nodeType || !+e.nodeType }; function J() { this.expando = C.expando + J.uid++ } J.uid = 1, J.prototype = { cache: function(e) { var t = e[this.expando]; return t || (t = {}, G(e) && (e.nodeType ? e[this.expando] = t : Object.defineProperty(e, this.expando, { value: t, configurable: !0 }))), t }, set: function(e, t, n) { var r, i = this.cache(e); if ("string" == typeof t) i[Y(t)] = n; else for (r in t) i[Y(r)] = t[r]; return i }, get: function(e, t) { return void 0 === t ? this.cache(e) : e[this.expando] && e[this.expando][Y(t)] }, access: function(e, t, n) { return void 0 === t || t && "string" == typeof t && void 0 === n ? this.get(e, t) : (this.set(e, t, n), void 0 !== n ? n : t) }, remove: function(e, t) { var n, r = e[this.expando]; if (void 0 !== r) { if (void 0 !== t) { n = (t = Array.isArray(t) ? t.map(Y) : (t = Y(t))in r ? [t] : t.match(H) || []).length; for (; n--; ) delete r[t[n]] } (void 0 === t || C.isEmptyObject(r)) && (e.nodeType ? e[this.expando] = void 0 : delete e[this.expando]) } }, hasData: function(e) { var t = e[this.expando]; return void 0 !== t && !C.isEmptyObject(t) } }; var K = new J , Z = new J , ee = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/ , te = /[A-Z]/g; function ne(e, t, n) { var r; if (void 0 === n && 1 === e.nodeType) if (r = "data-" + t.replace(te, "-$&").toLowerCase(), "string" == typeof (n = e.getAttribute(r))) { try { n = function(e) { return "true" === e || "false" !== e && ("null" === e ? null : e === +e + "" ? +e : ee.test(e) ? JSON.parse(e) : e) }(n) } catch (e) {} Z.set(e, t, n) } else n = void 0; return n } C.extend({ hasData: function(e) { return Z.hasData(e) || K.hasData(e) }, data: function(e, t, n) { return Z.access(e, t, n) }, removeData: function(e, t) { Z.remove(e, t) }, _data: function(e, t, n) { return K.access(e, t, n) }, _removeData: function(e, t) { K.remove(e, t) } }), C.fn.extend({ data: function(e, t) { var n, r, i, o = this[0], a = o && o.attributes; if (void 0 === e) { if (this.length && (i = Z.get(o), 1 === o.nodeType && !K.get(o, "hasDataAttrs"))) { for (n = a.length; n--; ) a[n] && 0 === (r = a[n].name).indexOf("data-") && (r = Y(r.slice(5)), ne(o, r, i[r])); K.set(o, "hasDataAttrs", !0) } return i } return "object" == typeof e ? this.each((function() { Z.set(this, e) } )) : U(this, (function(t) { var n; if (o && void 0 === t) return void 0 !== (n = Z.get(o, e)) || void 0 !== (n = ne(o, e)) ? n : void 0; this.each((function() { Z.set(this, e, t) } )) } ), null, t, arguments.length > 1, null, !0) }, removeData: function(e) { return this.each((function() { Z.remove(this, e) } )) } }), C.extend({ queue: function(e, t, n) { var r; if (e) return t = (t || "fx") + "queue", r = K.get(e, t), n && (!r || Array.isArray(n) ? r = K.access(e, t, C.makeArray(n)) : r.push(n)), r || [] }, dequeue: function(e, t) { t = t || "fx"; var n = C.queue(e, t) , r = n.length , i = n.shift() , o = C._queueHooks(e, t); "inprogress" === i && (i = n.shift(), r--), i && ("fx" === t && n.unshift("inprogress"), delete o.stop, i.call(e, (function() { C.dequeue(e, t) } ), o)), !r && o && o.empty.fire() }, _queueHooks: function(e, t) { var n = t + "queueHooks"; return K.get(e, n) || K.access(e, n, { empty: C.Callbacks("once memory").add((function() { K.remove(e, [t + "queue", n]) } )) }) } }), C.fn.extend({ queue: function(e, t) { var n = 2; return "string" != typeof e && (t = e, e = "fx", n--), arguments.length < n ? C.queue(this[0], e) : void 0 === t ? this : this.each((function() { var n = C.queue(this, e, t); C._queueHooks(this, e), "fx" === e && "inprogress" !== n[0] && C.dequeue(this, e) } )) }, dequeue: function(e) { return this.each((function() { C.dequeue(this, e) } )) }, clearQueue: function(e) { return this.queue(e || "fx", []) }, promise: function(e, t) { var n, r = 1, i = C.Deferred(), o = this, a = this.length, s = function() { --r || i.resolveWith(o, [o]) }; for ("string" != typeof e && (t = e, e = void 0), e = e || "fx"; a--; ) (n = K.get(o[a], e + "queueHooks")) && n.empty && (r++, n.empty.add(s)); return s(), i.promise(t) } }); var re = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source , ie = new RegExp("^(?:([+-])=|)(" + re + ")([a-z%]*)$","i") , oe = ["Top", "Right", "Bottom", "Left"] , ae = b.documentElement , se = function(e) { return C.contains(e.ownerDocument, e) } , le = { composed: !0 }; ae.getRootNode && (se = function(e) { return C.contains(e.ownerDocument, e) || e.getRootNode(le) === e.ownerDocument } ); var ue = function(e, t) { return "none" === (e = t || e).style.display || "" === e.style.display && se(e) && "none" === C.css(e, "display") }; function ce(e, t, n, r) { var i, o, a = 20, s = r ? function() { return r.cur() } : function() { return C.css(e, t, "") } , l = s(), u = n && n[3] || (C.cssNumber[t] ? "" : "px"), c = e.nodeType && (C.cssNumber[t] || "px" !== u && +l) && ie.exec(C.css(e, t)); if (c && c[3] !== u) { for (l /= 2, u = u || c[3], c = +l || 1; a--; ) C.style(e, t, c + u), (1 - o) * (1 - (o = s() / l || .5)) <= 0 && (a = 0), c /= o; c *= 2, C.style(e, t, c + u), n = n || [] } return n && (c = +c || +l || 0, i = n[1] ? c + (n[1] + 1) * n[2] : +n[2], r && (r.unit = u, r.start = c, r.end = i)), i } var fe = {}; function de(e) { var t, n = e.ownerDocument, r = e.nodeName, i = fe[r]; return i || (t = n.body.appendChild(n.createElement(r)), i = C.css(t, "display"), t.parentNode.removeChild(t), "none" === i && (i = "block"), fe[r] = i, i) } function pe(e, t) { for (var n, r, i = [], o = 0, a = e.length; o < a; o++) (r = e[o]).style && (n = r.style.display, t ? ("none" === n && (i[o] = K.get(r, "display") || null, i[o] || (r.style.display = "")), "" === r.style.display && ue(r) && (i[o] = de(r))) : "none" !== n && (i[o] = "none", K.set(r, "display", n))); for (o = 0; o < a; o++) null != i[o] && (e[o].style.display = i[o]); return e } C.fn.extend({ show: function() { return pe(this, !0) }, hide: function() { return pe(this) }, toggle: function(e) { return "boolean" == typeof e ? e ? this.show() : this.hide() : this.each((function() { ue(this) ? C(this).show() : C(this).hide() } )) } }); var he, me, ge = /^(?:checkbox|radio)$/i, ve = /<([a-z][^\/\0>\x20\t\r\n\f]*)/i, ye = /^$|^module$|\/(?:java|ecma)script/i; he = b.createDocumentFragment().appendChild(b.createElement("div")), (me = b.createElement("input")).setAttribute("type", "radio"), me.setAttribute("checked", "checked"), me.setAttribute("name", "t"), he.appendChild(me), g.checkClone = he.cloneNode(!0).cloneNode(!0).lastChild.checked, he.innerHTML = "<textarea>x</textarea>", g.noCloneChecked = !!he.cloneNode(!0).lastChild.defaultValue, he.innerHTML = "<option></option>", g.option = !!he.lastChild; var be = { thead: [1, "<table>", "</table>"], col: [2, "<table><colgroup>", "</colgroup></table>"], tr: [2, "<table><tbody>", "</tbody></table>"], td: [3, "<table><tbody><tr>", "</tr></tbody></table>"], _default: [0, "", ""] }; function xe(e, t) { var n; return n = void 0 !== e.getElementsByTagName ? e.getElementsByTagName(t || "*") : void 0 !== e.querySelectorAll ? e.querySelectorAll(t || "*") : [], void 0 === t || t && j(e, t) ? C.merge([e], n) : n } function we(e, t) { for (var n = 0, r = e.length; n < r; n++) K.set(e[n], "globalEval", !t || K.get(t[n], "globalEval")) } be.tbody = be.tfoot = be.colgroup = be.caption = be.thead, be.th = be.td, g.option || (be.optgroup = be.option = [1, "<select multiple='multiple'>", "</select>"]); var Te = /<|&#?\w+;/; function ke(e, t, n, r, i) { for (var o, a, s, l, u, c, f = t.createDocumentFragment(), d = [], p = 0, h = e.length; p < h; p++) if ((o = e[p]) || 0 === o) if ("object" === T(o)) C.merge(d, o.nodeType ? [o] : o); else if (Te.test(o)) { for (a = a || f.appendChild(t.createElement("div")), s = (ve.exec(o) || ["", ""])[1].toLowerCase(), l = be[s] || be._default, a.innerHTML = l[1] + C.htmlPrefilter(o) + l[2], c = l[0]; c--; ) a = a.lastChild; C.merge(d, a.childNodes), (a = f.firstChild).textContent = "" } else d.push(t.createTextNode(o)); for (f.textContent = "", p = 0; o = d[p++]; ) if (r && C.inArray(o, r) > -1) i && i.push(o); else if (u = se(o), a = xe(f.appendChild(o), "script"), u && we(a), n) for (c = 0; o = a[c++]; ) ye.test(o.type || "") && n.push(o); return f } var Ce = /^key/ , Ee = /^(?:mouse|pointer|contextmenu|drag|drop)|click/ , Se = /^([^.]*)(?:\.(.+)|)/; function Ae() { return !0 } function De() { return !1 } function Ne(e, t) { return e === function() { try { return b.activeElement } catch (e) {} }() == ("focus" === t) } function je(e, t, n, r, i, o) { var a, s; if ("object" == typeof t) { for (s in "string" != typeof n && (r = r || n, n = void 0), t) je(e, s, n, r, t[s], o); return e } if (null == r && null == i ? (i = n, r = n = void 0) : null == i && ("string" == typeof n ? (i = r, r = void 0) : (i = r, r = n, n = void 0)), !1 === i) i = De; else if (!i) return e; return 1 === o && (a = i, (i = function(e) { return C().off(e), a.apply(this, arguments) } ).guid = a.guid || (a.guid = C.guid++)), e.each((function() { C.event.add(this, t, i, r, n) } )) } function Le(e, t, n) { n ? (K.set(e, t, !1), C.event.add(e, t, { namespace: !1, handler: function(e) { var r, i, o = K.get(this, t); if (1 & e.isTrigger && this[t]) { if (o.length) (C.event.special[t] || {}).delegateType && e.stopPropagation(); else if (o = s.call(arguments), K.set(this, t, o), r = n(this, t), this[t](), o !== (i = K.get(this, t)) || r ? K.set(this, t, !1) : i = {}, o !== i) return e.stopImmediatePropagation(), e.preventDefault(), i.value } else o.length && (K.set(this, t, { value: C.event.trigger(C.extend(o[0], C.Event.prototype), o.slice(1), this) }), e.stopImmediatePropagation()) } })) : void 0 === K.get(e, t) && C.event.add(e, t, Ae) } C.event = { global: {}, add: function(e, t, n, r, i) { var o, a, s, l, u, c, f, d, p, h, m, g = K.get(e); if (G(e)) for (n.handler && (n = (o = n).handler, i = o.selector), i && C.find.matchesSelector(ae, i), n.guid || (n.guid = C.guid++), (l = g.events) || (l = g.events = Object.create(null)), (a = g.handle) || (a = g.handle = function(t) { return void 0 !== C && C.event.triggered !== t.type ? C.event.dispatch.apply(e, arguments) : void 0 } ), u = (t = (t || "").match(H) || [""]).length; u--; ) p = m = (s = Se.exec(t[u]) || [])[1], h = (s[2] || "").split(".").sort(), p && (f = C.event.special[p] || {}, p = (i ? f.delegateType : f.bindType) || p, f = C.event.special[p] || {}, c = C.extend({ type: p, origType: m, data: r, handler: n, guid: n.guid, selector: i, needsContext: i && C.expr.match.needsContext.test(i), namespace: h.join(".") }, o), (d = l[p]) || ((d = l[p] = []).delegateCount = 0, f.setup && !1 !== f.setup.call(e, r, h, a) || e.addEventListener && e.addEventListener(p, a)), f.add && (f.add.call(e, c), c.handler.guid || (c.handler.guid = n.guid)), i ? d.splice(d.delegateCount++, 0, c) : d.push(c), C.event.global[p] = !0) }, remove: function(e, t, n, r, i) { var o, a, s, l, u, c, f, d, p, h, m, g = K.hasData(e) && K.get(e); if (g && (l = g.events)) { for (u = (t = (t || "").match(H) || [""]).length; u--; ) if (p = m = (s = Se.exec(t[u]) || [])[1], h = (s[2] || "").split(".").sort(), p) { for (f = C.event.special[p] || {}, d = l[p = (r ? f.delegateType : f.bindType) || p] || [], s = s[2] && new RegExp("(^|\\.)" + h.join("\\.(?:.*\\.|)") + "(\\.|$)"), a = o = d.length; o--; ) c = d[o], !i && m !== c.origType || n && n.guid !== c.guid || s && !s.test(c.namespace) || r && r !== c.selector && ("**" !== r || !c.selector) || (d.splice(o, 1), c.selector && d.delegateCount--, f.remove && f.remove.call(e, c)); a && !d.length && (f.teardown && !1 !== f.teardown.call(e, h, g.handle) || C.removeEvent(e, p, g.handle), delete l[p]) } else for (p in l) C.event.remove(e, p + t[u], n, r, !0); C.isEmptyObject(l) && K.remove(e, "handle events") } }, dispatch: function(e) { var t, n, r, i, o, a, s = new Array(arguments.length), l = C.event.fix(e), u = (K.get(this, "events") || Object.create(null))[l.type] || [], c = C.event.special[l.type] || {}; for (s[0] = l, t = 1; t < arguments.length; t++) s[t] = arguments[t]; if (l.delegateTarget = this, !c.preDispatch || !1 !== c.preDispatch.call(this, l)) { for (a = C.event.handlers.call(this, l, u), t = 0; (i = a[t++]) && !l.isPropagationStopped(); ) for (l.currentTarget = i.elem, n = 0; (o = i.handlers[n++]) && !l.isImmediatePropagationStopped(); ) l.rnamespace && !1 !== o.namespace && !l.rnamespace.test(o.namespace) || (l.handleObj = o, l.data = o.data, void 0 !== (r = ((C.event.special[o.origType] || {}).handle || o.handler).apply(i.elem, s)) && !1 === (l.result = r) && (l.preventDefault(), l.stopPropagation())); return c.postDispatch && c.postDispatch.call(this, l), l.result } }, handlers: function(e, t) { var n, r, i, o, a, s = [], l = t.delegateCount, u = e.target; if (l && u.nodeType && !("click" === e.type && e.button >= 1)) for (; u !== this; u = u.parentNode || this) if (1 === u.nodeType && ("click" !== e.type || !0 !== u.disabled)) { for (o = [], a = {}, n = 0; n < l; n++) void 0 === a[i = (r = t[n]).selector + " "] && (a[i] = r.needsContext ? C(i, this).index(u) > -1 : C.find(i, this, null, [u]).length), a[i] && o.push(r); o.length && s.push({ elem: u, handlers: o }) } return u = this, l < t.length && s.push({ elem: u, handlers: t.slice(l) }), s }, addProp: function(e, t) { Object.defineProperty(C.Event.prototype, e, { enumerable: !0, configurable: !0, get: v(t) ? function() { if (this.originalEvent) return t(this.originalEvent) } : function() { if (this.originalEvent) return this.originalEvent[e] } , set: function(t) { Object.defineProperty(this, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) } }) }, fix: function(e) { return e[C.expando] ? e : new C.Event(e) }, special: { load: { noBubble: !0 }, click: { setup: function(e) { var t = this || e; return ge.test(t.type) && t.click && j(t, "input") && Le(t, "click", Ae), !1 }, trigger: function(e) { var t = this || e; return ge.test(t.type) && t.click && j(t, "input") && Le(t, "click"), !0 }, _default: function(e) { var t = e.target; return ge.test(t.type) && t.click && j(t, "input") && K.get(t, "click") || j(t, "a") } }, beforeunload: { postDispatch: function(e) { void 0 !== e.result && e.originalEvent && (e.originalEvent.returnValue = e.result) } } } }, C.removeEvent = function(e, t, n) { e.removeEventListener && e.removeEventListener(t, n) } , C.Event = function(e, t) { if (!(this instanceof C.Event)) return new C.Event(e,t); e && e.type ? (this.originalEvent = e, this.type = e.type, this.isDefaultPrevented = e.defaultPrevented || void 0 === e.defaultPrevented && !1 === e.returnValue ? Ae : De, this.target = e.target && 3 === e.target.nodeType ? e.target.parentNode : e.target, this.currentTarget = e.currentTarget, this.relatedTarget = e.relatedTarget) : this.type = e, t && C.extend(this, t), this.timeStamp = e && e.timeStamp || Date.now(), this[C.expando] = !0 } , C.Event.prototype = { constructor: C.Event, isDefaultPrevented: De, isPropagationStopped: De, isImmediatePropagationStopped: De, isSimulated: !1, preventDefault: function() { var e = this.originalEvent; this.isDefaultPrevented = Ae, e && !this.isSimulated && e.preventDefault() }, stopPropagation: function() { var e = this.originalEvent; this.isPropagationStopped = Ae, e && !this.isSimulated && e.stopPropagation() }, stopImmediatePropagation: function() { var e = this.originalEvent; this.isImmediatePropagationStopped = Ae, e && !this.isSimulated && e.stopImmediatePropagation(), this.stopPropagation() } }, C.each({ altKey: !0, bubbles: !0, cancelable: !0, changedTouches: !0, ctrlKey: !0, detail: !0, eventPhase: !0, metaKey: !0, pageX: !0, pageY: !0, shiftKey: !0, view: !0, char: !0, code: !0, charCode: !0, key: !0, keyCode: !0, button: !0, buttons: !0, clientX: !0, clientY: !0, offsetX: !0, offsetY: !0, pointerId: !0, pointerType: !0, screenX: !0, screenY: !0, targetTouches: !0, toElement: !0, touches: !0, which: function(e) { var t = e.button; return null == e.which && Ce.test(e.type) ? null != e.charCode ? e.charCode : e.keyCode : !e.which && void 0 !== t && Ee.test(e.type) ? 1 & t ? 1 : 2 & t ? 3 : 4 & t ? 2 : 0 : e.which } }, C.event.addProp), C.each({ focus: "focusin", blur: "focusout" }, (function(e, t) { C.event.special[e] = { setup: function() { return Le(this, e, Ne), !1 }, trigger: function() { return Le(this, e), !0 }, delegateType: t } } )), C.each({ mouseenter: "mouseover", mouseleave: "mouseout", pointerenter: "pointerover", pointerleave: "pointerout" }, (function(e, t) { C.event.special[e] = { delegateType: t, bindType: t, handle: function(e) { var n, r = this, i = e.relatedTarget, o = e.handleObj; return i && (i === r || C.contains(r, i)) || (e.type = o.origType, n = o.handler.apply(this, arguments), e.type = t), n } } } )), C.fn.extend({ on: function(e, t, n, r) { return je(this, e, t, n, r) }, one: function(e, t, n, r) { return je(this, e, t, n, r, 1) }, off: function(e, t, n) { var r, i; if (e && e.preventDefault && e.handleObj) return r = e.handleObj, C(e.delegateTarget).off(r.namespace ? r.origType + "." + r.namespace : r.origType, r.selector, r.handler), this; if ("object" == typeof e) { for (i in e) this.off(i, t, e[i]); return this } return !1 !== t && "function" != typeof t || (n = t, t = void 0), !1 === n && (n = De), this.each((function() { C.event.remove(this, e, n, t) } )) } }); var Oe = /<script|<style|<link/i , qe = /checked\s*(?:[^=]|=\s*.checked.)/i , $e = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g; function Ie(e, t) { return j(e, "table") && j(11 !== t.nodeType ? t : t.firstChild, "tr") && C(e).children("tbody")[0] || e } function Me(e) { return e.type = (null !== e.getAttribute("type")) + "/" + e.type, e } function Pe(e) { return "true/" === (e.type || "").slice(0, 5) ? e.type = e.type.slice(5) : e.removeAttribute("type"), e } function He(e, t) { var n, r, i, o, a, s; if (1 === t.nodeType) { if (K.hasData(e) && (s = K.get(e).events)) for (i in K.remove(t, "handle events"), s) for (n = 0, r = s[i].length; n < r; n++) C.event.add(t, i, s[i][n]); Z.hasData(e) && (o = Z.access(e), a = C.extend({}, o), Z.set(t, a)) } } function Re(e, t) { var n = t.nodeName.toLowerCase(); "input" === n && ge.test(e.type) ? t.checked = e.checked : "input" !== n && "textarea" !== n || (t.defaultValue = e.defaultValue) } function Fe(e, t, n, r) { t = l(t); var i, o, a, s, u, c, f = 0, d = e.length, p = d - 1, h = t[0], m = v(h); if (m || d > 1 && "string" == typeof h && !g.checkClone && qe.test(h)) return e.each((function(i) { var o = e.eq(i); m && (t[0] = h.call(this, i, o.html())), Fe(o, t, n, r) } )); if (d && (o = (i = ke(t, e[0].ownerDocument, !1, e, r)).firstChild, 1 === i.childNodes.length && (i = o), o || r)) { for (s = (a = C.map(xe(i, "script"), Me)).length; f < d; f++) u = i, f !== p && (u = C.clone(u, !0, !0), s && C.merge(a, xe(u, "script"))), n.call(e[f], u, f); if (s) for (c = a[a.length - 1].ownerDocument, C.map(a, Pe), f = 0; f < s; f++) u = a[f], ye.test(u.type || "") && !K.access(u, "globalEval") && C.contains(c, u) && (u.src && "module" !== (u.type || "").toLowerCase() ? C._evalUrl && !u.noModule && C._evalUrl(u.src, { nonce: u.nonce || u.getAttribute("nonce") }, c) : w(u.textContent.replace($e, ""), u, c)) } return e } function _e(e, t, n) { for (var r, i = t ? C.filter(t, e) : e, o = 0; null != (r = i[o]); o++) n || 1 !== r.nodeType || C.cleanData(xe(r)), r.parentNode && (n && se(r) && we(xe(r, "script")), r.parentNode.removeChild(r)); return e } C.extend({ htmlPrefilter: function(e) { return e }, clone: function(e, t, n) { var r, i, o, a, s = e.cloneNode(!0), l = se(e); if (!(g.noCloneChecked || 1 !== e.nodeType && 11 !== e.nodeType || C.isXMLDoc(e))) for (a = xe(s), r = 0, i = (o = xe(e)).length; r < i; r++) Re(o[r], a[r]); if (t) if (n) for (o = o || xe(e), a = a || xe(s), r = 0, i = o.length; r < i; r++) He(o[r], a[r]); else He(e, s); return (a = xe(s, "script")).length > 0 && we(a, !l && xe(e, "script")), s }, cleanData: function(e) { for (var t, n, r, i = C.event.special, o = 0; void 0 !== (n = e[o]); o++) if (G(n)) { if (t = n[K.expando]) { if (t.events) for (r in t.events) i[r] ? C.event.remove(n, r) : C.removeEvent(n, r, t.handle); n[K.expando] = void 0 } n[Z.expando] && (n[Z.expando] = void 0) } } }), C.fn.extend({ detach: function(e) { return _e(this, e, !0) }, remove: function(e) { return _e(this, e) }, text: function(e) { return U(this, (function(e) { return void 0 === e ? C.text(this) : this.empty().each((function() { 1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || (this.textContent = e) } )) } ), null, e, arguments.length) }, append: function() { return Fe(this, arguments, (function(e) { 1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || Ie(this, e).appendChild(e) } )) }, prepend: function() { return Fe(this, arguments, (function(e) { if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) { var t = Ie(this, e); t.insertBefore(e, t.firstChild) } } )) }, before: function() { return Fe(this, arguments, (function(e) { this.parentNode && this.parentNode.insertBefore(e, this) } )) }, after: function() { return Fe(this, arguments, (function(e) { this.parentNode && this.parentNode.insertBefore(e, this.nextSibling) } )) }, empty: function() { for (var e, t = 0; null != (e = this[t]); t++) 1 === e.nodeType && (C.cleanData(xe(e, !1)), e.textContent = ""); return this }, clone: function(e, t) { return e = null != e && e, t = null == t ? e : t, this.map((function() { return C.clone(this, e, t) } )) }, html: function(e) { return U(this, (function(e) { var t = this[0] || {} , n = 0 , r = this.length; if (void 0 === e && 1 === t.nodeType) return t.innerHTML; if ("string" == typeof e && !Oe.test(e) && !be[(ve.exec(e) || ["", ""])[1].toLowerCase()]) { e = C.htmlPrefilter(e); try { for (; n < r; n++) 1 === (t = this[n] || {}).nodeType && (C.cleanData(xe(t, !1)), t.innerHTML = e); t = 0 } catch (e) {} } t && this.empty().append(e) } ), null, e, arguments.length) }, replaceWith: function() { var e = []; return Fe(this, arguments, (function(t) { var n = this.parentNode; C.inArray(this, e) < 0 && (C.cleanData(xe(this)), n && n.replaceChild(t, this)) } ), e) } }), C.each({ appendTo: "append", prependTo: "prepend", insertBefore: "before", insertAfter: "after", replaceAll: "replaceWith" }, (function(e, t) { C.fn[e] = function(e) { for (var n, r = [], i = C(e), o = i.length - 1, a = 0; a <= o; a++) n = a === o ? this : this.clone(!0), C(i[a])[t](n), u.apply(r, n.get()); return this.pushStack(r) } } )); var ze = new RegExp("^(" + re + ")(?!px)[a-z%]+$","i") , Be = function(e) { var t = e.ownerDocument.defaultView; return t && t.opener || (t = r), t.getComputedStyle(e) } , We = function(e, t, n) { var r, i, o = {}; for (i in t) o[i] = e.style[i], e.style[i] = t[i]; for (i in r = n.call(e), t) e.style[i] = o[i]; return r } , Ue = new RegExp(oe.join("|"),"i"); function Xe(e, t, n) { var r, i, o, a, s = e.style; return (n = n || Be(e)) && ("" !== (a = n.getPropertyValue(t) || n[t]) || se(e) || (a = C.style(e, t)), !g.pixelBoxStyles() && ze.test(a) && Ue.test(t) && (r = s.width, i = s.minWidth, o = s.maxWidth, s.minWidth = s.maxWidth = s.width = a, a = n.width, s.width = r, s.minWidth = i, s.maxWidth = o)), void 0 !== a ? a + "" : a } function Ve(e, t) { return { get: function() { if (!e()) return (this.get = t).apply(this, arguments); delete this.get } } } !function() { function e() { if (c) { u.style.cssText = "position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0", c.style.cssText = "position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%", ae.appendChild(u).appendChild(c); var e = r.getComputedStyle(c); n = "1%" !== e.top, l = 12 === t(e.marginLeft), c.style.right = "60%", a = 36 === t(e.right), i = 36 === t(e.width), c.style.position = "absolute", o = 12 === t(c.offsetWidth / 3), ae.removeChild(u), c = null } } function t(e) { return Math.round(parseFloat(e)) } var n, i, o, a, s, l, u = b.createElement("div"), c = b.createElement("div"); c.style && (c.style.backgroundClip = "content-box", c.cloneNode(!0).style.backgroundClip = "", g.clearCloneStyle = "content-box" === c.style.backgroundClip, C.extend(g, { boxSizingReliable: function() { return e(), i }, pixelBoxStyles: function() { return e(), a }, pixelPosition: function() { return e(), n }, reliableMarginLeft: function() { return e(), l }, scrollboxSize: function() { return e(), o }, reliableTrDimensions: function() { var e, t, n, i; return null == s && (e = b.createElement("table"), t = b.createElement("tr"), n = b.createElement("div"), e.style.cssText = "position:absolute;left:-11111px", t.style.height = "1px", n.style.height = "9px", ae.appendChild(e).appendChild(t).appendChild(n), i = r.getComputedStyle(t), s = parseInt(i.height) > 3, ae.removeChild(e)), s } })) }(); var Qe = ["Webkit", "Moz", "ms"] , Ye = b.createElement("div").style , Ge = {}; function Je(e) { return C.cssProps[e] || Ge[e] || (e in Ye ? e : Ge[e] = function(e) { for (var t = e[0].toUpperCase() + e.slice(1), n = Qe.length; n--; ) if ((e = Qe[n] + t)in Ye) return e }(e) || e) } var Ke = /^(none|table(?!-c[ea]).+)/ , Ze = /^--/ , et = { position: "absolute", visibility: "hidden", display: "block" } , tt = { letterSpacing: "0", fontWeight: "400" }; function nt(e, t, n) { var r = ie.exec(t); return r ? Math.max(0, r[2] - (n || 0)) + (r[3] || "px") : t } function rt(e, t, n, r, i, o) { var a = "width" === t ? 1 : 0 , s = 0 , l = 0; if (n === (r ? "border" : "content")) return 0; for (; a < 4; a += 2) "margin" === n && (l += C.css(e, n + oe[a], !0, i)), r ? ("content" === n && (l -= C.css(e, "padding" + oe[a], !0, i)), "margin" !== n && (l -= C.css(e, "border" + oe[a] + "Width", !0, i))) : (l += C.css(e, "padding" + oe[a], !0, i), "padding" !== n ? l += C.css(e, "border" + oe[a] + "Width", !0, i) : s += C.css(e, "border" + oe[a] + "Width", !0, i)); return !r && o >= 0 && (l += Math.max(0, Math.ceil(e["offset" + t[0].toUpperCase() + t.slice(1)] - o - l - s - .5)) || 0), l } function it(e, t, n) { var r = Be(e) , i = (!g.boxSizingReliable() || n) && "border-box" === C.css(e, "boxSizing", !1, r) , o = i , a = Xe(e, t, r) , s = "offset" + t[0].toUpperCase() + t.slice(1); if (ze.test(a)) { if (!n) return a; a = "auto" } return (!g.boxSizingReliable() && i || !g.reliableTrDimensions() && j(e, "tr") || "auto" === a || !parseFloat(a) && "inline" === C.css(e, "display", !1, r)) && e.getClientRects().length && (i = "border-box" === C.css(e, "boxSizing", !1, r), (o = s in e) && (a = e[s])), (a = parseFloat(a) || 0) + rt(e, t, n || (i ? "border" : "content"), o, r, a) + "px" } function ot(e, t, n, r, i) { return new ot.prototype.init(e,t,n,r,i) } C.extend({ cssHooks: { opacity: { get: function(e, t) { if (t) { var n = Xe(e, "opacity"); return "" === n ? "1" : n } } } }, cssNumber: { animationIterationCount: !0, columnCount: !0, fillOpacity: !0, flexGrow: !0, flexShrink: !0, fontWeight: !0, gridArea: !0, gridColumn: !0, gridColumnEnd: !0, gridColumnStart: !0, gridRow: !0, gridRowEnd: !0, gridRowStart: !0, lineHeight: !0, opacity: !0, order: !0, orphans: !0, widows: !0, zIndex: !0, zoom: !0 }, cssProps: {}, style: function(e, t, n, r) { if (e && 3 !== e.nodeType && 8 !== e.nodeType && e.style) { var i, o, a, s = Y(t), l = Ze.test(t), u = e.style; if (l || (t = Je(s)), a = C.cssHooks[t] || C.cssHooks[s], void 0 === n) return a && "get"in a && void 0 !== (i = a.get(e, !1, r)) ? i : u[t]; "string" == (o = typeof n) && (i = ie.exec(n)) && i[1] && (n = ce(e, t, i), o = "number"), null != n && n == n && ("number" !== o || l || (n += i && i[3] || (C.cssNumber[s] ? "" : "px")), g.clearCloneStyle || "" !== n || 0 !== t.indexOf("background") || (u[t] = "inherit"), a && "set"in a && void 0 === (n = a.set(e, n, r)) || (l ? u.setProperty(t, n) : u[t] = n)) } }, css: function(e, t, n, r) { var i, o, a, s = Y(t); return Ze.test(t) || (t = Je(s)), (a = C.cssHooks[t] || C.cssHooks[s]) && "get"in a && (i = a.get(e, !0, n)), void 0 === i && (i = Xe(e, t, r)), "normal" === i && t in tt && (i = tt[t]), "" === n || n ? (o = parseFloat(i), !0 === n || isFinite(o) ? o || 0 : i) : i } }), C.each(["height", "width"], (function(e, t) { C.cssHooks[t] = { get: function(e, n, r) { if (n) return !Ke.test(C.css(e, "display")) || e.getClientRects().length && e.getBoundingClientRect().width ? it(e, t, r) : We(e, et, (function() { return it(e, t, r) } )) }, set: function(e, n, r) { var i, o = Be(e), a = !g.scrollboxSize() && "absolute" === o.position, s = (a || r) && "border-box" === C.css(e, "boxSizing", !1, o), l = r ? rt(e, t, r, s, o) : 0; return s && a && (l -= Math.ceil(e["offset" + t[0].toUpperCase() + t.slice(1)] - parseFloat(o[t]) - rt(e, t, "border", !1, o) - .5)), l && (i = ie.exec(n)) && "px" !== (i[3] || "px") && (e.style[t] = n, n = C.css(e, t)), nt(0, n, l) } } } )), C.cssHooks.marginLeft = Ve(g.reliableMarginLeft, (function(e, t) { if (t) return (parseFloat(Xe(e, "marginLeft")) || e.getBoundingClientRect().left - We(e, { marginLeft: 0 }, (function() { return e.getBoundingClientRect().left } ))) + "px" } )), C.each({ margin: "", padding: "", border: "Width" }, (function(e, t) { C.cssHooks[e + t] = { expand: function(n) { for (var r = 0, i = {}, o = "string" == typeof n ? n.split(" ") : [n]; r < 4; r++) i[e + oe[r] + t] = o[r] || o[r - 2] || o[0]; return i } }, "margin" !== e && (C.cssHooks[e + t].set = nt) } )), C.fn.extend({ css: function(e, t) { return U(this, (function(e, t, n) { var r, i, o = {}, a = 0; if (Array.isArray(t)) { for (r = Be(e), i = t.length; a < i; a++) o[t[a]] = C.css(e, t[a], !1, r); return o } return void 0 !== n ? C.style(e, t, n) : C.css(e, t) } ), e, t, arguments.length > 1) } }), C.Tween = ot, ot.prototype = { constructor: ot, init: function(e, t, n, r, i, o) { this.elem = e, this.prop = n, this.easing = i || C.easing._default, this.options = t, this.start = this.now = this.cur(), this.end = r, this.unit = o || (C.cssNumber[n] ? "" : "px") }, cur: function() { var e = ot.propHooks[this.prop]; return e && e.get ? e.get(this) : ot.propHooks._default.get(this) }, run: function(e) { var t, n = ot.propHooks[this.prop]; return this.options.duration ? this.pos = t = C.easing[this.easing](e, this.options.duration * e, 0, 1, this.options.duration) : this.pos = t = e, this.now = (this.end - this.start) * t + this.start, this.options.step && this.options.step.call(this.elem, this.now, this), n && n.set ? n.set(this) : ot.propHooks._default.set(this), this } }, ot.prototype.init.prototype = ot.prototype, ot.propHooks = { _default: { get: function(e) { var t; return 1 !== e.elem.nodeType || null != e.elem[e.prop] && null == e.elem.style[e.prop] ? e.elem[e.prop] : (t = C.css(e.elem, e.prop, "")) && "auto" !== t ? t : 0 }, set: function(e) { C.fx.step[e.prop] ? C.fx.step[e.prop](e) : 1 !== e.elem.nodeType || !C.cssHooks[e.prop] && null == e.elem.style[Je(e.prop)] ? e.elem[e.prop] = e.now : C.style(e.elem, e.prop, e.now + e.unit) } } }, ot.propHooks.scrollTop = ot.propHooks.scrollLeft = { set: function(e) { e.elem.nodeType && e.elem.parentNode && (e.elem[e.prop] = e.now) } }, C.easing = { linear: function(e) { return e }, swing: function(e) { return .5 - Math.cos(e * Math.PI) / 2 }, _default: "swing" }, C.fx = ot.prototype.init, C.fx.step = {}; var at, st, lt = /^(?:toggle|show|hide)$/, ut = /queueHooks$/; function ct() { st && (!1 === b.hidden && r.requestAnimationFrame ? r.requestAnimationFrame(ct) : r.setTimeout(ct, C.fx.interval), C.fx.tick()) } function ft() { return r.setTimeout((function() { at = void 0 } )), at = Date.now() } function dt(e, t) { var n, r = 0, i = { height: e }; for (t = t ? 1 : 0; r < 4; r += 2 - t) i["margin" + (n = oe[r])] = i["padding" + n] = e; return t && (i.opacity = i.width = e), i } function pt(e, t, n) { for (var r, i = (ht.tweeners[t] || []).concat(ht.tweeners["*"]), o = 0, a = i.length; o < a; o++) if (r = i[o].call(n, t, e)) return r } function ht(e, t, n) { var r, i, o = 0, a = ht.prefilters.length, s = C.Deferred().always((function() { delete l.elem } )), l = function() { if (i) return !1; for (var t = at || ft(), n = Math.max(0, u.startTime + u.duration - t), r = 1 - (n / u.duration || 0), o = 0, a = u.tweens.length; o < a; o++) u.tweens[o].run(r); return s.notifyWith(e, [u, r, n]), r < 1 && a ? n : (a || s.notifyWith(e, [u, 1, 0]), s.resolveWith(e, [u]), !1) }, u = s.promise({ elem: e, props: C.extend({}, t), opts: C.extend(!0, { specialEasing: {}, easing: C.easing._default }, n), originalProperties: t, originalOptions: n, startTime: at || ft(), duration: n.duration, tweens: [], createTween: function(t, n) { var r = C.Tween(e, u.opts, t, n, u.opts.specialEasing[t] || u.opts.easing); return u.tweens.push(r), r }, stop: function(t) { var n = 0 , r = t ? u.tweens.length : 0; if (i) return this; for (i = !0; n < r; n++) u.tweens[n].run(1); return t ? (s.notifyWith(e, [u, 1, 0]), s.resolveWith(e, [u, t])) : s.rejectWith(e, [u, t]), this } }), c = u.props; for (function(e, t) { var n, r, i, o, a; for (n in e) if (i = t[r = Y(n)], o = e[n], Array.isArray(o) && (i = o[1], o = e[n] = o[0]), n !== r && (e[r] = o, delete e[n]), (a = C.cssHooks[r]) && "expand"in a) for (n in o = a.expand(o), delete e[r], o) n in e || (e[n] = o[n], t[n] = i); else t[r] = i }(c, u.opts.specialEasing); o < a; o++) if (r = ht.prefilters[o].call(u, e, c, u.opts)) return v(r.stop) && (C._queueHooks(u.elem, u.opts.queue).stop = r.stop.bind(r)), r; return C.map(c, pt, u), v(u.opts.start) && u.opts.start.call(e, u), u.progress(u.opts.progress).done(u.opts.done, u.opts.complete).fail(u.opts.fail).always(u.opts.always), C.fx.timer(C.extend(l, { elem: e, anim: u, queue: u.opts.queue })), u } C.Animation = C.extend(ht, { tweeners: { "*": [function(e, t) { var n = this.createTween(e, t); return ce(n.elem, e, ie.exec(t), n), n } ] }, tweener: function(e, t) { v(e) ? (t = e, e = ["*"]) : e = e.match(H); for (var n, r = 0, i = e.length; r < i; r++) n = e[r], ht.tweeners[n] = ht.tweeners[n] || [], ht.tweeners[n].unshift(t) }, prefilters: [function(e, t, n) { var r, i, o, a, s, l, u, c, f = "width"in t || "height"in t, d = this, p = {}, h = e.style, m = e.nodeType && ue(e), g = K.get(e, "fxshow"); for (r in n.queue || (null == (a = C._queueHooks(e, "fx")).unqueued && (a.unqueued = 0, s = a.empty.fire, a.empty.fire = function() { a.unqueued || s() } ), a.unqueued++, d.always((function() { d.always((function() { a.unqueued--, C.queue(e, "fx").length || a.empty.fire() } )) } ))), t) if (i = t[r], lt.test(i)) { if (delete t[r], o = o || "toggle" === i, i === (m ? "hide" : "show")) { if ("show" !== i || !g || void 0 === g[r]) continue; m = !0 } p[r] = g && g[r] || C.style(e, r) } if ((l = !C.isEmptyObject(t)) || !C.isEmptyObject(p)) for (r in f && 1 === e.nodeType && (n.overflow = [h.overflow, h.overflowX, h.overflowY], null == (u = g && g.display) && (u = K.get(e, "display")), "none" === (c = C.css(e, "display")) && (u ? c = u : (pe([e], !0), u = e.style.display || u, c = C.css(e, "display"), pe([e]))), ("inline" === c || "inline-block" === c && null != u) && "none" === C.css(e, "float") && (l || (d.done((function() { h.display = u } )), null == u && (c = h.display, u = "none" === c ? "" : c)), h.display = "inline-block")), n.overflow && (h.overflow = "hidden", d.always((function() { h.overflow = n.overflow[0], h.overflowX = n.overflow[1], h.overflowY = n.overflow[2] } ))), l = !1, p) l || (g ? "hidden"in g && (m = g.hidden) : g = K.access(e, "fxshow", { display: u }), o && (g.hidden = !m), m && pe([e], !0), d.done((function() { for (r in m || pe([e]), K.remove(e, "fxshow"), p) C.style(e, r, p[r]) } ))), l = pt(m ? g[r] : 0, r, d), r in g || (g[r] = l.start, m && (l.end = l.start, l.start = 0)) } ], prefilter: function(e, t) { t ? ht.prefilters.unshift(e) : ht.prefilters.push(e) } }), C.speed = function(e, t, n) { var r = e && "object" == typeof e ? C.extend({}, e) : { complete: n || !n && t || v(e) && e, duration: e, easing: n && t || t && !v(t) && t }; return C.fx.off ? r.duration = 0 : "number" != typeof r.duration && (r.duration in C.fx.speeds ? r.duration = C.fx.speeds[r.duration] : r.duration = C.fx.speeds._default), null != r.queue && !0 !== r.queue || (r.queue = "fx"), r.old = r.complete, r.complete = function() { v(r.old) && r.old.call(this), r.queue && C.dequeue(this, r.queue) } , r } , C.fn.extend({ fadeTo: function(e, t, n, r) { return this.filter(ue).css("opacity", 0).show().end().animate({ opacity: t }, e, n, r) }, animate: function(e, t, n, r) { var i = C.isEmptyObject(e) , o = C.speed(t, n, r) , a = function() { var t = ht(this, C.extend({}, e), o); (i || K.get(this, "finish")) && t.stop(!0) }; return a.finish = a, i || !1 === o.queue ? this.each(a) : this.queue(o.queue, a) }, stop: function(e, t, n) { var r = function(e) { var t = e.stop; delete e.stop, t(n) }; return "string" != typeof e && (n = t, t = e, e = void 0), t && this.queue(e || "fx", []), this.each((function() { var t = !0 , i = null != e && e + "queueHooks" , o = C.timers , a = K.get(this); if (i) a[i] && a[i].stop && r(a[i]); else for (i in a) a[i] && a[i].stop && ut.test(i) && r(a[i]); for (i = o.length; i--; ) o[i].elem !== this || null != e && o[i].queue !== e || (o[i].anim.stop(n), t = !1, o.splice(i, 1)); !t && n || C.dequeue(this, e) } )) }, finish: function(e) { return !1 !== e && (e = e || "fx"), this.each((function() { var t, n = K.get(this), r = n[e + "queue"], i = n[e + "queueHooks"], o = C.timers, a = r ? r.length : 0; for (n.finish = !0, C.queue(this, e, []), i && i.stop && i.stop.call(this, !0), t = o.length; t--; ) o[t].elem === this && o[t].queue === e && (o[t].anim.stop(!0), o.splice(t, 1)); for (t = 0; t < a; t++) r[t] && r[t].finish && r[t].finish.call(this); delete n.finish } )) } }), C.each(["toggle", "show", "hide"], (function(e, t) { var n = C.fn[t]; C.fn[t] = function(e, r, i) { return null == e || "boolean" == typeof e ? n.apply(this, arguments) : this.animate(dt(t, !0), e, r, i) } } )), C.each({ slideDown: dt("show"), slideUp: dt("hide"), slideToggle: dt("toggle"), fadeIn: { opacity: "show" }, fadeOut: { opacity: "hide" }, fadeToggle: { opacity: "toggle" } }, (function(e, t) { C.fn[e] = function(e, n, r) { return this.animate(t, e, n, r) } } )), C.timers = [], C.fx.tick = function() { var e, t = 0, n = C.timers; for (at = Date.now(); t < n.length; t++) (e = n[t])() || n[t] !== e || n.splice(t--, 1); n.length || C.fx.stop(), at = void 0 } , C.fx.timer = function(e) { C.timers.push(e), C.fx.start() } , C.fx.interval = 13, C.fx.start = function() { st || (st = !0, ct()) } , C.fx.stop = function() { st = null } , C.fx.speeds = { slow: 600, fast: 200, _default: 400 }, C.fn.delay = function(e, t) { return e = C.fx && C.fx.speeds[e] || e, t = t || "fx", this.queue(t, (function(t, n) { var i = r.setTimeout(t, e); n.stop = function() { r.clearTimeout(i) } } )) } , function() { var e = b.createElement("input") , t = b.createElement("select").appendChild(b.createElement("option")); e.type = "checkbox", g.checkOn = "" !== e.value, g.optSelected = t.selected, (e = b.createElement("input")).value = "t", e.type = "radio", g.radioValue = "t" === e.value }(); var mt, gt = C.expr.attrHandle; C.fn.extend({ attr: function(e, t) { return U(this, C.attr, e, t, arguments.length > 1) }, removeAttr: function(e) { return this.each((function() { C.removeAttr(this, e) } )) } }), C.extend({ attr: function(e, t, n) { var r, i, o = e.nodeType; if (3 !== o && 8 !== o && 2 !== o) return void 0 === e.getAttribute ? C.prop(e, t, n) : (1 === o && C.isXMLDoc(e) || (i = C.attrHooks[t.toLowerCase()] || (C.expr.match.bool.test(t) ? mt : void 0)), void 0 !== n ? null === n ? void C.removeAttr(e, t) : i && "set"in i && void 0 !== (r = i.set(e, n, t)) ? r : (e.setAttribute(t, n + ""), n) : i && "get"in i && null !== (r = i.get(e, t)) ? r : null == (r = C.find.attr(e, t)) ? void 0 : r) }, attrHooks: { type: { set: function(e, t) { if (!g.radioValue && "radio" === t && j(e, "input")) { var n = e.value; return e.setAttribute("type", t), n && (e.value = n), t } } } }, removeAttr: function(e, t) { var n, r = 0, i = t && t.match(H); if (i && 1 === e.nodeType) for (; n = i[r++]; ) e.removeAttribute(n) } }), mt = { set: function(e, t, n) { return !1 === t ? C.removeAttr(e, n) : e.setAttribute(n, n), n } }, C.each(C.expr.match.bool.source.match(/\w+/g), (function(e, t) { var n = gt[t] || C.find.attr; gt[t] = function(e, t, r) { var i, o, a = t.toLowerCase(); return r || (o = gt[a], gt[a] = i, i = null != n(e, t, r) ? a : null, gt[a] = o), i } } )); var vt = /^(?:input|select|textarea|button)$/i , yt = /^(?:a|area)$/i; function bt(e) { return (e.match(H) || []).join(" ") } function xt(e) { return e.getAttribute && e.getAttribute("class") || "" } function wt(e) { return Array.isArray(e) ? e : "string" == typeof e && e.match(H) || [] } C.fn.extend({ prop: function(e, t) { return U(this, C.prop, e, t, arguments.length > 1) }, removeProp: function(e) { return this.each((function() { delete this[C.propFix[e] || e] } )) } }), C.extend({ prop: function(e, t, n) { var r, i, o = e.nodeType; if (3 !== o && 8 !== o && 2 !== o) return 1 === o && C.isXMLDoc(e) || (t = C.propFix[t] || t, i = C.propHooks[t]), void 0 !== n ? i && "set"in i && void 0 !== (r = i.set(e, n, t)) ? r : e[t] = n : i && "get"in i && null !== (r = i.get(e, t)) ? r : e[t] }, propHooks: { tabIndex: { get: function(e) { var t = C.find.attr(e, "tabindex"); return t ? parseInt(t, 10) : vt.test(e.nodeName) || yt.test(e.nodeName) && e.href ? 0 : -1 } } }, propFix: { for: "htmlFor", class: "className" } }), g.optSelected || (C.propHooks.selected = { get: function(e) { var t = e.parentNode; return t && t.parentNode && t.parentNode.selectedIndex, null }, set: function(e) { var t = e.parentNode; t && (t.selectedIndex, t.parentNode && t.parentNode.selectedIndex) } }), C.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], (function() { C.propFix[this.toLowerCase()] = this } )), C.fn.extend({ addClass: function(e) { var t, n, r, i, o, a, s, l = 0; if (v(e)) return this.each((function(t) { C(this).addClass(e.call(this, t, xt(this))) } )); if ((t = wt(e)).length) for (; n = this[l++]; ) if (i = xt(n), r = 1 === n.nodeType && " " + bt(i) + " ") { for (a = 0; o = t[a++]; ) r.indexOf(" " + o + " ") < 0 && (r += o + " "); i !== (s = bt(r)) && n.setAttribute("class", s) } return this }, removeClass: function(e) { var t, n, r, i, o, a, s, l = 0; if (v(e)) return this.each((function(t) { C(this).removeClass(e.call(this, t, xt(this))) } )); if (!arguments.length) return this.attr("class", ""); if ((t = wt(e)).length) for (; n = this[l++]; ) if (i = xt(n), r = 1 === n.nodeType && " " + bt(i) + " ") { for (a = 0; o = t[a++]; ) for (; r.indexOf(" " + o + " ") > -1; ) r = r.replace(" " + o + " ", " "); i !== (s = bt(r)) && n.setAttribute("class", s) } return this }, toggleClass: function(e, t) { var n = typeof e , r = "string" === n || Array.isArray(e); return "boolean" == typeof t && r ? t ? this.addClass(e) : this.removeClass(e) : v(e) ? this.each((function(n) { C(this).toggleClass(e.call(this, n, xt(this), t), t) } )) : this.each((function() { var t, i, o, a; if (r) for (i = 0, o = C(this), a = wt(e); t = a[i++]; ) o.hasClass(t) ? o.removeClass(t) : o.addClass(t); else void 0 !== e && "boolean" !== n || ((t = xt(this)) && K.set(this, "__className__", t), this.setAttribute && this.setAttribute("class", t || !1 === e ? "" : K.get(this, "__className__") || "")) } )) }, hasClass: function(e) { var t, n, r = 0; for (t = " " + e + " "; n = this[r++]; ) if (1 === n.nodeType && (" " + bt(xt(n)) + " ").indexOf(t) > -1) return !0; return !1 } }); var Tt = /\r/g; C.fn.extend({ val: function(e) { var t, n, r, i = this[0]; return arguments.length ? (r = v(e), this.each((function(n) { var i; 1 === this.nodeType && (null == (i = r ? e.call(this, n, C(this).val()) : e) ? i = "" : "number" == typeof i ? i += "" : Array.isArray(i) && (i = C.map(i, (function(e) { return null == e ? "" : e + "" } ))), (t = C.valHooks[this.type] || C.valHooks[this.nodeName.toLowerCase()]) && "set"in t && void 0 !== t.set(this, i, "value") || (this.value = i)) } ))) : i ? (t = C.valHooks[i.type] || C.valHooks[i.nodeName.toLowerCase()]) && "get"in t && void 0 !== (n = t.get(i, "value")) ? n : "string" == typeof (n = i.value) ? n.replace(Tt, "") : null == n ? "" : n : void 0 } }), C.extend({ valHooks: { option: { get: function(e) { var t = C.find.attr(e, "value"); return null != t ? t : bt(C.text(e)) } }, select: { get: function(e) { var t, n, r, i = e.options, o = e.selectedIndex, a = "select-one" === e.type, s = a ? null : [], l = a ? o + 1 : i.length; for (r = o < 0 ? l : a ? o : 0; r < l; r++) if (((n = i[r]).selected || r === o) && !n.disabled && (!n.parentNode.disabled || !j(n.parentNode, "optgroup"))) { if (t = C(n).val(), a) return t; s.push(t) } return s }, set: function(e, t) { for (var n, r, i = e.options, o = C.makeArray(t), a = i.length; a--; ) ((r = i[a]).selected = C.inArray(C.valHooks.option.get(r), o) > -1) && (n = !0); return n || (e.selectedIndex = -1), o } } } }), C.each(["radio", "checkbox"], (function() { C.valHooks[this] = { set: function(e, t) { if (Array.isArray(t)) return e.checked = C.inArray(C(e).val(), t) > -1 } }, g.checkOn || (C.valHooks[this].get = function(e) { return null === e.getAttribute("value") ? "on" : e.value } ) } )), g.focusin = "onfocusin"in r; var kt = /^(?:focusinfocus|focusoutblur)$/ , Ct = function(e) { e.stopPropagation() }; C.extend(C.event, { trigger: function(e, t, n, i) { var o, a, s, l, u, c, f, d, h = [n || b], m = p.call(e, "type") ? e.type : e, g = p.call(e, "namespace") ? e.namespace.split(".") : []; if (a = d = s = n = n || b, 3 !== n.nodeType && 8 !== n.nodeType && !kt.test(m + C.event.triggered) && (m.indexOf(".") > -1 && (g = m.split("."), m = g.shift(), g.sort()), u = m.indexOf(":") < 0 && "on" + m, (e = e[C.expando] ? e : new C.Event(m,"object" == typeof e && e)).isTrigger = i ? 2 : 3, e.namespace = g.join("."), e.rnamespace = e.namespace ? new RegExp("(^|\\.)" + g.join("\\.(?:.*\\.|)") + "(\\.|$)") : null, e.result = void 0, e.target || (e.target = n), t = null == t ? [e] : C.makeArray(t, [e]), f = C.event.special[m] || {}, i || !f.trigger || !1 !== f.trigger.apply(n, t))) { if (!i && !f.noBubble && !y(n)) { for (l = f.delegateType || m, kt.test(l + m) || (a = a.parentNode); a; a = a.parentNode) h.push(a), s = a; s === (n.ownerDocument || b) && h.push(s.defaultView || s.parentWindow || r) } for (o = 0; (a = h[o++]) && !e.isPropagationStopped(); ) d = a, e.type = o > 1 ? l : f.bindType || m, (c = (K.get(a, "events") || Object.create(null))[e.type] && K.get(a, "handle")) && c.apply(a, t), (c = u && a[u]) && c.apply && G(a) && (e.result = c.apply(a, t), !1 === e.result && e.preventDefault()); return e.type = m, i || e.isDefaultPrevented() || f._default && !1 !== f._default.apply(h.pop(), t) || !G(n) || u && v(n[m]) && !y(n) && ((s = n[u]) && (n[u] = null), C.event.triggered = m, e.isPropagationStopped() && d.addEventListener(m, Ct), n[m](), e.isPropagationStopped() && d.removeEventListener(m, Ct), C.event.triggered = void 0, s && (n[u] = s)), e.result } }, simulate: function(e, t, n) { var r = C.extend(new C.Event, n, { type: e, isSimulated: !0 }); C.event.trigger(r, null, t) } }), C.fn.extend({ trigger: function(e, t) { return this.each((function() { C.event.trigger(e, t, this) } )) }, triggerHandler: function(e, t) { var n = this[0]; if (n) return C.event.trigger(e, t, n, !0) } }), g.focusin || C.each({ focus: "focusin", blur: "focusout" }, (function(e, t) { var n = function(e) { C.event.simulate(t, e.target, C.event.fix(e)) }; C.event.special[t] = { setup: function() { var r = this.ownerDocument || this.document || this , i = K.access(r, t); i || r.addEventListener(e, n, !0), K.access(r, t, (i || 0) + 1) }, teardown: function() { var r = this.ownerDocument || this.document || this , i = K.access(r, t) - 1; i ? K.access(r, t, i) : (r.removeEventListener(e, n, !0), K.remove(r, t)) } } } )); var Et = r.location , St = { guid: Date.now() } , At = /\?/; C.parseXML = function(e) { var t; if (!e || "string" != typeof e) return null; try { t = (new r.DOMParser).parseFromString(e, "text/xml") } catch (e) { t = void 0 } return t && !t.getElementsByTagName("parsererror").length || C.error("Invalid XML: " + e), t } ; var Dt = /\[\]$/ , Nt = /\r?\n/g , jt = /^(?:submit|button|image|reset|file)$/i , Lt = /^(?:input|select|textarea|keygen)/i; function Ot(e, t, n, r) { var i; if (Array.isArray(t)) C.each(t, (function(t, i) { n || Dt.test(e) ? r(e, i) : Ot(e + "[" + ("object" == typeof i && null != i ? t : "") + "]", i, n, r) } )); else if (n || "object" !== T(t)) r(e, t); else for (i in t) Ot(e + "[" + i + "]", t[i], n, r) } C.param = function(e, t) { var n, r = [], i = function(e, t) { var n = v(t) ? t() : t; r[r.length] = encodeURIComponent(e) + "=" + encodeURIComponent(null == n ? "" : n) }; if (null == e) return ""; if (Array.isArray(e) || e.jquery && !C.isPlainObject(e)) C.each(e, (function() { i(this.name, this.value) } )); else for (n in e) Ot(n, e[n], t, i); return r.join("&") } , C.fn.extend({ serialize: function() { return C.param(this.serializeArray()) }, serializeArray: function() { return this.map((function() { var e = C.prop(this, "elements"); return e ? C.makeArray(e) : this } )).filter((function() { var e = this.type; return this.name && !C(this).is(":disabled") && Lt.test(this.nodeName) && !jt.test(e) && (this.checked || !ge.test(e)) } )).map((function(e, t) { var n = C(this).val(); return null == n ? null : Array.isArray(n) ? C.map(n, (function(e) { return { name: t.name, value: e.replace(Nt, "\r\n") } } )) : { name: t.name, value: n.replace(Nt, "\r\n") } } )).get() } }); var qt = /%20/g , $t = /#.*$/ , It = /([?&])_=[^&]*/ , Mt = /^(.*?):[ \t]*([^\r\n]*)$/gm , Pt = /^(?:GET|HEAD)$/ , Ht = /^\/\// , Rt = {} , Ft = {} , _t = "*/".concat("*") , zt = b.createElement("a"); function Bt(e) { return function(t, n) { "string" != typeof t && (n = t, t = "*"); var r, i = 0, o = t.toLowerCase().match(H) || []; if (v(n)) for (; r = o[i++]; ) "+" === r[0] ? (r = r.slice(1) || "*", (e[r] = e[r] || []).unshift(n)) : (e[r] = e[r] || []).push(n) } } function Wt(e, t, n, r) { var i = {} , o = e === Ft; function a(s) { var l; return i[s] = !0, C.each(e[s] || [], (function(e, s) { var u = s(t, n, r); return "string" != typeof u || o || i[u] ? o ? !(l = u) : void 0 : (t.dataTypes.unshift(u), a(u), !1) } )), l } return a(t.dataTypes[0]) || !i["*"] && a("*") } function Ut(e, t) { var n, r, i = C.ajaxSettings.flatOptions || {}; for (n in t) void 0 !== t[n] && ((i[n] ? e : r || (r = {}))[n] = t[n]); return r && C.extend(!0, e, r), e } zt.href = Et.href, C.extend({ active: 0, lastModified: {}, etag: {}, ajaxSettings: { url: Et.href, type: "GET", isLocal: /^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Et.protocol), global: !0, processData: !0, async: !0, contentType: "application/x-www-form-urlencoded; charset=UTF-8", accepts: { "*": _t, text: "text/plain", html: "text/html", xml: "application/xml, text/xml", json: "application/json, text/javascript" }, contents: { xml: /\bxml\b/, html: /\bhtml/, json: /\bjson\b/ }, responseFields: { xml: "responseXML", text: "responseText", json: "responseJSON" }, converters: { "* text": String, "text html": !0, "text json": JSON.parse, "text xml": C.parseXML }, flatOptions: { url: !0, context: !0 } }, ajaxSetup: function(e, t) { return t ? Ut(Ut(e, C.ajaxSettings), t) : Ut(C.ajaxSettings, e) }, ajaxPrefilter: Bt(Rt), ajaxTransport: Bt(Ft), ajax: function(e, t) { "object" == typeof e && (t = e, e = void 0), t = t || {}; var n, i, o, a, s, l, u, c, f, d, p = C.ajaxSetup({}, t), h = p.context || p, m = p.context && (h.nodeType || h.jquery) ? C(h) : C.event, g = C.Deferred(), v = C.Callbacks("once memory"), y = p.statusCode || {}, x = {}, w = {}, T = "canceled", k = { readyState: 0, getResponseHeader: function(e) { var t; if (u) { if (!a) for (a = {}; t = Mt.exec(o); ) a[t[1].toLowerCase() + " "] = (a[t[1].toLowerCase() + " "] || []).concat(t[2]); t = a[e.toLowerCase() + " "] } return null == t ? null : t.join(", ") }, getAllResponseHeaders: function() { return u ? o : null }, setRequestHeader: function(e, t) { return null == u && (e = w[e.toLowerCase()] = w[e.toLowerCase()] || e, x[e] = t), this }, overrideMimeType: function(e) { return null == u && (p.mimeType = e), this }, statusCode: function(e) { var t; if (e) if (u) k.always(e[k.status]); else for (t in e) y[t] = [y[t], e[t]]; return this }, abort: function(e) { var t = e || T; return n && n.abort(t), E(0, t), this } }; if (g.promise(k), p.url = ((e || p.url || Et.href) + "").replace(Ht, Et.protocol + "//"), p.type = t.method || t.type || p.method || p.type, p.dataTypes = (p.dataType || "*").toLowerCase().match(H) || [""], null == p.crossDomain) { l = b.createElement("a"); try { l.href = p.url, l.href = l.href, p.crossDomain = zt.protocol + "//" + zt.host != l.protocol + "//" + l.host } catch (e) { p.crossDomain = !0 } } if (p.data && p.processData && "string" != typeof p.data && (p.data = C.param(p.data, p.traditional)), Wt(Rt, p, t, k), u) return k; for (f in (c = C.event && p.global) && 0 == C.active++ && C.event.trigger("ajaxStart"), p.type = p.type.toUpperCase(), p.hasContent = !Pt.test(p.type), i = p.url.replace($t, ""), p.hasContent ? p.data && p.processData && 0 === (p.contentType || "").indexOf("application/x-www-form-urlencoded") && (p.data = p.data.replace(qt, "+")) : (d = p.url.slice(i.length), p.data && (p.processData || "string" == typeof p.data) && (i += (At.test(i) ? "&" : "?") + p.data, delete p.data), !1 === p.cache && (i = i.replace(It, "$1"), d = (At.test(i) ? "&" : "?") + "_=" + St.guid++ + d), p.url = i + d), p.ifModified && (C.lastModified[i] && k.setRequestHeader("If-Modified-Since", C.lastModified[i]), C.etag[i] && k.setRequestHeader("If-None-Match", C.etag[i])), (p.data && p.hasContent && !1 !== p.contentType || t.contentType) && k.setRequestHeader("Content-Type", p.contentType), k.setRequestHeader("Accept", p.dataTypes[0] && p.accepts[p.dataTypes[0]] ? p.accepts[p.dataTypes[0]] + ("*" !== p.dataTypes[0] ? ", " + _t + "; q=0.01" : "") : p.accepts["*"]), p.headers) k.setRequestHeader(f, p.headers[f]); if (p.beforeSend && (!1 === p.beforeSend.call(h, k, p) || u)) return k.abort(); if (T = "abort", v.add(p.complete), k.done(p.success), k.fail(p.error), n = Wt(Ft, p, t, k)) { if (k.readyState = 1, c && m.trigger("ajaxSend", [k, p]), u) return k; p.async && p.timeout > 0 && (s = r.setTimeout((function() { k.abort("timeout") } ), p.timeout)); try { u = !1, n.send(x, E) } catch (e) { if (u) throw e; E(-1, e) } } else E(-1, "No Transport"); function E(e, t, a, l) { var f, d, b, x, w, T = t; u || (u = !0, s && r.clearTimeout(s), n = void 0, o = l || "", k.readyState = e > 0 ? 4 : 0, f = e >= 200 && e < 300 || 304 === e, a && (x = function(e, t, n) { for (var r, i, o, a, s = e.contents, l = e.dataTypes; "*" === l[0]; ) l.shift(), void 0 === r && (r = e.mimeType || t.getResponseHeader("Content-Type")); if (r) for (i in s) if (s[i] && s[i].test(r)) { l.unshift(i); break } if (l[0]in n) o = l[0]; else { for (i in n) { if (!l[0] || e.converters[i + " " + l[0]]) { o = i; break } a || (a = i) } o = o || a } if (o) return o !== l[0] && l.unshift(o), n[o] }(p, k, a)), !f && C.inArray("script", p.dataTypes) > -1 && (p.converters["text script"] = function() {} ), x = function(e, t, n, r) { var i, o, a, s, l, u = {}, c = e.dataTypes.slice(); if (c[1]) for (a in e.converters) u[a.toLowerCase()] = e.converters[a]; for (o = c.shift(); o; ) if (e.responseFields[o] && (n[e.responseFields[o]] = t), !l && r && e.dataFilter && (t = e.dataFilter(t, e.dataType)), l = o, o = c.shift()) if ("*" === o) o = l; else if ("*" !== l && l !== o) { if (!(a = u[l + " " + o] || u["* " + o])) for (i in u) if ((s = i.split(" "))[1] === o && (a = u[l + " " + s[0]] || u["* " + s[0]])) { !0 === a ? a = u[i] : !0 !== u[i] && (o = s[0], c.unshift(s[1])); break } if (!0 !== a) if (a && e.throws) t = a(t); else try { t = a(t) } catch (e) { return { state: "parsererror", error: a ? e : "No conversion from " + l + " to " + o } } } return { state: "success", data: t } }(p, x, k, f), f ? (p.ifModified && ((w = k.getResponseHeader("Last-Modified")) && (C.lastModified[i] = w), (w = k.getResponseHeader("etag")) && (C.etag[i] = w)), 204 === e || "HEAD" === p.type ? T = "nocontent" : 304 === e ? T = "notmodified" : (T = x.state, d = x.data, f = !(b = x.error))) : (b = T, !e && T || (T = "error", e < 0 && (e = 0))), k.status = e, k.statusText = (t || T) + "", f ? g.resolveWith(h, [d, T, k]) : g.rejectWith(h, [k, T, b]), k.statusCode(y), y = void 0, c && m.trigger(f ? "ajaxSuccess" : "ajaxError", [k, p, f ? d : b]), v.fireWith(h, [k, T]), c && (m.trigger("ajaxComplete", [k, p]), --C.active || C.event.trigger("ajaxStop"))) } return k }, getJSON: function(e, t, n) { return C.get(e, t, n, "json") }, getScript: function(e, t) { return C.get(e, void 0, t, "script") } }), C.each(["get", "post"], (function(e, t) { C[t] = function(e, n, r, i) { return v(n) && (i = i || r, r = n, n = void 0), C.ajax(C.extend({ url: e, type: t, dataType: i, data: n, success: r }, C.isPlainObject(e) && e)) } } )), C.ajaxPrefilter((function(e) { var t; for (t in e.headers) "content-type" === t.toLowerCase() && (e.contentType = e.headers[t] || "") } )), C._evalUrl = function(e, t, n) { return C.ajax({ url: e, type: "GET", dataType: "script", cache: !0, async: !1, global: !1, converters: { "text script": function() {} }, dataFilter: function(e) { C.globalEval(e, t, n) } }) } , C.fn.extend({ wrapAll: function(e) { var t; return this[0] && (v(e) && (e = e.call(this[0])), t = C(e, this[0].ownerDocument).eq(0).clone(!0), this[0].parentNode && t.insertBefore(this[0]), t.map((function() { for (var e = this; e.firstElementChild; ) e = e.firstElementChild; return e } )).append(this)), this }, wrapInner: function(e) { return v(e) ? this.each((function(t) { C(this).wrapInner(e.call(this, t)) } )) : this.each((function() { var t = C(this) , n = t.contents(); n.length ? n.wrapAll(e) : t.append(e) } )) }, wrap: function(e) { var t = v(e); return this.each((function(n) { C(this).wrapAll(t ? e.call(this, n) : e) } )) }, unwrap: function(e) { return this.parent(e).not("body").each((function() { C(this).replaceWith(this.childNodes) } )), this } }), C.expr.pseudos.hidden = function(e) { return !C.expr.pseudos.visible(e) } , C.expr.pseudos.visible = function(e) { return !!(e.offsetWidth || e.offsetHeight || e.getClientRects().length) } , C.ajaxSettings.xhr = function() { try { return new r.XMLHttpRequest } catch (e) {} } ; var Xt = { 0: 200, 1223: 204 } , Vt = C.ajaxSettings.xhr(); g.cors = !!Vt && "withCredentials"in Vt, g.ajax = Vt = !!Vt, C.ajaxTransport((function(e) { var t, n; if (g.cors || Vt && !e.crossDomain) return { send: function(i, o) { var a, s = e.xhr(); if (s.open(e.type, e.url, e.async, e.username, e.password), e.xhrFields) for (a in e.xhrFields) s[a] = e.xhrFields[a]; for (a in e.mimeType && s.overrideMimeType && s.overrideMimeType(e.mimeType), e.crossDomain || i["X-Requested-With"] || (i["X-Requested-With"] = "XMLHttpRequest"), i) s.setRequestHeader(a, i[a]); t = function(e) { return function() { t && (t = n = s.onload = s.onerror = s.onabort = s.ontimeout = s.onreadystatechange = null, "abort" === e ? s.abort() : "error" === e ? "number" != typeof s.status ? o(0, "error") : o(s.status, s.statusText) : o(Xt[s.status] || s.status, s.statusText, "text" !== (s.responseType || "text") || "string" != typeof s.responseText ? { binary: s.response } : { text: s.responseText }, s.getAllResponseHeaders())) } } , s.onload = t(), n = s.onerror = s.ontimeout = t("error"), void 0 !== s.onabort ? s.onabort = n : s.onreadystatechange = function() { 4 === s.readyState && r.setTimeout((function() { t && n() } )) } , t = t("abort"); try { s.send(e.hasContent && e.data || null) } catch (e) { if (t) throw e } }, abort: function() { t && t() } } } )), C.ajaxPrefilter((function(e) { e.crossDomain && (e.contents.script = !1) } )), C.ajaxSetup({ accepts: { script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript" }, contents: { script: /\b(?:java|ecma)script\b/ }, converters: { "text script": function(e) { return C.globalEval(e), e } } }), C.ajaxPrefilter("script", (function(e) { void 0 === e.cache && (e.cache = !1), e.crossDomain && (e.type = "GET") } )), C.ajaxTransport("script", (function(e) { var t, n; if (e.crossDomain || e.scriptAttrs) return { send: function(r, i) { t = C("<script>").attr(e.scriptAttrs || {}).prop({ charset: e.scriptCharset, src: e.url }).on("load error", n = function(e) { t.remove(), n = null, e && i("error" === e.type ? 404 : 200, e.type) } ), b.head.appendChild(t[0]) }, abort: function() { n && n() } } } )); var Qt, Yt = [], Gt = /(=)\?(?=&|$)|\?\?/; C.ajaxSetup({ jsonp: "callback", jsonpCallback: function() { var e = Yt.pop() || C.expando + "_" + St.guid++; return this[e] = !0, e } }), C.ajaxPrefilter("json jsonp", (function(e, t, n) { var i, o, a, s = !1 !== e.jsonp && (Gt.test(e.url) ? "url" : "string" == typeof e.data && 0 === (e.contentType || "").indexOf("application/x-www-form-urlencoded") && Gt.test(e.data) && "data"); if (s || "jsonp" === e.dataTypes[0]) return i = e.jsonpCallback = v(e.jsonpCallback) ? e.jsonpCallback() : e.jsonpCallback, s ? e[s] = e[s].replace(Gt, "$1" + i) : !1 !== e.jsonp && (e.url += (At.test(e.url) ? "&" : "?") + e.jsonp + "=" + i), e.converters["script json"] = function() { return a || C.error(i + " was not called"), a[0] } , e.dataTypes[0] = "json", o = r[i], r[i] = function() { a = arguments } , n.always((function() { void 0 === o ? C(r).removeProp(i) : r[i] = o, e[i] && (e.jsonpCallback = t.jsonpCallback, Yt.push(i)), a && v(o) && o(a[0]), a = o = void 0 } )), "script" } )), g.createHTMLDocument = ((Qt = b.implementation.createHTMLDocument("").body).innerHTML = "<form></form><form></form>", 2 === Qt.childNodes.length), C.parseHTML = function(e, t, n) { return "string" != typeof e ? [] : ("boolean" == typeof t && (n = t, t = !1), t || (g.createHTMLDocument ? ((r = (t = b.implementation.createHTMLDocument("")).createElement("base")).href = b.location.href, t.head.appendChild(r)) : t = b), o = !n && [], (i = L.exec(e)) ? [t.createElement(i[1])] : (i = ke([e], t, o), o && o.length && C(o).remove(), C.merge([], i.childNodes))); var r, i, o } , C.fn.load = function(e, t, n) { var r, i, o, a = this, s = e.indexOf(" "); return s > -1 && (r = bt(e.slice(s)), e = e.slice(0, s)), v(t) ? (n = t, t = void 0) : t && "object" == typeof t && (i = "POST"), a.length > 0 && C.ajax({ url: e, type: i || "GET", dataType: "html", data: t }).done((function(e) { o = arguments, a.html(r ? C("<div>").append(C.parseHTML(e)).find(r) : e) } )).always(n && function(e, t) { a.each((function() { n.apply(this, o || [e.responseText, t, e]) } )) } ), this } , C.expr.pseudos.animated = function(e) { return C.grep(C.timers, (function(t) { return e === t.elem } )).length } , C.offset = { setOffset: function(e, t, n) { var r, i, o, a, s, l, u = C.css(e, "position"), c = C(e), f = {}; "static" === u && (e.style.position = "relative"), s = c.offset(), o = C.css(e, "top"), l = C.css(e, "left"), ("absolute" === u || "fixed" === u) && (o + l).indexOf("auto") > -1 ? (a = (r = c.position()).top, i = r.left) : (a = parseFloat(o) || 0, i = parseFloat(l) || 0), v(t) && (t = t.call(e, n, C.extend({}, s))), null != t.top && (f.top = t.top - s.top + a), null != t.left && (f.left = t.left - s.left + i), "using"in t ? t.using.call(e, f) : ("number" == typeof f.top && (f.top += "px"), "number" == typeof f.left && (f.left += "px"), c.css(f)) } }, C.fn.extend({ offset: function(e) { if (arguments.length) return void 0 === e ? this : this.each((function(t) { C.offset.setOffset(this, e, t) } )); var t, n, r = this[0]; return r ? r.getClientRects().length ? (t = r.getBoundingClientRect(), n = r.ownerDocument.defaultView, { top: t.top + n.pageYOffset, left: t.left + n.pageXOffset }) : { top: 0, left: 0 } : void 0 }, position: function() { if (this[0]) { var e, t, n, r = this[0], i = { top: 0, left: 0 }; if ("fixed" === C.css(r, "position")) t = r.getBoundingClientRect(); else { for (t = this.offset(), n = r.ownerDocument, e = r.offsetParent || n.documentElement; e && (e === n.body || e === n.documentElement) && "static" === C.css(e, "position"); ) e = e.parentNode; e && e !== r && 1 === e.nodeType && ((i = C(e).offset()).top += C.css(e, "borderTopWidth", !0), i.left += C.css(e, "borderLeftWidth", !0)) } return { top: t.top - i.top - C.css(r, "marginTop", !0), left: t.left - i.left - C.css(r, "marginLeft", !0) } } }, offsetParent: function() { return this.map((function() { for (var e = this.offsetParent; e && "static" === C.css(e, "position"); ) e = e.offsetParent; return e || ae } )) } }), C.each({ scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, (function(e, t) { var n = "pageYOffset" === t; C.fn[e] = function(r) { return U(this, (function(e, r, i) { var o; if (y(e) ? o = e : 9 === e.nodeType && (o = e.defaultView), void 0 === i) return o ? o[t] : e[r]; o ? o.scrollTo(n ? o.pageXOffset : i, n ? i : o.pageYOffset) : e[r] = i } ), e, r, arguments.length) } } )), C.each(["top", "left"], (function(e, t) { C.cssHooks[t] = Ve(g.pixelPosition, (function(e, n) { if (n) return n = Xe(e, t), ze.test(n) ? C(e).position()[t] + "px" : n } )) } )), C.each({ Height: "height", Width: "width" }, (function(e, t) { C.each({ padding: "inner" + e, content: t, "": "outer" + e }, (function(n, r) { C.fn[r] = function(i, o) { var a = arguments.length && (n || "boolean" != typeof i) , s = n || (!0 === i || !0 === o ? "margin" : "border"); return U(this, (function(t, n, i) { var o; return y(t) ? 0 === r.indexOf("outer") ? t["inner" + e] : t.document.documentElement["client" + e] : 9 === t.nodeType ? (o = t.documentElement, Math.max(t.body["scroll" + e], o["scroll" + e], t.body["offset" + e], o["offset" + e], o["client" + e])) : void 0 === i ? C.css(t, n, s) : C.style(t, n, i, s) } ), t, a ? i : void 0, a) } } )) } )), C.each(["ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], (function(e, t) { C.fn[t] = function(e) { return this.on(t, e) } } )), C.fn.extend({ bind: function(e, t, n) { return this.on(e, null, t, n) }, unbind: function(e, t) { return this.off(e, null, t) }, delegate: function(e, t, n, r) { return this.on(t, e, n, r) }, undelegate: function(e, t, n) { return 1 === arguments.length ? this.off(e, "**") : this.off(t, e || "**", n) }, hover: function(e, t) { return this.mouseenter(e).mouseleave(t || e) } }), C.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "), (function(e, t) { C.fn[t] = function(e, n) { return arguments.length > 0 ? this.on(t, null, e, n) : this.trigger(t) } } )); var Jt = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g; C.proxy = function(e, t) { var n, r, i; if ("string" == typeof t && (n = e[t], t = e, e = n), v(e)) return r = s.call(arguments, 2), (i = function() { return e.apply(t || this, r.concat(s.call(arguments))) } ).guid = e.guid = e.guid || C.guid++, i } , C.holdReady = function(e) { e ? C.readyWait++ : C.ready(!0) } , C.isArray = Array.isArray, C.parseJSON = JSON.parse, C.nodeName = j, C.isFunction = v, C.isWindow = y, C.camelCase = Y, C.type = T, C.now = Date.now, C.isNumeric = function(e) { var t = C.type(e); return ("number" === t || "string" === t) && !isNaN(e - parseFloat(e)) } , C.trim = function(e) { return null == e ? "" : (e + "").replace(Jt, "") } , void 0 === (n = function() { return C } .apply(t, [])) || (e.exports = n); var Kt = r.jQuery , Zt = r.$; return C.noConflict = function(e) { return r.$ === C && (r.$ = Zt), e && r.jQuery === C && (r.jQuery = Kt), C } , void 0 === i && (r.jQuery = r.$ = C), C } )) } } , t = {}; function n(r) { if (t[r]) return t[r].exports; var i = t[r] = { exports: {} }; return e[r].call(i.exports, i, i.exports, n), i.exports } n.g = function() { if ("object" == typeof globalThis) return globalThis; try { return this || new Function("return this")() } catch (e) { if ("object" == typeof window) return window } }(), // n(454), // window.ScrollReveal = n(859), jQuery = n(46), window.jQuery = jQuery, window.$ = jQuery, n(127), n(98), n(129), // n(772), n(639), n(732) // n(58), // n(570) } )(); function get_btoa_m(timestamp) { var m_m = window.btoa(timestamp); return m_m } // mm = get_btoa_m('1774335170000') // console.log(mm)
python代码如下:
import json import time import requests def get_question_16_result(): """webpack btoa""" url = "https://match.yuanrenxue.cn/api/question/16" headers = { "accept": "application/json, text/javascript, */*; q=0.01", # "accept-encoding": "gzip, deflate, br", "accept-language": "zh-CN,zh;q=0.9", "cookie": "Hm_lvt_f80b2b389f44bbfb3bfe1704817d44e0=1773998064; sessionid=1p34qxd0wn3sc2nlip8vx6izgffrh0m9; m=a37ca75833ca865d11a7451f18043a14|1774000280348; HMACCOUNT=5CCC201FDBE7CB2F; yuanrenxue_cookie=1774248315|H9iyxX7cyNbIKK3lJpCJQzOvYnqIJjbhyhj3BfcKkEeWIOqhIAmtsCqygVmvm4rOBcvzZHu; Hm_lpvt_f80b2b389f44bbfb3bfe1704817d44e0=1774257731", "referer": "https://match.yuanrenxue.cn/match/16", "sec-ch-ua": "\"Chromium\";v=\"94\", \"Google Chrome\";v=\"94\", \";Not A Brand\";v=\"99\"", "sec-ch-ua-mobile": "?0", "sec-ch-ua-platform": "\"Windows\"", "sec-fetch-dest": "empty", "sec-fetch-mode": "cors", "sec-fetch-site": "same-origin", "user-agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36", "x-requested-with": "XMLHttpRequest" } sum_data = 0 s = requests.Session() s.headers.clear() s.headers.update(headers) for page in range(1, 6): timestamp = int(time.time()*1000) if page == 5: headers['user-agent'] = 'yuanrenxue' s.headers.update(headers) with open('btoa_js.js', 'r', encoding='gbk', errors='ignore') as f: obj = f.read() m = execjs.compile(obj).call('get_btoa_m', str(timestamp)) params = { "page": page, # "pageSize": "10", "t": timestamp, "m": m, } try: r = s.get(url=url, params=params, verify=False) if r.status_code == 200: data = r.json()['data'] sum_data += sum(data) print(f"翻第{str(page)}页,累计求和:{sum_data}") else: print(f'error:{r.status_code}-----{r.text}') except Exception as e: raise ValueError(e) if __name__ == '__main__': get_question_16_result()
实践出真知~
浙公网安备 33010602011771号