403Webshell
Server IP : 103.234.187.230  /  Your IP : 216.73.216.216
Web Server : Apache
System : Linux lserver42043-ind.megavelocity.net 3.10.0-1160.108.1.el7.x86_64 #1 SMP Thu Jan 25 16:17:31 UTC 2024 x86_64
User : apache ( 48)
PHP Version : 7.4.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /var/www/html/b2c.hellogtx.com/public/upload/travelonn/js/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/html/b2c.hellogtx.com/public/upload/travelonn/js/jquery.min.js
!function (t, e) { "use strict"; "object" == typeof module && "object" == typeof module.exports ? module.exports = t.document ? e(t, !0) : function (t) { if (!t.document) throw new Error("jQuery requires a window with a document"); return e(t) } : e(t) }("undefined" != typeof window ? window : this, function (C, t) { "use strict"; function g(t) { return null != t && t === t.window } var e = [], i = Object.getPrototypeOf, a = e.slice, m = e.flat ? function (t) { return e.flat.call(t) } : function (t) { return e.concat.apply([], t) }, l = e.push, s = e.indexOf, n = {}, o = n.toString, v = n.hasOwnProperty, r = v.toString, h = r.call(Object), _ = {}, y = function (t) { return "function" == typeof t && "number" != typeof t.nodeType }, k = C.document, c = { type: !0, src: !0, nonce: !0, noModule: !0 }; function b(t, e, i) { var n, s, o = (i = i || k).createElement("script"); if (o.text = t, e) for (n in c) (s = e[n] || e.getAttribute && e.getAttribute(n)) && o.setAttribute(n, s); i.head.appendChild(o).parentNode.removeChild(o) } function f(t) { return null == t ? t + "" : "object" == typeof t || "function" == typeof t ? n[o.call(t)] || "object" : typeof t } var u = "3.5.1", T = function (t, e) { return new T.fn.init(t, e) }; function d(t) { var e = !!t && "length" in t && t.length, i = f(t); return !y(t) && !g(t) && ("array" === i || 0 === e || "number" == typeof e && 0 < e && e - 1 in t) } T.fn = T.prototype = { jquery: u, constructor: T, length: 0, toArray: function () { return a.call(this) }, get: function (t) { return null == t ? a.call(this) : t < 0 ? this[t + this.length] : this[t] }, pushStack: function (t) { t = T.merge(this.constructor(), t); return t.prevObject = this, t }, each: function (t) { return T.each(this, t) }, map: function (i) { return this.pushStack(T.map(this, function (t, e) { return i.call(t, e, t) })) }, slice: function () { return this.pushStack(a.apply(this, arguments)) }, first: function () { return this.eq(0) }, last: function () { return this.eq(-1) }, even: function () { return this.pushStack(T.grep(this, function (t, e) { return (e + 1) % 2 })) }, odd: function () { return this.pushStack(T.grep(this, function (t, e) { return e % 2 })) }, eq: function (t) { var e = this.length, t = +t + (t < 0 ? e : 0); return this.pushStack(0 <= t && t < e ? [this[t]] : []) }, end: function () { return this.prevObject || this.constructor() }, push: l, sort: e.sort, splice: e.splice }, T.extend = T.fn.extend = function () { var t, e, i, n, s, o = arguments[0] || {}, r = 1, a = arguments.length, l = !1; for ("boolean" == typeof o && (l = o, o = arguments[r] || {}, r++), "object" == typeof o || y(o) || (o = {}), r === a && (o = this, r--); r < a; r++)if (null != (t = arguments[r])) for (e in t) i = t[e], "__proto__" !== e && o !== i && (l && i && (T.isPlainObject(i) || (n = Array.isArray(i))) ? (s = o[e], s = n && !Array.isArray(s) ? [] : n || T.isPlainObject(s) ? s : {}, n = !1, o[e] = T.extend(l, s, i)) : void 0 !== i && (o[e] = i)); return o }, T.extend({ expando: "jQuery" + (u + Math.random()).replace(/\D/g, ""), isReady: !0, error: function (t) { throw new Error(t) }, noop: function () { }, isPlainObject: function (t) { return !(!t || "[object Object]" !== o.call(t) || (t = i(t)) && ("function" != typeof (t = v.call(t, "constructor") && t.constructor) || r.call(t) !== h)) }, isEmptyObject: function (t) { for (var e in t) return !1; return !0 }, globalEval: function (t, e, i) { b(t, { nonce: e && e.nonce }, i) }, each: function (t, e) { var i, n = 0; if (d(t)) for (i = t.length; n < i && !1 !== e.call(t[n], n, t[n]); n++); else for (n in t) if (!1 === e.call(t[n], n, t[n])) break; return t }, makeArray: function (t, e) { e = e || []; return null != t && (d(Object(t)) ? T.merge(e, "string" == typeof t ? [t] : t) : l.call(e, t)), e }, inArray: function (t, e, i) { return null == e ? -1 : s.call(e, t, i) }, merge: function (t, e) { for (var i = +e.length, n = 0, s = t.length; n < i; n++)t[s++] = e[n]; return t.length = s, t }, grep: function (t, e, i) { for (var n = [], s = 0, o = t.length, r = !i; s < o; s++)!e(t[s], s) != r && n.push(t[s]); return n }, map: function (t, e, i) { var n, s, o = 0, r = []; if (d(t)) for (n = t.length; o < n; o++)null != (s = e(t[o], o, i)) && r.push(s); else for (o in t) null != (s = e(t[o], o, i)) && r.push(s); return m(r) }, guid: 1, support: _ }), "function" == typeof Symbol && (T.fn[Symbol.iterator] = e[Symbol.iterator]), T.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), function (t, e) { n["[object " + e + "]"] = e.toLowerCase() }); var p = function (i) { function u(t, e) { return t = "0x" + t.slice(1) - 65536, e || (t < 0 ? String.fromCharCode(65536 + t) : String.fromCharCode(t >> 10 | 55296, 1023 & t | 56320)) } function n() { x() } var t, p, b, o, s, f, d, g, w, l, h, x, C, r, k, m, a, c, v, T = "sizzle" + +new Date, _ = i.document, D = 0, y = 0, E = lt(), S = lt(), I = lt(), A = lt(), P = function (t, e) { return t === e && (h = !0), 0 }, N = {}.hasOwnProperty, e = [], M = e.pop, O = e.push, H = e.push, L = e.slice, z = function (t, e) { for (var i = 0, n = t.length; i < n; i++)if (t[i] === e) return i; return -1 }, j = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", F = "[\\x20\\t\\r\\n\\f]", W = "(?:\\\\[\\da-fA-F]{1,6}" + F + "?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+", R = "\\[" + F + "*(" + W + ")(?:" + F + "*([*^$|!~]?=)" + F + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + W + "))|)" + F + "*\\]", B = ":(" + W + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + R + ")*)|.*)\\)|)", $ = new RegExp(F + "+", "g"), q = new RegExp("^" + F + "+|((?:^|[^\\\\])(?:\\\\.)*)" + F + "+$", "g"), Y = new RegExp("^" + F + "*," + F + "*"), U = new RegExp("^" + F + "*([>+~]|" + F + ")" + F + "*"), V = new RegExp(F + "|>"), K = new RegExp(B), X = new RegExp("^" + W + "$"), Q = { ID: new RegExp("^#(" + W + ")"), CLASS: new RegExp("^\\.(" + W + ")"), TAG: new RegExp("^(" + W + "|[*])"), ATTR: new RegExp("^" + R), PSEUDO: new RegExp("^" + B), CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + F + "*(even|odd|(([+-]|)(\\d*)n|)" + F + "*(?:([+-]|)" + F + "*(\\d+)|))" + F + "*\\)|)", "i"), bool: new RegExp("^(?:" + j + ")$", "i"), needsContext: new RegExp("^" + F + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + F + "*((?:-\\d)?\\d*)" + F + "*\\)|)(?=[^-]|$)", "i") }, G = /HTML$/i, J = /^(?:input|select|textarea|button)$/i, Z = /^h\d$/i, tt = /^[^{]+\{\s*\[native \w/, et = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, it = /[+~]/, nt = new RegExp("\\\\[\\da-fA-F]{1,6}" + F + "?|\\\\([^\\r\\n\\f])", "g"), st = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, ot = function (t, e) { return e ? "\0" === t ? "�" : t.slice(0, -1) + "\\" + t.charCodeAt(t.length - 1).toString(16) + " " : "\\" + t }, rt = _t(function (t) { return !0 === t.disabled && "fieldset" === t.nodeName.toLowerCase() }, { dir: "parentNode", next: "legend" }); try { H.apply(e = L.call(_.childNodes), _.childNodes), e[_.childNodes.length].nodeType } catch (t) { H = { apply: e.length ? function (t, e) { O.apply(t, L.call(e)) } : function (t, e) { for (var i = t.length, n = 0; t[i++] = e[n++];); t.length = i - 1 } } } function at(t, e, i, n) { var s, o, r, a, l, h, c, u = e && e.ownerDocument, d = e ? e.nodeType : 9; if (i = i || [], "string" != typeof t || !t || 1 !== d && 9 !== d && 11 !== d) return i; if (!n && (x(e), e = e || C, k)) { if (11 !== d && (l = et.exec(t))) if (s = l[1]) { if (9 === d) { if (!(r = e.getElementById(s))) return i; if (r.id === s) return i.push(r), i } else if (u && (r = u.getElementById(s)) && v(e, r) && r.id === s) return i.push(r), i } else { if (l[2]) return H.apply(i, e.getElementsByTagName(t)), i; if ((s = l[3]) && p.getElementsByClassName && e.getElementsByClassName) return H.apply(i, e.getElementsByClassName(s)), i } if (p.qsa && !A[t + " "] && (!m || !m.test(t)) && (1 !== d || "object" !== e.nodeName.toLowerCase())) { if (c = t, u = e, 1 === d && (V.test(t) || U.test(t))) { for ((u = it.test(t) && gt(e.parentNode) || e) === e && p.scope || ((a = e.getAttribute("id")) ? a = a.replace(st, ot) : e.setAttribute("id", a = T)), o = (h = f(t)).length; o--;)h[o] = (a ? "#" + a : ":scope") + " " + vt(h[o]); c = h.join(",") } try { return H.apply(i, u.querySelectorAll(c)), i } catch (e) { A(t, !0) } finally { a === T && e.removeAttribute("id") } } } return g(t.replace(q, "$1"), e, i, n) } function lt() { var n = []; return function t(e, i) { return n.push(e + " ") > b.cacheLength && delete t[n.shift()], t[e + " "] = i } } function ht(t) { return t[T] = !0, t } function ct(t) { var e = C.createElement("fieldset"); try { return !!t(e) } catch (t) { return !1 } finally { e.parentNode && e.parentNode.removeChild(e), e = null } } function ut(t, e) { for (var i = t.split("|"), n = i.length; n--;)b.attrHandle[i[n]] = e } function dt(t, e) { var i = e && t, n = i && 1 === t.nodeType && 1 === e.nodeType && t.sourceIndex - e.sourceIndex; if (n) return n; if (i) for (; i = i.nextSibling;)if (i === e) return -1; return t ? 1 : -1 } function pt(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 && rt(t) === e : t.disabled === e : "label" in t && t.disabled === e } } function ft(r) { return ht(function (o) { return o = +o, ht(function (t, e) { for (var i, n = r([], t.length, o), s = n.length; s--;)t[i = n[s]] && (t[i] = !(e[i] = t[i])) }) }) } function gt(t) { return t && void 0 !== t.getElementsByTagName && t } for (t in p = at.support = {}, s = at.isXML = function (t) { var e = t.namespaceURI, t = (t.ownerDocument || t).documentElement; return !G.test(e || t && t.nodeName || "HTML") }, x = at.setDocument = function (t) { var e, t = t ? t.ownerDocument || t : _; return t != C && 9 === t.nodeType && t.documentElement && (r = (C = t).documentElement, k = !s(C), _ != C && (e = C.defaultView) && e.top !== e && (e.addEventListener ? e.addEventListener("unload", n, !1) : e.attachEvent && e.attachEvent("onunload", n)), p.scope = ct(function (t) { return r.appendChild(t).appendChild(C.createElement("div")), void 0 !== t.querySelectorAll && !t.querySelectorAll(":scope fieldset div").length }), p.attributes = ct(function (t) { return t.className = "i", !t.getAttribute("className") }), p.getElementsByTagName = ct(function (t) { return t.appendChild(C.createComment("")), !t.getElementsByTagName("*").length }), p.getElementsByClassName = tt.test(C.getElementsByClassName), p.getById = ct(function (t) { return r.appendChild(t).id = T, !C.getElementsByName || !C.getElementsByName(T).length }), p.getById ? (b.filter.ID = function (t) { var e = t.replace(nt, u); return function (t) { return t.getAttribute("id") === e } }, b.find.ID = function (t, e) { if (void 0 !== e.getElementById && k) { t = e.getElementById(t); return t ? [t] : [] } }) : (b.filter.ID = function (t) { var e = t.replace(nt, u); return function (t) { t = void 0 !== t.getAttributeNode && t.getAttributeNode("id"); return t && t.value === e } }, b.find.ID = function (t, e) { if (void 0 !== e.getElementById && k) { var i, n, s, o = e.getElementById(t); if (o) { if ((i = o.getAttributeNode("id")) && i.value === t) return [o]; for (s = e.getElementsByName(t), n = 0; o = s[n++];)if ((i = o.getAttributeNode("id")) && i.value === t) return [o] } return [] } }), b.find.TAG = p.getElementsByTagName ? function (t, e) { return void 0 !== e.getElementsByTagName ? e.getElementsByTagName(t) : p.qsa ? e.querySelectorAll(t) : void 0 } : function (t, e) { var i, n = [], s = 0, o = e.getElementsByTagName(t); if ("*" !== t) return o; for (; i = o[s++];)1 === i.nodeType && n.push(i); return n }, b.find.CLASS = p.getElementsByClassName && function (t, e) { if (void 0 !== e.getElementsByClassName && k) return e.getElementsByClassName(t) }, a = [], m = [], (p.qsa = tt.test(C.querySelectorAll)) && (ct(function (t) { var e; r.appendChild(t).innerHTML = "<a id='" + T + "'></a><select id='" + T + "-\r\\' msallowcapture=''><option selected=''></option></select>", t.querySelectorAll("[msallowcapture^='']").length && m.push("[*^$]=" + F + "*(?:''|\"\")"), t.querySelectorAll("[selected]").length || m.push("\\[" + F + "*(?:value|" + j + ")"), t.querySelectorAll("[id~=" + T + "-]").length || m.push("~="), (e = C.createElement("input")).setAttribute("name", ""), t.appendChild(e), t.querySelectorAll("[name='']").length || m.push("\\[" + F + "*name" + F + "*=" + F + "*(?:''|\"\")"), t.querySelectorAll(":checked").length || m.push(":checked"), t.querySelectorAll("a#" + T + "+*").length || m.push(".#.+[+~]"), t.querySelectorAll("\\\f"), m.push("[\\r\\n\\f]") }), ct(function (t) { t.innerHTML = "<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>"; var e = C.createElement("input"); e.setAttribute("type", "hidden"), t.appendChild(e).setAttribute("name", "D"), t.querySelectorAll("[name=d]").length && m.push("name" + F + "*[*^$|!~]?="), 2 !== t.querySelectorAll(":enabled").length && m.push(":enabled", ":disabled"), r.appendChild(t).disabled = !0, 2 !== t.querySelectorAll(":disabled").length && m.push(":enabled", ":disabled"), t.querySelectorAll("*,:x"), m.push(",.*:") })), (p.matchesSelector = tt.test(c = r.matches || r.webkitMatchesSelector || r.mozMatchesSelector || r.oMatchesSelector || r.msMatchesSelector)) && ct(function (t) { p.disconnectedMatch = c.call(t, "*"), c.call(t, "[s!='']:x"), a.push("!=", B) }), m = m.length && new RegExp(m.join("|")), a = a.length && new RegExp(a.join("|")), e = tt.test(r.compareDocumentPosition), v = e || tt.test(r.contains) ? function (t, e) { var i = 9 === t.nodeType ? t.documentElement : t, e = e && e.parentNode; return t === e || !(!e || 1 !== e.nodeType || !(i.contains ? i.contains(e) : t.compareDocumentPosition && 16 & t.compareDocumentPosition(e))) } : function (t, e) { if (e) for (; e = e.parentNode;)if (e === t) return !0; return !1 }, P = e ? function (t, e) { if (t === e) return h = !0, 0; var i = !t.compareDocumentPosition - !e.compareDocumentPosition; return i || (1 & (i = (t.ownerDocument || t) == (e.ownerDocument || e) ? t.compareDocumentPosition(e) : 1) || !p.sortDetached && e.compareDocumentPosition(t) === i ? t == C || t.ownerDocument == _ && v(_, t) ? -1 : e == C || e.ownerDocument == _ && v(_, e) ? 1 : l ? z(l, t) - z(l, e) : 0 : 4 & i ? -1 : 1) } : function (t, e) { if (t === e) return h = !0, 0; var i, n = 0, s = t.parentNode, o = e.parentNode, r = [t], a = [e]; if (!s || !o) return t == C ? -1 : e == C ? 1 : s ? -1 : o ? 1 : l ? z(l, t) - z(l, e) : 0; if (s === o) return dt(t, e); for (i = t; i = i.parentNode;)r.unshift(i); for (i = e; i = i.parentNode;)a.unshift(i); for (; r[n] === a[n];)n++; return n ? dt(r[n], a[n]) : r[n] == _ ? -1 : a[n] == _ ? 1 : 0 }), C }, at.matches = function (t, e) { return at(t, null, null, e) }, at.matchesSelector = function (t, e) { if (x(t), p.matchesSelector && k && !A[e + " "] && (!a || !a.test(e)) && (!m || !m.test(e))) try { var i = c.call(t, e); if (i || p.disconnectedMatch || t.document && 11 !== t.document.nodeType) return i } catch (t) { A(e, !0) } return 0 < at(e, C, null, [t]).length }, at.contains = function (t, e) { return (t.ownerDocument || t) != C && x(t), v(t, e) }, at.attr = function (t, e) { (t.ownerDocument || t) != C && x(t); var i = b.attrHandle[e.toLowerCase()], i = i && N.call(b.attrHandle, e.toLowerCase()) ? i(t, e, !k) : void 0; return void 0 !== i ? i : p.attributes || !k ? t.getAttribute(e) : (i = t.getAttributeNode(e)) && i.specified ? i.value : null }, at.escape = function (t) { return (t + "").replace(st, ot) }, at.error = function (t) { throw new Error("Syntax error, unrecognized expression: " + t) }, at.uniqueSort = function (t) { var e, i = [], n = 0, s = 0; if (h = !p.detectDuplicates, l = !p.sortStable && t.slice(0), t.sort(P), h) { for (; e = t[s++];)e === t[s] && (n = i.push(s)); for (; n--;)t.splice(i[n], 1) } return l = null, t }, o = at.getText = function (t) { var e, i = "", n = 0, s = t.nodeType; if (s) { if (1 === s || 9 === s || 11 === s) { if ("string" == typeof t.textContent) return t.textContent; for (t = t.firstChild; t; t = t.nextSibling)i += o(t) } else if (3 === s || 4 === s) return t.nodeValue } else for (; e = t[n++];)i += o(e); return i }, (b = at.selectors = { cacheLength: 50, createPseudo: ht, match: Q, attrHandle: {}, find: {}, relative: { ">": { dir: "parentNode", first: !0 }, " ": { dir: "parentNode" }, "+": { dir: "previousSibling", first: !0 }, "~": { dir: "previousSibling" } }, preFilter: { ATTR: function (t) { return t[1] = t[1].replace(nt, u), t[3] = (t[3] || t[4] || t[5] || "").replace(nt, u), "~=" === t[2] && (t[3] = " " + t[3] + " "), t.slice(0, 4) }, CHILD: function (t) { return t[1] = t[1].toLowerCase(), "nth" === t[1].slice(0, 3) ? (t[3] || at.error(t[0]), t[4] = +(t[4] ? t[5] + (t[6] || 1) : 2 * ("even" === t[3] || "odd" === t[3])), t[5] = +(t[7] + t[8] || "odd" === t[3])) : t[3] && at.error(t[0]), t }, PSEUDO: function (t) { var e, i = !t[6] && t[2]; return Q.CHILD.test(t[0]) ? null : (t[3] ? t[2] = t[4] || t[5] || "" : i && K.test(i) && (e = f(i, !0)) && (e = i.indexOf(")", i.length - e) - i.length) && (t[0] = t[0].slice(0, e), t[2] = i.slice(0, e)), t.slice(0, 3)) } }, filter: { TAG: function (t) { var e = t.replace(nt, u).toLowerCase(); return "*" === t ? function () { return !0 } : function (t) { return t.nodeName && t.nodeName.toLowerCase() === e } }, CLASS: function (t) { var e = E[t + " "]; return e || (e = new RegExp("(^|" + F + ")" + t + "(" + F + "|$)")) && E(t, function (t) { return e.test("string" == typeof t.className && t.className || void 0 !== t.getAttribute && t.getAttribute("class") || "") }) }, ATTR: function (e, i, n) { return function (t) { t = at.attr(t, e); return null == t ? "!=" === i : !i || (t += "", "=" === i ? t === n : "!=" === i ? t !== n : "^=" === i ? n && 0 === t.indexOf(n) : "*=" === i ? n && -1 < t.indexOf(n) : "$=" === i ? n && t.slice(-n.length) === n : "~=" === i ? -1 < (" " + t.replace($, " ") + " ").indexOf(n) : "|=" === i && (t === n || t.slice(0, n.length + 1) === n + "-")) } }, CHILD: function (f, t, e, g, m) { var v = "nth" !== f.slice(0, 3), _ = "last" !== f.slice(-4), y = "of-type" === t; return 1 === g && 0 === m ? function (t) { return !!t.parentNode } : function (t, e, i) { var n, s, o, r, a, l, h = v != _ ? "nextSibling" : "previousSibling", c = t.parentNode, u = y && t.nodeName.toLowerCase(), d = !i && !y, p = !1; if (c) { if (v) { for (; h;) { for (r = t; r = r[h];)if (y ? r.nodeName.toLowerCase() === u : 1 === r.nodeType) return !1; l = h = "only" === f && !l && "nextSibling" } return !0 } if (l = [_ ? c.firstChild : c.lastChild], _ && d) { for (p = (a = (n = (s = (o = (r = c)[T] || (r[T] = {}))[r.uniqueID] || (o[r.uniqueID] = {}))[f] || [])[0] === D && n[1]) && n[2], r = a && c.childNodes[a]; r = ++a && r && r[h] || (p = a = 0) || l.pop();)if (1 === r.nodeType && ++p && r === t) { s[f] = [D, a, p]; break } } else if (d && (p = a = (n = (s = (o = (r = t)[T] || (r[T] = {}))[r.uniqueID] || (o[r.uniqueID] = {}))[f] || [])[0] === D && n[1]), !1 === p) for (; (r = ++a && r && r[h] || (p = a = 0) || l.pop()) && ((y ? r.nodeName.toLowerCase() !== u : 1 !== r.nodeType) || !++p || (d && ((s = (o = r[T] || (r[T] = {}))[r.uniqueID] || (o[r.uniqueID] = {}))[f] = [D, p]), r !== t));); return (p -= m) === g || p % g == 0 && 0 <= p / g } } }, PSEUDO: function (t, o) { var e, r = b.pseudos[t] || b.setFilters[t.toLowerCase()] || at.error("unsupported pseudo: " + t); return r[T] ? r(o) : 1 < r.length ? (e = [t, t, "", o], b.setFilters.hasOwnProperty(t.toLowerCase()) ? ht(function (t, e) { for (var i, n = r(t, o), s = n.length; s--;)t[i = z(t, n[s])] = !(e[i] = n[s]) }) : function (t) { return r(t, 0, e) }) : r } }, pseudos: { not: ht(function (t) { var n = [], s = [], a = d(t.replace(q, "$1")); return a[T] ? ht(function (t, e, i, n) { for (var s, o = a(t, null, n, []), r = t.length; r--;)(s = o[r]) && (t[r] = !(e[r] = s)) }) : function (t, e, i) { return n[0] = t, a(n, null, i, s), n[0] = null, !s.pop() } }), has: ht(function (e) { return function (t) { return 0 < at(e, t).length } }), contains: ht(function (e) { return e = e.replace(nt, u), function (t) { return -1 < (t.textContent || o(t)).indexOf(e) } }), lang: ht(function (i) { return X.test(i || "") || at.error("unsupported lang: " + i), i = i.replace(nt, u).toLowerCase(), function (t) { var e; do { if (e = k ? t.lang : t.getAttribute("xml:lang") || t.getAttribute("lang")) return (e = e.toLowerCase()) === i || 0 === e.indexOf(i + "-") } while ((t = t.parentNode) && 1 === t.nodeType); return !1 } }), target: function (t) { var e = i.location && i.location.hash; return e && e.slice(1) === t.id }, root: function (t) { return t === r }, focus: function (t) { return t === C.activeElement && (!C.hasFocus || C.hasFocus()) && !!(t.type || t.href || ~t.tabIndex) }, enabled: pt(!1), disabled: pt(!0), checked: function (t) { var e = t.nodeName.toLowerCase(); return "input" === e && !!t.checked || "option" === e && !!t.selected }, selected: function (t) { return t.parentNode && t.parentNode.selectedIndex, !0 === t.selected }, empty: function (t) { for (t = t.firstChild; t; t = t.nextSibling)if (t.nodeType < 6) return !1; return !0 }, parent: function (t) { return !b.pseudos.empty(t) }, header: function (t) { return Z.test(t.nodeName) }, input: function (t) { return J.test(t.nodeName) }, button: function (t) { var e = t.nodeName.toLowerCase(); return "input" === e && "button" === t.type || "button" === e }, text: function (t) { return "input" === t.nodeName.toLowerCase() && "text" === t.type && (null == (t = t.getAttribute("type")) || "text" === t.toLowerCase()) }, first: ft(function () { return [0] }), last: ft(function (t, e) { return [e - 1] }), eq: ft(function (t, e, i) { return [i < 0 ? i + e : i] }), even: ft(function (t, e) { for (var i = 0; i < e; i += 2)t.push(i); return t }), odd: ft(function (t, e) { for (var i = 1; i < e; i += 2)t.push(i); return t }), lt: ft(function (t, e, i) { for (var n = i < 0 ? i + e : e < i ? e : i; 0 <= --n;)t.push(n); return t }), gt: ft(function (t, e, i) { for (var n = i < 0 ? i + e : i; ++n < e;)t.push(n); return t }) } }).pseudos.nth = b.pseudos.eq, { radio: !0, checkbox: !0, file: !0, password: !0, image: !0 }) b.pseudos[t] = function (e) { return function (t) { return "input" === t.nodeName.toLowerCase() && t.type === e } }(t); for (t in { submit: !0, reset: !0 }) b.pseudos[t] = function (i) { return function (t) { var e = t.nodeName.toLowerCase(); return ("input" === e || "button" === e) && t.type === i } }(t); function mt() { } function vt(t) { for (var e = 0, i = t.length, n = ""; e < i; e++)n += t[e].value; return n } function _t(r, t, e) { var a = t.dir, l = t.next, h = l || a, c = e && "parentNode" === h, u = y++; return t.first ? function (t, e, i) { for (; t = t[a];)if (1 === t.nodeType || c) return r(t, e, i); return !1 } : function (t, e, i) { var n, s, o = [D, u]; if (i) { for (; t = t[a];)if ((1 === t.nodeType || c) && r(t, e, i)) return !0 } else for (; t = t[a];)if (1 === t.nodeType || c) if (n = (s = t[T] || (t[T] = {}))[t.uniqueID] || (s[t.uniqueID] = {}), l && l === t.nodeName.toLowerCase()) t = t[a] || t; else { if ((s = n[h]) && s[0] === D && s[1] === u) return o[2] = s[2]; if ((n[h] = o)[2] = r(t, e, i)) return !0 } return !1 } } function yt(s) { return 1 < s.length ? function (t, e, i) { for (var n = s.length; n--;)if (!s[n](t, e, i)) return !1; return !0 } : s[0] } function bt(t, e, i, n, s) { for (var o, r = [], a = 0, l = t.length, h = null != e; a < l; a++)(o = t[a]) && (i && !i(o, n, s) || (r.push(o), h && e.push(a))); return r } function wt(t) { for (var n, e, i, s = t.length, o = b.relative[t[0].type], r = o || b.relative[" "], a = o ? 1 : 0, l = _t(function (t) { return t === n }, r, !0), h = _t(function (t) { return -1 < z(n, t) }, r, !0), c = [function (t, e, i) { i = !o && (i || e !== w) || ((n = e).nodeType ? l : h)(t, e, i); return n = null, i }]; a < s; a++)if (e = b.relative[t[a].type]) c = [_t(yt(c), e)]; else { if ((e = b.filter[t[a].type].apply(null, t[a].matches))[T]) { for (i = ++a; i < s && !b.relative[t[i].type]; i++); return function t(p, f, g, m, v, e) { return m && !m[T] && (m = t(m)), v && !v[T] && (v = t(v, e)), ht(function (t, e, i, n) { var s, o, r, a = [], l = [], h = e.length, c = t || function (t, e, i) { for (var n = 0, s = e.length; n < s; n++)at(t, e[n], i); return i }(f || "*", i.nodeType ? [i] : i, []), u = !p || !t && f ? c : bt(c, a, p, i, n), d = g ? v || (t ? p : h || m) ? [] : e : u; if (g && g(u, d, i, n), m) for (s = bt(d, l), m(s, [], i, n), o = s.length; o--;)(r = s[o]) && (d[l[o]] = !(u[l[o]] = r)); if (t) { if (v || p) { if (v) { for (s = [], o = d.length; o--;)(r = d[o]) && s.push(u[o] = r); v(null, d = [], s, n) } for (o = d.length; o--;)(r = d[o]) && -1 < (s = v ? z(t, r) : a[o]) && (t[s] = !(e[s] = r)) } } else d = bt(d === e ? d.splice(h, d.length) : d), v ? v(null, e, d, n) : H.apply(e, d) }) }(1 < a && yt(c), 1 < a && vt(t.slice(0, a - 1).concat({ value: " " === t[a - 2].type ? "*" : "" })).replace(q, "$1"), e, a < i && wt(t.slice(a, i)), i < s && wt(t = t.slice(i)), i < s && vt(t)) } c.push(e) } return yt(c) } return mt.prototype = b.filters = b.pseudos, b.setFilters = new mt, f = at.tokenize = function (t, e) { var i, n, s, o, r, a, l, h = S[t + " "]; if (h) return e ? 0 : h.slice(0); for (r = t, a = [], l = b.preFilter; r;) { for (o in i && !(n = Y.exec(r)) || (n && (r = r.slice(n[0].length) || r), a.push(s = [])), i = !1, (n = U.exec(r)) && (i = n.shift(), s.push({ value: i, type: n[0].replace(q, " ") }), r = r.slice(i.length)), b.filter) !(n = Q[o].exec(r)) || l[o] && !(n = l[o](n)) || (i = n.shift(), s.push({ value: i, type: o, matches: n }), r = r.slice(i.length)); if (!i) break } return e ? r.length : r ? at.error(t) : S(t, a).slice(0) }, d = at.compile = function (t, e) { var i, m, v, _, y, n, s = [], o = [], r = I[t + " "]; if (!r) { for (i = (e = e || f(t)).length; i--;)((r = wt(e[i]))[T] ? s : o).push(r); (r = I(t, (m = o, _ = 0 < (v = s).length, y = 0 < m.length, n = function (t, e, i, n, s) { var o, r, a, l = 0, h = "0", c = t && [], u = [], d = w, p = t || y && b.find.TAG("*", s), f = D += null == d ? 1 : Math.random() || .1, g = p.length; for (s && (w = e == C || e || s); h !== g && null != (o = p[h]); h++) { if (y && o) { for (r = 0, e || o.ownerDocument == C || (x(o), i = !k); a = m[r++];)if (a(o, e || C, i)) { n.push(o); break } s && (D = f) } _ && ((o = !a && o) && l--, t && c.push(o)) } if (l += h, _ && h !== l) { for (r = 0; a = v[r++];)a(c, u, e, i); if (t) { if (0 < l) for (; h--;)c[h] || u[h] || (u[h] = M.call(n)); u = bt(u) } H.apply(n, u), s && !t && 0 < u.length && 1 < l + v.length && at.uniqueSort(n) } return s && (D = f, w = d), c }, _ ? ht(n) : n))).selector = t } return r }, g = at.select = function (t, e, i, n) { var s, o, r, a, l, h = "function" == typeof t && t, c = !n && f(t = h.selector || t); if (i = i || [], 1 === c.length) { if (2 < (o = c[0] = c[0].slice(0)).length && "ID" === (r = o[0]).type && 9 === e.nodeType && k && b.relative[o[1].type]) { if (!(e = (b.find.ID(r.matches[0].replace(nt, u), e) || [])[0])) return i; h && (e = e.parentNode), t = t.slice(o.shift().value.length) } for (s = Q.needsContext.test(t) ? 0 : o.length; s-- && (r = o[s], !b.relative[a = r.type]);)if ((l = b.find[a]) && (n = l(r.matches[0].replace(nt, u), it.test(o[0].type) && gt(e.parentNode) || e))) { if (o.splice(s, 1), !(t = n.length && vt(o))) return H.apply(i, n), i; break } } return (h || d(t, c))(n, e, !k, i, !e || it.test(t) && gt(e.parentNode) || e), i }, p.sortStable = T.split("").sort(P).join("") === T, p.detectDuplicates = !!h, x(), p.sortDetached = ct(function (t) { return 1 & t.compareDocumentPosition(C.createElement("fieldset")) }), ct(function (t) { return t.innerHTML = "<a href='#'></a>", "#" === t.firstChild.getAttribute("href") }) || ut("type|href|height|width", function (t, e, i) { if (!i) return t.getAttribute(e, "type" === e.toLowerCase() ? 1 : 2) }), p.attributes && ct(function (t) { return t.innerHTML = "<input/>", t.firstChild.setAttribute("value", ""), "" === t.firstChild.getAttribute("value") }) || ut("value", function (t, e, i) { if (!i && "input" === t.nodeName.toLowerCase()) return t.defaultValue }), ct(function (t) { return null == t.getAttribute("disabled") }) || ut(j, function (t, e, i) { if (!i) return !0 === t[e] ? e.toLowerCase() : (e = t.getAttributeNode(e)) && e.specified ? e.value : null }), at }(C); T.find = p, T.expr = p.selectors, T.expr[":"] = T.expr.pseudos, T.uniqueSort = T.unique = p.uniqueSort, T.text = p.getText, T.isXMLDoc = p.isXML, T.contains = p.contains, T.escapeSelector = p.escape; function w(t, e, i) { for (var n = [], s = void 0 !== i; (t = t[e]) && 9 !== t.nodeType;)if (1 === t.nodeType) { if (s && T(t).is(i)) break; n.push(t) } return n } function x(t, e) { for (var i = []; t; t = t.nextSibling)1 === t.nodeType && t !== e && i.push(t); return i } var D = T.expr.match.needsContext; function E(t, e) { return t.nodeName && t.nodeName.toLowerCase() === e.toLowerCase() } var S = /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i; function I(t, i, n) { return y(i) ? T.grep(t, function (t, e) { return !!i.call(t, e, t) !== n }) : i.nodeType ? T.grep(t, function (t) { return t === i !== n }) : "string" != typeof i ? T.grep(t, function (t) { return -1 < s.call(i, t) !== n }) : T.filter(i, t, n) } T.filter = function (t, e, i) { var n = e[0]; return i && (t = ":not(" + t + ")"), 1 === e.length && 1 === n.nodeType ? T.find.matchesSelector(n, t) ? [n] : [] : T.find.matches(t, T.grep(e, function (t) { return 1 === t.nodeType })) }, T.fn.extend({ find: function (t) { var e, i, n = this.length, s = this; if ("string" != typeof t) return this.pushStack(T(t).filter(function () { for (e = 0; e < n; e++)if (T.contains(s[e], this)) return !0 })); for (i = this.pushStack([]), e = 0; e < n; e++)T.find(t, s[e], i); return 1 < n ? T.uniqueSort(i) : i }, filter: function (t) { return this.pushStack(I(this, t || [], !1)) }, not: function (t) { return this.pushStack(I(this, t || [], !0)) }, is: function (t) { return !!I(this, "string" == typeof t && D.test(t) ? T(t) : t || [], !1).length } }); var A, P = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/; (T.fn.init = function (t, e, i) { if (!t) return this; if (i = i || A, "string" != typeof t) return t.nodeType ? (this[0] = t, this.length = 1, this) : y(t) ? void 0 !== i.ready ? i.ready(t) : t(T) : T.makeArray(t, this); if (!(n = "<" === t[0] && ">" === t[t.length - 1] && 3 <= t.length ? [null, t, null] : P.exec(t)) || !n[1] && e) return (!e || e.jquery ? e || i : this.constructor(e)).find(t); if (n[1]) { if (e = e instanceof T ? e[0] : e, T.merge(this, T.parseHTML(n[1], e && e.nodeType ? e.ownerDocument || e : k, !0)), S.test(n[1]) && T.isPlainObject(e)) for (var n in e) y(this[n]) ? this[n](e[n]) : this.attr(n, e[n]); return this } return (t = k.getElementById(n[2])) && (this[0] = t, this.length = 1), this }).prototype = T.fn, A = T(k); var N = /^(?:parents|prev(?:Until|All))/, M = { children: !0, contents: !0, next: !0, prev: !0 }; function O(t, e) { for (; (t = t[e]) && 1 !== t.nodeType;); return t } T.fn.extend({ has: function (t) { var e = T(t, this), i = e.length; return this.filter(function () { for (var t = 0; t < i; t++)if (T.contains(this, e[t])) return !0 }) }, closest: function (t, e) { var i, n = 0, s = this.length, o = [], r = "string" != typeof t && T(t); if (!D.test(t)) for (; n < s; n++)for (i = this[n]; i && i !== e; i = i.parentNode)if (i.nodeType < 11 && (r ? -1 < r.index(i) : 1 === i.nodeType && T.find.matchesSelector(i, t))) { o.push(i); break } return this.pushStack(1 < o.length ? T.uniqueSort(o) : o) }, index: function (t) { return t ? "string" == typeof t ? s.call(T(t), this[0]) : s.call(this, t.jquery ? t[0] : t) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1 }, add: function (t, e) { return this.pushStack(T.uniqueSort(T.merge(this.get(), T(t, e)))) }, addBack: function (t) { return this.add(null == t ? this.prevObject : this.prevObject.filter(t)) } }), T.each({ parent: function (t) { t = t.parentNode; return t && 11 !== t.nodeType ? t : null }, parents: function (t) { return w(t, "parentNode") }, parentsUntil: function (t, e, i) { return w(t, "parentNode", i) }, next: function (t) { return O(t, "nextSibling") }, prev: function (t) { return O(t, "previousSibling") }, nextAll: function (t) { return w(t, "nextSibling") }, prevAll: function (t) { return w(t, "previousSibling") }, nextUntil: function (t, e, i) { return w(t, "nextSibling", i) }, prevUntil: function (t, e, i) { return w(t, "previousSibling", i) }, siblings: function (t) { return x((t.parentNode || {}).firstChild, t) }, children: function (t) { return x(t.firstChild) }, contents: function (t) { return null != t.contentDocument && i(t.contentDocument) ? t.contentDocument : (E(t, "template") && (t = t.content || t), T.merge([], t.childNodes)) } }, function (n, s) { T.fn[n] = function (t, e) { var i = T.map(this, s, t); return "Until" !== n.slice(-5) && (e = t), e && "string" == typeof e && (i = T.filter(e, i)), 1 < this.length && (M[n] || T.uniqueSort(i), N.test(n) && i.reverse()), this.pushStack(i) } }); var H = /[^\x20\t\r\n\f]+/g; function L(t) { return t } function z(t) { throw t } function j(t, e, i, n) { var s; try { t && y(s = t.promise) ? s.call(t).done(e).fail(i) : t && y(s = t.then) ? s.call(t, e, i) : e.apply(void 0, [t].slice(n)) } catch (t) { i.apply(void 0, [t]) } } T.Callbacks = function (n) { var i; n = "string" == typeof n ? (i = {}, T.each(n.match(H) || [], function (t, e) { i[e] = !0 }), i) : T.extend({}, n); function s() { for (r = r || n.once, e = o = !0; l.length; h = -1)for (t = l.shift(); ++h < a.length;)!1 === a[h].apply(t[0], t[1]) && n.stopOnFalse && (h = a.length, t = !1); n.memory || (t = !1), o = !1, r && (a = t ? [] : "") } var o, t, e, r, a = [], l = [], h = -1, c = { add: function () { return a && (t && !o && (h = a.length - 1, l.push(t)), function i(t) { T.each(t, function (t, e) { y(e) ? n.unique && c.has(e) || a.push(e) : e && e.length && "string" !== f(e) && i(e) }) }(arguments), t && !o && s()), this }, remove: function () { return T.each(arguments, function (t, e) { for (var i; -1 < (i = T.inArray(e, a, i));)a.splice(i, 1), i <= h && h-- }), this }, has: function (t) { return t ? -1 < T.inArray(t, a) : 0 < a.length }, empty: function () { return a = a && [], this }, disable: function () { return r = l = [], a = t = "", this }, disabled: function () { return !a }, lock: function () { return r = l = [], t || o || (a = t = ""), this }, locked: function () { return !!r }, fireWith: function (t, e) { return r || (e = [t, (e = e || []).slice ? e.slice() : e], l.push(e), o || s()), this }, fire: function () { return c.fireWith(this, arguments), this }, fired: function () { return !!e } }; return c }, T.extend({ Deferred: function (t) { var o = [["notify", "progress", T.Callbacks("memory"), T.Callbacks("memory"), 2], ["resolve", "done", T.Callbacks("once memory"), T.Callbacks("once memory"), 0, "resolved"], ["reject", "fail", T.Callbacks("once memory"), T.Callbacks("once memory"), 1, "rejected"]], s = "pending", r = { state: function () { return s }, always: function () { return a.done(arguments).fail(arguments), this }, catch: function (t) { return r.then(null, t) }, pipe: function () { var s = arguments; return T.Deferred(function (n) { T.each(o, function (t, e) { var i = y(s[e[4]]) && s[e[4]]; a[e[1]](function () { var t = i && i.apply(this, arguments); t && y(t.promise) ? t.promise().progress(n.notify).done(n.resolve).fail(n.reject) : n[e[0] + "With"](this, i ? [t] : arguments) }) }), s = null }).promise() }, then: function (e, i, n) { var l = 0; function h(s, o, r, a) { return function () { function t() { var t, e; if (!(s < l)) { if ((t = r.apply(i, n)) === o.promise()) throw new TypeError("Thenable self-resolution"); e = t && ("object" == typeof t || "function" == typeof t) && t.then, y(e) ? a ? e.call(t, h(l, o, L, a), h(l, o, z, a)) : (l++, e.call(t, h(l, o, L, a), h(l, o, z, a), h(l, o, L, o.notifyWith))) : (r !== L && (i = void 0, n = [t]), (a || o.resolveWith)(i, n)) } } var i = this, n = arguments, e = a ? t : function () { try { t() } catch (t) { T.Deferred.exceptionHook && T.Deferred.exceptionHook(t, e.stackTrace), l <= s + 1 && (r !== z && (i = void 0, n = [t]), o.rejectWith(i, n)) } }; s ? e() : (T.Deferred.getStackHook && (e.stackTrace = T.Deferred.getStackHook()), C.setTimeout(e)) } } return T.Deferred(function (t) { o[0][3].add(h(0, t, y(n) ? n : L, t.notifyWith)), o[1][3].add(h(0, t, y(e) ? e : L)), o[2][3].add(h(0, t, y(i) ? i : z)) }).promise() }, promise: function (t) { return null != t ? T.extend(t, r) : r } }, a = {}; return T.each(o, function (t, e) { var i = e[2], n = e[5]; r[e[1]] = i.add, n && i.add(function () { s = n }, o[3 - t][2].disable, o[3 - t][3].disable, o[0][2].lock, o[0][3].lock), i.add(e[3].fire), a[e[0]] = function () { return a[e[0] + "With"](this === a ? void 0 : this, arguments), this }, a[e[0] + "With"] = i.fireWith }), r.promise(a), t && t.call(a, a), a }, when: function (t) { function e(e) { return function (t) { s[e] = this, o[e] = 1 < arguments.length ? a.call(arguments) : t, --i || r.resolveWith(s, o) } } var i = arguments.length, n = i, s = Array(n), o = a.call(arguments), r = T.Deferred(); if (i <= 1 && (j(t, r.done(e(n)).resolve, r.reject, !i), "pending" === r.state() || y(o[n] && o[n].then))) return r.then(); for (; n--;)j(o[n], e(n), r.reject); return r.promise() } }); var F = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; T.Deferred.exceptionHook = function (t, e) { C.console && C.console.warn && t && F.test(t.name) && C.console.warn("jQuery.Deferred exception: " + t.message, t.stack, e) }, T.readyException = function (t) { C.setTimeout(function () { throw t }) }; var W = T.Deferred(); function R() { k.removeEventListener("DOMContentLoaded", R), C.removeEventListener("load", R), T.ready() } T.fn.ready = function (t) { return W.then(t).catch(function (t) { T.readyException(t) }), this }, T.extend({ isReady: !1, readyWait: 1, ready: function (t) { (!0 === t ? --T.readyWait : T.isReady) || (T.isReady = !0) !== t && 0 < --T.readyWait || W.resolveWith(k, [T]) } }), T.ready.then = W.then, "complete" === k.readyState || "loading" !== k.readyState && !k.documentElement.doScroll ? C.setTimeout(T.ready) : (k.addEventListener("DOMContentLoaded", R), C.addEventListener("load", R)); var B = function (t, e, i, n, s, o, r) { var a = 0, l = t.length, h = null == i; if ("object" === f(i)) for (a in s = !0, i) B(t, e, a, i[a], !0, o, r); else if (void 0 !== n && (s = !0, y(n) || (r = !0), h && (e = r ? (e.call(t, n), null) : (h = e, function (t, e, i) { return h.call(T(t), i) })), e)) for (; a < l; a++)e(t[a], i, r ? n : n.call(t[a], a, e(t[a], i))); return s ? t : h ? e.call(t) : l ? e(t[0], i) : o }, $ = /^-ms-/, q = /-([a-z])/g; function Y(t, e) { return e.toUpperCase() } function U(t) { return t.replace($, "ms-").replace(q, Y) } function V(t) { return 1 === t.nodeType || 9 === t.nodeType || !+t.nodeType } function K() { this.expando = T.expando + K.uid++ } K.uid = 1, K.prototype = { cache: function (t) { var e = t[this.expando]; return e || (e = {}, V(t) && (t.nodeType ? t[this.expando] = e : Object.defineProperty(t, this.expando, { value: e, configurable: !0 }))), e }, set: function (t, e, i) { var n, s = this.cache(t); if ("string" == typeof e) s[U(e)] = i; else for (n in e) s[U(n)] = e[n]; return s }, get: function (t, e) { return void 0 === e ? this.cache(t) : t[this.expando] && t[this.expando][U(e)] }, access: function (t, e, i) { return void 0 === e || e && "string" == typeof e && void 0 === i ? this.get(t, e) : (this.set(t, e, i), void 0 !== i ? i : e) }, remove: function (t, e) { var i, n = t[this.expando]; if (void 0 !== n) { if (void 0 !== e) { i = (e = Array.isArray(e) ? e.map(U) : (e = U(e)) in n ? [e] : e.match(H) || []).length; for (; i--;)delete n[e[i]] } void 0 !== e && !T.isEmptyObject(n) || (t.nodeType ? t[this.expando] = void 0 : delete t[this.expando]) } }, hasData: function (t) { t = t[this.expando]; return void 0 !== t && !T.isEmptyObject(t) } }; var X = new K, Q = new K, G = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, J = /[A-Z]/g; function Z(t, e, i) { var n, s; if (void 0 === i && 1 === t.nodeType) if (n = "data-" + e.replace(J, "-$&").toLowerCase(), "string" == typeof (i = t.getAttribute(n))) { try { i = "true" === (s = i) || "false" !== s && ("null" === s ? null : s === +s + "" ? +s : G.test(s) ? JSON.parse(s) : s) } catch (t) { } Q.set(t, e, i) } else i = void 0; return i } T.extend({ hasData: function (t) { return Q.hasData(t) || X.hasData(t) }, data: function (t, e, i) { return Q.access(t, e, i) }, removeData: function (t, e) { Q.remove(t, e) }, _data: function (t, e, i) { return X.access(t, e, i) }, _removeData: function (t, e) { X.remove(t, e) } }), T.fn.extend({ data: function (i, t) { var e, n, s, o = this[0], r = o && o.attributes; if (void 0 !== i) return "object" == typeof i ? this.each(function () { Q.set(this, i) }) : B(this, function (t) { var e; return o && void 0 === t ? void 0 !== (e = Q.get(o, i)) || void 0 !== (e = Z(o, i)) ? e : void 0 : void this.each(function () { Q.set(this, i, t) }) }, null, t, 1 < arguments.length, null, !0); if (this.length && (s = Q.get(o), 1 === o.nodeType && !X.get(o, "hasDataAttrs"))) { for (e = r.length; e--;)r[e] && 0 === (n = r[e].name).indexOf("data-") && (n = U(n.slice(5)), Z(o, n, s[n])); X.set(o, "hasDataAttrs", !0) } return s }, removeData: function (t) { return this.each(function () { Q.remove(this, t) }) } }), T.extend({ queue: function (t, e, i) { var n; if (t) return e = (e || "fx") + "queue", n = X.get(t, e), i && (!n || Array.isArray(i) ? n = X.access(t, e, T.makeArray(i)) : n.push(i)), n || [] }, dequeue: function (t, e) { e = e || "fx"; var i = T.queue(t, e), n = i.length, s = i.shift(), o = T._queueHooks(t, e); "inprogress" === s && (s = i.shift(), n--), s && ("fx" === e && i.unshift("inprogress"), delete o.stop, s.call(t, function () { T.dequeue(t, e) }, o)), !n && o && o.empty.fire() }, _queueHooks: function (t, e) { var i = e + "queueHooks"; return X.get(t, i) || X.access(t, i, { empty: T.Callbacks("once memory").add(function () { X.remove(t, [e + "queue", i]) }) }) } }), T.fn.extend({ queue: function (e, i) { var t = 2; return "string" != typeof e && (i = e, e = "fx", t--), arguments.length < t ? T.queue(this[0], e) : void 0 === i ? this : this.each(function () { var t = T.queue(this, e, i); T._queueHooks(this, e), "fx" === e && "inprogress" !== t[0] && T.dequeue(this, e) }) }, dequeue: function (t) { return this.each(function () { T.dequeue(this, t) }) }, clearQueue: function (t) { return this.queue(t || "fx", []) }, promise: function (t, e) { function i() { --s || o.resolveWith(r, [r]) } var n, s = 1, o = T.Deferred(), r = this, a = this.length; for ("string" != typeof t && (e = t, t = void 0), t = t || "fx"; a--;)(n = X.get(r[a], t + "queueHooks")) && n.empty && (s++, n.empty.add(i)); return i(), o.promise(e) } }); var tt = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source, et = new RegExp("^(?:([+-])=|)(" + tt + ")([a-z%]*)$", "i"), it = ["Top", "Right", "Bottom", "Left"], nt = k.documentElement, st = function (t) { return T.contains(t.ownerDocument, t) }, ot = { composed: !0 }; nt.getRootNode && (st = function (t) { return T.contains(t.ownerDocument, t) || t.getRootNode(ot) === t.ownerDocument }); function rt(t, e) { return "none" === (t = e || t).style.display || "" === t.style.display && st(t) && "none" === T.css(t, "display") } function at(t, e, i, n) { var s, o, r = 20, a = n ? function () { return n.cur() } : function () { return T.css(t, e, "") }, l = a(), h = i && i[3] || (T.cssNumber[e] ? "" : "px"), c = t.nodeType && (T.cssNumber[e] || "px" !== h && +l) && et.exec(T.css(t, e)); if (c && c[3] !== h) { for (l /= 2, h = h || c[3], c = +l || 1; r--;)T.style(t, e, c + h), (1 - o) * (1 - (o = a() / l || .5)) <= 0 && (r = 0), c /= o; c *= 2, T.style(t, e, c + h), i = i || [] } return i && (c = +c || +l || 0, s = i[1] ? c + (i[1] + 1) * i[2] : +i[2], n && (n.unit = h, n.start = c, n.end = s)), s } var lt = {}; function ht(t, e) { for (var i, n, s, o, r, a, l = [], h = 0, c = t.length; h < c; h++)(n = t[h]).style && (i = n.style.display, e ? ("none" === i && (l[h] = X.get(n, "display") || null, l[h] || (n.style.display = "")), "" === n.style.display && rt(n) && (l[h] = (a = o = s = void 0, o = n.ownerDocument, r = n.nodeName, (a = lt[r]) || (s = o.body.appendChild(o.createElement(r)), a = T.css(s, "display"), s.parentNode.removeChild(s), "none" === a && (a = "block"), lt[r] = a)))) : "none" !== i && (l[h] = "none", X.set(n, "display", i))); for (h = 0; h < c; h++)null != l[h] && (t[h].style.display = l[h]); return t } T.fn.extend({ show: function () { return ht(this, !0) }, hide: function () { return ht(this) }, toggle: function (t) { return "boolean" == typeof t ? t ? this.show() : this.hide() : this.each(function () { rt(this) ? T(this).show() : T(this).hide() }) } }); var ct = /^(?:checkbox|radio)$/i, ut = /<([a-z][^\/\0>\x20\t\r\n\f]*)/i, dt = /^$|^module$|\/(?:java|ecma)script/i, u = k.createDocumentFragment().appendChild(k.createElement("div")); (p = k.createElement("input")).setAttribute("type", "radio"), p.setAttribute("checked", "checked"), p.setAttribute("name", "t"), u.appendChild(p), _.checkClone = u.cloneNode(!0).cloneNode(!0).lastChild.checked, u.innerHTML = "<textarea>x</textarea>", _.noCloneChecked = !!u.cloneNode(!0).lastChild.defaultValue, u.innerHTML = "<option></option>", _.option = !!u.lastChild; var pt = { 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 ft(t, e) { var i = void 0 !== t.getElementsByTagName ? t.getElementsByTagName(e || "*") : void 0 !== t.querySelectorAll ? t.querySelectorAll(e || "*") : []; return void 0 === e || e && E(t, e) ? T.merge([t], i) : i } function gt(t, e) { for (var i = 0, n = t.length; i < n; i++)X.set(t[i], "globalEval", !e || X.get(e[i], "globalEval")) } pt.tbody = pt.tfoot = pt.colgroup = pt.caption = pt.thead, pt.th = pt.td, _.option || (pt.optgroup = pt.option = [1, "<select multiple='multiple'>", "</select>"]); var mt = /<|&#?\w+;/; function vt(t, e, i, n, s) { for (var o, r, a, l, h, c = e.createDocumentFragment(), u = [], d = 0, p = t.length; d < p; d++)if ((o = t[d]) || 0 === o) if ("object" === f(o)) T.merge(u, o.nodeType ? [o] : o); else if (mt.test(o)) { for (r = r || c.appendChild(e.createElement("div")), a = (ut.exec(o) || ["", ""])[1].toLowerCase(), a = pt[a] || pt._default, r.innerHTML = a[1] + T.htmlPrefilter(o) + a[2], h = a[0]; h--;)r = r.lastChild; T.merge(u, r.childNodes), (r = c.firstChild).textContent = "" } else u.push(e.createTextNode(o)); for (c.textContent = "", d = 0; o = u[d++];)if (n && -1 < T.inArray(o, n)) s && s.push(o); else if (l = st(o), r = ft(c.appendChild(o), "script"), l && gt(r), i) for (h = 0; o = r[h++];)dt.test(o.type || "") && i.push(o); return c } var _t = /^key/, yt = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, bt = /^([^.]*)(?:\.(.+)|)/; function wt() { return !0 } function xt() { return !1 } function Ct(t, e) { return t === function () { try { return k.activeElement } catch (t) { } }() == ("focus" === e) } function kt(t, e, i, n, s, o) { var r, a; if ("object" == typeof e) { for (a in "string" != typeof i && (n = n || i, i = void 0), e) kt(t, a, i, n, e[a], o); return t } if (null == n && null == s ? (s = i, n = i = void 0) : null == s && ("string" == typeof i ? (s = n, n = void 0) : (s = n, n = i, i = void 0)), !1 === s) s = xt; else if (!s) return t; return 1 === o && (r = s, (s = function (t) { return T().off(t), r.apply(this, arguments) }).guid = r.guid || (r.guid = T.guid++)), t.each(function () { T.event.add(this, e, s, n, i) }) } function Tt(t, s, o) { o ? (X.set(t, s, !1), T.event.add(t, s, { namespace: !1, handler: function (t) { var e, i, n = X.get(this, s); if (1 & t.isTrigger && this[s]) { if (n.length) (T.event.special[s] || {}).delegateType && t.stopPropagation(); else if (n = a.call(arguments), X.set(this, s, n), e = o(this, s), this[s](), n !== (i = X.get(this, s)) || e ? X.set(this, s, !1) : i = {}, n !== i) return t.stopImmediatePropagation(), t.preventDefault(), i.value } else n.length && (X.set(this, s, { value: T.event.trigger(T.extend(n[0], T.Event.prototype), n.slice(1), this) }), t.stopImmediatePropagation()) } })) : void 0 === X.get(t, s) && T.event.add(t, s, wt) } T.event = { global: {}, add: function (e, t, i, n, s) { var o, r, a, l, h, c, u, d, p, f = X.get(e); if (V(e)) for (i.handler && (i = (o = i).handler, s = o.selector), s && T.find.matchesSelector(nt, s), i.guid || (i.guid = T.guid++), (a = f.events) || (a = f.events = Object.create(null)), (r = f.handle) || (r = f.handle = function (t) { return void 0 !== T && T.event.triggered !== t.type ? T.event.dispatch.apply(e, arguments) : void 0 }), l = (t = (t || "").match(H) || [""]).length; l--;)u = p = (h = bt.exec(t[l]) || [])[1], d = (h[2] || "").split(".").sort(), u && (c = T.event.special[u] || {}, u = (s ? c.delegateType : c.bindType) || u, c = T.event.special[u] || {}, h = T.extend({ type: u, origType: p, data: n, handler: i, guid: i.guid, selector: s, needsContext: s && T.expr.match.needsContext.test(s), namespace: d.join(".") }, o), (p = a[u]) || ((p = a[u] = []).delegateCount = 0, c.setup && !1 !== c.setup.call(e, n, d, r) || e.addEventListener && e.addEventListener(u, r)), c.add && (c.add.call(e, h), h.handler.guid || (h.handler.guid = i.guid)), s ? p.splice(p.delegateCount++, 0, h) : p.push(h), T.event.global[u] = !0) }, remove: function (t, e, i, n, s) { var o, r, a, l, h, c, u, d, p, f, g, m = X.hasData(t) && X.get(t); if (m && (l = m.events)) { for (h = (e = (e || "").match(H) || [""]).length; h--;)if (p = g = (a = bt.exec(e[h]) || [])[1], f = (a[2] || "").split(".").sort(), p) { for (u = T.event.special[p] || {}, d = l[p = (n ? u.delegateType : u.bindType) || p] || [], a = a[2] && new RegExp("(^|\\.)" + f.join("\\.(?:.*\\.|)") + "(\\.|$)"), r = o = d.length; o--;)c = d[o], !s && g !== c.origType || i && i.guid !== c.guid || a && !a.test(c.namespace) || n && n !== c.selector && ("**" !== n || !c.selector) || (d.splice(o, 1), c.selector && d.delegateCount--, u.remove && u.remove.call(t, c)); r && !d.length && (u.teardown && !1 !== u.teardown.call(t, f, m.handle) || T.removeEvent(t, p, m.handle), delete l[p]) } else for (p in l) T.event.remove(t, p + e[h], i, n, !0); T.isEmptyObject(l) && X.remove(t, "handle events") } }, dispatch: function (t) { var e, i, n, s, o, r = new Array(arguments.length), a = T.event.fix(t), l = (X.get(this, "events") || Object.create(null))[a.type] || [], t = T.event.special[a.type] || {}; for (r[0] = a, e = 1; e < arguments.length; e++)r[e] = arguments[e]; if (a.delegateTarget = this, !t.preDispatch || !1 !== t.preDispatch.call(this, a)) { for (o = T.event.handlers.call(this, a, l), e = 0; (n = o[e++]) && !a.isPropagationStopped();)for (a.currentTarget = n.elem, i = 0; (s = n.handlers[i++]) && !a.isImmediatePropagationStopped();)a.rnamespace && !1 !== s.namespace && !a.rnamespace.test(s.namespace) || (a.handleObj = s, a.data = s.data, void 0 !== (s = ((T.event.special[s.origType] || {}).handle || s.handler).apply(n.elem, r)) && !1 === (a.result = s) && (a.preventDefault(), a.stopPropagation())); return t.postDispatch && t.postDispatch.call(this, a), a.result } }, handlers: function (t, e) { var i, n, s, o, r, a = [], l = e.delegateCount, h = t.target; if (l && h.nodeType && !("click" === t.type && 1 <= t.button)) for (; h !== this; h = h.parentNode || this)if (1 === h.nodeType && ("click" !== t.type || !0 !== h.disabled)) { for (o = [], r = {}, i = 0; i < l; i++)void 0 === r[s = (n = e[i]).selector + " "] && (r[s] = n.needsContext ? -1 < T(s, this).index(h) : T.find(s, this, null, [h]).length), r[s] && o.push(n); o.length && a.push({ elem: h, handlers: o }) } return h = this, l < e.length && a.push({ elem: h, handlers: e.slice(l) }), a }, addProp: function (e, t) { Object.defineProperty(T.Event.prototype, e, { enumerable: !0, configurable: !0, get: y(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 (t) { return t[T.expando] ? t : new T.Event(t) }, special: { load: { noBubble: !0 }, click: { setup: function (t) { t = this || t; return ct.test(t.type) && t.click && E(t, "input") && Tt(t, "click", wt), !1 }, trigger: function (t) { t = this || t; return ct.test(t.type) && t.click && E(t, "input") && Tt(t, "click"), !0 }, _default: function (t) { t = t.target; return ct.test(t.type) && t.click && E(t, "input") && X.get(t, "click") || E(t, "a") } }, beforeunload: { postDispatch: function (t) { void 0 !== t.result && t.originalEvent && (t.originalEvent.returnValue = t.result) } } } }, T.removeEvent = function (t, e, i) { t.removeEventListener && t.removeEventListener(e, i) }, T.Event = function (t, e) { if (!(this instanceof T.Event)) return new T.Event(t, e); t && t.type ? (this.originalEvent = t, this.type = t.type, this.isDefaultPrevented = t.defaultPrevented || void 0 === t.defaultPrevented && !1 === t.returnValue ? wt : xt, this.target = t.target && 3 === t.target.nodeType ? t.target.parentNode : t.target, this.currentTarget = t.currentTarget, this.relatedTarget = t.relatedTarget) : this.type = t, e && T.extend(this, e), this.timeStamp = t && t.timeStamp || Date.now(), this[T.expando] = !0 }, T.Event.prototype = { constructor: T.Event, isDefaultPrevented: xt, isPropagationStopped: xt, isImmediatePropagationStopped: xt, isSimulated: !1, preventDefault: function () { var t = this.originalEvent; this.isDefaultPrevented = wt, t && !this.isSimulated && t.preventDefault() }, stopPropagation: function () { var t = this.originalEvent; this.isPropagationStopped = wt, t && !this.isSimulated && t.stopPropagation() }, stopImmediatePropagation: function () { var t = this.originalEvent; this.isImmediatePropagationStopped = wt, t && !this.isSimulated && t.stopImmediatePropagation(), this.stopPropagation() } }, T.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 (t) { var e = t.button; return null == t.which && _t.test(t.type) ? null != t.charCode ? t.charCode : t.keyCode : !t.which && void 0 !== e && yt.test(t.type) ? 1 & e ? 1 : 2 & e ? 3 : 4 & e ? 2 : 0 : t.which } }, T.event.addProp), T.each({ focus: "focusin", blur: "focusout" }, function (t, e) { T.event.special[t] = { setup: function () { return Tt(this, t, Ct), !1 }, trigger: function () { return Tt(this, t), !0 }, delegateType: e } }), T.each({ mouseenter: "mouseover", mouseleave: "mouseout", pointerenter: "pointerover", pointerleave: "pointerout" }, function (t, s) { T.event.special[t] = { delegateType: s, bindType: s, handle: function (t) { var e, i = t.relatedTarget, n = t.handleObj; return i && (i === this || T.contains(this, i)) || (t.type = n.origType, e = n.handler.apply(this, arguments), t.type = s), e } } }), T.fn.extend({ on: function (t, e, i, n) { return kt(this, t, e, i, n) }, one: function (t, e, i, n) { return kt(this, t, e, i, n, 1) }, off: function (t, e, i) { var n, s; if (t && t.preventDefault && t.handleObj) return n = t.handleObj, T(t.delegateTarget).off(n.namespace ? n.origType + "." + n.namespace : n.origType, n.selector, n.handler), this; if ("object" != typeof t) return !1 !== e && "function" != typeof e || (i = e, e = void 0), !1 === i && (i = xt), this.each(function () { T.event.remove(this, t, i, e) }); for (s in t) this.off(s, e, t[s]); return this } }); var Dt = /<script|<style|<link/i, Et = /checked\s*(?:[^=]|=\s*.checked.)/i, St = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g; function It(t, e) { return E(t, "table") && E(11 !== e.nodeType ? e : e.firstChild, "tr") && T(t).children("tbody")[0] || t } function At(t) { return t.type = (null !== t.getAttribute("type")) + "/" + t.type, t } function Pt(t) { return "true/" === (t.type || "").slice(0, 5) ? t.type = t.type.slice(5) : t.removeAttribute("type"), t } function Nt(t, e) { var i, n, s, o; if (1 === e.nodeType) { if (X.hasData(t) && (o = X.get(t).events)) for (s in X.remove(e, "handle events"), o) for (i = 0, n = o[s].length; i < n; i++)T.event.add(e, s, o[s][i]); Q.hasData(t) && (t = Q.access(t), t = T.extend({}, t), Q.set(e, t)) } } function Mt(i, n, s, o) { n = m(n); var t, e, r, a, l, h, c = 0, u = i.length, d = u - 1, p = n[0], f = y(p); if (f || 1 < u && "string" == typeof p && !_.checkClone && Et.test(p)) return i.each(function (t) { var e = i.eq(t); f && (n[0] = p.call(this, t, e.html())), Mt(e, n, s, o) }); if (u && (e = (t = vt(n, i[0].ownerDocument, !1, i, o)).firstChild, 1 === t.childNodes.length && (t = e), e || o)) { for (a = (r = T.map(ft(t, "script"), At)).length; c < u; c++)l = t, c !== d && (l = T.clone(l, !0, !0), a && T.merge(r, ft(l, "script"))), s.call(i[c], l, c); if (a) for (h = r[r.length - 1].ownerDocument, T.map(r, Pt), c = 0; c < a; c++)l = r[c], dt.test(l.type || "") && !X.access(l, "globalEval") && T.contains(h, l) && (l.src && "module" !== (l.type || "").toLowerCase() ? T._evalUrl && !l.noModule && T._evalUrl(l.src, { nonce: l.nonce || l.getAttribute("nonce") }, h) : b(l.textContent.replace(St, ""), l, h)) } return i } function Ot(t, e, i) { for (var n, s = e ? T.filter(e, t) : t, o = 0; null != (n = s[o]); o++)i || 1 !== n.nodeType || T.cleanData(ft(n)), n.parentNode && (i && st(n) && gt(ft(n, "script")), n.parentNode.removeChild(n)); return t } T.extend({ htmlPrefilter: function (t) { return t }, clone: function (t, e, i) { var n, s, o, r, a, l, h, c = t.cloneNode(!0), u = st(t); if (!(_.noCloneChecked || 1 !== t.nodeType && 11 !== t.nodeType || T.isXMLDoc(t))) for (r = ft(c), n = 0, s = (o = ft(t)).length; n < s; n++)a = o[n], "input" === (h = (l = r[n]).nodeName.toLowerCase()) && ct.test(a.type) ? l.checked = a.checked : "input" !== h && "textarea" !== h || (l.defaultValue = a.defaultValue); if (e) if (i) for (o = o || ft(t), r = r || ft(c), n = 0, s = o.length; n < s; n++)Nt(o[n], r[n]); else Nt(t, c); return 0 < (r = ft(c, "script")).length && gt(r, !u && ft(t, "script")), c }, cleanData: function (t) { for (var e, i, n, s = T.event.special, o = 0; void 0 !== (i = t[o]); o++)if (V(i)) { if (e = i[X.expando]) { if (e.events) for (n in e.events) s[n] ? T.event.remove(i, n) : T.removeEvent(i, n, e.handle); i[X.expando] = void 0 } i[Q.expando] && (i[Q.expando] = void 0) } } }), T.fn.extend({ detach: function (t) { return Ot(this, t, !0) }, remove: function (t) { return Ot(this, t) }, text: function (t) { return B(this, function (t) { return void 0 === t ? T.text(this) : this.empty().each(function () { 1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || (this.textContent = t) }) }, null, t, arguments.length) }, append: function () { return Mt(this, arguments, function (t) { 1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || It(this, t).appendChild(t) }) }, prepend: function () { return Mt(this, arguments, function (t) { var e; 1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || (e = It(this, t)).insertBefore(t, e.firstChild) }) }, before: function () { return Mt(this, arguments, function (t) { this.parentNode && this.parentNode.insertBefore(t, this) }) }, after: function () { return Mt(this, arguments, function (t) { this.parentNode && this.parentNode.insertBefore(t, this.nextSibling) }) }, empty: function () { for (var t, e = 0; null != (t = this[e]); e++)1 === t.nodeType && (T.cleanData(ft(t, !1)), t.textContent = ""); return this }, clone: function (t, e) { return t = null != t && t, e = null == e ? t : e, this.map(function () { return T.clone(this, t, e) }) }, html: function (t) { return B(this, function (t) { var e = this[0] || {}, i = 0, n = this.length; if (void 0 === t && 1 === e.nodeType) return e.innerHTML; if ("string" == typeof t && !Dt.test(t) && !pt[(ut.exec(t) || ["", ""])[1].toLowerCase()]) { t = T.htmlPrefilter(t); try { for (; i < n; i++)1 === (e = this[i] || {}).nodeType && (T.cleanData(ft(e, !1)), e.innerHTML = t); e = 0 } catch (t) { } } e && this.empty().append(t) }, null, t, arguments.length) }, replaceWith: function () { var i = []; return Mt(this, arguments, function (t) { var e = this.parentNode; T.inArray(this, i) < 0 && (T.cleanData(ft(this)), e && e.replaceChild(t, this)) }, i) } }), T.each({ appendTo: "append", prependTo: "prepend", insertBefore: "before", insertAfter: "after", replaceAll: "replaceWith" }, function (t, r) { T.fn[t] = function (t) { for (var e, i = [], n = T(t), s = n.length - 1, o = 0; o <= s; o++)e = o === s ? this : this.clone(!0), T(n[o])[r](e), l.apply(i, e.get()); return this.pushStack(i) } }); function Ht(t, e, i) { var n, s = {}; for (n in e) s[n] = t.style[n], t.style[n] = e[n]; for (n in i = i.call(t), e) t.style[n] = s[n]; return i } var Lt, zt, jt, Ft, Wt, Rt, Bt, $t, qt = new RegExp("^(" + tt + ")(?!px)[a-z%]+$", "i"), Yt = function (t) { var e = t.ownerDocument.defaultView; return e && e.opener || (e = C), e.getComputedStyle(t) }, Ut = new RegExp(it.join("|"), "i"); function Vt(t, e, i) { var n, s, o = t.style; return (i = i || Yt(t)) && ("" !== (s = i.getPropertyValue(e) || i[e]) || st(t) || (s = T.style(t, e)), !_.pixelBoxStyles() && qt.test(s) && Ut.test(e) && (n = o.width, t = o.minWidth, e = o.maxWidth, o.minWidth = o.maxWidth = o.width = s, s = i.width, o.width = n, o.minWidth = t, o.maxWidth = e)), void 0 !== s ? s + "" : s } function Kt(t, e) { return { get: function () { if (!t()) return (this.get = e).apply(this, arguments); delete this.get } } } function Xt() { var t; $t && (Bt.style.cssText = "position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0", $t.style.cssText = "position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%", nt.appendChild(Bt).appendChild($t), t = C.getComputedStyle($t), Lt = "1%" !== t.top, Rt = 12 === Qt(t.marginLeft), $t.style.right = "60%", Ft = 36 === Qt(t.right), zt = 36 === Qt(t.width), $t.style.position = "absolute", jt = 12 === Qt($t.offsetWidth / 3), nt.removeChild(Bt), $t = null) } function Qt(t) { return Math.round(parseFloat(t)) } Bt = k.createElement("div"), ($t = k.createElement("div")).style && ($t.style.backgroundClip = "content-box", $t.cloneNode(!0).style.backgroundClip = "", _.clearCloneStyle = "content-box" === $t.style.backgroundClip, T.extend(_, { boxSizingReliable: function () { return Xt(), zt }, pixelBoxStyles: function () { return Xt(), Ft }, pixelPosition: function () { return Xt(), Lt }, reliableMarginLeft: function () { return Xt(), Rt }, scrollboxSize: function () { return Xt(), jt }, reliableTrDimensions: function () { var t, e, i; return null == Wt && (t = k.createElement("table"), i = k.createElement("tr"), e = k.createElement("div"), t.style.cssText = "position:absolute;left:-11111px", i.style.height = "1px", e.style.height = "9px", nt.appendChild(t).appendChild(i).appendChild(e), i = C.getComputedStyle(i), Wt = 3 < parseInt(i.height), nt.removeChild(t)), Wt } })); var Gt = ["Webkit", "Moz", "ms"], Jt = k.createElement("div").style, Zt = {}; function te(t) { return T.cssProps[t] || Zt[t] || (t in Jt ? t : Zt[t] = function (t) { for (var e = t[0].toUpperCase() + t.slice(1), i = Gt.length; i--;)if ((t = Gt[i] + e) in Jt) return t }(t) || t) } var ee = /^(none|table(?!-c[ea]).+)/, ie = /^--/, ne = { position: "absolute", visibility: "hidden", display: "block" }, se = { letterSpacing: "0", fontWeight: "400" }; function oe(t, e, i) { var n = et.exec(e); return n ? Math.max(0, n[2] - (i || 0)) + (n[3] || "px") : e } function re(t, e, i, n, s, o) { var r = "width" === e ? 1 : 0, a = 0, l = 0; if (i === (n ? "border" : "content")) return 0; for (; r < 4; r += 2)"margin" === i && (l += T.css(t, i + it[r], !0, s)), n ? ("content" === i && (l -= T.css(t, "padding" + it[r], !0, s)), "margin" !== i && (l -= T.css(t, "border" + it[r] + "Width", !0, s))) : (l += T.css(t, "padding" + it[r], !0, s), "padding" !== i ? l += T.css(t, "border" + it[r] + "Width", !0, s) : a += T.css(t, "border" + it[r] + "Width", !0, s)); return !n && 0 <= o && (l += Math.max(0, Math.ceil(t["offset" + e[0].toUpperCase() + e.slice(1)] - o - l - a - .5)) || 0), l } function ae(t, e, i) { var n = Yt(t), s = (!_.boxSizingReliable() || i) && "border-box" === T.css(t, "boxSizing", !1, n), o = s, r = Vt(t, e, n), a = "offset" + e[0].toUpperCase() + e.slice(1); if (qt.test(r)) { if (!i) return r; r = "auto" } return (!_.boxSizingReliable() && s || !_.reliableTrDimensions() && E(t, "tr") || "auto" === r || !parseFloat(r) && "inline" === T.css(t, "display", !1, n)) && t.getClientRects().length && (s = "border-box" === T.css(t, "boxSizing", !1, n), (o = a in t) && (r = t[a])), (r = parseFloat(r) || 0) + re(t, e, i || (s ? "border" : "content"), o, n, r) + "px" } function le(t, e, i, n, s) { return new le.prototype.init(t, e, i, n, s) } T.extend({ cssHooks: { opacity: { get: function (t, e) { if (e) { t = Vt(t, "opacity"); return "" === t ? "1" : t } } } }, 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 (t, e, i, n) { if (t && 3 !== t.nodeType && 8 !== t.nodeType && t.style) { var s, o, r, a = U(e), l = ie.test(e), h = t.style; if (l || (e = te(a)), r = T.cssHooks[e] || T.cssHooks[a], void 0 === i) return r && "get" in r && void 0 !== (s = r.get(t, !1, n)) ? s : h[e]; "string" == (o = typeof i) && (s = et.exec(i)) && s[1] && (i = at(t, e, s), o = "number"), null != i && i == i && ("number" !== o || l || (i += s && s[3] || (T.cssNumber[a] ? "" : "px")), _.clearCloneStyle || "" !== i || 0 !== e.indexOf("background") || (h[e] = "inherit"), r && "set" in r && void 0 === (i = r.set(t, i, n)) || (l ? h.setProperty(e, i) : h[e] = i)) } }, css: function (t, e, i, n) { var s, o = U(e); return ie.test(e) || (e = te(o)), (o = T.cssHooks[e] || T.cssHooks[o]) && "get" in o && (s = o.get(t, !0, i)), void 0 === s && (s = Vt(t, e, n)), "normal" === s && e in se && (s = se[e]), "" === i || i ? (e = parseFloat(s), !0 === i || isFinite(e) ? e || 0 : s) : s } }), T.each(["height", "width"], function (t, a) { T.cssHooks[a] = { get: function (t, e, i) { if (e) return !ee.test(T.css(t, "display")) || t.getClientRects().length && t.getBoundingClientRect().width ? ae(t, a, i) : Ht(t, ne, function () { return ae(t, a, i) }) }, set: function (t, e, i) { var n, s = Yt(t), o = !_.scrollboxSize() && "absolute" === s.position, r = (o || i) && "border-box" === T.css(t, "boxSizing", !1, s), i = i ? re(t, a, i, r, s) : 0; return r && o && (i -= Math.ceil(t["offset" + a[0].toUpperCase() + a.slice(1)] - parseFloat(s[a]) - re(t, a, "border", !1, s) - .5)), i && (n = et.exec(e)) && "px" !== (n[3] || "px") && (t.style[a] = e, e = T.css(t, a)), oe(0, e, i) } } }), T.cssHooks.marginLeft = Kt(_.reliableMarginLeft, function (t, e) { if (e) return (parseFloat(Vt(t, "marginLeft")) || t.getBoundingClientRect().left - Ht(t, { marginLeft: 0 }, function () { return t.getBoundingClientRect().left })) + "px" }), T.each({ margin: "", padding: "", border: "Width" }, function (s, o) { T.cssHooks[s + o] = { expand: function (t) { for (var e = 0, i = {}, n = "string" == typeof t ? t.split(" ") : [t]; e < 4; e++)i[s + it[e] + o] = n[e] || n[e - 2] || n[0]; return i } }, "margin" !== s && (T.cssHooks[s + o].set = oe) }), T.fn.extend({ css: function (t, e) { return B(this, function (t, e, i) { var n, s, o = {}, r = 0; if (Array.isArray(e)) { for (n = Yt(t), s = e.length; r < s; r++)o[e[r]] = T.css(t, e[r], !1, n); return o } return void 0 !== i ? T.style(t, e, i) : T.css(t, e) }, t, e, 1 < arguments.length) } }), ((T.Tween = le).prototype = { constructor: le, init: function (t, e, i, n, s, o) { this.elem = t, this.prop = i, this.easing = s || T.easing._default, this.options = e, this.start = this.now = this.cur(), this.end = n, this.unit = o || (T.cssNumber[i] ? "" : "px") }, cur: function () { var t = le.propHooks[this.prop]; return (t && t.get ? t : le.propHooks._default).get(this) }, run: function (t) { var e, i = le.propHooks[this.prop]; return this.options.duration ? this.pos = e = T.easing[this.easing](t, this.options.duration * t, 0, 1, this.options.duration) : this.pos = e = t, this.now = (this.end - this.start) * e + this.start, this.options.step && this.options.step.call(this.elem, this.now, this), (i && i.set ? i : le.propHooks._default).set(this), this } }).init.prototype = le.prototype, (le.propHooks = { _default: { get: function (t) { return 1 !== t.elem.nodeType || null != t.elem[t.prop] && null == t.elem.style[t.prop] ? t.elem[t.prop] : (t = T.css(t.elem, t.prop, "")) && "auto" !== t ? t : 0 }, set: function (t) { T.fx.step[t.prop] ? T.fx.step[t.prop](t) : 1 !== t.elem.nodeType || !T.cssHooks[t.prop] && null == t.elem.style[te(t.prop)] ? t.elem[t.prop] = t.now : T.style(t.elem, t.prop, t.now + t.unit) } } }).scrollTop = le.propHooks.scrollLeft = { set: function (t) { t.elem.nodeType && t.elem.parentNode && (t.elem[t.prop] = t.now) } }, T.easing = { linear: function (t) { return t }, swing: function (t) { return .5 - Math.cos(t * Math.PI) / 2 }, _default: "swing" }, T.fx = le.prototype.init, T.fx.step = {}; var he, ce, ue = /^(?:toggle|show|hide)$/, de = /queueHooks$/; function pe() { ce && (!1 === k.hidden && C.requestAnimationFrame ? C.requestAnimationFrame(pe) : C.setTimeout(pe, T.fx.interval), T.fx.tick()) } function fe() { return C.setTimeout(function () { he = void 0 }), he = Date.now() } function ge(t, e) { var i, n = 0, s = { height: t }; for (e = e ? 1 : 0; n < 4; n += 2 - e)s["margin" + (i = it[n])] = s["padding" + i] = t; return e && (s.opacity = s.width = t), s } function me(t, e, i) { for (var n, s = (ve.tweeners[e] || []).concat(ve.tweeners["*"]), o = 0, r = s.length; o < r; o++)if (n = s[o].call(i, e, t)) return n } function ve(s, t, e) { var i, o, n = 0, r = ve.prefilters.length, a = T.Deferred().always(function () { delete l.elem }), l = function () { if (o) return !1; for (var t = he || fe(), t = Math.max(0, h.startTime + h.duration - t), e = 1 - (t / h.duration || 0), i = 0, n = h.tweens.length; i < n; i++)h.tweens[i].run(e); return a.notifyWith(s, [h, e, t]), e < 1 && n ? t : (n || a.notifyWith(s, [h, 1, 0]), a.resolveWith(s, [h]), !1) }, h = a.promise({ elem: s, props: T.extend({}, t), opts: T.extend(!0, { specialEasing: {}, easing: T.easing._default }, e), originalProperties: t, originalOptions: e, startTime: he || fe(), duration: e.duration, tweens: [], createTween: function (t, e) { t = T.Tween(s, h.opts, t, e, h.opts.specialEasing[t] || h.opts.easing); return h.tweens.push(t), t }, stop: function (t) { var e = 0, i = t ? h.tweens.length : 0; if (o) return this; for (o = !0; e < i; e++)h.tweens[e].run(1); return t ? (a.notifyWith(s, [h, 1, 0]), a.resolveWith(s, [h, t])) : a.rejectWith(s, [h, t]), this } }), c = h.props; for (function (t, e) { var i, n, s, o, r; for (i in t) if (s = e[n = U(i)], o = t[i], Array.isArray(o) && (s = o[1], o = t[i] = o[0]), i !== n && (t[n] = o, delete t[i]), (r = T.cssHooks[n]) && "expand" in r) for (i in o = r.expand(o), delete t[n], o) i in t || (t[i] = o[i], e[i] = s); else e[n] = s }(c, h.opts.specialEasing); n < r; n++)if (i = ve.prefilters[n].call(h, s, c, h.opts)) return y(i.stop) && (T._queueHooks(h.elem, h.opts.queue).stop = i.stop.bind(i)), i; return T.map(c, me, h), y(h.opts.start) && h.opts.start.call(s, h), h.progress(h.opts.progress).done(h.opts.done, h.opts.complete).fail(h.opts.fail).always(h.opts.always), T.fx.timer(T.extend(l, { elem: s, anim: h, queue: h.opts.queue })), h } T.Animation = T.extend(ve, { tweeners: { "*": [function (t, e) { var i = this.createTween(t, e); return at(i.elem, t, et.exec(e), i), i }] }, tweener: function (t, e) { for (var i, n = 0, s = (t = y(t) ? (e = t, ["*"]) : t.match(H)).length; n < s; n++)i = t[n], ve.tweeners[i] = ve.tweeners[i] || [], ve.tweeners[i].unshift(e) }, prefilters: [function (t, e, i) { var n, s, o, r, a, l, h, c = "width" in e || "height" in e, u = this, d = {}, p = t.style, f = t.nodeType && rt(t), g = X.get(t, "fxshow"); for (n in i.queue || (null == (r = T._queueHooks(t, "fx")).unqueued && (r.unqueued = 0, a = r.empty.fire, r.empty.fire = function () { r.unqueued || a() }), r.unqueued++, u.always(function () { u.always(function () { r.unqueued--, T.queue(t, "fx").length || r.empty.fire() }) })), e) if (s = e[n], ue.test(s)) { if (delete e[n], o = o || "toggle" === s, s === (f ? "hide" : "show")) { if ("show" !== s || !g || void 0 === g[n]) continue; f = !0 } d[n] = g && g[n] || T.style(t, n) } if ((l = !T.isEmptyObject(e)) || !T.isEmptyObject(d)) for (n in c && 1 === t.nodeType && (i.overflow = [p.overflow, p.overflowX, p.overflowY], null == (h = g && g.display) && (h = X.get(t, "display")), "none" === (c = T.css(t, "display")) && (h ? c = h : (ht([t], !0), h = t.style.display || h, c = T.css(t, "display"), ht([t]))), ("inline" === c || "inline-block" === c && null != h) && "none" === T.css(t, "float") && (l || (u.done(function () { p.display = h }), null == h && (c = p.display, h = "none" === c ? "" : c)), p.display = "inline-block")), i.overflow && (p.overflow = "hidden", u.always(function () { p.overflow = i.overflow[0], p.overflowX = i.overflow[1], p.overflowY = i.overflow[2] })), l = !1, d) l || (g ? "hidden" in g && (f = g.hidden) : g = X.access(t, "fxshow", { display: h }), o && (g.hidden = !f), f && ht([t], !0), u.done(function () { for (n in f || ht([t]), X.remove(t, "fxshow"), d) T.style(t, n, d[n]) })), l = me(f ? g[n] : 0, n, u), n in g || (g[n] = l.start, f && (l.end = l.start, l.start = 0)) }], prefilter: function (t, e) { e ? ve.prefilters.unshift(t) : ve.prefilters.push(t) } }), T.speed = function (t, e, i) { var n = t && "object" == typeof t ? T.extend({}, t) : { complete: i || !i && e || y(t) && t, duration: t, easing: i && e || e && !y(e) && e }; return T.fx.off ? n.duration = 0 : "number" != typeof n.duration && (n.duration in T.fx.speeds ? n.duration = T.fx.speeds[n.duration] : n.duration = T.fx.speeds._default), null != n.queue && !0 !== n.queue || (n.queue = "fx"), n.old = n.complete, n.complete = function () { y(n.old) && n.old.call(this), n.queue && T.dequeue(this, n.queue) }, n }, T.fn.extend({ fadeTo: function (t, e, i, n) { return this.filter(rt).css("opacity", 0).show().end().animate({ opacity: e }, t, i, n) }, animate: function (e, t, i, n) { var s = T.isEmptyObject(e), o = T.speed(t, i, n), n = function () { var t = ve(this, T.extend({}, e), o); (s || X.get(this, "finish")) && t.stop(!0) }; return n.finish = n, s || !1 === o.queue ? this.each(n) : this.queue(o.queue, n) }, stop: function (s, t, o) { function r(t) { var e = t.stop; delete t.stop, e(o) } return "string" != typeof s && (o = t, t = s, s = void 0), t && this.queue(s || "fx", []), this.each(function () { var t = !0, e = null != s && s + "queueHooks", i = T.timers, n = X.get(this); if (e) n[e] && n[e].stop && r(n[e]); else for (e in n) n[e] && n[e].stop && de.test(e) && r(n[e]); for (e = i.length; e--;)i[e].elem !== this || null != s && i[e].queue !== s || (i[e].anim.stop(o), t = !1, i.splice(e, 1)); !t && o || T.dequeue(this, s) }) }, finish: function (r) { return !1 !== r && (r = r || "fx"), this.each(function () { var t, e = X.get(this), i = e[r + "queue"], n = e[r + "queueHooks"], s = T.timers, o = i ? i.length : 0; for (e.finish = !0, T.queue(this, r, []), n && n.stop && n.stop.call(this, !0), t = s.length; t--;)s[t].elem === this && s[t].queue === r && (s[t].anim.stop(!0), s.splice(t, 1)); for (t = 0; t < o; t++)i[t] && i[t].finish && i[t].finish.call(this); delete e.finish }) } }), T.each(["toggle", "show", "hide"], function (t, n) { var s = T.fn[n]; T.fn[n] = function (t, e, i) { return null == t || "boolean" == typeof t ? s.apply(this, arguments) : this.animate(ge(n, !0), t, e, i) } }), T.each({ slideDown: ge("show"), slideUp: ge("hide"), slideToggle: ge("toggle"), fadeIn: { opacity: "show" }, fadeOut: { opacity: "hide" }, fadeToggle: { opacity: "toggle" } }, function (t, n) { T.fn[t] = function (t, e, i) { return this.animate(n, t, e, i) } }), T.timers = [], T.fx.tick = function () { var t, e = 0, i = T.timers; for (he = Date.now(); e < i.length; e++)(t = i[e])() || i[e] !== t || i.splice(e--, 1); i.length || T.fx.stop(), he = void 0 }, T.fx.timer = function (t) { T.timers.push(t), T.fx.start() }, T.fx.interval = 13, T.fx.start = function () { ce || (ce = !0, pe()) }, T.fx.stop = function () { ce = null }, T.fx.speeds = { slow: 600, fast: 200, _default: 400 }, T.fn.delay = function (n, t) { return n = T.fx && T.fx.speeds[n] || n, t = t || "fx", this.queue(t, function (t, e) { var i = C.setTimeout(t, n); e.stop = function () { C.clearTimeout(i) } }) }, u = k.createElement("input"), tt = k.createElement("select").appendChild(k.createElement("option")), u.type = "checkbox", _.checkOn = "" !== u.value, _.optSelected = tt.selected, (u = k.createElement("input")).value = "t", u.type = "radio", _.radioValue = "t" === u.value; var _e, ye = T.expr.attrHandle; T.fn.extend({ attr: function (t, e) { return B(this, T.attr, t, e, 1 < arguments.length) }, removeAttr: function (t) { return this.each(function () { T.removeAttr(this, t) }) } }), T.extend({ attr: function (t, e, i) { var n, s, o = t.nodeType; if (3 !== o && 8 !== o && 2 !== o) return void 0 === t.getAttribute ? T.prop(t, e, i) : (1 === o && T.isXMLDoc(t) || (s = T.attrHooks[e.toLowerCase()] || (T.expr.match.bool.test(e) ? _e : void 0)), void 0 !== i ? null === i ? void T.removeAttr(t, e) : s && "set" in s && void 0 !== (n = s.set(t, i, e)) ? n : (t.setAttribute(e, i + ""), i) : !(s && "get" in s && null !== (n = s.get(t, e))) && null == (n = T.find.attr(t, e)) ? void 0 : n) }, attrHooks: { type: { set: function (t, e) { if (!_.radioValue && "radio" === e && E(t, "input")) { var i = t.value; return t.setAttribute("type", e), i && (t.value = i), e } } } }, removeAttr: function (t, e) { var i, n = 0, s = e && e.match(H); if (s && 1 === t.nodeType) for (; i = s[n++];)t.removeAttribute(i) } }), _e = { set: function (t, e, i) { return !1 === e ? T.removeAttr(t, i) : t.setAttribute(i, i), i } }, T.each(T.expr.match.bool.source.match(/\w+/g), function (t, e) { var r = ye[e] || T.find.attr; ye[e] = function (t, e, i) { var n, s, o = e.toLowerCase(); return i || (s = ye[o], ye[o] = n, n = null != r(t, e, i) ? o : null, ye[o] = s), n } }); var be = /^(?:input|select|textarea|button)$/i, we = /^(?:a|area)$/i; function xe(t) { return (t.match(H) || []).join(" ") } function Ce(t) { return t.getAttribute && t.getAttribute("class") || "" } function ke(t) { return Array.isArray(t) ? t : "string" == typeof t && t.match(H) || [] } T.fn.extend({ prop: function (t, e) { return B(this, T.prop, t, e, 1 < arguments.length) }, removeProp: function (t) { return this.each(function () { delete this[T.propFix[t] || t] }) } }), T.extend({ prop: function (t, e, i) { var n, s, o = t.nodeType; if (3 !== o && 8 !== o && 2 !== o) return 1 === o && T.isXMLDoc(t) || (e = T.propFix[e] || e, s = T.propHooks[e]), void 0 !== i ? s && "set" in s && void 0 !== (n = s.set(t, i, e)) ? n : t[e] = i : s && "get" in s && null !== (n = s.get(t, e)) ? n : t[e] }, propHooks: { tabIndex: { get: function (t) { var e = T.find.attr(t, "tabindex"); return e ? parseInt(e, 10) : be.test(t.nodeName) || we.test(t.nodeName) && t.href ? 0 : -1 } } }, propFix: { for: "htmlFor", class: "className" } }), _.optSelected || (T.propHooks.selected = { get: function (t) { t = t.parentNode; return t && t.parentNode && t.parentNode.selectedIndex, null }, set: function (t) { t = t.parentNode; t && (t.selectedIndex, t.parentNode && t.parentNode.selectedIndex) } }), T.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], function () { T.propFix[this.toLowerCase()] = this }), T.fn.extend({ addClass: function (e) { var t, i, n, s, o, r, a = 0; if (y(e)) return this.each(function (t) { T(this).addClass(e.call(this, t, Ce(this))) }); if ((t = ke(e)).length) for (; i = this[a++];)if (r = Ce(i), n = 1 === i.nodeType && " " + xe(r) + " ") { for (o = 0; s = t[o++];)n.indexOf(" " + s + " ") < 0 && (n += s + " "); r !== (r = xe(n)) && i.setAttribute("class", r) } return this }, removeClass: function (e) { var t, i, n, s, o, r, a = 0; if (y(e)) return this.each(function (t) { T(this).removeClass(e.call(this, t, Ce(this))) }); if (!arguments.length) return this.attr("class", ""); if ((t = ke(e)).length) for (; i = this[a++];)if (r = Ce(i), n = 1 === i.nodeType && " " + xe(r) + " ") { for (o = 0; s = t[o++];)for (; -1 < n.indexOf(" " + s + " ");)n = n.replace(" " + s + " ", " "); r !== (r = xe(n)) && i.setAttribute("class", r) } return this }, toggleClass: function (s, e) { var o = typeof s, r = "string" == o || Array.isArray(s); return "boolean" == typeof e && r ? e ? this.addClass(s) : this.removeClass(s) : y(s) ? this.each(function (t) { T(this).toggleClass(s.call(this, t, Ce(this), e), e) }) : this.each(function () { var t, e, i, n; if (r) for (e = 0, i = T(this), n = ke(s); t = n[e++];)i.hasClass(t) ? i.removeClass(t) : i.addClass(t); else void 0 !== s && "boolean" != o || ((t = Ce(this)) && X.set(this, "__className__", t), this.setAttribute && this.setAttribute("class", !t && !1 !== s && X.get(this, "__className__") || "")) }) }, hasClass: function (t) { for (var e, i = 0, n = " " + t + " "; e = this[i++];)if (1 === e.nodeType && -1 < (" " + xe(Ce(e)) + " ").indexOf(n)) return !0; return !1 } }); var Te = /\r/g; T.fn.extend({ val: function (e) { var i, t, n, s = this[0]; return arguments.length ? (n = y(e), this.each(function (t) { 1 === this.nodeType && (null == (t = n ? e.call(this, t, T(this).val()) : e) ? t = "" : "number" == typeof t ? t += "" : Array.isArray(t) && (t = T.map(t, function (t) { return null == t ? "" : t + "" })), (i = T.valHooks[this.type] || T.valHooks[this.nodeName.toLowerCase()]) && "set" in i && void 0 !== i.set(this, t, "value") || (this.value = t)) })) : s ? (i = T.valHooks[s.type] || T.valHooks[s.nodeName.toLowerCase()]) && "get" in i && void 0 !== (t = i.get(s, "value")) ? t : "string" == typeof (t = s.value) ? t.replace(Te, "") : null == t ? "" : t : void 0 } }), T.extend({ valHooks: { option: { get: function (t) { var e = T.find.attr(t, "value"); return null != e ? e : xe(T.text(t)) } }, select: { get: function (t) { for (var e, i = t.options, n = t.selectedIndex, s = "select-one" === t.type, o = s ? null : [], r = s ? n + 1 : i.length, a = n < 0 ? r : s ? n : 0; a < r; a++)if (((e = i[a]).selected || a === n) && !e.disabled && (!e.parentNode.disabled || !E(e.parentNode, "optgroup"))) { if (e = T(e).val(), s) return e; o.push(e) } return o }, set: function (t, e) { for (var i, n, s = t.options, o = T.makeArray(e), r = s.length; r--;)((n = s[r]).selected = -1 < T.inArray(T.valHooks.option.get(n), o)) && (i = !0); return i || (t.selectedIndex = -1), o } } } }), T.each(["radio", "checkbox"], function () { T.valHooks[this] = { set: function (t, e) { if (Array.isArray(e)) return t.checked = -1 < T.inArray(T(t).val(), e) } }, _.checkOn || (T.valHooks[this].get = function (t) { return null === t.getAttribute("value") ? "on" : t.value }) }), _.focusin = "onfocusin" in C; function De(t) { t.stopPropagation() } var Ee = /^(?:focusinfocus|focusoutblur)$/; T.extend(T.event, { trigger: function (t, e, i, n) { var s, o, r, a, l, h, c, u = [i || k], d = v.call(t, "type") ? t.type : t, p = v.call(t, "namespace") ? t.namespace.split(".") : [], f = c = o = i = i || k; if (3 !== i.nodeType && 8 !== i.nodeType && !Ee.test(d + T.event.triggered) && (-1 < d.indexOf(".") && (d = (p = d.split(".")).shift(), p.sort()), a = d.indexOf(":") < 0 && "on" + d, (t = t[T.expando] ? t : new T.Event(d, "object" == typeof t && t)).isTrigger = n ? 2 : 3, t.namespace = p.join("."), t.rnamespace = t.namespace ? new RegExp("(^|\\.)" + p.join("\\.(?:.*\\.|)") + "(\\.|$)") : null, t.result = void 0, t.target || (t.target = i), e = null == e ? [t] : T.makeArray(e, [t]), h = T.event.special[d] || {}, n || !h.trigger || !1 !== h.trigger.apply(i, e))) { if (!n && !h.noBubble && !g(i)) { for (r = h.delegateType || d, Ee.test(r + d) || (f = f.parentNode); f; f = f.parentNode)u.push(f), o = f; o === (i.ownerDocument || k) && u.push(o.defaultView || o.parentWindow || C) } for (s = 0; (f = u[s++]) && !t.isPropagationStopped();)c = f, t.type = 1 < s ? r : h.bindType || d, (l = (X.get(f, "events") || Object.create(null))[t.type] && X.get(f, "handle")) && l.apply(f, e), (l = a && f[a]) && l.apply && V(f) && (t.result = l.apply(f, e), !1 === t.result && t.preventDefault()); return t.type = d, n || t.isDefaultPrevented() || h._default && !1 !== h._default.apply(u.pop(), e) || !V(i) || a && y(i[d]) && !g(i) && ((o = i[a]) && (i[a] = null), T.event.triggered = d, t.isPropagationStopped() && c.addEventListener(d, De), i[d](), t.isPropagationStopped() && c.removeEventListener(d, De), T.event.triggered = void 0, o && (i[a] = o)), t.result } }, simulate: function (t, e, i) { t = T.extend(new T.Event, i, { type: t, isSimulated: !0 }); T.event.trigger(t, null, e) } }), T.fn.extend({ trigger: function (t, e) { return this.each(function () { T.event.trigger(t, e, this) }) }, triggerHandler: function (t, e) { var i = this[0]; if (i) return T.event.trigger(t, e, i, !0) } }), _.focusin || T.each({ focus: "focusin", blur: "focusout" }, function (i, n) { function s(t) { T.event.simulate(n, t.target, T.event.fix(t)) } T.event.special[n] = { setup: function () { var t = this.ownerDocument || this.document || this, e = X.access(t, n); e || t.addEventListener(i, s, !0), X.access(t, n, (e || 0) + 1) }, teardown: function () { var t = this.ownerDocument || this.document || this, e = X.access(t, n) - 1; e ? X.access(t, n, e) : (t.removeEventListener(i, s, !0), X.remove(t, n)) } } }); var Se = C.location, Ie = { guid: Date.now() }, Ae = /\?/; T.parseXML = function (t) { var e; if (!t || "string" != typeof t) return null; try { e = (new C.DOMParser).parseFromString(t, "text/xml") } catch (t) { e = void 0 } return e && !e.getElementsByTagName("parsererror").length || T.error("Invalid XML: " + t), e }; var Pe = /\[\]$/, Ne = /\r?\n/g, Me = /^(?:submit|button|image|reset|file)$/i, Oe = /^(?:input|select|textarea|keygen)/i; T.param = function (t, e) { function i(t, e) { e = y(e) ? e() : e, s[s.length] = encodeURIComponent(t) + "=" + encodeURIComponent(null == e ? "" : e) } var n, s = []; if (null == t) return ""; if (Array.isArray(t) || t.jquery && !T.isPlainObject(t)) T.each(t, function () { i(this.name, this.value) }); else for (n in t) !function i(n, t, s, o) { if (Array.isArray(t)) T.each(t, function (t, e) { s || Pe.test(n) ? o(n, e) : i(n + "[" + ("object" == typeof e && null != e ? t : "") + "]", e, s, o) }); else if (s || "object" !== f(t)) o(n, t); else for (var e in t) i(n + "[" + e + "]", t[e], s, o) }(n, t[n], e, i); return s.join("&") }, T.fn.extend({ serialize: function () { return T.param(this.serializeArray()) }, serializeArray: function () { return this.map(function () { var t = T.prop(this, "elements"); return t ? T.makeArray(t) : this }).filter(function () { var t = this.type; return this.name && !T(this).is(":disabled") && Oe.test(this.nodeName) && !Me.test(t) && (this.checked || !ct.test(t)) }).map(function (t, e) { var i = T(this).val(); return null == i ? null : Array.isArray(i) ? T.map(i, function (t) { return { name: e.name, value: t.replace(Ne, "\r\n") } }) : { name: e.name, value: i.replace(Ne, "\r\n") } }).get() } }); var He = /%20/g, Le = /#.*$/, ze = /([?&])_=[^&]*/, je = /^(.*?):[ \t]*([^\r\n]*)$/gm, Fe = /^(?:GET|HEAD)$/, We = /^\/\//, Re = {}, Be = {}, $e = "*/".concat("*"), qe = k.createElement("a"); function Ye(o) { return function (t, e) { "string" != typeof t && (e = t, t = "*"); var i, n = 0, s = t.toLowerCase().match(H) || []; if (y(e)) for (; i = s[n++];)"+" === i[0] ? (i = i.slice(1) || "*", (o[i] = o[i] || []).unshift(e)) : (o[i] = o[i] || []).push(e) } } function Ue(e, n, s, o) { var r = {}, a = e === Be; function l(t) { var i; return r[t] = !0, T.each(e[t] || [], function (t, e) { e = e(n, s, o); return "string" != typeof e || a || r[e] ? a ? !(i = e) : void 0 : (n.dataTypes.unshift(e), l(e), !1) }), i } return l(n.dataTypes[0]) || !r["*"] && l("*") } function Ve(t, e) { var i, n, s = T.ajaxSettings.flatOptions || {}; for (i in e) void 0 !== e[i] && ((s[i] ? t : n = n || {})[i] = e[i]); return n && T.extend(!0, t, n), t } qe.href = Se.href, T.extend({ active: 0, lastModified: {}, etag: {}, ajaxSettings: { url: Se.href, type: "GET", isLocal: /^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Se.protocol), global: !0, processData: !0, async: !0, contentType: "application/x-www-form-urlencoded; charset=UTF-8", accepts: { "*": $e, 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": T.parseXML }, flatOptions: { url: !0, context: !0 } }, ajaxSetup: function (t, e) { return e ? Ve(Ve(t, T.ajaxSettings), e) : Ve(T.ajaxSettings, t) }, ajaxPrefilter: Ye(Re), ajaxTransport: Ye(Be), ajax: function (t, e) { "object" == typeof t && (e = t, t = void 0), e = e || {}; var l, h, c, i, u, n, d, p, s, o, f = T.ajaxSetup({}, e), g = f.context || f, m = f.context && (g.nodeType || g.jquery) ? T(g) : T.event, v = T.Deferred(), _ = T.Callbacks("once memory"), y = f.statusCode || {}, r = {}, a = {}, b = "canceled", w = { readyState: 0, getResponseHeader: function (t) { var e; if (d) { if (!i) for (i = {}; e = je.exec(c);)i[e[1].toLowerCase() + " "] = (i[e[1].toLowerCase() + " "] || []).concat(e[2]); e = i[t.toLowerCase() + " "] } return null == e ? null : e.join(", ") }, getAllResponseHeaders: function () { return d ? c : null }, setRequestHeader: function (t, e) { return null == d && (t = a[t.toLowerCase()] = a[t.toLowerCase()] || t, r[t] = e), this }, overrideMimeType: function (t) { return null == d && (f.mimeType = t), this }, statusCode: function (t) { if (t) if (d) w.always(t[w.status]); else for (var e in t) y[e] = [y[e], t[e]]; return this }, abort: function (t) { t = t || b; return l && l.abort(t), x(0, t), this } }; if (v.promise(w), f.url = ((t || f.url || Se.href) + "").replace(We, Se.protocol + "//"), f.type = e.method || e.type || f.method || f.type, f.dataTypes = (f.dataType || "*").toLowerCase().match(H) || [""], null == f.crossDomain) { n = k.createElement("a"); try { n.href = f.url, n.href = n.href, f.crossDomain = qe.protocol + "//" + qe.host != n.protocol + "//" + n.host } catch (t) { f.crossDomain = !0 } } if (f.data && f.processData && "string" != typeof f.data && (f.data = T.param(f.data, f.traditional)), Ue(Re, f, e, w), d) return w; for (s in (p = T.event && f.global) && 0 == T.active++ && T.event.trigger("ajaxStart"), f.type = f.type.toUpperCase(), f.hasContent = !Fe.test(f.type), h = f.url.replace(Le, ""), f.hasContent ? f.data && f.processData && 0 === (f.contentType || "").indexOf("application/x-www-form-urlencoded") && (f.data = f.data.replace(He, "+")) : (o = f.url.slice(h.length), f.data && (f.processData || "string" == typeof f.data) && (h += (Ae.test(h) ? "&" : "?") + f.data, delete f.data), !1 === f.cache && (h = h.replace(ze, "$1"), o = (Ae.test(h) ? "&" : "?") + "_=" + Ie.guid++ + o), f.url = h + o), f.ifModified && (T.lastModified[h] && w.setRequestHeader("If-Modified-Since", T.lastModified[h]), T.etag[h] && w.setRequestHeader("If-None-Match", T.etag[h])), (f.data && f.hasContent && !1 !== f.contentType || e.contentType) && w.setRequestHeader("Content-Type", f.contentType), w.setRequestHeader("Accept", f.dataTypes[0] && f.accepts[f.dataTypes[0]] ? f.accepts[f.dataTypes[0]] + ("*" !== f.dataTypes[0] ? ", " + $e + "; q=0.01" : "") : f.accepts["*"]), f.headers) w.setRequestHeader(s, f.headers[s]); if (f.beforeSend && (!1 === f.beforeSend.call(g, w, f) || d)) return w.abort(); if (b = "abort", _.add(f.complete), w.done(f.success), w.fail(f.error), l = Ue(Be, f, e, w)) { if (w.readyState = 1, p && m.trigger("ajaxSend", [w, f]), d) return w; f.async && 0 < f.timeout && (u = C.setTimeout(function () { w.abort("timeout") }, f.timeout)); try { d = !1, l.send(r, x) } catch (t) { if (d) throw t; x(-1, t) } } else x(-1, "No Transport"); function x(t, e, i, n) { var s, o, r, a = e; d || (d = !0, u && C.clearTimeout(u), l = void 0, c = n || "", w.readyState = 0 < t ? 4 : 0, n = 200 <= t && t < 300 || 304 === t, i && (r = function (t, e, i) { for (var n, s, o, r, a = t.contents, l = t.dataTypes; "*" === l[0];)l.shift(), void 0 === n && (n = t.mimeType || e.getResponseHeader("Content-Type")); if (n) for (s in a) if (a[s] && a[s].test(n)) { l.unshift(s); break } if (l[0] in i) o = l[0]; else { for (s in i) { if (!l[0] || t.converters[s + " " + l[0]]) { o = s; break } r = r || s } o = o || r } if (o) return o !== l[0] && l.unshift(o), i[o] }(f, w, i)), !n && -1 < T.inArray("script", f.dataTypes) && (f.converters["text script"] = function () { }), r = function (t, e, i, n) { var s, o, r, a, l, h = {}, c = t.dataTypes.slice(); if (c[1]) for (r in t.converters) h[r.toLowerCase()] = t.converters[r]; for (o = c.shift(); o;)if (t.responseFields[o] && (i[t.responseFields[o]] = e), !l && n && t.dataFilter && (e = t.dataFilter(e, t.dataType)), l = o, o = c.shift()) if ("*" === o) o = l; else if ("*" !== l && l !== o) { if (!(r = h[l + " " + o] || h["* " + o])) for (s in h) if ((a = s.split(" "))[1] === o && (r = h[l + " " + a[0]] || h["* " + a[0]])) { !0 === r ? r = h[s] : !0 !== h[s] && (o = a[0], c.unshift(a[1])); break } if (!0 !== r) if (r && t.throws) e = r(e); else try { e = r(e) } catch (t) { return { state: "parsererror", error: r ? t : "No conversion from " + l + " to " + o } } } return { state: "success", data: e } }(f, r, w, n), n ? (f.ifModified && ((i = w.getResponseHeader("Last-Modified")) && (T.lastModified[h] = i), (i = w.getResponseHeader("etag")) && (T.etag[h] = i)), 204 === t || "HEAD" === f.type ? a = "nocontent" : 304 === t ? a = "notmodified" : (a = r.state, s = r.data, n = !(o = r.error))) : (o = a, !t && a || (a = "error", t < 0 && (t = 0))), w.status = t, w.statusText = (e || a) + "", n ? v.resolveWith(g, [s, a, w]) : v.rejectWith(g, [w, a, o]), w.statusCode(y), y = void 0, p && m.trigger(n ? "ajaxSuccess" : "ajaxError", [w, f, n ? s : o]), _.fireWith(g, [w, a]), p && (m.trigger("ajaxComplete", [w, f]), --T.active || T.event.trigger("ajaxStop"))) } return w }, getJSON: function (t, e, i) { return T.get(t, e, i, "json") }, getScript: function (t, e) { return T.get(t, void 0, e, "script") } }), T.each(["get", "post"], function (t, s) { T[s] = function (t, e, i, n) { return y(e) && (n = n || i, i = e, e = void 0), T.ajax(T.extend({ url: t, type: s, dataType: n, data: e, success: i }, T.isPlainObject(t) && t)) } }), T.ajaxPrefilter(function (t) { for (var e in t.headers) "content-type" === e.toLowerCase() && (t.contentType = t.headers[e] || "") }), T._evalUrl = function (t, e, i) { return T.ajax({ url: t, type: "GET", dataType: "script", cache: !0, async: !1, global: !1, converters: { "text script": function () { } }, dataFilter: function (t) { T.globalEval(t, e, i) } }) }, T.fn.extend({ wrapAll: function (t) { return this[0] && (y(t) && (t = t.call(this[0])), t = T(t, this[0].ownerDocument).eq(0).clone(!0), this[0].parentNode && t.insertBefore(this[0]), t.map(function () { for (var t = this; t.firstElementChild;)t = t.firstElementChild; return t }).append(this)), this }, wrapInner: function (i) { return y(i) ? this.each(function (t) { T(this).wrapInner(i.call(this, t)) }) : this.each(function () { var t = T(this), e = t.contents(); e.length ? e.wrapAll(i) : t.append(i) }) }, wrap: function (e) { var i = y(e); return this.each(function (t) { T(this).wrapAll(i ? e.call(this, t) : e) }) }, unwrap: function (t) { return this.parent(t).not("body").each(function () { T(this).replaceWith(this.childNodes) }), this } }), T.expr.pseudos.hidden = function (t) { return !T.expr.pseudos.visible(t) }, T.expr.pseudos.visible = function (t) { return !!(t.offsetWidth || t.offsetHeight || t.getClientRects().length) }, T.ajaxSettings.xhr = function () { try { return new C.XMLHttpRequest } catch (t) { } }; var Ke = { 0: 200, 1223: 204 }, Xe = T.ajaxSettings.xhr(); _.cors = !!Xe && "withCredentials" in Xe, _.ajax = Xe = !!Xe, T.ajaxTransport(function (s) { var o, r; if (_.cors || Xe && !s.crossDomain) return { send: function (t, e) { var i, n = s.xhr(); if (n.open(s.type, s.url, s.async, s.username, s.password), s.xhrFields) for (i in s.xhrFields) n[i] = s.xhrFields[i]; for (i in s.mimeType && n.overrideMimeType && n.overrideMimeType(s.mimeType), s.crossDomain || t["X-Requested-With"] || (t["X-Requested-With"] = "XMLHttpRequest"), t) n.setRequestHeader(i, t[i]); o = function (t) { return function () { o && (o = r = n.onload = n.onerror = n.onabort = n.ontimeout = n.onreadystatechange = null, "abort" === t ? n.abort() : "error" === t ? "number" != typeof n.status ? e(0, "error") : e(n.status, n.statusText) : e(Ke[n.status] || n.status, n.statusText, "text" !== (n.responseType || "text") || "string" != typeof n.responseText ? { binary: n.response } : { text: n.responseText }, n.getAllResponseHeaders())) } }, n.onload = o(), r = n.onerror = n.ontimeout = o("error"), void 0 !== n.onabort ? n.onabort = r : n.onreadystatechange = function () { 4 === n.readyState && C.setTimeout(function () { o && r() }) }, o = o("abort"); try { n.send(s.hasContent && s.data || null) } catch (t) { if (o) throw t } }, abort: function () { o && o() } } }), T.ajaxPrefilter(function (t) { t.crossDomain && (t.contents.script = !1) }), T.ajaxSetup({ accepts: { script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript" }, contents: { script: /\b(?:java|ecma)script\b/ }, converters: { "text script": function (t) { return T.globalEval(t), t } } }), T.ajaxPrefilter("script", function (t) { void 0 === t.cache && (t.cache = !1), t.crossDomain && (t.type = "GET") }), T.ajaxTransport("script", function (i) { var n, s; if (i.crossDomain || i.scriptAttrs) return { send: function (t, e) { n = T("<script>").attr(i.scriptAttrs || {}).prop({ charset: i.scriptCharset, src: i.url }).on("load error", s = function (t) { n.remove(), s = null, t && e("error" === t.type ? 404 : 200, t.type) }), k.head.appendChild(n[0]) }, abort: function () { s && s() } } }); var Qe = [], Ge = /(=)\?(?=&|$)|\?\?/; T.ajaxSetup({ jsonp: "callback", jsonpCallback: function () { var t = Qe.pop() || T.expando + "_" + Ie.guid++; return this[t] = !0, t } }), T.ajaxPrefilter("json jsonp", function (t, e, i) { var n, s, o, r = !1 !== t.jsonp && (Ge.test(t.url) ? "url" : "string" == typeof t.data && 0 === (t.contentType || "").indexOf("application/x-www-form-urlencoded") && Ge.test(t.data) && "data"); if (r || "jsonp" === t.dataTypes[0]) return n = t.jsonpCallback = y(t.jsonpCallback) ? t.jsonpCallback() : t.jsonpCallback, r ? t[r] = t[r].replace(Ge, "$1" + n) : !1 !== t.jsonp && (t.url += (Ae.test(t.url) ? "&" : "?") + t.jsonp + "=" + n), t.converters["script json"] = function () { return o || T.error(n + " was not called"), o[0] }, t.dataTypes[0] = "json", s = C[n], C[n] = function () { o = arguments }, i.always(function () { void 0 === s ? T(C).removeProp(n) : C[n] = s, t[n] && (t.jsonpCallback = e.jsonpCallback, Qe.push(n)), o && y(s) && s(o[0]), o = s = void 0 }), "script" }), _.createHTMLDocument = ((u = k.implementation.createHTMLDocument("").body).innerHTML = "<form></form><form></form>", 2 === u.childNodes.length), T.parseHTML = function (t, e, i) { return "string" != typeof t ? [] : ("boolean" == typeof e && (i = e, e = !1), e || (_.createHTMLDocument ? ((n = (e = k.implementation.createHTMLDocument("")).createElement("base")).href = k.location.href, e.head.appendChild(n)) : e = k), n = !i && [], (i = S.exec(t)) ? [e.createElement(i[1])] : (i = vt([t], e, n), n && n.length && T(n).remove(), T.merge([], i.childNodes))); var n }, T.fn.load = function (t, e, i) { var n, s, o, r = this, a = t.indexOf(" "); return -1 < a && (n = xe(t.slice(a)), t = t.slice(0, a)), y(e) ? (i = e, e = void 0) : e && "object" == typeof e && (s = "POST"), 0 < r.length && T.ajax({ url: t, type: s || "GET", dataType: "html", data: e }).done(function (t) { o = arguments, r.html(n ? T("<div>").append(T.parseHTML(t)).find(n) : t) }).always(i && function (t, e) { r.each(function () { i.apply(this, o || [t.responseText, e, t]) }) }), this }, T.expr.pseudos.animated = function (e) { return T.grep(T.timers, function (t) { return e === t.elem }).length }, T.offset = { setOffset: function (t, e, i) { var n, s, o, r, a = T.css(t, "position"), l = T(t), h = {}; "static" === a && (t.style.position = "relative"), o = l.offset(), n = T.css(t, "top"), r = T.css(t, "left"), r = ("absolute" === a || "fixed" === a) && -1 < (n + r).indexOf("auto") ? (s = (a = l.position()).top, a.left) : (s = parseFloat(n) || 0, parseFloat(r) || 0), y(e) && (e = e.call(t, i, T.extend({}, o))), null != e.top && (h.top = e.top - o.top + s), null != e.left && (h.left = e.left - o.left + r), "using" in e ? e.using.call(t, h) : ("number" == typeof h.top && (h.top += "px"), "number" == typeof h.left && (h.left += "px"), l.css(h)) } }, T.fn.extend({ offset: function (e) { if (arguments.length) return void 0 === e ? this : this.each(function (t) { T.offset.setOffset(this, e, t) }); var t, i = this[0]; return i ? i.getClientRects().length ? (t = i.getBoundingClientRect(), i = i.ownerDocument.defaultView, { top: t.top + i.pageYOffset, left: t.left + i.pageXOffset }) : { top: 0, left: 0 } : void 0 }, position: function () { if (this[0]) { var t, e, i, n = this[0], s = { top: 0, left: 0 }; if ("fixed" === T.css(n, "position")) e = n.getBoundingClientRect(); else { for (e = this.offset(), i = n.ownerDocument, t = n.offsetParent || i.documentElement; t && (t === i.body || t === i.documentElement) && "static" === T.css(t, "position");)t = t.parentNode; t && t !== n && 1 === t.nodeType && ((s = T(t).offset()).top += T.css(t, "borderTopWidth", !0), s.left += T.css(t, "borderLeftWidth", !0)) } return { top: e.top - s.top - T.css(n, "marginTop", !0), left: e.left - s.left - T.css(n, "marginLeft", !0) } } }, offsetParent: function () { return this.map(function () { for (var t = this.offsetParent; t && "static" === T.css(t, "position");)t = t.offsetParent; return t || nt }) } }), T.each({ scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function (e, s) { var o = "pageYOffset" === s; T.fn[e] = function (t) { return B(this, function (t, e, i) { var n; return g(t) ? n = t : 9 === t.nodeType && (n = t.defaultView), void 0 === i ? n ? n[s] : t[e] : void (n ? n.scrollTo(o ? n.pageXOffset : i, o ? i : n.pageYOffset) : t[e] = i) }, e, t, arguments.length) } }), T.each(["top", "left"], function (t, i) { T.cssHooks[i] = Kt(_.pixelPosition, function (t, e) { if (e) return e = Vt(t, i), qt.test(e) ? T(t).position()[i] + "px" : e }) }), T.each({ Height: "height", Width: "width" }, function (r, a) { T.each({ padding: "inner" + r, content: a, "": "outer" + r }, function (n, o) { T.fn[o] = function (t, e) { var i = arguments.length && (n || "boolean" != typeof t), s = n || (!0 === t || !0 === e ? "margin" : "border"); return B(this, function (t, e, i) { var n; return g(t) ? 0 === o.indexOf("outer") ? t["inner" + r] : t.document.documentElement["client" + r] : 9 === t.nodeType ? (n = t.documentElement, Math.max(t.body["scroll" + r], n["scroll" + r], t.body["offset" + r], n["offset" + r], n["client" + r])) : void 0 === i ? T.css(t, e, s) : T.style(t, e, i, s) }, a, i ? t : void 0, i) } }) }), T.each(["ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], function (t, e) { T.fn[e] = function (t) { return this.on(e, t) } }), T.fn.extend({ bind: function (t, e, i) { return this.on(t, null, e, i) }, unbind: function (t, e) { return this.off(t, null, e) }, delegate: function (t, e, i, n) { return this.on(e, t, i, n) }, undelegate: function (t, e, i) { return 1 === arguments.length ? this.off(t, "**") : this.off(e, t || "**", i) }, hover: function (t, e) { return this.mouseenter(t).mouseleave(e || t) } }), T.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 (t, i) { T.fn[i] = function (t, e) { return 0 < arguments.length ? this.on(i, null, t, e) : this.trigger(i) } }); var Je = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g; T.proxy = function (t, e) { var i, n; if ("string" == typeof e && (n = t[e], e = t, t = n), y(t)) return i = a.call(arguments, 2), (n = function () { return t.apply(e || this, i.concat(a.call(arguments))) }).guid = t.guid = t.guid || T.guid++, n }, T.holdReady = function (t) { t ? T.readyWait++ : T.ready(!0) }, T.isArray = Array.isArray, T.parseJSON = JSON.parse, T.nodeName = E, T.isFunction = y, T.isWindow = g, T.camelCase = U, T.type = f, T.now = Date.now, T.isNumeric = function (t) { var e = T.type(t); return ("number" === e || "string" === e) && !isNaN(t - parseFloat(t)) }, T.trim = function (t) { return null == t ? "" : (t + "").replace(Je, "") }, "function" == typeof define && define.amd && define("jquery", [], function () { return T }); var Ze = C.jQuery, ti = C.$; return T.noConflict = function (t) { return C.$ === T && (C.$ = ti), t && C.jQuery === T && (C.jQuery = Ze), T }, void 0 === t && (C.jQuery = C.$ = T), T }), function (t, e) { "object" == typeof exports && "undefined" != typeof module ? module.exports = e() : "function" == typeof define && define.amd ? define(e) : t.Popper = e() }(this, function () { "use strict"; function s(t) { return t && "[object Function]" === {}.toString.call(t) } function u(t, e) { if (1 !== t.nodeType) return []; t = t.ownerDocument.defaultView.getComputedStyle(t, null); return e ? t[e] : t } function h(t) { return "HTML" === t.nodeName ? t : t.parentNode || t.host } function c(t) { if (!t) return document.body; switch (t.nodeName) { case "HTML": case "BODY": return t.ownerDocument.body; case "#document": return t.body }var e = u(t), i = e.overflow, n = e.overflowX, e = e.overflowY; return /(auto|scroll|overlay)/.test(i + e + n) ? t : c(h(t)) } function d(t) { return t && t.referenceNode ? t.referenceNode : t } function p(t) { return 11 === t ? $ : 10 !== t && $ || q } function g(t) { if (!t) return document.documentElement; for (var e = p(10) ? document.body : null, i = t.offsetParent || null; i === e && t.nextElementSibling;)i = (t = t.nextElementSibling).offsetParent; var n = i && i.nodeName; return n && "BODY" !== n && "HTML" !== n ? -1 !== ["TH", "TD", "TABLE"].indexOf(i.nodeName) && "static" === u(i, "position") ? g(i) : i : (t ? t.ownerDocument : document).documentElement } function o(t) { return null === t.parentNode ? t : o(t.parentNode) } function f(t, e) { if (!(t && t.nodeType && e && e.nodeType)) return document.documentElement; var i = t.compareDocumentPosition(e) & Node.DOCUMENT_POSITION_FOLLOWING, n = i ? t : e, s = i ? e : t, i = document.createRange(); i.setStart(n, 0), i.setEnd(s, 0); i = i.commonAncestorContainer; if (t !== i && e !== i || n.contains(s)) return "BODY" === (s = (n = i).nodeName) || "HTML" !== s && g(n.firstElementChild) !== n ? g(i) : i; i = o(t); return i.host ? f(i.host, e) : f(t, o(e).host) } function m(t, e) { var i = "top" === (1 < arguments.length && void 0 !== e ? e : "top") ? "scrollTop" : "scrollLeft", e = t.nodeName; if ("BODY" !== e && "HTML" !== e) return t[i]; e = t.ownerDocument.documentElement; return (t.ownerDocument.scrollingElement || e)[i] } function l(t, e) { var i = "x" === e ? "Left" : "Top", e = "Left" == i ? "Right" : "Bottom"; return parseFloat(t["border" + i + "Width"], 10) + parseFloat(t["border" + e + "Width"], 10) } function n(t, e, i, n) { return F(e["offset" + t], e["scroll" + t], i["client" + t], i["offset" + t], i["scroll" + t], p(10) ? parseInt(i["offset" + t]) + parseInt(n["margin" + ("Height" === t ? "Top" : "Left")]) + parseInt(n["margin" + ("Height" === t ? "Bottom" : "Right")]) : 0) } function v(t) { var e = t.body, i = t.documentElement, t = p(10) && getComputedStyle(i); return { height: n("Height", e, i, t), width: n("Width", e, i, t) } } function _(t) { return V({}, t, { right: t.left + t.width, bottom: t.top + t.height }) } function y(t) { var e, i, n = {}; try { p(10) ? (n = t.getBoundingClientRect(), e = m(t, "top"), i = m(t, "left"), n.top += e, n.left += i, n.bottom += e, n.right += i) : n = t.getBoundingClientRect() } catch (t) { } var s = { left: n.left, top: n.top, width: n.right - n.left, height: n.bottom - n.top }, o = "HTML" === t.nodeName ? v(t.ownerDocument) : {}, r = o.width || t.clientWidth || s.width, a = o.height || t.clientHeight || s.height, o = t.offsetWidth - r, r = t.offsetHeight - a; return (o || r) && (o -= l(a = u(t), "x"), r -= l(a, "y"), s.width -= o, s.height -= r), _(s) } function b(t, e, i) { var n = 2 < arguments.length && void 0 !== i && i, s = p(10), o = "HTML" === e.nodeName, r = y(t), a = y(e), l = c(t), h = u(e), i = parseFloat(h.borderTopWidth, 10), t = parseFloat(h.borderLeftWidth, 10); n && o && (a.top = F(a.top, 0), a.left = F(a.left, 0)); r = _({ top: r.top - a.top - i, left: r.left - a.left - t, width: r.width, height: r.height }); return r.marginTop = 0, r.marginLeft = 0, !s && o && (o = parseFloat(h.marginTop, 10), h = parseFloat(h.marginLeft, 10), r.top -= i - o, r.bottom -= i - o, r.left -= t - h, r.right -= t - h, r.marginTop = o, r.marginLeft = h), (s && !n ? e.contains(l) : e === l && "BODY" !== l.nodeName) && (r = function (t, e, i) { var n = 2 < arguments.length && void 0 !== i && i, i = m(e, "top"), e = m(e, "left"), n = n ? -1 : 1; return t.top += i * n, t.bottom += i * n, t.left += e * n, t.right += e * n, t }(r, e)), r } function w(t) { if (!t || !t.parentElement || p()) return document.documentElement; for (var e = t.parentElement; e && "none" === u(e, "transform");)e = e.parentElement; return e || document.documentElement } function x(t, e, i, n, s) { var o, r = 4 < arguments.length && void 0 !== s && s, a = { top: 0, left: 0 }, s = r ? w(t) : f(t, d(e)); "viewport" === n ? a = function (t, e) { var i = 1 < arguments.length && void 0 !== e && e, n = t.ownerDocument.documentElement, s = b(t, n), o = F(n.clientWidth, window.innerWidth || 0), e = F(n.clientHeight, window.innerHeight || 0), t = i ? 0 : m(n), n = i ? 0 : m(n, "left"); return _({ top: t - s.top + s.marginTop, left: n - s.left + s.marginLeft, width: o, height: e }) }(s, r) : ("scrollParent" === n ? "BODY" === (o = c(h(e))).nodeName && (o = t.ownerDocument.documentElement) : o = "window" === n ? t.ownerDocument.documentElement : n, l = b(o, s, r), "HTML" !== o.nodeName || function t(e) { var i = e.nodeName; if ("BODY" === i || "HTML" === i) return !1; if ("fixed" === u(e, "position")) return !0; e = h(e); return !!e && t(e) }(s) ? a = l : (t = (s = v(t.ownerDocument)).height, s = s.width, a.top += l.top - l.marginTop, a.bottom = t + l.top, a.left += l.left - l.marginLeft, a.right = s + l.left)); var l = "number" == typeof (i = i || 0); return a.left += l ? i : i.left || 0, a.top += l ? i : i.top || 0, a.right -= l ? i : i.right || 0, a.bottom -= l ? i : i.bottom || 0, a } function r(t, e, i, n, s, o) { o = 5 < arguments.length && void 0 !== o ? o : 0; if (-1 === t.indexOf("auto")) return t; var s = x(i, n, o, s), r = { top: { width: s.width, height: e.top - s.top }, right: { width: s.right - e.right, height: s.height }, bottom: { width: s.width, height: s.bottom - e.bottom }, left: { width: e.left - s.left, height: s.height } }, e = Object.keys(r).map(function (t) { return V({ key: t }, r[t], { area: (t = r[t]).width * t.height }) }).sort(function (t, e) { return e.area - t.area }), s = e.filter(function (t) { var e = t.width, t = t.height; return e >= i.clientWidth && t >= i.clientHeight }), e = (0 < s.length ? s : e)[0].key, t = t.split("-")[1]; return e + (t ? "-" + t : "") } function a(t, e, i, n) { n = 3 < arguments.length && void 0 !== n ? n : null; return b(i, n ? w(e) : f(e, d(i)), n) } function C(t) { var e = t.ownerDocument.defaultView.getComputedStyle(t), i = parseFloat(e.marginTop || 0) + parseFloat(e.marginBottom || 0), e = parseFloat(e.marginLeft || 0) + parseFloat(e.marginRight || 0); return { width: t.offsetWidth + e, height: t.offsetHeight + i } } function k(t) { var e = { left: "right", right: "left", bottom: "top", top: "bottom" }; return t.replace(/left|right|bottom|top/g, function (t) { return e[t] }) } function T(t, e, i) { i = i.split("-")[0]; var n = C(t), s = { width: n.width, height: n.height }, o = -1 !== ["right", "left"].indexOf(i), r = o ? "top" : "left", a = o ? "left" : "top", t = o ? "height" : "width", o = o ? "width" : "height"; return s[r] = e[r] + e[t] / 2 - n[t] / 2, s[a] = i === a ? e[a] - n[o] : e[k(a)], s } function D(t, e) { return Array.prototype.find ? t.find(e) : t.filter(e)[0] } function E(t, i, e) { return (void 0 === e ? t : t.slice(0, function (t, e, i) { if (Array.prototype.findIndex) return t.findIndex(function (t) { return t[e] === i }); var n = D(t, function (t) { return t[e] === i }); return t.indexOf(n) }(t, "name", e))).forEach(function (t) { t.function && console.warn("`modifier.function` is deprecated, use `modifier.fn`!"); var e = t.function || t.fn; t.enabled && s(e) && (i.offsets.popper = _(i.offsets.popper), i.offsets.reference = _(i.offsets.reference), i = e(i, t)) }), i } function t(t, i) { return t.some(function (t) { var e = t.name; return t.enabled && e === i }) } function S(t) { for (var e = [!1, "ms", "Webkit", "Moz", "O"], i = t.charAt(0).toUpperCase() + t.slice(1), n = 0; n < e.length; n++) { var s = e[n], s = s ? "" + s + i : t; if (void 0 !== document.body.style[s]) return s } return null } function I(t) { t = t.ownerDocument; return t ? t.defaultView : window } function e(t, e, i, n) { i.updateBound = n, I(t).addEventListener("resize", i.updateBound, { passive: !0 }); t = c(t); return function t(e, i, n, s) { var o = "BODY" === e.nodeName, e = o ? e.ownerDocument.defaultView : e; e.addEventListener(i, n, { passive: !0 }), o || t(c(e.parentNode), i, n, s), s.push(e) }(t, "scroll", i.updateBound, i.scrollParents), i.scrollElement = t, i.eventsEnabled = !0, i } function i() { var t, e; this.state.eventsEnabled && (cancelAnimationFrame(this.scheduleUpdate), this.state = (t = this.reference, e = this.state, I(t).removeEventListener("resize", e.updateBound), e.scrollParents.forEach(function (t) { t.removeEventListener("scroll", e.updateBound) }), e.updateBound = null, e.scrollParents = [], e.scrollElement = null, e.eventsEnabled = !1, e)) } function A(t) { return "" !== t && !isNaN(parseFloat(t)) && isFinite(t) } function P(i, n) { Object.keys(n).forEach(function (t) { var e = ""; -1 !== ["width", "height", "top", "right", "bottom", "left"].indexOf(t) && A(n[t]) && (e = "px"), i.style[t] = n[t] + e }) } function N(t, e, i) { var n = D(t, function (t) { return t.name === e }), s = !!n && t.some(function (t) { return t.name === i && t.enabled && t.order < n.order }); return s || (t = "`" + e + "`", console.warn("`" + i + "` modifier is required by " + t + " modifier in order to work, be sure to include it before " + t + "!")), s } function M(t, e) { e = 1 < arguments.length && void 0 !== e && e, t = Q.indexOf(t), t = Q.slice(t + 1).concat(Q.slice(0, t)); return e ? t.reverse() : t } function O(t, s, o, e) { var r = [0, 0], a = -1 !== ["right", "left"].indexOf(e), i = t.split(/(\+|\-)/).map(function (t) { return t.trim() }), e = i.indexOf(D(i, function (t) { return -1 !== t.search(/,|\s/) })); i[e] && -1 === i[e].indexOf(",") && console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead."); t = /\s*,\s*|\s+/; return (-1 === e ? [i] : [i.slice(0, e).concat([i[e].split(t)[0]]), [i[e].split(t)[1]].concat(i.slice(e + 1))]).map(function (t, e) { var i = (1 === e ? !a : a) ? "height" : "width", n = !1; return t.reduce(function (t, e) { return "" === t[t.length - 1] && -1 !== ["+", "-"].indexOf(e) ? (t[t.length - 1] = e, n = !0, t) : n ? (t[t.length - 1] += e, n = !1, t) : t.concat(e) }, []).map(function (t) { return function (t, e, i, n) { var s, o = +(r = t.match(/((?:\-|\+)?\d*\.?\d*)(.*)/))[1], r = r[2]; if (!o) return t; if (0 !== r.indexOf("%")) return "vh" !== r && "vw" !== r ? o : ("vh" === r ? F(document.documentElement.clientHeight, window.innerHeight || 0) : F(document.documentElement.clientWidth, window.innerWidth || 0)) / 100 * o; switch (r) { case "%p": s = i; break; case "%": case "%r": default: s = n }return _(s)[e] / 100 * o }(t, i, s, o) }) }).forEach(function (i, n) { i.forEach(function (t, e) { A(t) && (r[n] += t * ("-" === i[e - 1] ? -1 : 1)) }) }), r } function H(t, e, i) { return e in t ? Object.defineProperty(t, e, { value: i, enumerable: !0, configurable: !0, writable: !0 }) : t[e] = i, t } var L = Math.min, z = Math.floor, j = Math.round, F = Math.max, W = "undefined" != typeof window && "undefined" != typeof document && "undefined" != typeof navigator, R = function () { for (var t = ["Edge", "Trident", "Firefox"], e = 0; e < t.length; e += 1)if (W && 0 <= navigator.userAgent.indexOf(t[e])) return 1; return 0 }(), B = W && window.Promise ? function (t) { var e = !1; return function () { e || (e = !0, window.Promise.resolve().then(function () { e = !1, t() })) } } : function (t) { var e = !1; return function () { e || (e = !0, setTimeout(function () { e = !1, t() }, R)) } }, $ = W && !(!window.MSInputMethodContext || !document.documentMode), q = W && /MSIE 10/.test(navigator.userAgent), Y = function (t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function") }, U = function (t, e, i) { return e && et(t.prototype, e), i && et(t, i), t }, V = Object.assign || function (t) { for (var e, i = 1; i < arguments.length; i++)for (var n in e = arguments[i]) Object.prototype.hasOwnProperty.call(e, n) && (t[n] = e[n]); return t }, K = W && /Firefox/i.test(navigator.userAgent), X = ["auto-start", "auto", "auto-end", "top-start", "top", "top-end", "right-start", "right", "right-end", "bottom-end", "bottom", "bottom-start", "left-end", "left", "left-start"], Q = X.slice(3), G = "flip", J = "clockwise", Z = "counterclockwise", U = (U(tt, [{ key: "update", value: function () { return function () { var t; this.state.isDestroyed || ((t = { instance: this, styles: {}, arrowStyles: {}, attributes: {}, flipped: !1, offsets: {} }).offsets.reference = a(this.state, this.popper, this.reference, this.options.positionFixed), t.placement = r(this.options.placement, t.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding), t.originalPlacement = t.placement, t.positionFixed = this.options.positionFixed, t.offsets.popper = T(this.popper, t.offsets.reference, t.placement), t.offsets.popper.position = this.options.positionFixed ? "fixed" : "absolute", t = E(this.modifiers, t), this.state.isCreated ? this.options.onUpdate(t) : (this.state.isCreated = !0, this.options.onCreate(t))) }.call(this) } }, { key: "destroy", value: function () { return function () { return this.state.isDestroyed = !0, t(this.modifiers, "applyStyle") && (this.popper.removeAttribute("x-placement"), this.popper.style.position = "", this.popper.style.top = "", this.popper.style.left = "", this.popper.style.right = "", this.popper.style.bottom = "", this.popper.style.willChange = "", this.popper.style[S("transform")] = ""), this.disableEventListeners(), this.options.removeOnDestroy && this.popper.parentNode.removeChild(this.popper), this }.call(this) } }, { key: "enableEventListeners", value: function () { return function () { this.state.eventsEnabled || (this.state = e(this.reference, this.options, this.state, this.scheduleUpdate)) }.call(this) } }, { key: "disableEventListeners", value: function () { return i.call(this) } }]), tt); function tt(t, e) { var i = this, n = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : {}; Y(this, tt), this.scheduleUpdate = function () { return requestAnimationFrame(i.update) }, this.update = B(this.update.bind(this)), this.options = V({}, tt.Defaults, n), this.state = { isDestroyed: !1, isCreated: !1, scrollParents: [] }, this.reference = t && t.jquery ? t[0] : t, this.popper = e && e.jquery ? e[0] : e, this.options.modifiers = {}, Object.keys(V({}, tt.Defaults.modifiers, n.modifiers)).forEach(function (t) { i.options.modifiers[t] = V({}, tt.Defaults.modifiers[t] || {}, n.modifiers ? n.modifiers[t] : {}) }), this.modifiers = Object.keys(this.options.modifiers).map(function (t) { return V({ name: t }, i.options.modifiers[t]) }).sort(function (t, e) { return t.order - e.order }), this.modifiers.forEach(function (t) { t.enabled && s(t.onLoad) && t.onLoad(i.reference, i.popper, i.options, t, i.state) }), this.update(); e = this.options.eventsEnabled; e && this.enableEventListeners(), this.state.eventsEnabled = e } function et(t, e) { for (var i, n = 0; n < e.length; n++)(i = e[n]).enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(t, i.key, i) } return U.Utils = ("undefined" == typeof window ? global : window).PopperUtils, U.placements = X, U.Defaults = { placement: "bottom", positionFixed: !1, eventsEnabled: !0, removeOnDestroy: !1, onCreate: function () { }, onUpdate: function () { }, modifiers: { shift: { order: 100, enabled: !0, fn: function (t) { var e, i, n = t.placement, s = n.split("-")[0], o = n.split("-")[1]; return o && (e = (i = t.offsets).reference, n = i.popper, s = (i = -1 !== ["bottom", "top"].indexOf(s)) ? "width" : "height", s = { start: H({}, i = i ? "left" : "top", e[i]), end: H({}, i, e[i] + e[s] - n[s]) }, t.offsets.popper = V({}, n, s[o])), t } }, offset: { order: 200, enabled: !0, fn: function (t, e) { var i = e.offset, n = t.placement, e = (s = t.offsets).popper, s = s.reference, n = n.split("-")[0], s = A(+i) ? [+i, 0] : O(i, e, s, n); return "left" === n ? (e.top += s[0], e.left -= s[1]) : "right" === n ? (e.top += s[0], e.left += s[1]) : "top" === n ? (e.left += s[0], e.top -= s[1]) : "bottom" === n && (e.left += s[0], e.top += s[1]), t.popper = e, t }, offset: 0 }, preventOverflow: { order: 300, enabled: !0, fn: function (t, n) { var e = n.boundariesElement || g(t.instance.popper); t.instance.reference === e && (e = g(e)); var i = S("transform"), s = t.instance.popper.style, o = s.top, r = s.left, a = s[i]; s.top = "", s.left = "", s[i] = ""; var l = x(t.instance.popper, t.instance.reference, n.padding, e, t.positionFixed); s.top = o, s.left = r, s[i] = a, n.boundaries = l; var a = n.priority, h = t.offsets.popper, c = { primary: function (t) { var e = h[t]; return h[t] < l[t] && !n.escapeWithReference && (e = F(h[t], l[t])), H({}, t, e) }, secondary: function (t) { var e = "right" === t ? "left" : "top", i = h[e]; return h[t] > l[t] && !n.escapeWithReference && (i = L(h[e], l[t] - ("right" === t ? h.width : h.height))), H({}, e, i) } }; return a.forEach(function (t) { var e = -1 === ["left", "top"].indexOf(t) ? "secondary" : "primary"; h = V({}, h, c[e](t)) }), t.offsets.popper = h, t }, priority: ["left", "right", "top", "bottom"], padding: 5, boundariesElement: "scrollParent" }, keepTogether: { order: 400, enabled: !0, fn: function (t) { var e = t.offsets, i = e.popper, n = e.reference, s = t.placement.split("-")[0], o = z, r = -1 !== ["top", "bottom"].indexOf(s), e = r ? "right" : "bottom", s = r ? "left" : "top", r = r ? "width" : "height"; return i[e] < o(n[s]) && (t.offsets.popper[s] = o(n[s]) - i[r]), i[s] > o(n[e]) && (t.offsets.popper[s] = o(n[e])), t } }, arrow: { order: 500, enabled: !0, fn: function (t, e) { if (!N(t.instance.modifiers, "arrow", "keepTogether")) return t; var i = e.element; if ("string" == typeof i) { if (!(i = t.instance.popper.querySelector(i))) return t } else if (!t.instance.popper.contains(i)) return console.warn("WARNING: `arrow.element` must be child of its popper element!"), t; var n = t.placement.split("-")[0], s = t.offsets, o = s.popper, r = s.reference, a = -1 !== ["left", "right"].indexOf(n), l = a ? "height" : "width", h = a ? "Top" : "Left", c = h.toLowerCase(), e = a ? "left" : "top", s = a ? "bottom" : "right", n = C(i)[l]; r[s] - n < o[c] && (t.offsets.popper[c] -= o[c] - (r[s] - n)), r[c] + n > o[s] && (t.offsets.popper[c] += r[c] + n - o[s]), t.offsets.popper = _(t.offsets.popper); a = r[c] + r[l] / 2 - n / 2, s = u(t.instance.popper), r = parseFloat(s["margin" + h], 10), h = parseFloat(s["border" + h + "Width"], 10), h = a - t.offsets.popper[c] - r - h, h = F(L(o[l] - n, h), 0); return t.arrowElement = i, t.offsets.arrow = (H(i = {}, c, j(h)), H(i, e, ""), i), t }, element: "[x-arrow]" }, flip: { order: 600, enabled: !0, fn: function (h, c) { if (t(h.instance.modifiers, "inner")) return h; if (h.flipped && h.placement === h.originalPlacement) return h; var u = x(h.instance.popper, h.instance.reference, c.padding, c.boundariesElement, h.positionFixed), d = h.placement.split("-")[0], p = k(d), f = h.placement.split("-")[1] || "", g = []; switch (c.behavior) { case G: g = [d, p]; break; case J: g = M(d); break; case Z: g = M(d, !0); break; default: g = c.behavior }return g.forEach(function (t, e) { if (d !== t || g.length === e + 1) return h; d = h.placement.split("-")[0], p = k(d); var i = h.offsets.popper, n = h.offsets.reference, s = z, o = "left" === d && s(i.right) > s(n.left) || "right" === d && s(i.left) < s(n.right) || "top" === d && s(i.bottom) > s(n.top) || "bottom" === d && s(i.top) < s(n.bottom), r = s(i.left) < s(u.left), a = s(i.right) > s(u.right), l = s(i.top) < s(u.top), t = s(i.bottom) > s(u.bottom), n = "left" === d && r || "right" === d && a || "top" === d && l || "bottom" === d && t, i = -1 !== ["top", "bottom"].indexOf(d), s = !!c.flipVariations && (i && "start" === f && r || i && "end" === f && a || !i && "start" === f && l || !i && "end" === f && t), l = !!c.flipVariationsByContent && (i && "start" === f && a || i && "end" === f && r || !i && "start" === f && t || !i && "end" === f && l), l = s || l; (o || n || l) && (h.flipped = !0, (o || n) && (d = g[e + 1]), l && (f = "end" === (l = f) ? "start" : "start" === l ? "end" : l), h.placement = d + (f ? "-" + f : ""), h.offsets.popper = V({}, h.offsets.popper, T(h.instance.popper, h.offsets.reference, h.placement)), h = E(h.instance.modifiers, h, "flip")) }), h }, behavior: "flip", padding: 5, boundariesElement: "viewport", flipVariations: !1, flipVariationsByContent: !1 }, inner: { order: 700, enabled: !1, fn: function (t) { var e = t.placement, i = e.split("-")[0], n = t.offsets, s = n.popper, o = n.reference, r = -1 !== ["left", "right"].indexOf(i), n = -1 === ["top", "left"].indexOf(i); return s[r ? "left" : "top"] = o[i] - (n ? s[r ? "width" : "height"] : 0), t.placement = k(e), t.offsets.popper = _(s), t } }, hide: { order: 800, enabled: !0, fn: function (t) { if (!N(t.instance.modifiers, "hide", "preventOverflow")) return t; var e = t.offsets.reference, i = D(t.instance.modifiers, function (t) { return "preventOverflow" === t.name }).boundaries; if (e.bottom < i.top || e.left > i.right || e.top > i.bottom || e.right < i.left) { if (!0 === t.hide) return t; t.hide = !0, t.attributes["x-out-of-boundaries"] = "" } else { if (!1 === t.hide) return t; t.hide = !1, t.attributes["x-out-of-boundaries"] = !1 } return t } }, computeStyle: { order: 850, enabled: !0, fn: function (t, e) { var i = e.x, n = e.y, s = t.offsets.popper, o = D(t.instance.modifiers, function (t) { return "applyStyle" === t.name }).gpuAcceleration; void 0 !== o && console.warn("WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!"); var r, a, l, h, c = void 0 === o ? e.gpuAcceleration : o, u = g(t.instance.popper), d = y(u), p = { position: s.position }, e = (r = t, a = window.devicePixelRatio < 2 || !K, f = (h = r.offsets).popper, l = h.reference, e = function (t) { return t }, s = (o = j)(l.width), h = o(f.width), l = -1 !== ["left", "right"].indexOf(r.placement), r = -1 !== r.placement.indexOf("-"), l = a ? l || r || s % 2 == h % 2 ? o : z : e, e = a ? o : e, { left: l(1 == s % 2 && 1 == h % 2 && !r && a ? f.left - 1 : f.left), top: e(f.top), bottom: e(f.bottom), right: l(f.right) }), l = "bottom" === i ? "top" : "bottom", f = "right" === n ? "left" : "right", i = S("transform"), n = "bottom" == l ? "HTML" === u.nodeName ? -u.clientHeight + e.bottom : -d.height + e.bottom : e.top, e = "right" == f ? "HTML" === u.nodeName ? -u.clientWidth + e.right : -d.width + e.right : e.left; c && i ? (p[i] = "translate3d(" + e + "px, " + n + "px, 0)", p[l] = 0, p[f] = 0, p.willChange = "transform") : (c = "bottom" == l ? -1 : 1, i = "right" == f ? -1 : 1, p[l] = n * c, p[f] = e * i, p.willChange = l + ", " + f); var f = { "x-placement": t.placement }; return t.attributes = V({}, f, t.attributes), t.styles = V({}, p, t.styles), t.arrowStyles = V({}, t.offsets.arrow, t.arrowStyles), t }, gpuAcceleration: !0, x: "bottom", y: "right" }, applyStyle: { order: 900, enabled: !0, fn: function (t) { return P(t.instance.popper, t.styles), e = t.instance.popper, i = t.attributes, Object.keys(i).forEach(function (t) { !1 === i[t] ? e.removeAttribute(t) : e.setAttribute(t, i[t]) }), t.arrowElement && Object.keys(t.arrowStyles).length && P(t.arrowElement, t.arrowStyles), t; var e, i }, onLoad: function (t, e, i, n, s) { s = a(s, e, t, i.positionFixed), t = r(i.placement, s, e, t, i.modifiers.flip.boundariesElement, i.modifiers.flip.padding); return e.setAttribute("x-placement", t), P(e, { position: i.positionFixed ? "fixed" : "absolute" }), i }, gpuAcceleration: void 0 } } }, U }), function (t, e) { "object" == typeof exports && "undefined" != typeof module ? e(exports, require("jquery"), require("popper.js")) : "function" == typeof define && define.amd ? define(["exports", "jquery", "popper.js"], e) : e((t = "undefined" != typeof globalThis ? globalThis : t || self).bootstrap = {}, t.jQuery, t.Popper) }(this, function (t, c, s) { "use strict"; function n(t, e) { for (var i = 0; i < e.length; i++) { var n = e[i]; n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(t, n.key, n) } } function o(t, e, i) { return e && n(t.prototype, e), i && n(t, i), t } function r() { return (r = Object.assign || function (t) { for (var e = 1; e < arguments.length; e++) { var i, n = arguments[e]; for (i in n) Object.prototype.hasOwnProperty.call(n, i) && (t[i] = n[i]) } return t }).apply(this, arguments) } c = c && Object.prototype.hasOwnProperty.call(c, "default") ? c.default : c, s = s && Object.prototype.hasOwnProperty.call(s, "default") ? s.default : s; var u = { TRANSITION_END: "bsTransitionEnd", getUID: function (t) { for (; t += ~~(1e6 * Math.random()), document.getElementById(t);); return t }, getSelectorFromElement: function (t) { var e, i = t.getAttribute("data-target"); i && "#" !== i || (i = (e = t.getAttribute("href")) && "#" !== e ? e.trim() : ""); try { return document.querySelector(i) ? i : null } catch (t) { return null } }, getTransitionDurationFromElement: function (t) { if (!t) return 0; var e = c(t).css("transition-duration"), i = c(t).css("transition-delay"), n = parseFloat(e), t = parseFloat(i); return n || t ? (e = e.split(",")[0], i = i.split(",")[0], 1e3 * (parseFloat(e) + parseFloat(i))) : 0 }, reflow: function (t) { return t.offsetHeight }, triggerTransitionEnd: function (t) { c(t).trigger("transitionend") }, supportsTransitionEnd: function () { return Boolean("transitionend") }, isElement: function (t) { return (t[0] || t).nodeType }, typeCheckConfig: function (t, e, i) { for (var n in i) if (Object.prototype.hasOwnProperty.call(i, n)) { var s = i[n], o = e[n], o = o && u.isElement(o) ? "element" : null === o || void 0 === o ? "" + o : {}.toString.call(o).match(/\s([a-z]+)/i)[1].toLowerCase(); if (!new RegExp(s).test(o)) throw new Error(t.toUpperCase() + ': Option "' + n + '" provided type "' + o + '" but expected type "' + s + '".') } }, findShadowRoot: function (t) { if (!document.documentElement.attachShadow) return null; if ("function" != typeof t.getRootNode) return t instanceof ShadowRoot ? t : t.parentNode ? u.findShadowRoot(t.parentNode) : null; t = t.getRootNode(); return t instanceof ShadowRoot ? t : null }, jQueryDetection: function () { if (void 0 === c) throw new TypeError("Bootstrap's JavaScript requires jQuery. jQuery must be included before Bootstrap's JavaScript."); var t = c.fn.jquery.split(" ")[0].split("."); if (t[0] < 2 && t[1] < 9 || 1 === t[0] && 9 === t[1] && t[2] < 1 || 4 <= t[0]) throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0") } }; u.jQueryDetection(), c.fn.emulateTransitionEnd = function (t) { var e = this, i = !1; return c(this).one(u.TRANSITION_END, function () { i = !0 }), setTimeout(function () { i || u.triggerTransitionEnd(e) }, t), this }, c.event.special[u.TRANSITION_END] = { bindType: "transitionend", delegateType: "transitionend", handle: function (t) { if (c(t.target).is(this)) return t.handleObj.handler.apply(this, arguments) } }; var e = "alert", i = c.fn[e], a = ((gt = l.prototype).close = function (t) { var e = this._element; t && (e = this._getRootElement(t)), this._triggerCloseEvent(e).isDefaultPrevented() || this._removeElement(e) }, gt.dispose = function () { c.removeData(this._element, "bs.alert"), this._element = null }, gt._getRootElement = function (t) { var e = u.getSelectorFromElement(t), i = !1; return e && (i = document.querySelector(e)), i = i || c(t).closest(".alert")[0] }, gt._triggerCloseEvent = function (t) { var e = c.Event("close.bs.alert"); return c(t).trigger(e), e }, gt._removeElement = function (e) { var t, i = this; c(e).removeClass("show"), c(e).hasClass("fade") ? (t = u.getTransitionDurationFromElement(e), c(e).one(u.TRANSITION_END, function (t) { return i._destroyElement(e, t) }).emulateTransitionEnd(t)) : this._destroyElement(e) }, gt._destroyElement = function (t) { c(t).detach().trigger("closed.bs.alert").remove() }, l._jQueryInterface = function (i) { return this.each(function () { var t = c(this), e = t.data("bs.alert"); e || (e = new l(this), t.data("bs.alert", e)), "close" === i && e[i](this) }) }, l._handleDismiss = function (e) { return function (t) { t && t.preventDefault(), e.close(this) } }, o(l, null, [{ key: "VERSION", get: function () { return "4.5.2" } }]), l); function l(t) { this._element = t } c(document).on("click.bs.alert.data-api", '[data-dismiss="alert"]', a._handleDismiss(new a)), c.fn[e] = a._jQueryInterface, c.fn[e].Constructor = a, c.fn[e].noConflict = function () { return c.fn[e] = i, a._jQueryInterface }; var h = c.fn.button, d = ((gt = p.prototype).toggle = function () { var t, e = !0, i = !0, n = c(this._element).closest('[data-toggle="buttons"]')[0]; !n || (t = this._element.querySelector('input:not([type="hidden"])')) && ("radio" === t.type && (t.checked && this._element.classList.contains("active") ? e = !1 : (n = n.querySelector(".active")) && c(n).removeClass("active")), e && ("checkbox" !== t.type && "radio" !== t.type || (t.checked = !this._element.classList.contains("active")), c(t).trigger("change")), t.focus(), i = !1), this._element.hasAttribute("disabled") || this._element.classList.contains("disabled") || (i && this._element.setAttribute("aria-pressed", !this._element.classList.contains("active")), e && c(this._element).toggleClass("active")) }, gt.dispose = function () { c.removeData(this._element, "bs.button"), this._element = null }, p._jQueryInterface = function (e) { return this.each(function () { var t = c(this).data("bs.button"); t || (t = new p(this), c(this).data("bs.button", t)), "toggle" === e && t[e]() }) }, o(p, null, [{ key: "VERSION", get: function () { return "4.5.2" } }]), p); function p(t) { this._element = t } c(document).on("click.bs.button.data-api", '[data-toggle^="button"]', function (t) { var e, i = t.target, n = i; c(i).hasClass("btn") || (i = c(i).closest(".btn")[0]), !i || i.hasAttribute("disabled") || i.classList.contains("disabled") || (e = i.querySelector('input:not([type="hidden"])')) && (e.hasAttribute("disabled") || e.classList.contains("disabled")) ? t.preventDefault() : ("LABEL" !== n.tagName || e && "checkbox" !== e.type) && d._jQueryInterface.call(c(i), "toggle") }).on("focus.bs.button.data-api blur.bs.button.data-api", '[data-toggle^="button"]', function (t) { var e = c(t.target).closest(".btn")[0]; c(e).toggleClass("focus", /^focus(in)?$/.test(t.type)) }), c(window).on("load.bs.button.data-api", function () { for (var t = [].slice.call(document.querySelectorAll('[data-toggle="buttons"] .btn')), e = 0, i = t.length; e < i; e++) { var n = t[e], s = n.querySelector('input:not([type="hidden"])'); s.checked || s.hasAttribute("checked") ? n.classList.add("active") : n.classList.remove("active") } for (var o = 0, r = (t = [].slice.call(document.querySelectorAll('[data-toggle="button"]'))).length; o < r; o++) { var a = t[o]; "true" === a.getAttribute("aria-pressed") ? a.classList.add("active") : a.classList.remove("active") } }), c.fn.button = d._jQueryInterface, c.fn.button.Constructor = d, c.fn.button.noConflict = function () { return c.fn.button = h, d._jQueryInterface }; var f = "carousel", g = c.fn[f], m = { interval: 5e3, keyboard: !0, slide: !1, pause: "hover", wrap: !0, touch: !0 }, v = { interval: "(number|boolean)", keyboard: "boolean", slide: "(boolean|string)", pause: "(string|boolean)", wrap: "boolean", touch: "boolean" }, _ = { TOUCH: "touch", PEN: "pen" }, y = ((gt = b.prototype).next = function () { this._isSliding || this._slide("next") }, gt.nextWhenVisible = function () { !document.hidden && c(this._element).is(":visible") && "hidden" !== c(this._element).css("visibility") && this.next() }, gt.prev = function () { this._isSliding || this._slide("prev") }, gt.pause = function (t) { t || (this._isPaused = !0), this._element.querySelector(".carousel-item-next, .carousel-item-prev") && (u.triggerTransitionEnd(this._element), this.cycle(!0)), clearInterval(this._interval), this._interval = null }, gt.cycle = function (t) { t || (this._isPaused = !1), this._interval && (clearInterval(this._interval), this._interval = null), this._config.interval && !this._isPaused && (this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval)) }, gt.to = function (t) { var e = this; this._activeElement = this._element.querySelector(".active.carousel-item"); var i = this._getItemIndex(this._activeElement); if (!(t > this._items.length - 1 || t < 0)) if (this._isSliding) c(this._element).one("slid.bs.carousel", function () { return e.to(t) }); else { if (i === t) return this.pause(), void this.cycle(); i = i < t ? "next" : "prev"; this._slide(i, this._items[t]) } }, gt.dispose = function () { c(this._element).off(".bs.carousel"), c.removeData(this._element, "bs.carousel"), this._items = null, this._config = null, this._element = null, this._interval = null, this._isPaused = null, this._isSliding = null, this._activeElement = null, this._indicatorsElement = null }, gt._getConfig = function (t) { return t = r({}, m, t), u.typeCheckConfig(f, t, v), t }, gt._handleSwipe = function () { var t = Math.abs(this.touchDeltaX); t <= 40 || (t = t / this.touchDeltaX, (this.touchDeltaX = 0) < t && this.prev(), t < 0 && this.next()) }, gt._addEventListeners = function () { var e = this; this._config.keyboard && c(this._element).on("keydown.bs.carousel", function (t) { return e._keydown(t) }), "hover" === this._config.pause && c(this._element).on("mouseenter.bs.carousel", function (t) { return e.pause(t) }).on("mouseleave.bs.carousel", function (t) { return e.cycle(t) }), this._config.touch && this._addTouchEventListeners() }, gt._addTouchEventListeners = function () { var t, e, i = this; this._touchSupported && (t = function (t) { i._pointerEvent && _[t.originalEvent.pointerType.toUpperCase()] ? i.touchStartX = t.originalEvent.clientX : i._pointerEvent || (i.touchStartX = t.originalEvent.touches[0].clientX) }, e = function (t) { i._pointerEvent && _[t.originalEvent.pointerType.toUpperCase()] && (i.touchDeltaX = t.originalEvent.clientX - i.touchStartX), i._handleSwipe(), "hover" === i._config.pause && (i.pause(), i.touchTimeout && clearTimeout(i.touchTimeout), i.touchTimeout = setTimeout(function (t) { return i.cycle(t) }, 500 + i._config.interval)) }, c(this._element.querySelectorAll(".carousel-item img")).on("dragstart.bs.carousel", function (t) { return t.preventDefault() }), this._pointerEvent ? (c(this._element).on("pointerdown.bs.carousel", t), c(this._element).on("pointerup.bs.carousel", e), this._element.classList.add("pointer-event")) : (c(this._element).on("touchstart.bs.carousel", t), c(this._element).on("touchmove.bs.carousel", function (t) { (t = t).originalEvent.touches && 1 < t.originalEvent.touches.length ? i.touchDeltaX = 0 : i.touchDeltaX = t.originalEvent.touches[0].clientX - i.touchStartX }), c(this._element).on("touchend.bs.carousel", e))) }, gt._keydown = function (t) { if (!/input|textarea/i.test(t.target.tagName)) switch (t.which) { case 37: t.preventDefault(), this.prev(); break; case 39: t.preventDefault(), this.next() } }, gt._getItemIndex = function (t) { return this._items = t && t.parentNode ? [].slice.call(t.parentNode.querySelectorAll(".carousel-item")) : [], this._items.indexOf(t) }, gt._getItemByDirection = function (t, e) { var i = "next" === t, n = "prev" === t, s = this._getItemIndex(e), o = this._items.length - 1; if ((n && 0 === s || i && s === o) && !this._config.wrap) return e; t = (s + ("prev" === t ? -1 : 1)) % this._items.length; return -1 == t ? this._items[this._items.length - 1] : this._items[t] }, gt._triggerSlideEvent = function (t, e) { var i = this._getItemIndex(t), n = this._getItemIndex(this._element.querySelector(".active.carousel-item")), i = c.Event("slide.bs.carousel", { relatedTarget: t, direction: e, from: n, to: i }); return c(this._element).trigger(i), i }, gt._setActiveIndicatorElement = function (t) { var e; this._indicatorsElement && (e = [].slice.call(this._indicatorsElement.querySelectorAll(".active")), c(e).removeClass("active"), (t = this._indicatorsElement.children[this._getItemIndex(t)]) && c(t).addClass("active")) }, gt._slide = function (t, e) { var i, n, s, o = this, r = this._element.querySelector(".active.carousel-item"), a = this._getItemIndex(r), l = e || r && this._getItemByDirection(t, r), h = this._getItemIndex(l), e = Boolean(this._interval), t = "next" === t ? (i = "carousel-item-left", n = "carousel-item-next", "left") : (i = "carousel-item-right", n = "carousel-item-prev", "right"); l && c(l).hasClass("active") ? this._isSliding = !1 : !this._triggerSlideEvent(l, t).isDefaultPrevented() && r && l && (this._isSliding = !0, e && this.pause(), this._setActiveIndicatorElement(l), s = c.Event("slid.bs.carousel", { relatedTarget: l, direction: t, from: a, to: h }), c(this._element).hasClass("slide") ? (c(l).addClass(n), u.reflow(l), c(r).addClass(i), c(l).addClass(i), (h = parseInt(l.getAttribute("data-interval"), 10)) ? (this._config.defaultInterval = this._config.defaultInterval || this._config.interval, this._config.interval = h) : this._config.interval = this._config.defaultInterval || this._config.interval, h = u.getTransitionDurationFromElement(r), c(r).one(u.TRANSITION_END, function () { c(l).removeClass(i + " " + n).addClass("active"), c(r).removeClass("active " + n + " " + i), o._isSliding = !1, setTimeout(function () { return c(o._element).trigger(s) }, 0) }).emulateTransitionEnd(h)) : (c(r).removeClass("active"), c(l).addClass("active"), this._isSliding = !1, c(this._element).trigger(s)), e && this.cycle()) }, b._jQueryInterface = function (n) { return this.each(function () { var t = c(this).data("bs.carousel"), e = r({}, m, c(this).data()); "object" == typeof n && (e = r({}, e, n)); var i = "string" == typeof n ? n : e.slide; if (t || (t = new b(this, e), c(this).data("bs.carousel", t)), "number" == typeof n) t.to(n); else if ("string" == typeof i) { if (void 0 === t[i]) throw new TypeError('No method named "' + i + '"'); t[i]() } else e.interval && e.ride && (t.pause(), t.cycle()) }) }, b._dataApiClickHandler = function (t) { var e, i, n = u.getSelectorFromElement(this); !n || (e = c(n)[0]) && c(e).hasClass("carousel") && (i = r({}, c(e).data(), c(this).data()), (n = this.getAttribute("data-slide-to")) && (i.interval = !1), b._jQueryInterface.call(c(e), i), n && c(e).data("bs.carousel").to(n), t.preventDefault()) }, o(b, null, [{ key: "VERSION", get: function () { return "4.5.2" } }, { key: "Default", get: function () { return m } }]), b); function b(t, e) { this._items = null, this._interval = null, this._activeElement = null, this._isPaused = !1, this._isSliding = !1, this.touchTimeout = null, this.touchStartX = 0, this.touchDeltaX = 0, this._config = this._getConfig(e), this._element = t, this._indicatorsElement = this._element.querySelector(".carousel-indicators"), this._touchSupported = "ontouchstart" in document.documentElement || 0 < navigator.maxTouchPoints, this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent), this._addEventListeners() } c(document).on("click.bs.carousel.data-api", "[data-slide], [data-slide-to]", y._dataApiClickHandler), c(window).on("load.bs.carousel.data-api", function () { for (var t = [].slice.call(document.querySelectorAll('[data-ride="carousel"]')), e = 0, i = t.length; e < i; e++) { var n = c(t[e]); y._jQueryInterface.call(n, n.data()) } }), c.fn[f] = y._jQueryInterface, c.fn[f].Constructor = y, c.fn[f].noConflict = function () { return c.fn[f] = g, y._jQueryInterface }; var w = "collapse", x = c.fn[w], C = { toggle: !0, parent: "" }, k = { toggle: "boolean", parent: "(string|element)" }, T = ((gt = D.prototype).toggle = function () { c(this._element).hasClass("show") ? this.hide() : this.show() }, gt.show = function () { var t, e, i, n, s = this; this._isTransitioning || c(this._element).hasClass("show") || (this._parent && 0 === (n = [].slice.call(this._parent.querySelectorAll(".show, .collapsing")).filter(function (t) { return "string" == typeof s._config.parent ? t.getAttribute("data-parent") === s._config.parent : t.classList.contains("collapse") })).length && (n = null), n && (i = c(n).not(this._selector).data("bs.collapse")) && i._isTransitioning) || (t = c.Event("show.bs.collapse"), c(this._element).trigger(t), t.isDefaultPrevented() || (n && (D._jQueryInterface.call(c(n).not(this._selector), "hide"), i || c(n).data("bs.collapse", null)), e = this._getDimension(), c(this._element).removeClass("collapse").addClass("collapsing"), this._element.style[e] = 0, this._triggerArray.length && c(this._triggerArray).removeClass("collapsed").attr("aria-expanded", !0), this.setTransitioning(!0), i = "scroll" + (e[0].toUpperCase() + e.slice(1)), n = u.getTransitionDurationFromElement(this._element), c(this._element).one(u.TRANSITION_END, function () { c(s._element).removeClass("collapsing").addClass("collapse show"), s._element.style[e] = "", s.setTransitioning(!1), c(s._element).trigger("shown.bs.collapse") }).emulateTransitionEnd(n), this._element.style[e] = this._element[i] + "px")) }, gt.hide = function () { var t = this; if (!this._isTransitioning && c(this._element).hasClass("show")) { var e = c.Event("hide.bs.collapse"); if (c(this._element).trigger(e), !e.isDefaultPrevented()) { e = this._getDimension(); this._element.style[e] = this._element.getBoundingClientRect()[e] + "px", u.reflow(this._element), c(this._element).addClass("collapsing").removeClass("collapse show"); var i = this._triggerArray.length; if (0 < i) for (var n = 0; n < i; n++) { var s = this._triggerArray[n], o = u.getSelectorFromElement(s); null !== o && (c([].slice.call(document.querySelectorAll(o))).hasClass("show") || c(s).addClass("collapsed").attr("aria-expanded", !1)) } this.setTransitioning(!0), this._element.style[e] = ""; e = u.getTransitionDurationFromElement(this._element); c(this._element).one(u.TRANSITION_END, function () { t.setTransitioning(!1), c(t._element).removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse") }).emulateTransitionEnd(e) } } }, gt.setTransitioning = function (t) { this._isTransitioning = t }, gt.dispose = function () { c.removeData(this._element, "bs.collapse"), this._config = null, this._parent = null, this._element = null, this._triggerArray = null, this._isTransitioning = null }, gt._getConfig = function (t) { return (t = r({}, C, t)).toggle = Boolean(t.toggle), u.typeCheckConfig(w, t, k), t }, gt._getDimension = function () { return c(this._element).hasClass("width") ? "width" : "height" }, gt._getParent = function () { var t, i = this; u.isElement(this._config.parent) ? (t = this._config.parent, void 0 !== this._config.parent.jquery && (t = this._config.parent[0])) : t = document.querySelector(this._config.parent); var e = '[data-toggle="collapse"][data-parent="' + this._config.parent + '"]', e = [].slice.call(t.querySelectorAll(e)); return c(e).each(function (t, e) { i._addAriaAndCollapsedClass(D._getTargetFromElement(e), [e]) }), t }, gt._addAriaAndCollapsedClass = function (t, e) { t = c(t).hasClass("show"); e.length && c(e).toggleClass("collapsed", !t).attr("aria-expanded", t) }, D._getTargetFromElement = function (t) { t = u.getSelectorFromElement(t); return t ? document.querySelector(t) : null }, D._jQueryInterface = function (n) { return this.each(function () { var t = c(this), e = t.data("bs.collapse"), i = r({}, C, t.data(), "object" == typeof n && n ? n : {}); if (!e && i.toggle && "string" == typeof n && /show|hide/.test(n) && (i.toggle = !1), e || (e = new D(this, i), t.data("bs.collapse", e)), "string" == typeof n) { if (void 0 === e[n]) throw new TypeError('No method named "' + n + '"'); e[n]() } }) }, o(D, null, [{ key: "VERSION", get: function () { return "4.5.2" } }, { key: "Default", get: function () { return C } }]), D); function D(e, t) { this._isTransitioning = !1, this._element = e, this._config = this._getConfig(t), this._triggerArray = [].slice.call(document.querySelectorAll('[data-toggle="collapse"][href="#' + e.id + '"],[data-toggle="collapse"][data-target="#' + e.id + '"]')); for (var i = [].slice.call(document.querySelectorAll('[data-toggle="collapse"]')), n = 0, s = i.length; n < s; n++) { var o = i[n], r = u.getSelectorFromElement(o), a = [].slice.call(document.querySelectorAll(r)).filter(function (t) { return t === e }); null !== r && 0 < a.length && (this._selector = r, this._triggerArray.push(o)) } this._parent = this._config.parent ? this._getParent() : null, this._config.parent || this._addAriaAndCollapsedClass(this._element, this._triggerArray), this._config.toggle && this.toggle() } c(document).on("click.bs.collapse.data-api", '[data-toggle="collapse"]', function (t) { "A" === t.currentTarget.tagName && t.preventDefault(); var i = c(this), t = u.getSelectorFromElement(this), t = [].slice.call(document.querySelectorAll(t)); c(t).each(function () { var t = c(this), e = t.data("bs.collapse") ? "toggle" : i.data(); T._jQueryInterface.call(t, e) }) }), c.fn[w] = T._jQueryInterface, c.fn[w].Constructor = T, c.fn[w].noConflict = function () { return c.fn[w] = x, T._jQueryInterface }; var E = "dropdown", S = c.fn[E], I = new RegExp("38|40|27"), A = { offset: 0, flip: !0, boundary: "scrollParent", reference: "toggle", display: "dynamic", popperConfig: null }, P = { offset: "(number|string|function)", flip: "boolean", boundary: "(string|element)", reference: "(string|element)", display: "string", popperConfig: "(null|object)" }, N = ((gt = M.prototype).toggle = function () { var t; this._element.disabled || c(this._element).hasClass("disabled") || (t = c(this._menu).hasClass("show"), M._clearMenus(), t || this.show(!0)) }, gt.show = function (t) { if (void 0 === t && (t = !1), !(this._element.disabled || c(this._element).hasClass("disabled") || c(this._menu).hasClass("show"))) { var e = { relatedTarget: this._element }, i = c.Event("show.bs.dropdown", e), n = M._getParentFromElement(this._element); if (c(n).trigger(i), !i.isDefaultPrevented()) { if (!this._inNavbar && t) { if (void 0 === s) throw new TypeError("Bootstrap's dropdowns require Popper.js (https://popper.js.org/)"); t = this._element; "parent" === this._config.reference ? t = n : u.isElement(this._config.reference) && (t = this._config.reference, void 0 !== this._config.reference.jquery && (t = this._config.reference[0])), "scrollParent" !== this._config.boundary && c(n).addClass("position-static"), this._popper = new s(t, this._menu, this._getPopperConfig()) } "ontouchstart" in document.documentElement && 0 === c(n).closest(".navbar-nav").length && c(document.body).children().on("mouseover", null, c.noop), this._element.focus(), this._element.setAttribute("aria-expanded", !0), c(this._menu).toggleClass("show"), c(n).toggleClass("show").trigger(c.Event("shown.bs.dropdown", e)) } } }, gt.hide = function () { var t, e, i; this._element.disabled || c(this._element).hasClass("disabled") || !c(this._menu).hasClass("show") || (t = { relatedTarget: this._element }, e = c.Event("hide.bs.dropdown", t), i = M._getParentFromElement(this._element), c(i).trigger(e), e.isDefaultPrevented() || (this._popper && this._popper.destroy(), c(this._menu).toggleClass("show"), c(i).toggleClass("show").trigger(c.Event("hidden.bs.dropdown", t)))) }, gt.dispose = function () { c.removeData(this._element, "bs.dropdown"), c(this._element).off(".bs.dropdown"), this._element = null, (this._menu = null) !== this._popper && (this._popper.destroy(), this._popper = null) }, gt.update = function () { this._inNavbar = this._detectNavbar(), null !== this._popper && this._popper.scheduleUpdate() }, gt._addEventListeners = function () { var e = this; c(this._element).on("click.bs.dropdown", function (t) { t.preventDefault(), t.stopPropagation(), e.toggle() }) }, gt._getConfig = function (t) { return t = r({}, this.constructor.Default, c(this._element).data(), t), u.typeCheckConfig(E, t, this.constructor.DefaultType), t }, gt._getMenuElement = function () { var t; return this._menu || (t = M._getParentFromElement(this._element)) && (this._menu = t.querySelector(".dropdown-menu")), this._menu }, gt._getPlacement = function () { var t = c(this._element.parentNode), e = "bottom-start"; return t.hasClass("dropup") ? e = c(this._menu).hasClass("dropdown-menu-right") ? "top-end" : "top-start" : t.hasClass("dropright") ? e = "right-start" : t.hasClass("dropleft") ? e = "left-start" : c(this._menu).hasClass("dropdown-menu-right") && (e = "bottom-end"), e }, gt._detectNavbar = function () { return 0 < c(this._element).closest(".navbar").length }, gt._getOffset = function () { var e = this, t = {}; return "function" == typeof this._config.offset ? t.fn = function (t) { return t.offsets = r({}, t.offsets, e._config.offset(t.offsets, e._element) || {}), t } : t.offset = this._config.offset, t }, gt._getPopperConfig = function () { var t = { placement: this._getPlacement(), modifiers: { offset: this._getOffset(), flip: { enabled: this._config.flip }, preventOverflow: { boundariesElement: this._config.boundary } } }; return "static" === this._config.display && (t.modifiers.applyStyle = { enabled: !1 }), r({}, t, this._config.popperConfig) }, M._jQueryInterface = function (e) { return this.each(function () { var t = c(this).data("bs.dropdown"); if (t || (t = new M(this, "object" == typeof e ? e : null), c(this).data("bs.dropdown", t)), "string" == typeof e) { if (void 0 === t[e]) throw new TypeError('No method named "' + e + '"'); t[e]() } }) }, M._clearMenus = function (t) { if (!t || 3 !== t.which && ("keyup" !== t.type || 9 === t.which)) for (var e = [].slice.call(document.querySelectorAll('[data-toggle="dropdown"]')), i = 0, n = e.length; i < n; i++) { var s, o, r = M._getParentFromElement(e[i]), a = c(e[i]).data("bs.dropdown"), l = { relatedTarget: e[i] }; t && "click" === t.type && (l.clickEvent = t), a && (s = a._menu, !c(r).hasClass("show") || t && ("click" === t.type && /input|textarea/i.test(t.target.tagName) || "keyup" === t.type && 9 === t.which) && c.contains(r, t.target) || (o = c.Event("hide.bs.dropdown", l), c(r).trigger(o), o.isDefaultPrevented() || ("ontouchstart" in document.documentElement && c(document.body).children().off("mouseover", null, c.noop), e[i].setAttribute("aria-expanded", "false"), a._popper && a._popper.destroy(), c(s).removeClass("show"), c(r).removeClass("show").trigger(c.Event("hidden.bs.dropdown", l))))) } }, M._getParentFromElement = function (t) { var e, i = u.getSelectorFromElement(t); return i && (e = document.querySelector(i)), e || t.parentNode }, M._dataApiKeydownHandler = function (t) { if (!(/input|textarea/i.test(t.target.tagName) ? 32 === t.which || 27 !== t.which && (40 !== t.which && 38 !== t.which || c(t.target).closest(".dropdown-menu").length) : !I.test(t.which)) && !this.disabled && !c(this).hasClass("disabled")) { var e = M._getParentFromElement(this), i = c(e).hasClass("show"); if (i || 27 !== t.which) { if (t.preventDefault(), t.stopPropagation(), !i || i && (27 === t.which || 32 === t.which)) return 27 === t.which && c(e.querySelector('[data-toggle="dropdown"]')).trigger("focus"), void c(this).trigger("click"); i = [].slice.call(e.querySelectorAll(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)")).filter(function (t) { return c(t).is(":visible") }); 0 !== i.length && (e = i.indexOf(t.target), 38 === t.which && 0 < e && e--, 40 === t.which && e < i.length - 1 && e++, e < 0 && (e = 0), i[e].focus()) } } }, o(M, null, [{ key: "VERSION", get: function () { return "4.5.2" } }, { key: "Default", get: function () { return A } }, { key: "DefaultType", get: function () { return P } }]), M); function M(t, e) { this._element = t, this._popper = null, this._config = this._getConfig(e), this._menu = this._getMenuElement(), this._inNavbar = this._detectNavbar(), this._addEventListeners() } c(document).on("keydown.bs.dropdown.data-api", '[data-toggle="dropdown"]', N._dataApiKeydownHandler).on("keydown.bs.dropdown.data-api", ".dropdown-menu", N._dataApiKeydownHandler).on("click.bs.dropdown.data-api keyup.bs.dropdown.data-api", N._clearMenus).on("click.bs.dropdown.data-api", '[data-toggle="dropdown"]', function (t) { t.preventDefault(), t.stopPropagation(), N._jQueryInterface.call(c(this), "toggle") }).on("click.bs.dropdown.data-api", ".dropdown form", function (t) { t.stopPropagation() }), c.fn[E] = N._jQueryInterface, c.fn[E].Constructor = N, c.fn[E].noConflict = function () { return c.fn[E] = S, N._jQueryInterface }; var O = c.fn.modal, H = { backdrop: !0, keyboard: !0, focus: !0, show: !0 }, L = { backdrop: "(boolean|string)", keyboard: "boolean", focus: "boolean", show: "boolean" }, z = ((gt = j.prototype).toggle = function (t) { return this._isShown ? this.hide() : this.show(t) }, gt.show = function (t) { var e, i = this; this._isShown || this._isTransitioning || (c(this._element).hasClass("fade") && (this._isTransitioning = !0), e = c.Event("show.bs.modal", { relatedTarget: t }), c(this._element).trigger(e), this._isShown || e.isDefaultPrevented() || (this._isShown = !0, this._checkScrollbar(), this._setScrollbar(), this._adjustDialog(), this._setEscapeEvent(), this._setResizeEvent(), c(this._element).on("click.dismiss.bs.modal", '[data-dismiss="modal"]', function (t) { return i.hide(t) }), c(this._dialog).on("mousedown.dismiss.bs.modal", function () { c(i._element).one("mouseup.dismiss.bs.modal", function (t) { c(t.target).is(i._element) && (i._ignoreBackdropClick = !0) }) }), this._showBackdrop(function () { return i._showElement(t) }))) }, gt.hide = function (t) { var e = this; t && t.preventDefault(), this._isShown && !this._isTransitioning && (t = c.Event("hide.bs.modal"), c(this._element).trigger(t), this._isShown && !t.isDefaultPrevented() && (this._isShown = !1, (t = c(this._element).hasClass("fade")) && (this._isTransitioning = !0), this._setEscapeEvent(), this._setResizeEvent(), c(document).off("focusin.bs.modal"), c(this._element).removeClass("show"), c(this._element).off("click.dismiss.bs.modal"), c(this._dialog).off("mousedown.dismiss.bs.modal"), t ? (t = u.getTransitionDurationFromElement(this._element), c(this._element).one(u.TRANSITION_END, function (t) { return e._hideModal(t) }).emulateTransitionEnd(t)) : this._hideModal())) }, gt.dispose = function () { [window, this._element, this._dialog].forEach(function (t) { return c(t).off(".bs.modal") }), c(document).off("focusin.bs.modal"), c.removeData(this._element, "bs.modal"), this._config = null, this._element = null, this._dialog = null, this._backdrop = null, this._isShown = null, this._isBodyOverflowing = null, this._ignoreBackdropClick = null, this._isTransitioning = null, this._scrollbarWidth = null }, gt.handleUpdate = function () { this._adjustDialog() }, gt._getConfig = function (t) { return t = r({}, H, t), u.typeCheckConfig("modal", t, L), t }, gt._triggerBackdropTransition = function () { var t, e, i, n = this; "static" === this._config.backdrop ? (t = c.Event("hidePrevented.bs.modal"), c(this._element).trigger(t), t.defaultPrevented || ((e = this._element.scrollHeight > document.documentElement.clientHeight) || (this._element.style.overflowY = "hidden"), this._element.classList.add("modal-static"), i = u.getTransitionDurationFromElement(this._dialog), c(this._element).off(u.TRANSITION_END), c(this._element).one(u.TRANSITION_END, function () { n._element.classList.remove("modal-static"), e || c(n._element).one(u.TRANSITION_END, function () { n._element.style.overflowY = "" }).emulateTransitionEnd(n._element, i) }).emulateTransitionEnd(i), this._element.focus())) : this.hide() }, gt._showElement = function (t) { var e = this, i = c(this._element).hasClass("fade"), n = this._dialog ? this._dialog.querySelector(".modal-body") : null; this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE || document.body.appendChild(this._element), this._element.style.display = "block", this._element.removeAttribute("aria-hidden"), this._element.setAttribute("aria-modal", !0), this._element.setAttribute("role", "dialog"), c(this._dialog).hasClass("modal-dialog-scrollable") && n ? n.scrollTop = 0 : this._element.scrollTop = 0, i && u.reflow(this._element), c(this._element).addClass("show"), this._config.focus && this._enforceFocus(); var s = c.Event("shown.bs.modal", { relatedTarget: t }), t = function () { e._config.focus && e._element.focus(), e._isTransitioning = !1, c(e._element).trigger(s) }; i ? (i = u.getTransitionDurationFromElement(this._dialog), c(this._dialog).one(u.TRANSITION_END, t).emulateTransitionEnd(i)) : t() }, gt._enforceFocus = function () { var e = this; c(document).off("focusin.bs.modal").on("focusin.bs.modal", function (t) { document !== t.target && e._element !== t.target && 0 === c(e._element).has(t.target).length && e._element.focus() }) }, gt._setEscapeEvent = function () { var e = this; this._isShown ? c(this._element).on("keydown.dismiss.bs.modal", function (t) { e._config.keyboard && 27 === t.which ? (t.preventDefault(), e.hide()) : e._config.keyboard || 27 !== t.which || e._triggerBackdropTransition() }) : this._isShown || c(this._element).off("keydown.dismiss.bs.modal") }, gt._setResizeEvent = function () { var e = this; this._isShown ? c(window).on("resize.bs.modal", function (t) { return e.handleUpdate(t) }) : c(window).off("resize.bs.modal") }, gt._hideModal = function () { var t = this; this._element.style.display = "none", this._element.setAttribute("aria-hidden", !0), this._element.removeAttribute("aria-modal"), this._element.removeAttribute("role"), this._isTransitioning = !1, this._showBackdrop(function () { c(document.body).removeClass("modal-open"), t._resetAdjustments(), t._resetScrollbar(), c(t._element).trigger("hidden.bs.modal") }) }, gt._removeBackdrop = function () { this._backdrop && (c(this._backdrop).remove(), this._backdrop = null) }, gt._showBackdrop = function (t) { var e, i = this, n = c(this._element).hasClass("fade") ? "fade" : ""; this._isShown && this._config.backdrop ? (this._backdrop = document.createElement("div"), this._backdrop.className = "modal-backdrop", n && this._backdrop.classList.add(n), c(this._backdrop).appendTo(document.body), c(this._element).on("click.dismiss.bs.modal", function (t) { i._ignoreBackdropClick ? i._ignoreBackdropClick = !1 : t.target === t.currentTarget && i._triggerBackdropTransition() }), n && u.reflow(this._backdrop), c(this._backdrop).addClass("show"), t && (n ? (e = u.getTransitionDurationFromElement(this._backdrop), c(this._backdrop).one(u.TRANSITION_END, t).emulateTransitionEnd(e)) : t())) : !this._isShown && this._backdrop ? (c(this._backdrop).removeClass("show"), n = function () { i._removeBackdrop(), t && t() }, c(this._element).hasClass("fade") ? (e = u.getTransitionDurationFromElement(this._backdrop), c(this._backdrop).one(u.TRANSITION_END, n).emulateTransitionEnd(e)) : n()) : t && t() }, gt._adjustDialog = function () { var t = this._element.scrollHeight > document.documentElement.clientHeight; !this._isBodyOverflowing && t && (this._element.style.paddingLeft = this._scrollbarWidth + "px"), this._isBodyOverflowing && !t && (this._element.style.paddingRight = this._scrollbarWidth + "px") }, gt._resetAdjustments = function () { this._element.style.paddingLeft = "", this._element.style.paddingRight = "" }, gt._checkScrollbar = function () { var t = document.body.getBoundingClientRect(); this._isBodyOverflowing = Math.round(t.left + t.right) < window.innerWidth, this._scrollbarWidth = this._getScrollbarWidth() }, gt._setScrollbar = function () { var t, e, s = this; this._isBodyOverflowing && (t = [].slice.call(document.querySelectorAll(".fixed-top, .fixed-bottom, .is-fixed, .sticky-top")), e = [].slice.call(document.querySelectorAll(".sticky-top")), c(t).each(function (t, e) { var i = e.style.paddingRight, n = c(e).css("padding-right"); c(e).data("padding-right", i).css("padding-right", parseFloat(n) + s._scrollbarWidth + "px") }), c(e).each(function (t, e) { var i = e.style.marginRight, n = c(e).css("margin-right"); c(e).data("margin-right", i).css("margin-right", parseFloat(n) - s._scrollbarWidth + "px") }), t = document.body.style.paddingRight, e = c(document.body).css("padding-right"), c(document.body).data("padding-right", t).css("padding-right", parseFloat(e) + this._scrollbarWidth + "px")), c(document.body).addClass("modal-open") }, gt._resetScrollbar = function () { var t = [].slice.call(document.querySelectorAll(".fixed-top, .fixed-bottom, .is-fixed, .sticky-top")); c(t).each(function (t, e) { var i = c(e).data("padding-right"); c(e).removeData("padding-right"), e.style.paddingRight = i || "" }); t = [].slice.call(document.querySelectorAll(".sticky-top")); c(t).each(function (t, e) { var i = c(e).data("margin-right"); void 0 !== i && c(e).css("margin-right", i).removeData("margin-right") }); t = c(document.body).data("padding-right"); c(document.body).removeData("padding-right"), document.body.style.paddingRight = t || "" }, gt._getScrollbarWidth = function () { var t = document.createElement("div"); t.className = "modal-scrollbar-measure", document.body.appendChild(t); var e = t.getBoundingClientRect().width - t.clientWidth; return document.body.removeChild(t), e }, j._jQueryInterface = function (i, n) { return this.each(function () { var t = c(this).data("bs.modal"), e = r({}, H, c(this).data(), "object" == typeof i && i ? i : {}); if (t || (t = new j(this, e), c(this).data("bs.modal", t)), "string" == typeof i) { if (void 0 === t[i]) throw new TypeError('No method named "' + i + '"'); t[i](n) } else e.show && t.show(n) }) }, o(j, null, [{ key: "VERSION", get: function () { return "4.5.2" } }, { key: "Default", get: function () { return H } }]), j); function j(t, e) { this._config = this._getConfig(e), this._element = t, this._dialog = t.querySelector(".modal-dialog"), this._backdrop = null, this._isShown = !1, this._isBodyOverflowing = !1, this._ignoreBackdropClick = !1, this._isTransitioning = !1, this._scrollbarWidth = 0 } c(document).on("click.bs.modal.data-api", '[data-toggle="modal"]', function (t) { var e, i = this, n = u.getSelectorFromElement(this); n && (e = document.querySelector(n)); n = c(e).data("bs.modal") ? "toggle" : r({}, c(e).data(), c(this).data()); "A" !== this.tagName && "AREA" !== this.tagName || t.preventDefault(); var s = c(e).one("show.bs.modal", function (t) { t.isDefaultPrevented() || s.one("hidden.bs.modal", function () { c(i).is(":visible") && i.focus() }) }); z._jQueryInterface.call(c(e), n, this) }), c.fn.modal = z._jQueryInterface, c.fn.modal.Constructor = z, c.fn.modal.noConflict = function () { return c.fn.modal = O, z._jQueryInterface }; var F = ["background", "cite", "href", "itemtype", "longdesc", "poster", "src", "xlink:href"], W = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi, R = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i; function B(t, s, e) { if (0 === t.length) return t; if (e && "function" == typeof e) return e(t); for (var t = (new window.DOMParser).parseFromString(t, "text/html"), o = Object.keys(s), r = [].slice.call(t.body.querySelectorAll("*")), i = 0, n = r.length; i < n; i++)!function (t) { var e = r[t], i = e.nodeName.toLowerCase(); if (-1 === o.indexOf(e.nodeName.toLowerCase())) return e.parentNode.removeChild(e); var t = [].slice.call(e.attributes), n = [].concat(s["*"] || [], s[i] || []); t.forEach(function (t) { !function (t, e) { var i = t.nodeName.toLowerCase(); if (-1 !== e.indexOf(i)) return -1 === F.indexOf(i) || Boolean(t.nodeValue.match(W) || t.nodeValue.match(R)); for (var n = e.filter(function (t) { return t instanceof RegExp }), s = 0, o = n.length; s < o; s++)if (i.match(n[s])) return 1 }(t, n) && e.removeAttribute(t.nodeName) }) }(i); return t.body.innerHTML } var $ = "tooltip", q = c.fn[$], Y = new RegExp("(^|\\s)bs-tooltip\\S+", "g"), U = ["sanitize", "whiteList", "sanitizeFn"], V = { animation: "boolean", template: "string", title: "(string|element|function)", trigger: "string", delay: "(number|object)", html: "boolean", selector: "(string|boolean)", placement: "(string|function)", offset: "(number|string|function)", container: "(string|element|boolean)", fallbackPlacement: "(string|array)", boundary: "(string|element)", sanitize: "boolean", sanitizeFn: "(null|function)", whiteList: "object", popperConfig: "(null|object)" }, K = { AUTO: "auto", TOP: "top", RIGHT: "right", BOTTOM: "bottom", LEFT: "left" }, X = { animation: !0, template: '<div class="tooltip" role="tooltip"><div class="arrow"></div><div class="tooltip-inner"></div></div>', trigger: "hover focus", title: "", delay: 0, html: !1, selector: !1, placement: "top", offset: 0, container: !1, fallbackPlacement: "flip", boundary: "scrollParent", sanitize: !0, sanitizeFn: null, whiteList: { "*": ["class", "dir", "id", "lang", "role", /^aria-[\w-]*$/i], a: ["target", "href", "title", "rel"], area: [], b: [], br: [], col: [], code: [], div: [], em: [], hr: [], h1: [], h2: [], h3: [], h4: [], h5: [], h6: [], i: [], img: ["src", "srcset", "alt", "title", "width", "height"], li: [], ol: [], p: [], pre: [], s: [], small: [], span: [], sub: [], sup: [], strong: [], u: [], ul: [] }, popperConfig: null }, Q = { HIDE: "hide.bs.tooltip", HIDDEN: "hidden.bs.tooltip", SHOW: "show.bs.tooltip", SHOWN: "shown.bs.tooltip", INSERTED: "inserted.bs.tooltip", CLICK: "click.bs.tooltip", FOCUSIN: "focusin.bs.tooltip", FOCUSOUT: "focusout.bs.tooltip", MOUSEENTER: "mouseenter.bs.tooltip", MOUSELEAVE: "mouseleave.bs.tooltip" }, G = ((gt = J.prototype).enable = function () { this._isEnabled = !0 }, gt.disable = function () { this._isEnabled = !1 }, gt.toggleEnabled = function () { this._isEnabled = !this._isEnabled }, gt.toggle = function (t) { var e, i; this._isEnabled && (t ? (e = this.constructor.DATA_KEY, (i = c(t.currentTarget).data(e)) || (i = new this.constructor(t.currentTarget, this._getDelegateConfig()), c(t.currentTarget).data(e, i)), i._activeTrigger.click = !i._activeTrigger.click, i._isWithActiveTrigger() ? i._enter(null, i) : i._leave(null, i)) : c(this.getTipElement()).hasClass("show") ? this._leave(null, this) : this._enter(null, this)) }, gt.dispose = function () { clearTimeout(this._timeout), c.removeData(this.element, this.constructor.DATA_KEY), c(this.element).off(this.constructor.EVENT_KEY), c(this.element).closest(".modal").off("hide.bs.modal", this._hideModalHandler), this.tip && c(this.tip).remove(), this._isEnabled = null, this._timeout = null, this._hoverState = null, this._activeTrigger = null, this._popper && this._popper.destroy(), this._popper = null, this.element = null, this.config = null, this.tip = null }, gt.show = function () { var e = this; if ("none" === c(this.element).css("display")) throw new Error("Please use show on visible elements"); var t, i, n = c.Event(this.constructor.Event.SHOW); this.isWithContent() && this._isEnabled && (c(this.element).trigger(n), i = u.findShadowRoot(this.element), t = c.contains(null !== i ? i : this.element.ownerDocument.documentElement, this.element), !n.isDefaultPrevented() && t && (i = this.getTipElement(), n = u.getUID(this.constructor.NAME), i.setAttribute("id", n), this.element.setAttribute("aria-describedby", n), this.setContent(), this.config.animation && c(i).addClass("fade"), t = "function" == typeof this.config.placement ? this.config.placement.call(this, i, this.element) : this.config.placement, n = this._getAttachment(t), this.addAttachmentClass(n), t = this._getContainer(), c(i).data(this.constructor.DATA_KEY, this), c.contains(this.element.ownerDocument.documentElement, this.tip) || c(i).appendTo(t), c(this.element).trigger(this.constructor.Event.INSERTED), this._popper = new s(this.element, i, this._getPopperConfig(n)), c(i).addClass("show"), "ontouchstart" in document.documentElement && c(document.body).children().on("mouseover", null, c.noop), n = function () { e.config.animation && e._fixTransition(); var t = e._hoverState; e._hoverState = null, c(e.element).trigger(e.constructor.Event.SHOWN), "out" === t && e._leave(null, e) }, c(this.tip).hasClass("fade") ? (i = u.getTransitionDurationFromElement(this.tip), c(this.tip).one(u.TRANSITION_END, n).emulateTransitionEnd(i)) : n())) }, gt.hide = function (t) { function e() { "show" !== i._hoverState && n.parentNode && n.parentNode.removeChild(n), i._cleanTipClass(), i.element.removeAttribute("aria-describedby"), c(i.element).trigger(i.constructor.Event.HIDDEN), null !== i._popper && i._popper.destroy(), t && t() } var i = this, n = this.getTipElement(), s = c.Event(this.constructor.Event.HIDE); c(this.element).trigger(s), s.isDefaultPrevented() || (c(n).removeClass("show"), "ontouchstart" in document.documentElement && c(document.body).children().off("mouseover", null, c.noop), this._activeTrigger.click = !1, this._activeTrigger.focus = !1, this._activeTrigger.hover = !1, c(this.tip).hasClass("fade") ? (s = u.getTransitionDurationFromElement(n), c(n).one(u.TRANSITION_END, e).emulateTransitionEnd(s)) : e(), this._hoverState = "") }, gt.update = function () { null !== this._popper && this._popper.scheduleUpdate() }, gt.isWithContent = function () { return Boolean(this.getTitle()) }, gt.addAttachmentClass = function (t) { c(this.getTipElement()).addClass("bs-tooltip-" + t) }, gt.getTipElement = function () { return this.tip = this.tip || c(this.config.template)[0], this.tip }, gt.setContent = function () { var t = this.getTipElement(); this.setElementContent(c(t.querySelectorAll(".tooltip-inner")), this.getTitle()), c(t).removeClass("fade show") }, gt.setElementContent = function (t, e) { "object" != typeof e || !e.nodeType && !e.jquery ? this.config.html ? (this.config.sanitize && (e = B(e, this.config.whiteList, this.config.sanitizeFn)), t.html(e)) : t.text(e) : this.config.html ? c(e).parent().is(t) || t.empty().append(e) : t.text(c(e).text()) }, gt.getTitle = function () { return this.element.getAttribute("data-original-title") || ("function" == typeof this.config.title ? this.config.title.call(this.element) : this.config.title) }, gt._getPopperConfig = function (t) { var e = this; return r({}, { placement: t, modifiers: { offset: this._getOffset(), flip: { behavior: this.config.fallbackPlacement }, arrow: { element: ".arrow" }, preventOverflow: { boundariesElement: this.config.boundary } }, onCreate: function (t) { t.originalPlacement !== t.placement && e._handlePopperPlacementChange(t) }, onUpdate: function (t) { return e._handlePopperPlacementChange(t) } }, this.config.popperConfig) }, gt._getOffset = function () { var e = this, t = {}; return "function" == typeof this.config.offset ? t.fn = function (t) { return t.offsets = r({}, t.offsets, e.config.offset(t.offsets, e.element) || {}), t } : t.offset = this.config.offset, t }, gt._getContainer = function () { return !1 === this.config.container ? document.body : u.isElement(this.config.container) ? c(this.config.container) : c(document).find(this.config.container) }, gt._getAttachment = function (t) { return K[t.toUpperCase()] }, gt._setListeners = function () { var i = this; this.config.trigger.split(" ").forEach(function (t) { var e; "click" === t ? c(i.element).on(i.constructor.Event.CLICK, i.config.selector, function (t) { return i.toggle(t) }) : "manual" !== t && (e = "hover" === t ? i.constructor.Event.MOUSEENTER : i.constructor.Event.FOCUSIN, t = "hover" === t ? i.constructor.Event.MOUSELEAVE : i.constructor.Event.FOCUSOUT, c(i.element).on(e, i.config.selector, function (t) { return i._enter(t) }).on(t, i.config.selector, function (t) { return i._leave(t) })) }), this._hideModalHandler = function () { i.element && i.hide() }, c(this.element).closest(".modal").on("hide.bs.modal", this._hideModalHandler), this.config.selector ? this.config = r({}, this.config, { trigger: "manual", selector: "" }) : this._fixTitle() }, gt._fixTitle = function () { var t = typeof this.element.getAttribute("data-original-title"); !this.element.getAttribute("title") && "string" == t || (this.element.setAttribute("data-original-title", this.element.getAttribute("title") || ""), this.element.setAttribute("title", "")) }, gt._enter = function (t, e) { var i = this.constructor.DATA_KEY; (e = e || c(t.currentTarget).data(i)) || (e = new this.constructor(t.currentTarget, this._getDelegateConfig()), c(t.currentTarget).data(i, e)), t && (e._activeTrigger["focusin" === t.type ? "focus" : "hover"] = !0), c(e.getTipElement()).hasClass("show") || "show" === e._hoverState ? e._hoverState = "show" : (clearTimeout(e._timeout), e._hoverState = "show", e.config.delay && e.config.delay.show ? e._timeout = setTimeout(function () { "show" === e._hoverState && e.show() }, e.config.delay.show) : e.show()) }, gt._leave = function (t, e) { var i = this.constructor.DATA_KEY; (e = e || c(t.currentTarget).data(i)) || (e = new this.constructor(t.currentTarget, this._getDelegateConfig()), c(t.currentTarget).data(i, e)), t && (e._activeTrigger["focusout" === t.type ? "focus" : "hover"] = !1), e._isWithActiveTrigger() || (clearTimeout(e._timeout), e._hoverState = "out", e.config.delay && e.config.delay.hide ? e._timeout = setTimeout(function () { "out" === e._hoverState && e.hide() }, e.config.delay.hide) : e.hide()) }, gt._isWithActiveTrigger = function () { for (var t in this._activeTrigger) if (this._activeTrigger[t]) return !0; return !1 }, gt._getConfig = function (t) { var e = c(this.element).data(); return Object.keys(e).forEach(function (t) { -1 !== U.indexOf(t) && delete e[t] }), "number" == typeof (t = r({}, this.constructor.Default, e, "object" == typeof t && t ? t : {})).delay && (t.delay = { show: t.delay, hide: t.delay }), "number" == typeof t.title && (t.title = t.title.toString()), "number" == typeof t.content && (t.content = t.content.toString()), u.typeCheckConfig($, t, this.constructor.DefaultType), t.sanitize && (t.template = B(t.template, t.whiteList, t.sanitizeFn)), t }, gt._getDelegateConfig = function () { var t = {}; if (this.config) for (var e in this.config) this.constructor.Default[e] !== this.config[e] && (t[e] = this.config[e]); return t }, gt._cleanTipClass = function () { var t = c(this.getTipElement()), e = t.attr("class").match(Y); null !== e && e.length && t.removeClass(e.join("")) }, gt._handlePopperPlacementChange = function (t) { this.tip = t.instance.popper, this._cleanTipClass(), this.addAttachmentClass(this._getAttachment(t.placement)) }, gt._fixTransition = function () { var t = this.getTipElement(), e = this.config.animation; null === t.getAttribute("x-placement") && (c(t).removeClass("fade"), this.config.animation = !1, this.hide(), this.show(), this.config.animation = e) }, J._jQueryInterface = function (i) { return this.each(function () { var t = c(this).data("bs.tooltip"), e = "object" == typeof i && i; if ((t || !/dispose|hide/.test(i)) && (t || (t = new J(this, e), c(this).data("bs.tooltip", t)), "string" == typeof i)) { if (void 0 === t[i]) throw new TypeError('No method named "' + i + '"'); t[i]() } }) }, o(J, null, [{ key: "VERSION", get: function () { return "4.5.2" } }, { key: "Default", get: function () { return X } }, { key: "NAME", get: function () { return $ } }, { key: "DATA_KEY", get: function () { return "bs.tooltip" } }, { key: "Event", get: function () { return Q } }, { key: "EVENT_KEY", get: function () { return ".bs.tooltip" } }, { key: "DefaultType", get: function () { return V } }]), J); function J(t, e) { if (void 0 === s) throw new TypeError("Bootstrap's tooltips require Popper.js (https://popper.js.org/)"); this._isEnabled = !0, this._timeout = 0, this._hoverState = "", this._activeTrigger = {}, this._popper = null, this.element = t, this.config = this._getConfig(e), this.tip = null, this._setListeners() } c.fn[$] = G._jQueryInterface, c.fn[$].Constructor = G, c.fn[$].noConflict = function () { return c.fn[$] = q, G._jQueryInterface }; var Z = "popover", tt = c.fn[Z], et = new RegExp("(^|\\s)bs-popover\\S+", "g"), it = r({}, G.Default, { placement: "right", trigger: "click", content: "", template: '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>' }), nt = r({}, G.DefaultType, { content: "(string|element|function)" }), st = { HIDE: "hide.bs.popover", HIDDEN: "hidden.bs.popover", SHOW: "show.bs.popover", SHOWN: "shown.bs.popover", INSERTED: "inserted.bs.popover", CLICK: "click.bs.popover", FOCUSIN: "focusin.bs.popover", FOCUSOUT: "focusout.bs.popover", MOUSEENTER: "mouseenter.bs.popover", MOUSELEAVE: "mouseleave.bs.popover" }, ot = function (t) { var e; function n() { return t.apply(this, arguments) || this } i = t, (e = n).prototype = Object.create(i.prototype), (e.prototype.constructor = e).__proto__ = i; var i = n.prototype; return i.isWithContent = function () { return this.getTitle() || this._getContent() }, i.addAttachmentClass = function (t) { c(this.getTipElement()).addClass("bs-popover-" + t) }, i.getTipElement = function () { return this.tip = this.tip || c(this.config.template)[0], this.tip }, i.setContent = function () { var t = c(this.getTipElement()); this.setElementContent(t.find(".popover-header"), this.getTitle()); var e = this._getContent(); "function" == typeof e && (e = e.call(this.element)), this.setElementContent(t.find(".popover-body"), e), t.removeClass("fade show") }, i._getContent = function () { return this.element.getAttribute("data-content") || this.config.content }, i._cleanTipClass = function () { var t = c(this.getTipElement()), e = t.attr("class").match(et); null !== e && 0 < e.length && t.removeClass(e.join("")) }, n._jQueryInterface = function (i) { return this.each(function () { var t = c(this).data("bs.popover"), e = "object" == typeof i ? i : null; if ((t || !/dispose|hide/.test(i)) && (t || (t = new n(this, e), c(this).data("bs.popover", t)), "string" == typeof i)) { if (void 0 === t[i]) throw new TypeError('No method named "' + i + '"'); t[i]() } }) }, o(n, null, [{ key: "VERSION", get: function () { return "4.5.2" } }, { key: "Default", get: function () { return it } }, { key: "NAME", get: function () { return Z } }, { key: "DATA_KEY", get: function () { return "bs.popover" } }, { key: "Event", get: function () { return st } }, { key: "EVENT_KEY", get: function () { return ".bs.popover" } }, { key: "DefaultType", get: function () { return nt } }]), n }(G); c.fn[Z] = ot._jQueryInterface, c.fn[Z].Constructor = ot, c.fn[Z].noConflict = function () { return c.fn[Z] = tt, ot._jQueryInterface }; var rt = "scrollspy", at = c.fn[rt], lt = { offset: 10, method: "auto", target: "" }, ht = { offset: "number", method: "string", target: "(string|element)" }, ct = ((gt = ut.prototype).refresh = function () { var e = this, t = this._scrollElement === this._scrollElement.window ? "offset" : "position", n = "auto" === this._config.method ? t : this._config.method, s = "position" === n ? this._getScrollTop() : 0; this._offsets = [], this._targets = [], this._scrollHeight = this._getScrollHeight(), [].slice.call(document.querySelectorAll(this._selector)).map(function (t) { var e, i = u.getSelectorFromElement(t); if (i && (e = document.querySelector(i)), e) { t = e.getBoundingClientRect(); if (t.width || t.height) return [c(e)[n]().top + s, i] } return null }).filter(function (t) { return t }).sort(function (t, e) { return t[0] - e[0] }).forEach(function (t) { e._offsets.push(t[0]), e._targets.push(t[1]) }) }, gt.dispose = function () { c.removeData(this._element, "bs.scrollspy"), c(this._scrollElement).off(".bs.scrollspy"), this._element = null, this._scrollElement = null, this._config = null, this._selector = null, this._offsets = null, this._targets = null, this._activeTarget = null, this._scrollHeight = null }, gt._getConfig = function (t) { var e; return "string" != typeof (t = r({}, lt, "object" == typeof t && t ? t : {})).target && u.isElement(t.target) && ((e = c(t.target).attr("id")) || (e = u.getUID(rt), c(t.target).attr("id", e)), t.target = "#" + e), u.typeCheckConfig(rt, t, ht), t }, gt._getScrollTop = function () { return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop }, gt._getScrollHeight = function () { return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight) }, gt._getOffsetHeight = function () { return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height }, gt._process = function () { var t = this._getScrollTop() + this._config.offset, e = this._getScrollHeight(), i = this._config.offset + e - this._getOffsetHeight(); if (this._scrollHeight !== e && this.refresh(), i <= t) { i = this._targets[this._targets.length - 1]; this._activeTarget !== i && this._activate(i) } else { if (this._activeTarget && t < this._offsets[0] && 0 < this._offsets[0]) return this._activeTarget = null, void this._clear(); for (var n = this._offsets.length; n--;)this._activeTarget !== this._targets[n] && t >= this._offsets[n] && (void 0 === this._offsets[n + 1] || t < this._offsets[n + 1]) && this._activate(this._targets[n]) } }, gt._activate = function (e) { this._activeTarget = e, this._clear(); var t = this._selector.split(",").map(function (t) { return t + '[data-target="' + e + '"],' + t + '[href="' + e + '"]' }), t = c([].slice.call(document.querySelectorAll(t.join(",")))); t.hasClass("dropdown-item") ? (t.closest(".dropdown").find(".dropdown-toggle").addClass("active"), t.addClass("active")) : (t.addClass("active"), t.parents(".nav, .list-group").prev(".nav-link, .list-group-item").addClass("active"), t.parents(".nav, .list-group").prev(".nav-item").children(".nav-link").addClass("active")), c(this._scrollElement).trigger("activate.bs.scrollspy", { relatedTarget: e }) }, gt._clear = function () { [].slice.call(document.querySelectorAll(this._selector)).filter(function (t) { return t.classList.contains("active") }).forEach(function (t) { return t.classList.remove("active") }) }, ut._jQueryInterface = function (e) { return this.each(function () { var t = c(this).data("bs.scrollspy"); if (t || (t = new ut(this, "object" == typeof e && e), c(this).data("bs.scrollspy", t)), "string" == typeof e) { if (void 0 === t[e]) throw new TypeError('No method named "' + e + '"'); t[e]() } }) }, o(ut, null, [{ key: "VERSION", get: function () { return "4.5.2" } }, { key: "Default", get: function () { return lt } }]), ut); function ut(t, e) { var i = this; this._element = t, this._scrollElement = "BODY" === t.tagName ? window : t, this._config = this._getConfig(e), this._selector = this._config.target + " .nav-link," + this._config.target + " .list-group-item," + this._config.target + " .dropdown-item", this._offsets = [], this._targets = [], this._activeTarget = null, this._scrollHeight = 0, c(this._scrollElement).on("scroll.bs.scrollspy", function (t) { return i._process(t) }), this.refresh(), this._process() } c(window).on("load.bs.scrollspy.data-api", function () { for (var t = [].slice.call(document.querySelectorAll('[data-spy="scroll"]')), e = t.length; e--;) { var i = c(t[e]); ct._jQueryInterface.call(i, i.data()) } }), c.fn[rt] = ct._jQueryInterface, c.fn[rt].Constructor = ct, c.fn[rt].noConflict = function () { return c.fn[rt] = at, ct._jQueryInterface }; var dt = c.fn.tab, pt = ((gt = ft.prototype).show = function () { var t, e, i, n, s, o, r = this; this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && c(this._element).hasClass("active") || c(this._element).hasClass("disabled") || (o = c(this._element).closest(".nav, .list-group")[0], e = u.getSelectorFromElement(this._element), o && (s = "UL" === o.nodeName || "OL" === o.nodeName ? "> li > .active" : ".active", i = (i = c.makeArray(c(o).find(s)))[i.length - 1]), n = c.Event("hide.bs.tab", { relatedTarget: this._element }), s = c.Event("show.bs.tab", { relatedTarget: i }), i && c(i).trigger(n), c(this._element).trigger(s), s.isDefaultPrevented() || n.isDefaultPrevented() || (e && (t = document.querySelector(e)), this._activate(this._element, o), o = function () { var t = c.Event("hidden.bs.tab", { relatedTarget: r._element }), e = c.Event("shown.bs.tab", { relatedTarget: i }); c(i).trigger(t), c(r._element).trigger(e) }, t ? this._activate(t, t.parentNode, o) : o())) }, gt.dispose = function () { c.removeData(this._element, "bs.tab"), this._element = null }, gt._activate = function (t, e, i) { var n = this, s = (!e || "UL" !== e.nodeName && "OL" !== e.nodeName ? c(e).children(".active") : c(e).find("> li > .active"))[0], o = i && s && c(s).hasClass("fade"), e = function () { return n._transitionComplete(t, s, i) }; s && o ? (o = u.getTransitionDurationFromElement(s), c(s).removeClass("show").one(u.TRANSITION_END, e).emulateTransitionEnd(o)) : e() }, gt._transitionComplete = function (t, e, i) { var n; e && (c(e).removeClass("active"), (n = c(e.parentNode).find("> .dropdown-menu .active")[0]) && c(n).removeClass("active"), "tab" === e.getAttribute("role") && e.setAttribute("aria-selected", !1)), c(t).addClass("active"), "tab" === t.getAttribute("role") && t.setAttribute("aria-selected", !0), u.reflow(t), t.classList.contains("fade") && t.classList.add("show"), t.parentNode && c(t.parentNode).hasClass("dropdown-menu") && ((e = c(t).closest(".dropdown")[0]) && (e = [].slice.call(e.querySelectorAll(".dropdown-toggle")), c(e).addClass("active")), t.setAttribute("aria-expanded", !0)), i && i() }, ft._jQueryInterface = function (i) { return this.each(function () { var t = c(this), e = t.data("bs.tab"); if (e || (e = new ft(this), t.data("bs.tab", e)), "string" == typeof i) { if (void 0 === e[i]) throw new TypeError('No method named "' + i + '"'); e[i]() } }) }, o(ft, null, [{ key: "VERSION", get: function () { return "4.5.2" } }]), ft); function ft(t) { this._element = t } c(document).on("click.bs.tab.data-api", '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]', function (t) { t.preventDefault(), pt._jQueryInterface.call(c(this), "show") }), c.fn.tab = pt._jQueryInterface, c.fn.tab.Constructor = pt, c.fn.tab.noConflict = function () { return c.fn.tab = dt, pt._jQueryInterface }; var gt, mt = c.fn.toast, vt = { animation: "boolean", autohide: "boolean", delay: "number" }, _t = { animation: !0, autohide: !0, delay: 500 }, yt = ((gt = bt.prototype).show = function () { var t, e = this, i = c.Event("show.bs.toast"); c(this._element).trigger(i), i.isDefaultPrevented() || (this._clearTimeout(), this._config.animation && this._element.classList.add("fade"), t = function () { e._element.classList.remove("showing"), e._element.classList.add("show"), c(e._element).trigger("shown.bs.toast"), e._config.autohide && (e._timeout = setTimeout(function () { e.hide() }, e._config.delay)) }, this._element.classList.remove("hide"), u.reflow(this._element), this._element.classList.add("showing"), this._config.animation ? (i = u.getTransitionDurationFromElement(this._element), c(this._element).one(u.TRANSITION_END, t).emulateTransitionEnd(i)) : t()) }, gt.hide = function () { var t; this._element.classList.contains("show") && (t = c.Event("hide.bs.toast"), c(this._element).trigger(t), t.isDefaultPrevented() || this._close()) }, gt.dispose = function () { this._clearTimeout(), this._element.classList.contains("show") && this._element.classList.remove("show"), c(this._element).off("click.dismiss.bs.toast"), c.removeData(this._element, "bs.toast"), this._element = null, this._config = null }, gt._getConfig = function (t) { return t = r({}, _t, c(this._element).data(), "object" == typeof t && t ? t : {}), u.typeCheckConfig("toast", t, this.constructor.DefaultType), t }, gt._setListeners = function () { var t = this; c(this._element).on("click.dismiss.bs.toast", '[data-dismiss="toast"]', function () { return t.hide() }) }, gt._close = function () { function t() { i._element.classList.add("hide"), c(i._element).trigger("hidden.bs.toast") } var e, i = this; this._element.classList.remove("show"), this._config.animation ? (e = u.getTransitionDurationFromElement(this._element), c(this._element).one(u.TRANSITION_END, t).emulateTransitionEnd(e)) : t() }, gt._clearTimeout = function () { clearTimeout(this._timeout), this._timeout = null }, bt._jQueryInterface = function (i) { return this.each(function () { var t = c(this), e = t.data("bs.toast"); if (e || (e = new bt(this, "object" == typeof i && i), t.data("bs.toast", e)), "string" == typeof i) { if (void 0 === e[i]) throw new TypeError('No method named "' + i + '"'); e[i](this) } }) }, o(bt, null, [{ key: "VERSION", get: function () { return "4.5.2" } }, { key: "DefaultType", get: function () { return vt } }, { key: "Default", get: function () { return _t } }]), bt); function bt(t, e) { this._element = t, this._config = this._getConfig(e), this._timeout = null, this._setListeners() } c.fn.toast = yt._jQueryInterface, c.fn.toast.Constructor = yt, c.fn.toast.noConflict = function () { return c.fn.toast = mt, yt._jQueryInterface }, t.Alert = a, t.Button = d, t.Carousel = y, t.Collapse = T, t.Dropdown = N, t.Modal = z, t.Popover = ot, t.Scrollspy = ct, t.Tab = pt, t.Toast = yt, t.Tooltip = G, t.Util = u, Object.defineProperty(t, "__esModule", { value: !0 }) }), function (l, i, n, a) { function h(t, e) { this.settings = null, this.options = l.extend({}, h.Defaults, e), this.$element = l(t), this._handlers = {}, this._plugins = {}, this._supress = {}, this._current = null, this._speed = null, this._coordinates = [], this._breakpoint = null, this._width = null, this._items = [], this._clones = [], this._mergers = [], this._widths = [], this._invalidated = {}, this._pipe = [], this._drag = { time: null, target: null, pointer: null, stage: { start: null, current: null }, direction: null }, this._states = { current: {}, tags: { initializing: ["busy"], animating: ["busy"], dragging: ["interacting"] } }, l.each(["onResize", "onThrottledResize"], l.proxy(function (t, e) { this._handlers[e] = l.proxy(this[e], this) }, this)), l.each(h.Plugins, l.proxy(function (t, e) { this._plugins[t.charAt(0).toLowerCase() + t.slice(1)] = new e(this) }, this)), l.each(h.Workers, l.proxy(function (t, e) { this._pipe.push({ filter: e.filter, run: l.proxy(e.run, this) }) }, this)), this.setup(), this.initialize() } h.Defaults = { items: 3, loop: !1, center: !1, rewind: !1, checkVisibility: !0, mouseDrag: !0, touchDrag: !0, pullDrag: !0, freeDrag: !1, margin: 0, stagePadding: 0, merge: !1, mergeFit: !0, autoWidth: !1, startPosition: 0, rtl: !1, smartSpeed: 250, fluidSpeed: !1, dragEndSpeed: !1, responsive: {}, responsiveRefreshRate: 200, responsiveBaseElement: i, fallbackEasing: "swing", slideTransition: "", info: !1, nestedItemSelector: !1, itemElement: "div", stageElement: "div", refreshClass: "owl-refresh", loadedClass: "owl-loaded", loadingClass: "owl-loading", rtlClass: "owl-rtl", responsiveClass: "owl-responsive", dragClass: "owl-drag", itemClass: "owl-item", stageClass: "owl-stage", stageOuterClass: "owl-stage-outer", grabClass: "owl-grab" }, h.Width = { Default: "default", Inner: "inner", Outer: "outer" }, h.Type = { Event: "event", State: "state" }, h.Plugins = {}, h.Workers = [{ filter: ["width", "settings"], run: function () { this._width = this.$element.width() } }, { filter: ["width", "items", "settings"], run: function (t) { t.current = this._items && this._items[this.relative(this._current)] } }, { filter: ["items", "settings"], run: function () { this.$stage.children(".cloned").remove() } }, { filter: ["width", "items", "settings"], run: function (t) { var e = this.settings.margin || "", i = !this.settings.autoWidth, n = this.settings.rtl, e = { width: "auto", "margin-left": n ? e : "", "margin-right": n ? "" : e }; i || this.$stage.children().css(e), t.css = e } }, { filter: ["width", "items", "settings"], run: function (t) { var e = (this.width() / this.settings.items).toFixed(3) - this.settings.margin, i = null, n = this._items.length, s = !this.settings.autoWidth, o = []; for (t.items = { merge: !1, width: e }; n--;)i = this._mergers[n], i = this.settings.mergeFit && Math.min(i, this.settings.items) || i, t.items.merge = 1 < i || t.items.merge, o[n] = s ? e * i : this._items[n].width(); this._widths = o } }, { filter: ["items", "settings"], run: function () { var t = [], e = this._items, i = this.settings, n = Math.max(2 * i.items, 4), s = 2 * Math.ceil(e.length / 2), o = i.loop && e.length ? i.rewind ? n : Math.max(n, s) : 0, r = "", a = ""; for (o /= 2; 0 < o;)t.push(this.normalize(t.length / 2, !0)), r += e[t[t.length - 1]][0].outerHTML, t.push(this.normalize(e.length - 1 - (t.length - 1) / 2, !0)), a = e[t[t.length - 1]][0].outerHTML + a, --o; this._clones = t, l(r).addClass("cloned").appendTo(this.$stage), l(a).addClass("cloned").prependTo(this.$stage) } }, { filter: ["width", "items", "settings"], run: function () { for (var t, e, i = this.settings.rtl ? 1 : -1, n = this._clones.length + this._items.length, s = -1, o = []; ++s < n;)t = o[s - 1] || 0, e = this._widths[this.relative(s)] + this.settings.margin, o.push(t + e * i); this._coordinates = o } }, { filter: ["width", "items", "settings"], run: function () { var t = this.settings.stagePadding, e = this._coordinates, t = { width: Math.ceil(Math.abs(e[e.length - 1])) + 2 * t, "padding-left": t || "", "padding-right": t || "" }; this.$stage.css(t) } }, { filter: ["width", "items", "settings"], run: function (t) { var e = this._coordinates.length, i = !this.settings.autoWidth, n = this.$stage.children(); if (i && t.items.merge) for (; e--;)t.css.width = this._widths[this.relative(e)], n.eq(e).css(t.css); else i && (t.css.width = t.items.width, n.css(t.css)) } }, { filter: ["items"], run: function () { this._coordinates.length < 1 && this.$stage.removeAttr("style") } }, { filter: ["width", "items", "settings"], run: function (t) { t.current = t.current ? this.$stage.children().index(t.current) : 0, t.current = Math.max(this.minimum(), Math.min(this.maximum(), t.current)), this.reset(t.current) } }, { filter: ["position"], run: function () { this.animate(this.coordinates(this._current)) } }, { filter: ["width", "position", "items", "settings"], run: function () { for (var t, e, i = this.settings.rtl ? 1 : -1, n = 2 * this.settings.stagePadding, s = this.coordinates(this.current()) + n, o = s + this.width() * i, r = [], a = 0, l = this._coordinates.length; a < l; a++)t = this._coordinates[a - 1] || 0, e = Math.abs(this._coordinates[a]) + n * i, (this.op(t, "<=", s) && this.op(t, ">", o) || this.op(e, "<", s) && this.op(e, ">", o)) && r.push(a); this.$stage.children(".active").removeClass("active"), this.$stage.children(":eq(" + r.join("), :eq(") + ")").addClass("active"), this.$stage.children(".center").removeClass("center"), this.settings.center && this.$stage.children().eq(this.current()).addClass("center") } }], h.prototype.initializeStage = function () { this.$stage = this.$element.find("." + this.settings.stageClass), this.$stage.length || (this.$element.addClass(this.options.loadingClass), this.$stage = l("<" + this.settings.stageElement + ">", { class: this.settings.stageClass }).wrap(l("<div/>", { class: this.settings.stageOuterClass })), this.$element.append(this.$stage.parent())) }, h.prototype.initializeItems = function () { var t = this.$element.find(".owl-item"); if (t.length) return this._items = t.get().map(function (t) { return l(t) }), this._mergers = this._items.map(function () { return 1 }), void this.refresh(); this.replace(this.$element.children().not(this.$stage.parent())), this.isVisible() ? this.refresh() : this.invalidate("width"), this.$element.removeClass(this.options.loadingClass).addClass(this.options.loadedClass) }, h.prototype.initialize = function () { var t, e; this.enter("initializing"), this.trigger("initialize"), this.$element.toggleClass(this.settings.rtlClass, this.settings.rtl), this.settings.autoWidth && !this.is("pre-loading") && (t = this.$element.find("img"), e = this.settings.nestedItemSelector ? "." + this.settings.nestedItemSelector : a, e = this.$element.children(e).width(), t.length && e <= 0 && this.preloadAutoWidthImages(t)), this.initializeStage(), this.initializeItems(), this.registerEventHandlers(), this.leave("initializing"), this.trigger("initialized") }, h.prototype.isVisible = function () { return !this.settings.checkVisibility || this.$element.is(":visible") }, h.prototype.setup = function () { var e = this.viewport(), t = this.options.responsive, i = -1, n = null; t ? (l.each(t, function (t) { t <= e && i < t && (i = Number(t)) }), "function" == typeof (n = l.extend({}, this.options, t[i])).stagePadding && (n.stagePadding = n.stagePadding()), delete n.responsive, n.responsiveClass && this.$element.attr("class", this.$element.attr("class").replace(new RegExp("(" + this.options.responsiveClass + "-)\\S+\\s", "g"), "$1" + i))) : n = l.extend({}, this.options), this.trigger("change", { property: { name: "settings", value: n } }), this._breakpoint = i, this.settings = n, this.invalidate("settings"), this.trigger("changed", { property: { name: "settings", value: this.settings } }) }, h.prototype.optionsLogic = function () { this.settings.autoWidth && (this.settings.stagePadding = !1, this.settings.merge = !1) }, h.prototype.prepare = function (t) { var e = this.trigger("prepare", { content: t }); return e.data || (e.data = l("<" + this.settings.itemElement + "/>").addClass(this.options.itemClass).append(t)), this.trigger("prepared", { content: e.data }), e.data }, h.prototype.update = function () { for (var t = 0, e = this._pipe.length, i = l.proxy(function (t) { return this[t] }, this._invalidated), n = {}; t < e;)(this._invalidated.all || 0 < l.grep(this._pipe[t].filter, i).length) && this._pipe[t].run(n), t++; this._invalidated = {}, this.is("valid") || this.enter("valid") }, h.prototype.width = function (t) { switch (t = t || h.Width.Default) { case h.Width.Inner: case h.Width.Outer: return this._width; default: return this._width - 2 * this.settings.stagePadding + this.settings.margin } }, h.prototype.refresh = function () { this.enter("refreshing"), this.trigger("refresh"), this.setup(), this.optionsLogic(), this.$element.addClass(this.options.refreshClass), this.update(), this.$element.removeClass(this.options.refreshClass), this.leave("refreshing"), this.trigger("refreshed") }, h.prototype.onThrottledResize = function () { i.clearTimeout(this.resizeTimer), this.resizeTimer = i.setTimeout(this._handlers.onResize, this.settings.responsiveRefreshRate) }, h.prototype.onResize = function () { return !!this._items.length && (this._width !== this.$element.width() && (!!this.isVisible() && (this.enter("resizing"), this.trigger("resize").isDefaultPrevented() ? (this.leave("resizing"), !1) : (this.invalidate("width"), this.refresh(), this.leave("resizing"), void this.trigger("resized"))))) }, h.prototype.registerEventHandlers = function () { l.support.transition && this.$stage.on(l.support.transition.end + ".owl.core", l.proxy(this.onTransitionEnd, this)), !1 !== this.settings.responsive && this.on(i, "resize", this._handlers.onThrottledResize), this.settings.mouseDrag && (this.$element.addClass(this.options.dragClass), this.$stage.on("mousedown.owl.core", l.proxy(this.onDragStart, this)), this.$stage.on("dragstart.owl.core selectstart.owl.core", function () { return !1 })), this.settings.touchDrag && (this.$stage.on("touchstart.owl.core", l.proxy(this.onDragStart, this)), this.$stage.on("touchcancel.owl.core", l.proxy(this.onDragEnd, this))) }, h.prototype.onDragStart = function (t) { var e = null; 3 !== t.which && (e = l.support.transform ? { x: (e = this.$stage.css("transform").replace(/.*\(|\)| /g, "").split(","))[16 === e.length ? 12 : 4], y: e[16 === e.length ? 13 : 5] } : (e = this.$stage.position(), { x: this.settings.rtl ? e.left + this.$stage.width() - this.width() + this.settings.margin : e.left, y: e.top }), this.is("animating") && (l.support.transform ? this.animate(e.x) : this.$stage.stop(), this.invalidate("position")), this.$element.toggleClass(this.options.grabClass, "mousedown" === t.type), this.speed(0), this._drag.time = (new Date).getTime(), this._drag.target = l(t.target), this._drag.stage.start = e, this._drag.stage.current = e, this._drag.pointer = this.pointer(t), l(n).on("mouseup.owl.core touchend.owl.core", l.proxy(this.onDragEnd, this)), l(n).one("mousemove.owl.core touchmove.owl.core", l.proxy(function (t) { var e = this.difference(this._drag.pointer, this.pointer(t)); l(n).on("mousemove.owl.core touchmove.owl.core", l.proxy(this.onDragMove, this)), Math.abs(e.x) < Math.abs(e.y) && this.is("valid") || (t.preventDefault(), this.enter("dragging"), this.trigger("drag")) }, this))) }, h.prototype.onDragMove = function (t) { var e, i = null, n = null, s = this.difference(this._drag.pointer, this.pointer(t)), o = this.difference(this._drag.stage.start, s); this.is("dragging") && (t.preventDefault(), this.settings.loop ? (i = this.coordinates(this.minimum()), n = this.coordinates(this.maximum() + 1) - i, o.x = ((o.x - i) % n + n) % n + i) : (i = this.settings.rtl ? this.coordinates(this.maximum()) : this.coordinates(this.minimum()), n = this.settings.rtl ? this.coordinates(this.minimum()) : this.coordinates(this.maximum()), e = this.settings.pullDrag ? -1 * s.x / 5 : 0, o.x = Math.max(Math.min(o.x, i + e), n + e)), this._drag.stage.current = o, this.animate(o.x)) }, h.prototype.onDragEnd = function (t) { var e = this.difference(this._drag.pointer, this.pointer(t)), i = this._drag.stage.current, t = 0 < e.x ^ this.settings.rtl ? "left" : "right"; l(n).off(".owl.core"), this.$element.removeClass(this.options.grabClass), (0 !== e.x && this.is("dragging") || !this.is("valid")) && (this.speed(this.settings.dragEndSpeed || this.settings.smartSpeed), this.current(this.closest(i.x, 0 !== e.x ? t : this._drag.direction)), this.invalidate("position"), this.update(), this._drag.direction = t, (3 < Math.abs(e.x) || 300 < (new Date).getTime() - this._drag.time) && this._drag.target.one("click.owl.core", function () { return !1 })), this.is("dragging") && (this.leave("dragging"), this.trigger("dragged")) }, h.prototype.closest = function (i, n) { var s = -1, o = this.width(), r = this.coordinates(); return this.settings.freeDrag || l.each(r, l.proxy(function (t, e) { return "left" === n && e - 30 < i && i < e + 30 ? s = t : "right" === n && e - o - 30 < i && i < e - o + 30 ? s = t + 1 : this.op(i, "<", e) && this.op(i, ">", r[t + 1] !== a ? r[t + 1] : e - o) && (s = "left" === n ? t + 1 : t), -1 === s }, this)), this.settings.loop || (this.op(i, ">", r[this.minimum()]) ? s = i = this.minimum() : this.op(i, "<", r[this.maximum()]) && (s = i = this.maximum())), s }, h.prototype.animate = function (t) { var e = 0 < this.speed(); this.is("animating") && this.onTransitionEnd(), e && (this.enter("animating"), this.trigger("translate")), l.support.transform3d && l.support.transition ? this.$stage.css({ transform: "translate3d(" + t + "px,0px,0px)", transition: this.speed() / 1e3 + "s" + (this.settings.slideTransition ? " " + this.settings.slideTransition : "") }) : e ? this.$stage.animate({ left: t + "px" }, this.speed(), this.settings.fallbackEasing, l.proxy(this.onTransitionEnd, this)) : this.$stage.css({ left: t + "px" }) }, h.prototype.is = function (t) { return this._states.current[t] && 0 < this._states.current[t] }, h.prototype.current = function (t) { return t === a ? this._current : 0 === this._items.length ? a : (t = this.normalize(t), this._current !== t && ((e = this.trigger("change", { property: { name: "position", value: t } })).data !== a && (t = this.normalize(e.data)), this._current = t, this.invalidate("position"), this.trigger("changed", { property: { name: "position", value: this._current } })), this._current); var e }, h.prototype.invalidate = function (t) { return "string" === l.type(t) && (this._invalidated[t] = !0, this.is("valid") && this.leave("valid")), l.map(this._invalidated, function (t, e) { return e }) }, h.prototype.reset = function (t) { (t = this.normalize(t)) !== a && (this._speed = 0, this._current = t, this.suppress(["translate", "translated"]), this.animate(this.coordinates(t)), this.release(["translate", "translated"])) }, h.prototype.normalize = function (t, e) { var i = this._items.length, e = e ? 0 : this._clones.length; return !this.isNumeric(t) || i < 1 ? t = a : (t < 0 || i + e <= t) && (t = ((t - e / 2) % i + i) % i + e / 2), t }, h.prototype.relative = function (t) { return t -= this._clones.length / 2, this.normalize(t, !0) }, h.prototype.maximum = function (t) { var e, i, n, s = this.settings, o = this._coordinates.length; if (s.loop) o = this._clones.length / 2 + this._items.length - 1; else if (s.autoWidth || s.merge) { if (e = this._items.length) for (i = this._items[--e].width(), n = this.$element.width(); e-- && !(n < (i += this._items[e].width() + this.settings.margin));); o = e + 1 } else o = s.center ? this._items.length - 1 : this._items.length - s.items; return t && (o -= this._clones.length / 2), Math.max(o, 0) }, h.prototype.minimum = function (t) { return t ? 0 : this._clones.length / 2 }, h.prototype.items = function (t) { return t === a ? this._items.slice() : (t = this.normalize(t, !0), this._items[t]) }, h.prototype.mergers = function (t) { return t === a ? this._mergers.slice() : (t = this.normalize(t, !0), this._mergers[t]) }, h.prototype.clones = function (i) { function n(t) { return t % 2 == 0 ? s + t / 2 : e - (t + 1) / 2 } var e = this._clones.length / 2, s = e + this._items.length; return i === a ? l.map(this._clones, function (t, e) { return n(e) }) : l.map(this._clones, function (t, e) { return t === i ? n(e) : null }) }, h.prototype.speed = function (t) { return t !== a && (this._speed = t), this._speed }, h.prototype.coordinates = function (t) { var e, i = 1, n = t - 1; return t === a ? l.map(this._coordinates, l.proxy(function (t, e) { return this.coordinates(e) }, this)) : (this.settings.center ? (this.settings.rtl && (i = -1, n = t + 1), e = this._coordinates[t], e += (this.width() - e + (this._coordinates[n] || 0)) / 2 * i) : e = this._coordinates[n] || 0, e = Math.ceil(e)) }, h.prototype.duration = function (t, e, i) { return 0 === i ? 0 : Math.min(Math.max(Math.abs(e - t), 1), 6) * Math.abs(i || this.settings.smartSpeed) }, h.prototype.to = function (t, e) { var i, n = this.current(), s = t - this.relative(n), o = (0 < s) - (s < 0), r = this._items.length, a = this.minimum(), l = this.maximum(); this.settings.loop ? (!this.settings.rewind && Math.abs(s) > r / 2 && (s += -1 * o * r), (i = (((t = n + s) - a) % r + r) % r + a) !== t && i - s <= l && 0 < i - s && (n = i - s, t = i, this.reset(n))) : t = this.settings.rewind ? (t % (l += 1) + l) % l : Math.max(a, Math.min(l, t)), this.speed(this.duration(n, t, e)), this.current(t), this.isVisible() && this.update() }, h.prototype.next = function (t) { t = t || !1, this.to(this.relative(this.current()) + 1, t) }, h.prototype.prev = function (t) { t = t || !1, this.to(this.relative(this.current()) - 1, t) }, h.prototype.onTransitionEnd = function (t) { if (t !== a && (t.stopPropagation(), (t.target || t.srcElement || t.originalTarget) !== this.$stage.get(0))) return !1; this.leave("animating"), this.trigger("translated") }, h.prototype.viewport = function () { var t; return this.options.responsiveBaseElement !== i ? t = l(this.options.responsiveBaseElement).width() : i.innerWidth ? t = i.innerWidth : n.documentElement && n.documentElement.clientWidth ? t = n.documentElement.clientWidth : console.warn("Can not detect viewport width."), t }, h.prototype.replace = function (t) { this.$stage.empty(), this._items = [], t = t && (t instanceof jQuery ? t : l(t)), this.settings.nestedItemSelector && (t = t.find("." + this.settings.nestedItemSelector)), t.filter(function () { return 1 === this.nodeType }).each(l.proxy(function (t, e) { e = this.prepare(e), this.$stage.append(e), this._items.push(e), this._mergers.push(+e.find("[data-merge]").addBack("[data-merge]").attr("data-merge") || 1) }, this)), this.reset(this.isNumeric(this.settings.startPosition) ? this.settings.startPosition : 0), this.invalidate("items") }, h.prototype.add = function (t, e) { var i = this.relative(this._current); e = e === a ? this._items.length : this.normalize(e, !0), t = t instanceof jQuery ? t : l(t), this.trigger("add", { content: t, position: e }), t = this.prepare(t), 0 === this._items.length || e === this._items.length ? (0 === this._items.length && this.$stage.append(t), 0 !== this._items.length && this._items[e - 1].after(t), this._items.push(t), this._mergers.push(+t.find("[data-merge]").addBack("[data-merge]").attr("data-merge") || 1)) : (this._items[e].before(t), this._items.splice(e, 0, t), this._mergers.splice(e, 0, +t.find("[data-merge]").addBack("[data-merge]").attr("data-merge") || 1)), this._items[i] && this.reset(this._items[i].index()), this.invalidate("items"), this.trigger("added", { content: t, position: e }) }, h.prototype.remove = function (t) { (t = this.normalize(t, !0)) !== a && (this.trigger("remove", { content: this._items[t], position: t }), this._items[t].remove(), this._items.splice(t, 1), this._mergers.splice(t, 1), this.invalidate("items"), this.trigger("removed", { content: null, position: t })) }, h.prototype.preloadAutoWidthImages = function (t) { t.each(l.proxy(function (t, e) { this.enter("pre-loading"), e = l(e), l(new Image).one("load", l.proxy(function (t) { e.attr("src", t.target.src), e.css("opacity", 1), this.leave("pre-loading"), this.is("pre-loading") || this.is("initializing") || this.refresh() }, this)).attr("src", e.attr("src") || e.attr("data-src") || e.attr("data-src-retina")) }, this)) }, h.prototype.destroy = function () { for (var t in this.$element.off(".owl.core"), this.$stage.off(".owl.core"), l(n).off(".owl.core"), !1 !== this.settings.responsive && (i.clearTimeout(this.resizeTimer), this.off(i, "resize", this._handlers.onThrottledResize)), this._plugins) this._plugins[t].destroy(); this.$stage.children(".cloned").remove(), this.$stage.unwrap(), this.$stage.children().contents().unwrap(), this.$stage.children().unwrap(), this.$stage.remove(), this.$element.removeClass(this.options.refreshClass).removeClass(this.options.loadingClass).removeClass(this.options.loadedClass).removeClass(this.options.rtlClass).removeClass(this.options.dragClass).removeClass(this.options.grabClass).attr("class", this.$element.attr("class").replace(new RegExp(this.options.responsiveClass + "-\\S+\\s", "g"), "")).removeData("owl.carousel") }, h.prototype.op = function (t, e, i) { var n = this.settings.rtl; switch (e) { case "<": return n ? i < t : t < i; case ">": return n ? t < i : i < t; case ">=": return n ? t <= i : i <= t; case "<=": return n ? i <= t : t <= i } }, h.prototype.on = function (t, e, i, n) { t.addEventListener ? t.addEventListener(e, i, n) : t.attachEvent && t.attachEvent("on" + e, i) }, h.prototype.off = function (t, e, i, n) { t.removeEventListener ? t.removeEventListener(e, i, n) : t.detachEvent && t.detachEvent("on" + e, i) }, h.prototype.trigger = function (t, e, i, n, s) { var o = { item: { count: this._items.length, index: this.current() } }, r = l.camelCase(l.grep(["on", t, i], function (t) { return t }).join("-").toLowerCase()), a = l.Event([t, "owl", i || "carousel"].join(".").toLowerCase(), l.extend({ relatedTarget: this }, o, e)); return this._supress[t] || (l.each(this._plugins, function (t, e) { e.onTrigger && e.onTrigger(a) }), this.register({ type: h.Type.Event, name: t }), this.$element.trigger(a), this.settings && "function" == typeof this.settings[r] && this.settings[r].call(this, a)), a }, h.prototype.enter = function (t) { l.each([t].concat(this._states.tags[t] || []), l.proxy(function (t, e) { this._states.current[e] === a && (this._states.current[e] = 0), this._states.current[e]++ }, this)) }, h.prototype.leave = function (t) { l.each([t].concat(this._states.tags[t] || []), l.proxy(function (t, e) { this._states.current[e]-- }, this)) }, h.prototype.register = function (i) { var e; i.type === h.Type.Event ? (l.event.special[i.name] || (l.event.special[i.name] = {}), l.event.special[i.name].owl || (e = l.event.special[i.name]._default, l.event.special[i.name]._default = function (t) { return !e || !e.apply || t.namespace && -1 !== t.namespace.indexOf("owl") ? t.namespace && -1 < t.namespace.indexOf("owl") : e.apply(this, arguments) }, l.event.special[i.name].owl = !0)) : i.type === h.Type.State && (this._states.tags[i.name] ? this._states.tags[i.name] = this._states.tags[i.name].concat(i.tags) : this._states.tags[i.name] = i.tags, this._states.tags[i.name] = l.grep(this._states.tags[i.name], l.proxy(function (t, e) { return l.inArray(t, this._states.tags[i.name]) === e }, this))) }, h.prototype.suppress = function (t) { l.each(t, l.proxy(function (t, e) { this._supress[e] = !0 }, this)) }, h.prototype.release = function (t) { l.each(t, l.proxy(function (t, e) { delete this._supress[e] }, this)) }, h.prototype.pointer = function (t) { var e = { x: null, y: null }; return (t = (t = t.originalEvent || t || i.event).touches && t.touches.length ? t.touches[0] : t.changedTouches && t.changedTouches.length ? t.changedTouches[0] : t).pageX ? (e.x = t.pageX, e.y = t.pageY) : (e.x = t.clientX, e.y = t.clientY), e }, h.prototype.isNumeric = function (t) { return !isNaN(parseFloat(t)) }, h.prototype.difference = function (t, e) { return { x: t.x - e.x, y: t.y - e.y } }, l.fn.owlCarousel = function (e) { var n = Array.prototype.slice.call(arguments, 1); return this.each(function () { var t = l(this), i = t.data("owl.carousel"); i || (i = new h(this, "object" == typeof e && e), t.data("owl.carousel", i), l.each(["next", "prev", "to", "destroy", "refresh", "replace", "add", "remove"], function (t, e) { i.register({ type: h.Type.Event, name: e }), i.$element.on(e + ".owl.carousel.core", l.proxy(function (t) { t.namespace && t.relatedTarget !== this && (this.suppress([e]), i[e].apply(this, [].slice.call(arguments, 1)), this.release([e])) }, i)) })), "string" == typeof e && "_" !== e.charAt(0) && i[e].apply(i, n) }) }, l.fn.owlCarousel.Constructor = h }(window.Zepto || window.jQuery, window, document), function (e, i) { var n = function (t) { this._core = t, this._interval = null, this._visible = null, this._handlers = { "initialized.owl.carousel": e.proxy(function (t) { t.namespace && this._core.settings.autoRefresh && this.watch() }, this) }, this._core.options = e.extend({}, n.Defaults, this._core.options), this._core.$element.on(this._handlers) }; n.Defaults = { autoRefresh: !0, autoRefreshInterval: 500 }, n.prototype.watch = function () { this._interval || (this._visible = this._core.isVisible(), this._interval = i.setInterval(e.proxy(this.refresh, this), this._core.settings.autoRefreshInterval)) }, n.prototype.refresh = function () { this._core.isVisible() !== this._visible && (this._visible = !this._visible, this._core.$element.toggleClass("owl-hidden", !this._visible), this._visible && this._core.invalidate("width") && this._core.refresh()) }, n.prototype.destroy = function () { var t, e; for (t in i.clearInterval(this._interval), this._handlers) this._core.$element.off(t, this._handlers[t]); for (e in Object.getOwnPropertyNames(this)) "function" != typeof this[e] && (this[e] = null) }, e.fn.owlCarousel.Constructor.Plugins.AutoRefresh = n }(window.Zepto || window.jQuery, window, document), function (a, s) { var e = function (t) { this._core = t, this._loaded = [], this._handlers = { "initialized.owl.carousel change.owl.carousel resized.owl.carousel": a.proxy(function (t) { if (t.namespace && this._core.settings && this._core.settings.lazyLoad && (t.property && "position" == t.property.name || "initialized" == t.type)) { var e = this._core.settings, i = e.center && Math.ceil(e.items / 2) || e.items, n = e.center && -1 * i || 0, s = (t.property && void 0 !== t.property.value ? t.property.value : this._core.current()) + n, o = this._core.clones().length, r = a.proxy(function (t, e) { this.load(e) }, this); for (0 < e.lazyLoadEager && (i += e.lazyLoadEager, e.loop && (s -= e.lazyLoadEager, i++)); n++ < i;)this.load(o / 2 + this._core.relative(s)), o && a.each(this._core.clones(this._core.relative(s)), r), s++ } }, this) }, this._core.options = a.extend({}, e.Defaults, this._core.options), this._core.$element.on(this._handlers) }; e.Defaults = { lazyLoad: !1, lazyLoadEager: 0 }, e.prototype.load = function (t) { var e = this._core.$stage.children().eq(t), t = e && e.find(".owl-lazy"); !t || -1 < a.inArray(e.get(0), this._loaded) || (t.each(a.proxy(function (t, e) { var i = a(e), n = 1 < s.devicePixelRatio && i.attr("data-src-retina") || i.attr("data-src") || i.attr("data-srcset"); this._core.trigger("load", { element: i, url: n }, "lazy"), i.is("img") ? i.one("load.owl.lazy", a.proxy(function () { i.css("opacity", 1), this._core.trigger("loaded", { element: i, url: n }, "lazy") }, this)).attr("src", n) : i.is("source") ? i.one("load.owl.lazy", a.proxy(function () { this._core.trigger("loaded", { element: i, url: n }, "lazy") }, this)).attr("srcset", n) : ((e = new Image).onload = a.proxy(function () { i.css({ "background-image": 'url("' + n + '")', opacity: "1" }), this._core.trigger("loaded", { element: i, url: n }, "lazy") }, this), e.src = n) }, this)), this._loaded.push(e.get(0))) }, e.prototype.destroy = function () { var t, e; for (t in this.handlers) this._core.$element.off(t, this.handlers[t]); for (e in Object.getOwnPropertyNames(this)) "function" != typeof this[e] && (this[e] = null) }, a.fn.owlCarousel.Constructor.Plugins.Lazy = e }(window.Zepto || window.jQuery, window, document), function (s, i) { var n = function (t) { this._core = t, this._previousHeight = null, this._handlers = { "initialized.owl.carousel refreshed.owl.carousel": s.proxy(function (t) { t.namespace && this._core.settings.autoHeight && this.update() }, this), "changed.owl.carousel": s.proxy(function (t) { t.namespace && this._core.settings.autoHeight && "position" === t.property.name && this.update() }, this), "loaded.owl.lazy": s.proxy(function (t) { t.namespace && this._core.settings.autoHeight && t.element.closest("." + this._core.settings.itemClass).index() === this._core.current() && this.update() }, this) }, this._core.options = s.extend({}, n.Defaults, this._core.options), this._core.$element.on(this._handlers), this._intervalId = null; var e = this; s(i).on("load", function () { e._core.settings.autoHeight && e.update() }), s(i).resize(function () { e._core.settings.autoHeight && (null != e._intervalId && clearTimeout(e._intervalId), e._intervalId = setTimeout(function () { e.update() }, 250)) }) }; n.Defaults = { autoHeight: !1, autoHeightClass: "owl-height" }, n.prototype.update = function () { var t = this._core._current, e = t + this._core.settings.items, i = this._core.settings.lazyLoad, t = this._core.$stage.children().toArray().slice(t, e), n = [], e = 0; s.each(t, function (t, e) { n.push(s(e).height()) }), (e = Math.max.apply(null, n)) <= 1 && i && this._previousHeight && (e = this._previousHeight), this._previousHeight = e, this._core.$stage.parent().height(e).addClass(this._core.settings.autoHeightClass) }, n.prototype.destroy = function () { var t, e; for (t in this._handlers) this._core.$element.off(t, this._handlers[t]); for (e in Object.getOwnPropertyNames(this)) "function" != typeof this[e] && (this[e] = null) }, s.fn.owlCarousel.Constructor.Plugins.AutoHeight = n }(window.Zepto || window.jQuery, window, document), function (c, e) { var i = function (t) { this._core = t, this._videos = {}, this._playing = null, this._handlers = { "initialized.owl.carousel": c.proxy(function (t) { t.namespace && this._core.register({ type: "state", name: "playing", tags: ["interacting"] }) }, this), "resize.owl.carousel": c.proxy(function (t) { t.namespace && this._core.settings.video && this.isInFullScreen() && t.preventDefault() }, this), "refreshed.owl.carousel": c.proxy(function (t) { t.namespace && this._core.is("resizing") && this._core.$stage.find(".cloned .owl-video-frame").remove() }, this), "changed.owl.carousel": c.proxy(function (t) { t.namespace && "position" === t.property.name && this._playing && this.stop() }, this), "prepared.owl.carousel": c.proxy(function (t) { var e; !t.namespace || (e = c(t.content).find(".owl-video")).length && (e.css("display", "none"), this.fetch(e, c(t.content))) }, this) }, this._core.options = c.extend({}, i.Defaults, this._core.options), this._core.$element.on(this._handlers), this._core.$element.on("click.owl.video", ".owl-video-play-icon", c.proxy(function (t) { this.play(t) }, this)) }; i.Defaults = { video: !1, videoHeight: !1, videoWidth: !1 }, i.prototype.fetch = function (t, e) { var i = t.attr("data-vimeo-id") ? "vimeo" : t.attr("data-vzaar-id") ? "vzaar" : "youtube", n = t.attr("data-vimeo-id") || t.attr("data-youtube-id") || t.attr("data-vzaar-id"), s = t.attr("data-width") || this._core.settings.videoWidth, o = t.attr("data-height") || this._core.settings.videoHeight, r = t.attr("href"); if (!r) throw new Error("Missing video URL."); if (-1 < (n = r.match(/(http:|https:|)\/\/(player.|www.|app.)?(vimeo\.com|youtu(be\.com|\.be|be\.googleapis\.com|be\-nocookie\.com)|vzaar\.com)\/(video\/|videos\/|embed\/|channels\/.+\/|groups\/.+\/|watch\?v=|v\/)?([A-Za-z0-9._%-]*)(\&\S+)?/))[3].indexOf("youtu")) i = "youtube"; else if (-1 < n[3].indexOf("vimeo")) i = "vimeo"; else { if (!(-1 < n[3].indexOf("vzaar"))) throw new Error("Video URL not supported."); i = "vzaar" } n = n[6], this._videos[r] = { type: i, id: n, width: s, height: o }, e.attr("data-video", r), this.thumbnail(t, this._videos[r]) }, i.prototype.thumbnail = function (e, t) { function i(t) { n = h.lazyLoad ? c("<div/>", { class: "owl-video-tn " + l, srcType: t }) : c("<div/>", { class: "owl-video-tn", style: "opacity:1;background-image:url(" + t + ")" }), e.after(n), e.after('<div class="owl-video-play-icon"></div>') } var n, s, o = t.width && t.height ? "width:" + t.width + "px;height:" + t.height + "px;" : "", r = e.find("img"), a = "src", l = "", h = this._core.settings; if (e.wrap(c("<div/>", { class: "owl-video-wrapper", style: o })), this._core.settings.lazyLoad && (a = "data-src", l = "owl-lazy"), r.length) return i(r.attr(a)), r.remove(), !1; "youtube" === t.type ? (s = "//img.youtube.com/vi/" + t.id + "/hqdefault.jpg", i(s)) : "vimeo" === t.type ? c.ajax({ type: "GET", url: "//vimeo.com/api/v2/video/" + t.id + ".json", jsonp: "callback", dataType: "jsonp", success: function (t) { s = t[0].thumbnail_large, i(s) } }) : "vzaar" === t.type && c.ajax({ type: "GET", url: "//vzaar.com/api/videos/" + t.id + ".json", jsonp: "callback", dataType: "jsonp", success: function (t) { s = t.framegrab_url, i(s) } }) }, i.prototype.stop = function () { this._core.trigger("stop", null, "video"), this._playing.find(".owl-video-frame").remove(), this._playing.removeClass("owl-video-playing"), this._playing = null, this._core.leave("playing"), this._core.trigger("stopped", null, "video") }, i.prototype.play = function (t) { var e = c(t.target).closest("." + this._core.settings.itemClass), i = this._videos[e.attr("data-video")], n = i.width || "100%", s = i.height || this._core.$stage.height(); this._playing || (this._core.enter("playing"), this._core.trigger("play", null, "video"), e = this._core.items(this._core.relative(e.index())), this._core.reset(e.index()), (t = c('<iframe frameborder="0" allowfullscreen mozallowfullscreen webkitAllowFullScreen ></iframe>')).attr("height", s), t.attr("width", n), "youtube" === i.type ? t.attr("src", "//www.youtube.com/embed/" + i.id + "?autoplay=1&rel=0&v=" + i.id) : "vimeo" === i.type ? t.attr("src", "//player.vimeo.com/video/" + i.id + "?autoplay=1") : "vzaar" === i.type && t.attr("src", "//view.vzaar.com/" + i.id + "/player?autoplay=true"), c(t).wrap('<div class="owl-video-frame" />').insertAfter(e.find(".owl-video")), this._playing = e.addClass("owl-video-playing")) }, i.prototype.isInFullScreen = function () { var t = e.fullscreenElement || e.mozFullScreenElement || e.webkitFullscreenElement; return t && c(t).parent().hasClass("owl-video-frame") }, i.prototype.destroy = function () { var t, e; for (t in this._core.$element.off("click.owl.video"), this._handlers) this._core.$element.off(t, this._handlers[t]); for (e in Object.getOwnPropertyNames(this)) "function" != typeof this[e] && (this[e] = null) }, c.fn.owlCarousel.Constructor.Plugins.Video = i }(window.Zepto || window.jQuery, (window, document)), function (r) { var e = function (t) { this.core = t, this.core.options = r.extend({}, e.Defaults, this.core.options), this.swapping = !0, this.previous = void 0, this.next = void 0, this.handlers = { "change.owl.carousel": r.proxy(function (t) { t.namespace && "position" == t.property.name && (this.previous = this.core.current(), this.next = t.property.value) }, this), "drag.owl.carousel dragged.owl.carousel translated.owl.carousel": r.proxy(function (t) { t.namespace && (this.swapping = "translated" == t.type) }, this), "translate.owl.carousel": r.proxy(function (t) { t.namespace && this.swapping && (this.core.options.animateOut || this.core.options.animateIn) && this.swap() }, this) }, this.core.$element.on(this.handlers) }; e.Defaults = { animateOut: !1, animateIn: !1 }, e.prototype.swap = function () { var t, e, i, n, s, o; 1 === this.core.settings.items && r.support.animation && r.support.transition && (this.core.speed(0), e = r.proxy(this.clear, this), i = this.core.$stage.children().eq(this.previous), n = this.core.$stage.children().eq(this.next), s = this.core.settings.animateIn, o = this.core.settings.animateOut, this.core.current() !== this.previous && (o && (t = this.core.coordinates(this.previous) - this.core.coordinates(this.next), i.one(r.support.animation.end, e).css({ left: t + "px" }).addClass("animated owl-animated-out").addClass(o)), s && n.one(r.support.animation.end, e).addClass("animated owl-animated-in").addClass(s))) }, e.prototype.clear = function (t) { r(t.target).css({ left: "" }).removeClass("animated owl-animated-out owl-animated-in").removeClass(this.core.settings.animateIn).removeClass(this.core.settings.animateOut), this.core.onTransitionEnd() }, e.prototype.destroy = function () { var t, e; for (t in this.handlers) this.core.$element.off(t, this.handlers[t]); for (e in Object.getOwnPropertyNames(this)) "function" != typeof this[e] && (this[e] = null) }, r.fn.owlCarousel.Constructor.Plugins.Animate = e }(window.Zepto || window.jQuery, (window, document)), function (n, s, e) { var i = function (t) { this._core = t, this._call = null, this._time = 0, this._timeout = 0, this._paused = !0, this._handlers = { "changed.owl.carousel": n.proxy(function (t) { t.namespace && "settings" === t.property.name ? this._core.settings.autoplay ? this.play() : this.stop() : t.namespace && "position" === t.property.name && this._paused && (this._time = 0) }, this), "initialized.owl.carousel": n.proxy(function (t) { t.namespace && this._core.settings.autoplay && this.play() }, this), "play.owl.autoplay": n.proxy(function (t, e, i) { t.namespace && this.play(e, i) }, this), "stop.owl.autoplay": n.proxy(function (t) { t.namespace && this.stop() }, this), "mouseover.owl.autoplay": n.proxy(function () { this._core.settings.autoplayHoverPause && this._core.is("rotating") && this.pause() }, this), "mouseleave.owl.autoplay": n.proxy(function () { this._core.settings.autoplayHoverPause && this._core.is("rotating") && this.play() }, this), "touchstart.owl.core": n.proxy(function () { this._core.settings.autoplayHoverPause && this._core.is("rotating") && this.pause() }, this), "touchend.owl.core": n.proxy(function () { this._core.settings.autoplayHoverPause && this.play() }, this) }, this._core.$element.on(this._handlers), this._core.options = n.extend({}, i.Defaults, this._core.options) }; i.Defaults = { autoplay: !1, autoplayTimeout: 5e3, autoplayHoverPause: !1, autoplaySpeed: !1 }, i.prototype._next = function (t) { this._call = s.setTimeout(n.proxy(this._next, this, t), this._timeout * (Math.round(this.read() / this._timeout) + 1) - this.read()), this._core.is("interacting") || e.hidden || this._core.next(t || this._core.settings.autoplaySpeed) }, i.prototype.read = function () { return (new Date).getTime() - this._time }, i.prototype.play = function (t, e) { var i; this._core.is("rotating") || this._core.enter("rotating"), t = t || this._core.settings.autoplayTimeout, i = Math.min(this._time % (this._timeout || t), t), this._paused ? (this._time = this.read(), this._paused = !1) : s.clearTimeout(this._call), this._time += this.read() % t - i, this._timeout = t, this._call = s.setTimeout(n.proxy(this._next, this, e), t - i) }, i.prototype.stop = function () { this._core.is("rotating") && (this._time = 0, this._paused = !0, s.clearTimeout(this._call), this._core.leave("rotating")) }, i.prototype.pause = function () { this._core.is("rotating") && !this._paused && (this._time = this.read(), this._paused = !0, s.clearTimeout(this._call)) }, i.prototype.destroy = function () { var t, e; for (t in this.stop(), this._handlers) this._core.$element.off(t, this._handlers[t]); for (e in Object.getOwnPropertyNames(this)) "function" != typeof this[e] && (this[e] = null) }, n.fn.owlCarousel.Constructor.Plugins.autoplay = i }(window.Zepto || window.jQuery, window, document), function (s) { "use strict"; var e = function (t) { this._core = t, this._initialized = !1, this._pages = [], this._controls = {}, this._templates = [], this.$element = this._core.$element, this._overrides = { next: this._core.next, prev: this._core.prev, to: this._core.to }, this._handlers = { "prepared.owl.carousel": s.proxy(function (t) { t.namespace && this._core.settings.dotsData && this._templates.push('<div class="' + this._core.settings.dotClass + '">' + s(t.content).find("[data-dot]").addBack("[data-dot]").attr("data-dot") + "</div>") }, this), "added.owl.carousel": s.proxy(function (t) { t.namespace && this._core.settings.dotsData && this._templates.splice(t.position, 0, this._templates.pop()) }, this), "remove.owl.carousel": s.proxy(function (t) { t.namespace && this._core.settings.dotsData && this._templates.splice(t.position, 1) }, this), "changed.owl.carousel": s.proxy(function (t) { t.namespace && "position" == t.property.name && this.draw() }, this), "initialized.owl.carousel": s.proxy(function (t) { t.namespace && !this._initialized && (this._core.trigger("initialize", null, "navigation"), this.initialize(), this.update(), this.draw(), this._initialized = !0, this._core.trigger("initialized", null, "navigation")) }, this), "refreshed.owl.carousel": s.proxy(function (t) { t.namespace && this._initialized && (this._core.trigger("refresh", null, "navigation"), this.update(), this.draw(), this._core.trigger("refreshed", null, "navigation")) }, this) }, this._core.options = s.extend({}, e.Defaults, this._core.options), this.$element.on(this._handlers) }; e.Defaults = { nav: !1, navText: ['<span aria-label="Previous">&#x2039;</span>', '<span aria-label="Next">&#x203a;</span>'], navSpeed: !1, navElement: 'button type="button" role="presentation"', navContainer: !1, navContainerClass: "owl-nav", navClass: ["owl-prev", "owl-next"], slideBy: 1, dotClass: "owl-dot", dotsClass: "owl-dots", dots: !0, dotsEach: !1, dotsData: !1, dotsSpeed: !1, dotsContainer: !1 }, e.prototype.initialize = function () { var t, i = this._core.settings; for (t in this._controls.$relative = (i.navContainer ? s(i.navContainer) : s("<div>").addClass(i.navContainerClass).appendTo(this.$element)).addClass("disabled"), this._controls.$previous = s("<" + i.navElement + ">").addClass(i.navClass[0]).html(i.navText[0]).prependTo(this._controls.$relative).on("click", s.proxy(function (t) { this.prev(i.navSpeed) }, this)), this._controls.$next = s("<" + i.navElement + ">").addClass(i.navClass[1]).html(i.navText[1]).appendTo(this._controls.$relative).on("click", s.proxy(function (t) { this.next(i.navSpeed) }, this)), i.dotsData || (this._templates = [s('<button role="button">').addClass(i.dotClass).append(s("<span>")).prop("outerHTML")]), this._controls.$absolute = (i.dotsContainer ? s(i.dotsContainer) : s("<div>").addClass(i.dotsClass).appendTo(this.$element)).addClass("disabled"), this._controls.$absolute.on("click", "button", s.proxy(function (t) { var e = (s(t.target).parent().is(this._controls.$absolute) ? s(t.target) : s(t.target).parent()).index(); t.preventDefault(), this.to(e, i.dotsSpeed) }, this)), this._overrides) this._core[t] = s.proxy(this[t], this) }, e.prototype.destroy = function () { var t, e, i, n, s = this._core.settings; for (t in this._handlers) this.$element.off(t, this._handlers[t]); for (e in this._controls) "$relative" === e && s.navContainer ? this._controls[e].html("") : this._controls[e].remove(); for (n in this.overides) this._core[n] = this._overrides[n]; for (i in Object.getOwnPropertyNames(this)) "function" != typeof this[i] && (this[i] = null) }, e.prototype.update = function () { var t, e, i = this._core.clones().length / 2, n = i + this._core.items().length, s = this._core.maximum(!0), o = this._core.settings, r = o.center || o.autoWidth || o.dotsData ? 1 : o.dotsEach || o.items; if ("page" !== o.slideBy && (o.slideBy = Math.min(o.slideBy, o.items)), o.dots || "page" == o.slideBy) for (this._pages = [], t = i, e = 0; t < n; t++) { if (r <= e || 0 === e) { if (this._pages.push({ start: Math.min(s, t - i), end: t - i + r - 1 }), Math.min(s, t - i) === s) break; e = 0, 0 } e += this._core.mergers(this._core.relative(t)) } }, e.prototype.draw = function () { var t = this._core.settings, e = this._core.items().length <= t.items, i = this._core.relative(this._core.current()), n = t.loop || t.rewind; this._controls.$relative.toggleClass("disabled", !t.nav || e), t.nav && (this._controls.$previous.toggleClass("disabled", !n && i <= this._core.minimum(!0)), this._controls.$next.toggleClass("disabled", !n && i >= this._core.maximum(!0))), this._controls.$absolute.toggleClass("disabled", !t.dots || e), t.dots && (e = this._pages.length - this._controls.$absolute.children().length, t.dotsData && 0 != e ? this._controls.$absolute.html(this._templates.join("")) : 0 < e ? this._controls.$absolute.append(new Array(1 + e).join(this._templates[0])) : e < 0 && this._controls.$absolute.children().slice(e).remove(), this._controls.$absolute.find(".active").removeClass("active"), this._controls.$absolute.children().eq(s.inArray(this.current(), this._pages)).addClass("active")) }, e.prototype.onTrigger = function (t) { var e = this._core.settings; t.page = { index: s.inArray(this.current(), this._pages), count: this._pages.length, size: e && (e.center || e.autoWidth || e.dotsData ? 1 : e.dotsEach || e.items) } }, e.prototype.current = function () { var i = this._core.relative(this._core.current()); return s.grep(this._pages, s.proxy(function (t, e) { return t.start <= i && t.end >= i }, this)).pop() }, e.prototype.getPosition = function (t) { var e, i, n = this._core.settings; return "page" == n.slideBy ? (e = s.inArray(this.current(), this._pages), i = this._pages.length, t ? ++e : --e, e = this._pages[(e % i + i) % i].start) : (e = this._core.relative(this._core.current()), i = this._core.items().length, t ? e += n.slideBy : e -= n.slideBy), e }, e.prototype.next = function (t) { s.proxy(this._overrides.to, this._core)(this.getPosition(!0), t) }, e.prototype.prev = function (t) { s.proxy(this._overrides.to, this._core)(this.getPosition(!1), t) }, e.prototype.to = function (t, e, i) { !i && this._pages.length ? (i = this._pages.length, s.proxy(this._overrides.to, this._core)(this._pages[(t % i + i) % i].start, e)) : s.proxy(this._overrides.to, this._core)(t, e) }, s.fn.owlCarousel.Constructor.Plugins.Navigation = e }(window.Zepto || window.jQuery, (window, document)), function (n, s) { "use strict"; var e = function (t) { this._core = t, this._hashes = {}, this.$element = this._core.$element, this._handlers = { "initialized.owl.carousel": n.proxy(function (t) { t.namespace && "URLHash" === this._core.settings.startPosition && n(s).trigger("hashchange.owl.navigation") }, this), "prepared.owl.carousel": n.proxy(function (t) { var e; !t.namespace || (e = n(t.content).find("[data-hash]").addBack("[data-hash]").attr("data-hash")) && (this._hashes[e] = t.content) }, this), "changed.owl.carousel": n.proxy(function (t) { var i; t.namespace && "position" === t.property.name && (i = this._core.items(this._core.relative(this._core.current())), (t = n.map(this._hashes, function (t, e) { return t === i ? e : null }).join()) && s.location.hash.slice(1) !== t && (s.location.hash = t)) }, this) }, this._core.options = n.extend({}, e.Defaults, this._core.options), this.$element.on(this._handlers), n(s).on("hashchange.owl.navigation", n.proxy(function (t) { var e = s.location.hash.substring(1), i = this._core.$stage.children(), e = this._hashes[e] && i.index(this._hashes[e]); void 0 !== e && e !== this._core.current() && this._core.to(this._core.relative(e), !1, !0) }, this)) }; e.Defaults = { URLhashListener: !1 }, e.prototype.destroy = function () { var t, e; for (t in n(s).off("hashchange.owl.navigation"), this._handlers) this._core.$element.off(t, this._handlers[t]); for (e in Object.getOwnPropertyNames(this)) "function" != typeof this[e] && (this[e] = null) }, n.fn.owlCarousel.Constructor.Plugins.Hash = e }(window.Zepto || window.jQuery, window, document), function (s, o) { var r = s("<support>").get(0).style, a = "Webkit Moz O ms".split(" "), t = { transition: { end: { WebkitTransition: "webkitTransitionEnd", MozTransition: "transitionend", OTransition: "oTransitionEnd", transition: "transitionend" } }, animation: { end: { WebkitAnimation: "webkitAnimationEnd", MozAnimation: "animationend", OAnimation: "oAnimationEnd", animation: "animationend" } } }, e = function () { return !!l("transform") }, i = function () { return !!l("perspective") }, n = function () { return !!l("animation") }; function l(t, i) { var n = !1, e = t.charAt(0).toUpperCase() + t.slice(1); return s.each((t + " " + a.join(e + " ") + e).split(" "), function (t, e) { if (r[e] !== o) return n = !i || e, !1 }), n } function h(t) { return l(t, !0) } !function () { return !!l("transition") }() || (s.support.transition = new String(h("transition")), s.support.transition.end = t.transition.end[s.support.transition]), n() && (s.support.animation = new String(h("animation")), s.support.animation.end = t.animation.end[s.support.animation]), e() && (s.support.transform = new String(h("transform")), s.support.transform3d = i()) }(window.Zepto || window.jQuery, (window, void document)), function (e) { "function" == typeof define && define.amd ? define(["jquery"], function (t) { e(t, window, document) }) : "object" == typeof module && module.exports ? module.exports = e(require("jquery"), window, document) : e(jQuery, window, document) }(function (r, n, t, s) { "use strict"; var o = "countrySelect", i = 1, a = { defaultCountry: "", defaultStyling: "inside", excludeCountries: [], onlyCountries: [], preferredCountries: ["us", "gb"], responsiveDropdown: r(n).width() < 768 }, l = 38, h = 40, c = 13, u = 27, d = 8, p = 32, f = 65, g = 90; function m(t, e) { this.element = t, this.options = r.extend({}, a, e), this._defaults = a, this.ns = "." + o + i++, this._name = o, this.init() } r(n).on("load", function () { }), m.prototype = { init: function () { return this._processCountryData(), this._generateMarkup(), this._setInitialState(), this._initListeners(), this.autoCountryDeferred = new r.Deferred, this._initAutoCountry(), this.typedLetters = "", this.autoCountryDeferred }, _processCountryData: function () { this._setInstanceCountryData(), this._setPreferredCountries() }, _setInstanceCountryData: function () { var i, e, n = this; this.options.onlyCountries.length ? (i = [], r.each(this.options.onlyCountries, function (t, e) { e = n._getCountryData(e, !0); e && i.push(e) }), this.countries = i) : this.options.excludeCountries.length ? (e = this.options.excludeCountries.map(function (t) { return t.toLowerCase() }), this.countries = v.filter(function (t) { return -1 === e.indexOf(t.iso2) })) : this.countries = v }, _setPreferredCountries: function () { var i = this; this.preferredCountries = [], r.each(this.options.preferredCountries, function (t, e) { e = i._getCountryData(e, !1); e && i.preferredCountries.push(e) }) }, _generateMarkup: function () { this.countryInput = r(this.element); var t = "country-select"; this.options.defaultStyling && (t += " " + this.options.defaultStyling), this.countryInput.wrap(r("<div>", { class: t })); var e = r("<div>", { class: "flag-dropdown" }).insertAfter(this.countryInput), t = r("<div>", { class: "selected-flag" }).appendTo(e); this.selectedFlagInner = r("<div>", { class: "flag" }).appendTo(t), r("<div>", { class: "arrow" }).appendTo(t), this.countryList = r("<ul>", { class: "country-list v-hide" }).appendTo(e), this.preferredCountries.length && (this._appendListItems(this.preferredCountries, "preferred"), r("<li>", { class: "divider" }).appendTo(this.countryList)), this._appendListItems(this.countries, ""), this.countryCodeInput = r("#" + this.countryInput.attr("id") + "_code"), this.countryCodeInput || (this.countryCodeInput = r('<input type="hidden" id="' + this.countryInput.attr("id") + '_code" name="' + this.countryInput.attr("name") + '_code" value="" />'), this.countryCodeInput.insertAfter(this.countryInput)), this.dropdownHeight = this.countryList.outerHeight(), this.options.responsiveDropdown && r(n).resize(function () { r(".country-select").each(function () { var t = this.offsetWidth; r(this).find(".country-list").css("width", t + "px") }) }).resize(), this.countryList.removeClass("v-hide").addClass("hide"), this.countryListItems = this.countryList.children(".country") }, _appendListItems: function (t, i) { var n = ""; r.each(t, function (t, e) { n += '<li class="country ' + i + '" data-country-code="' + e.iso2 + '">', n += '<div class="flag ' + e.iso2 + '"></div>', n += '<span class="country-name">' + e.name + "</span>", n += "</li>" }), this.countryList.append(n) }, _setInitialState: function () { var t = !1; this.countryInput.val() && (t = this._updateFlagFromInputVal()); var e, i = this.countryCodeInput.val(); i && this.selectCountry(i), t || (e = this.options.defaultCountry && (e = this._getCountryData(this.options.defaultCountry, !1)) || (this.preferredCountries.length ? this.preferredCountries : this.countries)[0], this.defaultCountry = e.iso2) }, _initListeners: function () { var e = this; this.countryInput.on("keyup" + this.ns, function () { e._updateFlagFromInputVal() }), this.selectedFlagInner.parent().on("click" + this.ns, function (t) { e.countryList.hasClass("hide") && !e.countryInput.prop("disabled") && e._showDropdown() }), this.countryInput.on("blur" + this.ns, function () { e.countryInput.val() != e.getSelectedCountryData().name && e.setCountry(e.countryInput.val()), e.countryInput.val(e.getSelectedCountryData().name) }) }, _initAutoCountry: function () { "auto" === this.options.initialCountry ? this._loadAutoCountry() : (this.defaultCountry && this.selectCountry(this.defaultCountry), this.autoCountryDeferred.resolve()) }, _loadAutoCountry: function () { r.fn[o].autoCountry ? this.handleAutoCountry() : r.fn[o].startedLoadingAutoCountry || (r.fn[o].startedLoadingAutoCountry = !0, "function" == typeof this.options.geoIpLookup && this.options.geoIpLookup(function (t) { r.fn[o].autoCountry = t.toLowerCase(), setTimeout(function () { r(".country-select input").countrySelect("handleAutoCountry") }) })) }, _focus: function () { this.countryInput.focus(); var t, e = this.countryInput[0]; e.setSelectionRange && (t = this.countryInput.val().length, e.setSelectionRange(t, t)) }, _showDropdown: function () { this._setDropdownPosition(); var t = this.countryList.children(".active"); this._highlightListItem(t), this.countryList.removeClass("hide"), this._scrollTo(t), this._bindDropdownListeners(), this.selectedFlagInner.parent().children(".arrow").addClass("up") }, _setDropdownPosition: function () { var t = this.countryInput.offset().top, e = r(n).scrollTop(), i = t + this.countryInput.outerHeight() + this.dropdownHeight < e + r(n).height(), e = t - this.dropdownHeight > e, e = !i && e ? "-" + (this.dropdownHeight - 1) + "px" : ""; this.countryList.css("top", e) }, _bindDropdownListeners: function () { var e = this; this.countryList.on("mouseover" + this.ns, ".country", function (t) { e._highlightListItem(r(this)) }), this.countryList.on("click" + this.ns, ".country", function (t) { e._selectListItem(r(this)) }); var i = !0; r("html").on("click" + this.ns, function (t) { t.preventDefault(), i || e._closeDropdown(), i = !1 }), r(t).on("keydown" + this.ns, function (t) { t.preventDefault(), t.which == l || t.which == h ? e._handleUpDownKey(t.which) : t.which == c ? e._handleEnterKey() : t.which == u ? e._closeDropdown() : t.which >= f && t.which <= g || t.which === p ? (e.typedLetters += String.fromCharCode(t.which), e._filterCountries(e.typedLetters)) : t.which === d && (e.typedLetters = e.typedLetters.slice(0, -1), e._filterCountries(e.typedLetters)) }) }, _handleUpDownKey: function (t) { var e = this.countryList.children(".highlight").first(), e = t == l ? e.prev() : e.next(); e.length && (e.hasClass("divider") && (e = t == l ? e.prev() : e.next()), this._highlightListItem(e), this._scrollTo(e)) }, _handleEnterKey: function () { var t = this.countryList.children(".highlight").first(); t.length && this._selectListItem(t) }, _filterCountries: function (t) { var e, i = this.countryListItems.filter(function () { return 0 === r(this).text().toUpperCase().indexOf(t) && !r(this).hasClass("preferred") }); i.length && (i = (e = i.filter(".highlight").first()) && e.next() && 0 === e.next().text().toUpperCase().indexOf(t) ? e.next() : i.first(), this._highlightListItem(i), this._scrollTo(i)) }, _updateFlagFromInputVal: function () { var i = this, t = this.countryInput.val().replace(/(?=[() ])/g, "\\"); if (t) { for (var e = [], n = new RegExp("^" + t, "i"), s = 0; s < this.countries.length; s++)this.countries[s].name.match(n) && e.push(this.countries[s].iso2); var o = !1; return r.each(e, function (t, e) { i.selectedFlagInner.hasClass(e) && (o = !0) }), o || (this._selectFlag(e[0]), this.countryCodeInput.val(e[0]).trigger("change")), !0 } return !1 }, _highlightListItem: function (t) { this.countryListItems.removeClass("highlight"), t.addClass("highlight") }, _getCountryData: function (t, e) { for (var i = e ? v : this.countries, n = 0; n < i.length; n++)if (i[n].iso2 == t) return i[n]; return null }, _selectFlag: function (t) { if (!t) return !1; this.selectedFlagInner.attr("class", "flag " + t); var e = this._getCountryData(t); this.selectedFlagInner.parent().attr("title", e.name); t = this.countryListItems.children(".flag." + t).first().parent(); this.countryListItems.removeClass("active"), t.addClass("active") }, _selectListItem: function (t) { t = t.attr("data-country-code"); this._selectFlag(t), this._closeDropdown(), this._updateName(t), this.countryInput.trigger("change"), this.countryCodeInput.trigger("change"), this._focus() }, _closeDropdown: function () { this.countryList.addClass("hide"), this.selectedFlagInner.parent().children(".arrow").removeClass("up"), r(t).off("keydown" + this.ns), r("html").off("click" + this.ns), this.countryList.off(this.ns), this.typedLetters = "" }, _scrollTo: function (t) { var e, i, n, s, o, r, a; t && t.offset() && (i = (e = this.countryList).height(), s = (n = e.offset().top) + i, a = t.outerHeight(), r = (o = t.offset().top) + a, t = o - n + e.scrollTop(), o < n ? e.scrollTop(t) : s < r && (a = i - a, e.scrollTop(t - a))) }, _updateName: function (t) { this.countryCodeInput.val(t).trigger("change"), this.countryInput.val(this._getCountryData(t).name) }, handleAutoCountry: function () { "auto" === this.options.initialCountry && (this.defaultCountry = r.fn[o].autoCountry, this.countryInput.val() || this.selectCountry(this.defaultCountry), this.autoCountryDeferred.resolve()) }, getSelectedCountryData: function () { var t = this.selectedFlagInner.attr("class").split(" ")[1]; return this._getCountryData(t) }, selectCountry: function (t) { t = t.toLowerCase(), this.selectedFlagInner.hasClass(t) || (this._selectFlag(t), this._updateName(t)) }, setCountry: function (t) { this.countryInput.val(t), this._updateFlagFromInputVal() }, destroy: function () { this.countryInput.off(this.ns), this.selectedFlagInner.parent().off(this.ns), this.countryInput.parent().before(this.countryInput).remove() } }, r.fn[o] = function (e) { var i, n = arguments; return e === s || "object" == typeof e ? this.each(function () { r.data(this, "plugin_" + o) || r.data(this, "plugin_" + o, new m(this, e)) }) : "string" == typeof e && "_" !== e[0] && "init" !== e ? (this.each(function () { var t = r.data(this, "plugin_" + o); t instanceof m && "function" == typeof t[e] && (i = t[e].apply(t, Array.prototype.slice.call(n, 1))), "destroy" === e && r.data(this, "plugin_" + o, null) }), i !== s ? i : this) : void 0 }, r.fn[o].getCountryData = function () { return v }, r.fn[o].setCountryData = function (t) { v = t }; var v = r.each([{ n: "Afghanistan (‫افغانستان‬‎)", i: "af" }, { n: "Ã…land Islands (Ã…land)", i: "ax" }, { n: "Albania (Shqipëri)", i: "al" }, { n: "Algeria (‫الجزائر‬‎)", i: "dz" }, { n: "American Samoa", i: "as" }, { n: "Andorra", i: "ad" }, { n: "Angola", i: "ao" }, { n: "Anguilla", i: "ai" }, { n: "Antigua and Barbuda", i: "ag" }, { n: "Argentina", i: "ar" }, { n: "Armenia (Õ€Õ¡ÕµÕ¡Õ½Õ¿Õ¡Õ¶)", i: "am" }, { n: "Aruba", i: "aw" }, { n: "Australia", i: "au" }, { n: "Austria (Österreich)", i: "at" }, { n: "Azerbaijan (AzÉ™rbaycan)", i: "az" }, { n: "Bahamas", i: "bs" }, { n: "Bahrain (‫البحرين‬‎)", i: "bh" }, { n: "Bangladesh (বাংলাদেশ)", i: "bd" }, { n: "Barbados", i: "bb" }, { n: "Belarus (Беларусь)", i: "by" }, { n: "Belgium (België)", i: "be" }, { n: "Belize", i: "bz" }, { n: "Benin (Bénin)", i: "bj" }, { n: "Bermuda", i: "bm" }, { n: "Bhutan (འབྲུག)", i: "bt" }, { n: "Bolivia", i: "bo" }, { n: "Bosnia and Herzegovina (Босна и Херцеговина)", i: "ba" }, { n: "Botswana", i: "bw" }, { n: "Brazil (Brasil)", i: "br" }, { n: "British Indian Ocean Territory", i: "io" }, { n: "British Virgin Islands", i: "vg" }, { n: "Brunei", i: "bn" }, { n: "Bulgaria (България)", i: "bg" }, { n: "Burkina Faso", i: "bf" }, { n: "Burundi (Uburundi)", i: "bi" }, { n: "Cambodia (កម្ពុជា)", i: "kh" }, { n: "Cameroon (Cameroun)", i: "cm" }, { n: "Canada", i: "ca" }, { n: "Cape Verde (Kabu Verdi)", i: "cv" }, { n: "Caribbean Netherlands", i: "bq" }, { n: "Cayman Islands", i: "ky" }, { n: "Central African Republic (République Centrafricaine)", i: "cf" }, { n: "Chad (Tchad)", i: "td" }, { n: "Chile", i: "cl" }, { n: "China (中国)", i: "cn" }, { n: "Christmas Island", i: "cx" }, { n: "Cocos (Keeling) Islands (Kepulauan Cocos (Keeling))", i: "cc" }, { n: "Colombia", i: "co" }, { n: "Comoros (‫جزر القمر‬‎)", i: "km" }, { n: "Congo (DRC) (Jamhuri ya Kidemokrasia ya Kongo)", i: "cd" }, { n: "Congo (Republic) (Congo-Brazzaville)", i: "cg" }, { n: "Cook Islands", i: "ck" }, { n: "Costa Rica", i: "cr" }, { n: "Côte d’Ivoire", i: "ci" }, { n: "Croatia (Hrvatska)", i: "hr" }, { n: "Cuba", i: "cu" }, { n: "Curaçao", i: "cw" }, { n: "Cyprus (Κύπρος)", i: "cy" }, { n: "Czech Republic (ÄŒeská republika)", i: "cz" }, { n: "Denmark (Danmark)", i: "dk" }, { n: "Djibouti", i: "dj" }, { n: "Dominica", i: "dm" }, { n: "Dominican Republic (República Dominicana)", i: "do" }, { n: "Ecuador", i: "ec" }, { n: "Egypt (‫مصر‬‎)", i: "eg" }, { n: "El Salvador", i: "sv" }, { n: "Equatorial Guinea (Guinea Ecuatorial)", i: "gq" }, { n: "Eritrea", i: "er" }, { n: "Estonia (Eesti)", i: "ee" }, { n: "Ethiopia", i: "et" }, { n: "Falkland Islands (Islas Malvinas)", i: "fk" }, { n: "Faroe Islands (Føroyar)", i: "fo" }, { n: "Fiji", i: "fj" }, { n: "Finland (Suomi)", i: "fi" }, { n: "France", i: "fr" }, { n: "French Guiana (Guyane française)", i: "gf" }, { n: "French Polynesia (Polynésie française)", i: "pf" }, { n: "Gabon", i: "ga" }, { n: "Gambia", i: "gm" }, { n: "Georgia (საქართველო)", i: "ge" }, { n: "Germany (Deutschland)", i: "de" }, { n: "Ghana (Gaana)", i: "gh" }, { n: "Gibraltar", i: "gi" }, { n: "Greece (Ελλάδα)", i: "gr" }, { n: "Greenland (Kalaallit Nunaat)", i: "gl" }, { n: "Grenada", i: "gd" }, { n: "Guadeloupe", i: "gp" }, { n: "Guam", i: "gu" }, { n: "Guatemala", i: "gt" }, { n: "Guernsey", i: "gg" }, { n: "Guinea (Guinée)", i: "gn" }, { n: "Guinea-Bissau (Guiné Bissau)", i: "gw" }, { n: "Guyana", i: "gy" }, { n: "Haiti", i: "ht" }, { n: "Honduras", i: "hn" }, { n: "Hong Kong (香港)", i: "hk" }, { n: "Hungary (Magyarország)", i: "hu" }, { n: "Iceland (Ísland)", i: "is" }, { n: "India (भारत)", i: "in" }, { n: "Indonesia", i: "id" }, { n: "Iran (‫ایران‬‎)", i: "ir" }, { n: "Iraq (‫العراق‬‎)", i: "iq" }, { n: "Ireland", i: "ie" }, { n: "Isle of Man", i: "im" }, { n: "Israel (‫ישראל‬‎)", i: "il" }, { n: "Italy (Italia)", i: "it" }, { n: "Jamaica", i: "jm" }, { n: "Japan (日本)", i: "jp" }, { n: "Jersey", i: "je" }, { n: "Jordan (‫الأردن‬‎)", i: "jo" }, { n: "Kazakhstan (Казахстан)", i: "kz" }, { n: "Kenya", i: "ke" }, { n: "Kiribati", i: "ki" }, { n: "Kosovo (Kosovë)", i: "xk" }, { n: "Kuwait (‫الكويت‬‎)", i: "kw" }, { n: "Kyrgyzstan (Кыргызстан)", i: "kg" }, { n: "Laos (ລາວ)", i: "la" }, { n: "Latvia (Latvija)", i: "lv" }, { n: "Lebanon (‫لبنان‬‎)", i: "lb" }, { n: "Lesotho", i: "ls" }, { n: "Liberia", i: "lr" }, { n: "Libya (‫ليبيا‬‎)", i: "ly" }, { n: "Liechtenstein", i: "li" }, { n: "Lithuania (Lietuva)", i: "lt" }, { n: "Luxembourg", i: "lu" }, { n: "Macau (澳門)", i: "mo" }, { n: "Macedonia (FYROM) (Македонија)", i: "mk" }, { n: "Madagascar (Madagasikara)", i: "mg" }, { n: "Malawi", i: "mw" }, { n: "Malaysia", i: "my" }, { n: "Maldives", i: "mv" }, { n: "Mali", i: "ml" }, { n: "Malta", i: "mt" }, { n: "Marshall Islands", i: "mh" }, { n: "Martinique", i: "mq" }, { n: "Mauritania (‫موريتانيا‬‎)", i: "mr" }, { n: "Mauritius (Moris)", i: "mu" }, { n: "Mayotte", i: "yt" }, { n: "Mexico (México)", i: "mx" }, { n: "Micronesia", i: "fm" }, { n: "Moldova (Republica Moldova)", i: "md" }, { n: "Monaco", i: "mc" }, { n: "Mongolia (Монгол)", i: "mn" }, { n: "Montenegro (Crna Gora)", i: "me" }, { n: "Montserrat", i: "ms" }, { n: "Morocco (‫المغرب‬‎)", i: "ma" }, { n: "Mozambique (Moçambique)", i: "mz" }, { n: "Myanmar (Burma) (မြန်မာ)", i: "mm" }, { n: "Namibia (Namibië)", i: "na" }, { n: "Nauru", i: "nr" }, { n: "Nepal (नेपाल)", i: "np" }, { n: "Netherlands (Nederland)", i: "nl" }, { n: "New Caledonia (Nouvelle-Calédonie)", i: "nc" }, { n: "New Zealand", i: "nz" }, { n: "Nicaragua", i: "ni" }, { n: "Niger (Nijar)", i: "ne" }, { n: "Nigeria", i: "ng" }, { n: "Niue", i: "nu" }, { n: "Norfolk Island", i: "nf" }, { n: "North Korea (ì¡°ì„  민주주의 인민 공화국)", i: "kp" }, { n: "Northern Mariana Islands", i: "mp" }, { n: "Norway (Norge)", i: "no" }, { n: "Oman (‫عُمان‬‎)", i: "om" }, { n: "Pakistan (‫پاکستان‬‎)", i: "pk" }, { n: "Palau", i: "pw" }, { n: "Palestine (‫فلسطين‬‎)", i: "ps" }, { n: "Panama (Panamá)", i: "pa" }, { n: "Papua New Guinea", i: "pg" }, { n: "Paraguay", i: "py" }, { n: "Peru (Perú)", i: "pe" }, { n: "Philippines", i: "ph" }, { n: "Pitcairn Islands", i: "pn" }, { n: "Poland (Polska)", i: "pl" }, { n: "Portugal", i: "pt" }, { n: "Puerto Rico", i: "pr" }, { n: "Qatar (‫قطر‬‎)", i: "qa" }, { n: "Réunion (La Réunion)", i: "re" }, { n: "Romania (România)", i: "ro" }, { n: "Russia (Россия)", i: "ru" }, { n: "Rwanda", i: "rw" }, { n: "Saint Barthélemy (Saint-Barthélemy)", i: "bl" }, { n: "Saint Helena", i: "sh" }, { n: "Saint Kitts and Nevis", i: "kn" }, { n: "Saint Lucia", i: "lc" }, { n: "Saint Martin (Saint-Martin (partie française))", i: "mf" }, { n: "Saint Pierre and Miquelon (Saint-Pierre-et-Miquelon)", i: "pm" }, { n: "Saint Vincent and the Grenadines", i: "vc" }, { n: "Samoa", i: "ws" }, { n: "San Marino", i: "sm" }, { n: "São Tomé and Príncipe (São Tomé e Príncipe)", i: "st" }, { n: "Saudi Arabia (‫المملكة العربية السعودية‬‎)", i: "sa" }, { n: "Senegal (Sénégal)", i: "sn" }, { n: "Serbia (Србија)", i: "rs" }, { n: "Seychelles", i: "sc" }, { n: "Sierra Leone", i: "sl" }, { n: "Singapore", i: "sg" }, { n: "Sint Maarten", i: "sx" }, { n: "Slovakia (Slovensko)", i: "sk" }, { n: "Slovenia (Slovenija)", i: "si" }, { n: "Solomon Islands", i: "sb" }, { n: "Somalia (Soomaaliya)", i: "so" }, { n: "South Africa", i: "za" }, { n: "South Georgia & South Sandwich Islands", i: "gs" }, { n: "South Korea (대한민국)", i: "kr" }, { n: "South Sudan (‫جنوب السودان‬‎)", i: "ss" }, { n: "Spain (España)", i: "es" }, { n: "Sri Lanka (ශ්‍රී ලංකාව)", i: "lk" }, { n: "Sudan (‫السودان‬‎)", i: "sd" }, { n: "Suriname", i: "sr" }, { n: "Svalbard and Jan Mayen (Svalbard og Jan Mayen)", i: "sj" }, { n: "Swaziland", i: "sz" }, { n: "Sweden (Sverige)", i: "se" }, { n: "Switzerland (Schweiz)", i: "ch" }, { n: "Syria (‫سوريا‬‎)", i: "sy" }, { n: "Taiwan (台灣)", i: "tw" }, { n: "Tajikistan", i: "tj" }, { n: "Tanzania", i: "tz" }, { n: "Thailand (ไทย)", i: "th" }, { n: "Timor-Leste", i: "tl" }, { n: "Togo", i: "tg" }, { n: "Tokelau", i: "tk" }, { n: "Tonga", i: "to" }, { n: "Trinidad and Tobago", i: "tt" }, { n: "Tunisia (‫تونس‬‎)", i: "tn" }, { n: "Turkey (Türkiye)", i: "tr" }, { n: "Turkmenistan", i: "tm" }, { n: "Turks and Caicos Islands", i: "tc" }, { n: "Tuvalu", i: "tv" }, { n: "Uganda", i: "ug" }, { n: "Ukraine (Україна)", i: "ua" }, { n: "United Arab Emirates (‫الإمارات العربية المتحدة‬‎)", i: "ae" }, { n: "United Kingdom", i: "gb" }, { n: "United States", i: "us" }, { n: "U.S. Minor Outlying Islands", i: "um" }, { n: "U.S. Virgin Islands", i: "vi" }, { n: "Uruguay", i: "uy" }, { n: "Uzbekistan (OÊ»zbekiston)", i: "uz" }, { n: "Vanuatu", i: "vu" }, { n: "Vatican City (Città  del Vaticano)", i: "va" }, { n: "Venezuela", i: "ve" }, { n: "Vietnam (Việt Nam)", i: "vn" }, { n: "Wallis and Futuna", i: "wf" }, { n: "Western Sahara (‫الصحراء الغربية‬‎)", i: "eh" }, { n: "Yemen (‫اليمن‬‎)", i: "ye" }, { n: "Zambia", i: "zm" }, { n: "Zimbabwe", i: "zw" }], function (t, e) { e.name = e.n, e.iso2 = e.i, delete e.n, delete e.i }) }), function () { function e(t, e) { return function () { return t.apply(e, arguments) } } var n, t, i, l, s, r = [].indexOf || function (t) { for (var e = 0, i = this.length; e < i; e++)if (e in this && this[e] === t) return e; return -1 }; function o(t) { null == t && (t = {}), this.scrollCallback = e(this.scrollCallback, this), this.scrollHandler = e(this.scrollHandler, this), this.resetAnimation = e(this.resetAnimation, this), this.start = e(this.start, this), this.scrolled = !0, this.config = this.util().extend(t, this.defaults), null != t.scrollContainer && (this.config.scrollContainer = document.querySelector(t.scrollContainer)), this.animationNameCache = new i, this.wowEvent = this.util().createEvent(this.config.boxClass) } function a() { "undefined" != typeof console && null !== console && console.warn("MutationObserver is not supported by your browser."), "undefined" != typeof console && null !== console && console.warn("WOW.js cannot detect dom mutations, please call .sync() after loading new content.") } function h() { this.keys = [], this.values = [] } function c() { } c.prototype.extend = function (t, e) { var i, n; for (i in e) n = e[i], null == t[i] && (t[i] = n); return t }, c.prototype.isMobile = function (t) { return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(t) }, c.prototype.createEvent = function (t, e, i, n) { var s; return null == e && (e = !1), null == i && (i = !1), null == n && (n = null), null != document.createEvent ? (s = document.createEvent("CustomEvent")).initCustomEvent(t, e, i, n) : null != document.createEventObject ? (s = document.createEventObject()).eventType = t : s.eventName = t, s }, c.prototype.emitEvent = function (t, e) { return null != t.dispatchEvent ? t.dispatchEvent(e) : e in (null != t) ? t[e]() : "on" + e in (null != t) ? t["on" + e]() : void 0 }, c.prototype.addEvent = function (t, e, i) { return null != t.addEventListener ? t.addEventListener(e, i, !1) : null != t.attachEvent ? t.attachEvent("on" + e, i) : t[e] = i }, c.prototype.removeEvent = function (t, e, i) { return null != t.removeEventListener ? t.removeEventListener(e, i, !1) : null != t.detachEvent ? t.detachEvent("on" + e, i) : delete t[e] }, c.prototype.innerHeight = function () { return "innerHeight" in window ? window.innerHeight : document.documentElement.clientHeight }, t = c, i = this.WeakMap || this.MozWeakMap || (h.prototype.get = function (t) { for (var e, i = this.keys, n = e = 0, s = i.length; e < s; n = ++e)if (i[n] === t) return this.values[n] }, h.prototype.set = function (t, e) { for (var i, n = this.keys, s = i = 0, o = n.length; i < o; s = ++i)if (n[s] === t) return void (this.values[s] = e); return this.keys.push(t), this.values.push(e) }, h), n = this.MutationObserver || this.WebkitMutationObserver || this.MozMutationObserver || (a.notSupported = !0, a.prototype.observe = function () { }, a), l = this.getComputedStyle || function (i, t) { return this.getPropertyValue = function (t) { var e; return "float" === t && (t = "styleFloat"), s.test(t) && t.replace(s, function (t, e) { return e.toUpperCase() }), (null != (e = i.currentStyle) ? e[t] : void 0) || null }, this }, s = /(\-([a-z]){1})/g, this.WOW = (o.prototype.defaults = { boxClass: "wow", animateClass: "animated", offset: 0, mobile: !0, live: !0, callback: null, scrollContainer: null }, o.prototype.init = function () { var t; return this.element = window.document.documentElement, "interactive" === (t = document.readyState) || "complete" === t ? this.start() : this.util().addEvent(document, "DOMContentLoaded", this.start), this.finished = [] }, o.prototype.start = function () { var s, t, e, i, r; if (this.stopped = !1, this.boxes = function () { for (var t = this.element.querySelectorAll("." + this.config.boxClass), e = [], i = 0, n = t.length; i < n; i++)s = t[i], e.push(s); return e }.call(this), this.all = function () { for (var t = this.boxes, e = [], i = 0, n = t.length; i < n; i++)s = t[i], e.push(s); return e }.call(this), this.boxes.length) if (this.disabled()) this.resetStyle(); else for (t = 0, e = (i = this.boxes).length; t < e; t++)s = i[t], this.applyStyle(s, !0); return this.disabled() || (this.util().addEvent(this.config.scrollContainer || window, "scroll", this.scrollHandler), this.util().addEvent(window, "resize", this.scrollHandler), this.interval = setInterval(this.scrollCallback, 50)), this.config.live ? new n((r = this, function (t) { for (var s, o, e = [], i = 0, n = t.length; i < n; i++)o = t[i], e.push(function () { for (var t = o.addedNodes || [], e = [], i = 0, n = t.length; i < n; i++)s = t[i], e.push(this.doSync(s)); return e }.call(r)); return e })).observe(document.body, { childList: !0, subtree: !0 }) : void 0 }, o.prototype.stop = function () { return this.stopped = !0, this.util().removeEvent(this.config.scrollContainer || window, "scroll", this.scrollHandler), this.util().removeEvent(window, "resize", this.scrollHandler), null != this.interval ? clearInterval(this.interval) : void 0 }, o.prototype.sync = function (t) { return n.notSupported ? this.doSync(this.element) : void 0 }, o.prototype.doSync = function (t) { var e, i, n, s, o; if (null == t && (t = this.element), 1 === t.nodeType) { for (o = [], i = 0, n = (s = (t = t.parentNode || t).querySelectorAll("." + this.config.boxClass)).length; i < n; i++)e = s[i], r.call(this.all, e) < 0 ? (this.boxes.push(e), this.all.push(e), this.stopped || this.disabled() ? this.resetStyle() : this.applyStyle(e, !0), o.push(this.scrolled = !0)) : o.push(void 0); return o } }, o.prototype.show = function (t) { return this.applyStyle(t), t.className = t.className + " " + this.config.animateClass, null != this.config.callback && this.config.callback(t), this.util().emitEvent(t, this.wowEvent), this.util().addEvent(t, "animationend", this.resetAnimation), this.util().addEvent(t, "oanimationend", this.resetAnimation), this.util().addEvent(t, "webkitAnimationEnd", this.resetAnimation), this.util().addEvent(t, "MSAnimationEnd", this.resetAnimation), t }, o.prototype.applyStyle = function (t, e) { var i, n = t.getAttribute("data-wow-duration"), s = t.getAttribute("data-wow-delay"), o = t.getAttribute("data-wow-iteration"); return this.animate((i = this, function () { return i.customStyle(t, e, n, s, o) })) }, o.prototype.animate = "requestAnimationFrame" in window ? function (t) { return window.requestAnimationFrame(t) } : function (t) { return t() }, o.prototype.resetStyle = function () { for (var t, e = this.boxes, i = [], n = 0, s = e.length; n < s; n++)t = e[n], i.push(t.style.visibility = "visible"); return i }, o.prototype.resetAnimation = function (t) { return 0 <= t.type.toLowerCase().indexOf("animationend") ? (t = t.target || t.srcElement).className = t.className.replace(this.config.animateClass, "").trim() : void 0 }, o.prototype.customStyle = function (t, e, i, n, s) { return e && this.cacheAnimationName(t), t.style.visibility = e ? "hidden" : "visible", i && this.vendorSet(t.style, { animationDuration: i }), n && this.vendorSet(t.style, { animationDelay: n }), s && this.vendorSet(t.style, { animationIterationCount: s }), this.vendorSet(t.style, { animationName: e ? "none" : this.cachedAnimationName(t) }), t }, o.prototype.vendors = ["moz", "webkit"], o.prototype.vendorSet = function (s, t) { var o, r, a, e = []; for (o in t) r = t[o], s["" + o] = r, e.push(function () { for (var t = this.vendors, e = [], i = 0, n = t.length; i < n; i++)a = t[i], e.push(s["" + a + o.charAt(0).toUpperCase() + o.substr(1)] = r); return e }.call(this)); return e }, o.prototype.vendorCSS = function (t, e) { for (var i, n = l(t), s = n.getPropertyCSSValue(e), o = this.vendors, r = 0, a = o.length; r < a; r++)i = o[r], s = s || n.getPropertyCSSValue("-" + i + "-" + e); return s }, o.prototype.animationName = function (e) { var i; try { i = this.vendorCSS(e, "animation-name").cssText } catch (t) { i = l(e).getPropertyValue("animation-name") } return "none" === i ? "" : i }, o.prototype.cacheAnimationName = function (t) { return this.animationNameCache.set(t, this.animationName(t)) }, o.prototype.cachedAnimationName = function (t) { return this.animationNameCache.get(t) }, o.prototype.scrollHandler = function () { return this.scrolled = !0 }, o.prototype.scrollCallback = function () { var s; return !this.scrolled || (this.scrolled = !1, this.boxes = function () { for (var t = this.boxes, e = [], i = 0, n = t.length; i < n; i++)(s = t[i]) && (this.isVisible(s) ? this.show(s) : e.push(s)); return e }.call(this), this.boxes.length || this.config.live) ? void 0 : this.stop() }, o.prototype.offsetTop = function (t) { for (var e; void 0 === t.offsetTop;)t = t.parentNode; for (e = t.offsetTop; t = t.offsetParent;)e += t.offsetTop; return e }, o.prototype.isVisible = function (t) { var e = t.getAttribute("data-wow-offset") || this.config.offset, i = this.config.scrollContainer && this.config.scrollContainer.scrollTop || window.pageYOffset, n = i + Math.min(this.element.clientHeight, this.util().innerHeight()) - e, e = this.offsetTop(t), t = e + t.clientHeight; return e <= n && i <= t }, o.prototype.util = function () { return null != this._util ? this._util : this._util = new t }, o.prototype.disabled = function () { return !this.config.mobile && this.util().isMobile(navigator.userAgent) }, o) }.call(this), function (t) { "function" == typeof define && define.amd ? define(["jquery"], t) : t(jQuery) }(function (x) { x.ui = x.ui || {}; x.ui.version = "1.12.1"; var s, i = 0, a = Array.prototype.slice; x.cleanData = (s = x.cleanData, function (t) { for (var e, i, n = 0; null != (i = t[n]); n++)try { (e = x._data(i, "events")) && e.remove && x(i).triggerHandler("remove") } catch (t) { } s(t) }), x.widget = function (t, i, e) { var n, s, o, r = {}, a = t.split(".")[0], l = a + "-" + (t = t.split(".")[1]); return e || (e = i, i = x.Widget), x.isArray(e) && (e = x.extend.apply(null, [{}].concat(e))), x.expr[":"][l.toLowerCase()] = function (t) { return !!x.data(t, l) }, x[a] = x[a] || {}, n = x[a][t], s = x[a][t] = function (t, e) { if (!this._createWidget) return new s(t, e); arguments.length && this._createWidget(t, e) }, x.extend(s, n, { version: e.version, _proto: x.extend({}, e), _childConstructors: [] }), (o = new i).options = x.widget.extend({}, o.options), x.each(e, function (e, n) { function s() { return i.prototype[e].apply(this, arguments) } function o(t) { return i.prototype[e].apply(this, t) } x.isFunction(n) ? r[e] = function () { var t, e = this._super, i = this._superApply; return this._super = s, this._superApply = o, t = n.apply(this, arguments), this._super = e, this._superApply = i, t } : r[e] = n }), s.prototype = x.widget.extend(o, { widgetEventPrefix: n && o.widgetEventPrefix || t }, r, { constructor: s, namespace: a, widgetName: t, widgetFullName: l }), n ? (x.each(n._childConstructors, function (t, e) { var i = e.prototype; x.widget(i.namespace + "." + i.widgetName, s, e._proto) }), delete n._childConstructors) : i._childConstructors.push(s), x.widget.bridge(t, s), s }, x.widget.extend = function (t) { for (var e, i, n = a.call(arguments, 1), s = 0, o = n.length; s < o; s++)for (e in n[s]) i = n[s][e], n[s].hasOwnProperty(e) && void 0 !== i && (x.isPlainObject(i) ? t[e] = x.isPlainObject(t[e]) ? x.widget.extend({}, t[e], i) : x.widget.extend({}, i) : t[e] = i); return t }, x.widget.bridge = function (o, e) { var r = e.prototype.widgetFullName || o; x.fn[o] = function (i) { var t = "string" == typeof i, n = a.call(arguments, 1), s = this; return t ? this.length || "instance" !== i ? this.each(function () { var t, e = x.data(this, r); return "instance" === i ? (s = e, !1) : e ? x.isFunction(e[i]) && "_" !== i.charAt(0) ? (t = e[i].apply(e, n)) !== e && void 0 !== t ? (s = t && t.jquery ? s.pushStack(t.get()) : t, !1) : void 0 : x.error("no such method '" + i + "' for " + o + " widget instance") : x.error("cannot call methods on " + o + " prior to initialization; attempted to call method '" + i + "'") }) : s = void 0 : (n.length && (i = x.widget.extend.apply(null, [i].concat(n))), this.each(function () { var t = x.data(this, r); t ? (t.option(i || {}), t._init && t._init()) : x.data(this, r, new e(i, this)) })), s } }, x.Widget = function () { }, x.Widget._childConstructors = [], x.Widget.prototype = { widgetName: "widget", widgetEventPrefix: "", defaultElement: "<div>", options: { classes: {}, disabled: !1, create: null }, _createWidget: function (t, e) { e = x(e || this.defaultElement || this)[0], this.element = x(e), this.uuid = i++, this.eventNamespace = "." + this.widgetName + this.uuid, this.bindings = x(), this.hoverable = x(), this.focusable = x(), this.classesElementLookup = {}, e !== this && (x.data(e, this.widgetFullName, this), this._on(!0, this.element, { remove: function (t) { t.target === e && this.destroy() } }), this.document = x(e.style ? e.ownerDocument : e.document || e), this.window = x(this.document[0].defaultView || this.document[0].parentWindow)), this.options = x.widget.extend({}, this.options, this._getCreateOptions(), t), this._create(), this.options.disabled && this._setOptionDisabled(this.options.disabled), this._trigger("create", null, this._getCreateEventData()), this._init() }, _getCreateOptions: function () { return {} }, _getCreateEventData: x.noop, _create: x.noop, _init: x.noop, destroy: function () { var i = this; this._destroy(), x.each(this.classesElementLookup, function (t, e) { i._removeClass(e, t) }), this.element.off(this.eventNamespace).removeData(this.widgetFullName), this.widget().off(this.eventNamespace).removeAttr("aria-disabled"), this.bindings.off(this.eventNamespace) }, _destroy: x.noop, widget: function () { return this.element }, option: function (t, e) { var i, n, s, o = t; if (0 === arguments.length) return x.widget.extend({}, this.options); if ("string" == typeof t) if (o = {}, t = (i = t.split(".")).shift(), i.length) { for (n = o[t] = x.widget.extend({}, this.options[t]), s = 0; s < i.length - 1; s++)n[i[s]] = n[i[s]] || {}, n = n[i[s]]; if (t = i.pop(), 1 === arguments.length) return void 0 === n[t] ? null : n[t]; n[t] = e } else { if (1 === arguments.length) return void 0 === this.options[t] ? null : this.options[t]; o[t] = e } return this._setOptions(o), this }, _setOptions: function (t) { for (var e in t) this._setOption(e, t[e]); return this }, _setOption: function (t, e) { return "classes" === t && this._setOptionClasses(e), this.options[t] = e, "disabled" === t && this._setOptionDisabled(e), this }, _setOptionClasses: function (t) { var e, i, n; for (e in t) n = this.classesElementLookup[e], t[e] !== this.options.classes[e] && n && n.length && (i = x(n.get()), this._removeClass(n, e), i.addClass(this._classes({ element: i, keys: e, classes: t, add: !0 }))) }, _setOptionDisabled: function (t) { this._toggleClass(this.widget(), this.widgetFullName + "-disabled", null, !!t), t && (this._removeClass(this.hoverable, null, "ui-state-hover"), this._removeClass(this.focusable, null, "ui-state-focus")) }, enable: function () { return this._setOptions({ disabled: !1 }) }, disable: function () { return this._setOptions({ disabled: !0 }) }, _classes: function (s) { var o = [], r = this; function t(t, e) { for (var i, n = 0; n < t.length; n++)i = r.classesElementLookup[t[n]] || x(), i = s.add ? x(x.unique(i.get().concat(s.element.get()))) : x(i.not(s.element).get()), r.classesElementLookup[t[n]] = i, o.push(t[n]), e && s.classes[t[n]] && o.push(s.classes[t[n]]) } return s = x.extend({ element: this.element, classes: this.options.classes || {} }, s), this._on(s.element, { remove: "_untrackClassesElement" }), s.keys && t(s.keys.match(/\S+/g) || [], !0), s.extra && t(s.extra.match(/\S+/g) || []), o.join(" ") }, _untrackClassesElement: function (i) { var n = this; x.each(n.classesElementLookup, function (t, e) { -1 !== x.inArray(i.target, e) && (n.classesElementLookup[t] = x(e.not(i.target).get())) }) }, _removeClass: function (t, e, i) { return this._toggleClass(t, e, i, !1) }, _addClass: function (t, e, i) { return this._toggleClass(t, e, i, !0) }, _toggleClass: function (t, e, i, n) { n = "boolean" == typeof n ? n : i; var s = "string" == typeof t || null === t, t = { extra: s ? e : i, keys: s ? t : e, element: s ? this.element : t, add: n }; return t.element.toggleClass(this._classes(t), n), this }, _on: function (s, o, t) { var r, a = this; "boolean" != typeof s && (t = o, o = s, s = !1), t ? (o = r = x(o), this.bindings = this.bindings.add(o)) : (t = o, o = this.element, r = this.widget()), x.each(t, function (t, e) { function i() { if (s || !0 !== a.options.disabled && !x(this).hasClass("ui-state-disabled")) return ("string" == typeof e ? a[e] : e).apply(a, arguments) } "string" != typeof e && (i.guid = e.guid = e.guid || i.guid || x.guid++); var n = t.match(/^([\w:-]*)\s*(.*)$/), t = n[1] + a.eventNamespace, n = n[2]; n ? r.on(t, n, i) : o.on(t, i) }) }, _off: function (t, e) { e = (e || "").split(" ").join(this.eventNamespace + " ") + this.eventNamespace, t.off(e).off(e), this.bindings = x(this.bindings.not(t).get()), this.focusable = x(this.focusable.not(t).get()), this.hoverable = x(this.hoverable.not(t).get()) }, _delay: function (t, e) { var i = this; return setTimeout(function () { return ("string" == typeof t ? i[t] : t).apply(i, arguments) }, e || 0) }, _hoverable: function (t) { this.hoverable = this.hoverable.add(t), this._on(t, { mouseenter: function (t) { this._addClass(x(t.currentTarget), null, "ui-state-hover") }, mouseleave: function (t) { this._removeClass(x(t.currentTarget), null, "ui-state-hover") } }) }, _focusable: function (t) { this.focusable = this.focusable.add(t), this._on(t, { focusin: function (t) { this._addClass(x(t.currentTarget), null, "ui-state-focus") }, focusout: function (t) { this._removeClass(x(t.currentTarget), null, "ui-state-focus") } }) }, _trigger: function (t, e, i) { var n, s, o = this.options[t]; if (i = i || {}, (e = x.Event(e)).type = (t === this.widgetEventPrefix ? t : this.widgetEventPrefix + t).toLowerCase(), e.target = this.element[0], s = e.originalEvent) for (n in s) n in e || (e[n] = s[n]); return this.element.trigger(e, i), !(x.isFunction(o) && !1 === o.apply(this.element[0], [e].concat(i)) || e.isDefaultPrevented()) } }, x.each({ show: "fadeIn", hide: "fadeOut" }, function (o, r) { x.Widget.prototype["_" + o] = function (e, t, i) { var n; "string" == typeof t && (t = { effect: t }); var s = t ? !0 !== t && "number" != typeof t && t.effect || r : o; "number" == typeof (t = t || {}) && (t = { duration: t }), n = !x.isEmptyObject(t), t.complete = i, t.delay && e.delay(t.delay), n && x.effects && x.effects.effect[s] ? e[o](t) : s !== o && e[s] ? e[s](t.duration, t.easing, i) : e.queue(function (t) { x(this)[o](), i && i.call(e[0]), t() }) } }); var n, C, k, o, r, l, h, c, T; x.widget; function D(t, e, i) { return [parseFloat(t[0]) * (c.test(t[0]) ? e / 100 : 1), parseFloat(t[1]) * (c.test(t[1]) ? i / 100 : 1)] } function E(t, e) { return parseInt(x.css(t, e), 10) || 0 } C = Math.max, k = Math.abs, o = /left|center|right/, r = /top|center|bottom/, l = /[\+\-]\d+(\.[\d]+)?%?/, h = /^\w+/, c = /%$/, T = x.fn.position, x.position = { scrollbarWidth: function () { if (void 0 !== n) return n; var t, e = x("<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"), i = e.children()[0]; return x("body").append(e), t = i.offsetWidth, e.css("overflow", "scroll"), t === (i = i.offsetWidth) && (i = e[0].clientWidth), e.remove(), n = t - i }, getScrollInfo: function (t) { var e = t.isWindow || t.isDocument ? "" : t.element.css("overflow-x"), i = t.isWindow || t.isDocument ? "" : t.element.css("overflow-y"), e = "scroll" === e || "auto" === e && t.width < t.element[0].scrollWidth; return { width: "scroll" === i || "auto" === i && t.height < t.element[0].scrollHeight ? x.position.scrollbarWidth() : 0, height: e ? x.position.scrollbarWidth() : 0 } }, getWithinInfo: function (t) { var e = x(t || window), i = x.isWindow(e[0]), n = !!e[0] && 9 === e[0].nodeType; return { element: e, isWindow: i, isDocument: n, offset: !i && !n ? x(t).offset() : { left: 0, top: 0 }, scrollLeft: e.scrollLeft(), scrollTop: e.scrollTop(), width: e.outerWidth(), height: e.outerHeight() } } }, x.fn.position = function (u) { if (!u || !u.of) return T.apply(this, arguments); u = x.extend({}, u); var d, p, f, g, m, t, v = x(u.of), _ = x.position.getWithinInfo(u.within), y = x.position.getScrollInfo(_), b = (u.collision || "flip").split(" "), w = {}, e = 9 === (t = (e = v)[0]).nodeType ? { width: e.width(), height: e.height(), offset: { top: 0, left: 0 } } : x.isWindow(t) ? { width: e.width(), height: e.height(), offset: { top: e.scrollTop(), left: e.scrollLeft() } } : t.preventDefault ? { width: 0, height: 0, offset: { top: t.pageY, left: t.pageX } } : { width: e.outerWidth(), height: e.outerHeight(), offset: e.offset() }; return v[0].preventDefault && (u.at = "left top"), p = e.width, f = e.height, g = e.offset, m = x.extend({}, g), x.each(["my", "at"], function () { var t, e, i = (u[this] || "").split(" "); 1 === i.length && (i = o.test(i[0]) ? i.concat(["center"]) : r.test(i[0]) ? ["center"].concat(i) : ["center", "center"]), i[0] = o.test(i[0]) ? i[0] : "center", i[1] = r.test(i[1]) ? i[1] : "center", t = l.exec(i[0]), e = l.exec(i[1]), w[this] = [t ? t[0] : 0, e ? e[0] : 0], u[this] = [h.exec(i[0])[0], h.exec(i[1])[0]] }), 1 === b.length && (b[1] = b[0]), "right" === u.at[0] ? m.left += p : "center" === u.at[0] && (m.left += p / 2), "bottom" === u.at[1] ? m.top += f : "center" === u.at[1] && (m.top += f / 2), d = D(w.at, p, f), m.left += d[0], m.top += d[1], this.each(function () { var i, t, r = x(this), a = r.outerWidth(), l = r.outerHeight(), e = E(this, "marginLeft"), n = E(this, "marginTop"), s = a + e + E(this, "marginRight") + y.width, o = l + n + E(this, "marginBottom") + y.height, h = x.extend({}, m), c = D(w.my, r.outerWidth(), r.outerHeight()); "right" === u.my[0] ? h.left -= a : "center" === u.my[0] && (h.left -= a / 2), "bottom" === u.my[1] ? h.top -= l : "center" === u.my[1] && (h.top -= l / 2), h.left += c[0], h.top += c[1], i = { marginLeft: e, marginTop: n }, x.each(["left", "top"], function (t, e) { x.ui.position[b[t]] && x.ui.position[b[t]][e](h, { targetWidth: p, targetHeight: f, elemWidth: a, elemHeight: l, collisionPosition: i, collisionWidth: s, collisionHeight: o, offset: [d[0] + c[0], d[1] + c[1]], my: u.my, at: u.at, within: _, elem: r }) }), u.using && (t = function (t) { var e = g.left - h.left, i = e + p - a, n = g.top - h.top, s = n + f - l, o = { target: { element: v, left: g.left, top: g.top, width: p, height: f }, element: { element: r, left: h.left, top: h.top, width: a, height: l }, horizontal: i < 0 ? "left" : 0 < e ? "right" : "center", vertical: s < 0 ? "top" : 0 < n ? "bottom" : "middle" }; p < a && k(e + i) < p && (o.horizontal = "center"), f < l && k(n + s) < f && (o.vertical = "middle"), C(k(e), k(i)) > C(k(n), k(s)) ? o.important = "horizontal" : o.important = "vertical", u.using.call(this, t, o) }), r.offset(x.extend(h, { using: t })) }) }, x.ui.position = { fit: { left: function (t, e) { var i = e.within, n = i.isWindow ? i.scrollLeft : i.offset.left, s = i.width, o = t.left - e.collisionPosition.marginLeft, r = n - o, a = o + e.collisionWidth - s - n; e.collisionWidth > s ? 0 < r && a <= 0 ? (i = t.left + r + e.collisionWidth - s - n, t.left += r - i) : t.left = !(0 < a && r <= 0) && a < r ? n + s - e.collisionWidth : n : 0 < r ? t.left += r : 0 < a ? t.left -= a : t.left = C(t.left - o, t.left) }, top: function (t, e) { var i = e.within, n = i.isWindow ? i.scrollTop : i.offset.top, s = e.within.height, o = t.top - e.collisionPosition.marginTop, r = n - o, a = o + e.collisionHeight - s - n; e.collisionHeight > s ? 0 < r && a <= 0 ? (i = t.top + r + e.collisionHeight - s - n, t.top += r - i) : t.top = !(0 < a && r <= 0) && a < r ? n + s - e.collisionHeight : n : 0 < r ? t.top += r : 0 < a ? t.top -= a : t.top = C(t.top - o, t.top) } }, flip: { left: function (t, e) { var i = e.within, n = i.offset.left + i.scrollLeft, s = i.width, o = i.isWindow ? i.scrollLeft : i.offset.left, r = t.left - e.collisionPosition.marginLeft, a = r - o, l = r + e.collisionWidth - s - o, h = "left" === e.my[0] ? -e.elemWidth : "right" === e.my[0] ? e.elemWidth : 0, i = "left" === e.at[0] ? e.targetWidth : "right" === e.at[0] ? -e.targetWidth : 0, r = -2 * e.offset[0]; a < 0 ? ((n = t.left + h + i + r + e.collisionWidth - s - n) < 0 || n < k(a)) && (t.left += h + i + r) : 0 < l && (0 < (o = t.left - e.collisionPosition.marginLeft + h + i + r - o) || k(o) < l) && (t.left += h + i + r) }, top: function (t, e) { var i = e.within, n = i.offset.top + i.scrollTop, s = i.height, o = i.isWindow ? i.scrollTop : i.offset.top, r = t.top - e.collisionPosition.marginTop, a = r - o, l = r + e.collisionHeight - s - o, h = "top" === e.my[1] ? -e.elemHeight : "bottom" === e.my[1] ? e.elemHeight : 0, i = "top" === e.at[1] ? e.targetHeight : "bottom" === e.at[1] ? -e.targetHeight : 0, r = -2 * e.offset[1]; a < 0 ? ((n = t.top + h + i + r + e.collisionHeight - s - n) < 0 || n < k(a)) && (t.top += h + i + r) : 0 < l && (0 < (o = t.top - e.collisionPosition.marginTop + h + i + r - o) || k(o) < l) && (t.top += h + i + r) } }, flipfit: { left: function () { x.ui.position.flip.left.apply(this, arguments), x.ui.position.fit.left.apply(this, arguments) }, top: function () { x.ui.position.flip.top.apply(this, arguments), x.ui.position.fit.top.apply(this, arguments) } } }; x.ui.position, x.extend(x.expr[":"], { data: x.expr.createPseudo ? x.expr.createPseudo(function (e) { return function (t) { return !!x.data(t, e) } }) : function (t, e, i) { return !!x.data(t, i[3]) } }), x.fn.extend({ disableSelection: (t = "onselectstart" in document.createElement("div") ? "selectstart" : "mousedown", function () { return this.on(t + ".ui-disableSelection", function (t) { t.preventDefault() }) }), enableSelection: function () { return this.off(".ui-disableSelection") } }); var t, u, d, p, f, e, g, m, v, _, y, b, w, S, I, A, P, N, M, O, H, L = "ui-effects-", z = "ui-effects-style", j = "ui-effects-animated", F = x; function W(t, e, i) { var n = v[e.type] || {}; return null == t ? i || !e.def ? null : e.def : (t = n.floor ? ~~t : parseFloat(t), isNaN(t) ? e.def : n.mod ? (t + n.mod) % n.mod : t < 0 ? 0 : n.max < t ? n.max : t) } function R(n) { var s = g(), o = s._rgba = []; return n = n.toLowerCase(), y(e, function (t, e) { var i = e.re.exec(n), i = i && e.parse(i), e = e.space || "rgba"; if (i) return i = s[e](i), s[m[e].cache] = i[m[e].cache], o = s._rgba = i._rgba, !1 }), o.length ? ("0,0,0,0" === o.join() && u.extend(o, p.transparent), s) : p[n] } function B(t, e, i) { return 6 * (i = (i + 1) % 1) < 1 ? t + (e - t) * i * 6 : 2 * i < 1 ? e : 3 * i < 2 ? t + (e - t) * (2 / 3 - i) * 6 : t } function $(t) { var e, i, n = t.ownerDocument.defaultView ? t.ownerDocument.defaultView.getComputedStyle(t, null) : t.currentStyle, s = {}; if (n && n.length && n[0] && n[n[0]]) for (i = n.length; i--;)"string" == typeof n[e = n[i]] && (s[x.camelCase(e)] = n[e]); else for (e in n) "string" == typeof n[e] && (s[e] = n[e]); return s } function q(t, e, i, n) { return x.isPlainObject(t) && (t = (e = t).effect), t = { effect: t }, null == e && (e = {}), x.isFunction(e) && (n = e, i = null, e = {}), "number" != typeof e && !x.fx.speeds[e] || (n = i, i = e, e = {}), x.isFunction(i) && (n = i, i = null), e && x.extend(t, e), i = i || e.duration, t.duration = x.fx.off ? 0 : "number" == typeof i ? i : i in x.fx.speeds ? x.fx.speeds[i] : x.fx.speeds._default, t.complete = n || e.complete, t } function Y(t) { return !t || "number" == typeof t || x.fx.speeds[t] || ("string" == typeof t && !x.effects.effect[t] || (x.isFunction(t) || "object" == typeof t && !t.effect)) } function U(t, e) { var i = e.outerWidth(), e = e.outerHeight(), t = /^rect\((-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto)\)$/.exec(t) || ["", 0, i, e, 0]; return { top: parseFloat(t[1]) || 0, right: "auto" === t[2] ? i : parseFloat(t[2]), bottom: "auto" === t[3] ? e : parseFloat(t[3]), left: parseFloat(t[4]) || 0 } } x.effects = { effect: {} }, f = /^([\-+])=\s*(\d+\.?\d*)/, e = [{ re: /rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/, parse: function (t) { return [t[1], t[2], t[3], t[4]] } }, { re: /rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/, parse: function (t) { return [2.55 * t[1], 2.55 * t[2], 2.55 * t[3], t[4]] } }, { re: /#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/, parse: function (t) { return [parseInt(t[1], 16), parseInt(t[2], 16), parseInt(t[3], 16)] } }, { re: /#([a-f0-9])([a-f0-9])([a-f0-9])/, parse: function (t) { return [parseInt(t[1] + t[1], 16), parseInt(t[2] + t[2], 16), parseInt(t[3] + t[3], 16)] } }, { re: /hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/, space: "hsla", parse: function (t) { return [t[1], t[2] / 100, t[3] / 100, t[4]] } }], g = (u = F).Color = function (t, e, i, n) { return new u.Color.fn.parse(t, e, i, n) }, m = { rgba: { props: { red: { idx: 0, type: "byte" }, green: { idx: 1, type: "byte" }, blue: { idx: 2, type: "byte" } } }, hsla: { props: { hue: { idx: 0, type: "degrees" }, saturation: { idx: 1, type: "percent" }, lightness: { idx: 2, type: "percent" } } } }, v = { byte: { floor: !0, max: 255 }, percent: { max: 1 }, degrees: { mod: 360, floor: !0 } }, _ = g.support = {}, V = u("<p>")[0], y = u.each, V.style.cssText = "background-color:rgba(1,1,1,.5)", _.rgba = -1 < V.style.backgroundColor.indexOf("rgba"), y(m, function (t, e) { e.cache = "_" + t, e.props.alpha = { idx: 3, type: "percent", def: 1 } }), g.fn = u.extend(g.prototype, { parse: function (s, t, e, i) { if (s === d) return this._rgba = [null, null, null, null], this; (s.jquery || s.nodeType) && (s = u(s).css(t), t = d); var o = this, n = u.type(s), r = this._rgba = []; return t !== d && (s = [s, t, e, i], n = "array"), "string" === n ? this.parse(R(s) || p._default) : "array" === n ? (y(m.rgba.props, function (t, e) { r[e.idx] = W(s[e.idx], e) }), this) : "object" === n ? (y(m, s instanceof g ? function (t, e) { s[e.cache] && (o[e.cache] = s[e.cache].slice()) } : function (t, i) { var n = i.cache; y(i.props, function (t, e) { if (!o[n] && i.to) { if ("alpha" === t || null == s[t]) return; o[n] = i.to(o._rgba) } o[n][e.idx] = W(s[t], e, !0) }), o[n] && u.inArray(null, o[n].slice(0, 3)) < 0 && (o[n][3] = 1, i.from && (o._rgba = i.from(o[n]))) }), this) : void 0 }, is: function (t) { var s = g(t), o = !0, r = this; return y(m, function (t, e) { var i, n = s[e.cache]; return n && (i = r[e.cache] || e.to && e.to(r._rgba) || [], y(e.props, function (t, e) { if (null != n[e.idx]) return o = n[e.idx] === i[e.idx] })), o }), o }, _space: function () { var i = [], n = this; return y(m, function (t, e) { n[e.cache] && i.push(t) }), i.pop() }, transition: function (t, r) { var e = (h = g(t))._space(), i = m[e], t = 0 === this.alpha() ? g("transparent") : this, a = t[i.cache] || i.to(t._rgba), l = a.slice(), h = h[i.cache]; return y(i.props, function (t, e) { var i = e.idx, n = a[i], s = h[i], o = v[e.type] || {}; null !== s && (null === n ? l[i] = s : (o.mod && (o.mod / 2 < s - n ? n += o.mod : o.mod / 2 < n - s && (n -= o.mod)), l[i] = W((s - n) * r + n, e))) }), this[e](l) }, blend: function (t) { if (1 === this._rgba[3]) return this; var e = this._rgba.slice(), i = e.pop(), n = g(t)._rgba; return g(u.map(e, function (t, e) { return (1 - i) * n[e] + i * t })) }, toRgbaString: function () { var t = "rgba(", e = u.map(this._rgba, function (t, e) { return null == t ? 2 < e ? 1 : 0 : t }); return 1 === e[3] && (e.pop(), t = "rgb("), t + e.join() + ")" }, toHslaString: function () { var t = "hsla(", e = u.map(this.hsla(), function (t, e) { return null == t && (t = 2 < e ? 1 : 0), e && e < 3 && (t = Math.round(100 * t) + "%"), t }); return 1 === e[3] && (e.pop(), t = "hsl("), t + e.join() + ")" }, toHexString: function (t) { var e = this._rgba.slice(), i = e.pop(); return t && e.push(~~(255 * i)), "#" + u.map(e, function (t) { return 1 === (t = (t || 0).toString(16)).length ? "0" + t : t }).join("") }, toString: function () { return 0 === this._rgba[3] ? "transparent" : this.toRgbaString() } }), g.fn.parse.prototype = g.fn, m.hsla.to = function (t) { if (null == t[0] || null == t[1] || null == t[2]) return [null, null, null, t[3]]; var e = t[0] / 255, i = t[1] / 255, n = t[2] / 255, s = t[3], o = Math.max(e, i, n), r = Math.min(e, i, n), a = o - r, l = o + r, t = .5 * l, i = r === o ? 0 : e === o ? 60 * (i - n) / a + 360 : i === o ? 60 * (n - e) / a + 120 : 60 * (e - i) / a + 240, l = 0 == a ? 0 : t <= .5 ? a / l : a / (2 - l); return [Math.round(i) % 360, l, t, null == s ? 1 : s] }, m.hsla.from = function (t) { if (null == t[0] || null == t[1] || null == t[2]) return [null, null, null, t[3]]; var e = t[0] / 360, i = t[1], n = t[2], t = t[3], i = n <= .5 ? n * (1 + i) : n + i - n * i, n = 2 * n - i; return [Math.round(255 * B(n, i, e + 1 / 3)), Math.round(255 * B(n, i, e)), Math.round(255 * B(n, i, e - 1 / 3)), t] }, y(m, function (l, t) { var o = t.props, r = t.cache, a = t.to, h = t.from; g.fn[l] = function (t) { if (a && !this[r] && (this[r] = a(this._rgba)), t === d) return this[r].slice(); var e, i = u.type(t), n = "array" === i || "object" === i ? t : arguments, s = this[r].slice(); return y(o, function (t, e) { t = n["object" === i ? t : e.idx]; null == t && (t = s[e.idx]), s[e.idx] = W(t, e) }), h ? ((e = g(h(s)))[r] = s, e) : g(s) }, y(o, function (r, a) { g.fn[r] || (g.fn[r] = function (t) { var e, i = u.type(t), n = "alpha" === r ? this._hsla ? "hsla" : "rgba" : l, s = this[n](), o = s[a.idx]; return "undefined" === i ? o : ("function" === i && (t = t.call(this, o), i = u.type(t)), null == t && a.empty ? this : ("string" === i && (e = f.exec(t)) && (t = o + parseFloat(e[2]) * ("+" === e[1] ? 1 : -1)), s[a.idx] = t, this[n](s))) }) }) }), g.hook = function (t) { t = t.split(" "); y(t, function (t, o) { u.cssHooks[o] = { set: function (t, e) { var i, n, s = ""; if ("transparent" !== e && ("string" !== u.type(e) || (i = R(e)))) { if (e = g(i || e), !_.rgba && 1 !== e._rgba[3]) { for (n = "backgroundColor" === o ? t.parentNode : t; ("" === s || "transparent" === s) && n && n.style;)try { s = u.css(n, "backgroundColor"), n = n.parentNode } catch (t) { } e = e.blend(s && "transparent" !== s ? s : "_default") } e = e.toRgbaString() } try { t.style[o] = e } catch (t) { } } }, u.fx.step[o] = function (t) { t.colorInit || (t.start = g(t.elem, o), t.end = g(t.end), t.colorInit = !0), u.cssHooks[o].set(t.elem, t.start.transition(t.end, t.pos)) } }) }, g.hook("backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor"), u.cssHooks.borderColor = { expand: function (i) { var n = {}; return y(["Top", "Right", "Bottom", "Left"], function (t, e) { n["border" + e + "Color"] = i }), n } }, p = u.Color.names = { aqua: "#00ffff", black: "#000000", blue: "#0000ff", fuchsia: "#ff00ff", gray: "#808080", green: "#008000", lime: "#00ff00", maroon: "#800000", navy: "#000080", olive: "#808000", purple: "#800080", red: "#ff0000", silver: "#c0c0c0", teal: "#008080", white: "#ffffff", yellow: "#ffff00", transparent: [null, null, null, 0], _default: "#ffffff" }, I = ["add", "remove", "toggle"], A = { border: 1, borderBottom: 1, borderColor: 1, borderLeft: 1, borderRight: 1, borderTop: 1, borderWidth: 1, margin: 1, padding: 1 }, x.each(["borderLeftStyle", "borderRightStyle", "borderBottomStyle", "borderTopStyle"], function (t, e) { x.fx.step[e] = function (t) { ("none" !== t.end && !t.setAttr || 1 === t.pos && !t.setAttr) && (F.style(t.elem, e, t.end), t.setAttr = !0) } }), x.fn.addBack || (x.fn.addBack = function (t) { return this.add(null == t ? this.prevObject : this.prevObject.filter(t)) }), x.effects.animateClass = function (s, t, e, i) { var o = x.speed(t, e, i); return this.queue(function () { var i = x(this), t = i.attr("class") || "", e = (e = o.children ? i.find("*").addBack() : i).map(function () { return { el: x(this), start: $(this) } }), n = function () { x.each(I, function (t, e) { s[e] && i[e + "Class"](s[e]) }) }; n(), e = e.map(function () { return this.end = $(this.el[0]), this.diff = function (t, e) { var i, n, s = {}; for (i in e) n = e[i], t[i] !== n && (A[i] || !x.fx.step[i] && isNaN(parseFloat(n)) || (s[i] = n)); return s }(this.start, this.end), this }), i.attr("class", t), e = e.map(function () { var t = this, e = x.Deferred(), i = x.extend({}, o, { queue: !1, complete: function () { e.resolve(t) } }); return this.el.animate(this.diff, i), e.promise() }), x.when.apply(x, e.get()).done(function () { n(), x.each(arguments, function () { var e = this.el; x.each(this.diff, function (t) { e.css(t, "") }) }), o.complete.call(i[0]) }) }) }, x.fn.extend({ addClass: (S = x.fn.addClass, function (t, e, i, n) { return e ? x.effects.animateClass.call(this, { add: t }, e, i, n) : S.apply(this, arguments) }), removeClass: (w = x.fn.removeClass, function (t, e, i, n) { return 1 < arguments.length ? x.effects.animateClass.call(this, { remove: t }, e, i, n) : w.apply(this, arguments) }), toggleClass: (b = x.fn.toggleClass, function (t, e, i, n, s) { return "boolean" == typeof e || void 0 === e ? i ? x.effects.animateClass.call(this, e ? { add: t } : { remove: t }, i, n, s) : b.apply(this, arguments) : x.effects.animateClass.call(this, { toggle: t }, e, i, n) }), switchClass: function (t, e, i, n, s) { return x.effects.animateClass.call(this, { add: e, remove: t }, i, n, s) } }), x.expr && x.expr.filters && x.expr.filters.animated && (x.expr.filters.animated = (P = x.expr.filters.animated, function (t) { return !!x(t).data(j) || P(t) })), !1 !== x.uiBackCompat && x.extend(x.effects, { save: function (t, e) { for (var i = 0, n = e.length; i < n; i++)null !== e[i] && t.data(L + e[i], t[0].style[e[i]]) }, restore: function (t, e) { for (var i, n = 0, s = e.length; n < s; n++)null !== e[n] && (i = t.data(L + e[n]), t.css(e[n], i)) }, setMode: function (t, e) { return "toggle" === e && (e = t.is(":hidden") ? "show" : "hide"), e }, createWrapper: function (i) { if (i.parent().is(".ui-effects-wrapper")) return i.parent(); var n = { width: i.outerWidth(!0), height: i.outerHeight(!0), float: i.css("float") }, t = x("<div></div>").addClass("ui-effects-wrapper").css({ fontSize: "100%", background: "transparent", border: "none", margin: 0, padding: 0 }), e = { width: i.width(), height: i.height() }, s = document.activeElement; try { s.id } catch (t) { s = document.body } return i.wrap(t), i[0] !== s && !x.contains(i[0], s) || x(s).trigger("focus"), t = i.parent(), "static" === i.css("position") ? (t.css({ position: "relative" }), i.css({ position: "relative" })) : (x.extend(n, { position: i.css("position"), zIndex: i.css("z-index") }), x.each(["top", "left", "bottom", "right"], function (t, e) { n[e] = i.css(e), isNaN(parseInt(n[e], 10)) && (n[e] = "auto") }), i.css({ position: "relative", top: 0, left: 0, right: "auto", bottom: "auto" })), i.css(e), t.css(n).show() }, removeWrapper: function (t) { var e = document.activeElement; return t.parent().is(".ui-effects-wrapper") && (t.parent().replaceWith(t), t[0] !== e && !x.contains(t[0], e) || x(e).trigger("focus")), t } }), x.extend(x.effects, { version: "1.12.1", define: function (t, e, i) { return i || (i = e, e = "effect"), x.effects.effect[t] = i, x.effects.effect[t].mode = e, i }, scaledDimensions: function (t, e, i) { if (0 === e) return { height: 0, width: 0, outerHeight: 0, outerWidth: 0 }; var n = "horizontal" !== i ? (e || 100) / 100 : 1, e = "vertical" !== i ? (e || 100) / 100 : 1; return { height: t.height() * e, width: t.width() * n, outerHeight: t.outerHeight() * e, outerWidth: t.outerWidth() * n } }, clipToBox: function (t) { return { width: t.clip.right - t.clip.left, height: t.clip.bottom - t.clip.top, left: t.clip.left, top: t.clip.top } }, unshift: function (t, e, i) { var n = t.queue(); 1 < e && n.splice.apply(n, [1, 0].concat(n.splice(e, i))), t.dequeue() }, saveStyle: function (t) { t.data(z, t[0].style.cssText) }, restoreStyle: function (t) { t[0].style.cssText = t.data(z) || "", t.removeData(z) }, mode: function (t, e) { t = t.is(":hidden"); return "toggle" === e && (e = t ? "show" : "hide"), (t ? "hide" === e : "show" === e) && (e = "none"), e }, getBaseline: function (t, e) { var i, n; switch (t[0]) { case "top": i = 0; break; case "middle": i = .5; break; case "bottom": i = 1; break; default: i = t[0] / e.height }switch (t[1]) { case "left": n = 0; break; case "center": n = .5; break; case "right": n = 1; break; default: n = t[1] / e.width }return { x: n, y: i } }, createPlaceholder: function (t) { var e, i = t.css("position"), n = t.position(); return t.css({ marginTop: t.css("marginTop"), marginBottom: t.css("marginBottom"), marginLeft: t.css("marginLeft"), marginRight: t.css("marginRight") }).outerWidth(t.outerWidth()).outerHeight(t.outerHeight()), /^(static|relative)/.test(i) && (i = "absolute", e = x("<" + t[0].nodeName + ">").insertAfter(t).css({ display: /^(inline|ruby)/.test(t.css("display")) ? "inline-block" : "block", visibility: "hidden", marginTop: t.css("marginTop"), marginBottom: t.css("marginBottom"), marginLeft: t.css("marginLeft"), marginRight: t.css("marginRight"), float: t.css("float") }).outerWidth(t.outerWidth()).outerHeight(t.outerHeight()).addClass("ui-effects-placeholder"), t.data(L + "placeholder", e)), t.css({ position: i, left: n.left, top: n.top }), e }, removePlaceholder: function (t) { var e = L + "placeholder", i = t.data(e); i && (i.remove(), t.removeData(e)) }, cleanUp: function (t) { x.effects.restoreStyle(t), x.effects.removePlaceholder(t) }, setTransition: function (n, t, s, o) { return o = o || {}, x.each(t, function (t, e) { var i = n.cssUnit(e); 0 < i[0] && (o[e] = i[0] * s + i[1]) }), o } }), x.fn.extend({ effect: function () { function t(t) { var e = x(this), i = x.effects.mode(e, a) || o; e.data(j, !0), l.push(i), o && ("show" === i || i === o && "hide" === i) && e.show(), o && "none" === i || x.effects.saveStyle(e), x.isFunction(t) && t() } var n = q.apply(this, arguments), s = x.effects.effect[n.effect], o = s.mode, e = n.queue, i = e || "fx", r = n.complete, a = n.mode, l = []; return x.fx.off || !s ? a ? this[a](n.duration, r) : this.each(function () { r && r.call(this) }) : !1 === e ? this.each(t).each(h) : this.queue(i, t).queue(i, h); function h(t) { var e = x(this); function i() { x.isFunction(r) && r.call(e[0]), x.isFunction(t) && t() } n.mode = l.shift(), !1 === x.uiBackCompat || o ? "none" === n.mode ? (e[a](), i()) : s.call(e[0], n, function () { e.removeData(j), x.effects.cleanUp(e), "hide" === n.mode && e.hide(), i() }) : (e.is(":hidden") ? "hide" === a : "show" === a) ? (e[a](), i()) : s.call(e[0], n, i) } }, show: (O = x.fn.show, function (t) { if (Y(t)) return O.apply(this, arguments); var e = q.apply(this, arguments); return e.mode = "show", this.effect.call(this, e) }), hide: (M = x.fn.hide, function (t) { if (Y(t)) return M.apply(this, arguments); var e = q.apply(this, arguments); return e.mode = "hide", this.effect.call(this, e) }), toggle: (N = x.fn.toggle, function (t) { if (Y(t) || "boolean" == typeof t) return N.apply(this, arguments); var e = q.apply(this, arguments); return e.mode = "toggle", this.effect.call(this, e) }), cssUnit: function (t) { var i = this.css(t), n = []; return x.each(["em", "px", "%", "pt"], function (t, e) { 0 < i.indexOf(e) && (n = [parseFloat(i), e]) }), n }, cssClip: function (t) { return t ? this.css("clip", "rect(" + t.top + "px " + t.right + "px " + t.bottom + "px " + t.left + "px)") : U(this.css("clip"), this) }, transfer: function (t, e) { var i = x(this), n = x(t.to), s = "fixed" === n.css("position"), o = x("body"), r = s ? o.scrollTop() : 0, a = s ? o.scrollLeft() : 0, o = n.offset(), o = { top: o.top - r, left: o.left - a, height: n.innerHeight(), width: n.innerWidth() }, n = i.offset(), l = x("<div class='ui-effects-transfer'></div>").appendTo("body").addClass(t.className).css({ top: n.top - r, left: n.left - a, height: i.innerHeight(), width: i.innerWidth(), position: s ? "fixed" : "absolute" }).animate(o, t.duration, t.easing, function () { l.remove(), x.isFunction(e) && e() }) } }), x.fx.step.clip = function (t) { t.clipInit || (t.start = x(t.elem).cssClip(), "string" == typeof t.end && (t.end = U(t.end, t.elem)), t.clipInit = !0), x(t.elem).cssClip({ top: t.pos * (t.end.top - t.start.top) + t.start.top, right: t.pos * (t.end.right - t.start.right) + t.start.right, bottom: t.pos * (t.end.bottom - t.start.bottom) + t.start.bottom, left: t.pos * (t.end.left - t.start.left) + t.start.left }) }, H = {}, x.each(["Quad", "Cubic", "Quart", "Quint", "Expo"], function (e, t) { H[t] = function (t) { return Math.pow(t, e + 2) } }), x.extend(H, { Sine: function (t) { return 1 - Math.cos(t * Math.PI / 2) }, Circ: function (t) { return 1 - Math.sqrt(1 - t * t) }, Elastic: function (t) { return 0 === t || 1 === t ? t : -Math.pow(2, 8 * (t - 1)) * Math.sin((80 * (t - 1) - 7.5) * Math.PI / 15) }, Back: function (t) { return t * t * (3 * t - 2) }, Bounce: function (t) { for (var e, i = 4; t < ((e = Math.pow(2, --i)) - 1) / 11;); return 1 / Math.pow(4, 3 - i) - 7.5625 * Math.pow((3 * e - 2) / 22 - t, 2) } }), x.each(H, function (t, e) { x.easing["easeIn" + t] = e, x.easing["easeOut" + t] = function (t) { return 1 - e(1 - t) }, x.easing["easeInOut" + t] = function (t) { return t < .5 ? e(2 * t) / 2 : 1 - e(-2 * t + 2) / 2 } }); var V = x.effects; x.effects.define("blind", "hide", function (t, e) { var i = { up: ["bottom", "top"], vertical: ["bottom", "top"], down: ["top", "bottom"], left: ["right", "left"], horizontal: ["right", "left"], right: ["left", "right"] }, n = x(this), s = t.direction || "up", o = n.cssClip(), r = { clip: x.extend({}, o) }, a = x.effects.createPlaceholder(n); r.clip[i[s][0]] = r.clip[i[s][1]], "show" === t.mode && (n.cssClip(r.clip), a && a.css(x.effects.clipToBox(r)), r.clip = o), a && a.animate(x.effects.clipToBox(r), t.duration, t.easing), n.animate(r, { queue: !1, duration: t.duration, easing: t.easing, complete: e }) }), x.effects.define("bounce", function (t, e) { var i, n, s = x(this), o = t.mode, r = "hide" === o, a = "show" === o, l = t.direction || "up", h = t.distance, c = t.times || 5, o = 2 * c + (a || r ? 1 : 0), u = t.duration / o, d = t.easing, p = "up" === l || "down" === l ? "top" : "left", f = "up" === l || "left" === l, g = 0, t = s.queue().length; for (x.effects.createPlaceholder(s), l = s.css(p), h = h || s["top" == p ? "outerHeight" : "outerWidth"]() / 3, a && ((n = { opacity: 1 })[p] = l, s.css("opacity", 0).css(p, f ? 2 * -h : 2 * h).animate(n, u, d)), r && (h /= Math.pow(2, c - 1)), (n = {})[p] = l; g < c; g++)(i = {})[p] = (f ? "-=" : "+=") + h, s.animate(i, u, d).animate(n, u, d), h = r ? 2 * h : h / 2; r && ((i = { opacity: 0 })[p] = (f ? "-=" : "+=") + h, s.animate(i, u, d)), s.queue(e), x.effects.unshift(s, t, 1 + o) }), x.effects.define("clip", "hide", function (t, e) { var i = {}, n = x(this), s = t.direction || "vertical", o = "both" === s, r = o || "horizontal" === s, o = o || "vertical" === s, s = n.cssClip(); i.clip = { top: o ? (s.bottom - s.top) / 2 : s.top, right: r ? (s.right - s.left) / 2 : s.right, bottom: o ? (s.bottom - s.top) / 2 : s.bottom, left: r ? (s.right - s.left) / 2 : s.left }, x.effects.createPlaceholder(n), "show" === t.mode && (n.cssClip(i.clip), i.clip = s), n.animate(i, { queue: !1, duration: t.duration, easing: t.easing, complete: e }) }), x.effects.define("drop", "hide", function (t, e) { var i = x(this), n = "show" === t.mode, s = t.direction || "left", o = "up" === s || "down" === s ? "top" : "left", r = "up" === s || "left" === s ? "-=" : "+=", a = "+=" == r ? "-=" : "+=", l = { opacity: 0 }; x.effects.createPlaceholder(i), s = t.distance || i["top" == o ? "outerHeight" : "outerWidth"](!0) / 2, l[o] = r + s, n && (i.css(l), l[o] = a + s, l.opacity = 1), i.animate(l, { queue: !1, duration: t.duration, easing: t.easing, complete: e }) }), x.effects.define("explode", "hide", function (t, e) { var i, n, s, o, r, a, l = t.pieces ? Math.round(Math.sqrt(t.pieces)) : 3, h = l, c = x(this), u = "show" === t.mode, d = c.show().css("visibility", "hidden").offset(), p = Math.ceil(c.outerWidth() / h), f = Math.ceil(c.outerHeight() / l), g = []; function m() { g.push(this), g.length === l * h && (c.css({ visibility: "visible" }), x(g).remove(), e()) } for (i = 0; i < l; i++)for (o = d.top + i * f, a = i - (l - 1) / 2, n = 0; n < h; n++)s = d.left + n * p, r = n - (h - 1) / 2, c.clone().appendTo("body").wrap("<div></div>").css({ position: "absolute", visibility: "visible", left: -n * p, top: -i * f }).parent().addClass("ui-effects-explode").css({ position: "absolute", overflow: "hidden", width: p, height: f, left: s + (u ? r * p : 0), top: o + (u ? a * f : 0), opacity: u ? 0 : 1 }).animate({ left: s + (u ? 0 : r * p), top: o + (u ? 0 : a * f), opacity: u ? 1 : 0 }, t.duration || 500, t.easing, m) }), x.effects.define("fade", "toggle", function (t, e) { var i = "show" === t.mode; x(this).css("opacity", i ? 0 : 1).animate({ opacity: i ? 1 : 0 }, { queue: !1, duration: t.duration, easing: t.easing, complete: e }) }), x.effects.define("fold", "hide", function (e, t) { var i = x(this), n = e.mode, s = "show" === n, o = "hide" === n, r = e.size || 15, a = /([0-9]+)%/.exec(r), l = !!e.horizFirst ? ["right", "bottom"] : ["bottom", "right"], h = e.duration / 2, c = x.effects.createPlaceholder(i), u = i.cssClip(), d = { clip: x.extend({}, u) }, p = { clip: x.extend({}, u) }, f = [u[l[0]], u[l[1]]], n = i.queue().length; a && (r = parseInt(a[1], 10) / 100 * f[o ? 0 : 1]), d.clip[l[0]] = r, p.clip[l[0]] = r, p.clip[l[1]] = 0, s && (i.cssClip(p.clip), c && c.css(x.effects.clipToBox(p)), p.clip = u), i.queue(function (t) { c && c.animate(x.effects.clipToBox(d), h, e.easing).animate(x.effects.clipToBox(p), h, e.easing), t() }).animate(d, h, e.easing).animate(p, h, e.easing).queue(t), x.effects.unshift(i, n, 4) }), x.effects.define("highlight", "show", function (t, e) { var i = x(this), n = { backgroundColor: i.css("backgroundColor") }; "hide" === t.mode && (n.opacity = 0), x.effects.saveStyle(i), i.css({ backgroundImage: "none", backgroundColor: t.color || "#ffff99" }).animate(n, { queue: !1, duration: t.duration, easing: t.easing, complete: e }) }), x.effects.define("size", function (n, e) { var s, i = x(this), t = ["fontSize"], o = ["borderTopWidth", "borderBottomWidth", "paddingTop", "paddingBottom"], r = ["borderLeftWidth", "borderRightWidth", "paddingLeft", "paddingRight"], a = n.mode, l = "effect" !== a, h = n.scale || "both", c = n.origin || ["middle", "center"], u = i.css("position"), d = i.position(), p = x.effects.scaledDimensions(i), f = n.from || p, g = n.to || x.effects.scaledDimensions(i, 0); x.effects.createPlaceholder(i), "show" === a && (a = f, f = g, g = a), s = { from: { y: f.height / p.height, x: f.width / p.width }, to: { y: g.height / p.height, x: g.width / p.width } }, "box" !== h && "both" !== h || (s.from.y !== s.to.y && (f = x.effects.setTransition(i, o, s.from.y, f), g = x.effects.setTransition(i, o, s.to.y, g)), s.from.x !== s.to.x && (f = x.effects.setTransition(i, r, s.from.x, f), g = x.effects.setTransition(i, r, s.to.x, g))), "content" !== h && "both" !== h || s.from.y !== s.to.y && (f = x.effects.setTransition(i, t, s.from.y, f), g = x.effects.setTransition(i, t, s.to.y, g)), c && (c = x.effects.getBaseline(c, p), f.top = (p.outerHeight - f.outerHeight) * c.y + d.top, f.left = (p.outerWidth - f.outerWidth) * c.x + d.left, g.top = (p.outerHeight - g.outerHeight) * c.y + d.top, g.left = (p.outerWidth - g.outerWidth) * c.x + d.left), i.css(f), "content" !== h && "both" !== h || (o = o.concat(["marginTop", "marginBottom"]).concat(t), r = r.concat(["marginLeft", "marginRight"]), i.find("*[width]").each(function () { var t = x(this), e = x.effects.scaledDimensions(t), i = { height: e.height * s.from.y, width: e.width * s.from.x, outerHeight: e.outerHeight * s.from.y, outerWidth: e.outerWidth * s.from.x }, e = { height: e.height * s.to.y, width: e.width * s.to.x, outerHeight: e.height * s.to.y, outerWidth: e.width * s.to.x }; s.from.y !== s.to.y && (i = x.effects.setTransition(t, o, s.from.y, i), e = x.effects.setTransition(t, o, s.to.y, e)), s.from.x !== s.to.x && (i = x.effects.setTransition(t, r, s.from.x, i), e = x.effects.setTransition(t, r, s.to.x, e)), l && x.effects.saveStyle(t), t.css(i), t.animate(e, n.duration, n.easing, function () { l && x.effects.restoreStyle(t) }) })), i.animate(g, { queue: !1, duration: n.duration, easing: n.easing, complete: function () { var t = i.offset(); 0 === g.opacity && i.css("opacity", f.opacity), l || (i.css("position", "static" === u ? "relative" : u).offset(t), x.effects.saveStyle(i)), e() } }) }), x.effects.define("scale", function (t, e) { var i = x(this), n = t.mode, n = parseInt(t.percent, 10) || (0 === parseInt(t.percent, 10) || "effect" !== n ? 0 : 100), n = x.extend(!0, { from: x.effects.scaledDimensions(i), to: x.effects.scaledDimensions(i, n, t.direction || "both"), origin: t.origin || ["middle", "center"] }, t); t.fade && (n.from.opacity = 1, n.to.opacity = 0), x.effects.effect.size.call(this, n, e) }), x.effects.define("puff", "hide", function (t, e) { t = x.extend(!0, {}, t, { fade: !0, percent: parseInt(t.percent, 10) || 150 }); x.effects.effect.scale.call(this, t, e) }), x.effects.define("pulsate", "show", function (t, e) { var i = x(this), n = t.mode, s = "show" === n, n = s || "hide" === n, o = 2 * (t.times || 5) + (n ? 1 : 0), r = t.duration / o, a = 0, l = 1, n = i.queue().length; for (!s && i.is(":visible") || (i.css("opacity", 0).show(), a = 1); l < o; l++)i.animate({ opacity: a }, r, t.easing), a = 1 - a; i.animate({ opacity: a }, r, t.easing), i.queue(e), x.effects.unshift(i, n, 1 + o) }), x.effects.define("shake", function (t, e) { var i = 1, n = x(this), s = t.direction || "left", o = t.distance || 20, r = t.times || 3, a = 2 * r + 1, l = Math.round(t.duration / a), h = "up" === s || "down" === s ? "top" : "left", c = "up" === s || "left" === s, u = {}, d = {}, p = {}, s = n.queue().length; for (x.effects.createPlaceholder(n), u[h] = (c ? "-=" : "+=") + o, d[h] = (c ? "+=" : "-=") + 2 * o, p[h] = (c ? "-=" : "+=") + 2 * o, n.animate(u, l, t.easing); i < r; i++)n.animate(d, l, t.easing).animate(p, l, t.easing); n.animate(d, l, t.easing).animate(u, l / 2, t.easing).queue(e), x.effects.unshift(n, s, 1 + a) }), x.effects.define("slide", "show", function (t, e) { var i, n, s = x(this), o = { up: ["bottom", "top"], down: ["top", "bottom"], left: ["right", "left"], right: ["left", "right"] }, r = t.mode, a = t.direction || "left", l = "up" === a || "down" === a ? "top" : "left", h = "up" === a || "left" === a, c = t.distance || s["top" == l ? "outerHeight" : "outerWidth"](!0), u = {}; x.effects.createPlaceholder(s), i = s.cssClip(), n = s.position()[l], u[l] = (h ? -1 : 1) * c + n, u.clip = s.cssClip(), u.clip[o[a][1]] = u.clip[o[a][0]], "show" === r && (s.cssClip(u.clip), s.css(l, u[l]), u.clip = i, u[l] = n), s.animate(u, { queue: !1, duration: t.duration, easing: t.easing, complete: e }) }); !1 !== x.uiBackCompat && (V = x.effects.define("transfer", function (t, e) { x(this).transfer(t, e) })); x.ui.focusable = function (t, e) { var i, n, s, o, r = t.nodeName.toLowerCase(); return "area" === r ? (n = (i = t.parentNode).name, !(!t.href || !n || "map" !== i.nodeName.toLowerCase()) && (0 < (n = x("img[usemap='#" + n + "']")).length && n.is(":visible"))) : (/^(input|select|textarea|button|object)$/.test(r) ? (s = !t.disabled) && (o = x(t).closest("fieldset")[0]) && (s = !o.disabled) : s = "a" === r && t.href || e, s && x(t).is(":visible") && function (t) { var e = t.css("visibility"); for (; "inherit" === e;)t = t.parent(), e = t.css("visibility"); return "hidden" !== e }(x(t))) }, x.extend(x.expr[":"], { focusable: function (t) { return x.ui.focusable(t, null != x.attr(t, "tabindex")) } }); x.ui.focusable, x.fn.form = function () { return "string" == typeof this[0].form ? this.closest("form") : x(this[0].form) }, x.ui.formResetMixin = { _formResetHandler: function () { var e = x(this); setTimeout(function () { var t = e.data("ui-form-reset-instances"); x.each(t, function () { this.refresh() }) }) }, _bindFormResetHandler: function () { var t; this.form = this.element.form(), this.form.length && ((t = this.form.data("ui-form-reset-instances") || []).length || this.form.on("reset.ui-form-reset", this._formResetHandler), t.push(this), this.form.data("ui-form-reset-instances", t)) }, _unbindFormResetHandler: function () { var t; this.form.length && ((t = this.form.data("ui-form-reset-instances")).splice(x.inArray(this, t), 1), t.length ? this.form.data("ui-form-reset-instances", t) : this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset")) } }; "1.7" === x.fn.jquery.substring(0, 3) && (x.each(["Width", "Height"], function (t, i) { var s = "Width" === i ? ["Left", "Right"] : ["Top", "Bottom"], n = i.toLowerCase(), o = { innerWidth: x.fn.innerWidth, innerHeight: x.fn.innerHeight, outerWidth: x.fn.outerWidth, outerHeight: x.fn.outerHeight }; function r(t, e, i, n) { return x.each(s, function () { e -= parseFloat(x.css(t, "padding" + this)) || 0, i && (e -= parseFloat(x.css(t, "border" + this + "Width")) || 0), n && (e -= parseFloat(x.css(t, "margin" + this)) || 0) }), e } x.fn["inner" + i] = function (t) { return void 0 === t ? o["inner" + i].call(this) : this.each(function () { x(this).css(n, r(this, t) + "px") }) }, x.fn["outer" + i] = function (t, e) { return "number" != typeof t ? o["outer" + i].call(this, t) : this.each(function () { x(this).css(n, r(this, t, !0, e) + "px") }) } }), x.fn.addBack = function (t) { return this.add(null == t ? this.prevObject : this.prevObject.filter(t)) }); var K, X; x.ui.keyCode = { BACKSPACE: 8, COMMA: 188, DELETE: 46, DOWN: 40, END: 35, ENTER: 13, ESCAPE: 27, HOME: 36, LEFT: 37, PAGE_DOWN: 34, PAGE_UP: 33, PERIOD: 190, RIGHT: 39, SPACE: 32, TAB: 9, UP: 38 }, x.ui.escapeSelector = (K = /([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g, function (t) { return t.replace(K, "\\$1") }), x.fn.labels = function () { var t, e, i; return this[0].labels && this[0].labels.length ? this.pushStack(this[0].labels) : (e = this.eq(0).parents("label"), (t = this.attr("id")) && (i = (i = this.eq(0).parents().last()).add((i.length ? i : this).siblings()), t = "label[for='" + x.ui.escapeSelector(t) + "']", e = e.add(i.find(t).addBack(t))), this.pushStack(e)) }, x.fn.scrollParent = function (t) { var e = this.css("position"), i = "absolute" === e, n = t ? /(auto|scroll|hidden)/ : /(auto|scroll)/, t = this.parents().filter(function () { var t = x(this); return (!i || "static" !== t.css("position")) && n.test(t.css("overflow") + t.css("overflow-y") + t.css("overflow-x")) }).eq(0); return "fixed" !== e && t.length ? t : x(this[0].ownerDocument || document) }, x.extend(x.expr[":"], { tabbable: function (t) { var e = x.attr(t, "tabindex"), i = null != e; return (!i || 0 <= e) && x.ui.focusable(t, i) } }), x.fn.extend({ uniqueId: (X = 0, function () { return this.each(function () { this.id || (this.id = "ui-id-" + ++X) }) }), removeUniqueId: function () { return this.each(function () { /^ui-id-\d+$/.test(this.id) && x(this).removeAttr("id") }) } }), x.widget("ui.accordion", { version: "1.12.1", options: { active: 0, animate: {}, classes: { "ui-accordion-header": "ui-corner-top", "ui-accordion-header-collapsed": "ui-corner-all", "ui-accordion-content": "ui-corner-bottom" }, collapsible: !1, event: "click", header: "> li > :first-child, > :not(li):even", heightStyle: "auto", icons: { activeHeader: "ui-icon-triangle-1-s", header: "ui-icon-triangle-1-e" }, activate: null, beforeActivate: null }, hideProps: { borderTopWidth: "hide", borderBottomWidth: "hide", paddingTop: "hide", paddingBottom: "hide", height: "hide" }, showProps: { borderTopWidth: "show", borderBottomWidth: "show", paddingTop: "show", paddingBottom: "show", height: "show" }, _create: function () { var t = this.options; this.prevShow = this.prevHide = x(), this._addClass("ui-accordion", "ui-widget ui-helper-reset"), this.element.attr("role", "tablist"), t.collapsible || !1 !== t.active && null != t.active || (t.active = 0), this._processPanels(), t.active < 0 && (t.active += this.headers.length), this._refresh() }, _getCreateEventData: function () { return { header: this.active, panel: this.active.length ? this.active.next() : x() } }, _createIcons: function () { var t, e = this.options.icons; e && (t = x("<span>"), this._addClass(t, "ui-accordion-header-icon", "ui-icon " + e.header), t.prependTo(this.headers), t = this.active.children(".ui-accordion-header-icon"), this._removeClass(t, e.header)._addClass(t, null, e.activeHeader)._addClass(this.headers, "ui-accordion-icons")) }, _destroyIcons: function () { this._removeClass(this.headers, "ui-accordion-icons"), this.headers.children(".ui-accordion-header-icon").remove() }, _destroy: function () { var t; this.element.removeAttr("role"), this.headers.removeAttr("role aria-expanded aria-selected aria-controls tabIndex").removeUniqueId(), this._destroyIcons(), t = this.headers.next().css("display", "").removeAttr("role aria-hidden aria-labelledby").removeUniqueId(), "content" !== this.options.heightStyle && t.css("height", "") }, _setOption: function (t, e) { "active" !== t ? ("event" === t && (this.options.event && this._off(this.headers, this.options.event), this._setupEvents(e)), this._super(t, e), "collapsible" !== t || e || !1 !== this.options.active || this._activate(0), "icons" === t && (this._destroyIcons(), e && this._createIcons())) : this._activate(e) }, _setOptionDisabled: function (t) { this._super(t), this.element.attr("aria-disabled", t), this._toggleClass(null, "ui-state-disabled", !!t), this._toggleClass(this.headers.add(this.headers.next()), null, "ui-state-disabled", !!t) }, _keydown: function (t) { if (!t.altKey && !t.ctrlKey) { var e = x.ui.keyCode, i = this.headers.length, n = this.headers.index(t.target), s = !1; switch (t.keyCode) { case e.RIGHT: case e.DOWN: s = this.headers[(n + 1) % i]; break; case e.LEFT: case e.UP: s = this.headers[(n - 1 + i) % i]; break; case e.SPACE: case e.ENTER: this._eventHandler(t); break; case e.HOME: s = this.headers[0]; break; case e.END: s = this.headers[i - 1] }s && (x(t.target).attr("tabIndex", -1), x(s).attr("tabIndex", 0), x(s).trigger("focus"), t.preventDefault()) } }, _panelKeyDown: function (t) { t.keyCode === x.ui.keyCode.UP && t.ctrlKey && x(t.currentTarget).prev().trigger("focus") }, refresh: function () { var t = this.options; this._processPanels(), !1 === t.active && !0 === t.collapsible || !this.headers.length ? (t.active = !1, this.active = x()) : !1 === t.active ? this._activate(0) : this.active.length && !x.contains(this.element[0], this.active[0]) ? this.headers.length === this.headers.find(".ui-state-disabled").length ? (t.active = !1, this.active = x()) : this._activate(Math.max(0, t.active - 1)) : t.active = this.headers.index(this.active), this._destroyIcons(), this._refresh() }, _processPanels: function () { var t = this.headers, e = this.panels; this.headers = this.element.find(this.options.header), this._addClass(this.headers, "ui-accordion-header ui-accordion-header-collapsed", "ui-state-default"), this.panels = this.headers.next().filter(":not(.ui-accordion-content-active)").hide(), this._addClass(this.panels, "ui-accordion-content", "ui-helper-reset ui-widget-content"), e && (this._off(t.not(this.headers)), this._off(e.not(this.panels))) }, _refresh: function () { var i, t = this.options, e = t.heightStyle, n = this.element.parent(); this.active = this._findActive(t.active), this._addClass(this.active, "ui-accordion-header-active", "ui-state-active")._removeClass(this.active, "ui-accordion-header-collapsed"), this._addClass(this.active.next(), "ui-accordion-content-active"), this.active.next().show(), this.headers.attr("role", "tab").each(function () { var t = x(this), e = t.uniqueId().attr("id"), i = t.next(), n = i.uniqueId().attr("id"); t.attr("aria-controls", n), i.attr("aria-labelledby", e) }).next().attr("role", "tabpanel"), this.headers.not(this.active).attr({ "aria-selected": "false", "aria-expanded": "false", tabIndex: -1 }).next().attr({ "aria-hidden": "true" }).hide(), this.active.length ? this.active.attr({ "aria-selected": "true", "aria-expanded": "true", tabIndex: 0 }).next().attr({ "aria-hidden": "false" }) : this.headers.eq(0).attr("tabIndex", 0), this._createIcons(), this._setupEvents(t.event), "fill" === e ? (i = n.height(), this.element.siblings(":visible").each(function () { var t = x(this), e = t.css("position"); "absolute" !== e && "fixed" !== e && (i -= t.outerHeight(!0)) }), this.headers.each(function () { i -= x(this).outerHeight(!0) }), this.headers.next().each(function () { x(this).height(Math.max(0, i - x(this).innerHeight() + x(this).height())) }).css("overflow", "auto")) : "auto" === e && (i = 0, this.headers.next().each(function () { var t = x(this).is(":visible"); t || x(this).show(), i = Math.max(i, x(this).css("height", "").height()), t || x(this).hide() }).height(i)) }, _activate: function (t) { t = this._findActive(t)[0]; t !== this.active[0] && (t = t || this.active[0], this._eventHandler({ target: t, currentTarget: t, preventDefault: x.noop })) }, _findActive: function (t) { return "number" == typeof t ? this.headers.eq(t) : x() }, _setupEvents: function (t) { var i = { keydown: "_keydown" }; t && x.each(t.split(" "), function (t, e) { i[e] = "_eventHandler" }), this._off(this.headers.add(this.headers.next())), this._on(this.headers, i), this._on(this.headers.next(), { keydown: "_panelKeyDown" }), this._hoverable(this.headers), this._focusable(this.headers) }, _eventHandler: function (t) { var e = this.options, i = this.active, n = x(t.currentTarget), s = n[0] === i[0], o = s && e.collapsible, r = o ? x() : n.next(), a = i.next(), r = { oldHeader: i, oldPanel: a, newHeader: o ? x() : n, newPanel: r }; t.preventDefault(), s && !e.collapsible || !1 === this._trigger("beforeActivate", t, r) || (e.active = !o && this.headers.index(n), this.active = s ? x() : n, this._toggle(r), this._removeClass(i, "ui-accordion-header-active", "ui-state-active"), e.icons && (i = i.children(".ui-accordion-header-icon"), this._removeClass(i, null, e.icons.activeHeader)._addClass(i, null, e.icons.header)), s || (this._removeClass(n, "ui-accordion-header-collapsed")._addClass(n, "ui-accordion-header-active", "ui-state-active"), e.icons && (s = n.children(".ui-accordion-header-icon"), this._removeClass(s, null, e.icons.header)._addClass(s, null, e.icons.activeHeader)), this._addClass(n.next(), "ui-accordion-content-active"))) }, _toggle: function (t) { var e = t.newPanel, i = this.prevShow.length ? this.prevShow : t.oldPanel; this.prevShow.add(this.prevHide).stop(!0, !0), this.prevShow = e, this.prevHide = i, this.options.animate ? this._animate(e, i, t) : (i.hide(), e.show(), this._toggleComplete(t)), i.attr({ "aria-hidden": "true" }), i.prev().attr({ "aria-selected": "false", "aria-expanded": "false" }), e.length && i.length ? i.prev().attr({ tabIndex: -1, "aria-expanded": "false" }) : e.length && this.headers.filter(function () { return 0 === parseInt(x(this).attr("tabIndex"), 10) }).attr("tabIndex", -1), e.attr("aria-hidden", "false").prev().attr({ "aria-selected": "true", "aria-expanded": "true", tabIndex: 0 }) }, _animate: function (t, i, e) { var n, s, o, r = this, a = 0, l = t.css("box-sizing"), h = t.length && (!i.length || t.index() < i.index()), c = this.options.animate || {}, u = h && c.down || c, h = function () { r._toggleComplete(e) }; return "number" == typeof u && (o = u), "string" == typeof u && (s = u), s = s || u.easing || c.easing, o = o || u.duration || c.duration, i.length ? t.length ? (n = t.show().outerHeight(), i.animate(this.hideProps, { duration: o, easing: s, step: function (t, e) { e.now = Math.round(t) } }), void t.hide().animate(this.showProps, { duration: o, easing: s, complete: h, step: function (t, e) { e.now = Math.round(t), "height" !== e.prop ? "content-box" === l && (a += e.now) : "content" !== r.options.heightStyle && (e.now = Math.round(n - i.outerHeight() - a), a = 0) } })) : i.animate(this.hideProps, o, s, h) : t.animate(this.showProps, o, s, h) }, _toggleComplete: function (t) { var e = t.oldPanel, i = e.prev(); this._removeClass(e, "ui-accordion-content-active"), this._removeClass(i, "ui-accordion-header-active")._addClass(i, "ui-accordion-header-collapsed"), e.length && (e.parent()[0].className = e.parent()[0].className), this._trigger("activate", null, t) } }), x.ui.safeActiveElement = function (e) { var i; try { i = e.activeElement } catch (t) { i = e.body } return (i = i || e.body).nodeName || (i = e.body), i }, x.widget("ui.menu", { version: "1.12.1", defaultElement: "<ul>", delay: 300, options: { icons: { submenu: "ui-icon-caret-1-e" }, items: "> *", menus: "ul", position: { my: "left top", at: "right top" }, role: "menu", blur: null, focus: null, select: null }, _create: function () { this.activeMenu = this.element, this.mouseHandled = !1, this.element.uniqueId().attr({ role: this.options.role, tabIndex: 0 }), this._addClass("ui-menu", "ui-widget ui-widget-content"), this._on({ "mousedown .ui-menu-item": function (t) { t.preventDefault() }, "click .ui-menu-item": function (t) { var e = x(t.target), i = x(x.ui.safeActiveElement(this.document[0])); !this.mouseHandled && e.not(".ui-state-disabled").length && (this.select(t), t.isPropagationStopped() || (this.mouseHandled = !0), e.has(".ui-menu").length ? this.expand(t) : !this.element.is(":focus") && i.closest(".ui-menu").length && (this.element.trigger("focus", [!0]), this.active && 1 === this.active.parents(".ui-menu").length && clearTimeout(this.timer))) }, "mouseenter .ui-menu-item": function (t) { var e, i; this.previousFilter || (e = x(t.target).closest(".ui-menu-item"), i = x(t.currentTarget), e[0] === i[0] && (this._removeClass(i.siblings().children(".ui-state-active"), null, "ui-state-active"), this.focus(t, i))) }, mouseleave: "collapseAll", "mouseleave .ui-menu": "collapseAll", focus: function (t, e) { var i = this.active || this.element.find(this.options.items).eq(0); e || this.focus(t, i) }, blur: function (t) { this._delay(function () { x.contains(this.element[0], x.ui.safeActiveElement(this.document[0])) || this.collapseAll(t) }) }, keydown: "_keydown" }), this.refresh(), this._on(this.document, { click: function (t) { this._closeOnDocumentClick(t) && this.collapseAll(t), this.mouseHandled = !1 } }) }, _destroy: function () { var t = this.element.find(".ui-menu-item").removeAttr("role aria-disabled").children(".ui-menu-item-wrapper").removeUniqueId().removeAttr("tabIndex role aria-haspopup"); this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeAttr("role aria-labelledby aria-expanded aria-hidden aria-disabled tabIndex").removeUniqueId().show(), t.children().each(function () { var t = x(this); t.data("ui-menu-submenu-caret") && t.remove() }) }, _keydown: function (t) { var e, i, n, s = !0; switch (t.keyCode) { case x.ui.keyCode.PAGE_UP: this.previousPage(t); break; case x.ui.keyCode.PAGE_DOWN: this.nextPage(t); break; case x.ui.keyCode.HOME: this._move("first", "first", t); break; case x.ui.keyCode.END: this._move("last", "last", t); break; case x.ui.keyCode.UP: this.previous(t); break; case x.ui.keyCode.DOWN: this.next(t); break; case x.ui.keyCode.LEFT: this.collapse(t); break; case x.ui.keyCode.RIGHT: this.active && !this.active.is(".ui-state-disabled") && this.expand(t); break; case x.ui.keyCode.ENTER: case x.ui.keyCode.SPACE: this._activate(t); break; case x.ui.keyCode.ESCAPE: this.collapse(t); break; default: s = !1, e = this.previousFilter || "", n = !1, i = 96 <= t.keyCode && t.keyCode <= 105 ? (t.keyCode - 96).toString() : String.fromCharCode(t.keyCode), clearTimeout(this.filterTimer), i === e ? n = !0 : i = e + i, e = this._filterMenuItems(i), (e = n && -1 !== e.index(this.active.next()) ? this.active.nextAll(".ui-menu-item") : e).length || (i = String.fromCharCode(t.keyCode), e = this._filterMenuItems(i)), e.length ? (this.focus(t, e), this.previousFilter = i, this.filterTimer = this._delay(function () { delete this.previousFilter }, 1e3)) : delete this.previousFilter }s && t.preventDefault() }, _activate: function (t) { this.active && !this.active.is(".ui-state-disabled") && (this.active.children("[aria-haspopup='true']").length ? this.expand(t) : this.select(t)) }, refresh: function () { var t, e, n = this, s = this.options.icons.submenu, i = this.element.find(this.options.menus); this._toggleClass("ui-menu-icons", null, !!this.element.find(".ui-icon").length), e = i.filter(":not(.ui-menu)").hide().attr({ role: this.options.role, "aria-hidden": "true", "aria-expanded": "false" }).each(function () { var t = x(this), e = t.prev(), i = x("<span>").data("ui-menu-submenu-caret", !0); n._addClass(i, "ui-menu-icon", "ui-icon " + s), e.attr("aria-haspopup", "true").prepend(i), t.attr("aria-labelledby", e.attr("id")) }), this._addClass(e, "ui-menu", "ui-widget ui-widget-content ui-front"), (t = i.add(this.element).find(this.options.items)).not(".ui-menu-item").each(function () { var t = x(this); n._isDivider(t) && n._addClass(t, "ui-menu-divider", "ui-widget-content") }), i = (e = t.not(".ui-menu-item, .ui-menu-divider")).children().not(".ui-menu").uniqueId().attr({ tabIndex: -1, role: this._itemRole() }), this._addClass(e, "ui-menu-item")._addClass(i, "ui-menu-item-wrapper"), t.filter(".ui-state-disabled").attr("aria-disabled", "true"), this.active && !x.contains(this.element[0], this.active[0]) && this.blur() }, _itemRole: function () { return { menu: "menuitem", listbox: "option" }[this.options.role] }, _setOption: function (t, e) { var i; "icons" === t && (i = this.element.find(".ui-menu-icon"), this._removeClass(i, null, this.options.icons.submenu)._addClass(i, null, e.submenu)), this._super(t, e) }, _setOptionDisabled: function (t) { this._super(t), this.element.attr("aria-disabled", String(t)), this._toggleClass(null, "ui-state-disabled", !!t) }, focus: function (t, e) { var i; this.blur(t, t && "focus" === t.type), this._scrollIntoView(e), this.active = e.first(), i = this.active.children(".ui-menu-item-wrapper"), this._addClass(i, null, "ui-state-active"), this.options.role && this.element.attr("aria-activedescendant", i.attr("id")), i = this.active.parent().closest(".ui-menu-item").children(".ui-menu-item-wrapper"), this._addClass(i, null, "ui-state-active"), t && "keydown" === t.type ? this._close() : this.timer = this._delay(function () { this._close() }, this.delay), (i = e.children(".ui-menu")).length && t && /^mouse/.test(t.type) && this._startOpening(i), this.activeMenu = e.parent(), this._trigger("focus", t, { item: e }) }, _scrollIntoView: function (t) { var e, i, n; this._hasScroll() && (i = parseFloat(x.css(this.activeMenu[0], "borderTopWidth")) || 0, n = parseFloat(x.css(this.activeMenu[0], "paddingTop")) || 0, e = t.offset().top - this.activeMenu.offset().top - i - n, i = this.activeMenu.scrollTop(), n = this.activeMenu.height(), t = t.outerHeight(), e < 0 ? this.activeMenu.scrollTop(i + e) : n < e + t && this.activeMenu.scrollTop(i + e - n + t)) }, blur: function (t, e) { e || clearTimeout(this.timer), this.active && (this._removeClass(this.active.children(".ui-menu-item-wrapper"), null, "ui-state-active"), this._trigger("blur", t, { item: this.active }), this.active = null) }, _startOpening: function (t) { clearTimeout(this.timer), "true" === t.attr("aria-hidden") && (this.timer = this._delay(function () { this._close(), this._open(t) }, this.delay)) }, _open: function (t) { var e = x.extend({ of: this.active }, this.options.position); clearTimeout(this.timer), this.element.find(".ui-menu").not(t.parents(".ui-menu")).hide().attr("aria-hidden", "true"), t.show().removeAttr("aria-hidden").attr("aria-expanded", "true").position(e) }, collapseAll: function (e, i) { clearTimeout(this.timer), this.timer = this._delay(function () { var t = i ? this.element : x(e && e.target).closest(this.element.find(".ui-menu")); t.length || (t = this.element), this._close(t), this.blur(e), this._removeClass(t.find(".ui-state-active"), null, "ui-state-active"), this.activeMenu = t }, this.delay) }, _close: function (t) { (t = t || (this.active ? this.active.parent() : this.element)).find(".ui-menu").hide().attr("aria-hidden", "true").attr("aria-expanded", "false") }, _closeOnDocumentClick: function (t) { return !x(t.target).closest(".ui-menu").length }, _isDivider: function (t) { return !/[^\-\u2014\u2013\s]/.test(t.text()) }, collapse: function (t) { var e = this.active && this.active.parent().closest(".ui-menu-item", this.element); e && e.length && (this._close(), this.focus(t, e)) }, expand: function (t) { var e = this.active && this.active.children(".ui-menu ").find(this.options.items).first(); e && e.length && (this._open(e.parent()), this._delay(function () { this.focus(t, e) })) }, next: function (t) { this._move("next", "first", t) }, previous: function (t) { this._move("prev", "last", t) }, isFirstItem: function () { return this.active && !this.active.prevAll(".ui-menu-item").length }, isLastItem: function () { return this.active && !this.active.nextAll(".ui-menu-item").length }, _move: function (t, e, i) { var n; this.active && (n = "first" === t || "last" === t ? this.active["first" === t ? "prevAll" : "nextAll"](".ui-menu-item").eq(-1) : this.active[t + "All"](".ui-menu-item").eq(0)), n && n.length && this.active || (n = this.activeMenu.find(this.options.items)[e]()), this.focus(i, n) }, nextPage: function (t) { var e, i, n; this.active ? this.isLastItem() || (this._hasScroll() ? (i = this.active.offset().top, n = this.element.height(), this.active.nextAll(".ui-menu-item").each(function () { return (e = x(this)).offset().top - i - n < 0 }), this.focus(t, e)) : this.focus(t, this.activeMenu.find(this.options.items)[this.active ? "last" : "first"]())) : this.next(t) }, previousPage: function (t) { var e, i, n; this.active ? this.isFirstItem() || (this._hasScroll() ? (i = this.active.offset().top, n = this.element.height(), this.active.prevAll(".ui-menu-item").each(function () { return 0 < (e = x(this)).offset().top - i + n }), this.focus(t, e)) : this.focus(t, this.activeMenu.find(this.options.items).first())) : this.next(t) }, _hasScroll: function () { return this.element.outerHeight() < this.element.prop("scrollHeight") }, select: function (t) { this.active = this.active || x(t.target).closest(".ui-menu-item"); var e = { item: this.active }; this.active.has(".ui-menu").length || this.collapseAll(t, !0), this._trigger("select", t, e) }, _filterMenuItems: function (t) { var t = t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&"), e = new RegExp("^" + t, "i"); return this.activeMenu.find(this.options.items).filter(".ui-menu-item").filter(function () { return e.test(x.trim(x(this).children(".ui-menu-item-wrapper").text())) }) } }); x.widget("ui.autocomplete", { version: "1.12.1", defaultElement: "<input>", options: { appendTo: null, autoFocus: !1, delay: 300, minLength: 1, position: { my: "left top", at: "left bottom", collision: "none" }, source: null, change: null, close: null, focus: null, open: null, response: null, search: null, select: null }, requestIndex: 0, pending: 0, _create: function () { var i, n, s, t = this.element[0].nodeName.toLowerCase(), e = "textarea" === t, t = "input" === t; this.isMultiLine = e || !t && this._isContentEditable(this.element), this.valueMethod = this.element[e || t ? "val" : "text"], this.isNewMenu = !0, this._addClass("ui-autocomplete-input"), this.element.attr("autocomplete", "off"), this._on(this.element, { keydown: function (t) { if (this.element.prop("readOnly")) n = s = i = !0; else { n = s = i = !1; var e = x.ui.keyCode; switch (t.keyCode) { case e.PAGE_UP: i = !0, this._move("previousPage", t); break; case e.PAGE_DOWN: i = !0, this._move("nextPage", t); break; case e.UP: i = !0, this._keyEvent("previous", t); break; case e.DOWN: i = !0, this._keyEvent("next", t); break; case e.ENTER: this.menu.active && (i = !0, t.preventDefault(), this.menu.select(t)); break; case e.TAB: this.menu.active && this.menu.select(t); break; case e.ESCAPE: this.menu.element.is(":visible") && (this.isMultiLine || this._value(this.term), this.close(t), t.preventDefault()); break; default: n = !0, this._searchTimeout(t) } } }, keypress: function (t) { if (i) return i = !1, void (this.isMultiLine && !this.menu.element.is(":visible") || t.preventDefault()); if (!n) { var e = x.ui.keyCode; switch (t.keyCode) { case e.PAGE_UP: this._move("previousPage", t); break; case e.PAGE_DOWN: this._move("nextPage", t); break; case e.UP: this._keyEvent("previous", t); break; case e.DOWN: this._keyEvent("next", t) } } }, input: function (t) { if (s) return s = !1, void t.preventDefault(); this._searchTimeout(t) }, focus: function () { this.selectedItem = null, this.previous = this._value() }, blur: function (t) { this.cancelBlur ? delete this.cancelBlur : (clearTimeout(this.searching), this.close(t), this._change(t)) } }), this._initSource(), this.menu = x("<ul>").appendTo(this._appendTo()).menu({ role: null }).hide().menu("instance"), this._addClass(this.menu.element, "ui-autocomplete", "ui-front"), this._on(this.menu.element, { mousedown: function (t) { t.preventDefault(), this.cancelBlur = !0, this._delay(function () { delete this.cancelBlur, this.element[0] !== x.ui.safeActiveElement(this.document[0]) && this.element.trigger("focus") }) }, menufocus: function (t, e) { var i; if (this.isNewMenu && (this.isNewMenu = !1, t.originalEvent && /^mouse/.test(t.originalEvent.type))) return this.menu.blur(), void this.document.one("mousemove", function () { x(t.target).trigger(t.originalEvent) }); i = e.item.data("ui-autocomplete-item"), !1 !== this._trigger("focus", t, { item: i }) && t.originalEvent && /^key/.test(t.originalEvent.type) && this._value(i.value), (i = e.item.attr("aria-label") || i.value) && x.trim(i).length && (this.liveRegion.children().hide(), x("<div>").text(i).appendTo(this.liveRegion)) }, menuselect: function (t, e) { var i = e.item.data("ui-autocomplete-item"), n = this.previous; this.element[0] !== x.ui.safeActiveElement(this.document[0]) && (this.element.trigger("focus"), this.previous = n, this._delay(function () { this.previous = n, this.selectedItem = i })), !1 !== this._trigger("select", t, { item: i }) && this._value(i.value), this.term = this._value(), this.close(t), this.selectedItem = i } }), this.liveRegion = x("<div>", { role: "status", "aria-live": "assertive", "aria-relevant": "additions" }).appendTo(this.document[0].body), this._addClass(this.liveRegion, null, "ui-helper-hidden-accessible"), this._on(this.window, { beforeunload: function () { this.element.removeAttr("autocomplete") } }) }, _destroy: function () { clearTimeout(this.searching), this.element.removeAttr("autocomplete"), this.menu.element.remove(), this.liveRegion.remove() }, _setOption: function (t, e) { this._super(t, e), "source" === t && this._initSource(), "appendTo" === t && this.menu.element.appendTo(this._appendTo()), "disabled" === t && e && this.xhr && this.xhr.abort() }, _isEventTargetInWidget: function (t) { var e = this.menu.element[0]; return t.target === this.element[0] || t.target === e || x.contains(e, t.target) }, _closeOnClickOutside: function (t) { this._isEventTargetInWidget(t) || this.close() }, _appendTo: function () { var t = this.options.appendTo; return (t = t && (t.jquery || t.nodeType ? x(t) : this.document.find(t).eq(0))) && t[0] || (t = this.element.closest(".ui-front, dialog")), t.length || (t = this.document[0].body), t }, _initSource: function () { var i, n, s = this; x.isArray(this.options.source) ? (i = this.options.source, this.source = function (t, e) { e(x.ui.autocomplete.filter(i, t.term)) }) : "string" == typeof this.options.source ? (n = this.options.source, this.source = function (t, e) { s.xhr && s.xhr.abort(), s.xhr = x.ajax({ url: n, data: t, dataType: "json", success: function (t) { e(t) }, error: function () { e([]) } }) }) : this.source = this.options.source }, _searchTimeout: function (n) { clearTimeout(this.searching), this.searching = this._delay(function () { var t = this.term === this._value(), e = this.menu.element.is(":visible"), i = n.altKey || n.ctrlKey || n.metaKey || n.shiftKey; t && (!t || e || i) || (this.selectedItem = null, this.search(null, n)) }, this.options.delay) }, search: function (t, e) { return t = null != t ? t : this._value(), this.term = this._value(), t.length < this.options.minLength ? this.close(e) : !1 !== this._trigger("search", e) ? this._search(t) : void 0 }, _search: function (t) { this.pending++, this._addClass("ui-autocomplete-loading"), this.cancelSearch = !1, this.source({ term: t }, this._response()) }, _response: function () { var e = ++this.requestIndex; return x.proxy(function (t) { e === this.requestIndex && this.__response(t), this.pending--, this.pending || this._removeClass("ui-autocomplete-loading") }, this) }, __response: function (t) { t = t && this._normalize(t), this._trigger("response", null, { content: t }), !this.options.disabled && t && t.length && !this.cancelSearch ? (this._suggest(t), this._trigger("open")) : this._close() }, close: function (t) { this.cancelSearch = !0, this._close(t) }, _close: function (t) { this._off(this.document, "mousedown"), this.menu.element.is(":visible") && (this.menu.element.hide(), this.menu.blur(), this.isNewMenu = !0, this._trigger("close", t)) }, _change: function (t) { this.previous !== this._value() && this._trigger("change", t, { item: this.selectedItem }) }, _normalize: function (t) { return t.length && t[0].label && t[0].value ? t : x.map(t, function (t) { return "string" == typeof t ? { label: t, value: t } : x.extend({}, t, { label: t.label || t.value, value: t.value || t.label }) }) }, _suggest: function (t) { var e = this.menu.element.empty(); this._renderMenu(e, t), this.isNewMenu = !0, this.menu.refresh(), e.show(), this._resizeMenu(), e.position(x.extend({ of: this.element }, this.options.position)), this.options.autoFocus && this.menu.next(), this._on(this.document, { mousedown: "_closeOnClickOutside" }) }, _resizeMenu: function () { var t = this.menu.element; t.outerWidth(Math.max(t.width("").outerWidth() + 1, this.element.outerWidth())) }, _renderMenu: function (i, t) { var n = this; x.each(t, function (t, e) { n._renderItemData(i, e) }) }, _renderItemData: function (t, e) { return this._renderItem(t, e).data("ui-autocomplete-item", e) }, _renderItem: function (t, e) { return x("<li>").append(x("<div>").text(e.label)).appendTo(t) }, _move: function (t, e) { if (this.menu.element.is(":visible")) return this.menu.isFirstItem() && /^previous/.test(t) || this.menu.isLastItem() && /^next/.test(t) ? (this.isMultiLine || this._value(this.term), void this.menu.blur()) : void this.menu[t](e); this.search(null, e) }, widget: function () { return this.menu.element }, _value: function () { return this.valueMethod.apply(this.element, arguments) }, _keyEvent: function (t, e) { this.isMultiLine && !this.menu.element.is(":visible") || (this._move(t, e), e.preventDefault()) }, _isContentEditable: function (t) { if (!t.length) return !1; var e = t.prop("contentEditable"); return "inherit" === e ? this._isContentEditable(t.parent()) : "true" === e } }), x.extend(x.ui.autocomplete, { escapeRegex: function (t) { return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&") }, filter: function (t, e) { var i = new RegExp(x.ui.autocomplete.escapeRegex(e), "i"); return x.grep(t, function (t) { return i.test(t.label || t.value || t) }) } }), x.widget("ui.autocomplete", x.ui.autocomplete, { options: { messages: { noResults: "No search results.", results: function (t) { return t + (1 < t ? " results are" : " result is") + " available, use up and down arrow keys to navigate." } } }, __response: function (t) { var e; this._superApply(arguments), this.options.disabled || this.cancelSearch || (e = t && t.length ? this.options.messages.results(t.length) : this.options.messages.noResults, this.liveRegion.children().hide(), x("<div>").text(e).appendTo(this.liveRegion)) } }); x.ui.autocomplete; var Q = /ui-corner-([a-z]){2,6}/g; x.widget("ui.controlgroup", { version: "1.12.1", defaultElement: "<div>", options: { direction: "horizontal", disabled: null, onlyVisible: !0, items: { button: "input[type=button], input[type=submit], input[type=reset], button, a", controlgroupLabel: ".ui-controlgroup-label", checkboxradio: "input[type='checkbox'], input[type='radio']", selectmenu: "select", spinner: ".ui-spinner-input" } }, _create: function () { this._enhance() }, _enhance: function () { this.element.attr("role", "toolbar"), this.refresh() }, _destroy: function () { this._callChildMethod("destroy"), this.childWidgets.removeData("ui-controlgroup-data"), this.element.removeAttr("role"), this.options.items.controlgroupLabel && this.element.find(this.options.items.controlgroupLabel).find(".ui-controlgroup-label-contents").contents().unwrap() }, _initWidgets: function () { var o = this, r = []; x.each(this.options.items, function (n, t) { var e, s = {}; if (t) return "controlgroupLabel" === n ? ((e = o.element.find(t)).each(function () { var t = x(this); t.children(".ui-controlgroup-label-contents").length || t.contents().wrapAll("<span class='ui-controlgroup-label-contents'></span>") }), o._addClass(e, null, "ui-widget ui-widget-content ui-state-default"), void (r = r.concat(e.get()))) : void (x.fn[n] && (s = o["_" + n + "Options"] ? o["_" + n + "Options"]("middle") : { classes: {} }, o.element.find(t).each(function () { var t = x(this), e = t[n]("instance"), i = x.widget.extend({}, s); "button" === n && t.parent(".ui-spinner").length || ((e = e || t[n]()[n]("instance")) && (i.classes = o._resolveClassesValues(i.classes, e)), t[n](i), i = t[n]("widget"), x.data(i[0], "ui-controlgroup-data", e || t[n]("instance")), r.push(i[0])) }))) }), this.childWidgets = x(x.unique(r)), this._addClass(this.childWidgets, "ui-controlgroup-item") }, _callChildMethod: function (e) { this.childWidgets.each(function () { var t = x(this).data("ui-controlgroup-data"); t && t[e] && t[e]() }) }, _updateCornerClass: function (t, e) { e = this._buildSimpleOptions(e, "label").classes.label; this._removeClass(t, null, "ui-corner-top ui-corner-bottom ui-corner-left ui-corner-right ui-corner-all"), this._addClass(t, null, e) }, _buildSimpleOptions: function (t, e) { var i = "vertical" === this.options.direction, n = { classes: {} }; return n.classes[e] = { middle: "", first: "ui-corner-" + (i ? "top" : "left"), last: "ui-corner-" + (i ? "bottom" : "right"), only: "ui-corner-all" }[t], n }, _spinnerOptions: function (t) { t = this._buildSimpleOptions(t, "ui-spinner"); return t.classes["ui-spinner-up"] = "", t.classes["ui-spinner-down"] = "", t }, _buttonOptions: function (t) { return this._buildSimpleOptions(t, "ui-button") }, _checkboxradioOptions: function (t) { return this._buildSimpleOptions(t, "ui-checkboxradio-label") }, _selectmenuOptions: function (t) { var e = "vertical" === this.options.direction; return { width: e && "auto", classes: { middle: { "ui-selectmenu-button-open": "", "ui-selectmenu-button-closed": "" }, first: { "ui-selectmenu-button-open": "ui-corner-" + (e ? "top" : "tl"), "ui-selectmenu-button-closed": "ui-corner-" + (e ? "top" : "left") }, last: { "ui-selectmenu-button-open": e ? "" : "ui-corner-tr", "ui-selectmenu-button-closed": "ui-corner-" + (e ? "bottom" : "right") }, only: { "ui-selectmenu-button-open": "ui-corner-top", "ui-selectmenu-button-closed": "ui-corner-all" } }[t] } }, _resolveClassesValues: function (i, n) { var s = {}; return x.each(i, function (t) { var e = n.options.classes[t] || "", e = x.trim(e.replace(Q, "")); s[t] = (e + " " + i[t]).replace(/\s+/g, " ") }), s }, _setOption: function (t, e) { "direction" === t && this._removeClass("ui-controlgroup-" + this.options.direction), this._super(t, e), "disabled" !== t ? this.refresh() : this._callChildMethod(e ? "disable" : "enable") }, refresh: function () { var s, o = this; this._addClass("ui-controlgroup ui-controlgroup-" + this.options.direction), "horizontal" === this.options.direction && this._addClass(null, "ui-helper-clearfix"), this._initWidgets(), s = this.childWidgets, this.options.onlyVisible && (s = s.filter(":visible")), s.length && (x.each(["first", "last"], function (t, e) { var i, n = s[e]().data("ui-controlgroup-data"); n && o["_" + n.widgetName + "Options"] ? ((i = o["_" + n.widgetName + "Options"](1 === s.length ? "only" : e)).classes = o._resolveClassesValues(i.classes, n), n.element[n.widgetName](i)) : o._updateCornerClass(s[e](), e) }), this._callChildMethod("refresh")) } }); x.widget("ui.checkboxradio", [x.ui.formResetMixin, { version: "1.12.1", options: { disabled: null, label: null, icon: !0, classes: { "ui-checkboxradio-label": "ui-corner-all", "ui-checkboxradio-icon": "ui-corner-all" } }, _getCreateOptions: function () { var t, e = this, i = this._super() || {}; return this._readType(), t = this.element.labels(), this.label = x(t[t.length - 1]), this.label.length || x.error("No label found for checkboxradio widget"), this.originalLabel = "", this.label.contents().not(this.element[0]).each(function () { e.originalLabel += 3 === this.nodeType ? x(this).text() : this.outerHTML }), this.originalLabel && (i.label = this.originalLabel), null != (t = this.element[0].disabled) && (i.disabled = t), i }, _create: function () { var t = this.element[0].checked; this._bindFormResetHandler(), null == this.options.disabled && (this.options.disabled = this.element[0].disabled), this._setOption("disabled", this.options.disabled), this._addClass("ui-checkboxradio", "ui-helper-hidden-accessible"), this._addClass(this.label, "ui-checkboxradio-label", "ui-button ui-widget"), "radio" === this.type && this._addClass(this.label, "ui-checkboxradio-radio-label"), this.options.label && this.options.label !== this.originalLabel ? this._updateLabel() : this.originalLabel && (this.options.label = this.originalLabel), this._enhance(), t && (this._addClass(this.label, "ui-checkboxradio-checked", "ui-state-active"), this.icon && this._addClass(this.icon, null, "ui-state-hover")), this._on({ change: "_toggleClasses", focus: function () { this._addClass(this.label, null, "ui-state-focus ui-visual-focus") }, blur: function () { this._removeClass(this.label, null, "ui-state-focus ui-visual-focus") } }) }, _readType: function () { var t = this.element[0].nodeName.toLowerCase(); this.type = this.element[0].type, "input" === t && /radio|checkbox/.test(this.type) || x.error("Can't create checkboxradio on element.nodeName=" + t + " and element.type=" + this.type) }, _enhance: function () { this._updateIcon(this.element[0].checked) }, widget: function () { return this.label }, _getRadioGroup: function () { var t = this.element[0].name, e = "input[name='" + x.ui.escapeSelector(t) + "']"; return t ? (this.form.length ? x(this.form[0].elements).filter(e) : x(e).filter(function () { return 0 === x(this).form().length })).not(this.element) : x([]) }, _toggleClasses: function () { var t = this.element[0].checked; this._toggleClass(this.label, "ui-checkboxradio-checked", "ui-state-active", t), this.options.icon && "checkbox" === this.type && this._toggleClass(this.icon, null, "ui-icon-check ui-state-checked", t)._toggleClass(this.icon, null, "ui-icon-blank", !t), "radio" === this.type && this._getRadioGroup().each(function () { var t = x(this).checkboxradio("instance"); t && t._removeClass(t.label, "ui-checkboxradio-checked", "ui-state-active") }) }, _destroy: function () { this._unbindFormResetHandler(), this.icon && (this.icon.remove(), this.iconSpace.remove()) }, _setOption: function (t, e) { if ("label" !== t || e) { if (this._super(t, e), "disabled" === t) return this._toggleClass(this.label, null, "ui-state-disabled", e), void (this.element[0].disabled = e); this.refresh() } }, _updateIcon: function (t) { var e = "ui-icon ui-icon-background "; this.options.icon ? (this.icon || (this.icon = x("<span>"), this.iconSpace = x("<span> </span>"), this._addClass(this.iconSpace, "ui-checkboxradio-icon-space")), "checkbox" === this.type ? (e += t ? "ui-icon-check ui-state-checked" : "ui-icon-blank", this._removeClass(this.icon, null, t ? "ui-icon-blank" : "ui-icon-check")) : e += "ui-icon-blank", this._addClass(this.icon, "ui-checkboxradio-icon", e), t || this._removeClass(this.icon, null, "ui-icon-check ui-state-checked"), this.icon.prependTo(this.label).after(this.iconSpace)) : void 0 !== this.icon && (this.icon.remove(), this.iconSpace.remove(), delete this.icon) }, _updateLabel: function () { var t = this.label.contents().not(this.element[0]); this.icon && (t = t.not(this.icon[0])), this.iconSpace && (t = t.not(this.iconSpace[0])), t.remove(), this.label.append(this.options.label) }, refresh: function () { var t = this.element[0].checked, e = this.element[0].disabled; this._updateIcon(t), this._toggleClass(this.label, "ui-checkboxradio-checked", "ui-state-active", t), null !== this.options.label && this._updateLabel(), e !== this.options.disabled && this._setOptions({ disabled: e }) } }]); var G; x.ui.checkboxradio; x.widget("ui.button", { version: "1.12.1", defaultElement: "<button>", options: { classes: { "ui-button": "ui-corner-all" }, disabled: null, icon: null, iconPosition: "beginning", label: null, showLabel: !0 }, _getCreateOptions: function () { var t, e = this._super() || {}; return this.isInput = this.element.is("input"), null != (t = this.element[0].disabled) && (e.disabled = t), this.originalLabel = this.isInput ? this.element.val() : this.element.html(), this.originalLabel && (e.label = this.originalLabel), e }, _create: function () { !this.option.showLabel & !this.options.icon && (this.options.showLabel = !0), null == this.options.disabled && (this.options.disabled = this.element[0].disabled || !1), this.hasTitle = !!this.element.attr("title"), this.options.label && this.options.label !== this.originalLabel && (this.isInput ? this.element.val(this.options.label) : this.element.html(this.options.label)), this._addClass("ui-button", "ui-widget"), this._setOption("disabled", this.options.disabled), this._enhance(), this.element.is("a") && this._on({ keyup: function (t) { t.keyCode === x.ui.keyCode.SPACE && (t.preventDefault(), this.element[0].click ? this.element[0].click() : this.element.trigger("click")) } }) }, _enhance: function () { this.element.is("button") || this.element.attr("role", "button"), this.options.icon && (this._updateIcon("icon", this.options.icon), this._updateTooltip()) }, _updateTooltip: function () { this.title = this.element.attr("title"), this.options.showLabel || this.title || this.element.attr("title", this.options.label) }, _updateIcon: function (t, e) { var i = "iconPosition" !== t, n = i ? this.options.iconPosition : e, t = "top" === n || "bottom" === n; this.icon ? i && this._removeClass(this.icon, null, this.options.icon) : (this.icon = x("<span>"), this._addClass(this.icon, "ui-button-icon", "ui-icon"), this.options.showLabel || this._addClass("ui-button-icon-only")), i && this._addClass(this.icon, null, e), this._attachIcon(n), t ? (this._addClass(this.icon, null, "ui-widget-icon-block"), this.iconSpace && this.iconSpace.remove()) : (this.iconSpace || (this.iconSpace = x("<span> </span>"), this._addClass(this.iconSpace, "ui-button-icon-space")), this._removeClass(this.icon, null, "ui-wiget-icon-block"), this._attachIconSpace(n)) }, _destroy: function () { this.element.removeAttr("role"), this.icon && this.icon.remove(), this.iconSpace && this.iconSpace.remove(), this.hasTitle || this.element.removeAttr("title") }, _attachIconSpace: function (t) { this.icon[/^(?:end|bottom)/.test(t) ? "before" : "after"](this.iconSpace) }, _attachIcon: function (t) { this.element[/^(?:end|bottom)/.test(t) ? "append" : "prepend"](this.icon) }, _setOptions: function (t) { var e = (void 0 === t.showLabel ? this.options : t).showLabel, i = (void 0 === t.icon ? this.options : t).icon; e || i || (t.showLabel = !0), this._super(t) }, _setOption: function (t, e) { "icon" === t && (e ? this._updateIcon(t, e) : this.icon && (this.icon.remove(), this.iconSpace && this.iconSpace.remove())), "iconPosition" === t && this._updateIcon(t, e), "showLabel" === t && (this._toggleClass("ui-button-icon-only", null, !e), this._updateTooltip()), "label" === t && (this.isInput ? this.element.val(e) : (this.element.html(e), this.icon && (this._attachIcon(this.options.iconPosition), this._attachIconSpace(this.options.iconPosition)))), this._super(t, e), "disabled" === t && (this._toggleClass(null, "ui-state-disabled", e), (this.element[0].disabled = e) && this.element.blur()) }, refresh: function () { var t = this.element.is("input, button") ? this.element[0].disabled : this.element.hasClass("ui-button-disabled"); t !== this.options.disabled && this._setOptions({ disabled: t }), this._updateTooltip() } }), !1 !== x.uiBackCompat && (x.widget("ui.button", x.ui.button, { options: { text: !0, icons: { primary: null, secondary: null } }, _create: function () { this.options.showLabel && !this.options.text && (this.options.showLabel = this.options.text), !this.options.showLabel && this.options.text && (this.options.text = this.options.showLabel), this.options.icon || !this.options.icons.primary && !this.options.icons.secondary ? this.options.icon && (this.options.icons.primary = this.options.icon) : this.options.icons.primary ? this.options.icon = this.options.icons.primary : (this.options.icon = this.options.icons.secondary, this.options.iconPosition = "end"), this._super() }, _setOption: function (t, e) { "text" !== t ? ("showLabel" === t && (this.options.text = e), "icon" === t && (this.options.icons.primary = e), "icons" === t && (e.primary ? (this._super("icon", e.primary), this._super("iconPosition", "beginning")) : e.secondary && (this._super("icon", e.secondary), this._super("iconPosition", "end"))), this._superApply(arguments)) : this._super("showLabel", e) } }), x.fn.button = (G = x.fn.button, function () { return !this.length || this.length && "INPUT" !== this[0].tagName || this.length && "INPUT" === this[0].tagName && "checkbox" !== this.attr("type") && "radio" !== this.attr("type") ? G.apply(this, arguments) : (x.ui.checkboxradio || x.error("Checkboxradio widget missing"), 0 === arguments.length ? this.checkboxradio({ icon: !1 }) : this.checkboxradio.apply(this, arguments)) }), x.fn.buttonset = function () { return x.ui.controlgroup || x.error("Controlgroup widget missing"), "option" === arguments[0] && "items" === arguments[1] && arguments[2] ? this.controlgroup.apply(this, [arguments[0], "items.button", arguments[2]]) : "option" === arguments[0] && "items" === arguments[1] ? this.controlgroup.apply(this, [arguments[0], "items.button"]) : ("object" == typeof arguments[0] && arguments[0].items && (arguments[0].items = { button: arguments[0].items }), this.controlgroup.apply(this, arguments)) }); var J; x.ui.button; function Z() { this._curInst = null, this._keyEvent = !1, this._disabledInputs = [], this._datepickerShowing = !1, this._inDialog = !1, this._mainDivId = "ui-datepicker-div", this._inlineClass = "ui-datepicker-inline", this._appendClass = "ui-datepicker-append", this._triggerClass = "ui-datepicker-trigger", this._dialogClass = "ui-datepicker-dialog", this._disableClass = "ui-datepicker-disabled", this._unselectableClass = "ui-datepicker-unselectable", this._currentClass = "ui-datepicker-current-day", this._dayOverClass = "ui-datepicker-days-cell-over", this.regional = [], this.regional[""] = { closeText: "Done", prevText: "Prev", nextText: "Next", currentText: "Today", monthNames: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], monthNamesShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], dayNames: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], dayNamesShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], dayNamesMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"], weekHeader: "Wk", dateFormat: "mm/dd/yy", firstDay: 0, isRTL: !1, showMonthAfterYear: !1, yearSuffix: "" }, this._defaults = { showOn: "focus", showAnim: "fadeIn", showOptions: {}, defaultDate: null, appendText: "", buttonText: "...", buttonImage: "", buttonImageOnly: !1, hideIfNoPrevNext: !1, navigationAsDateFormat: !1, gotoCurrent: !1, changeMonth: !1, changeYear: !1, yearRange: "c-10:c+10", showOtherMonths: !1, selectOtherMonths: !1, showWeek: !1, calculateWeek: this.iso8601Week, shortYearCutoff: "+10", minDate: null, maxDate: null, duration: "fast", beforeShowDay: null, beforeShow: null, onSelect: null, onChangeMonthYear: null, onClose: null, numberOfMonths: 2, showCurrentAtPos: 0, stepMonths: 1, stepBigMonths: 12, altField: "", altFormat: "", constrainInput: !0, showButtonPanel: !1, autoSize: !1, disabled: !1 }, x.extend(this._defaults, this.regional[""]), this.regional.en = x.extend(!0, {}, this.regional[""]), this.regional["en-US"] = x.extend(!0, {}, this.regional.en), this.dpDiv = tt(x("<div id='" + this._mainDivId + "' class='ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>")) } function tt(t) { var e = "button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a"; return t.on("mouseout", e, function () { x(this).removeClass("ui-state-hover"), -1 !== this.className.indexOf("ui-datepicker-prev") && x(this).removeClass("ui-datepicker-prev-hover"), -1 !== this.className.indexOf("ui-datepicker-next") && x(this).removeClass("ui-datepicker-next-hover") }).on("mouseover", e, et) } function et() { x.datepicker._isDisabledDatepicker((J.inline ? J.dpDiv.parent() : J.input)[0]) || (x(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"), x(this).addClass("ui-state-hover"), -1 !== this.className.indexOf("ui-datepicker-prev") && x(this).addClass("ui-datepicker-prev-hover"), -1 !== this.className.indexOf("ui-datepicker-next") && x(this).addClass("ui-datepicker-next-hover")) } function it(t, e) { for (var i in x.extend(t, e), e) null == e[i] && (t[i] = e[i]); return t } x.extend(x.ui, { datepicker: { version: "1.12.1" } }), x.extend(Z.prototype, { markerClassName: "hasDatepicker", maxRows: 4, _widgetDatepicker: function () { return this.dpDiv }, setDefaults: function (t) { return it(this._defaults, t || {}), this }, _attachDatepicker: function (t, e) { var i, n = t.nodeName.toLowerCase(), s = "div" === n || "span" === n; t.id || (this.uuid += 1, t.id = "dp" + this.uuid), (i = this._newInst(x(t), s)).settings = x.extend({}, e || {}), "input" === n ? this._connectDatepicker(t, i) : s && this._inlineDatepicker(t, i) }, _newInst: function (t, e) { return { id: t[0].id.replace(/([^A-Za-z0-9_\-])/g, "\\\\$1"), input: t, selectedDay: 0, selectedMonth: 0, selectedYear: 0, drawMonth: 0, drawYear: 0, inline: e, dpDiv: e ? tt(x("<div class='" + this._inlineClass + " ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>")) : this.dpDiv } }, _connectDatepicker: function (t, e) { var i = x(t); e.append = x([]), e.trigger = x([]), i.hasClass(this.markerClassName) || (this._attachments(i, e), i.addClass(this.markerClassName).on("keydown", this._doKeyDown).on("keypress", this._doKeyPress).on("keyup", this._doKeyUp), this._autoSize(e), x.data(t, "datepicker", e), e.settings.disabled && this._disableDatepicker(t)) }, _attachments: function (t, e) { var i, n = this._get(e, "appendText"), s = this._get(e, "isRTL"); e.append && e.append.remove(), n && (e.append = x("<span class='" + this._appendClass + "'>" + n + "</span>"), t[s ? "before" : "after"](e.append)), t.off("focus", this._showDatepicker), e.trigger && e.trigger.remove(), "focus" !== (i = this._get(e, "showOn")) && "both" !== i || t.on("focus", this._showDatepicker), "button" !== i && "both" !== i || (n = this._get(e, "buttonText"), i = this._get(e, "buttonImage"), e.trigger = x(this._get(e, "buttonImageOnly") ? x("<img/>").addClass(this._triggerClass).attr({ src: i, alt: n, title: n }) : x("<button type='button'></button>").addClass(this._triggerClass).html(i ? x("<img/>").attr({ src: i, alt: n, title: n }) : n)), t[s ? "before" : "after"](e.trigger), e.trigger.on("click", function () { return x.datepicker._datepickerShowing && x.datepicker._lastInput === t[0] ? x.datepicker._hideDatepicker() : (x.datepicker._datepickerShowing && x.datepicker._lastInput !== t[0] && x.datepicker._hideDatepicker(), x.datepicker._showDatepicker(t[0])), !1 })) }, _autoSize: function (t) { var e, i, n, s, o, r; this._get(t, "autoSize") && !t.inline && (o = new Date(2009, 11, 20), (r = this._get(t, "dateFormat")).match(/[DM]/) && (e = function (t) { for (s = n = i = 0; s < t.length; s++)t[s].length > i && (i = t[s].length, n = s); return n }, o.setMonth(e(this._get(t, r.match(/MM/) ? "monthNames" : "monthNamesShort"))), o.setDate(e(this._get(t, r.match(/DD/) ? "dayNames" : "dayNamesShort")) + 20 - o.getDay())), t.input.attr("size", this._formatDate(t, o).length)) }, _inlineDatepicker: function (t, e) { var i = x(t); i.hasClass(this.markerClassName) || (i.addClass(this.markerClassName).append(e.dpDiv), x.data(t, "datepicker", e), this._setDate(e, this._getDefaultDate(e), !0), this._updateDatepicker(e), this._updateAlternate(e), e.settings.disabled && this._disableDatepicker(t), e.dpDiv.css("display", "block")) }, _dialogDatepicker: function (t, e, i, n, s) { var o, r = this._dialogInst; return r || (this.uuid += 1, o = "dp" + this.uuid, this._dialogInput = x("<input type='text' id='" + o + "' style='position: absolute; top: -100px; width: 0px;'/>"), this._dialogInput.on("keydown", this._doKeyDown), x("body").append(this._dialogInput), (r = this._dialogInst = this._newInst(this._dialogInput, !1)).settings = {}, x.data(this._dialogInput[0], "datepicker", r)), it(r.settings, n || {}), e = e && e.constructor === Date ? this._formatDate(r, e) : e, this._dialogInput.val(e), this._pos = s ? s.length ? s : [s.pageX, s.pageY] : null, this._pos || (o = document.documentElement.clientWidth, n = document.documentElement.clientHeight, e = document.documentElement.scrollLeft || document.body.scrollLeft, s = document.documentElement.scrollTop || document.body.scrollTop, this._pos = [o / 2 - 100 + e, n / 2 - 150 + s]), this._dialogInput.css("left", this._pos[0] + 20 + "px").css("top", this._pos[1] + "px"), r.settings.onSelect = i, this._inDialog = !0, this.dpDiv.addClass(this._dialogClass), this._showDatepicker(this._dialogInput[0]), x.blockUI && x.blockUI(this.dpDiv), x.data(this._dialogInput[0], "datepicker", r), this }, _destroyDatepicker: function (t) { var e, i = x(t), n = x.data(t, "datepicker"); i.hasClass(this.markerClassName) && (e = t.nodeName.toLowerCase(), x.removeData(t, "datepicker"), "input" === e ? (n.append.remove(), n.trigger.remove(), i.removeClass(this.markerClassName).off("focus", this._showDatepicker).off("keydown", this._doKeyDown).off("keypress", this._doKeyPress).off("keyup", this._doKeyUp)) : "div" !== e && "span" !== e || i.removeClass(this.markerClassName).empty(), J === n && (J = null)) }, _enableDatepicker: function (e) { var t, i = x(e), n = x.data(e, "datepicker"); i.hasClass(this.markerClassName) && ("input" === (t = e.nodeName.toLowerCase()) ? (e.disabled = !1, n.trigger.filter("button").each(function () { this.disabled = !1 }).end().filter("img").css({ opacity: "1.0", cursor: "" })) : "div" !== t && "span" !== t || ((i = i.children("." + this._inlineClass)).children().removeClass("ui-state-disabled"), i.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled", !1)), this._disabledInputs = x.map(this._disabledInputs, function (t) { return t === e ? null : t })) }, _disableDatepicker: function (e) { var t, i = x(e), n = x.data(e, "datepicker"); i.hasClass(this.markerClassName) && ("input" === (t = e.nodeName.toLowerCase()) ? (e.disabled = !0, n.trigger.filter("button").each(function () { this.disabled = !0 }).end().filter("img").css({ opacity: "0.5", cursor: "default" })) : "div" !== t && "span" !== t || ((i = i.children("." + this._inlineClass)).children().addClass("ui-state-disabled"), i.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled", !0)), this._disabledInputs = x.map(this._disabledInputs, function (t) { return t === e ? null : t }), this._disabledInputs[this._disabledInputs.length] = e) }, _isDisabledDatepicker: function (t) { if (!t) return !1; for (var e = 0; e < this._disabledInputs.length; e++)if (this._disabledInputs[e] === t) return !0; return !1 }, _getInst: function (t) { try { return x.data(t, "datepicker") } catch (t) { throw "Missing instance data for this datepicker" } }, _optionDatepicker: function (t, e, i) { var n, s, o, r, a = this._getInst(t); if (2 === arguments.length && "string" == typeof e) return "defaults" === e ? x.extend({}, x.datepicker._defaults) : a ? "all" === e ? x.extend({}, a.settings) : this._get(a, e) : null; n = e || {}, "string" == typeof e && ((n = {})[e] = i), a && (this._curInst === a && this._hideDatepicker(), s = this._getDateDatepicker(t, !0), o = this._getMinMaxDate(a, "min"), r = this._getMinMaxDate(a, "max"), it(a.settings, n), null !== o && void 0 !== n.dateFormat && void 0 === n.minDate && (a.settings.minDate = this._formatDate(a, o)), null !== r && void 0 !== n.dateFormat && void 0 === n.maxDate && (a.settings.maxDate = this._formatDate(a, r)), "disabled" in n && (n.disabled ? this._disableDatepicker(t) : this._enableDatepicker(t)), this._attachments(x(t), a), this._autoSize(a), this._setDate(a, s), this._updateAlternate(a), this._updateDatepicker(a)) }, _changeDatepicker: function (t, e, i) { this._optionDatepicker(t, e, i) }, _refreshDatepicker: function (t) { t = this._getInst(t); t && this._updateDatepicker(t) }, _setDateDatepicker: function (t, e) { t = this._getInst(t); t && (this._setDate(t, e), this._updateDatepicker(t), this._updateAlternate(t)) }, _getDateDatepicker: function (t, e) { t = this._getInst(t); return t && !t.inline && this._setDateFromField(t, e), t ? this._getDate(t) : null }, _doKeyDown: function (t) { var e, i, n = x.datepicker._getInst(t.target), s = !0, o = n.dpDiv.is(".ui-datepicker-rtl"); if (n._keyEvent = !0, x.datepicker._datepickerShowing) switch (t.keyCode) { case 9: x.datepicker._hideDatepicker(), s = !1; break; case 13: return (i = x("td." + x.datepicker._dayOverClass + ":not(." + x.datepicker._currentClass + ")", n.dpDiv))[0] && x.datepicker._selectDay(t.target, n.selectedMonth, n.selectedYear, i[0]), (e = x.datepicker._get(n, "onSelect")) ? (i = x.datepicker._formatDate(n), e.apply(n.input ? n.input[0] : null, [i, n])) : x.datepicker._hideDatepicker(), !1; case 27: x.datepicker._hideDatepicker(); break; case 33: x.datepicker._adjustDate(t.target, t.ctrlKey ? -x.datepicker._get(n, "stepBigMonths") : -x.datepicker._get(n, "stepMonths"), "M"); break; case 34: x.datepicker._adjustDate(t.target, t.ctrlKey ? +x.datepicker._get(n, "stepBigMonths") : +x.datepicker._get(n, "stepMonths"), "M"); break; case 35: (t.ctrlKey || t.metaKey) && x.datepicker._clearDate(t.target), s = t.ctrlKey || t.metaKey; break; case 36: (t.ctrlKey || t.metaKey) && x.datepicker._gotoToday(t.target), s = t.ctrlKey || t.metaKey; break; case 37: (t.ctrlKey || t.metaKey) && x.datepicker._adjustDate(t.target, o ? 1 : -1, "D"), s = t.ctrlKey || t.metaKey, t.originalEvent.altKey && x.datepicker._adjustDate(t.target, t.ctrlKey ? -x.datepicker._get(n, "stepBigMonths") : -x.datepicker._get(n, "stepMonths"), "M"); break; case 38: (t.ctrlKey || t.metaKey) && x.datepicker._adjustDate(t.target, -7, "D"), s = t.ctrlKey || t.metaKey; break; case 39: (t.ctrlKey || t.metaKey) && x.datepicker._adjustDate(t.target, o ? -1 : 1, "D"), s = t.ctrlKey || t.metaKey, t.originalEvent.altKey && x.datepicker._adjustDate(t.target, t.ctrlKey ? +x.datepicker._get(n, "stepBigMonths") : +x.datepicker._get(n, "stepMonths"), "M"); break; case 40: (t.ctrlKey || t.metaKey) && x.datepicker._adjustDate(t.target, 7, "D"), s = t.ctrlKey || t.metaKey; break; default: s = !1 } else 36 === t.keyCode && t.ctrlKey ? x.datepicker._showDatepicker(this) : s = !1; s && (t.preventDefault(), t.stopPropagation()) }, _doKeyPress: function (t) { var e, i = x.datepicker._getInst(t.target); if (x.datepicker._get(i, "constrainInput")) return e = x.datepicker._possibleChars(x.datepicker._get(i, "dateFormat")), i = String.fromCharCode(null == t.charCode ? t.keyCode : t.charCode), t.ctrlKey || t.metaKey || i < " " || !e || -1 < e.indexOf(i) }, _doKeyUp: function (t) { var e = x.datepicker._getInst(t.target); if (e.input.val() !== e.lastVal) try { x.datepicker.parseDate(x.datepicker._get(e, "dateFormat"), e.input ? e.input.val() : null, x.datepicker._getFormatConfig(e)) && (x.datepicker._setDateFromField(e), x.datepicker._updateAlternate(e), x.datepicker._updateDatepicker(e)) } catch (t) { } return !0 }, _showDatepicker: function (t) { var e, i, n, s; "input" !== (t = t.target || t).nodeName.toLowerCase() && (t = x("input", t.parentNode)[0]), x.datepicker._isDisabledDatepicker(t) || x.datepicker._lastInput === t || (s = x.datepicker._getInst(t), x.datepicker._curInst && x.datepicker._curInst !== s && (x.datepicker._curInst.dpDiv.stop(!0, !0), s && x.datepicker._datepickerShowing && x.datepicker._hideDatepicker(x.datepicker._curInst.input[0])), !1 !== (i = (n = x.datepicker._get(s, "beforeShow")) ? n.apply(t, [t, s]) : {}) && (it(s.settings, i), s.lastVal = null, x.datepicker._lastInput = t, x.datepicker._setDateFromField(s), x.datepicker._inDialog && (t.value = ""), x.datepicker._pos || (x.datepicker._pos = x.datepicker._findPos(t), x.datepicker._pos[1] += t.offsetHeight), e = !1, x(t).parents().each(function () { return !(e |= "fixed" === x(this).css("position")) }), n = { left: x.datepicker._pos[0], top: x.datepicker._pos[1] }, x.datepicker._pos = null, s.dpDiv.empty(), s.dpDiv.css({ position: "absolute", display: "block", top: "-1000px" }), x.datepicker._updateDatepicker(s), n = x.datepicker._checkOffset(s, n, e), s.dpDiv.css({ position: x.datepicker._inDialog && x.blockUI ? "static" : e ? "fixed" : "absolute", display: "none", left: n.left + "px", top: n.top + "px" }), s.inline || (i = x.datepicker._get(s, "showAnim"), n = x.datepicker._get(s, "duration"), s.dpDiv.css("z-index", function (t) { for (var e, i; t.length && t[0] !== document;) { if (e = t.css("position"), ("absolute" === e || "relative" === e || "fixed" === e) && (i = parseInt(t.css("zIndex"), 10), !isNaN(i) && 0 !== i)) return i; t = t.parent() } return 0 }(x(t)) + 1), x.datepicker._datepickerShowing = !0, x.effects && x.effects.effect[i] ? s.dpDiv.show(i, x.datepicker._get(s, "showOptions"), n) : s.dpDiv[i || "show"](i ? n : null), x.datepicker._shouldFocusInput(s) && s.input.trigger("focus"), x.datepicker._curInst = s))) }, _updateDatepicker: function (t) { this.maxRows = 4, (J = t).dpDiv.empty().append(this._generateHTML(t)), this._attachHandlers(t); var e, i = this._getNumberOfMonths(t), n = i[1], s = t.dpDiv.find("." + this._dayOverClass + " a"); 0 < s.length && et.apply(s.get(0)), t.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""), 1 < n && t.dpDiv.addClass("ui-datepicker-multi-" + n).css("width", 17 * n + "em"), t.dpDiv[(1 !== i[0] || 1 !== i[1] ? "add" : "remove") + "Class"]("ui-datepicker-multi"), t.dpDiv[(this._get(t, "isRTL") ? "add" : "remove") + "Class"]("ui-datepicker-rtl"), t === x.datepicker._curInst && x.datepicker._datepickerShowing && x.datepicker._shouldFocusInput(t) && t.input.trigger("focus"), t.yearshtml && (e = t.yearshtml, setTimeout(function () { e === t.yearshtml && t.yearshtml && t.dpDiv.find("select.ui-datepicker-year:first").replaceWith(t.yearshtml), e = t.yearshtml = null }, 0)) }, _shouldFocusInput: function (t) { return t.input && t.input.is(":visible") && !t.input.is(":disabled") && !t.input.is(":focus") }, _checkOffset: function (t, e, i) { var n = t.dpDiv.outerWidth(), s = t.dpDiv.outerHeight(), o = t.input ? t.input.outerWidth() : 0, r = t.input ? t.input.outerHeight() : 0, a = document.documentElement.clientWidth + (i ? 0 : x(document).scrollLeft()), l = document.documentElement.clientHeight + (i ? 0 : x(document).scrollTop()); return e.left -= this._get(t, "isRTL") ? n - o : 0, e.left -= i && e.left === t.input.offset().left ? x(document).scrollLeft() : 0, e.top -= i && e.top === t.input.offset().top + r ? x(document).scrollTop() : 0, e.left -= Math.min(e.left, e.left + n > a && n < a ? Math.abs(e.left + n - a) : 0), e.top -= Math.min(e.top, e.top + s > l && s < l ? Math.abs(s + r) : 0), e }, _findPos: function (t) { for (var e = this._getInst(t), i = this._get(e, "isRTL"); t && ("hidden" === t.type || 1 !== t.nodeType || x.expr.filters.hidden(t));)t = t[i ? "previousSibling" : "nextSibling"]; return [(e = x(t).offset()).left, e.top] }, _hideDatepicker: function (t) { var e, i, n = this._curInst; !n || t && n !== x.data(t, "datepicker") || this._datepickerShowing && (e = this._get(n, "showAnim"), i = this._get(n, "duration"), t = function () { x.datepicker._tidyDialog(n) }, x.effects && (x.effects.effect[e] || x.effects[e]) ? n.dpDiv.hide(e, x.datepicker._get(n, "showOptions"), i, t) : n.dpDiv["slideDown" === e ? "slideUp" : "fadeIn" === e ? "fadeOut" : "hide"](e ? i : null, t), e || t(), this._datepickerShowing = !1, (t = this._get(n, "onClose")) && t.apply(n.input ? n.input[0] : null, [n.input ? n.input.val() : "", n]), this._lastInput = null, this._inDialog && (this._dialogInput.css({ position: "absolute", left: "0", top: "-100px" }), x.blockUI && (x.unblockUI(), x("body").append(this.dpDiv))), this._inDialog = !1) }, _tidyDialog: function (t) { t.dpDiv.removeClass(this._dialogClass).off(".ui-datepicker-calendar") }, _checkExternalClick: function (t) { var e; x.datepicker._curInst && (e = x(t.target), t = x.datepicker._getInst(e[0]), (e[0].id === x.datepicker._mainDivId || 0 !== e.parents("#" + x.datepicker._mainDivId).length || e.hasClass(x.datepicker.markerClassName) || e.closest("." + x.datepicker._triggerClass).length || !x.datepicker._datepickerShowing || x.datepicker._inDialog && x.blockUI) && (!e.hasClass(x.datepicker.markerClassName) || x.datepicker._curInst === t) || x.datepicker._hideDatepicker()) }, _adjustDate: function (t, e, i) { var n = x(t), t = this._getInst(n[0]); this._isDisabledDatepicker(n[0]) || (this._adjustInstDate(t, e + ("M" === i ? this._get(t, "showCurrentAtPos") : 0), i), this._updateDatepicker(t)) }, _gotoToday: function (t) { var e = x(t), i = this._getInst(e[0]); this._get(i, "gotoCurrent") && i.currentDay ? (i.selectedDay = i.currentDay, i.drawMonth = i.selectedMonth = i.currentMonth, i.drawYear = i.selectedYear = i.currentYear) : (t = new Date, i.selectedDay = t.getDate(), i.drawMonth = i.selectedMonth = t.getMonth(), i.drawYear = i.selectedYear = t.getFullYear()), this._notifyChange(i), this._adjustDate(e) }, _selectMonthYear: function (t, e, i) { var n = x(t), t = this._getInst(n[0]); t["selected" + ("M" === i ? "Month" : "Year")] = t["draw" + ("M" === i ? "Month" : "Year")] = parseInt(e.options[e.selectedIndex].value, 10), this._notifyChange(t), this._adjustDate(n) }, _selectDay: function (t, e, i, n) { var s = x(t); x(n).hasClass(this._unselectableClass) || this._isDisabledDatepicker(s[0]) || ((s = this._getInst(s[0])).selectedDay = s.currentDay = x("a", n).html(), s.selectedMonth = s.currentMonth = e, s.selectedYear = s.currentYear = i, this._selectDate(t, this._formatDate(s, s.currentDay, s.currentMonth, s.currentYear))) }, _clearDate: function (t) { t = x(t); this._selectDate(t, "") }, _selectDate: function (t, e) { var i = x(t), t = this._getInst(i[0]); e = null != e ? e : this._formatDate(t), t.input && t.input.val(e), this._updateAlternate(t), (i = this._get(t, "onSelect")) ? i.apply(t.input ? t.input[0] : null, [e, t]) : t.input && t.input.trigger("change"), t.inline ? this._updateDatepicker(t) : (this._hideDatepicker(), this._lastInput = t.input[0], "object" != typeof t.input[0] && t.input.trigger("focus"), this._lastInput = null) }, _updateAlternate: function (t) { var e, i, n = this._get(t, "altField"); n && (e = this._get(t, "altFormat") || this._get(t, "dateFormat"), i = this._getDate(t), t = this.formatDate(e, i, this._getFormatConfig(t)), x(n).val(t)) }, noWeekends: function (t) { t = t.getDay(); return [0 < t && t < 6, ""] }, iso8601Week: function (t) { var e = new Date(t.getTime()); return e.setDate(e.getDate() + 4 - (e.getDay() || 7)), t = e.getTime(), e.setMonth(0), e.setDate(1), Math.floor(Math.round((t - e) / 864e5) / 7) + 1 }, parseDate: function (e, s, t) { if (null == e || null == s) throw "Invalid arguments"; if ("" === (s = "object" == typeof s ? s.toString() : s + "")) return null; function o(t) { return (t = w + 1 < e.length && e.charAt(w + 1) === t) && w++, t } function i(t) { var e = o(t), e = "@" === t ? 14 : "!" === t ? 20 : "y" === t && e ? 4 : "o" === t ? 3 : 2, e = new RegExp("^\\d{" + ("y" === t ? e : 1) + "," + e + "}"); if (!(e = s.substring(c).match(e))) throw "Missing number at position " + c; return c += e[0].length, parseInt(e[0], 10) } function n(t, e, i) { var n = -1, e = x.map(o(t) ? i : e, function (t, e) { return [[e, t]] }).sort(function (t, e) { return -(t[1].length - e[1].length) }); if (x.each(e, function (t, e) { var i = e[1]; if (s.substr(c, i.length).toLowerCase() === i.toLowerCase()) return n = e[0], c += i.length, !1 }), -1 !== n) return n + 1; throw "Unknown name at position " + c } function r() { if (s.charAt(c) !== e.charAt(w)) throw "Unexpected literal at position " + c; c++ } for (var a, l, h, c = 0, u = (t ? t.shortYearCutoff : null) || this._defaults.shortYearCutoff, u = "string" != typeof u ? u : (new Date).getFullYear() % 100 + parseInt(u, 10), d = (t ? t.dayNamesShort : null) || this._defaults.dayNamesShort, p = (t ? t.dayNames : null) || this._defaults.dayNames, f = (t ? t.monthNamesShort : null) || this._defaults.monthNamesShort, g = (t ? t.monthNames : null) || this._defaults.monthNames, m = -1, v = -1, _ = -1, y = -1, b = !1, w = 0; w < e.length; w++)if (b) "'" !== e.charAt(w) || o("'") ? r() : b = !1; else switch (e.charAt(w)) { case "d": _ = i("d"); break; case "D": n("D", d, p); break; case "o": y = i("o"); break; case "m": v = i("m"); break; case "M": v = n("M", f, g); break; case "y": m = i("y"); break; case "@": m = (h = new Date(i("@"))).getFullYear(), v = h.getMonth() + 1, _ = h.getDate(); break; case "!": m = (h = new Date((i("!") - this._ticksTo1970) / 1e4)).getFullYear(), v = h.getMonth() + 1, _ = h.getDate(); break; case "'": o("'") ? r() : b = !0; break; default: r() }if (c < s.length && (l = s.substr(c), !/^\s+/.test(l))) throw "Extra/unparsed characters found in date: " + l; if (-1 === m ? m = (new Date).getFullYear() : m < 100 && (m += (new Date).getFullYear() - (new Date).getFullYear() % 100 + (m <= u ? 0 : -100)), -1 < y) for (v = 1, _ = y; ;) { if (_ <= (a = this._getDaysInMonth(m, v - 1))) break; v++, _ -= a } if ((h = this._daylightSavingAdjust(new Date(m, v - 1, _))).getFullYear() !== m || h.getMonth() + 1 !== v || h.getDate() !== _) throw "Invalid date"; return h }, ATOM: "yy-mm-dd", COOKIE: "D, dd M yy", ISO_8601: "yy-mm-dd", RFC_822: "D, d M y", RFC_850: "DD, dd-M-y", RFC_1036: "D, d M y", RFC_1123: "D, d M yy", RFC_2822: "D, d M yy", RSS: "D, d M y", TICKS: "!", TIMESTAMP: "@", W3C: "yy-mm-dd", _ticksTo1970: 24 * (718685 + Math.floor(492.5) - Math.floor(19.7) + Math.floor(4.925)) * 60 * 60 * 1e7, formatDate: function (e, t, i) { if (!t) return ""; function s(t) { return (t = r + 1 < e.length && e.charAt(r + 1) === t) && r++, t } function n(t, e, i) { var n = "" + e; if (s(t)) for (; n.length < i;)n = "0" + n; return n } function o(t, e, i, n) { return (s(t) ? n : i)[e] } var r, a = (i ? i.dayNamesShort : null) || this._defaults.dayNamesShort, l = (i ? i.dayNames : null) || this._defaults.dayNames, h = (i ? i.monthNamesShort : null) || this._defaults.monthNamesShort, c = (i ? i.monthNames : null) || this._defaults.monthNames, u = "", d = !1; if (t) for (r = 0; r < e.length; r++)if (d) "'" !== e.charAt(r) || s("'") ? u += e.charAt(r) : d = !1; else switch (e.charAt(r)) { case "d": u += n("d", t.getDate(), 2); break; case "D": u += o("D", t.getDay(), a, l); break; case "o": u += n("o", Math.round((new Date(t.getFullYear(), t.getMonth(), t.getDate()).getTime() - new Date(t.getFullYear(), 0, 0).getTime()) / 864e5), 3); break; case "m": u += n("m", t.getMonth() + 1, 2); break; case "M": u += o("M", t.getMonth(), h, c); break; case "y": u += s("y") ? t.getFullYear() : (t.getFullYear() % 100 < 10 ? "0" : "") + t.getFullYear() % 100; break; case "@": u += t.getTime(); break; case "!": u += 1e4 * t.getTime() + this._ticksTo1970; break; case "'": s("'") ? u += "'" : d = !0; break; default: u += e.charAt(r) }return u }, _possibleChars: function (e) { function t(t) { return (t = s + 1 < e.length && e.charAt(s + 1) === t) && s++, t } for (var i = "", n = !1, s = 0; s < e.length; s++)if (n) "'" !== e.charAt(s) || t("'") ? i += e.charAt(s) : n = !1; else switch (e.charAt(s)) { case "d": case "m": case "y": case "@": i += "0123456789"; break; case "D": case "M": return null; case "'": t("'") ? i += "'" : n = !0; break; default: i += e.charAt(s) }return i }, _get: function (t, e) { return (void 0 !== t.settings[e] ? t.settings : this._defaults)[e] }, _setDateFromField: function (t, e) { if (t.input.val() !== t.lastVal) { var i = this._get(t, "dateFormat"), n = t.lastVal = t.input ? t.input.val() : null, s = this._getDefaultDate(t), o = s, r = this._getFormatConfig(t); try { o = this.parseDate(i, n, r) || s } catch (t) { n = e ? "" : n } t.selectedDay = o.getDate(), t.drawMonth = t.selectedMonth = o.getMonth(), t.drawYear = t.selectedYear = o.getFullYear(), t.currentDay = n ? o.getDate() : 0, t.currentMonth = n ? o.getMonth() : 0, t.currentYear = n ? o.getFullYear() : 0, this._adjustInstDate(t) } }, _getDefaultDate: function (t) { return this._restrictMinMax(t, this._determineDate(t, this._get(t, "defaultDate"), new Date)) }, _determineDate: function (a, t, e) { var i, n, t = null == t || "" === t ? e : "string" == typeof t ? function (t) { try { return x.datepicker.parseDate(x.datepicker._get(a, "dateFormat"), t, x.datepicker._getFormatConfig(a)) } catch (t) { } for (var e = (t.toLowerCase().match(/^c/) ? x.datepicker._getDate(a) : null) || new Date, i = e.getFullYear(), n = e.getMonth(), s = e.getDate(), o = /([+\-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g, r = o.exec(t); r;) { switch (r[2] || "d") { case "d": case "D": s += parseInt(r[1], 10); break; case "w": case "W": s += 7 * parseInt(r[1], 10); break; case "m": case "M": n += parseInt(r[1], 10), s = Math.min(s, x.datepicker._getDaysInMonth(i, n)); break; case "y": case "Y": i += parseInt(r[1], 10), s = Math.min(s, x.datepicker._getDaysInMonth(i, n)) }r = o.exec(t) } return new Date(i, n, s) }(t) : "number" == typeof t ? isNaN(t) ? e : (i = t, (n = new Date).setDate(n.getDate() + i), n) : new Date(t.getTime()); return (t = t && "Invalid Date" === t.toString() ? e : t) && (t.setHours(0), t.setMinutes(0), t.setSeconds(0), t.setMilliseconds(0)), this._daylightSavingAdjust(t) }, _daylightSavingAdjust: function (t) { return t ? (t.setHours(12 < t.getHours() ? t.getHours() + 2 : 0), t) : null }, _setDate: function (t, e, i) { var n = !e, s = t.selectedMonth, o = t.selectedYear, e = this._restrictMinMax(t, this._determineDate(t, e, new Date)); t.selectedDay = t.currentDay = e.getDate(), t.drawMonth = t.selectedMonth = t.currentMonth = e.getMonth(), t.drawYear = t.selectedYear = t.currentYear = e.getFullYear(), s === t.selectedMonth && o === t.selectedYear || i || this._notifyChange(t), this._adjustInstDate(t), t.input && t.input.val(n ? "" : this._formatDate(t)) }, _getDate: function (t) { return !t.currentYear || t.input && "" === t.input.val() ? null : this._daylightSavingAdjust(new Date(t.currentYear, t.currentMonth, t.currentDay)) }, _attachHandlers: function (t) { var e = this._get(t, "stepMonths"), i = "#" + t.id.replace(/\\\\/g, "\\"); t.dpDiv.find("[data-handler]").map(function () { var t = { prev: function () { x.datepicker._adjustDate(i, -e, "M") }, next: function () { x.datepicker._adjustDate(i, +e, "M") }, hide: function () { x.datepicker._hideDatepicker() }, today: function () { x.datepicker._gotoToday(i) }, selectDay: function () { return x.datepicker._selectDay(i, +this.getAttribute("data-month"), +this.getAttribute("data-year"), this), !1 }, selectMonth: function () { return x.datepicker._selectMonthYear(i, this, "M"), !1 }, selectYear: function () { return x.datepicker._selectMonthYear(i, this, "Y"), !1 } }; x(this).on(this.getAttribute("data-event"), t[this.getAttribute("data-handler")]) }) }, _generateHTML: function (t) { var e, i, n, s, o, r, a, l, h, c, u, d, p, f, g, m, v, _, y, b, w, x, C, k, T, D, E, S, I, A, P, N, M = new Date, O = this._daylightSavingAdjust(new Date(M.getFullYear(), M.getMonth(), M.getDate())), H = this._get(t, "isRTL"), L = this._get(t, "showButtonPanel"), z = this._get(t, "hideIfNoPrevNext"), j = this._get(t, "navigationAsDateFormat"), F = this._getNumberOfMonths(t), W = this._get(t, "showCurrentAtPos"), M = this._get(t, "stepMonths"), R = 1 !== F[0] || 1 !== F[1], B = this._daylightSavingAdjust(t.currentDay ? new Date(t.currentYear, t.currentMonth, t.currentDay) : new Date(9999, 9, 9)), $ = this._getMinMaxDate(t, "min"), q = this._getMinMaxDate(t, "max"), Y = t.drawMonth - W, U = t.drawYear; if (Y < 0 && (Y += 12, U--), q) for (e = this._daylightSavingAdjust(new Date(q.getFullYear(), q.getMonth() - F[0] * F[1] + 1, q.getDate())), e = $ && e < $ ? $ : e; this._daylightSavingAdjust(new Date(U, Y, 1)) > e;)--Y < 0 && (Y = 11, U--); for (t.drawMonth = Y, t.drawYear = U, W = this._get(t, "prevText"), W = j ? this.formatDate(W, this._daylightSavingAdjust(new Date(U, Y - M, 1)), this._getFormatConfig(t)) : W, i = this._canAdjustMonth(t, -1, U, Y) ? "<a class='ui-datepicker-prev ui-corner-all' data-handler='prev' data-event='click' title='" + W + "'><span class='ui-icon ui-icon-circle-triangle-" + (H ? "e" : "w") + "'>" + W + "</span></a>" : z ? "" : "<a class='ui-datepicker-prev ui-corner-all ui-state-disabled' title='" + W + "'><span class='ui-icon ui-icon-circle-triangle-" + (H ? "e" : "w") + "'>" + W + "</span></a>", W = this._get(t, "nextText"), W = j ? this.formatDate(W, this._daylightSavingAdjust(new Date(U, Y + M, 1)), this._getFormatConfig(t)) : W, n = this._canAdjustMonth(t, 1, U, Y) ? "<a class='ui-datepicker-next ui-corner-all' data-handler='next' data-event='click' title='" + W + "'><span class='ui-icon ui-icon-circle-triangle-" + (H ? "w" : "e") + "'>" + W + "</span></a>" : z ? "" : "<a class='ui-datepicker-next ui-corner-all ui-state-disabled' title='" + W + "'><span class='ui-icon ui-icon-circle-triangle-" + (H ? "w" : "e") + "'>" + W + "</span></a>", z = this._get(t, "currentText"), W = this._get(t, "gotoCurrent") && t.currentDay ? B : O, z = j ? this.formatDate(z, W, this._getFormatConfig(t)) : z, j = t.inline ? "" : "<button type='button' class='ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all' data-handler='hide' data-event='click'>" + this._get(t, "closeText") + "</button>", j = L ? "<div class='ui-datepicker-buttonpane ui-widget-content'>" + (H ? j : "") + (this._isInRange(t, W) ? "<button type='button' class='ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all' data-handler='today' data-event='click'>" + z + "</button>" : "") + (H ? "" : j) + "</div>" : "", s = parseInt(this._get(t, "firstDay"), 10), s = isNaN(s) ? 0 : s, o = this._get(t, "showWeek"), r = this._get(t, "dayNames"), a = this._get(t, "dayNamesMin"), l = this._get(t, "monthNames"), h = this._get(t, "monthNamesShort"), c = this._get(t, "beforeShowDay"), u = this._get(t, "showOtherMonths"), d = this._get(t, "selectOtherMonths"), p = this._getDefaultDate(t), f = "", m = 0; m < F[0]; m++) { for (v = "", this.maxRows = 4, _ = 0; _ < F[1]; _++) { if (y = this._daylightSavingAdjust(new Date(U, Y, t.selectedDay)), b = " ui-corner-all", w = "", R) { if (w += "<div class='ui-datepicker-group", 1 < F[1]) switch (_) { case 0: w += " ui-datepicker-group-first", b = " ui-corner-" + (H ? "right" : "left"); break; case F[1] - 1: w += " ui-datepicker-group-last", b = " ui-corner-" + (H ? "left" : "right"); break; default: w += " ui-datepicker-group-middle", b = "" }w += "'>" } for (w += "<div class='ui-datepicker-header ui-widget-header ui-helper-clearfix" + b + "'>" + (/all|left/.test(b) && 0 === m ? H ? n : i : "") + (/all|right/.test(b) && 0 === m ? H ? i : n : "") + this._generateMonthYearHeader(t, Y, U, $, q, 0 < m || 0 < _, l, h) + "</div><table class='ui-datepicker-calendar'><thead><tr>", x = o ? "<th class='ui-datepicker-week-col'>" + this._get(t, "weekHeader") + "</th>" : "", g = 0; g < 7; g++)x += "<th scope='col'" + (5 <= (g + s + 6) % 7 ? " class='ui-datepicker-week-end'" : "") + "><span title='" + r[C = (g + s) % 7] + "'>" + a[C] + "</span></th>"; for (w += x + "</tr></thead><tbody>", T = this._getDaysInMonth(U, Y), U === t.selectedYear && Y === t.selectedMonth && (t.selectedDay = Math.min(t.selectedDay, T)), k = (this._getFirstDayOfMonth(U, Y) - s + 7) % 7, T = Math.ceil((k + T) / 7), D = R && this.maxRows > T ? this.maxRows : T, this.maxRows = D, E = this._daylightSavingAdjust(new Date(U, Y, 1 - k)), S = 0; S < D; S++) { for (w += "<tr>", I = o ? "<td class='ui-datepicker-week-col'>" + this._get(t, "calculateWeek")(E) + "</td>" : "", g = 0; g < 7; g++)A = c ? c.apply(t.input ? t.input[0] : null, [E]) : [!0, ""], N = (P = E.getMonth() !== Y) && !d || !A[0] || $ && E < $ || q && q < E, I += "<td class='" + (5 <= (g + s + 6) % 7 ? " ui-datepicker-week-end" : "") + (P ? " ui-datepicker-other-month" : "") + (E.getTime() === y.getTime() && Y === t.selectedMonth && t._keyEvent || p.getTime() === E.getTime() && p.getTime() === y.getTime() ? " " + this._dayOverClass : "") + (N ? " " + this._unselectableClass + " ui-state-disabled" : "") + (P && !u ? "" : " " + A[1] + (E.getTime() === B.getTime() ? " " + this._currentClass : "") + (E.getTime() === O.getTime() ? " ui-datepicker-today" : "")) + "'" + (P && !u || !A[2] ? "" : " title='" + A[2].replace(/'/g, "&#39;") + "'") + (N ? "" : " data-handler='selectDay' data-event='click' data-month='" + E.getMonth() + "' data-year='" + E.getFullYear() + "'") + ">" + (P && !u ? "&#xa0;" : N ? "<span class='ui-state-default'>" + E.getDate() + "</span>" : "<a class='ui-state-default" + (E.getTime() === O.getTime() ? " ui-state-highlight" : "") + (E.getTime() === B.getTime() ? " ui-state-active" : "") + (P ? " ui-priority-secondary" : "") + "' href='#'>" + E.getDate() + "</a>") + "</td>", E.setDate(E.getDate() + 1), E = this._daylightSavingAdjust(E); w += I + "</tr>" } 11 < ++Y && (Y = 0, U++), v += w += "</tbody></table>" + (R ? "</div>" + (0 < F[0] && _ === F[1] - 1 ? "<div class='ui-datepicker-row-break'></div>" : "") : "") } f += v } return f += j, t._keyEvent = !1, f }, _generateMonthYearHeader: function (t, e, i, n, s, o, r, a) { var l, h, c, u, d, p, f, g = this._get(t, "changeMonth"), m = this._get(t, "changeYear"), v = this._get(t, "showMonthAfterYear"), _ = "<div class='ui-datepicker-title'>", y = ""; if (o || !g) y += "<span class='ui-datepicker-month'>" + r[e] + "</span>"; else { for (l = n && n.getFullYear() === i, h = s && s.getFullYear() === i, y += "<select class='ui-datepicker-month' data-handler='selectMonth' data-event='change'>", c = 0; c < 12; c++)(!l || c >= n.getMonth()) && (!h || c <= s.getMonth()) && (y += "<option value='" + c + "'" + (c === e ? " selected='selected'" : "") + ">" + a[c] + "</option>"); y += "</select>" } if (v || (_ += y + (!o && g && m ? "" : "&#xa0;")), !t.yearshtml) if (t.yearshtml = "", o || !m) _ += "<span class='ui-datepicker-year'>" + i + "</span>"; else { for (u = this._get(t, "yearRange").split(":"), d = (new Date).getFullYear(), p = (r = function (t) { t = t.match(/c[+\-].*/) ? i + parseInt(t.substring(1), 10) : t.match(/[+\-].*/) ? d + parseInt(t, 10) : parseInt(t, 10); return isNaN(t) ? d : t })(u[0]), f = Math.max(p, r(u[1] || "")), p = n ? Math.max(p, n.getFullYear()) : p, f = s ? Math.min(f, s.getFullYear()) : f, t.yearshtml += "<select class='ui-datepicker-year' data-handler='selectYear' data-event='change'>"; p <= f; p++)t.yearshtml += "<option value='" + p + "'" + (p === i ? " selected='selected'" : "") + ">" + p + "</option>"; t.yearshtml += "</select>", _ += t.yearshtml, t.yearshtml = null } return _ += this._get(t, "yearSuffix"), v && (_ += (!o && g && m ? "" : "&#xa0;") + y), _ += "</div>" }, _adjustInstDate: function (t, e, i) { var n = t.selectedYear + ("Y" === i ? e : 0), s = t.selectedMonth + ("M" === i ? e : 0), e = Math.min(t.selectedDay, this._getDaysInMonth(n, s)) + ("D" === i ? e : 0), e = this._restrictMinMax(t, this._daylightSavingAdjust(new Date(n, s, e))); t.selectedDay = e.getDate(), t.drawMonth = t.selectedMonth = e.getMonth(), t.drawYear = t.selectedYear = e.getFullYear(), "M" !== i && "Y" !== i || this._notifyChange(t) }, _restrictMinMax: function (t, e) { var i = this._getMinMaxDate(t, "min"), t = this._getMinMaxDate(t, "max"), e = i && e < i ? i : e; return t && t < e ? t : e }, _notifyChange: function (t) { var e = this._get(t, "onChangeMonthYear"); e && e.apply(t.input ? t.input[0] : null, [t.selectedYear, t.selectedMonth + 1, t]) }, _getNumberOfMonths: function (t) { t = this._get(t, "numberOfMonths"); return null == t ? [1, 1] : "number" == typeof t ? [1, t] : t }, _getMinMaxDate: function (t, e) { return this._determineDate(t, this._get(t, e + "Date"), null) }, _getDaysInMonth: function (t, e) { return 32 - this._daylightSavingAdjust(new Date(t, e, 32)).getDate() }, _getFirstDayOfMonth: function (t, e) { return new Date(t, e, 1).getDay() }, _canAdjustMonth: function (t, e, i, n) { var s = this._getNumberOfMonths(t), s = this._daylightSavingAdjust(new Date(i, n + (e < 0 ? e : s[0] * s[1]), 1)); return e < 0 && s.setDate(this._getDaysInMonth(s.getFullYear(), s.getMonth())), this._isInRange(t, s) }, _isInRange: function (t, e) { var i = this._getMinMaxDate(t, "min"), n = this._getMinMaxDate(t, "max"), s = null, o = null, r = this._get(t, "yearRange"); return r && (t = r.split(":"), r = (new Date).getFullYear(), s = parseInt(t[0], 10), o = parseInt(t[1], 10), t[0].match(/[+\-].*/) && (s += r), t[1].match(/[+\-].*/) && (o += r)), (!i || e.getTime() >= i.getTime()) && (!n || e.getTime() <= n.getTime()) && (!s || e.getFullYear() >= s) && (!o || e.getFullYear() <= o) }, _getFormatConfig: function (t) { var e = this._get(t, "shortYearCutoff"); return { shortYearCutoff: e = "string" != typeof e ? e : (new Date).getFullYear() % 100 + parseInt(e, 10), dayNamesShort: this._get(t, "dayNamesShort"), dayNames: this._get(t, "dayNames"), monthNamesShort: this._get(t, "monthNamesShort"), monthNames: this._get(t, "monthNames") } }, _formatDate: function (t, e, i, n) { e || (t.currentDay = t.selectedDay, t.currentMonth = t.selectedMonth, t.currentYear = t.selectedYear); e = e ? "object" == typeof e ? e : this._daylightSavingAdjust(new Date(n, i, e)) : this._daylightSavingAdjust(new Date(t.currentYear, t.currentMonth, t.currentDay)); return this.formatDate(this._get(t, "dateFormat"), e, this._getFormatConfig(t)) } }), x.fn.datepicker = function (t) { if (!this.length) return this; x.datepicker.initialized || (x(document).on("mousedown", x.datepicker._checkExternalClick), x.datepicker.initialized = !0), 0 === x("#" + x.datepicker._mainDivId).length && x("body").append(x.datepicker.dpDiv); var e = Array.prototype.slice.call(arguments, 1); return "string" == typeof t && ("isDisabled" === t || "getDate" === t || "widget" === t) || "option" === t && 2 === arguments.length && "string" == typeof arguments[1] ? x.datepicker["_" + t + "Datepicker"].apply(x.datepicker, [this[0]].concat(e)) : this.each(function () { "string" == typeof t ? x.datepicker["_" + t + "Datepicker"].apply(x.datepicker, [this].concat(e)) : x.datepicker._attachDatepicker(this, t) }) }, x.datepicker = new Z, x.datepicker.initialized = !1, x.datepicker.uuid = (new Date).getTime(), x.datepicker.version = "1.12.1"; x.datepicker, x.ui.ie = !!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase()); var nt = !1; x(document).on("mouseup", function () { nt = !1 }); x.widget("ui.mouse", { version: "1.12.1", options: { cancel: "input, textarea, button, select, option", distance: 1, delay: 0 }, _mouseInit: function () { var e = this; this.element.on("mousedown." + this.widgetName, function (t) { return e._mouseDown(t) }).on("click." + this.widgetName, function (t) { if (!0 === x.data(t.target, e.widgetName + ".preventClickEvent")) return x.removeData(t.target, e.widgetName + ".preventClickEvent"), t.stopImmediatePropagation(), !1 }), this.started = !1 }, _mouseDestroy: function () { this.element.off("." + this.widgetName), this._mouseMoveDelegate && this.document.off("mousemove." + this.widgetName, this._mouseMoveDelegate).off("mouseup." + this.widgetName, this._mouseUpDelegate) }, _mouseDown: function (t) { if (!nt) { this._mouseMoved = !1, this._mouseStarted && this._mouseUp(t), this._mouseDownEvent = t; var e = this, i = 1 === t.which, n = !("string" != typeof this.options.cancel || !t.target.nodeName) && x(t.target).closest(this.options.cancel).length; return i && !n && this._mouseCapture(t) ? (this.mouseDelayMet = !this.options.delay, this.mouseDelayMet || (this._mouseDelayTimer = setTimeout(function () { e.mouseDelayMet = !0 }, this.options.delay)), this._mouseDistanceMet(t) && this._mouseDelayMet(t) && (this._mouseStarted = !1 !== this._mouseStart(t), !this._mouseStarted) ? (t.preventDefault(), !0) : (!0 === x.data(t.target, this.widgetName + ".preventClickEvent") && x.removeData(t.target, this.widgetName + ".preventClickEvent"), this._mouseMoveDelegate = function (t) { return e._mouseMove(t) }, this._mouseUpDelegate = function (t) { return e._mouseUp(t) }, this.document.on("mousemove." + this.widgetName, this._mouseMoveDelegate).on("mouseup." + this.widgetName, this._mouseUpDelegate), t.preventDefault(), nt = !0)) : !0 } }, _mouseMove: function (t) { if (this._mouseMoved) { if (x.ui.ie && (!document.documentMode || document.documentMode < 9) && !t.button) return this._mouseUp(t); if (!t.which) if (t.originalEvent.altKey || t.originalEvent.ctrlKey || t.originalEvent.metaKey || t.originalEvent.shiftKey) this.ignoreMissingWhich = !0; else if (!this.ignoreMissingWhich) return this._mouseUp(t) } return (t.which || t.button) && (this._mouseMoved = !0), this._mouseStarted ? (this._mouseDrag(t), t.preventDefault()) : (this._mouseDistanceMet(t) && this._mouseDelayMet(t) && (this._mouseStarted = !1 !== this._mouseStart(this._mouseDownEvent, t), this._mouseStarted ? this._mouseDrag(t) : this._mouseUp(t)), !this._mouseStarted) }, _mouseUp: function (t) { this.document.off("mousemove." + this.widgetName, this._mouseMoveDelegate).off("mouseup." + this.widgetName, this._mouseUpDelegate), this._mouseStarted && (this._mouseStarted = !1, t.target === this._mouseDownEvent.target && x.data(t.target, this.widgetName + ".preventClickEvent", !0), this._mouseStop(t)), this._mouseDelayTimer && (clearTimeout(this._mouseDelayTimer), delete this._mouseDelayTimer), this.ignoreMissingWhich = !1, nt = !1, t.preventDefault() }, _mouseDistanceMet: function (t) { return Math.max(Math.abs(this._mouseDownEvent.pageX - t.pageX), Math.abs(this._mouseDownEvent.pageY - t.pageY)) >= this.options.distance }, _mouseDelayMet: function () { return this.mouseDelayMet }, _mouseStart: function () { }, _mouseDrag: function () { }, _mouseStop: function () { }, _mouseCapture: function () { return !0 } }), x.ui.plugin = { add: function (t, e, i) { var n, s = x.ui[t].prototype; for (n in i) s.plugins[n] = s.plugins[n] || [], s.plugins[n].push([e, i[n]]) }, call: function (t, e, i, n) { var s, o = t.plugins[e]; if (o && (n || t.element[0].parentNode && 11 !== t.element[0].parentNode.nodeType)) for (s = 0; s < o.length; s++)t.options[o[s][0]] && o[s][1].apply(t.element, i) } }, x.ui.safeBlur = function (t) { t && "body" !== t.nodeName.toLowerCase() && x(t).trigger("blur") }; x.widget("ui.draggable", x.ui.mouse, { version: "1.12.1", widgetEventPrefix: "drag", options: { addClasses: !0, appendTo: "parent", axis: !1, connectToSortable: !1, containment: !1, cursor: "auto", cursorAt: !1, grid: !1, handle: !1, helper: "original", iframeFix: !1, opacity: !1, refreshPositions: !1, revert: !1, revertDuration: 500, scope: "default", scroll: !0, scrollSensitivity: 20, scrollSpeed: 20, snap: !1, snapMode: "both", snapTolerance: 20, stack: !1, zIndex: !1, drag: null, start: null, stop: null }, _create: function () { "original" === this.options.helper && this._setPositionRelative(), this.options.addClasses && this._addClass("ui-draggable"), this._setHandleClassName(), this._mouseInit() }, _setOption: function (t, e) { this._super(t, e), "handle" === t && (this._removeHandleClassName(), this._setHandleClassName()) }, _destroy: function () { (this.helper || this.element).is(".ui-draggable-dragging") ? this.destroyOnClear = !0 : (this._removeHandleClassName(), this._mouseDestroy()) }, _mouseCapture: function (t) { var e = this.options; return !(this.helper || e.disabled || 0 < x(t.target).closest(".ui-resizable-handle").length) && (this.handle = this._getHandle(t), !!this.handle && (this._blurActiveElement(t), this._blockFrames(!0 === e.iframeFix ? "iframe" : e.iframeFix), !0)) }, _blockFrames: function (t) { this.iframeBlocks = this.document.find(t).map(function () { var t = x(this); return x("<div>").css("position", "absolute").appendTo(t.parent()).outerWidth(t.outerWidth()).outerHeight(t.outerHeight()).offset(t.offset())[0] }) }, _unblockFrames: function () { this.iframeBlocks && (this.iframeBlocks.remove(), delete this.iframeBlocks) }, _blurActiveElement: function (t) { var e = x.ui.safeActiveElement(this.document[0]); x(t.target).closest(e).length || x.ui.safeBlur(e) }, _mouseStart: function (t) { var e = this.options; return this.helper = this._createHelper(t), this._addClass(this.helper, "ui-draggable-dragging"), this._cacheHelperProportions(), x.ui.ddmanager && (x.ui.ddmanager.current = this), this._cacheMargins(), this.cssPosition = this.helper.css("position"), this.scrollParent = this.helper.scrollParent(!0), this.offsetParent = this.helper.offsetParent(), this.hasFixedAncestor = 0 < this.helper.parents().filter(function () { return "fixed" === x(this).css("position") }).length, this.positionAbs = this.element.offset(), this._refreshOffsets(t), this.originalPosition = this.position = this._generatePosition(t, !1), this.originalPageX = t.pageX, this.originalPageY = t.pageY, e.cursorAt && this._adjustOffsetFromHelper(e.cursorAt), this._setContainment(), !1 === this._trigger("start", t) ? (this._clear(), !1) : (this._cacheHelperProportions(), x.ui.ddmanager && !e.dropBehaviour && x.ui.ddmanager.prepareOffsets(this, t), this._mouseDrag(t, !0), x.ui.ddmanager && x.ui.ddmanager.dragStart(this, t), !0) }, _refreshOffsets: function (t) { this.offset = { top: this.positionAbs.top - this.margins.top, left: this.positionAbs.left - this.margins.left, scroll: !1, parent: this._getParentOffset(), relative: this._getRelativeOffset() }, this.offset.click = { left: t.pageX - this.offset.left, top: t.pageY - this.offset.top } }, _mouseDrag: function (t, e) { if (this.hasFixedAncestor && (this.offset.parent = this._getParentOffset()), this.position = this._generatePosition(t, !0), this.positionAbs = this._convertPositionTo("absolute"), !e) { e = this._uiHash(); if (!1 === this._trigger("drag", t, e)) return this._mouseUp(new x.Event("mouseup", t)), !1; this.position = e.position } return this.helper[0].style.left = this.position.left + "px", this.helper[0].style.top = this.position.top + "px", x.ui.ddmanager && x.ui.ddmanager.drag(this, t), !1 }, _mouseStop: function (t) { var e = this, i = !1; return x.ui.ddmanager && !this.options.dropBehaviour && (i = x.ui.ddmanager.drop(this, t)), this.dropped && (i = this.dropped, this.dropped = !1), "invalid" === this.options.revert && !i || "valid" === this.options.revert && i || !0 === this.options.revert || x.isFunction(this.options.revert) && this.options.revert.call(this.element, i) ? x(this.helper).animate(this.originalPosition, parseInt(this.options.revertDuration, 10), function () { !1 !== e._trigger("stop", t) && e._clear() }) : !1 !== this._trigger("stop", t) && this._clear(), !1 }, _mouseUp: function (t) { return this._unblockFrames(), x.ui.ddmanager && x.ui.ddmanager.dragStop(this, t), this.handleElement.is(t.target) && this.element.trigger("focus"), x.ui.mouse.prototype._mouseUp.call(this, t) }, cancel: function () { return this.helper.is(".ui-draggable-dragging") ? this._mouseUp(new x.Event("mouseup", { target: this.element[0] })) : this._clear(), this }, _getHandle: function (t) { return !this.options.handle || !!x(t.target).closest(this.element.find(this.options.handle)).length }, _setHandleClassName: function () { this.handleElement = this.options.handle ? this.element.find(this.options.handle) : this.element, this._addClass(this.handleElement, "ui-draggable-handle") }, _removeHandleClassName: function () { this._removeClass(this.handleElement, "ui-draggable-handle") }, _createHelper: function (t) { var e = this.options, i = x.isFunction(e.helper), t = i ? x(e.helper.apply(this.element[0], [t])) : "clone" === e.helper ? this.element.clone().removeAttr("id") : this.element; return t.parents("body").length || t.appendTo("parent" === e.appendTo ? this.element[0].parentNode : e.appendTo), i && t[0] === this.element[0] && this._setPositionRelative(), t[0] === this.element[0] || /(fixed|absolute)/.test(t.css("position")) || t.css("position", "absolute"), t }, _setPositionRelative: function () { /^(?:r|a|f)/.test(this.element.css("position")) || (this.element[0].style.position = "relative") }, _adjustOffsetFromHelper: function (t) { "string" == typeof t && (t = t.split(" ")), x.isArray(t) && (t = { left: +t[0], top: +t[1] || 0 }), "left" in t && (this.offset.click.left = t.left + this.margins.left), "right" in t && (this.offset.click.left = this.helperProportions.width - t.right + this.margins.left), "top" in t && (this.offset.click.top = t.top + this.margins.top), "bottom" in t && (this.offset.click.top = this.helperProportions.height - t.bottom + this.margins.top) }, _isRootNode: function (t) { return /(html|body)/i.test(t.tagName) || t === this.document[0] }, _getParentOffset: function () { var t = this.offsetParent.offset(), e = this.document[0]; return "absolute" === this.cssPosition && this.scrollParent[0] !== e && x.contains(this.scrollParent[0], this.offsetParent[0]) && (t.left += this.scrollParent.scrollLeft(), t.top += this.scrollParent.scrollTop()), this._isRootNode(this.offsetParent[0]) && (t = { top: 0, left: 0 }), { top: t.top + (parseInt(this.offsetParent.css("borderTopWidth"), 10) || 0), left: t.left + (parseInt(this.offsetParent.css("borderLeftWidth"), 10) || 0) } }, _getRelativeOffset: function () { if ("relative" !== this.cssPosition) return { top: 0, left: 0 }; var t = this.element.position(), e = this._isRootNode(this.scrollParent[0]); return { top: t.top - (parseInt(this.helper.css("top"), 10) || 0) + (e ? 0 : this.scrollParent.scrollTop()), left: t.left - (parseInt(this.helper.css("left"), 10) || 0) + (e ? 0 : this.scrollParent.scrollLeft()) } }, _cacheMargins: function () { this.margins = { left: parseInt(this.element.css("marginLeft"), 10) || 0, top: parseInt(this.element.css("marginTop"), 10) || 0, right: parseInt(this.element.css("marginRight"), 10) || 0, bottom: parseInt(this.element.css("marginBottom"), 10) || 0 } }, _cacheHelperProportions: function () { this.helperProportions = { width: this.helper.outerWidth(), height: this.helper.outerHeight() } }, _setContainment: function () { var t, e, i, n = this.options, s = this.document[0]; this.relativeContainer = null, n.containment ? "window" !== n.containment ? "document" !== n.containment ? n.containment.constructor !== Array ? ("parent" === n.containment && (n.containment = this.helper[0].parentNode), (i = (e = x(n.containment))[0]) && (t = /(scroll|auto)/.test(e.css("overflow")), this.containment = [(parseInt(e.css("borderLeftWidth"), 10) || 0) + (parseInt(e.css("paddingLeft"), 10) || 0), (parseInt(e.css("borderTopWidth"), 10) || 0) + (parseInt(e.css("paddingTop"), 10) || 0), (t ? Math.max(i.scrollWidth, i.offsetWidth) : i.offsetWidth) - (parseInt(e.css("borderRightWidth"), 10) || 0) - (parseInt(e.css("paddingRight"), 10) || 0) - this.helperProportions.width - this.margins.left - this.margins.right, (t ? Math.max(i.scrollHeight, i.offsetHeight) : i.offsetHeight) - (parseInt(e.css("borderBottomWidth"), 10) || 0) - (parseInt(e.css("paddingBottom"), 10) || 0) - this.helperProportions.height - this.margins.top - this.margins.bottom], this.relativeContainer = e)) : this.containment = n.containment : this.containment = [0, 0, x(s).width() - this.helperProportions.width - this.margins.left, (x(s).height() || s.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top] : this.containment = [x(window).scrollLeft() - this.offset.relative.left - this.offset.parent.left, x(window).scrollTop() - this.offset.relative.top - this.offset.parent.top, x(window).scrollLeft() + x(window).width() - this.helperProportions.width - this.margins.left, x(window).scrollTop() + (x(window).height() || s.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top] : this.containment = null }, _convertPositionTo: function (t, e) { e = e || this.position; var i = "absolute" === t ? 1 : -1, t = this._isRootNode(this.scrollParent[0]); return { top: e.top + this.offset.relative.top * i + this.offset.parent.top * i - ("fixed" === this.cssPosition ? -this.offset.scroll.top : t ? 0 : this.offset.scroll.top) * i, left: e.left + this.offset.relative.left * i + this.offset.parent.left * i - ("fixed" === this.cssPosition ? -this.offset.scroll.left : t ? 0 : this.offset.scroll.left) * i } }, _generatePosition: function (t, e) { var i, n = this.options, s = this._isRootNode(this.scrollParent[0]), o = t.pageX, r = t.pageY; return s && this.offset.scroll || (this.offset.scroll = { top: this.scrollParent.scrollTop(), left: this.scrollParent.scrollLeft() }), e && (this.containment && (i = this.relativeContainer ? (i = this.relativeContainer.offset(), [this.containment[0] + i.left, this.containment[1] + i.top, this.containment[2] + i.left, this.containment[3] + i.top]) : this.containment, t.pageX - this.offset.click.left < i[0] && (o = i[0] + this.offset.click.left), t.pageY - this.offset.click.top < i[1] && (r = i[1] + this.offset.click.top), t.pageX - this.offset.click.left > i[2] && (o = i[2] + this.offset.click.left), t.pageY - this.offset.click.top > i[3] && (r = i[3] + this.offset.click.top)), n.grid && (t = n.grid[1] ? this.originalPageY + Math.round((r - this.originalPageY) / n.grid[1]) * n.grid[1] : this.originalPageY, r = !i || t - this.offset.click.top >= i[1] || t - this.offset.click.top > i[3] ? t : t - this.offset.click.top >= i[1] ? t - n.grid[1] : t + n.grid[1], t = n.grid[0] ? this.originalPageX + Math.round((o - this.originalPageX) / n.grid[0]) * n.grid[0] : this.originalPageX, o = !i || t - this.offset.click.left >= i[0] || t - this.offset.click.left > i[2] ? t : t - this.offset.click.left >= i[0] ? t - n.grid[0] : t + n.grid[0]), "y" === n.axis && (o = this.originalPageX), "x" === n.axis && (r = this.originalPageY)), { top: r - this.offset.click.top - this.offset.relative.top - this.offset.parent.top + ("fixed" === this.cssPosition ? -this.offset.scroll.top : s ? 0 : this.offset.scroll.top), left: o - this.offset.click.left - this.offset.relative.left - this.offset.parent.left + ("fixed" === this.cssPosition ? -this.offset.scroll.left : s ? 0 : this.offset.scroll.left) } }, _clear: function () { this._removeClass(this.helper, "ui-draggable-dragging"), this.helper[0] === this.element[0] || this.cancelHelperRemoval || this.helper.remove(), this.helper = null, this.cancelHelperRemoval = !1, this.destroyOnClear && this.destroy() }, _trigger: function (t, e, i) { return i = i || this._uiHash(), x.ui.plugin.call(this, t, [e, i, this], !0), /^(drag|start|stop)/.test(t) && (this.positionAbs = this._convertPositionTo("absolute"), i.offset = this.positionAbs), x.Widget.prototype._trigger.call(this, t, e, i) }, plugins: {}, _uiHash: function () { return { helper: this.helper, position: this.position, originalPosition: this.originalPosition, offset: this.positionAbs } } }), x.ui.plugin.add("draggable", "connectToSortable", { start: function (e, t, i) { var n = x.extend({}, t, { item: i.element }); i.sortables = [], x(i.options.connectToSortable).each(function () { var t = x(this).sortable("instance"); t && !t.options.disabled && (i.sortables.push(t), t.refreshPositions(), t._trigger("activate", e, n)) }) }, stop: function (e, t, i) { var n = x.extend({}, t, { item: i.element }); i.cancelHelperRemoval = !1, x.each(i.sortables, function () { var t = this; t.isOver ? (t.isOver = 0, i.cancelHelperRemoval = !0, t.cancelHelperRemoval = !1, t._storedCSS = { position: t.placeholder.css("position"), top: t.placeholder.css("top"), left: t.placeholder.css("left") }, t._mouseStop(e), t.options.helper = t.options._helper) : (t.cancelHelperRemoval = !0, t._trigger("deactivate", e, n)) }) }, drag: function (i, n, s) { x.each(s.sortables, function () { var t = !1, e = this; e.positionAbs = s.positionAbs, e.helperProportions = s.helperProportions, e.offset.click = s.offset.click, e._intersectsWith(e.containerCache) && (t = !0, x.each(s.sortables, function () { return this.positionAbs = s.positionAbs, this.helperProportions = s.helperProportions, this.offset.click = s.offset.click, this !== e && this._intersectsWith(this.containerCache) && x.contains(e.element[0], this.element[0]) && (t = !1), t })), t ? (e.isOver || (e.isOver = 1, s._parent = n.helper.parent(), e.currentItem = n.helper.appendTo(e.element).data("ui-sortable-item", !0), e.options._helper = e.options.helper, e.options.helper = function () { return n.helper[0] }, i.target = e.currentItem[0], e._mouseCapture(i, !0), e._mouseStart(i, !0, !0), e.offset.click.top = s.offset.click.top, e.offset.click.left = s.offset.click.left, e.offset.parent.left -= s.offset.parent.left - e.offset.parent.left, e.offset.parent.top -= s.offset.parent.top - e.offset.parent.top, s._trigger("toSortable", i), s.dropped = e.element, x.each(s.sortables, function () { this.refreshPositions() }), s.currentItem = s.element, e.fromOutside = s), e.currentItem && (e._mouseDrag(i), n.position = e.position)) : e.isOver && (e.isOver = 0, e.cancelHelperRemoval = !0, e.options._revert = e.options.revert, e.options.revert = !1, e._trigger("out", i, e._uiHash(e)), e._mouseStop(i, !0), e.options.revert = e.options._revert, e.options.helper = e.options._helper, e.placeholder && e.placeholder.remove(), n.helper.appendTo(s._parent), s._refreshOffsets(i), n.position = s._generatePosition(i, !0), s._trigger("fromSortable", i), s.dropped = !1, x.each(s.sortables, function () { this.refreshPositions() })) }) } }), x.ui.plugin.add("draggable", "cursor", { start: function (t, e, i) { var n = x("body"), i = i.options; n.css("cursor") && (i._cursor = n.css("cursor")), n.css("cursor", i.cursor) }, stop: function (t, e, i) { i = i.options; i._cursor && x("body").css("cursor", i._cursor) } }), x.ui.plugin.add("draggable", "opacity", { start: function (t, e, i) { e = x(e.helper), i = i.options; e.css("opacity") && (i._opacity = e.css("opacity")), e.css("opacity", i.opacity) }, stop: function (t, e, i) { i = i.options; i._opacity && x(e.helper).css("opacity", i._opacity) } }), x.ui.plugin.add("draggable", "scroll", { start: function (t, e, i) { i.scrollParentNotHidden || (i.scrollParentNotHidden = i.helper.scrollParent(!1)), i.scrollParentNotHidden[0] !== i.document[0] && "HTML" !== i.scrollParentNotHidden[0].tagName && (i.overflowOffset = i.scrollParentNotHidden.offset()) }, drag: function (t, e, i) { var n = i.options, s = !1, o = i.scrollParentNotHidden[0], r = i.document[0]; o !== r && "HTML" !== o.tagName ? (n.axis && "x" === n.axis || (i.overflowOffset.top + o.offsetHeight - t.pageY < n.scrollSensitivity ? o.scrollTop = s = o.scrollTop + n.scrollSpeed : t.pageY - i.overflowOffset.top < n.scrollSensitivity && (o.scrollTop = s = o.scrollTop - n.scrollSpeed)), n.axis && "y" === n.axis || (i.overflowOffset.left + o.offsetWidth - t.pageX < n.scrollSensitivity ? o.scrollLeft = s = o.scrollLeft + n.scrollSpeed : t.pageX - i.overflowOffset.left < n.scrollSensitivity && (o.scrollLeft = s = o.scrollLeft - n.scrollSpeed))) : (n.axis && "x" === n.axis || (t.pageY - x(r).scrollTop() < n.scrollSensitivity ? s = x(r).scrollTop(x(r).scrollTop() - n.scrollSpeed) : x(window).height() - (t.pageY - x(r).scrollTop()) < n.scrollSensitivity && (s = x(r).scrollTop(x(r).scrollTop() + n.scrollSpeed))), n.axis && "y" === n.axis || (t.pageX - x(r).scrollLeft() < n.scrollSensitivity ? s = x(r).scrollLeft(x(r).scrollLeft() - n.scrollSpeed) : x(window).width() - (t.pageX - x(r).scrollLeft()) < n.scrollSensitivity && (s = x(r).scrollLeft(x(r).scrollLeft() + n.scrollSpeed)))), !1 !== s && x.ui.ddmanager && !n.dropBehaviour && x.ui.ddmanager.prepareOffsets(i, t) } }), x.ui.plugin.add("draggable", "snap", { start: function (t, e, i) { var n = i.options; i.snapElements = [], x(n.snap.constructor !== String ? n.snap.items || ":data(ui-draggable)" : n.snap).each(function () { var t = x(this), e = t.offset(); this !== i.element[0] && i.snapElements.push({ item: this, width: t.outerWidth(), height: t.outerHeight(), top: e.top, left: e.left }) }) }, drag: function (t, e, i) { for (var n, s, o, r, a, l, h, c, u, d = i.options, p = d.snapTolerance, f = e.offset.left, g = f + i.helperProportions.width, m = e.offset.top, v = m + i.helperProportions.height, _ = i.snapElements.length - 1; 0 <= _; _--)l = (a = i.snapElements[_].left - i.margins.left) + i.snapElements[_].width, c = (h = i.snapElements[_].top - i.margins.top) + i.snapElements[_].height, g < a - p || l + p < f || v < h - p || c + p < m || !x.contains(i.snapElements[_].item.ownerDocument, i.snapElements[_].item) ? (i.snapElements[_].snapping && i.options.snap.release && i.options.snap.release.call(i.element, t, x.extend(i._uiHash(), { snapItem: i.snapElements[_].item })), i.snapElements[_].snapping = !1) : ("inner" !== d.snapMode && (n = Math.abs(h - v) <= p, s = Math.abs(c - m) <= p, o = Math.abs(a - g) <= p, r = Math.abs(l - f) <= p, n && (e.position.top = i._convertPositionTo("relative", { top: h - i.helperProportions.height, left: 0 }).top), s && (e.position.top = i._convertPositionTo("relative", { top: c, left: 0 }).top), o && (e.position.left = i._convertPositionTo("relative", { top: 0, left: a - i.helperProportions.width }).left), r && (e.position.left = i._convertPositionTo("relative", { top: 0, left: l }).left)), u = n || s || o || r, "outer" !== d.snapMode && (n = Math.abs(h - m) <= p, s = Math.abs(c - v) <= p, o = Math.abs(a - f) <= p, r = Math.abs(l - g) <= p, n && (e.position.top = i._convertPositionTo("relative", { top: h, left: 0 }).top), s && (e.position.top = i._convertPositionTo("relative", { top: c - i.helperProportions.height, left: 0 }).top), o && (e.position.left = i._convertPositionTo("relative", { top: 0, left: a }).left), r && (e.position.left = i._convertPositionTo("relative", { top: 0, left: l - i.helperProportions.width }).left)), !i.snapElements[_].snapping && (n || s || o || r || u) && i.options.snap.snap && i.options.snap.snap.call(i.element, t, x.extend(i._uiHash(), { snapItem: i.snapElements[_].item })), i.snapElements[_].snapping = n || s || o || r || u) } }), x.ui.plugin.add("draggable", "stack", { start: function (t, e, i) { var n, i = i.options, i = x.makeArray(x(i.stack)).sort(function (t, e) { return (parseInt(x(t).css("zIndex"), 10) || 0) - (parseInt(x(e).css("zIndex"), 10) || 0) }); i.length && (n = parseInt(x(i[0]).css("zIndex"), 10) || 0, x(i).each(function (t) { x(this).css("zIndex", n + t) }), this.css("zIndex", n + i.length)) } }), x.ui.plugin.add("draggable", "zIndex", { start: function (t, e, i) { e = x(e.helper), i = i.options; e.css("zIndex") && (i._zIndex = e.css("zIndex")), e.css("zIndex", i.zIndex) }, stop: function (t, e, i) { i = i.options; i._zIndex && x(e.helper).css("zIndex", i._zIndex) } }); x.ui.draggable; x.widget("ui.resizable", x.ui.mouse, { version: "1.12.1", widgetEventPrefix: "resize", options: { alsoResize: !1, animate: !1, animateDuration: "slow", animateEasing: "swing", aspectRatio: !1, autoHide: !1, classes: { "ui-resizable-se": "ui-icon ui-icon-gripsmall-diagonal-se" }, containment: !1, ghost: !1, grid: !1, handles: "e,s,se", helper: !1, maxHeight: null, maxWidth: null, minHeight: 10, minWidth: 10, zIndex: 90, resize: null, start: null, stop: null }, _num: function (t) { return parseFloat(t) || 0 }, _isNumber: function (t) { return !isNaN(parseFloat(t)) }, _hasScroll: function (t, e) { if ("hidden" === x(t).css("overflow")) return !1; var i = e && "left" === e ? "scrollLeft" : "scrollTop", e = !1; return 0 < t[i] || (t[i] = 1, e = 0 < t[i], t[i] = 0, e) }, _create: function () { var t, e = this.options, i = this; this._addClass("ui-resizable"), x.extend(this, { _aspectRatio: !!e.aspectRatio, aspectRatio: e.aspectRatio, originalElement: this.element, _proportionallyResizeElements: [], _helper: e.helper || e.ghost || e.animate ? e.helper || "ui-resizable-helper" : null }), this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i) && (this.element.wrap(x("<div class='ui-wrapper' style='overflow: hidden;'></div>").css({ position: this.element.css("position"), width: this.element.outerWidth(), height: this.element.outerHeight(), top: this.element.css("top"), left: this.element.css("left") })), this.element = this.element.parent().data("ui-resizable", this.element.resizable("instance")), this.elementIsWrapper = !0, t = { marginTop: this.originalElement.css("marginTop"), marginRight: this.originalElement.css("marginRight"), marginBottom: this.originalElement.css("marginBottom"), marginLeft: this.originalElement.css("marginLeft") }, this.element.css(t), this.originalElement.css("margin", 0), this.originalResizeStyle = this.originalElement.css("resize"), this.originalElement.css("resize", "none"), this._proportionallyResizeElements.push(this.originalElement.css({ position: "static", zoom: 1, display: "block" })), this.originalElement.css(t), this._proportionallyResize()), this._setupHandles(), e.autoHide && x(this.element).on("mouseenter", function () { e.disabled || (i._removeClass("ui-resizable-autohide"), i._handles.show()) }).on("mouseleave", function () { e.disabled || i.resizing || (i._addClass("ui-resizable-autohide"), i._handles.hide()) }), this._mouseInit() }, _destroy: function () { this._mouseDestroy(); function t(t) { x(t).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove() } var e; return this.elementIsWrapper && (t(this.element), e = this.element, this.originalElement.css({ position: e.css("position"), width: e.outerWidth(), height: e.outerHeight(), top: e.css("top"), left: e.css("left") }).insertAfter(e), e.remove()), this.originalElement.css("resize", this.originalResizeStyle), t(this.originalElement), this }, _setOption: function (t, e) { this._super(t, e), "handles" === t && (this._removeHandles(), this._setupHandles()) }, _setupHandles: function () { var t, e, i, n, s, o = this.options, r = this; if (this.handles = o.handles || (x(".ui-resizable-handle", this.element).length ? { n: ".ui-resizable-n", e: ".ui-resizable-e", s: ".ui-resizable-s", w: ".ui-resizable-w", se: ".ui-resizable-se", sw: ".ui-resizable-sw", ne: ".ui-resizable-ne", nw: ".ui-resizable-nw" } : "e,s,se"), this._handles = x(), this.handles.constructor === String) for ("all" === this.handles && (this.handles = "n,e,s,w,se,sw,ne,nw"), i = this.handles.split(","), this.handles = {}, e = 0; e < i.length; e++)n = "ui-resizable-" + (t = x.trim(i[e])), s = x("<div>"), this._addClass(s, "ui-resizable-handle " + n), s.css({ zIndex: o.zIndex }), this.handles[t] = ".ui-resizable-" + t, this.element.append(s); this._renderAxis = function (t) { var e, i, n; for (e in t = t || this.element, this.handles) this.handles[e].constructor === String ? this.handles[e] = this.element.children(this.handles[e]).first().show() : (this.handles[e].jquery || this.handles[e].nodeType) && (this.handles[e] = x(this.handles[e]), this._on(this.handles[e], { mousedown: r._mouseDown })), this.elementIsWrapper && this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i) && (i = x(this.handles[e], this.element), n = /sw|ne|nw|se|n|s/.test(e) ? i.outerHeight() : i.outerWidth(), i = ["padding", /ne|nw|n/.test(e) ? "Top" : /se|sw|s/.test(e) ? "Bottom" : /^e$/.test(e) ? "Right" : "Left"].join(""), t.css(i, n), this._proportionallyResize()), this._handles = this._handles.add(this.handles[e]) }, this._renderAxis(this.element), this._handles = this._handles.add(this.element.find(".ui-resizable-handle")), this._handles.disableSelection(), this._handles.on("mouseover", function () { r.resizing || (this.className && (s = this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)), r.axis = s && s[1] ? s[1] : "se") }), o.autoHide && (this._handles.hide(), this._addClass("ui-resizable-autohide")) }, _removeHandles: function () { this._handles.remove() }, _mouseCapture: function (t) { var e, i, n = !1; for (e in this.handles) (i = x(this.handles[e])[0]) !== t.target && !x.contains(i, t.target) || (n = !0); return !this.options.disabled && n }, _mouseStart: function (t) { var e, i, n = this.options, s = this.element; return this.resizing = !0, this._renderProxy(), e = this._num(this.helper.css("left")), i = this._num(this.helper.css("top")), n.containment && (e += x(n.containment).scrollLeft() || 0, i += x(n.containment).scrollTop() || 0), this.offset = this.helper.offset(), this.position = { left: e, top: i }, this.size = this._helper ? { width: this.helper.width(), height: this.helper.height() } : { width: s.width(), height: s.height() }, this.originalSize = this._helper ? { width: s.outerWidth(), height: s.outerHeight() } : { width: s.width(), height: s.height() }, this.sizeDiff = { width: s.outerWidth() - s.width(), height: s.outerHeight() - s.height() }, this.originalPosition = { left: e, top: i }, this.originalMousePosition = { left: t.pageX, top: t.pageY }, this.aspectRatio = "number" == typeof n.aspectRatio ? n.aspectRatio : this.originalSize.width / this.originalSize.height || 1, n = x(".ui-resizable-" + this.axis).css("cursor"), x("body").css("cursor", "auto" === n ? this.axis + "-resize" : n), this._addClass("ui-resizable-resizing"), this._propagate("start", t), !0 }, _mouseDrag: function (t) { var e = this.originalMousePosition, i = this.axis, n = t.pageX - e.left || 0, e = t.pageY - e.top || 0, i = this._change[i]; return this._updatePrevProperties(), i && (e = i.apply(this, [t, n, e]), this._updateVirtualBoundaries(t.shiftKey), (this._aspectRatio || t.shiftKey) && (e = this._updateRatio(e, t)), e = this._respectSize(e, t), this._updateCache(e), this._propagate("resize", t), e = this._applyChanges(), !this._helper && this._proportionallyResizeElements.length && this._proportionallyResize(), x.isEmptyObject(e) || (this._updatePrevProperties(), this._trigger("resize", t, this.ui()), this._applyChanges())), !1 }, _mouseStop: function (t) { this.resizing = !1; var e, i, n, s = this.options, o = this; return this._helper && (n = (e = (i = this._proportionallyResizeElements).length && /textarea/i.test(i[0].nodeName)) && this._hasScroll(i[0], "left") ? 0 : o.sizeDiff.height, i = e ? 0 : o.sizeDiff.width, e = { width: o.helper.width() - i, height: o.helper.height() - n }, i = parseFloat(o.element.css("left")) + (o.position.left - o.originalPosition.left) || null, n = parseFloat(o.element.css("top")) + (o.position.top - o.originalPosition.top) || null, s.animate || this.element.css(x.extend(e, { top: n, left: i })), o.helper.height(o.size.height), o.helper.width(o.size.width), this._helper && !s.animate && this._proportionallyResize()), x("body").css("cursor", "auto"), this._removeClass("ui-resizable-resizing"), this._propagate("stop", t), this._helper && this.helper.remove(), !1 }, _updatePrevProperties: function () { this.prevPosition = { top: this.position.top, left: this.position.left }, this.prevSize = { width: this.size.width, height: this.size.height } }, _applyChanges: function () { var t = {}; return this.position.top !== this.prevPosition.top && (t.top = this.position.top + "px"), this.position.left !== this.prevPosition.left && (t.left = this.position.left + "px"), this.size.width !== this.prevSize.width && (t.width = this.size.width + "px"), this.size.height !== this.prevSize.height && (t.height = this.size.height + "px"), this.helper.css(t), t }, _updateVirtualBoundaries: function (t) { var e, i, n = this.options, s = { minWidth: this._isNumber(n.minWidth) ? n.minWidth : 0, maxWidth: this._isNumber(n.maxWidth) ? n.maxWidth : 1 / 0, minHeight: this._isNumber(n.minHeight) ? n.minHeight : 0, maxHeight: this._isNumber(n.maxHeight) ? n.maxHeight : 1 / 0 }; (this._aspectRatio || t) && (e = s.minHeight * this.aspectRatio, i = s.minWidth / this.aspectRatio, n = s.maxHeight * this.aspectRatio, t = s.maxWidth / this.aspectRatio, e > s.minWidth && (s.minWidth = e), i > s.minHeight && (s.minHeight = i), n < s.maxWidth && (s.maxWidth = n), t < s.maxHeight && (s.maxHeight = t)), this._vBoundaries = s }, _updateCache: function (t) { this.offset = this.helper.offset(), this._isNumber(t.left) && (this.position.left = t.left), this._isNumber(t.top) && (this.position.top = t.top), this._isNumber(t.height) && (this.size.height = t.height), this._isNumber(t.width) && (this.size.width = t.width) }, _updateRatio: function (t) { var e = this.position, i = this.size, n = this.axis; return this._isNumber(t.height) ? t.width = t.height * this.aspectRatio : this._isNumber(t.width) && (t.height = t.width / this.aspectRatio), "sw" === n && (t.left = e.left + (i.width - t.width), t.top = null), "nw" === n && (t.top = e.top + (i.height - t.height), t.left = e.left + (i.width - t.width)), t }, _respectSize: function (t) { var e = this._vBoundaries, i = this.axis, n = this._isNumber(t.width) && e.maxWidth && e.maxWidth < t.width, s = this._isNumber(t.height) && e.maxHeight && e.maxHeight < t.height, o = this._isNumber(t.width) && e.minWidth && e.minWidth > t.width, r = this._isNumber(t.height) && e.minHeight && e.minHeight > t.height, a = this.originalPosition.left + this.originalSize.width, l = this.originalPosition.top + this.originalSize.height, h = /sw|nw|w/.test(i), i = /nw|ne|n/.test(i); return o && (t.width = e.minWidth), r && (t.height = e.minHeight), n && (t.width = e.maxWidth), s && (t.height = e.maxHeight), o && h && (t.left = a - e.minWidth), n && h && (t.left = a - e.maxWidth), r && i && (t.top = l - e.minHeight), s && i && (t.top = l - e.maxHeight), t.width || t.height || t.left || !t.top ? t.width || t.height || t.top || !t.left || (t.left = null) : t.top = null, t }, _getPaddingPlusBorderDimensions: function (t) { for (var e = 0, i = [], n = [t.css("borderTopWidth"), t.css("borderRightWidth"), t.css("borderBottomWidth"), t.css("borderLeftWidth")], s = [t.css("paddingTop"), t.css("paddingRight"), t.css("paddingBottom"), t.css("paddingLeft")]; e < 4; e++)i[e] = parseFloat(n[e]) || 0, i[e] += parseFloat(s[e]) || 0; return { height: i[0] + i[2], width: i[1] + i[3] } }, _proportionallyResize: function () { if (this._proportionallyResizeElements.length) for (var t, e = 0, i = this.helper || this.element; e < this._proportionallyResizeElements.length; e++)t = this._proportionallyResizeElements[e], this.outerDimensions || (this.outerDimensions = this._getPaddingPlusBorderDimensions(t)), t.css({ height: i.height() - this.outerDimensions.height || 0, width: i.width() - this.outerDimensions.width || 0 }) }, _renderProxy: function () { var t = this.element, e = this.options; this.elementOffset = t.offset(), this._helper ? (this.helper = this.helper || x("<div style='overflow:hidden;'></div>"), this._addClass(this.helper, this._helper), this.helper.css({ width: this.element.outerWidth(), height: this.element.outerHeight(), position: "absolute", left: this.elementOffset.left + "px", top: this.elementOffset.top + "px", zIndex: ++e.zIndex }), this.helper.appendTo("body").disableSelection()) : this.helper = this.element }, _change: { e: function (t, e) { return { width: this.originalSize.width + e } }, w: function (t, e) { var i = this.originalSize; return { left: this.originalPosition.left + e, width: i.width - e } }, n: function (t, e, i) { var n = this.originalSize; return { top: this.originalPosition.top + i, height: n.height - i } }, s: function (t, e, i) { return { height: this.originalSize.height + i } }, se: function (t, e, i) { return x.extend(this._change.s.apply(this, arguments), this._change.e.apply(this, [t, e, i])) }, sw: function (t, e, i) { return x.extend(this._change.s.apply(this, arguments), this._change.w.apply(this, [t, e, i])) }, ne: function (t, e, i) { return x.extend(this._change.n.apply(this, arguments), this._change.e.apply(this, [t, e, i])) }, nw: function (t, e, i) { return x.extend(this._change.n.apply(this, arguments), this._change.w.apply(this, [t, e, i])) } }, _propagate: function (t, e) { x.ui.plugin.call(this, t, [e, this.ui()]), "resize" !== t && this._trigger(t, e, this.ui()) }, plugins: {}, ui: function () { return { originalElement: this.originalElement, element: this.element, helper: this.helper, position: this.position, size: this.size, originalSize: this.originalSize, originalPosition: this.originalPosition } } }), x.ui.plugin.add("resizable", "animate", { stop: function (e) { var i = x(this).resizable("instance"), t = i.options, n = i._proportionallyResizeElements, s = n.length && /textarea/i.test(n[0].nodeName), o = s && i._hasScroll(n[0], "left") ? 0 : i.sizeDiff.height, r = s ? 0 : i.sizeDiff.width, s = { width: i.size.width - r, height: i.size.height - o }, r = parseFloat(i.element.css("left")) + (i.position.left - i.originalPosition.left) || null, o = parseFloat(i.element.css("top")) + (i.position.top - i.originalPosition.top) || null; i.element.animate(x.extend(s, o && r ? { top: o, left: r } : {}), { duration: t.animateDuration, easing: t.animateEasing, step: function () { var t = { width: parseFloat(i.element.css("width")), height: parseFloat(i.element.css("height")), top: parseFloat(i.element.css("top")), left: parseFloat(i.element.css("left")) }; n && n.length && x(n[0]).css({ width: t.width, height: t.height }), i._updateCache(t), i._propagate("resize", e) } }) } }), x.ui.plugin.add("resizable", "containment", { start: function () { var i, n, s = x(this).resizable("instance"), t = s.options, e = s.element, o = t.containment, r = o instanceof x ? o.get(0) : /parent/.test(o) ? e.parent().get(0) : o; r && (s.containerElement = x(r), /document/.test(o) || o === document ? (s.containerOffset = { left: 0, top: 0 }, s.containerPosition = { left: 0, top: 0 }, s.parentData = { element: x(document), left: 0, top: 0, width: x(document).width(), height: x(document).height() || document.body.parentNode.scrollHeight }) : (i = x(r), n = [], x(["Top", "Right", "Left", "Bottom"]).each(function (t, e) { n[t] = s._num(i.css("padding" + e)) }), s.containerOffset = i.offset(), s.containerPosition = i.position(), s.containerSize = { height: i.innerHeight() - n[3], width: i.innerWidth() - n[1] }, t = s.containerOffset, e = s.containerSize.height, o = s.containerSize.width, o = s._hasScroll(r, "left") ? r.scrollWidth : o, e = s._hasScroll(r) ? r.scrollHeight : e, s.parentData = { element: r, left: t.left, top: t.top, width: o, height: e })) }, resize: function (t) { var e = x(this).resizable("instance"), i = e.options, n = e.containerOffset, s = e.position, o = e._aspectRatio || t.shiftKey, r = { top: 0, left: 0 }, a = e.containerElement, t = !0; a[0] !== document && /static/.test(a.css("position")) && (r = n), s.left < (e._helper ? n.left : 0) && (e.size.width = e.size.width + (e._helper ? e.position.left - n.left : e.position.left - r.left), o && (e.size.height = e.size.width / e.aspectRatio, t = !1), e.position.left = i.helper ? n.left : 0), s.top < (e._helper ? n.top : 0) && (e.size.height = e.size.height + (e._helper ? e.position.top - n.top : e.position.top), o && (e.size.width = e.size.height * e.aspectRatio, t = !1), e.position.top = e._helper ? n.top : 0), i = e.containerElement.get(0) === e.element.parent().get(0), s = /relative|absolute/.test(e.containerElement.css("position")), i && s ? (e.offset.left = e.parentData.left + e.position.left, e.offset.top = e.parentData.top + e.position.top) : (e.offset.left = e.element.offset().left, e.offset.top = e.element.offset().top), s = Math.abs(e.sizeDiff.width + (e._helper ? e.offset.left - r.left : e.offset.left - n.left)), n = Math.abs(e.sizeDiff.height + (e._helper ? e.offset.top - r.top : e.offset.top - n.top)), s + e.size.width >= e.parentData.width && (e.size.width = e.parentData.width - s, o && (e.size.height = e.size.width / e.aspectRatio, t = !1)), n + e.size.height >= e.parentData.height && (e.size.height = e.parentData.height - n, o && (e.size.width = e.size.height * e.aspectRatio, t = !1)), t || (e.position.left = e.prevPosition.left, e.position.top = e.prevPosition.top, e.size.width = e.prevSize.width, e.size.height = e.prevSize.height) }, stop: function () { var t = x(this).resizable("instance"), e = t.options, i = t.containerOffset, n = t.containerPosition, s = t.containerElement, o = x(t.helper), r = o.offset(), a = o.outerWidth() - t.sizeDiff.width, o = o.outerHeight() - t.sizeDiff.height; t._helper && !e.animate && /relative/.test(s.css("position")) && x(this).css({ left: r.left - n.left - i.left, width: a, height: o }), t._helper && !e.animate && /static/.test(s.css("position")) && x(this).css({ left: r.left - n.left - i.left, width: a, height: o }) } }), x.ui.plugin.add("resizable", "alsoResize", { start: function () { var t = x(this).resizable("instance").options; x(t.alsoResize).each(function () { var t = x(this); t.data("ui-resizable-alsoresize", { width: parseFloat(t.width()), height: parseFloat(t.height()), left: parseFloat(t.css("left")), top: parseFloat(t.css("top")) }) }) }, resize: function (t, i) { var e = x(this).resizable("instance"), n = e.options, s = e.originalSize, o = e.originalPosition, r = { height: e.size.height - s.height || 0, width: e.size.width - s.width || 0, top: e.position.top - o.top || 0, left: e.position.left - o.left || 0 }; x(n.alsoResize).each(function () { var t = x(this), n = x(this).data("ui-resizable-alsoresize"), s = {}, e = t.parents(i.originalElement[0]).length ? ["width", "height"] : ["width", "height", "top", "left"]; x.each(e, function (t, e) { var i = (n[e] || 0) + (r[e] || 0); i && 0 <= i && (s[e] = i || null) }), t.css(s) }) }, stop: function () { x(this).removeData("ui-resizable-alsoresize") } }), x.ui.plugin.add("resizable", "ghost", { start: function () { var t = x(this).resizable("instance"), e = t.size; t.ghost = t.originalElement.clone(), t.ghost.css({ opacity: .25, display: "block", position: "relative", height: e.height, width: e.width, margin: 0, left: 0, top: 0 }), t._addClass(t.ghost, "ui-resizable-ghost"), !1 !== x.uiBackCompat && "string" == typeof t.options.ghost && t.ghost.addClass(this.options.ghost), t.ghost.appendTo(t.helper) }, resize: function () { var t = x(this).resizable("instance"); t.ghost && t.ghost.css({ position: "relative", height: t.size.height, width: t.size.width }) }, stop: function () { var t = x(this).resizable("instance"); t.ghost && t.helper && t.helper.get(0).removeChild(t.ghost.get(0)) } }), x.ui.plugin.add("resizable", "grid", { resize: function () { var t, e = x(this).resizable("instance"), i = e.options, n = e.size, s = e.originalSize, o = e.originalPosition, r = e.axis, a = "number" == typeof i.grid ? [i.grid, i.grid] : i.grid, l = a[0] || 1, h = a[1] || 1, c = Math.round((n.width - s.width) / l) * l, u = Math.round((n.height - s.height) / h) * h, d = s.width + c, p = s.height + u, f = i.maxWidth && i.maxWidth < d, g = i.maxHeight && i.maxHeight < p, m = i.minWidth && i.minWidth > d, n = i.minHeight && i.minHeight > p; i.grid = a, m && (d += l), n && (p += h), f && (d -= l), g && (p -= h), /^(se|s|e)$/.test(r) ? (e.size.width = d, e.size.height = p) : /^(ne)$/.test(r) ? (e.size.width = d, e.size.height = p, e.position.top = o.top - u) : /^(sw)$/.test(r) ? (e.size.width = d, e.size.height = p, e.position.left = o.left - c) : ((p - h <= 0 || d - l <= 0) && (t = e._getPaddingPlusBorderDimensions(this)), 0 < p - h ? (e.size.height = p, e.position.top = o.top - u) : (p = h - t.height, e.size.height = p, e.position.top = o.top + s.height - p), 0 < d - l ? (e.size.width = d, e.position.left = o.left - c) : (d = l - t.width, e.size.width = d, e.position.left = o.left + s.width - d)) } }); x.ui.resizable; x.widget("ui.dialog", { version: "1.12.1", options: { appendTo: "body", autoOpen: !0, buttons: [], classes: { "ui-dialog": "ui-corner-all", "ui-dialog-titlebar": "ui-corner-all" }, closeOnEscape: !0, closeText: "Close", draggable: !0, hide: null, height: "auto", maxHeight: null, maxWidth: null, minHeight: 150, minWidth: 150, modal: !1, position: { my: "center", at: "center", of: window, collision: "fit", using: function (t) { var e = x(this).css(t).offset().top; e < 0 && x(this).css("top", t.top - e) } }, resizable: !0, show: null, title: null, width: 300, beforeClose: null, close: null, drag: null, dragStart: null, dragStop: null, focus: null, open: null, resize: null, resizeStart: null, resizeStop: null }, sizeRelatedOptions: { buttons: !0, height: !0, maxHeight: !0, maxWidth: !0, minHeight: !0, minWidth: !0, width: !0 }, resizableRelatedOptions: { maxHeight: !0, maxWidth: !0, minHeight: !0, minWidth: !0 }, _create: function () { this.originalCss = { display: this.element[0].style.display, width: this.element[0].style.width, minHeight: this.element[0].style.minHeight, maxHeight: this.element[0].style.maxHeight, height: this.element[0].style.height }, this.originalPosition = { parent: this.element.parent(), index: this.element.parent().children().index(this.element) }, this.originalTitle = this.element.attr("title"), null == this.options.title && null != this.originalTitle && (this.options.title = this.originalTitle), this.options.disabled && (this.options.disabled = !1), this._createWrapper(), this.element.show().removeAttr("title").appendTo(this.uiDialog), this._addClass("ui-dialog-content", "ui-widget-content"), this._createTitlebar(), this._createButtonPane(), this.options.draggable && x.fn.draggable && this._makeDraggable(), this.options.resizable && x.fn.resizable && this._makeResizable(), this._isOpen = !1, this._trackFocus() }, _init: function () { this.options.autoOpen && this.open() }, _appendTo: function () { var t = this.options.appendTo; return t && (t.jquery || t.nodeType) ? x(t) : this.document.find(t || "body").eq(0) }, _destroy: function () { var t, e = this.originalPosition; this._untrackInstance(), this._destroyOverlay(), this.element.removeUniqueId().css(this.originalCss).detach(), this.uiDialog.remove(), this.originalTitle && this.element.attr("title", this.originalTitle), (t = e.parent.children().eq(e.index)).length && t[0] !== this.element[0] ? t.before(this.element) : e.parent.append(this.element) }, widget: function () { return this.uiDialog }, disable: x.noop, enable: x.noop, close: function (t) { var e = this; this._isOpen && !1 !== this._trigger("beforeClose", t) && (this._isOpen = !1, this._focusedElement = null, this._destroyOverlay(), this._untrackInstance(), this.opener.filter(":focusable").trigger("focus").length || x.ui.safeBlur(x.ui.safeActiveElement(this.document[0])), this._hide(this.uiDialog, this.options.hide, function () { e._trigger("close", t) })) }, isOpen: function () { return this._isOpen }, moveToTop: function () { this._moveToTop() }, _moveToTop: function (t, e) { var i = !1, n = this.uiDialog.siblings(".ui-front:visible").map(function () { return +x(this).css("z-index") }).get(), n = Math.max.apply(null, n); return n >= +this.uiDialog.css("z-index") && (this.uiDialog.css("z-index", n + 1), i = !0), i && !e && this._trigger("focus", t), i }, open: function () { var t = this; this._isOpen ? this._moveToTop() && this._focusTabbable() : (this._isOpen = !0, this.opener = x(x.ui.safeActiveElement(this.document[0])), this._size(), this._position(), this._createOverlay(), this._moveToTop(null, !0), this.overlay && this.overlay.css("z-index", this.uiDialog.css("z-index") - 1), this._show(this.uiDialog, this.options.show, function () { t._focusTabbable(), t._trigger("focus") }), this._makeFocusTarget(), this._trigger("open")) }, _focusTabbable: function () { var t = this._focusedElement; (t = t || this.element.find("[autofocus]")).length || (t = this.element.find(":tabbable")), t.length || (t = this.uiDialogButtonPane.find(":tabbable")), t.length || (t = this.uiDialogTitlebarClose.filter(":tabbable")), t.length || (t = this.uiDialog), t.eq(0).trigger("focus") }, _keepFocus: function (t) { function e() { var t = x.ui.safeActiveElement(this.document[0]); this.uiDialog[0] === t || x.contains(this.uiDialog[0], t) || this._focusTabbable() } t.preventDefault(), e.call(this), this._delay(e) }, _createWrapper: function () { this.uiDialog = x("<div>").hide().attr({ tabIndex: -1, role: "dialog" }).appendTo(this._appendTo()), this._addClass(this.uiDialog, "ui-dialog", "ui-widget ui-widget-content ui-front"), this._on(this.uiDialog, { keydown: function (t) { if (this.options.closeOnEscape && !t.isDefaultPrevented() && t.keyCode && t.keyCode === x.ui.keyCode.ESCAPE) return t.preventDefault(), void this.close(t); var e, i, n; t.keyCode !== x.ui.keyCode.TAB || t.isDefaultPrevented() || (e = this.uiDialog.find(":tabbable"), i = e.filter(":first"), n = e.filter(":last"), t.target !== n[0] && t.target !== this.uiDialog[0] || t.shiftKey ? t.target !== i[0] && t.target !== this.uiDialog[0] || !t.shiftKey || (this._delay(function () { n.trigger("focus") }), t.preventDefault()) : (this._delay(function () { i.trigger("focus") }), t.preventDefault())) }, mousedown: function (t) { this._moveToTop(t) && this._focusTabbable() } }), this.element.find("[aria-describedby]").length || this.uiDialog.attr({ "aria-describedby": this.element.uniqueId().attr("id") }) }, _createTitlebar: function () { var t; this.uiDialogTitlebar = x("<div>"), this._addClass(this.uiDialogTitlebar, "ui-dialog-titlebar", "ui-widget-header ui-helper-clearfix"), this._on(this.uiDialogTitlebar, { mousedown: function (t) { x(t.target).closest(".ui-dialog-titlebar-close") || this.uiDialog.trigger("focus") } }), this.uiDialogTitlebarClose = x("<button type='button'></button>").button({ label: x("<a>").text(this.options.closeText).html(), icon: "ui-icon-closethick", showLabel: !1 }).appendTo(this.uiDialogTitlebar), this._addClass(this.uiDialogTitlebarClose, "ui-dialog-titlebar-close"), this._on(this.uiDialogTitlebarClose, { click: function (t) { t.preventDefault(), this.close(t) } }), t = x("<span>").uniqueId().prependTo(this.uiDialogTitlebar), this._addClass(t, "ui-dialog-title"), this._title(t), this.uiDialogTitlebar.prependTo(this.uiDialog), this.uiDialog.attr({ "aria-labelledby": t.attr("id") }) }, _title: function (t) { this.options.title ? t.text(this.options.title) : t.html("&#160;") }, _createButtonPane: function () { this.uiDialogButtonPane = x("<div>"), this._addClass(this.uiDialogButtonPane, "ui-dialog-buttonpane", "ui-widget-content ui-helper-clearfix"), this.uiButtonSet = x("<div>").appendTo(this.uiDialogButtonPane), this._addClass(this.uiButtonSet, "ui-dialog-buttonset"), this._createButtons() }, _createButtons: function () { var n = this, t = this.options.buttons; this.uiDialogButtonPane.remove(), this.uiButtonSet.empty(), x.isEmptyObject(t) || x.isArray(t) && !t.length ? this._removeClass(this.uiDialog, "ui-dialog-buttons") : (x.each(t, function (t, e) { var i; e = x.isFunction(e) ? { click: e, text: t } : e, e = x.extend({ type: "button" }, e), i = e.click, t = { icon: e.icon, iconPosition: e.iconPosition, showLabel: e.showLabel, icons: e.icons, text: e.text }, delete e.click, delete e.icon, delete e.iconPosition, delete e.showLabel, delete e.icons, "boolean" == typeof e.text && delete e.text, x("<button></button>", e).button(t).appendTo(n.uiButtonSet).on("click", function () { i.apply(n.element[0], arguments) }) }), this._addClass(this.uiDialog, "ui-dialog-buttons"), this.uiDialogButtonPane.appendTo(this.uiDialog)) }, _makeDraggable: function () { var s = this, o = this.options; function r(t) { return { position: t.position, offset: t.offset } } this.uiDialog.draggable({ cancel: ".ui-dialog-content, .ui-dialog-titlebar-close", handle: ".ui-dialog-titlebar", containment: "document", start: function (t, e) { s._addClass(x(this), "ui-dialog-dragging"), s._blockFrames(), s._trigger("dragStart", t, r(e)) }, drag: function (t, e) { s._trigger("drag", t, r(e)) }, stop: function (t, e) { var i = e.offset.left - s.document.scrollLeft(), n = e.offset.top - s.document.scrollTop(); o.position = { my: "left top", at: "left" + (0 <= i ? "+" : "") + i + " top" + (0 <= n ? "+" : "") + n, of: s.window }, s._removeClass(x(this), "ui-dialog-dragging"), s._unblockFrames(), s._trigger("dragStop", t, r(e)) } }) }, _makeResizable: function () { var s = this, o = this.options, t = o.resizable, e = this.uiDialog.css("position"), t = "string" == typeof t ? t : "n,e,s,w,se,sw,ne,nw"; function r(t) { return { originalPosition: t.originalPosition, originalSize: t.originalSize, position: t.position, size: t.size } } this.uiDialog.resizable({ cancel: ".ui-dialog-content", containment: "document", alsoResize: this.element, maxWidth: o.maxWidth, maxHeight: o.maxHeight, minWidth: o.minWidth, minHeight: this._minHeight(), handles: t, start: function (t, e) { s._addClass(x(this), "ui-dialog-resizing"), s._blockFrames(), s._trigger("resizeStart", t, r(e)) }, resize: function (t, e) { s._trigger("resize", t, r(e)) }, stop: function (t, e) { var i = s.uiDialog.offset(), n = i.left - s.document.scrollLeft(), i = i.top - s.document.scrollTop(); o.height = s.uiDialog.height(), o.width = s.uiDialog.width(), o.position = { my: "left top", at: "left" + (0 <= n ? "+" : "") + n + " top" + (0 <= i ? "+" : "") + i, of: s.window }, s._removeClass(x(this), "ui-dialog-resizing"), s._unblockFrames(), s._trigger("resizeStop", t, r(e)) } }).css("position", e) }, _trackFocus: function () { this._on(this.widget(), { focusin: function (t) { this._makeFocusTarget(), this._focusedElement = x(t.target) } }) }, _makeFocusTarget: function () { this._untrackInstance(), this._trackingInstances().unshift(this) }, _untrackInstance: function () { var t = this._trackingInstances(), e = x.inArray(this, t); -1 !== e && t.splice(e, 1) }, _trackingInstances: function () { var t = this.document.data("ui-dialog-instances"); return t || (t = [], this.document.data("ui-dialog-instances", t)), t }, _minHeight: function () { var t = this.options; return "auto" === t.height ? t.minHeight : Math.min(t.minHeight, t.height) }, _position: function () { var t = this.uiDialog.is(":visible"); t || this.uiDialog.show(), this.uiDialog.position(this.options.position), t || this.uiDialog.hide() }, _setOptions: function (t) { var i = this, n = !1, s = {}; x.each(t, function (t, e) { i._setOption(t, e), t in i.sizeRelatedOptions && (n = !0), t in i.resizableRelatedOptions && (s[t] = e) }), n && (this._size(), this._position()), this.uiDialog.is(":data(ui-resizable)") && this.uiDialog.resizable("option", s) }, _setOption: function (t, e) { var i, n = this.uiDialog; "disabled" !== t && (this._super(t, e), "appendTo" === t && this.uiDialog.appendTo(this._appendTo()), "buttons" === t && this._createButtons(), "closeText" === t && this.uiDialogTitlebarClose.button({ label: x("<a>").text("" + this.options.closeText).html() }), "draggable" === t && ((i = n.is(":data(ui-draggable)")) && !e && n.draggable("destroy"), !i && e && this._makeDraggable()), "position" === t && this._position(), "resizable" === t && ((i = n.is(":data(ui-resizable)")) && !e && n.resizable("destroy"), i && "string" == typeof e && n.resizable("option", "handles", e), i || !1 === e || this._makeResizable()), "title" === t && this._title(this.uiDialogTitlebar.find(".ui-dialog-title"))) }, _size: function () { var t, e, i, n = this.options; this.element.show().css({ width: "auto", minHeight: 0, maxHeight: "none", height: 0 }), n.minWidth > n.width && (n.width = n.minWidth), t = this.uiDialog.css({ height: "auto", width: n.width }).outerHeight(), e = Math.max(0, n.minHeight - t), i = "number" == typeof n.maxHeight ? Math.max(0, n.maxHeight - t) : "none", "auto" === n.height ? this.element.css({ minHeight: e, maxHeight: i, height: "auto" }) : this.element.height(Math.max(0, n.height - t)), this.uiDialog.is(":data(ui-resizable)") && this.uiDialog.resizable("option", "minHeight", this._minHeight()) }, _blockFrames: function () { this.iframeBlocks = this.document.find("iframe").map(function () { var t = x(this); return x("<div>").css({ position: "absolute", width: t.outerWidth(), height: t.outerHeight() }).appendTo(t.parent()).offset(t.offset())[0] }) }, _unblockFrames: function () { this.iframeBlocks && (this.iframeBlocks.remove(), delete this.iframeBlocks) }, _allowInteraction: function (t) { return !!x(t.target).closest(".ui-dialog").length || !!x(t.target).closest(".ui-datepicker").length }, _createOverlay: function () { var e; this.options.modal && (e = !0, this._delay(function () { e = !1 }), this.document.data("ui-dialog-overlays") || this._on(this.document, { focusin: function (t) { e || this._allowInteraction(t) || (t.preventDefault(), this._trackingInstances()[0]._focusTabbable()) } }), this.overlay = x("<div>").appendTo(this._appendTo()), this._addClass(this.overlay, null, "ui-widget-overlay ui-front"), this._on(this.overlay, { mousedown: "_keepFocus" }), this.document.data("ui-dialog-overlays", (this.document.data("ui-dialog-overlays") || 0) + 1)) }, _destroyOverlay: function () { var t; this.options.modal && this.overlay && ((t = this.document.data("ui-dialog-overlays") - 1) ? this.document.data("ui-dialog-overlays", t) : (this._off(this.document, "focusin"), this.document.removeData("ui-dialog-overlays")), this.overlay.remove(), this.overlay = null) } }), !1 !== x.uiBackCompat && x.widget("ui.dialog", x.ui.dialog, { options: { dialogClass: "" }, _createWrapper: function () { this._super(), this.uiDialog.addClass(this.options.dialogClass) }, _setOption: function (t, e) { "dialogClass" === t && this.uiDialog.removeClass(this.options.dialogClass).addClass(e), this._superApply(arguments) } }); x.ui.dialog; x.widget("ui.droppable", { version: "1.12.1", widgetEventPrefix: "drop", options: { accept: "*", addClasses: !0, greedy: !1, scope: "default", tolerance: "intersect", activate: null, deactivate: null, drop: null, out: null, over: null }, _create: function () { var t, e = this.options, i = e.accept; this.isover = !1, this.isout = !0, this.accept = x.isFunction(i) ? i : function (t) { return t.is(i) }, this.proportions = function () { if (!arguments.length) return t = t || { width: this.element[0].offsetWidth, height: this.element[0].offsetHeight }; t = arguments[0] }, this._addToManager(e.scope), e.addClasses && this._addClass("ui-droppable") }, _addToManager: function (t) { x.ui.ddmanager.droppables[t] = x.ui.ddmanager.droppables[t] || [], x.ui.ddmanager.droppables[t].push(this) }, _splice: function (t) { for (var e = 0; e < t.length; e++)t[e] === this && t.splice(e, 1) }, _destroy: function () { var t = x.ui.ddmanager.droppables[this.options.scope]; this._splice(t) }, _setOption: function (t, e) { var i; "accept" === t ? this.accept = x.isFunction(e) ? e : function (t) { return t.is(e) } : "scope" === t && (i = x.ui.ddmanager.droppables[this.options.scope], this._splice(i), this._addToManager(e)), this._super(t, e) }, _activate: function (t) { var e = x.ui.ddmanager.current; this._addActiveClass(), e && this._trigger("activate", t, this.ui(e)) }, _deactivate: function (t) { var e = x.ui.ddmanager.current; this._removeActiveClass(), e && this._trigger("deactivate", t, this.ui(e)) }, _over: function (t) { var e = x.ui.ddmanager.current; e && (e.currentItem || e.element)[0] !== this.element[0] && this.accept.call(this.element[0], e.currentItem || e.element) && (this._addHoverClass(), this._trigger("over", t, this.ui(e))) }, _out: function (t) { var e = x.ui.ddmanager.current; e && (e.currentItem || e.element)[0] !== this.element[0] && this.accept.call(this.element[0], e.currentItem || e.element) && (this._removeHoverClass(), this._trigger("out", t, this.ui(e))) }, _drop: function (e, t) { var i = t || x.ui.ddmanager.current, n = !1; return !(!i || (i.currentItem || i.element)[0] === this.element[0]) && (this.element.find(":data(ui-droppable)").not(".ui-draggable-dragging").each(function () { var t = x(this).droppable("instance"); if (t.options.greedy && !t.options.disabled && t.options.scope === i.options.scope && t.accept.call(t.element[0], i.currentItem || i.element) && st(i, x.extend(t, { offset: t.element.offset() }), t.options.tolerance, e)) return !(n = !0) }), !n && (!!this.accept.call(this.element[0], i.currentItem || i.element) && (this._removeActiveClass(), this._removeHoverClass(), this._trigger("drop", e, this.ui(i)), this.element))) }, ui: function (t) { return { draggable: t.currentItem || t.element, helper: t.helper, position: t.position, offset: t.positionAbs } }, _addHoverClass: function () { this._addClass("ui-droppable-hover") }, _removeHoverClass: function () { this._removeClass("ui-droppable-hover") }, _addActiveClass: function () { this._addClass("ui-droppable-active") }, _removeActiveClass: function () { this._removeClass("ui-droppable-active") } }); var st = x.ui.intersect = function (t, e, i, n) { if (!e.offset) return !1; var s = (t.positionAbs || t.position.absolute).left + t.margins.left, o = (t.positionAbs || t.position.absolute).top + t.margins.top, r = s + t.helperProportions.width, a = o + t.helperProportions.height, l = e.offset.left, h = e.offset.top, c = l + e.proportions().width, u = h + e.proportions().height; switch (i) { case "fit": return l <= s && r <= c && h <= o && a <= u; case "intersect": return l < s + t.helperProportions.width / 2 && r - t.helperProportions.width / 2 < c && h < o + t.helperProportions.height / 2 && a - t.helperProportions.height / 2 < u; case "pointer": return ot(n.pageY, h, e.proportions().height) && ot(n.pageX, l, e.proportions().width); case "touch": return (h <= o && o <= u || h <= a && a <= u || o < h && u < a) && (l <= s && s <= c || l <= r && r <= c || s < l && c < r); default: return !1 } }; function ot(t, e, i) { return e <= t && t < e + i } !(x.ui.ddmanager = { current: null, droppables: { default: [] }, prepareOffsets: function (t, e) { var i, n, s = x.ui.ddmanager.droppables[t.options.scope] || [], o = e ? e.type : null, r = (t.currentItem || t.element).find(":data(ui-droppable)").addBack(); t: for (i = 0; i < s.length; i++)if (!(s[i].options.disabled || t && !s[i].accept.call(s[i].element[0], t.currentItem || t.element))) { for (n = 0; n < r.length; n++)if (r[n] === s[i].element[0]) { s[i].proportions().height = 0; continue t } s[i].visible = "none" !== s[i].element.css("display"), s[i].visible && ("mousedown" === o && s[i]._activate.call(s[i], e), s[i].offset = s[i].element.offset(), s[i].proportions({ width: s[i].element[0].offsetWidth, height: s[i].element[0].offsetHeight })) } }, drop: function (t, e) { var i = !1; return x.each((x.ui.ddmanager.droppables[t.options.scope] || []).slice(), function () { this.options && (!this.options.disabled && this.visible && st(t, this, this.options.tolerance, e) && (i = this._drop.call(this, e) || i), !this.options.disabled && this.visible && this.accept.call(this.element[0], t.currentItem || t.element) && (this.isout = !0, this.isover = !1, this._deactivate.call(this, e))) }), i }, dragStart: function (t, e) { t.element.parentsUntil("body").on("scroll.droppable", function () { t.options.refreshPositions || x.ui.ddmanager.prepareOffsets(t, e) }) }, drag: function (s, o) { s.options.refreshPositions && x.ui.ddmanager.prepareOffsets(s, o), x.each(x.ui.ddmanager.droppables[s.options.scope] || [], function () { var t, e, i, n; this.options.disabled || this.greedyChild || !this.visible || (n = !(i = st(s, this, this.options.tolerance, o)) && this.isover ? "isout" : i && !this.isover ? "isover" : null) && (this.options.greedy && (e = this.options.scope, (i = this.element.parents(":data(ui-droppable)").filter(function () { return x(this).droppable("instance").options.scope === e })).length && ((t = x(i[0]).droppable("instance")).greedyChild = "isover" === n)), t && "isover" === n && (t.isover = !1, t.isout = !0, t._out.call(t, o)), this[n] = !0, this["isout" === n ? "isover" : "isout"] = !1, this["isover" === n ? "_over" : "_out"].call(this, o), t && "isout" === n && (t.isout = !1, t.isover = !0, t._over.call(t, o))) }) }, dragStop: function (t, e) { t.element.parentsUntil("body").off("scroll.droppable"), t.options.refreshPositions || x.ui.ddmanager.prepareOffsets(t, e) } }) !== x.uiBackCompat && x.widget("ui.droppable", x.ui.droppable, { options: { hoverClass: !1, activeClass: !1 }, _addActiveClass: function () { this._super(), this.options.activeClass && this.element.addClass(this.options.activeClass) }, _removeActiveClass: function () { this._super(), this.options.activeClass && this.element.removeClass(this.options.activeClass) }, _addHoverClass: function () { this._super(), this.options.hoverClass && this.element.addClass(this.options.hoverClass) }, _removeHoverClass: function () { this._super(), this.options.hoverClass && this.element.removeClass(this.options.hoverClass) } }); x.ui.droppable, x.widget("ui.progressbar", { version: "1.12.1", options: { classes: { "ui-progressbar": "ui-corner-all", "ui-progressbar-value": "ui-corner-left", "ui-progressbar-complete": "ui-corner-right" }, max: 100, value: 0, change: null, complete: null }, min: 0, _create: function () { this.oldValue = this.options.value = this._constrainedValue(), this.element.attr({ role: "progressbar", "aria-valuemin": this.min }), this._addClass("ui-progressbar", "ui-widget ui-widget-content"), this.valueDiv = x("<div>").appendTo(this.element), this._addClass(this.valueDiv, "ui-progressbar-value", "ui-widget-header"), this._refreshValue() }, _destroy: function () { this.element.removeAttr("role aria-valuemin aria-valuemax aria-valuenow"), this.valueDiv.remove() }, value: function (t) { if (void 0 === t) return this.options.value; this.options.value = this._constrainedValue(t), this._refreshValue() }, _constrainedValue: function (t) { return void 0 === t && (t = this.options.value), this.indeterminate = !1 === t, "number" != typeof t && (t = 0), !this.indeterminate && Math.min(this.options.max, Math.max(this.min, t)) }, _setOptions: function (t) { var e = t.value; delete t.value, this._super(t), this.options.value = this._constrainedValue(e), this._refreshValue() }, _setOption: function (t, e) { "max" === t && (e = Math.max(this.min, e)), this._super(t, e) }, _setOptionDisabled: function (t) { this._super(t), this.element.attr("aria-disabled", t), this._toggleClass(null, "ui-state-disabled", !!t) }, _percentage: function () { return this.indeterminate ? 100 : 100 * (this.options.value - this.min) / (this.options.max - this.min) }, _refreshValue: function () { var t = this.options.value, e = this._percentage(); this.valueDiv.toggle(this.indeterminate || t > this.min).width(e.toFixed(0) + "%"), this._toggleClass(this.valueDiv, "ui-progressbar-complete", null, t === this.options.max)._toggleClass("ui-progressbar-indeterminate", null, this.indeterminate), this.indeterminate ? (this.element.removeAttr("aria-valuenow"), this.overlayDiv || (this.overlayDiv = x("<div>").appendTo(this.valueDiv), this._addClass(this.overlayDiv, "ui-progressbar-overlay"))) : (this.element.attr({ "aria-valuemax": this.options.max, "aria-valuenow": t }), this.overlayDiv && (this.overlayDiv.remove(), this.overlayDiv = null)), this.oldValue !== t && (this.oldValue = t, this._trigger("change")), t === this.options.max && this._trigger("complete") } }), x.widget("ui.selectable", x.ui.mouse, { version: "1.12.1", options: { appendTo: "body", autoRefresh: !0, distance: 0, filter: "*", tolerance: "touch", selected: null, selecting: null, start: null, stop: null, unselected: null, unselecting: null }, _create: function () { var i = this; this._addClass("ui-selectable"), this.dragged = !1, this.refresh = function () { i.elementPos = x(i.element[0]).offset(), i.selectees = x(i.options.filter, i.element[0]), i._addClass(i.selectees, "ui-selectee"), i.selectees.each(function () { var t = x(this), e = t.offset(), e = { left: e.left - i.elementPos.left, top: e.top - i.elementPos.top }; x.data(this, "selectable-item", { element: this, $element: t, left: e.left, top: e.top, right: e.left + t.outerWidth(), bottom: e.top + t.outerHeight(), startselected: !1, selected: t.hasClass("ui-selected"), selecting: t.hasClass("ui-selecting"), unselecting: t.hasClass("ui-unselecting") }) }) }, this.refresh(), this._mouseInit(), this.helper = x("<div>"), this._addClass(this.helper, "ui-selectable-helper") }, _destroy: function () { this.selectees.removeData("selectable-item"), this._mouseDestroy() }, _mouseStart: function (i) { var n = this, t = this.options; this.opos = [i.pageX, i.pageY], this.elementPos = x(this.element[0]).offset(), this.options.disabled || (this.selectees = x(t.filter, this.element[0]), this._trigger("start", i), x(t.appendTo).append(this.helper), this.helper.css({ left: i.pageX, top: i.pageY, width: 0, height: 0 }), t.autoRefresh && this.refresh(), this.selectees.filter(".ui-selected").each(function () { var t = x.data(this, "selectable-item"); t.startselected = !0, i.metaKey || i.ctrlKey || (n._removeClass(t.$element, "ui-selected"), t.selected = !1, n._addClass(t.$element, "ui-unselecting"), t.unselecting = !0, n._trigger("unselecting", i, { unselecting: t.element })) }), x(i.target).parents().addBack().each(function () { var t, e = x.data(this, "selectable-item"); if (e) return t = !i.metaKey && !i.ctrlKey || !e.$element.hasClass("ui-selected"), n._removeClass(e.$element, t ? "ui-unselecting" : "ui-selected")._addClass(e.$element, t ? "ui-selecting" : "ui-unselecting"), e.unselecting = !t, e.selecting = t, (e.selected = t) ? n._trigger("selecting", i, { selecting: e.element }) : n._trigger("unselecting", i, { unselecting: e.element }), !1 })) }, _mouseDrag: function (n) { if (this.dragged = !0, !this.options.disabled) { var t, s = this, o = this.options, r = this.opos[0], a = this.opos[1], l = n.pageX, h = n.pageY; return l < r && (t = l, l = r, r = t), h < a && (t = h, h = a, a = t), this.helper.css({ left: r, top: a, width: l - r, height: h - a }), this.selectees.each(function () { var t = x.data(this, "selectable-item"), e = !1, i = {}; t && t.element !== s.element[0] && (i.left = t.left + s.elementPos.left, i.right = t.right + s.elementPos.left, i.top = t.top + s.elementPos.top, i.bottom = t.bottom + s.elementPos.top, "touch" === o.tolerance ? e = !(i.left > l || i.right < r || i.top > h || i.bottom < a) : "fit" === o.tolerance && (e = i.left > r && i.right < l && i.top > a && i.bottom < h), e ? (t.selected && (s._removeClass(t.$element, "ui-selected"), t.selected = !1), t.unselecting && (s._removeClass(t.$element, "ui-unselecting"), t.unselecting = !1), t.selecting || (s._addClass(t.$element, "ui-selecting"), t.selecting = !0, s._trigger("selecting", n, { selecting: t.element }))) : (t.selecting && ((n.metaKey || n.ctrlKey) && t.startselected ? (s._removeClass(t.$element, "ui-selecting"), t.selecting = !1, s._addClass(t.$element, "ui-selected"), t.selected = !0) : (s._removeClass(t.$element, "ui-selecting"), t.selecting = !1, t.startselected && (s._addClass(t.$element, "ui-unselecting"), t.unselecting = !0), s._trigger("unselecting", n, { unselecting: t.element }))), t.selected && (n.metaKey || n.ctrlKey || t.startselected || (s._removeClass(t.$element, "ui-selected"), t.selected = !1, s._addClass(t.$element, "ui-unselecting"), t.unselecting = !0, s._trigger("unselecting", n, { unselecting: t.element }))))) }), !1 } }, _mouseStop: function (e) { var i = this; return this.dragged = !1, x(".ui-unselecting", this.element[0]).each(function () { var t = x.data(this, "selectable-item"); i._removeClass(t.$element, "ui-unselecting"), t.unselecting = !1, t.startselected = !1, i._trigger("unselected", e, { unselected: t.element }) }), x(".ui-selecting", this.element[0]).each(function () { var t = x.data(this, "selectable-item"); i._removeClass(t.$element, "ui-selecting")._addClass(t.$element, "ui-selected"), t.selecting = !1, t.selected = !0, t.startselected = !0, i._trigger("selected", e, { selected: t.element }) }), this._trigger("stop", e), this.helper.remove(), !1 } }), x.widget("ui.selectmenu", [x.ui.formResetMixin, { version: "1.12.1", defaultElement: "<select>", options: { appendTo: null, classes: { "ui-selectmenu-button-open": "ui-corner-top", "ui-selectmenu-button-closed": "ui-corner-all" }, disabled: null, icons: { button: "ui-icon-triangle-1-s" }, position: { my: "left top", at: "left bottom", collision: "none" }, width: !1, change: null, close: null, focus: null, open: null, select: null }, _create: function () { var t = this.element.uniqueId().attr("id"); this.ids = { element: t, button: t + "-button", menu: t + "-menu" }, this._drawButton(), this._drawMenu(), this._bindFormResetHandler(), this._rendered = !1, this.menuItems = x() }, _drawButton: function () { var t, e = this, i = this._parseOption(this.element.find("option:selected"), this.element[0].selectedIndex); this.labels = this.element.labels().attr("for", this.ids.button), this._on(this.labels, { click: function (t) { this.button.focus(), t.preventDefault() } }), this.element.hide(), this.button = x("<span>", { tabindex: this.options.disabled ? -1 : 0, id: this.ids.button, role: "combobox", "aria-expanded": "false", "aria-autocomplete": "list", "aria-owns": this.ids.menu, "aria-haspopup": "true", title: this.element.attr("title") }).insertAfter(this.element), this._addClass(this.button, "ui-selectmenu-button ui-selectmenu-button-closed", "ui-button ui-widget"), t = x("<span>").appendTo(this.button), this._addClass(t, "ui-selectmenu-icon", "ui-icon " + this.options.icons.button), this.buttonItem = this._renderButtonItem(i).appendTo(this.button), !1 !== this.options.width && this._resizeButton(), this._on(this.button, this._buttonEvents), this.button.one("focusin", function () { e._rendered || e._refreshMenu() }) }, _drawMenu: function () { var i = this; this.menu = x("<ul>", { "aria-hidden": "true", "aria-labelledby": this.ids.button, id: this.ids.menu }), this.menuWrap = x("<div>").append(this.menu), this._addClass(this.menuWrap, "ui-selectmenu-menu", "ui-front"), this.menuWrap.appendTo(this._appendTo()), this.menuInstance = this.menu.menu({ classes: { "ui-menu": "ui-corner-bottom" }, role: "listbox", select: function (t, e) { t.preventDefault(), i._setSelection(), i._select(e.item.data("ui-selectmenu-item"), t) }, focus: function (t, e) { e = e.item.data("ui-selectmenu-item"); null != i.focusIndex && e.index !== i.focusIndex && (i._trigger("focus", t, { item: e }), i.isOpen || i._select(e, t)), i.focusIndex = e.index, i.button.attr("aria-activedescendant", i.menuItems.eq(e.index).attr("id")) } }).menu("instance"), this.menuInstance._off(this.menu, "mouseleave"), this.menuInstance._closeOnDocumentClick = function () { return !1 }, this.menuInstance._isDivider = function () { return !1 } }, refresh: function () { this._refreshMenu(), this.buttonItem.replaceWith(this.buttonItem = this._renderButtonItem(this._getSelectedItem().data("ui-selectmenu-item") || {})), null === this.options.width && this._resizeButton() }, _refreshMenu: function () { var t = this.element.find("option"); this.menu.empty(), this._parseOptions(t), this._renderMenu(this.menu, this.items), this.menuInstance.refresh(), this.menuItems = this.menu.find("li").not(".ui-selectmenu-optgroup").find(".ui-menu-item-wrapper"), this._rendered = !0, t.length && (t = this._getSelectedItem(), this.menuInstance.focus(null, t), this._setAria(t.data("ui-selectmenu-item")), this._setOption("disabled", this.element.prop("disabled"))) }, open: function (t) { this.options.disabled || (this._rendered ? (this._removeClass(this.menu.find(".ui-state-active"), null, "ui-state-active"), this.menuInstance.focus(null, this._getSelectedItem())) : this._refreshMenu(), this.menuItems.length && (this.isOpen = !0, this._toggleAttr(), this._resizeMenu(), this._position(), this._on(this.document, this._documentClick), this._trigger("open", t))) }, _position: function () { this.menuWrap.position(x.extend({ of: this.button }, this.options.position)) }, close: function (t) { this.isOpen && (this.isOpen = !1, this._toggleAttr(), this.range = null, this._off(this.document), this._trigger("close", t)) }, widget: function () { return this.button }, menuWidget: function () { return this.menu }, _renderButtonItem: function (t) { var e = x("<span>"); return this._setText(e, t.label), this._addClass(e, "ui-selectmenu-text"), e }, _renderMenu: function (n, t) { var s = this, o = ""; x.each(t, function (t, e) { var i; e.optgroup !== o && (i = x("<li>", { text: e.optgroup }), s._addClass(i, "ui-selectmenu-optgroup", "ui-menu-divider" + (e.element.parent("optgroup").prop("disabled") ? " ui-state-disabled" : "")), i.appendTo(n), o = e.optgroup), s._renderItemData(n, e) }) }, _renderItemData: function (t, e) { return this._renderItem(t, e).data("ui-selectmenu-item", e) }, _renderItem: function (t, e) { var i = x("<li>"), n = x("<div>", { title: e.element.attr("title") }); return e.disabled && this._addClass(i, null, "ui-state-disabled"), this._setText(n, e.label), i.append(n).appendTo(t) }, _setText: function (t, e) { e ? t.text(e) : t.html("&#160;") }, _move: function (t, e) { var i, n = ".ui-menu-item"; this.isOpen ? i = this.menuItems.eq(this.focusIndex).parent("li") : (i = this.menuItems.eq(this.element[0].selectedIndex).parent("li"), n += ":not(.ui-state-disabled)"), (n = "first" === t || "last" === t ? i["first" === t ? "prevAll" : "nextAll"](n).eq(-1) : i[t + "All"](n).eq(0)).length && this.menuInstance.focus(e, n) }, _getSelectedItem: function () { return this.menuItems.eq(this.element[0].selectedIndex).parent("li") }, _toggle: function (t) { this[this.isOpen ? "close" : "open"](t) }, _setSelection: function () { var t; this.range && (window.getSelection ? ((t = window.getSelection()).removeAllRanges(), t.addRange(this.range)) : this.range.select(), this.button.focus()) }, _documentClick: { mousedown: function (t) { this.isOpen && (x(t.target).closest(".ui-selectmenu-menu, #" + x.ui.escapeSelector(this.ids.button)).length || this.close(t)) } }, _buttonEvents: { mousedown: function () { var t; window.getSelection ? (t = window.getSelection()).rangeCount && (this.range = t.getRangeAt(0)) : this.range = document.selection.createRange() }, click: function (t) { this._setSelection(), this._toggle(t) }, keydown: function (t) { var e = !0; switch (t.keyCode) { case x.ui.keyCode.TAB: case x.ui.keyCode.ESCAPE: this.close(t), e = !1; break; case x.ui.keyCode.ENTER: this.isOpen && this._selectFocusedItem(t); break; case x.ui.keyCode.UP: t.altKey ? this._toggle(t) : this._move("prev", t); break; case x.ui.keyCode.DOWN: t.altKey ? this._toggle(t) : this._move("next", t); break; case x.ui.keyCode.SPACE: this.isOpen ? this._selectFocusedItem(t) : this._toggle(t); break; case x.ui.keyCode.LEFT: this._move("prev", t); break; case x.ui.keyCode.RIGHT: this._move("next", t); break; case x.ui.keyCode.HOME: case x.ui.keyCode.PAGE_UP: this._move("first", t); break; case x.ui.keyCode.END: case x.ui.keyCode.PAGE_DOWN: this._move("last", t); break; default: this.menu.trigger(t), e = !1 }e && t.preventDefault() } }, _selectFocusedItem: function (t) { var e = this.menuItems.eq(this.focusIndex).parent("li"); e.hasClass("ui-state-disabled") || this._select(e.data("ui-selectmenu-item"), t) }, _select: function (t, e) { var i = this.element[0].selectedIndex; this.element[0].selectedIndex = t.index, this.buttonItem.replaceWith(this.buttonItem = this._renderButtonItem(t)), this._setAria(t), this._trigger("select", e, { item: t }), t.index !== i && this._trigger("change", e, { item: t }), this.close(e) }, _setAria: function (t) { t = this.menuItems.eq(t.index).attr("id"); this.button.attr({ "aria-labelledby": t, "aria-activedescendant": t }), this.menu.attr("aria-activedescendant", t) }, _setOption: function (t, e) { var i; "icons" === t && (i = this.button.find("span.ui-icon"), this._removeClass(i, null, this.options.icons.button)._addClass(i, null, e.button)), this._super(t, e), "appendTo" === t && this.menuWrap.appendTo(this._appendTo()), "width" === t && this._resizeButton() }, _setOptionDisabled: function (t) { this._super(t), this.menuInstance.option("disabled", t), this.button.attr("aria-disabled", t), this._toggleClass(this.button, null, "ui-state-disabled", t), this.element.prop("disabled", t), t ? (this.button.attr("tabindex", -1), this.close()) : this.button.attr("tabindex", 0) }, _appendTo: function () { var t = this.options.appendTo; return (t = t && (t.jquery || t.nodeType ? x(t) : this.document.find(t).eq(0))) && t[0] || (t = this.element.closest(".ui-front, dialog")), t.length || (t = this.document[0].body), t }, _toggleAttr: function () { this.button.attr("aria-expanded", this.isOpen), this._removeClass(this.button, "ui-selectmenu-button-" + (this.isOpen ? "closed" : "open"))._addClass(this.button, "ui-selectmenu-button-" + (this.isOpen ? "open" : "closed"))._toggleClass(this.menuWrap, "ui-selectmenu-open", null, this.isOpen), this.menu.attr("aria-hidden", !this.isOpen) }, _resizeButton: function () { var t = this.options.width; !1 !== t ? (null === t && (t = this.element.show().outerWidth(), this.element.hide()), this.button.outerWidth(t)) : this.button.css("width", "") }, _resizeMenu: function () { this.menu.outerWidth(Math.max(this.button.outerWidth(), this.menu.width("").outerWidth() + 1)) }, _getCreateOptions: function () { var t = this._super(); return t.disabled = this.element.prop("disabled"), t }, _parseOptions: function (t) { var i = this, n = []; t.each(function (t, e) { n.push(i._parseOption(x(e), t)) }), this.items = n }, _parseOption: function (t, e) { var i = t.parent("optgroup"); return { element: t, index: e, value: t.val(), label: t.text(), optgroup: i.attr("label") || "", disabled: i.prop("disabled") || t.prop("disabled") } }, _destroy: function () { this._unbindFormResetHandler(), this.menuWrap.remove(), this.button.remove(), this.element.show(), this.element.removeUniqueId(), this.labels.attr("for", this.ids.element) } }]), x.widget("ui.slider", x.ui.mouse, { version: "1.12.1", widgetEventPrefix: "slide", options: { animate: !1, classes: { "ui-slider": "ui-corner-all", "ui-slider-handle": "ui-corner-all", "ui-slider-range": "ui-corner-all ui-widget-header" }, distance: 0, max: 100, min: 0, orientation: "horizontal", range: !1, step: 1, value: 0, values: null, change: null, slide: null, start: null, stop: null }, numPages: 5, _create: function () { this._keySliding = !1, this._mouseSliding = !1, this._animateOff = !0, this._handleIndex = null, this._detectOrientation(), this._mouseInit(), this._calculateNewMax(), this._addClass("ui-slider ui-slider-" + this.orientation, "ui-widget ui-widget-content"), this._refresh(), this._animateOff = !1 }, _refresh: function () { this._createRange(), this._createHandles(), this._setupEvents(), this._refreshValue() }, _createHandles: function () { var t, e = this.options, i = this.element.find(".ui-slider-handle"), n = [], s = e.values && e.values.length || 1; for (i.length > s && (i.slice(s).remove(), i = i.slice(0, s)), t = i.length; t < s; t++)n.push("<span tabindex='0'></span>"); this.handles = i.add(x(n.join("")).appendTo(this.element)), this._addClass(this.handles, "ui-slider-handle", "ui-state-default"), this.handle = this.handles.eq(0), this.handles.each(function (t) { x(this).data("ui-slider-handle-index", t).attr("tabIndex", 0) }) }, _createRange: function () { var t = this.options; t.range ? (!0 === t.range && (t.values ? t.values.length && 2 !== t.values.length ? t.values = [t.values[0], t.values[0]] : x.isArray(t.values) && (t.values = t.values.slice(0)) : t.values = [this._valueMin(), this._valueMin()]), this.range && this.range.length ? (this._removeClass(this.range, "ui-slider-range-min ui-slider-range-max"), this.range.css({ left: "", bottom: "" })) : (this.range = x("<div>").appendTo(this.element), this._addClass(this.range, "ui-slider-range")), "min" !== t.range && "max" !== t.range || this._addClass(this.range, "ui-slider-range-" + t.range)) : (this.range && this.range.remove(), this.range = null) }, _setupEvents: function () { this._off(this.handles), this._on(this.handles, this._handleEvents), this._hoverable(this.handles), this._focusable(this.handles) }, _destroy: function () { this.handles.remove(), this.range && this.range.remove(), this._mouseDestroy() }, _mouseCapture: function (t) { var i, n, s, o, e, r, a = this, l = this.options; return !l.disabled && (this.elementSize = { width: this.element.outerWidth(), height: this.element.outerHeight() }, this.elementOffset = this.element.offset(), r = { x: t.pageX, y: t.pageY }, i = this._normValueFromMouse(r), n = this._valueMax() - this._valueMin() + 1, this.handles.each(function (t) { var e = Math.abs(i - a.values(t)); (e < n || n === e && (t === a._lastChangedValue || a.values(t) === l.min)) && (n = e, s = x(this), o = t) }), !1 !== this._start(t, o) && (this._mouseSliding = !0, this._handleIndex = o, this._addClass(s, null, "ui-state-active"), s.trigger("focus"), e = s.offset(), r = !x(t.target).parents().addBack().is(".ui-slider-handle"), this._clickOffset = r ? { left: 0, top: 0 } : { left: t.pageX - e.left - s.width() / 2, top: t.pageY - e.top - s.height() / 2 - (parseInt(s.css("borderTopWidth"), 10) || 0) - (parseInt(s.css("borderBottomWidth"), 10) || 0) + (parseInt(s.css("marginTop"), 10) || 0) }, this.handles.hasClass("ui-state-hover") || this._slide(t, o, i), this._animateOff = !0)) }, _mouseStart: function () { return !0 }, _mouseDrag: function (t) { var e = { x: t.pageX, y: t.pageY }, e = this._normValueFromMouse(e); return this._slide(t, this._handleIndex, e), !1 }, _mouseStop: function (t) { return this._removeClass(this.handles, null, "ui-state-active"), this._mouseSliding = !1, this._stop(t, this._handleIndex), this._change(t, this._handleIndex), this._handleIndex = null, this._clickOffset = null, this._animateOff = !1 }, _detectOrientation: function () { this.orientation = "vertical" === this.options.orientation ? "vertical" : "horizontal" }, _normValueFromMouse: function (t) { var e, t = "horizontal" === this.orientation ? (e = this.elementSize.width, t.x - this.elementOffset.left - (this._clickOffset ? this._clickOffset.left : 0)) : (e = this.elementSize.height, t.y - this.elementOffset.top - (this._clickOffset ? this._clickOffset.top : 0)), t = t / e; return 1 < t && (t = 1), t < 0 && (t = 0), "vertical" === this.orientation && (t = 1 - t), e = this._valueMax() - this._valueMin(), e = this._valueMin() + t * e, this._trimAlignValue(e) }, _uiHash: function (t, e, i) { var n = { handle: this.handles[t], handleIndex: t, value: void 0 !== e ? e : this.value() }; return this._hasMultipleValues() && (n.value = void 0 !== e ? e : this.values(t), n.values = i || this.values()), n }, _hasMultipleValues: function () { return this.options.values && this.options.values.length }, _start: function (t, e) { return this._trigger("start", t, this._uiHash(e)) }, _slide: function (t, e, i) { var n, s = this.value(), o = this.values(); this._hasMultipleValues() && (n = this.values(e ? 0 : 1), s = this.values(e), 2 === this.options.values.length && !0 === this.options.range && (i = 0 === e ? Math.min(n, i) : Math.max(n, i)), o[e] = i), i !== s && !1 !== this._trigger("slide", t, this._uiHash(e, i, o)) && (this._hasMultipleValues() ? this.values(e, i) : this.value(i)) }, _stop: function (t, e) { this._trigger("stop", t, this._uiHash(e)) }, _change: function (t, e) { this._keySliding || this._mouseSliding || (this._lastChangedValue = e, this._trigger("change", t, this._uiHash(e))) }, value: function (t) { return arguments.length ? (this.options.value = this._trimAlignValue(t), this._refreshValue(), void this._change(null, 0)) : this._value() }, values: function (t, e) { var i, n, s; if (1 < arguments.length) return this.options.values[t] = this._trimAlignValue(e), this._refreshValue(), void this._change(null, t); if (!arguments.length) return this._values(); if (!x.isArray(t)) return this._hasMultipleValues() ? this._values(t) : this.value(); for (i = this.options.values, n = t, s = 0; s < i.length; s += 1)i[s] = this._trimAlignValue(n[s]), this._change(null, s); this._refreshValue() }, _setOption: function (t, e) { var i, n = 0; switch ("range" === t && !0 === this.options.range && ("min" === e ? (this.options.value = this._values(0), this.options.values = null) : "max" === e && (this.options.value = this._values(this.options.values.length - 1), this.options.values = null)), x.isArray(this.options.values) && (n = this.options.values.length), this._super(t, e), t) { case "orientation": this._detectOrientation(), this._removeClass("ui-slider-horizontal ui-slider-vertical")._addClass("ui-slider-" + this.orientation), this._refreshValue(), this.options.range && this._refreshRange(e), this.handles.css("horizontal" === e ? "bottom" : "left", ""); break; case "value": this._animateOff = !0, this._refreshValue(), this._change(null, 0), this._animateOff = !1; break; case "values": for (this._animateOff = !0, this._refreshValue(), i = n - 1; 0 <= i; i--)this._change(null, i); this._animateOff = !1; break; case "step": case "min": case "max": this._animateOff = !0, this._calculateNewMax(), this._refreshValue(), this._animateOff = !1; break; case "range": this._animateOff = !0, this._refresh(), this._animateOff = !1 } }, _setOptionDisabled: function (t) { this._super(t), this._toggleClass(null, "ui-state-disabled", !!t) }, _value: function () { var t = this.options.value; return t = this._trimAlignValue(t) }, _values: function (t) { var e, i, n; if (arguments.length) return e = this.options.values[t], this._trimAlignValue(e); if (this._hasMultipleValues()) { for (i = this.options.values.slice(), n = 0; n < i.length; n += 1)i[n] = this._trimAlignValue(i[n]); return i } return [] }, _trimAlignValue: function (t) { if (t <= this._valueMin()) return this._valueMin(); if (t >= this._valueMax()) return this._valueMax(); var e = 0 < this.options.step ? this.options.step : 1, i = (t - this._valueMin()) % e, t = t - i; return 2 * Math.abs(i) >= e && (t += 0 < i ? e : -e), parseFloat(t.toFixed(5)) }, _calculateNewMax: function () { var t = this.options.max, e = this._valueMin(), i = this.options.step; (t = Math.round((t - e) / i) * i + e) > this.options.max && (t -= i), this.max = parseFloat(t.toFixed(this._precision())) }, _precision: function () { var t = this._precisionOf(this.options.step); return null !== this.options.min && (t = Math.max(t, this._precisionOf(this.options.min))), t }, _precisionOf: function (t) { var e = t.toString(), t = e.indexOf("."); return -1 === t ? 0 : e.length - t - 1 }, _valueMin: function () { return this.options.min }, _valueMax: function () { return this.max }, _refreshRange: function (t) { "vertical" === t && this.range.css({ width: "", left: "" }), "horizontal" === t && this.range.css({ height: "", bottom: "" }) }, _refreshValue: function () { var e, i, t, n, s, o = this.options.range, r = this.options, a = this, l = !this._animateOff && r.animate, h = {}; this._hasMultipleValues() ? this.handles.each(function (t) { i = (a.values(t) - a._valueMin()) / (a._valueMax() - a._valueMin()) * 100, h["horizontal" === a.orientation ? "left" : "bottom"] = i + "%", x(this).stop(1, 1)[l ? "animate" : "css"](h, r.animate), !0 === a.options.range && ("horizontal" === a.orientation ? (0 === t && a.range.stop(1, 1)[l ? "animate" : "css"]({ left: i + "%" }, r.animate), 1 === t && a.range[l ? "animate" : "css"]({ width: i - e + "%" }, { queue: !1, duration: r.animate })) : (0 === t && a.range.stop(1, 1)[l ? "animate" : "css"]({ bottom: i + "%" }, r.animate), 1 === t && a.range[l ? "animate" : "css"]({ height: i - e + "%" }, { queue: !1, duration: r.animate }))), e = i }) : (t = this.value(), n = this._valueMin(), s = this._valueMax(), i = s !== n ? (t - n) / (s - n) * 100 : 0, h["horizontal" === this.orientation ? "left" : "bottom"] = i + "%", this.handle.stop(1, 1)[l ? "animate" : "css"](h, r.animate), "min" === o && "horizontal" === this.orientation && this.range.stop(1, 1)[l ? "animate" : "css"]({ width: i + "%" }, r.animate), "max" === o && "horizontal" === this.orientation && this.range.stop(1, 1)[l ? "animate" : "css"]({ width: 100 - i + "%" }, r.animate), "min" === o && "vertical" === this.orientation && this.range.stop(1, 1)[l ? "animate" : "css"]({ height: i + "%" }, r.animate), "max" === o && "vertical" === this.orientation && this.range.stop(1, 1)[l ? "animate" : "css"]({ height: 100 - i + "%" }, r.animate)) }, _handleEvents: { keydown: function (t) { var e, i, n, s = x(t.target).data("ui-slider-handle-index"); switch (t.keyCode) { case x.ui.keyCode.HOME: case x.ui.keyCode.END: case x.ui.keyCode.PAGE_UP: case x.ui.keyCode.PAGE_DOWN: case x.ui.keyCode.UP: case x.ui.keyCode.RIGHT: case x.ui.keyCode.DOWN: case x.ui.keyCode.LEFT: if (t.preventDefault(), !this._keySliding && (this._keySliding = !0, this._addClass(x(t.target), null, "ui-state-active"), !1 === this._start(t, s))) return }switch (n = this.options.step, e = i = this._hasMultipleValues() ? this.values(s) : this.value(), t.keyCode) { case x.ui.keyCode.HOME: i = this._valueMin(); break; case x.ui.keyCode.END: i = this._valueMax(); break; case x.ui.keyCode.PAGE_UP: i = this._trimAlignValue(e + (this._valueMax() - this._valueMin()) / this.numPages); break; case x.ui.keyCode.PAGE_DOWN: i = this._trimAlignValue(e - (this._valueMax() - this._valueMin()) / this.numPages); break; case x.ui.keyCode.UP: case x.ui.keyCode.RIGHT: if (e === this._valueMax()) return; i = this._trimAlignValue(e + n); break; case x.ui.keyCode.DOWN: case x.ui.keyCode.LEFT: if (e === this._valueMin()) return; i = this._trimAlignValue(e - n) }this._slide(t, s, i) }, keyup: function (t) { var e = x(t.target).data("ui-slider-handle-index"); this._keySliding && (this._keySliding = !1, this._stop(t, e), this._change(t, e), this._removeClass(x(t.target), null, "ui-state-active")) } } }), x.widget("ui.sortable", x.ui.mouse, { version: "1.12.1", widgetEventPrefix: "sort", ready: !1, options: { appendTo: "parent", axis: !1, connectWith: !1, containment: !1, cursor: "auto", cursorAt: !1, dropOnEmpty: !0, forcePlaceholderSize: !1, forceHelperSize: !1, grid: !1, handle: !1, helper: "original", items: "> *", opacity: !1, placeholder: !1, revert: !1, scroll: !0, scrollSensitivity: 20, scrollSpeed: 20, scope: "default", tolerance: "intersect", zIndex: 1e3, activate: null, beforeStop: null, change: null, deactivate: null, out: null, over: null, receive: null, remove: null, sort: null, start: null, stop: null, update: null }, _isOverAxis: function (t, e, i) { return e <= t && t < e + i }, _isFloating: function (t) { return /left|right/.test(t.css("float")) || /inline|table-cell/.test(t.css("display")) }, _create: function () { this.containerCache = {}, this._addClass("ui-sortable"), this.refresh(), this.offset = this.element.offset(), this._mouseInit(), this._setHandleClassName(), this.ready = !0 }, _setOption: function (t, e) { this._super(t, e), "handle" === t && this._setHandleClassName() }, _setHandleClassName: function () { var t = this; this._removeClass(this.element.find(".ui-sortable-handle"), "ui-sortable-handle"), x.each(this.items, function () { t._addClass(this.instance.options.handle ? this.item.find(this.instance.options.handle) : this.item, "ui-sortable-handle") }) }, _destroy: function () { this._mouseDestroy(); for (var t = this.items.length - 1; 0 <= t; t--)this.items[t].item.removeData(this.widgetName + "-item"); return this }, _mouseCapture: function (t, e) { var i = null, n = !1, s = this; return !this.reverting && (!this.options.disabled && "static" !== this.options.type && (this._refreshItems(t), x(t.target).parents().each(function () { if (x.data(this, s.widgetName + "-item") === s) return i = x(this), !1 }), x.data(t.target, s.widgetName + "-item") === s && (i = x(t.target)), !!i && (!(this.options.handle && !e && (x(this.options.handle, i).find("*").addBack().each(function () { this === t.target && (n = !0) }), !n)) && (this.currentItem = i, this._removeCurrentsFromItems(), !0)))) }, _mouseStart: function (t, e, i) { var n, s, o = this.options; if ((this.currentContainer = this).refreshPositions(), this.helper = this._createHelper(t), this._cacheHelperProportions(), this._cacheMargins(), this.scrollParent = this.helper.scrollParent(), this.offset = this.currentItem.offset(), this.offset = { top: this.offset.top - this.margins.top, left: this.offset.left - this.margins.left }, x.extend(this.offset, { click: { left: t.pageX - this.offset.left, top: t.pageY - this.offset.top }, parent: this._getParentOffset(), relative: this._getRelativeOffset() }), this.helper.css("position", "absolute"), this.cssPosition = this.helper.css("position"), this.originalPosition = this._generatePosition(t), this.originalPageX = t.pageX, this.originalPageY = t.pageY, o.cursorAt && this._adjustOffsetFromHelper(o.cursorAt), this.domPosition = { prev: this.currentItem.prev()[0], parent: this.currentItem.parent()[0] }, this.helper[0] !== this.currentItem[0] && this.currentItem.hide(), this._createPlaceholder(), o.containment && this._setContainment(), o.cursor && "auto" !== o.cursor && (s = this.document.find("body"), this.storedCursor = s.css("cursor"), s.css("cursor", o.cursor), this.storedStylesheet = x("<style>*{ cursor: " + o.cursor + " !important; }</style>").appendTo(s)), o.opacity && (this.helper.css("opacity") && (this._storedOpacity = this.helper.css("opacity")), this.helper.css("opacity", o.opacity)), o.zIndex && (this.helper.css("zIndex") && (this._storedZIndex = this.helper.css("zIndex")), this.helper.css("zIndex", o.zIndex)), this.scrollParent[0] !== this.document[0] && "HTML" !== this.scrollParent[0].tagName && (this.overflowOffset = this.scrollParent.offset()), this._trigger("start", t, this._uiHash()), this._preserveHelperProportions || this._cacheHelperProportions(), !i) for (n = this.containers.length - 1; 0 <= n; n--)this.containers[n]._trigger("activate", t, this._uiHash(this)); return x.ui.ddmanager && (x.ui.ddmanager.current = this), x.ui.ddmanager && !o.dropBehaviour && x.ui.ddmanager.prepareOffsets(this, t), this.dragging = !0, this._addClass(this.helper, "ui-sortable-helper"), this._mouseDrag(t), !0 }, _mouseDrag: function (t) { var e, i, n, s, o = this.options, r = !1; for (this.position = this._generatePosition(t), this.positionAbs = this._convertPositionTo("absolute"), this.lastPositionAbs || (this.lastPositionAbs = this.positionAbs), this.options.scroll && (this.scrollParent[0] !== this.document[0] && "HTML" !== this.scrollParent[0].tagName ? (this.overflowOffset.top + this.scrollParent[0].offsetHeight - t.pageY < o.scrollSensitivity ? this.scrollParent[0].scrollTop = r = this.scrollParent[0].scrollTop + o.scrollSpeed : t.pageY - this.overflowOffset.top < o.scrollSensitivity && (this.scrollParent[0].scrollTop = r = this.scrollParent[0].scrollTop - o.scrollSpeed), this.overflowOffset.left + this.scrollParent[0].offsetWidth - t.pageX < o.scrollSensitivity ? this.scrollParent[0].scrollLeft = r = this.scrollParent[0].scrollLeft + o.scrollSpeed : t.pageX - this.overflowOffset.left < o.scrollSensitivity && (this.scrollParent[0].scrollLeft = r = this.scrollParent[0].scrollLeft - o.scrollSpeed)) : (t.pageY - this.document.scrollTop() < o.scrollSensitivity ? r = this.document.scrollTop(this.document.scrollTop() - o.scrollSpeed) : this.window.height() - (t.pageY - this.document.scrollTop()) < o.scrollSensitivity && (r = this.document.scrollTop(this.document.scrollTop() + o.scrollSpeed)), t.pageX - this.document.scrollLeft() < o.scrollSensitivity ? r = this.document.scrollLeft(this.document.scrollLeft() - o.scrollSpeed) : this.window.width() - (t.pageX - this.document.scrollLeft()) < o.scrollSensitivity && (r = this.document.scrollLeft(this.document.scrollLeft() + o.scrollSpeed))), !1 !== r && x.ui.ddmanager && !o.dropBehaviour && x.ui.ddmanager.prepareOffsets(this, t)), this.positionAbs = this._convertPositionTo("absolute"), this.options.axis && "y" === this.options.axis || (this.helper[0].style.left = this.position.left + "px"), this.options.axis && "x" === this.options.axis || (this.helper[0].style.top = this.position.top + "px"), e = this.items.length - 1; 0 <= e; e--)if (i = this.items[e], n = i.item[0], s = this._intersectsWithPointer(i), s && i.instance === this.currentContainer && !(n === this.currentItem[0] || this.placeholder[1 === s ? "next" : "prev"]()[0] === n || x.contains(this.placeholder[0], n) || "semi-dynamic" === this.options.type && x.contains(this.element[0], n))) { if (this.direction = 1 === s ? "down" : "up", "pointer" !== this.options.tolerance && !this._intersectsWithSides(i)) break; this._rearrange(t, i), this._trigger("change", t, this._uiHash()); break } return this._contactContainers(t), x.ui.ddmanager && x.ui.ddmanager.drag(this, t), this._trigger("sort", t, this._uiHash()), this.lastPositionAbs = this.positionAbs, !1 }, _mouseStop: function (t, e) { var i, n, s, o; if (t) return x.ui.ddmanager && !this.options.dropBehaviour && x.ui.ddmanager.drop(this, t), this.options.revert ? (n = (i = this).placeholder.offset(), o = {}, (s = this.options.axis) && "x" !== s || (o.left = n.left - this.offset.parent.left - this.margins.left + (this.offsetParent[0] === this.document[0].body ? 0 : this.offsetParent[0].scrollLeft)), s && "y" !== s || (o.top = n.top - this.offset.parent.top - this.margins.top + (this.offsetParent[0] === this.document[0].body ? 0 : this.offsetParent[0].scrollTop)), this.reverting = !0, x(this.helper).animate(o, parseInt(this.options.revert, 10) || 500, function () { i._clear(t) })) : this._clear(t, e), !1 }, cancel: function () { if (this.dragging) { this._mouseUp(new x.Event("mouseup", { target: null })), "original" === this.options.helper ? (this.currentItem.css(this._storedCSS), this._removeClass(this.currentItem, "ui-sortable-helper")) : this.currentItem.show(); for (var t = this.containers.length - 1; 0 <= t; t--)this.containers[t]._trigger("deactivate", null, this._uiHash(this)), this.containers[t].containerCache.over && (this.containers[t]._trigger("out", null, this._uiHash(this)), this.containers[t].containerCache.over = 0) } return this.placeholder && (this.placeholder[0].parentNode && this.placeholder[0].parentNode.removeChild(this.placeholder[0]), "original" !== this.options.helper && this.helper && this.helper[0].parentNode && this.helper.remove(), x.extend(this, { helper: null, dragging: !1, reverting: !1, _noFinalSort: null }), this.domPosition.prev ? x(this.domPosition.prev).after(this.currentItem) : x(this.domPosition.parent).prepend(this.currentItem)), this }, serialize: function (e) { var t = this._getItemsAsjQuery(e && e.connected), i = []; return e = e || {}, x(t).each(function () { var t = (x(e.item || this).attr(e.attribute || "id") || "").match(e.expression || /(.+)[\-=_](.+)/); t && i.push((e.key || t[1] + "[]") + "=" + (e.key && e.expression ? t[1] : t[2])) }), !i.length && e.key && i.push(e.key + "="), i.join("&") }, toArray: function (t) { var e = this._getItemsAsjQuery(t && t.connected), i = []; return t = t || {}, e.each(function () { i.push(x(t.item || this).attr(t.attribute || "id") || "") }), i }, _intersectsWith: function (t) { var e = this.positionAbs.left, i = e + this.helperProportions.width, n = this.positionAbs.top, s = n + this.helperProportions.height, o = t.left, r = o + t.width, a = t.top, l = a + t.height, h = this.offset.click.top, c = this.offset.click.left, h = "x" === this.options.axis || a < n + h && n + h < l, c = "y" === this.options.axis || o < e + c && e + c < r, c = h && c; return "pointer" === this.options.tolerance || this.options.forcePointerForContainers || "pointer" !== this.options.tolerance && this.helperProportions[this.floating ? "width" : "height"] > t[this.floating ? "width" : "height"] ? c : o < e + this.helperProportions.width / 2 && i - this.helperProportions.width / 2 < r && a < n + this.helperProportions.height / 2 && s - this.helperProportions.height / 2 < l }, _intersectsWithPointer: function (t) { var e = "x" === this.options.axis || this._isOverAxis(this.positionAbs.top + this.offset.click.top, t.top, t.height), t = "y" === this.options.axis || this._isOverAxis(this.positionAbs.left + this.offset.click.left, t.left, t.width); return !(!e || !t) && (e = this._getDragVerticalDirection(), t = this._getDragHorizontalDirection(), this.floating ? "right" === t || "down" === e ? 2 : 1 : e && ("down" === e ? 2 : 1)) }, _intersectsWithSides: function (t) { var e = this._isOverAxis(this.positionAbs.top + this.offset.click.top, t.top + t.height / 2, t.height), i = this._isOverAxis(this.positionAbs.left + this.offset.click.left, t.left + t.width / 2, t.width), n = this._getDragVerticalDirection(), t = this._getDragHorizontalDirection(); return this.floating && t ? "right" === t && i || "left" === t && !i : n && ("down" === n && e || "up" === n && !e) }, _getDragVerticalDirection: function () { var t = this.positionAbs.top - this.lastPositionAbs.top; return 0 != t && (0 < t ? "down" : "up") }, _getDragHorizontalDirection: function () { var t = this.positionAbs.left - this.lastPositionAbs.left; return 0 != t && (0 < t ? "right" : "left") }, refresh: function (t) { return this._refreshItems(t), this._setHandleClassName(), this.refreshPositions(), this }, _connectWith: function () { var t = this.options; return t.connectWith.constructor === String ? [t.connectWith] : t.connectWith }, _getItemsAsjQuery: function (t) { var e, i, n, s, o = [], r = [], a = this._connectWith(); if (a && t) for (e = a.length - 1; 0 <= e; e--)for (i = (n = x(a[e], this.document[0])).length - 1; 0 <= i; i--)(s = x.data(n[i], this.widgetFullName)) && s !== this && !s.options.disabled && r.push([x.isFunction(s.options.items) ? s.options.items.call(s.element) : x(s.options.items, s.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"), s]); function l() { o.push(this) } for (r.push([x.isFunction(this.options.items) ? this.options.items.call(this.element, null, { options: this.options, item: this.currentItem }) : x(this.options.items, this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"), this]), e = r.length - 1; 0 <= e; e--)r[e][0].each(l); return x(o) }, _removeCurrentsFromItems: function () { var i = this.currentItem.find(":data(" + this.widgetName + "-item)"); this.items = x.grep(this.items, function (t) { for (var e = 0; e < i.length; e++)if (i[e] === t.item[0]) return !1; return !0 }) }, _refreshItems: function (t) { this.items = [], this.containers = [this]; var e, i, n, s, o, r, a, l, h = this.items, c = [[x.isFunction(this.options.items) ? this.options.items.call(this.element[0], t, { item: this.currentItem }) : x(this.options.items, this.element), this]], u = this._connectWith(); if (u && this.ready) for (e = u.length - 1; 0 <= e; e--)for (i = (n = x(u[e], this.document[0])).length - 1; 0 <= i; i--)(s = x.data(n[i], this.widgetFullName)) && s !== this && !s.options.disabled && (c.push([x.isFunction(s.options.items) ? s.options.items.call(s.element[0], t, { item: this.currentItem }) : x(s.options.items, s.element), s]), this.containers.push(s)); for (e = c.length - 1; 0 <= e; e--)for (o = c[e][1], i = 0, l = (r = c[e][0]).length; i < l; i++)(a = x(r[i])).data(this.widgetName + "-item", o), h.push({ item: a, instance: o, width: 0, height: 0, left: 0, top: 0 }) }, refreshPositions: function (t) { var e, i, n, s; for (this.floating = !!this.items.length && ("x" === this.options.axis || this._isFloating(this.items[0].item)), this.offsetParent && this.helper && (this.offset.parent = this._getParentOffset()), e = this.items.length - 1; 0 <= e; e--)(i = this.items[e]).instance !== this.currentContainer && this.currentContainer && i.item[0] !== this.currentItem[0] || (n = this.options.toleranceElement ? x(this.options.toleranceElement, i.item) : i.item, t || (i.width = n.outerWidth(), i.height = n.outerHeight()), s = n.offset(), i.left = s.left, i.top = s.top); if (this.options.custom && this.options.custom.refreshContainers) this.options.custom.refreshContainers.call(this); else for (e = this.containers.length - 1; 0 <= e; e--)s = this.containers[e].element.offset(), this.containers[e].containerCache.left = s.left, this.containers[e].containerCache.top = s.top, this.containers[e].containerCache.width = this.containers[e].element.outerWidth(), this.containers[e].containerCache.height = this.containers[e].element.outerHeight(); return this }, _createPlaceholder: function (i) { var n, s = (i = i || this).options; s.placeholder && s.placeholder.constructor !== String || (n = s.placeholder, s.placeholder = { element: function () { var t = i.currentItem[0].nodeName.toLowerCase(), e = x("<" + t + ">", i.document[0]); return i._addClass(e, "ui-sortable-placeholder", n || i.currentItem[0].className)._removeClass(e, "ui-sortable-helper"), "tbody" === t ? i._createTrPlaceholder(i.currentItem.find("tr").eq(0), x("<tr>", i.document[0]).appendTo(e)) : "tr" === t ? i._createTrPlaceholder(i.currentItem, e) : "img" === t && e.attr("src", i.currentItem.attr("src")), n || e.css("visibility", "hidden"), e }, update: function (t, e) { n && !s.forcePlaceholderSize || (e.height() || e.height(i.currentItem.innerHeight() - parseInt(i.currentItem.css("paddingTop") || 0, 10) - parseInt(i.currentItem.css("paddingBottom") || 0, 10)), e.width() || e.width(i.currentItem.innerWidth() - parseInt(i.currentItem.css("paddingLeft") || 0, 10) - parseInt(i.currentItem.css("paddingRight") || 0, 10))) } }), i.placeholder = x(s.placeholder.element.call(i.element, i.currentItem)), i.currentItem.after(i.placeholder), s.placeholder.update(i, i.placeholder) }, _createTrPlaceholder: function (t, e) { var i = this; t.children().each(function () { x("<td>&#160;</td>", i.document[0]).attr("colspan", x(this).attr("colspan") || 1).appendTo(e) }) }, _contactContainers: function (t) { for (var e, i, n, s, o, r, a, l, h, c = null, u = null, d = this.containers.length - 1; 0 <= d; d--)x.contains(this.currentItem[0], this.containers[d].element[0]) || (this._intersectsWith(this.containers[d].containerCache) ? c && x.contains(this.containers[d].element[0], c.element[0]) || (c = this.containers[d], u = d) : this.containers[d].containerCache.over && (this.containers[d]._trigger("out", t, this._uiHash(this)), this.containers[d].containerCache.over = 0)); if (c) if (1 === this.containers.length) this.containers[u].containerCache.over || (this.containers[u]._trigger("over", t, this._uiHash(this)), this.containers[u].containerCache.over = 1); else { for (i = 1e4, n = null, s = (l = c.floating || this._isFloating(this.currentItem)) ? "left" : "top", o = l ? "width" : "height", h = l ? "pageX" : "pageY", e = this.items.length - 1; 0 <= e; e--)x.contains(this.containers[u].element[0], this.items[e].item[0]) && this.items[e].item[0] !== this.currentItem[0] && (r = this.items[e].item.offset()[s], a = !1, t[h] - r > this.items[e][o] / 2 && (a = !0), Math.abs(t[h] - r) < i && (i = Math.abs(t[h] - r), n = this.items[e], this.direction = a ? "up" : "down")); (n || this.options.dropOnEmpty) && (this.currentContainer !== this.containers[u] ? (n ? this._rearrange(t, n, null, !0) : this._rearrange(t, null, this.containers[u].element, !0), this._trigger("change", t, this._uiHash()), this.containers[u]._trigger("change", t, this._uiHash(this)), this.currentContainer = this.containers[u], this.options.placeholder.update(this.currentContainer, this.placeholder), this.containers[u]._trigger("over", t, this._uiHash(this)), this.containers[u].containerCache.over = 1) : this.currentContainer.containerCache.over || (this.containers[u]._trigger("over", t, this._uiHash()), this.currentContainer.containerCache.over = 1)) } }, _createHelper: function (t) { var e = this.options, t = x.isFunction(e.helper) ? x(e.helper.apply(this.element[0], [t, this.currentItem])) : "clone" === e.helper ? this.currentItem.clone() : this.currentItem; return t.parents("body").length || x("parent" !== e.appendTo ? e.appendTo : this.currentItem[0].parentNode)[0].appendChild(t[0]), t[0] === this.currentItem[0] && (this._storedCSS = { width: this.currentItem[0].style.width, height: this.currentItem[0].style.height, position: this.currentItem.css("position"), top: this.currentItem.css("top"), left: this.currentItem.css("left") }), t[0].style.width && !e.forceHelperSize || t.width(this.currentItem.width()), t[0].style.height && !e.forceHelperSize || t.height(this.currentItem.height()), t }, _adjustOffsetFromHelper: function (t) { "string" == typeof t && (t = t.split(" ")), x.isArray(t) && (t = { left: +t[0], top: +t[1] || 0 }), "left" in t && (this.offset.click.left = t.left + this.margins.left), "right" in t && (this.offset.click.left = this.helperProportions.width - t.right + this.margins.left), "top" in t && (this.offset.click.top = t.top + this.margins.top), "bottom" in t && (this.offset.click.top = this.helperProportions.height - t.bottom + this.margins.top) }, _getParentOffset: function () { this.offsetParent = this.helper.offsetParent(); var t = this.offsetParent.offset(); return "absolute" === this.cssPosition && this.scrollParent[0] !== this.document[0] && x.contains(this.scrollParent[0], this.offsetParent[0]) && (t.left += this.scrollParent.scrollLeft(), t.top += this.scrollParent.scrollTop()), (this.offsetParent[0] === this.document[0].body || this.offsetParent[0].tagName && "html" === this.offsetParent[0].tagName.toLowerCase() && x.ui.ie) && (t = { top: 0, left: 0 }), { top: t.top + (parseInt(this.offsetParent.css("borderTopWidth"), 10) || 0), left: t.left + (parseInt(this.offsetParent.css("borderLeftWidth"), 10) || 0) } }, _getRelativeOffset: function () { if ("relative" !== this.cssPosition) return { top: 0, left: 0 }; var t = this.currentItem.position(); return { top: t.top - (parseInt(this.helper.css("top"), 10) || 0) + this.scrollParent.scrollTop(), left: t.left - (parseInt(this.helper.css("left"), 10) || 0) + this.scrollParent.scrollLeft() } }, _cacheMargins: function () { this.margins = { left: parseInt(this.currentItem.css("marginLeft"), 10) || 0, top: parseInt(this.currentItem.css("marginTop"), 10) || 0 } }, _cacheHelperProportions: function () { this.helperProportions = { width: this.helper.outerWidth(), height: this.helper.outerHeight() } }, _setContainment: function () { var t, e, i = this.options; "parent" === i.containment && (i.containment = this.helper[0].parentNode), "document" !== i.containment && "window" !== i.containment || (this.containment = [0 - this.offset.relative.left - this.offset.parent.left, 0 - this.offset.relative.top - this.offset.parent.top, "document" === i.containment ? this.document.width() : this.window.width() - this.helperProportions.width - this.margins.left, ("document" === i.containment ? this.document.height() || document.body.parentNode.scrollHeight : this.window.height() || this.document[0].body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top]), /^(document|window|parent)$/.test(i.containment) || (t = x(i.containment)[0], e = x(i.containment).offset(), i = "hidden" !== x(t).css("overflow"), this.containment = [e.left + (parseInt(x(t).css("borderLeftWidth"), 10) || 0) + (parseInt(x(t).css("paddingLeft"), 10) || 0) - this.margins.left, e.top + (parseInt(x(t).css("borderTopWidth"), 10) || 0) + (parseInt(x(t).css("paddingTop"), 10) || 0) - this.margins.top, e.left + (i ? Math.max(t.scrollWidth, t.offsetWidth) : t.offsetWidth) - (parseInt(x(t).css("borderLeftWidth"), 10) || 0) - (parseInt(x(t).css("paddingRight"), 10) || 0) - this.helperProportions.width - this.margins.left, e.top + (i ? Math.max(t.scrollHeight, t.offsetHeight) : t.offsetHeight) - (parseInt(x(t).css("borderTopWidth"), 10) || 0) - (parseInt(x(t).css("paddingBottom"), 10) || 0) - this.helperProportions.height - this.margins.top]) }, _convertPositionTo: function (t, e) { e = e || this.position; var i = "absolute" === t ? 1 : -1, n = "absolute" !== this.cssPosition || this.scrollParent[0] !== this.document[0] && x.contains(this.scrollParent[0], this.offsetParent[0]) ? this.scrollParent : this.offsetParent, t = /(html|body)/i.test(n[0].tagName); return { top: e.top + this.offset.relative.top * i + this.offset.parent.top * i - ("fixed" === this.cssPosition ? -this.scrollParent.scrollTop() : t ? 0 : n.scrollTop()) * i, left: e.left + this.offset.relative.left * i + this.offset.parent.left * i - ("fixed" === this.cssPosition ? -this.scrollParent.scrollLeft() : t ? 0 : n.scrollLeft()) * i } }, _generatePosition: function (t) { var e = this.options, i = t.pageX, n = t.pageY, s = "absolute" !== this.cssPosition || this.scrollParent[0] !== this.document[0] && x.contains(this.scrollParent[0], this.offsetParent[0]) ? this.scrollParent : this.offsetParent, o = /(html|body)/i.test(s[0].tagName); return "relative" !== this.cssPosition || this.scrollParent[0] !== this.document[0] && this.scrollParent[0] !== this.offsetParent[0] || (this.offset.relative = this._getRelativeOffset()), this.originalPosition && (this.containment && (t.pageX - this.offset.click.left < this.containment[0] && (i = this.containment[0] + this.offset.click.left), t.pageY - this.offset.click.top < this.containment[1] && (n = this.containment[1] + this.offset.click.top), t.pageX - this.offset.click.left > this.containment[2] && (i = this.containment[2] + this.offset.click.left), t.pageY - this.offset.click.top > this.containment[3] && (n = this.containment[3] + this.offset.click.top)), e.grid && (t = this.originalPageY + Math.round((n - this.originalPageY) / e.grid[1]) * e.grid[1], n = !this.containment || t - this.offset.click.top >= this.containment[1] && t - this.offset.click.top <= this.containment[3] ? t : t - this.offset.click.top >= this.containment[1] ? t - e.grid[1] : t + e.grid[1], t = this.originalPageX + Math.round((i - this.originalPageX) / e.grid[0]) * e.grid[0], i = !this.containment || t - this.offset.click.left >= this.containment[0] && t - this.offset.click.left <= this.containment[2] ? t : t - this.offset.click.left >= this.containment[0] ? t - e.grid[0] : t + e.grid[0])), { top: n - this.offset.click.top - this.offset.relative.top - this.offset.parent.top + ("fixed" === this.cssPosition ? -this.scrollParent.scrollTop() : o ? 0 : s.scrollTop()), left: i - this.offset.click.left - this.offset.relative.left - this.offset.parent.left + ("fixed" === this.cssPosition ? -this.scrollParent.scrollLeft() : o ? 0 : s.scrollLeft()) } }, _rearrange: function (t, e, i, n) { i ? i[0].appendChild(this.placeholder[0]) : e.item[0].parentNode.insertBefore(this.placeholder[0], "down" === this.direction ? e.item[0] : e.item[0].nextSibling), this.counter = this.counter ? ++this.counter : 1; var s = this.counter; this._delay(function () { s === this.counter && this.refreshPositions(!n) }) }, _clear: function (t, e) { this.reverting = !1; var i, n = []; if (!this._noFinalSort && this.currentItem.parent().length && this.placeholder.before(this.currentItem), this._noFinalSort = null, this.helper[0] === this.currentItem[0]) { for (i in this._storedCSS) "auto" !== this._storedCSS[i] && "static" !== this._storedCSS[i] || (this._storedCSS[i] = ""); this.currentItem.css(this._storedCSS), this._removeClass(this.currentItem, "ui-sortable-helper") } else this.currentItem.show(); function s(e, i, n) { return function (t) { n._trigger(e, t, i._uiHash(i)) } } for (this.fromOutside && !e && n.push(function (t) { this._trigger("receive", t, this._uiHash(this.fromOutside)) }), !this.fromOutside && this.domPosition.prev === this.currentItem.prev().not(".ui-sortable-helper")[0] && this.domPosition.parent === this.currentItem.parent()[0] || e || n.push(function (t) { this._trigger("update", t, this._uiHash()) }), this !== this.currentContainer && (e || (n.push(function (t) { this._trigger("remove", t, this._uiHash()) }), n.push(function (e) { return function (t) { e._trigger("receive", t, this._uiHash(this)) } }.call(this, this.currentContainer)), n.push(function (e) { return function (t) { e._trigger("update", t, this._uiHash(this)) } }.call(this, this.currentContainer)))), i = this.containers.length - 1; 0 <= i; i--)e || n.push(s("deactivate", this, this.containers[i])), this.containers[i].containerCache.over && (n.push(s("out", this, this.containers[i])), this.containers[i].containerCache.over = 0); if (this.storedCursor && (this.document.find("body").css("cursor", this.storedCursor), this.storedStylesheet.remove()), this._storedOpacity && this.helper.css("opacity", this._storedOpacity), this._storedZIndex && this.helper.css("zIndex", "auto" === this._storedZIndex ? "" : this._storedZIndex), this.dragging = !1, e || this._trigger("beforeStop", t, this._uiHash()), this.placeholder[0].parentNode.removeChild(this.placeholder[0]), this.cancelHelperRemoval || (this.helper[0] !== this.currentItem[0] && this.helper.remove(), this.helper = null), !e) { for (i = 0; i < n.length; i++)n[i].call(this, t); this._trigger("stop", t, this._uiHash()) } return this.fromOutside = !1, !this.cancelHelperRemoval }, _trigger: function () { !1 === x.Widget.prototype._trigger.apply(this, arguments) && this.cancel() }, _uiHash: function (t) { var e = t || this; return { helper: e.helper, placeholder: e.placeholder || x([]), position: e.position, originalPosition: e.originalPosition, offset: e.positionAbs, item: e.currentItem, sender: t ? t.element : null } } }); function rt(e) { return function () { var t = this.element.val(); e.apply(this, arguments), this._refresh(), t !== this.element.val() && this._trigger("change") } } x.widget("ui.spinner", { version: "1.12.1", defaultElement: "<input>", widgetEventPrefix: "spin", options: { classes: { "ui-spinner": "ui-corner-all", "ui-spinner-down": "ui-corner-br", "ui-spinner-up": "ui-corner-tr" }, culture: null, icons: { down: "ui-icon-triangle-1-s", up: "ui-icon-triangle-1-n" }, incremental: !0, max: null, min: null, numberFormat: null, page: 10, step: 1, change: null, spin: null, start: null, stop: null }, _create: function () { this._setOption("max", this.options.max), this._setOption("min", this.options.min), this._setOption("step", this.options.step), "" !== this.value() && this._value(this.element.val(), !0), this._draw(), this._on(this._events), this._refresh(), this._on(this.window, { beforeunload: function () { this.element.removeAttr("autocomplete") } }) }, _getCreateOptions: function () { var n = this._super(), s = this.element; return x.each(["min", "max", "step"], function (t, e) { var i = s.attr(e); null != i && i.length && (n[e] = i) }), n }, _events: { keydown: function (t) { this._start(t) && this._keydown(t) && t.preventDefault() }, keyup: "_stop", focus: function () { this.previous = this.element.val() }, blur: function (t) { this.cancelBlur ? delete this.cancelBlur : (this._stop(), this._refresh(), this.previous !== this.element.val() && this._trigger("change", t)) }, mousewheel: function (t, e) { if (e) { if (!this.spinning && !this._start(t)) return !1; this._spin((0 < e ? 1 : -1) * this.options.step, t), clearTimeout(this.mousewheelTimer), this.mousewheelTimer = this._delay(function () { this.spinning && this._stop(t) }, 100), t.preventDefault() } }, "mousedown .ui-spinner-button": function (t) { var e; function i() { this.element[0] === x.ui.safeActiveElement(this.document[0]) || (this.element.trigger("focus"), this.previous = e, this._delay(function () { this.previous = e })) } e = this.element[0] === x.ui.safeActiveElement(this.document[0]) ? this.previous : this.element.val(), t.preventDefault(), i.call(this), this.cancelBlur = !0, this._delay(function () { delete this.cancelBlur, i.call(this) }), !1 !== this._start(t) && this._repeat(null, x(t.currentTarget).hasClass("ui-spinner-up") ? 1 : -1, t) }, "mouseup .ui-spinner-button": "_stop", "mouseenter .ui-spinner-button": function (t) { if (x(t.currentTarget).hasClass("ui-state-active")) return !1 !== this._start(t) && void this._repeat(null, x(t.currentTarget).hasClass("ui-spinner-up") ? 1 : -1, t) }, "mouseleave .ui-spinner-button": "_stop" }, _enhance: function () { this.uiSpinner = this.element.attr("autocomplete", "off").wrap("<span>").parent().append("<a></a><a></a>") }, _draw: function () { this._enhance(), this._addClass(this.uiSpinner, "ui-spinner", "ui-widget ui-widget-content"), this._addClass("ui-spinner-input"), this.element.attr("role", "spinbutton"), this.buttons = this.uiSpinner.children("a").attr("tabIndex", -1).attr("aria-hidden", !0).button({ classes: { "ui-button": "" } }), this._removeClass(this.buttons, "ui-corner-all"), this._addClass(this.buttons.first(), "ui-spinner-button ui-spinner-up"), this._addClass(this.buttons.last(), "ui-spinner-button ui-spinner-down"), this.buttons.first().button({ icon: this.options.icons.up, showLabel: !1 }), this.buttons.last().button({ icon: this.options.icons.down, showLabel: !1 }), this.buttons.height() > Math.ceil(.5 * this.uiSpinner.height()) && 0 < this.uiSpinner.height() && this.uiSpinner.height(this.uiSpinner.height()) }, _keydown: function (t) { var e = this.options, i = x.ui.keyCode; switch (t.keyCode) { case i.UP: return this._repeat(null, 1, t), !0; case i.DOWN: return this._repeat(null, -1, t), !0; case i.PAGE_UP: return this._repeat(null, e.page, t), !0; case i.PAGE_DOWN: return this._repeat(null, -e.page, t), !0 }return !1 }, _start: function (t) { return !(!this.spinning && !1 === this._trigger("start", t)) && (this.counter || (this.counter = 1), this.spinning = !0) }, _repeat: function (t, e, i) { t = t || 500, clearTimeout(this.timer), this.timer = this._delay(function () { this._repeat(40, e, i) }, t), this._spin(e * this.options.step, i) }, _spin: function (t, e) { var i = this.value() || 0; this.counter || (this.counter = 1), i = this._adjustValue(i + t * this._increment(this.counter)), this.spinning && !1 === this._trigger("spin", e, { value: i }) || (this._value(i), this.counter++) }, _increment: function (t) { var e = this.options.incremental; return e ? x.isFunction(e) ? e(t) : Math.floor(t * t * t / 5e4 - t * t / 500 + 17 * t / 200 + 1) : 1 }, _precision: function () { var t = this._precisionOf(this.options.step); return null !== this.options.min && (t = Math.max(t, this._precisionOf(this.options.min))), t }, _precisionOf: function (t) { var e = t.toString(), t = e.indexOf("."); return -1 === t ? 0 : e.length - t - 1 }, _adjustValue: function (t) { var e = this.options, i = null !== e.min ? e.min : 0, n = t - i; return t = i + Math.round(n / e.step) * e.step, t = parseFloat(t.toFixed(this._precision())), null !== e.max && t > e.max ? e.max : null !== e.min && t < e.min ? e.min : t }, _stop: function (t) { this.spinning && (clearTimeout(this.timer), clearTimeout(this.mousewheelTimer), this.counter = 0, this.spinning = !1, this._trigger("stop", t)) }, _setOption: function (t, e) { var i; if ("culture" === t || "numberFormat" === t) return i = this._parse(this.element.val()), this.options[t] = e, void this.element.val(this._format(i)); "max" !== t && "min" !== t && "step" !== t || "string" == typeof e && (e = this._parse(e)), "icons" === t && (i = this.buttons.first().find(".ui-icon"), this._removeClass(i, null, this.options.icons.up), this._addClass(i, null, e.up), i = this.buttons.last().find(".ui-icon"), this._removeClass(i, null, this.options.icons.down), this._addClass(i, null, e.down)), this._super(t, e) }, _setOptionDisabled: function (t) { this._super(t), this._toggleClass(this.uiSpinner, null, "ui-state-disabled", !!t), this.element.prop("disabled", !!t), this.buttons.button(t ? "disable" : "enable") }, _setOptions: rt(function (t) { this._super(t) }), _parse: function (t) { return "string" == typeof t && "" !== t && (t = window.Globalize && this.options.numberFormat ? Globalize.parseFloat(t, 10, this.options.culture) : +t), "" === t || isNaN(t) ? null : t }, _format: function (t) { return "" === t ? "" : window.Globalize && this.options.numberFormat ? Globalize.format(t, this.options.numberFormat, this.options.culture) : t }, _refresh: function () { this.element.attr({ "aria-valuemin": this.options.min, "aria-valuemax": this.options.max, "aria-valuenow": this._parse(this.element.val()) }) }, isValid: function () { var t = this.value(); return null !== t && t === this._adjustValue(t) }, _value: function (t, e) { var i; "" !== t && null !== (i = this._parse(t)) && (e || (i = this._adjustValue(i)), t = this._format(i)), this.element.val(t), this._refresh() }, _destroy: function () { this.element.prop("disabled", !1).removeAttr("autocomplete role aria-valuemin aria-valuemax aria-valuenow"), this.uiSpinner.replaceWith(this.element) }, stepUp: rt(function (t) { this._stepUp(t) }), _stepUp: function (t) { this._start() && (this._spin((t || 1) * this.options.step), this._stop()) }, stepDown: rt(function (t) { this._stepDown(t) }), _stepDown: function (t) { this._start() && (this._spin((t || 1) * -this.options.step), this._stop()) }, pageUp: rt(function (t) { this._stepUp((t || 1) * this.options.page) }), pageDown: rt(function (t) { this._stepDown((t || 1) * this.options.page) }), value: function (t) { if (!arguments.length) return this._parse(this.element.val()); rt(this._value).call(this, t) }, widget: function () { return this.uiSpinner } }), !1 !== x.uiBackCompat && x.widget("ui.spinner", x.ui.spinner, { _enhance: function () { this.uiSpinner = this.element.attr("autocomplete", "off").wrap(this._uiSpinnerHtml()).parent().append(this._buttonHtml()) }, _uiSpinnerHtml: function () { return "<span>" }, _buttonHtml: function () { return "<a></a><a></a>" } }); var at; x.ui.spinner; x.widget("ui.tabs", { version: "1.12.1", delay: 300, options: { active: null, classes: { "ui-tabs": "ui-corner-all", "ui-tabs-nav": "ui-corner-all", "ui-tabs-panel": "ui-corner-bottom", "ui-tabs-tab": "ui-corner-top" }, collapsible: !1, event: "click", heightStyle: "content", hide: null, show: null, activate: null, beforeActivate: null, beforeLoad: null, load: null }, _isLocal: (at = /#.*$/, function (t) { var e = t.href.replace(at, ""), i = location.href.replace(at, ""); try { e = decodeURIComponent(e) } catch (t) { } try { i = decodeURIComponent(i) } catch (t) { } return 1 < t.hash.length && e === i }), _create: function () { var e = this, t = this.options; this.running = !1, this._addClass("ui-tabs", "ui-widget ui-widget-content"), this._toggleClass("ui-tabs-collapsible", null, t.collapsible), this._processTabs(), t.active = this._initialActive(), x.isArray(t.disabled) && (t.disabled = x.unique(t.disabled.concat(x.map(this.tabs.filter(".ui-state-disabled"), function (t) { return e.tabs.index(t) }))).sort()), !1 !== this.options.active && this.anchors.length ? this.active = this._findActive(t.active) : this.active = x(), this._refresh(), this.active.length && this.load(t.active) }, _initialActive: function () { var i = this.options.active, t = this.options.collapsible, n = location.hash.substring(1); return null === i && (n && this.tabs.each(function (t, e) { if (x(e).attr("aria-controls") === n) return i = t, !1 }), null === i && (i = this.tabs.index(this.tabs.filter(".ui-tabs-active"))), null !== i && -1 !== i || (i = !!this.tabs.length && 0)), !1 !== i && -1 === (i = this.tabs.index(this.tabs.eq(i))) && (i = !t && 0), !t && !1 === i && this.anchors.length && (i = 0), i }, _getCreateEventData: function () { return { tab: this.active, panel: this.active.length ? this._getPanelForTab(this.active) : x() } }, _tabKeydown: function (t) { var e = x(x.ui.safeActiveElement(this.document[0])).closest("li"), i = this.tabs.index(e), n = !0; if (!this._handlePageNav(t)) { switch (t.keyCode) { case x.ui.keyCode.RIGHT: case x.ui.keyCode.DOWN: i++; break; case x.ui.keyCode.UP: case x.ui.keyCode.LEFT: n = !1, i--; break; case x.ui.keyCode.END: i = this.anchors.length - 1; break; case x.ui.keyCode.HOME: i = 0; break; case x.ui.keyCode.SPACE: return t.preventDefault(), clearTimeout(this.activating), void this._activate(i); case x.ui.keyCode.ENTER: return t.preventDefault(), clearTimeout(this.activating), void this._activate(i !== this.options.active && i); default: return }t.preventDefault(), clearTimeout(this.activating), i = this._focusNextTab(i, n), t.ctrlKey || t.metaKey || (e.attr("aria-selected", "false"), this.tabs.eq(i).attr("aria-selected", "true"), this.activating = this._delay(function () { this.option("active", i) }, this.delay)) } }, _panelKeydown: function (t) { this._handlePageNav(t) || t.ctrlKey && t.keyCode === x.ui.keyCode.UP && (t.preventDefault(), this.active.trigger("focus")) }, _handlePageNav: function (t) { return t.altKey && t.keyCode === x.ui.keyCode.PAGE_UP ? (this._activate(this._focusNextTab(this.options.active - 1, !1)), !0) : t.altKey && t.keyCode === x.ui.keyCode.PAGE_DOWN ? (this._activate(this._focusNextTab(this.options.active + 1, !0)), !0) : void 0 }, _findNextTab: function (t, e) { var i = this.tabs.length - 1; for (; -1 !== x.inArray((i < t && (t = 0), t < 0 && (t = i), t), this.options.disabled);)t = e ? t + 1 : t - 1; return t }, _focusNextTab: function (t, e) { return t = this._findNextTab(t, e), this.tabs.eq(t).trigger("focus"), t }, _setOption: function (t, e) { "active" !== t ? (this._super(t, e), "collapsible" === t && (this._toggleClass("ui-tabs-collapsible", null, e), e || !1 !== this.options.active || this._activate(0)), "event" === t && this._setupEvents(e), "heightStyle" === t && this._setupHeightStyle(e)) : this._activate(e) }, _sanitizeSelector: function (t) { return t ? t.replace(/[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g, "\\$&") : "" }, refresh: function () { var t = this.options, e = this.tablist.children(":has(a[href])"); t.disabled = x.map(e.filter(".ui-state-disabled"), function (t) { return e.index(t) }), this._processTabs(), !1 !== t.active && this.anchors.length ? this.active.length && !x.contains(this.tablist[0], this.active[0]) ? this.tabs.length === t.disabled.length ? (t.active = !1, this.active = x()) : this._activate(this._findNextTab(Math.max(0, t.active - 1), !1)) : t.active = this.tabs.index(this.active) : (t.active = !1, this.active = x()), this._refresh() }, _refresh: function () { this._setOptionDisabled(this.options.disabled), this._setupEvents(this.options.event), this._setupHeightStyle(this.options.heightStyle), this.tabs.not(this.active).attr({ "aria-selected": "false", "aria-expanded": "false", tabIndex: -1 }), this.panels.not(this._getPanelForTab(this.active)).hide().attr({ "aria-hidden": "true" }), this.active.length ? (this.active.attr({ "aria-selected": "true", "aria-expanded": "true", tabIndex: 0 }), this._addClass(this.active, "ui-tabs-active", "ui-state-active"), this._getPanelForTab(this.active).show().attr({ "aria-hidden": "false" })) : this.tabs.eq(0).attr("tabIndex", 0) }, _processTabs: function () { var l = this, t = this.tabs, e = this.anchors, i = this.panels; this.tablist = this._getList().attr("role", "tablist"), this._addClass(this.tablist, "ui-tabs-nav", "ui-helper-reset ui-helper-clearfix ui-widget-header"), this.tablist.on("mousedown" + this.eventNamespace, "> li", function (t) { x(this).is(".ui-state-disabled") && t.preventDefault() }).on("focus" + this.eventNamespace, ".ui-tabs-anchor", function () { x(this).closest("li").is(".ui-state-disabled") && this.blur() }), this.tabs = this.tablist.find("> li:has(a[href])").attr({ role: "tab", tabIndex: -1 }), this._addClass(this.tabs, "ui-tabs-tab", "ui-state-default"), this.anchors = this.tabs.map(function () { return x("a", this)[0] }).attr({ role: "presentation", tabIndex: -1 }), this._addClass(this.anchors, "ui-tabs-anchor"), this.panels = x(), this.anchors.each(function (t, e) { var i, n, s, o = x(e).uniqueId().attr("id"), r = x(e).closest("li"), a = r.attr("aria-controls"); l._isLocal(e) ? (s = (i = e.hash).substring(1), n = l.element.find(l._sanitizeSelector(i))) : (i = "#" + (s = r.attr("aria-controls") || x({}).uniqueId()[0].id), (n = l.element.find(i)).length || (n = l._createPanel(s)).insertAfter(l.panels[t - 1] || l.tablist), n.attr("aria-live", "polite")), n.length && (l.panels = l.panels.add(n)), a && r.data("ui-tabs-aria-controls", a), r.attr({ "aria-controls": s, "aria-labelledby": o }), n.attr("aria-labelledby", o) }), this.panels.attr("role", "tabpanel"), this._addClass(this.panels, "ui-tabs-panel", "ui-widget-content"), t && (this._off(t.not(this.tabs)), this._off(e.not(this.anchors)), this._off(i.not(this.panels))) }, _getList: function () { return this.tablist || this.element.find("ol, ul").eq(0) }, _createPanel: function (t) { return x("<div>").attr("id", t).data("ui-tabs-destroy", !0) }, _setOptionDisabled: function (t) { var e, i; for (x.isArray(t) && (t.length ? t.length === this.anchors.length && (t = !0) : t = !1), i = 0; e = this.tabs[i]; i++)e = x(e), !0 === t || -1 !== x.inArray(i, t) ? (e.attr("aria-disabled", "true"), this._addClass(e, null, "ui-state-disabled")) : (e.removeAttr("aria-disabled"), this._removeClass(e, null, "ui-state-disabled")); this.options.disabled = t, this._toggleClass(this.widget(), this.widgetFullName + "-disabled", null, !0 === t) }, _setupEvents: function (t) { var i = {}; t && x.each(t.split(" "), function (t, e) { i[e] = "_eventHandler" }), this._off(this.anchors.add(this.tabs).add(this.panels)), this._on(!0, this.anchors, { click: function (t) { t.preventDefault() } }), this._on(this.anchors, i), this._on(this.tabs, { keydown: "_tabKeydown" }), this._on(this.panels, { keydown: "_panelKeydown" }), this._focusable(this.tabs), this._hoverable(this.tabs) }, _setupHeightStyle: function (t) { var i, e = this.element.parent(); "fill" === t ? (i = e.height(), i -= this.element.outerHeight() - this.element.height(), this.element.siblings(":visible").each(function () { var t = x(this), e = t.css("position"); "absolute" !== e && "fixed" !== e && (i -= t.outerHeight(!0)) }), this.element.children().not(this.panels).each(function () { i -= x(this).outerHeight(!0) }), this.panels.each(function () { x(this).height(Math.max(0, i - x(this).innerHeight() + x(this).height())) }).css("overflow", "auto")) : "auto" === t && (i = 0, this.panels.each(function () { i = Math.max(i, x(this).height("").height()) }).height(i)) }, _eventHandler: function (t) { var e = this.options, i = this.active, n = x(t.currentTarget).closest("li"), s = n[0] === i[0], o = s && e.collapsible, r = o ? x() : this._getPanelForTab(n), a = i.length ? this._getPanelForTab(i) : x(), i = { oldTab: i, oldPanel: a, newTab: o ? x() : n, newPanel: r }; t.preventDefault(), n.hasClass("ui-state-disabled") || n.hasClass("ui-tabs-loading") || this.running || s && !e.collapsible || !1 === this._trigger("beforeActivate", t, i) || (e.active = !o && this.tabs.index(n), this.active = s ? x() : n, this.xhr && this.xhr.abort(), a.length || r.length || x.error("jQuery UI Tabs: Mismatching fragment identifier."), r.length && this.load(this.tabs.index(n), t), this._toggle(t, i)) }, _toggle: function (t, e) { var i = this, n = e.newPanel, s = e.oldPanel; function o() { i.running = !1, i._trigger("activate", t, e) } function r() { i._addClass(e.newTab.closest("li"), "ui-tabs-active", "ui-state-active"), n.length && i.options.show ? i._show(n, i.options.show, o) : (n.show(), o()) } this.running = !0, s.length && this.options.hide ? this._hide(s, this.options.hide, function () { i._removeClass(e.oldTab.closest("li"), "ui-tabs-active", "ui-state-active"), r() }) : (this._removeClass(e.oldTab.closest("li"), "ui-tabs-active", "ui-state-active"), s.hide(), r()), s.attr("aria-hidden", "true"), e.oldTab.attr({ "aria-selected": "false", "aria-expanded": "false" }), n.length && s.length ? e.oldTab.attr("tabIndex", -1) : n.length && this.tabs.filter(function () { return 0 === x(this).attr("tabIndex") }).attr("tabIndex", -1), n.attr("aria-hidden", "false"), e.newTab.attr({ "aria-selected": "true", "aria-expanded": "true", tabIndex: 0 }) }, _activate: function (t) { var t = this._findActive(t); t[0] !== this.active[0] && (t.length || (t = this.active), t = t.find(".ui-tabs-anchor")[0], this._eventHandler({ target: t, currentTarget: t, preventDefault: x.noop })) }, _findActive: function (t) { return !1 === t ? x() : this.tabs.eq(t) }, _getIndex: function (t) { return "string" == typeof t && (t = this.anchors.index(this.anchors.filter("[href$='" + x.ui.escapeSelector(t) + "']"))), t }, _destroy: function () { this.xhr && this.xhr.abort(), this.tablist.removeAttr("role").off(this.eventNamespace), this.anchors.removeAttr("role tabIndex").removeUniqueId(), this.tabs.add(this.panels).each(function () { x.data(this, "ui-tabs-destroy") ? x(this).remove() : x(this).removeAttr("role tabIndex aria-live aria-busy aria-selected aria-labelledby aria-hidden aria-expanded") }), this.tabs.each(function () { var t = x(this), e = t.data("ui-tabs-aria-controls"); e ? t.attr("aria-controls", e).removeData("ui-tabs-aria-controls") : t.removeAttr("aria-controls") }), this.panels.show(), "content" !== this.options.heightStyle && this.panels.css("height", "") }, enable: function (i) { var t = this.options.disabled; !1 !== t && (t = void 0 !== i && (i = this._getIndex(i), x.isArray(t) ? x.map(t, function (t) { return t !== i ? t : null }) : x.map(this.tabs, function (t, e) { return e !== i ? e : null })), this._setOptionDisabled(t)) }, disable: function (t) { var e = this.options.disabled; if (!0 !== e) { if (void 0 === t) e = !0; else { if (t = this._getIndex(t), -1 !== x.inArray(t, e)) return; e = x.isArray(e) ? x.merge([t], e).sort() : [t] } this._setOptionDisabled(e) } }, load: function (t, n) { t = this._getIndex(t); function s(t, e) { "abort" === e && o.panels.stop(!1, !0), o._removeClass(i, "ui-tabs-loading"), r.removeAttr("aria-busy"), t === o.xhr && delete o.xhr } var o = this, i = this.tabs.eq(t), t = i.find(".ui-tabs-anchor"), r = this._getPanelForTab(i), a = { tab: i, panel: r }; this._isLocal(t[0]) || (this.xhr = x.ajax(this._ajaxSettings(t, n, a)), this.xhr && "canceled" !== this.xhr.statusText && (this._addClass(i, "ui-tabs-loading"), r.attr("aria-busy", "true"), this.xhr.done(function (t, e, i) { setTimeout(function () { r.html(t), o._trigger("load", n, a), s(i, e) }, 1) }).fail(function (t, e) { setTimeout(function () { s(t, e) }, 1) }))) }, _ajaxSettings: function (t, i, n) { var s = this; return { url: t.attr("href").replace(/#.*$/, ""), beforeSend: function (t, e) { return s._trigger("beforeLoad", i, x.extend({ jqXHR: t, ajaxSettings: e }, n)) } } }, _getPanelForTab: function (t) { t = x(t).attr("aria-controls"); return this.element.find(this._sanitizeSelector("#" + t)) } }), !1 !== x.uiBackCompat && x.widget("ui.tabs", x.ui.tabs, { _processTabs: function () { this._superApply(arguments), this._addClass(this.tabs, "ui-tab") } }); x.ui.tabs; x.widget("ui.tooltip", { version: "1.12.1", options: { classes: { "ui-tooltip": "ui-corner-all ui-widget-shadow" }, content: function () { var t = x(this).attr("title") || ""; return x("<a>").text(t).html() }, hide: !0, items: "[title]:not([disabled])", position: { my: "left top+15", at: "left bottom", collision: "flipfit flip" }, show: !0, track: !1, close: null, open: null }, _addDescribedBy: function (t, e) { var i = (t.attr("aria-describedby") || "").split(/\s+/); i.push(e), t.data("ui-tooltip-id", e).attr("aria-describedby", x.trim(i.join(" "))) }, _removeDescribedBy: function (t) { var e = t.data("ui-tooltip-id"), i = (t.attr("aria-describedby") || "").split(/\s+/), e = x.inArray(e, i); -1 !== e && i.splice(e, 1), t.removeData("ui-tooltip-id"), (i = x.trim(i.join(" "))) ? t.attr("aria-describedby", i) : t.removeAttr("aria-describedby") }, _create: function () { this._on({ mouseover: "open", focusin: "open" }), this.tooltips = {}, this.parents = {}, this.liveRegion = x("<div>").attr({ role: "log", "aria-live": "assertive", "aria-relevant": "additions" }).appendTo(this.document[0].body), this._addClass(this.liveRegion, null, "ui-helper-hidden-accessible"), this.disabledTitles = x([]) }, _setOption: function (t, e) { var i = this; this._super(t, e), "content" === t && x.each(this.tooltips, function (t, e) { i._updateContent(e.element) }) }, _setOptionDisabled: function (t) { this[t ? "_disable" : "_enable"]() }, _disable: function () { var n = this; x.each(this.tooltips, function (t, e) { var i = x.Event("blur"); i.target = i.currentTarget = e.element[0], n.close(i, !0) }), this.disabledTitles = this.disabledTitles.add(this.element.find(this.options.items).addBack().filter(function () { var t = x(this); if (t.is("[title]")) return t.data("ui-tooltip-title", t.attr("title")).removeAttr("title") })) }, _enable: function () { this.disabledTitles.each(function () { var t = x(this); t.data("ui-tooltip-title") && t.attr("title", t.data("ui-tooltip-title")) }), this.disabledTitles = x([]) }, open: function (t) { var i = this, e = x(t ? t.target : this.element).closest(this.options.items); e.length && !e.data("ui-tooltip-id") && (e.attr("title") && e.data("ui-tooltip-title", e.attr("title")), e.data("ui-tooltip-open", !0), t && "mouseover" === t.type && e.parents().each(function () { var t, e = x(this); e.data("ui-tooltip-open") && ((t = x.Event("blur")).target = t.currentTarget = this, i.close(t, !0)), e.attr("title") && (e.uniqueId(), i.parents[this.id] = { element: this, title: e.attr("title") }, e.attr("title", "")) }), this._registerCloseHandlers(t, e), this._updateContent(e, t)) }, _updateContent: function (e, i) { var t = this.options.content, n = this, s = i ? i.type : null; if ("string" == typeof t || t.nodeType || t.jquery) return this._open(i, e, t); (t = t.call(e[0], function (t) { n._delay(function () { e.data("ui-tooltip-open") && (i && (i.type = s), this._open(i, e, t)) }) })) && this._open(i, e, t) }, _open: function (t, e, i) { var n, s, o, r = x.extend({}, this.options.position); function a(t) { r.of = t, s.is(":hidden") || s.position(r) } i && ((n = this._find(e)) ? n.tooltip.find(".ui-tooltip-content").html(i) : (e.is("[title]") && (t && "mouseover" === t.type ? e.attr("title", "") : e.removeAttr("title")), n = this._tooltip(e), s = n.tooltip, this._addDescribedBy(e, s.attr("id")), s.find(".ui-tooltip-content").html(i), this.liveRegion.children().hide(), (i = x("<div>").html(s.find(".ui-tooltip-content").html())).removeAttr("name").find("[name]").removeAttr("name"), i.removeAttr("id").find("[id]").removeAttr("id"), i.appendTo(this.liveRegion), this.options.track && t && /^mouse/.test(t.type) ? (this._on(this.document, { mousemove: a }), a(t)) : s.position(x.extend({ of: e }, this.options.position)), s.hide(), this._show(s, this.options.show), this.options.track && this.options.show && this.options.show.delay && (o = this.delayedShow = setInterval(function () { s.is(":visible") && (a(r.of), clearInterval(o)) }, x.fx.interval)), this._trigger("open", t, { tooltip: s }))) }, _registerCloseHandlers: function (t, e) { var i = { keyup: function (t) { t.keyCode === x.ui.keyCode.ESCAPE && ((t = x.Event(t)).currentTarget = e[0], this.close(t, !0)) } }; e[0] !== this.element[0] && (i.remove = function () { this._removeTooltip(this._find(e).tooltip) }), t && "mouseover" !== t.type || (i.mouseleave = "close"), t && "focusin" !== t.type || (i.focusout = "close"), this._on(!0, e, i) }, close: function (t) { var e, i = this, n = x(t ? t.currentTarget : this.element), s = this._find(n); s ? (e = s.tooltip, s.closing || (clearInterval(this.delayedShow), n.data("ui-tooltip-title") && !n.attr("title") && n.attr("title", n.data("ui-tooltip-title")), this._removeDescribedBy(n), s.hiding = !0, e.stop(!0), this._hide(e, this.options.hide, function () { i._removeTooltip(x(this)) }), n.removeData("ui-tooltip-open"), this._off(n, "mouseleave focusout keyup"), n[0] !== this.element[0] && this._off(n, "remove"), this._off(this.document, "mousemove"), t && "mouseleave" === t.type && x.each(this.parents, function (t, e) { x(e.element).attr("title", e.title), delete i.parents[t] }), s.closing = !0, this._trigger("close", t, { tooltip: e }), s.hiding || (s.closing = !1))) : n.removeData("ui-tooltip-open") }, _tooltip: function (t) { var e = x("<div>").attr("role", "tooltip"), i = x("<div>").appendTo(e), n = e.uniqueId().attr("id"); return this._addClass(i, "ui-tooltip-content"), this._addClass(e, "ui-tooltip", "ui-widget ui-widget-content"), e.appendTo(this._appendTo(t)), this.tooltips[n] = { element: t, tooltip: e } }, _find: function (t) { t = t.data("ui-tooltip-id"); return t ? this.tooltips[t] : null }, _removeTooltip: function (t) { t.remove(), delete this.tooltips[t.attr("id")] }, _appendTo: function (t) { t = t.closest(".ui-front, dialog"); return t.length || (t = this.document[0].body), t }, _destroy: function () { var n = this; x.each(this.tooltips, function (t, e) { var i = x.Event("blur"), e = e.element; i.target = i.currentTarget = e[0], n.close(i, !0), x("#" + t).remove(), e.data("ui-tooltip-title") && (e.attr("title") || e.attr("title", e.data("ui-tooltip-title")), e.removeData("ui-tooltip-title")) }), this.liveRegion.remove() } }), !1 !== x.uiBackCompat && x.widget("ui.tooltip", x.ui.tooltip, { options: { tooltipClass: null }, _tooltip: function () { var t = this._superApply(arguments); return this.options.tooltipClass && t.tooltip.addClass(this.options.tooltipClass), t } }); x.ui.tooltip }), function () { "use strict"; var h, t, e, n, i, s = function (t, e, i) { return e && o(t.prototype, e), i && o(t, i), t }; function o(t, e) { for (var i = 0; i < e.length; i++) { var n = e[i]; n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(t, n.key, n) } } function r(t, e) { var i = this; (function (t) { if (!(t instanceof r)) throw new TypeError("Cannot call a class as a function") })(this), this._config = h.extend({}, n, e), this._$modalArrows = null, this._galleryIndex = 0, this._galleryName = null, this._padding = null, this._border = null, this._titleIsShown = !1, this._footerIsShown = !1, this._wantedWidth = 0, this._wantedHeight = 0, this._touchstartX = 0, this._touchendX = 0, this._modalId = "ekkoLightbox-" + Math.floor(1e3 * Math.random() + 1), this._$element = t instanceof jQuery ? t : h(t), this._isBootstrap3 = 3 == h.fn.modal.Constructor.VERSION[0]; e = '<h4 class="modal-title">' + (this._config.title || "&nbsp;") + "</h4>", t = '<button type="button" class="close" data-dismiss="modal" aria-label="' + this._config.strings.close + '"><span aria-hidden="true">&times;</span></button>', t = '<div class="modal-dialog" role="document"><div class="modal-content">' + ('<div class="modal-header' + (this._config.title || this._config.alwaysShowClose ? "" : " hide") + '">' + (this._isBootstrap3 ? t + e : e + t) + "</div>") + '<div class="modal-body"><div class="ekko-lightbox-container"><div class="ekko-lightbox-item fade in show"></div><div class="ekko-lightbox-item fade"></div></div></div>' + ('<div class="modal-footer' + (this._config.footer ? "" : " hide") + '">' + (this._config.footer || "&nbsp;") + "</div>") + "</div></div>"; h(this._config.doc.body).append('<div id="' + this._modalId + '" class="ekko-lightbox modal fade" tabindex="-1" tabindex="-1" role="dialog" aria-hidden="true">' + t + "</div>"), this._$modal = h("#" + this._modalId, this._config.doc), this._$modalDialog = this._$modal.find(".modal-dialog").first(), this._$modalContent = this._$modal.find(".modal-content").first(), this._$modalBody = this._$modal.find(".modal-body").first(), this._$modalHeader = this._$modal.find(".modal-header").first(), this._$modalFooter = this._$modal.find(".modal-footer").first(), this._$lightboxContainer = this._$modalBody.find(".ekko-lightbox-container").first(), this._$lightboxBodyOne = this._$lightboxContainer.find("> div:first-child").first(), this._$lightboxBodyTwo = this._$lightboxContainer.find("> div:last-child").first(), this._border = this._calculateBorders(), this._padding = this._calculatePadding(), this._galleryName = this._$element.data("gallery"), this._galleryName && (this._$galleryItems = h(document.body).find('*[data-gallery="' + this._galleryName + '"]'), this._galleryIndex = this._$galleryItems.index(this._$element), h(document).on("keydown.ekkoLightbox", this._navigationalBinder.bind(this)), this._config.showArrows && 1 < this._$galleryItems.length && (this._$lightboxContainer.append('<div class="ekko-lightbox-nav-overlay"><a href="#">' + this._config.leftArrow + '</a><a href="#">' + this._config.rightArrow + "</a></div>"), this._$modalArrows = this._$lightboxContainer.find("div.ekko-lightbox-nav-overlay").first(), this._$lightboxContainer.on("click", "a:first-child", function (t) { return t.preventDefault(), i.navigateLeft() }), this._$lightboxContainer.on("click", "a:last-child", function (t) { return t.preventDefault(), i.navigateRight() }), this.updateNavigation())), this._$modal.on("show.bs.modal", this._config.onShow.bind(this)).on("shown.bs.modal", function () { return i._toggleLoading(!0), i._handle(), i._config.onShown.call(i) }).on("hide.bs.modal", this._config.onHide.bind(this)).on("hidden.bs.modal", function () { return i._galleryName && (h(document).off("keydown.ekkoLightbox"), h(window).off("resize.ekkoLightbox")), i._$modal.remove(), i._config.onHidden.call(i) }).modal(this._config), h(window).on("resize.ekkoLightbox", function () { i._resize(i._wantedWidth, i._wantedHeight) }), this._$lightboxContainer.on("touchstart", function () { i._touchstartX = event.changedTouches[0].screenX }).on("touchend", function () { i._touchendX = event.changedTouches[0].screenX, i._swipeGesure() }) } h = jQuery, t = "ekkoLightbox", e = h.fn[t], n = { title: "", footer: "", maxWidth: 9999, maxHeight: 9999, showArrows: !0, wrapping: !0, type: null, alwaysShowClose: !1, loadingMessage: '<div class="ekko-lightbox-loader"><div><div></div><div></div></div></div>', leftArrow: "<span>&#10094;</span>", rightArrow: "<span>&#10095;</span>", strings: { close: "Close", fail: "Failed to load image:", type: "Could not detect remote target type. Force the type using data-type" }, doc: document, onShow: function () { }, onShown: function () { }, onHide: function () { }, onHidden: function () { }, onNavigate: function () { }, onContentLoaded: function () { } }, s(r, null, [{ key: "Default", get: function () { return n } }]), s(r, [{ key: "element", value: function () { return this._$element } }, { key: "modal", value: function () { return this._$modal } }, { key: "navigateTo", value: function (t) { return t < 0 || t > this._$galleryItems.length - 1 ? this : (this._galleryIndex = t, this.updateNavigation(), this._$element = h(this._$galleryItems.get(this._galleryIndex)), void this._handle()) } }, { key: "navigateLeft", value: function () { if (this._$galleryItems && 1 !== this._$galleryItems.length) { if (0 === this._galleryIndex) { if (!this._config.wrapping) return; this._galleryIndex = this._$galleryItems.length - 1 } else this._galleryIndex--; return this._config.onNavigate.call(this, "left", this._galleryIndex), this.navigateTo(this._galleryIndex) } } }, { key: "navigateRight", value: function () { if (this._$galleryItems && 1 !== this._$galleryItems.length) { if (this._galleryIndex === this._$galleryItems.length - 1) { if (!this._config.wrapping) return; this._galleryIndex = 0 } else this._galleryIndex++; return this._config.onNavigate.call(this, "right", this._galleryIndex), this.navigateTo(this._galleryIndex) } } }, { key: "updateNavigation", value: function () { var t; this._config.wrapping || (t = this._$lightboxContainer.find("div.ekko-lightbox-nav-overlay"), 0 === this._galleryIndex ? t.find("a:first-child").addClass("disabled") : t.find("a:first-child").removeClass("disabled"), this._galleryIndex === this._$galleryItems.length - 1 ? t.find("a:last-child").addClass("disabled") : t.find("a:last-child").removeClass("disabled")) } }, { key: "close", value: function () { return this._$modal.modal("hide") } }, { key: "_navigationalBinder", value: function (t) { return 39 === (t = t || window.event).keyCode ? this.navigateRight() : 37 === t.keyCode ? this.navigateLeft() : void 0 } }, { key: "_detectRemoteType", value: function (t, e) { return !(e = e || !1) && this._isImage(t) && (e = "image"), !e && this._getYoutubeId(t) && (e = "youtube"), !e && this._getVimeoId(t) && (e = "vimeo"), !e && this._getInstagramId(t) && (e = "instagram"), (!e || ["image", "youtube", "vimeo", "instagram", "video", "url"].indexOf(e) < 0) && (e = "url"), e } }, { key: "_isImage", value: function (t) { return t && t.match(/(^data:image\/.*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg)((\?|#).*)?$)/i) } }, { key: "_containerToUse", value: function () { var t = this, e = this._$lightboxBodyTwo, i = this._$lightboxBodyOne; return this._$lightboxBodyTwo.hasClass("in") && (e = this._$lightboxBodyOne, i = this._$lightboxBodyTwo), i.removeClass("in show"), setTimeout(function () { t._$lightboxBodyTwo.hasClass("in") || t._$lightboxBodyTwo.empty(), t._$lightboxBodyOne.hasClass("in") || t._$lightboxBodyOne.empty() }, 500), e.addClass("in show"), e } }, { key: "_handle", value: function () { var t = this._containerToUse(); this._updateTitleAndFooter(); var e = this._$element.attr("data-remote") || this._$element.attr("href"), i = this._detectRemoteType(e, this._$element.attr("data-type") || !1); if (["image", "youtube", "vimeo", "instagram", "video", "url"].indexOf(i) < 0) return this._error(this._config.strings.type); switch (i) { case "image": this._preloadImage(e, t), this._preloadImageByIndex(this._galleryIndex, 3); break; case "youtube": this._showYoutubeVideo(e, t); break; case "vimeo": this._showVimeoVideo(this._getVimeoId(e), t); break; case "instagram": this._showInstagramVideo(this._getInstagramId(e), t); break; case "video": this._showHtml5Video(e, t); break; default: this._loadRemoteContent(e, t) }return this } }, { key: "_getYoutubeId", value: function (t) { if (!t) return !1; t = t.match(/^.*(youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=|\&v=)([^#\&\?]*).*/); return !(!t || 11 !== t[2].length) && t[2] } }, { key: "_getVimeoId", value: function (t) { return !!(t && 0 < t.indexOf("vimeo")) && t } }, { key: "_getInstagramId", value: function (t) { return !!(t && 0 < t.indexOf("instagram")) && t } }, { key: "_toggleLoading", value: function (t) { return (t = t || !1) ? (this._$modalDialog.css("display", "none"), this._$modal.removeClass("in show"), h(".modal-backdrop").append(this._config.loadingMessage)) : (this._$modalDialog.css("display", "block"), this._$modal.addClass("in show"), h(".modal-backdrop").find(".ekko-lightbox-loader").remove()), this } }, { key: "_calculateBorders", value: function () { return { top: this._totalCssByAttribute("border-top-width"), right: this._totalCssByAttribute("border-right-width"), bottom: this._totalCssByAttribute("border-bottom-width"), left: this._totalCssByAttribute("border-left-width") } } }, { key: "_calculatePadding", value: function () { return { top: this._totalCssByAttribute("padding-top"), right: this._totalCssByAttribute("padding-right"), bottom: this._totalCssByAttribute("padding-bottom"), left: this._totalCssByAttribute("padding-left") } } }, { key: "_totalCssByAttribute", value: function (t) { return parseInt(this._$modalDialog.css(t), 10) + parseInt(this._$modalContent.css(t), 10) + parseInt(this._$modalBody.css(t), 10) } }, { key: "_updateTitleAndFooter", value: function () { var t = this._$element.data("title") || "", e = this._$element.data("footer") || ""; return this._titleIsShown = !1, t || this._config.alwaysShowClose ? (this._titleIsShown = !0, this._$modalHeader.css("display", "").find(".modal-title").html(t || "&nbsp;")) : this._$modalHeader.css("display", "none"), this._footerIsShown = !1, e ? (this._footerIsShown = !0, this._$modalFooter.css("display", "").html(e)) : this._$modalFooter.css("display", "none"), this } }, { key: "_showYoutubeVideo", value: function (t, e) { var i = this._getYoutubeId(t), n = 0 < t.indexOf("&") ? t.substr(t.indexOf("&")) : "", s = this._$element.data("width") || 560, t = this._$element.data("height") || s / (560 / 315); return this._showVideoIframe("//www.youtube.com/embed/" + i + "?badge=0&autoplay=1&html5=1" + n, s, t, e) } }, { key: "_showVimeoVideo", value: function (t, e) { var i = this._$element.data("width") || 500, n = this._$element.data("height") || i / (560 / 315); return this._showVideoIframe(t + "?autoplay=1", i, n, e) } }, { key: "_showInstagramVideo", value: function (t, e) { var i = this._$element.data("width") || 612, n = i + 80; return t = "/" !== t.substr(-1) ? t + "/" : t, e.html('<iframe width="' + i + '" height="' + n + '" src="' + t + 'embed/" frameborder="0" allowfullscreen></iframe>'), this._resize(i, n), this._config.onContentLoaded.call(this), this._$modalArrows && this._$modalArrows.css("display", "none"), this._toggleLoading(!1), this } }, { key: "_showVideoIframe", value: function (t, e, i, n) { return i = i || e, n.html('<div class="embed-responsive embed-responsive-16by9"><iframe width="' + e + '" height="' + i + '" src="' + t + '" frameborder="0" allowfullscreen class="embed-responsive-item"></iframe></div>'), this._resize(e, i), this._config.onContentLoaded.call(this), this._$modalArrows && this._$modalArrows.css("display", "none"), this._toggleLoading(!1), this } }, { key: "_showHtml5Video", value: function (t, e) { var i = this._$element.data("width") || 560, n = this._$element.data("height") || i / (560 / 315); return e.html('<div class="embed-responsive embed-responsive-16by9"><video width="' + i + '" height="' + n + '" src="' + t + '" preload="auto" autoplay controls class="embed-responsive-item"></video></div>'), this._resize(i, n), this._config.onContentLoaded.call(this), this._$modalArrows && this._$modalArrows.css("display", "none"), this._toggleLoading(!1), this } }, { key: "_loadRemoteContent", value: function (t, e) { var i = this, n = this._$element.data("width") || 560, s = this._$element.data("height") || 560, o = this._$element.data("disableExternalCheck") || !1; return this._toggleLoading(!1), o || this._isExternal(t) ? (e.html('<iframe src="' + t + '" frameborder="0" allowfullscreen></iframe>'), this._config.onContentLoaded.call(this)) : e.load(t, h.proxy(function () { return i._$element.trigger("loaded.bs.modal") })), this._$modalArrows && this._$modalArrows.css("display", "none"), this._resize(n, s), this } }, { key: "_isExternal", value: function (t) { t = t.match(/^([^:\/?#]+:)?(?:\/\/([^\/?#]*))?([^?#]+)?(\?[^#]*)?(#.*)?/); return "string" == typeof t[1] && 0 < t[1].length && t[1].toLowerCase() !== location.protocol || "string" == typeof t[2] && 0 < t[2].length && t[2].replace(new RegExp(":(" + { "http:": 80, "https:": 443 }[location.protocol] + ")?$"), "") !== location.host } }, { key: "_error", value: function (t) { return console.error(t), this._containerToUse().html(t), this._resize(300, 300), this } }, { key: "_preloadImageByIndex", value: function (t, e) { if (this._$galleryItems) { var i = h(this._$galleryItems.get(t), !1); if (void 0 !== i) { var n = i.attr("data-remote") || i.attr("href"); return "image" !== i.attr("data-type") && !this._isImage(n) || this._preloadImage(n, !1), 0 < e ? this._preloadImageByIndex(t + 1, e - 1) : void 0 } } } }, { key: "_preloadImage", value: function (t, e) { var i = this; e = e || !1; var n, s = new Image; return e && (n = setTimeout(function () { e.append(i._config.loadingMessage) }, 200), s.onload = function () { n && clearTimeout(n), n = null; var t = h("<img />"); return t.attr("src", s.src), t.addClass("img-fluid"), t.css("width", "100%"), e.html(t), i._$modalArrows && i._$modalArrows.css("display", ""), i._resize(s.width, s.height), i._toggleLoading(!1), i._config.onContentLoaded.call(i) }, s.onerror = function () { return i._toggleLoading(!1), i._error(i._config.strings.fail + "  " + t) }), s.src = t, s } }, { key: "_swipeGesure", value: function () { return this._touchendX < this._touchstartX ? this.navigateRight() : this._touchendX > this._touchstartX ? this.navigateLeft() : void 0 } }, { key: "_resize", value: function (t, e) { e = e || t; var i = (this._wantedWidth = t) / (this._wantedHeight = e), n = this._padding.left + this._padding.right + this._border.left + this._border.right, s = 575 < this._config.doc.body.clientWidth ? 20 : 0, o = 575 < this._config.doc.body.clientWidth ? 0 : 20, r = Math.min(t + n, this._config.doc.body.clientWidth - s, this._config.maxWidth); r < t + n ? (e = (r - n - o) / i, t = r) : t += n; var a = 0, s = 0; this._footerIsShown && (s = this._$modalFooter.outerHeight(!0) || 55), this._titleIsShown && (a = this._$modalHeader.outerHeight(!0) || 67); o = this._padding.top + this._padding.bottom + this._border.bottom + this._border.top, r = parseFloat(this._$modalDialog.css("margin-top")) + parseFloat(this._$modalDialog.css("margin-bottom")), s = Math.min(e, h(window).height() - o - r - a - s, this._config.maxHeight - o - a - s); s < e && (t = Math.ceil(s * i) + n), this._$lightboxContainer.css("height", s), this._$modalDialog.css("flex", 1).css("maxWidth", t); var l = this._$modal.data("bs.modal"); if (l) try { l._handleUpdate() } catch (t) { l.handleUpdate() } return this } }], [{ key: "_jQueryInterface", value: function (e) { var i = this; return e = e || {}, this.each(function () { var t = h(i), t = h.extend({}, r.Default, t.data(), "object" == typeof e && e); new r(i, t) }) } }]), i = r, h.fn[t] = i._jQueryInterface, h.fn[t].Constructor = i, h.fn[t].noConflict = function () { return h.fn[t] = e, i._jQueryInterface } }(jQuery);

Youez - 2016 - github.com/yon3zu
LinuXploit