Файл: 3020.ru/js/jquery.bundle.js
Строк: 31118
<?php
/*! jQuery v3.3.1 | (c) JS Foundation and other contributors | jquery.org/license */ ! function(e, t) {
"use strict";
"object" == typeof module && "object" == typeof module.exports ? module.exports = e.document ? t(e, !0) : function(e) {
if (!e.document) throw new Error("jQuery requires a window with a document");
return t(e)
} : t(e)
}("undefined" != typeof window ? window : this, function(e, t) {
"use strict";
var n = [],
r = e.document,
i = Object.getPrototypeOf,
o = n.slice,
a = n.concat,
s = n.push,
u = n.indexOf,
l = {},
c = l.toString,
f = l.hasOwnProperty,
p = f.toString,
d = p.call(Object),
h = {},
g = function e(t) {
return "function" == typeof t && "number" != typeof t.nodeType
},
y = function e(t) {
return null != t && t === t.window
},
v = {
type: !0,
src: !0,
noModule: !0
};
function m(e, t, n) {
var i, o = (t = t || r).createElement("script");
if (o.text = e, n)
for (i in v) n[i] && (o[i] = n[i]);
t.head.appendChild(o).parentNode.removeChild(o)
}
function x(e) {
return null == e ? e + "" : "object" == typeof e || "function" == typeof e ? l[c.call(e)] || "object" : typeof e
}
var b = "3.3.1",
w = function(e, t) {
return new w.fn.init(e, t)
},
T = /^[suFEFFxA0]+|[suFEFFxA0]+$/g;
w.fn = w.prototype = {
jquery: "3.3.1",
constructor: w,
length: 0,
toArray: function() {
return o.call(this)
},
get: function(e) {
return null == e ? o.call(this) : e < 0 ? this[e + this.length] : this[e]
},
pushStack: function(e) {
var t = w.merge(this.constructor(), e);
return t.prevObject = this, t
},
each: function(e) {
return w.each(this, e)
},
map: function(e) {
return this.pushStack(w.map(this, function(t, n) {
return e.call(t, n, t)
}))
},
slice: function() {
return this.pushStack(o.apply(this, arguments))
},
first: function() {
return this.eq(0)
},
last: function() {
return this.eq(-1)
},
eq: function(e) {
var t = this.length,
n = +e + (e < 0 ? t : 0);
return this.pushStack(n >= 0 && n < t ? [this[n]] : [])
},
end: function() {
return this.prevObject || this.constructor()
},
push: s,
sort: n.sort,
splice: n.splice
}, w.extend = w.fn.extend = function() {
var e, t, n, r, i, o, a = arguments[0] || {},
s = 1,
u = arguments.length,
l = !1;
for ("boolean" == typeof a && (l = a, a = arguments[s] || {}, s++), "object" == typeof a || g(a) || (a = {}), s === u && (a = this, s--); s < u; s++)
if (null != (e = arguments[s]))
for (t in e) n = a[t], a !== (r = e[t]) && (l && r && (w.isPlainObject(r) || (i = Array.isArray(r))) ? (i ? (i = !1, o = n && Array.isArray(n) ? n : []) : o = n && w.isPlainObject(n) ? n : {}, a[t] = w.extend(l, o, r)) : void 0 !== r && (a[t] = r));
return a
}, w.extend({
expando: "jQuery" + ("3.3.1" + Math.random()).replace(/D/g, ""),
isReady: !0,
error: function(e) {
throw new Error(e)
},
noop: function() {},
isPlainObject: function(e) {
var t, n;
return !(!e || "[object Object]" !== c.call(e)) && (!(t = i(e)) || "function" == typeof(n = f.call(t, "constructor") && t.constructor) && p.call(n) === d)
},
isEmptyObject: function(e) {
var t;
for (t in e) return !1;
return !0
},
globalEval: function(e) {
m(e)
},
each: function(e, t) {
var n, r = 0;
if (C(e)) {
for (n = e.length; r < n; r++)
if (!1 === t.call(e[r], r, e[r])) break
} else
for (r in e)
if (!1 === t.call(e[r], r, e[r])) break;
return e
},
trim: function(e) {
return null == e ? "" : (e + "").replace(T, "")
},
makeArray: function(e, t) {
var n = t || [];
return null != e && (C(Object(e)) ? w.merge(n, "string" == typeof e ? [e] : e) : s.call(n, e)), n
},
inArray: function(e, t, n) {
return null == t ? -1 : u.call(t, e, n)
},
merge: function(e, t) {
for (var n = +t.length, r = 0, i = e.length; r < n; r++) e[i++] = t[r];
return e.length = i, e
},
grep: function(e, t, n) {
for (var r, i = [], o = 0, a = e.length, s = !n; o < a; o++)(r = !t(e[o], o)) !== s && i.push(e[o]);
return i
},
map: function(e, t, n) {
var r, i, o = 0,
s = [];
if (C(e))
for (r = e.length; o < r; o++) null != (i = t(e[o], o, n)) && s.push(i);
else
for (o in e) null != (i = t(e[o], o, n)) && s.push(i);
return a.apply([], s)
},
guid: 1,
support: h
}), "function" == typeof Symbol && (w.fn[Symbol.iterator] = n[Symbol.iterator]), w.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), function(e, t) {
l["[object " + t + "]"] = t.toLowerCase()
});
function C(e) {
var t = !!e && "length" in e && e.length,
n = x(e);
return !g(e) && !y(e) && ("array" === n || 0 === t || "number" == typeof t && t > 0 && t - 1 in e)
}
var E = function(e) {
var t, n, r, i, o, a, s, u, l, c, f, p, d, h, g, y, v, m, x, b = "sizzle" + 1 * new Date,
w = e.document,
T = 0,
C = 0,
E = ae(),
k = ae(),
S = ae(),
D = function(e, t) {
return e === t && (f = !0), 0
},
N = {}.hasOwnProperty,
A = [],
j = A.pop,
q = A.push,
L = A.push,
H = A.slice,
O = function(e, t) {
for (var n = 0, r = e.length; n < r; n++)
if (e[n] === t) return n;
return -1
},
P = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
M = "[\x20\t\r\n\f]",
R = "(?:\\.|[\w-]|[^ -\xa0])+",
I = "\[" + M + "*(" + R + ")(?:" + M + "*([*^$|!~]?=)" + M + "*(?:'((?:\\.|[^\\'])*)'|"((?:\\.|[^\\"])*)"|(" + R + "))|)" + M + "*\]",
W = ":(" + R + ")(?:\((('((?:\\.|[^\\'])*)'|"((?:\\.|[^\\"])*)")|((?:\\.|[^\\()[\]]|" + I + ")*)|.*)\)|)",
$ = new RegExp(M + "+", "g"),
B = new RegExp("^" + M + "+|((?:^|[^\\])(?:\\.)*)" + M + "+$", "g"),
F = new RegExp("^" + M + "*," + M + "*"),
_ = new RegExp("^" + M + "*([>+~]|" + M + ")" + M + "*"),
z = new RegExp("=" + M + "*([^\]'"]*?)" + M + "*\]", "g"),
X = new RegExp(W),
U = new RegExp("^" + R + "$"),
V = {
ID: new RegExp("^#(" + R + ")"),
CLASS: new RegExp("^\.(" + R + ")"),
TAG: new RegExp("^(" + R + "|[*])"),
ATTR: new RegExp("^" + I),
PSEUDO: new RegExp("^" + W),
CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\(" + M + "*(even|odd|(([+-]|)(\d*)n|)" + M + "*(?:([+-]|)" + M + "*(\d+)|))" + M + "*\)|)", "i"),
bool: new RegExp("^(?:" + P + ")$", "i"),
needsContext: new RegExp("^" + M + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\(" + M + "*((?:-\d)?\d*)" + M + "*\)|)(?=[^-]|$)", "i")
},
G = /^(?:input|select|textarea|button)$/i,
Y = /^hd$/i,
Q = /^[^{]+{s*[native w/,
J = /^(?:#([w-]+)|(w+)|.([w-]+))$/,
K = /[+~]/,
Z = new RegExp("\\([\da-f]{1,6}" + M + "?|(" + M + ")|.)", "ig"),
ee = function(e, t, n) {
var r = "0x" + t - 65536;
return r !== r || n ? t : r < 0 ? String.fromCharCode(r + 65536) : String.fromCharCode(r >> 10 | 55296, 1023 & r | 56320)
},
te = /([ -x1fx7f]|^-?d)|^-$|[^ -x1fx7f-uFFFFw-]/g,
ne = function(e, t) {
return t ? " " === e ? "ufffd" : e.slice(0, -1) + "\" + e.charCodeAt(e.length - 1).toString(16) + " " : "\" + e
},
re = function() {
p()
},
ie = me(function(e) {
return !0 === e.disabled && ("form" in e || "label" in e)
}, {
dir: "parentNode",
next: "legend"
});
try {
L.apply(A = H.call(w.childNodes), w.childNodes), A[w.childNodes.length].nodeType
} catch (e) {
L = {
apply: A.length ? function(e, t) {
q.apply(e, H.call(t))
} : function(e, t) {
var n = e.length,
r = 0;
while (e[n++] = t[r++]);
e.length = n - 1
}
}
}
function oe(e, t, r, i) {
var o, s, l, c, f, h, v, m = t && t.ownerDocument,
T = t ? t.nodeType : 9;
if (r = r || [], "string" != typeof e || !e || 1 !== T && 9 !== T && 11 !== T) return r;
if (!i && ((t ? t.ownerDocument || t : w) !== d && p(t), t = t || d, g)) {
if (11 !== T && (f = J.exec(e)))
if (o = f[1]) {
if (9 === T) {
if (!(l = t.getElementById(o))) return r;
if (l.id === o) return r.push(l), r
} else if (m && (l = m.getElementById(o)) && x(t, l) && l.id === o) return r.push(l), r
} else {
if (f[2]) return L.apply(r, t.getElementsByTagName(e)), r;
if ((o = f[3]) && n.getElementsByClassName && t.getElementsByClassName) return L.apply(r, t.getElementsByClassName(o)), r
} if (n.qsa && !S[e + " "] && (!y || !y.test(e))) {
if (1 !== T) m = t, v = e;
else if ("object" !== t.nodeName.toLowerCase()) {
(c = t.getAttribute("id")) ? c = c.replace(te, ne): t.setAttribute("id", c = b), s = (h = a(e)).length;
while (s--) h[s] = "#" + c + " " + ve(h[s]);
v = h.join(","), m = K.test(e) && ge(t.parentNode) || t
}
if (v) try {
return L.apply(r, m.querySelectorAll(v)), r
} catch (e) {} finally {
c === b && t.removeAttribute("id")
}
}
}
return u(e.replace(B, "$1"), t, r, i)
}
function ae() {
var e = [];
function t(n, i) {
return e.push(n + " ") > r.cacheLength && delete t[e.shift()], t[n + " "] = i
}
return t
}
function se(e) {
return e[b] = !0, e
}
function ue(e) {
var t = d.createElement("fieldset");
try {
return !!e(t)
} catch (e) {
return !1
} finally {
t.parentNode && t.parentNode.removeChild(t), t = null
}
}
function le(e, t) {
var n = e.split("|"),
i = n.length;
while (i--) r.attrHandle[n[i]] = t
}
function ce(e, t) {
var n = t && e,
r = n && 1 === e.nodeType && 1 === t.nodeType && e.sourceIndex - t.sourceIndex;
if (r) return r;
if (n)
while (n = n.nextSibling)
if (n === t) return -1;
return e ? 1 : -1
}
function fe(e) {
return function(t) {
return "input" === t.nodeName.toLowerCase() && t.type === e
}
}
function pe(e) {
return function(t) {
var n = t.nodeName.toLowerCase();
return ("input" === n || "button" === n) && t.type === e
}
}
function de(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 && ie(t) === e : t.disabled === e : "label" in t && t.disabled === e
}
}
function he(e) {
return se(function(t) {
return t = +t, se(function(n, r) {
var i, o = e([], n.length, t),
a = o.length;
while (a--) n[i = o[a]] && (n[i] = !(r[i] = n[i]))
})
})
}
function ge(e) {
return e && "undefined" != typeof e.getElementsByTagName && e
}
n = oe.support = {}, o = oe.isXML = function(e) {
var t = e && (e.ownerDocument || e).documentElement;
return !!t && "HTML" !== t.nodeName
}, p = oe.setDocument = function(e) {
var t, i, a = e ? e.ownerDocument || e : w;
return a !== d && 9 === a.nodeType && a.documentElement ? (d = a, h = d.documentElement, g = !o(d), w !== d && (i = d.defaultView) && i.top !== i && (i.addEventListener ? i.addEventListener("unload", re, !1) : i.attachEvent && i.attachEvent("onunload", re)), n.attributes = ue(function(e) {
return e.className = "i", !e.getAttribute("className")
}), n.getElementsByTagName = ue(function(e) {
return e.appendChild(d.createComment("")), !e.getElementsByTagName("*").length
}), n.getElementsByClassName = Q.test(d.getElementsByClassName), n.getById = ue(function(e) {
return h.appendChild(e).id = b, !d.getElementsByName || !d.getElementsByName(b).length
}), n.getById ? (r.filter.ID = function(e) {
var t = e.replace(Z, ee);
return function(e) {
return e.getAttribute("id") === t
}
}, r.find.ID = function(e, t) {
if ("undefined" != typeof t.getElementById && g) {
var n = t.getElementById(e);
return n ? [n] : []
}
}) : (r.filter.ID = function(e) {
var t = e.replace(Z, ee);
return function(e) {
var n = "undefined" != typeof e.getAttributeNode && e.getAttributeNode("id");
return n && n.value === t
}
}, r.find.ID = function(e, t) {
if ("undefined" != typeof t.getElementById && g) {
var n, r, i, o = t.getElementById(e);
if (o) {
if ((n = o.getAttributeNode("id")) && n.value === e) return [o];
i = t.getElementsByName(e), r = 0;
while (o = i[r++])
if ((n = o.getAttributeNode("id")) && n.value === e) return [o]
}
return []
}
}), r.find.TAG = n.getElementsByTagName ? function(e, t) {
return "undefined" != typeof t.getElementsByTagName ? t.getElementsByTagName(e) : n.qsa ? t.querySelectorAll(e) : void 0
} : function(e, t) {
var n, r = [],
i = 0,
o = t.getElementsByTagName(e);
if ("*" === e) {
while (n = o[i++]) 1 === n.nodeType && r.push(n);
return r
}
return o
}, r.find.CLASS = n.getElementsByClassName && function(e, t) {
if ("undefined" != typeof t.getElementsByClassName && g) return t.getElementsByClassName(e)
}, v = [], y = [], (n.qsa = Q.test(d.querySelectorAll)) && (ue(function(e) {
h.appendChild(e).innerHTML = "<a id='" + b + "'></a><select id='" + b + "-r\' msallowcapture=''><option selected=''></option></select>", e.querySelectorAll("[msallowcapture^='']").length && y.push("[*^$]=" + M + "*(?:''|"")"), e.querySelectorAll("[selected]").length || y.push("\[" + M + "*(?:value|" + P + ")"), e.querySelectorAll("[id~=" + b + "-]").length || y.push("~="), e.querySelectorAll(":checked").length || y.push(":checked"), e.querySelectorAll("a#" + b + "+*").length || y.push(".#.+[+~]")
}), ue(function(e) {
e.innerHTML = "<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";
var t = d.createElement("input");
t.setAttribute("type", "hidden"), e.appendChild(t).setAttribute("name", "D"), e.querySelectorAll("[name=d]").length && y.push("name" + M + "*[*^$|!~]?="), 2 !== e.querySelectorAll(":enabled").length && y.push(":enabled", ":disabled"), h.appendChild(e).disabled = !0, 2 !== e.querySelectorAll(":disabled").length && y.push(":enabled", ":disabled"), e.querySelectorAll("*,:x"), y.push(",.*:")
})), (n.matchesSelector = Q.test(m = h.matches || h.webkitMatchesSelector || h.mozMatchesSelector || h.oMatchesSelector || h.msMatchesSelector)) && ue(function(e) {
n.disconnectedMatch = m.call(e, "*"), m.call(e, "[s!='']:x"), v.push("!=", W)
}), y = y.length && new RegExp(y.join("|")), v = v.length && new RegExp(v.join("|")), t = Q.test(h.compareDocumentPosition), x = t || Q.test(h.contains) ? function(e, t) {
var n = 9 === e.nodeType ? e.documentElement : e,
r = t && t.parentNode;
return e === r || !(!r || 1 !== r.nodeType || !(n.contains ? n.contains(r) : e.compareDocumentPosition && 16 & e.compareDocumentPosition(r)))
} : function(e, t) {
if (t)
while (t = t.parentNode)
if (t === e) return !0;
return !1
}, D = t ? function(e, t) {
if (e === t) return f = !0, 0;
var r = !e.compareDocumentPosition - !t.compareDocumentPosition;
return r || (1 & (r = (e.ownerDocument || e) === (t.ownerDocument || t) ? e.compareDocumentPosition(t) : 1) || !n.sortDetached && t.compareDocumentPosition(e) === r ? e === d || e.ownerDocument === w && x(w, e) ? -1 : t === d || t.ownerDocument === w && x(w, t) ? 1 : c ? O(c, e) - O(c, t) : 0 : 4 & r ? -1 : 1)
} : function(e, t) {
if (e === t) return f = !0, 0;
var n, r = 0,
i = e.parentNode,
o = t.parentNode,
a = [e],
s = [t];
if (!i || !o) return e === d ? -1 : t === d ? 1 : i ? -1 : o ? 1 : c ? O(c, e) - O(c, t) : 0;
if (i === o) return ce(e, t);
n = e;
while (n = n.parentNode) a.unshift(n);
n = t;
while (n = n.parentNode) s.unshift(n);
while (a[r] === s[r]) r++;
return r ? ce(a[r], s[r]) : a[r] === w ? -1 : s[r] === w ? 1 : 0
}, d) : d
}, oe.matches = function(e, t) {
return oe(e, null, null, t)
}, oe.matchesSelector = function(e, t) {
if ((e.ownerDocument || e) !== d && p(e), t = t.replace(z, "='$1']"), n.matchesSelector && g && !S[t + " "] && (!v || !v.test(t)) && (!y || !y.test(t))) try {
var r = m.call(e, t);
if (r || n.disconnectedMatch || e.document && 11 !== e.document.nodeType) return r
} catch (e) {}
return oe(t, d, null, [e]).length > 0
}, oe.contains = function(e, t) {
return (e.ownerDocument || e) !== d && p(e), x(e, t)
}, oe.attr = function(e, t) {
(e.ownerDocument || e) !== d && p(e);
var i = r.attrHandle[t.toLowerCase()],
o = i && N.call(r.attrHandle, t.toLowerCase()) ? i(e, t, !g) : void 0;
return void 0 !== o ? o : n.attributes || !g ? e.getAttribute(t) : (o = e.getAttributeNode(t)) && o.specified ? o.value : null
}, oe.escape = function(e) {
return (e + "").replace(te, ne)
}, oe.error = function(e) {
throw new Error("Syntax error, unrecognized expression: " + e)
}, oe.uniqueSort = function(e) {
var t, r = [],
i = 0,
o = 0;
if (f = !n.detectDuplicates, c = !n.sortStable && e.slice(0), e.sort(D), f) {
while (t = e[o++]) t === e[o] && (i = r.push(o));
while (i--) e.splice(r[i], 1)
}
return c = null, e
}, i = oe.getText = function(e) {
var t, n = "",
r = 0,
o = e.nodeType;
if (o) {
if (1 === o || 9 === o || 11 === o) {
if ("string" == typeof e.textContent) return e.textContent;
for (e = e.firstChild; e; e = e.nextSibling) n += i(e)
} else if (3 === o || 4 === o) return e.nodeValue
} else
while (t = e[r++]) n += i(t);
return n
}, (r = oe.selectors = {
cacheLength: 50,
createPseudo: se,
match: V,
attrHandle: {},
find: {},
relative: {
">": {
dir: "parentNode",
first: !0
},
" ": {
dir: "parentNode"
},
"+": {
dir: "previousSibling",
first: !0
},
"~": {
dir: "previousSibling"
}
},
preFilter: {
ATTR: function(e) {
return e[1] = e[1].replace(Z, ee), e[3] = (e[3] || e[4] || e[5] || "").replace(Z, ee), "~=" === e[2] && (e[3] = " " + e[3] + " "), e.slice(0, 4)
},
CHILD: function(e) {
return e[1] = e[1].toLowerCase(), "nth" === e[1].slice(0, 3) ? (e[3] || oe.error(e[0]), e[4] = +(e[4] ? e[5] + (e[6] || 1) : 2 * ("even" === e[3] || "odd" === e[3])), e[5] = +(e[7] + e[8] || "odd" === e[3])) : e[3] && oe.error(e[0]), e
},
PSEUDO: function(e) {
var t, n = !e[6] && e[2];
return V.CHILD.test(e[0]) ? null : (e[3] ? e[2] = e[4] || e[5] || "" : n && X.test(n) && (t = a(n, !0)) && (t = n.indexOf(")", n.length - t) - n.length) && (e[0] = e[0].slice(0, t), e[2] = n.slice(0, t)), e.slice(0, 3))
}
},
filter: {
TAG: function(e) {
var t = e.replace(Z, ee).toLowerCase();
return "*" === e ? function() {
return !0
} : function(e) {
return e.nodeName && e.nodeName.toLowerCase() === t
}
},
CLASS: function(e) {
var t = E[e + " "];
return t || (t = new RegExp("(^|" + M + ")" + e + "(" + M + "|$)")) && E(e, function(e) {
return t.test("string" == typeof e.className && e.className || "undefined" != typeof e.getAttribute && e.getAttribute("class") || "")
})
},
ATTR: function(e, t, n) {
return function(r) {
var i = oe.attr(r, e);
return null == i ? "!=" === t : !t || (i += "", "=" === t ? i === n : "!=" === t ? i !== n : "^=" === t ? n && 0 === i.indexOf(n) : "*=" === t ? n && i.indexOf(n) > -1 : "$=" === t ? n && i.slice(-n.length) === n : "~=" === t ? (" " + i.replace($, " ") + " ").indexOf(n) > -1 : "|=" === t && (i === n || i.slice(0, n.length + 1) === n + "-"))
}
},
CHILD: function(e, t, n, r, i) {
var o = "nth" !== e.slice(0, 3),
a = "last" !== e.slice(-4),
s = "of-type" === t;
return 1 === r && 0 === i ? function(e) {
return !!e.parentNode
} : function(t, n, u) {
var l, c, f, p, d, h, g = o !== a ? "nextSibling" : "previousSibling",
y = t.parentNode,
v = s && t.nodeName.toLowerCase(),
m = !u && !s,
x = !1;
if (y) {
if (o) {
while (g) {
p = t;
while (p = p[g])
if (s ? p.nodeName.toLowerCase() === v : 1 === p.nodeType) return !1;
h = g = "only" === e && !h && "nextSibling"
}
return !0
}
if (h = [a ? y.firstChild : y.lastChild], a && m) {
x = (d = (l = (c = (f = (p = y)[b] || (p[b] = {}))[p.uniqueID] || (f[p.uniqueID] = {}))[e] || [])[0] === T && l[1]) && l[2], p = d && y.childNodes[d];
while (p = ++d && p && p[g] || (x = d = 0) || h.pop())
if (1 === p.nodeType && ++x && p === t) {
c[e] = [T, d, x];
break
}
} else if (m && (x = d = (l = (c = (f = (p = t)[b] || (p[b] = {}))[p.uniqueID] || (f[p.uniqueID] = {}))[e] || [])[0] === T && l[1]), !1 === x)
while (p = ++d && p && p[g] || (x = d = 0) || h.pop())
if ((s ? p.nodeName.toLowerCase() === v : 1 === p.nodeType) && ++x && (m && ((c = (f = p[b] || (p[b] = {}))[p.uniqueID] || (f[p.uniqueID] = {}))[e] = [T, x]), p === t)) break;
return (x -= i) === r || x % r == 0 && x / r >= 0
}
}
},
PSEUDO: function(e, t) {
var n, i = r.pseudos[e] || r.setFilters[e.toLowerCase()] || oe.error("unsupported pseudo: " + e);
return i[b] ? i(t) : i.length > 1 ? (n = [e, e, "", t], r.setFilters.hasOwnProperty(e.toLowerCase()) ? se(function(e, n) {
var r, o = i(e, t),
a = o.length;
while (a--) e[r = O(e, o[a])] = !(n[r] = o[a])
}) : function(e) {
return i(e, 0, n)
}) : i
}
},
pseudos: {
not: se(function(e) {
var t = [],
n = [],
r = s(e.replace(B, "$1"));
return r[b] ? se(function(e, t, n, i) {
var o, a = r(e, null, i, []),
s = e.length;
while (s--)(o = a[s]) && (e[s] = !(t[s] = o))
}) : function(e, i, o) {
return t[0] = e, r(t, null, o, n), t[0] = null, !n.pop()
}
}),
has: se(function(e) {
return function(t) {
return oe(e, t).length > 0
}
}),
contains: se(function(e) {
return e = e.replace(Z, ee),
function(t) {
return (t.textContent || t.innerText || i(t)).indexOf(e) > -1
}
}),
lang: se(function(e) {
return U.test(e || "") || oe.error("unsupported lang: " + e), e = e.replace(Z, ee).toLowerCase(),
function(t) {
var n;
do {
if (n = g ? t.lang : t.getAttribute("xml:lang") || t.getAttribute("lang")) return (n = n.toLowerCase()) === e || 0 === n.indexOf(e + "-")
} while ((t = t.parentNode) && 1 === t.nodeType);
return !1
}
}),
target: function(t) {
var n = e.location && e.location.hash;
return n && n.slice(1) === t.id
},
root: function(e) {
return e === h
},
focus: function(e) {
return e === d.activeElement && (!d.hasFocus || d.hasFocus()) && !!(e.type || e.href || ~e.tabIndex)
},
enabled: de(!1),
disabled: de(!0),
checked: function(e) {
var t = e.nodeName.toLowerCase();
return "input" === t && !!e.checked || "option" === t && !!e.selected
},
selected: function(e) {
return e.parentNode && e.parentNode.selectedIndex, !0 === e.selected
},
empty: function(e) {
for (e = e.firstChild; e; e = e.nextSibling)
if (e.nodeType < 6) return !1;
return !0
},
parent: function(e) {
return !r.pseudos.empty(e)
},
header: function(e) {
return Y.test(e.nodeName)
},
input: function(e) {
return G.test(e.nodeName)
},
button: function(e) {
var t = e.nodeName.toLowerCase();
return "input" === t && "button" === e.type || "button" === t
},
text: function(e) {
var t;
return "input" === e.nodeName.toLowerCase() && "text" === e.type && (null == (t = e.getAttribute("type")) || "text" === t.toLowerCase())
},
first: he(function() {
return [0]
}),
last: he(function(e, t) {
return [t - 1]
}),
eq: he(function(e, t, n) {
return [n < 0 ? n + t : n]
}),
even: he(function(e, t) {
for (var n = 0; n < t; n += 2) e.push(n);
return e
}),
odd: he(function(e, t) {
for (var n = 1; n < t; n += 2) e.push(n);
return e
}),
lt: he(function(e, t, n) {
for (var r = n < 0 ? n + t : n; --r >= 0;) e.push(r);
return e
}),
gt: he(function(e, t, n) {
for (var r = n < 0 ? n + t : n; ++r < t;) e.push(r);
return e
})
}
}).pseudos.nth = r.pseudos.eq;
for (t in {
radio: !0,
checkbox: !0,
file: !0,
password: !0,
image: !0
}) r.pseudos[t] = fe(t);
for (t in {
submit: !0,
reset: !0
}) r.pseudos[t] = pe(t);
function ye() {}
ye.prototype = r.filters = r.pseudos, r.setFilters = new ye, a = oe.tokenize = function(e, t) {
var n, i, o, a, s, u, l, c = k[e + " "];
if (c) return t ? 0 : c.slice(0);
s = e, u = [], l = r.preFilter;
while (s) {
n && !(i = F.exec(s)) || (i && (s = s.slice(i[0].length) || s), u.push(o = [])), n = !1, (i = _.exec(s)) && (n = i.shift(), o.push({
value: n,
type: i[0].replace(B, " ")
}), s = s.slice(n.length));
for (a in r.filter) !(i = V[a].exec(s)) || l[a] && !(i = l[a](i)) || (n = i.shift(), o.push({
value: n,
type: a,
matches: i
}), s = s.slice(n.length));
if (!n) break
}
return t ? s.length : s ? oe.error(e) : k(e, u).slice(0)
};
function ve(e) {
for (var t = 0, n = e.length, r = ""; t < n; t++) r += e[t].value;
return r
}
function me(e, t, n) {
var r = t.dir,
i = t.next,
o = i || r,
a = n && "parentNode" === o,
s = C++;
return t.first ? function(t, n, i) {
while (t = t[r])
if (1 === t.nodeType || a) return e(t, n, i);
return !1
} : function(t, n, u) {
var l, c, f, p = [T, s];
if (u) {
while (t = t[r])
if ((1 === t.nodeType || a) && e(t, n, u)) return !0
} else
while (t = t[r])
if (1 === t.nodeType || a)
if (f = t[b] || (t[b] = {}), c = f[t.uniqueID] || (f[t.uniqueID] = {}), i && i === t.nodeName.toLowerCase()) t = t[r] || t;
else {
if ((l = c[o]) && l[0] === T && l[1] === s) return p[2] = l[2];
if (c[o] = p, p[2] = e(t, n, u)) return !0
} return !1
}
}
function xe(e) {
return e.length > 1 ? function(t, n, r) {
var i = e.length;
while (i--)
if (!e[i](t, n, r)) return !1;
return !0
} : e[0]
}
function be(e, t, n) {
for (var r = 0, i = t.length; r < i; r++) oe(e, t[r], n);
return n
}
function we(e, t, n, r, i) {
for (var o, a = [], s = 0, u = e.length, l = null != t; s < u; s++)(o = e[s]) && (n && !n(o, r, i) || (a.push(o), l && t.push(s)));
return a
}
function Te(e, t, n, r, i, o) {
return r && !r[b] && (r = Te(r)), i && !i[b] && (i = Te(i, o)), se(function(o, a, s, u) {
var l, c, f, p = [],
d = [],
h = a.length,
g = o || be(t || "*", s.nodeType ? [s] : s, []),
y = !e || !o && t ? g : we(g, p, e, s, u),
v = n ? i || (o ? e : h || r) ? [] : a : y;
if (n && n(y, v, s, u), r) {
l = we(v, d), r(l, [], s, u), c = l.length;
while (c--)(f = l[c]) && (v[d[c]] = !(y[d[c]] = f))
}
if (o) {
if (i || e) {
if (i) {
l = [], c = v.length;
while (c--)(f = v[c]) && l.push(y[c] = f);
i(null, v = [], l, u)
}
c = v.length;
while (c--)(f = v[c]) && (l = i ? O(o, f) : p[c]) > -1 && (o[l] = !(a[l] = f))
}
} else v = we(v === a ? v.splice(h, v.length) : v), i ? i(null, a, v, u) : L.apply(a, v)
})
}
function Ce(e) {
for (var t, n, i, o = e.length, a = r.relative[e[0].type], s = a || r.relative[" "], u = a ? 1 : 0, c = me(function(e) {
return e === t
}, s, !0), f = me(function(e) {
return O(t, e) > -1
}, s, !0), p = [function(e, n, r) {
var i = !a && (r || n !== l) || ((t = n).nodeType ? c(e, n, r) : f(e, n, r));
return t = null, i
}]; u < o; u++)
if (n = r.relative[e[u].type]) p = [me(xe(p), n)];
else {
if ((n = r.filter[e[u].type].apply(null, e[u].matches))[b]) {
for (i = ++u; i < o; i++)
if (r.relative[e[i].type]) break;
return Te(u > 1 && xe(p), u > 1 && ve(e.slice(0, u - 1).concat({
value: " " === e[u - 2].type ? "*" : ""
})).replace(B, "$1"), n, u < i && Ce(e.slice(u, i)), i < o && Ce(e = e.slice(i)), i < o && ve(e))
}
p.push(n)
} return xe(p)
}
function Ee(e, t) {
var n = t.length > 0,
i = e.length > 0,
o = function(o, a, s, u, c) {
var f, h, y, v = 0,
m = "0",
x = o && [],
b = [],
w = l,
C = o || i && r.find.TAG("*", c),
E = T += null == w ? 1 : Math.random() || .1,
k = C.length;
for (c && (l = a === d || a || c); m !== k && null != (f = C[m]); m++) {
if (i && f) {
h = 0, a || f.ownerDocument === d || (p(f), s = !g);
while (y = e[h++])
if (y(f, a || d, s)) {
u.push(f);
break
} c && (T = E)
}
n && ((f = !y && f) && v--, o && x.push(f))
}
if (v += m, n && m !== v) {
h = 0;
while (y = t[h++]) y(x, b, a, s);
if (o) {
if (v > 0)
while (m--) x[m] || b[m] || (b[m] = j.call(u));
b = we(b)
}
L.apply(u, b), c && !o && b.length > 0 && v + t.length > 1 && oe.uniqueSort(u)
}
return c && (T = E, l = w), x
};
return n ? se(o) : o
}
return s = oe.compile = function(e, t) {
var n, r = [],
i = [],
o = S[e + " "];
if (!o) {
t || (t = a(e)), n = t.length;
while (n--)(o = Ce(t[n]))[b] ? r.push(o) : i.push(o);
(o = S(e, Ee(i, r))).selector = e
}
return o
}, u = oe.select = function(e, t, n, i) {
var o, u, l, c, f, p = "function" == typeof e && e,
d = !i && a(e = p.selector || e);
if (n = n || [], 1 === d.length) {
if ((u = d[0] = d[0].slice(0)).length > 2 && "ID" === (l = u[0]).type && 9 === t.nodeType && g && r.relative[u[1].type]) {
if (!(t = (r.find.ID(l.matches[0].replace(Z, ee), t) || [])[0])) return n;
p && (t = t.parentNode), e = e.slice(u.shift().value.length)
}
o = V.needsContext.test(e) ? 0 : u.length;
while (o--) {
if (l = u[o], r.relative[c = l.type]) break;
if ((f = r.find[c]) && (i = f(l.matches[0].replace(Z, ee), K.test(u[0].type) && ge(t.parentNode) || t))) {
if (u.splice(o, 1), !(e = i.length && ve(u))) return L.apply(n, i), n;
break
}
}
}
return (p || s(e, d))(i, t, !g, n, !t || K.test(e) && ge(t.parentNode) || t), n
}, n.sortStable = b.split("").sort(D).join("") === b, n.detectDuplicates = !!f, p(), n.sortDetached = ue(function(e) {
return 1 & e.compareDocumentPosition(d.createElement("fieldset"))
}), ue(function(e) {
return e.innerHTML = "<a href='#'></a>", "#" === e.firstChild.getAttribute("href")
}) || le("type|href|height|width", function(e, t, n) {
if (!n) return e.getAttribute(t, "type" === t.toLowerCase() ? 1 : 2)
}), n.attributes && ue(function(e) {
return e.innerHTML = "<input/>", e.firstChild.setAttribute("value", ""), "" === e.firstChild.getAttribute("value")
}) || le("value", function(e, t, n) {
if (!n && "input" === e.nodeName.toLowerCase()) return e.defaultValue
}), ue(function(e) {
return null == e.getAttribute("disabled")
}) || le(P, function(e, t, n) {
var r;
if (!n) return !0 === e[t] ? t.toLowerCase() : (r = e.getAttributeNode(t)) && r.specified ? r.value : null
}), oe
}(e);
w.find = E, w.expr = E.selectors, w.expr[":"] = w.expr.pseudos, w.uniqueSort = w.unique = E.uniqueSort, w.text = E.getText, w.isXMLDoc = E.isXML, w.contains = E.contains, w.escapeSelector = E.escape;
var k = function(e, t, n) {
var r = [],
i = void 0 !== n;
while ((e = e[t]) && 9 !== e.nodeType)
if (1 === e.nodeType) {
if (i && w(e).is(n)) break;
r.push(e)
} return r
},
S = function(e, t) {
for (var n = []; e; e = e.nextSibling) 1 === e.nodeType && e !== t && n.push(e);
return n
},
D = w.expr.match.needsContext;
function N(e, t) {
return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase()
}
var A = /^<([a-z][^/ >:x20trnf]*)[x20trnf]*/?>(?:</1>|)$/i;
function j(e, t, n) {
return g(t) ? w.grep(e, function(e, r) {
return !!t.call(e, r, e) !== n
}) : t.nodeType ? w.grep(e, function(e) {
return e === t !== n
}) : "string" != typeof t ? w.grep(e, function(e) {
return u.call(t, e) > -1 !== n
}) : w.filter(t, e, n)
}
w.filter = function(e, t, n) {
var r = t[0];
return n && (e = ":not(" + e + ")"), 1 === t.length && 1 === r.nodeType ? w.find.matchesSelector(r, e) ? [r] : [] : w.find.matches(e, w.grep(t, function(e) {
return 1 === e.nodeType
}))
}, w.fn.extend({
find: function(e) {
var t, n, r = this.length,
i = this;
if ("string" != typeof e) return this.pushStack(w(e).filter(function() {
for (t = 0; t < r; t++)
if (w.contains(i[t], this)) return !0
}));
for (n = this.pushStack([]), t = 0; t < r; t++) w.find(e, i[t], n);
return r > 1 ? w.uniqueSort(n) : n
},
filter: function(e) {
return this.pushStack(j(this, e || [], !1))
},
not: function(e) {
return this.pushStack(j(this, e || [], !0))
},
is: function(e) {
return !!j(this, "string" == typeof e && D.test(e) ? w(e) : e || [], !1).length
}
});
var q, L = /^(?:s*(<[wW]+>)[^>]*|#([w-]+))$/;
(w.fn.init = function(e, t, n) {
var i, o;
if (!e) return this;
if (n = n || q, "string" == typeof e) {
if (!(i = "<" === e[0] && ">" === e[e.length - 1] && e.length >= 3 ? [null, e, null] : L.exec(e)) || !i[1] && t) return !t || t.jquery ? (t || n).find(e) : this.constructor(t).find(e);
if (i[1]) {
if (t = t instanceof w ? t[0] : t, w.merge(this, w.parseHTML(i[1], t && t.nodeType ? t.ownerDocument || t : r, !0)), A.test(i[1]) && w.isPlainObject(t))
for (i in t) g(this[i]) ? this[i](t[i]) : this.attr(i, t[i]);
return this
}
return (o = r.getElementById(i[2])) && (this[0] = o, this.length = 1), this
}
return e.nodeType ? (this[0] = e, this.length = 1, this) : g(e) ? void 0 !== n.ready ? n.ready(e) : e(w) : w.makeArray(e, this)
}).prototype = w.fn, q = w(r);
var H = /^(?:parents|prev(?:Until|All))/,
O = {
children: !0,
contents: !0,
next: !0,
prev: !0
};
w.fn.extend({
has: function(e) {
var t = w(e, this),
n = t.length;
return this.filter(function() {
for (var e = 0; e < n; e++)
if (w.contains(this, t[e])) return !0
})
},
closest: function(e, t) {
var n, r = 0,
i = this.length,
o = [],
a = "string" != typeof e && w(e);
if (!D.test(e))
for (; r < i; r++)
for (n = this[r]; n && n !== t; n = n.parentNode)
if (n.nodeType < 11 && (a ? a.index(n) > -1 : 1 === n.nodeType && w.find.matchesSelector(n, e))) {
o.push(n);
break
} return this.pushStack(o.length > 1 ? w.uniqueSort(o) : o)
},
index: function(e) {
return e ? "string" == typeof e ? u.call(w(e), this[0]) : u.call(this, e.jquery ? e[0] : e) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1
},
add: function(e, t) {
return this.pushStack(w.uniqueSort(w.merge(this.get(), w(e, t))))
},
addBack: function(e) {
return this.add(null == e ? this.prevObject : this.prevObject.filter(e))
}
});
function P(e, t) {
while ((e = e[t]) && 1 !== e.nodeType);
return e
}
w.each({
parent: function(e) {
var t = e.parentNode;
return t && 11 !== t.nodeType ? t : null
},
parents: function(e) {
return k(e, "parentNode")
},
parentsUntil: function(e, t, n) {
return k(e, "parentNode", n)
},
next: function(e) {
return P(e, "nextSibling")
},
prev: function(e) {
return P(e, "previousSibling")
},
nextAll: function(e) {
return k(e, "nextSibling")
},
prevAll: function(e) {
return k(e, "previousSibling")
},
nextUntil: function(e, t, n) {
return k(e, "nextSibling", n)
},
prevUntil: function(e, t, n) {
return k(e, "previousSibling", n)
},
siblings: function(e) {
return S((e.parentNode || {}).firstChild, e)
},
children: function(e) {
return S(e.firstChild)
},
contents: function(e) {
return N(e, "iframe") ? e.contentDocument : (N(e, "template") && (e = e.content || e), w.merge([], e.childNodes))
}
}, function(e, t) {
w.fn[e] = function(n, r) {
var i = w.map(this, t, n);
return "Until" !== e.slice(-5) && (r = n), r && "string" == typeof r && (i = w.filter(r, i)), this.length > 1 && (O[e] || w.uniqueSort(i), H.test(e) && i.reverse()), this.pushStack(i)
}
});
var M = /[^x20trnf]+/g;
function R(e) {
var t = {};
return w.each(e.match(M) || [], function(e, n) {
t[n] = !0
}), t
}
w.Callbacks = function(e) {
e = "string" == typeof e ? R(e) : w.extend({}, e);
var t, n, r, i, o = [],
a = [],
s = -1,
u = function() {
for (i = i || e.once, r = t = !0; a.length; s = -1) {
n = a.shift();
while (++s < o.length) !1 === o[s].apply(n[0], n[1]) && e.stopOnFalse && (s = o.length, n = !1)
}
e.memory || (n = !1), t = !1, i && (o = n ? [] : "")
},
l = {
add: function() {
return o && (n && !t && (s = o.length - 1, a.push(n)), function t(n) {
w.each(n, function(n, r) {
g(r) ? e.unique && l.has(r) || o.push(r) : r && r.length && "string" !== x(r) && t(r)
})
}(arguments), n && !t && u()), this
},
remove: function() {
return w.each(arguments, function(e, t) {
var n;
while ((n = w.inArray(t, o, n)) > -1) o.splice(n, 1), n <= s && s--
}), this
},
has: function(e) {
return e ? w.inArray(e, o) > -1 : o.length > 0
},
empty: function() {
return o && (o = []), this
},
disable: function() {
return i = a = [], o = n = "", this
},
disabled: function() {
return !o
},
lock: function() {
return i = a = [], n || t || (o = n = ""), this
},
locked: function() {
return !!i
},
fireWith: function(e, n) {
return i || (n = [e, (n = n || []).slice ? n.slice() : n], a.push(n), t || u()), this
},
fire: function() {
return l.fireWith(this, arguments), this
},
fired: function() {
return !!r
}
};
return l
};
function I(e) {
return e
}
function W(e) {
throw e
}
function $(e, t, n, r) {
var i;
try {
e && g(i = e.promise) ? i.call(e).done(t).fail(n) : e && g(i = e.then) ? i.call(e, t, n) : t.apply(void 0, [e].slice(r))
} catch (e) {
n.apply(void 0, [e])
}
}
w.extend({
Deferred: function(t) {
var n = [
["notify", "progress", w.Callbacks("memory"), w.Callbacks("memory"), 2],
["resolve", "done", w.Callbacks("once memory"), w.Callbacks("once memory"), 0, "resolved"],
["reject", "fail", w.Callbacks("once memory"), w.Callbacks("once memory"), 1, "rejected"]
],
r = "pending",
i = {
state: function() {
return r
},
always: function() {
return o.done(arguments).fail(arguments), this
},
"catch": function(e) {
return i.then(null, e)
},
pipe: function() {
var e = arguments;
return w.Deferred(function(t) {
w.each(n, function(n, r) {
var i = g(e[r[4]]) && e[r[4]];
o[r[1]](function() {
var e = i && i.apply(this, arguments);
e && g(e.promise) ? e.promise().progress(t.notify).done(t.resolve).fail(t.reject) : t[r[0] + "With"](this, i ? [e] : arguments)
})
}), e = null
}).promise()
},
then: function(t, r, i) {
var o = 0;
function a(t, n, r, i) {
return function() {
var s = this,
u = arguments,
l = function() {
var e, l;
if (!(t < o)) {
if ((e = r.apply(s, u)) === n.promise()) throw new TypeError("Thenable self-resolution");
l = e && ("object" == typeof e || "function" == typeof e) && e.then, g(l) ? i ? l.call(e, a(o, n, I, i), a(o, n, W, i)) : (o++, l.call(e, a(o, n, I, i), a(o, n, W, i), a(o, n, I, n.notifyWith))) : (r !== I && (s = void 0, u = [e]), (i || n.resolveWith)(s, u))
}
},
c = i ? l : function() {
try {
l()
} catch (e) {
w.Deferred.exceptionHook && w.Deferred.exceptionHook(e, c.stackTrace), t + 1 >= o && (r !== W && (s = void 0, u = [e]), n.rejectWith(s, u))
}
};
t ? c() : (w.Deferred.getStackHook && (c.stackTrace = w.Deferred.getStackHook()), e.setTimeout(c))
}
}
return w.Deferred(function(e) {
n[0][3].add(a(0, e, g(i) ? i : I, e.notifyWith)), n[1][3].add(a(0, e, g(t) ? t : I)), n[2][3].add(a(0, e, g(r) ? r : W))
}).promise()
},
promise: function(e) {
return null != e ? w.extend(e, i) : i
}
},
o = {};
return w.each(n, function(e, t) {
var a = t[2],
s = t[5];
i[t[1]] = a.add, s && a.add(function() {
r = s
}, n[3 - e][2].disable, n[3 - e][3].disable, n[0][2].lock, n[0][3].lock), a.add(t[3].fire), o[t[0]] = function() {
return o[t[0] + "With"](this === o ? void 0 : this, arguments), this
}, o[t[0] + "With"] = a.fireWith
}), i.promise(o), t && t.call(o, o), o
},
when: function(e) {
var t = arguments.length,
n = t,
r = Array(n),
i = o.call(arguments),
a = w.Deferred(),
s = function(e) {
return function(n) {
r[e] = this, i[e] = arguments.length > 1 ? o.call(arguments) : n, --t || a.resolveWith(r, i)
}
};
if (t <= 1 && ($(e, a.done(s(n)).resolve, a.reject, !t), "pending" === a.state() || g(i[n] && i[n].then))) return a.then();
while (n--) $(i[n], s(n), a.reject);
return a.promise()
}
});
var B = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;
w.Deferred.exceptionHook = function(t, n) {
e.console && e.console.warn && t && B.test(t.name) && e.console.warn("jQuery.Deferred exception: " + t.message, t.stack, n)
}, w.readyException = function(t) {
e.setTimeout(function() {
throw t
})
};
var F = w.Deferred();
w.fn.ready = function(e) {
return F.then(e)["catch"](function(e) {
w.readyException(e)
}), this
}, w.extend({
isReady: !1,
readyWait: 1,
ready: function(e) {
(!0 === e ? --w.readyWait : w.isReady) || (w.isReady = !0, !0 !== e && --w.readyWait > 0 || F.resolveWith(r, [w]))
}
}), w.ready.then = F.then;
function _() {
r.removeEventListener("DOMContentLoaded", _), e.removeEventListener("load", _), w.ready()
}
"complete" === r.readyState || "loading" !== r.readyState && !r.documentElement.doScroll ? e.setTimeout(w.ready) : (r.addEventListener("DOMContentLoaded", _), e.addEventListener("load", _));
var z = function(e, t, n, r, i, o, a) {
var s = 0,
u = e.length,
l = null == n;
if ("object" === x(n)) {
i = !0;
for (s in n) z(e, t, s, n[s], !0, o, a)
} else if (void 0 !== r && (i = !0, g(r) || (a = !0), l && (a ? (t.call(e, r), t = null) : (l = t, t = function(e, t, n) {
return l.call(w(e), n)
})), t))
for (; s < u; s++) t(e[s], n, a ? r : r.call(e[s], s, t(e[s], n)));
return i ? e : l ? t.call(e) : u ? t(e[0], n) : o
},
X = /^-ms-/,
U = /-([a-z])/g;
function V(e, t) {
return t.toUpperCase()
}
function G(e) {
return e.replace(X, "ms-").replace(U, V)
}
var Y = function(e) {
return 1 === e.nodeType || 9 === e.nodeType || !+e.nodeType
};
function Q() {
this.expando = w.expando + Q.uid++
}
Q.uid = 1, Q.prototype = {
cache: function(e) {
var t = e[this.expando];
return t || (t = {}, Y(e) && (e.nodeType ? e[this.expando] = t : Object.defineProperty(e, this.expando, {
value: t,
configurable: !0
}))), t
},
set: function(e, t, n) {
var r, i = this.cache(e);
if ("string" == typeof t) i[G(t)] = n;
else
for (r in t) i[G(r)] = t[r];
return i
},
get: function(e, t) {
return void 0 === t ? this.cache(e) : e[this.expando] && e[this.expando][G(t)]
},
access: function(e, t, n) {
return void 0 === t || t && "string" == typeof t && void 0 === n ? this.get(e, t) : (this.set(e, t, n), void 0 !== n ? n : t)
},
remove: function(e, t) {
var n, r = e[this.expando];
if (void 0 !== r) {
if (void 0 !== t) {
n = (t = Array.isArray(t) ? t.map(G) : (t = G(t)) in r ? [t] : t.match(M) || []).length;
while (n--) delete r[t[n]]
}(void 0 === t || w.isEmptyObject(r)) && (e.nodeType ? e[this.expando] = void 0 : delete e[this.expando])
}
},
hasData: function(e) {
var t = e[this.expando];
return void 0 !== t && !w.isEmptyObject(t)
}
};
var J = new Q,
K = new Q,
Z = /^(?:{[wW]*}|[[wW]*])$/,
ee = /[A-Z]/g;
function te(e) {
return "true" === e || "false" !== e && ("null" === e ? null : e === +e + "" ? +e : Z.test(e) ? JSON.parse(e) : e)
}
function ne(e, t, n) {
var r;
if (void 0 === n && 1 === e.nodeType)
if (r = "data-" + t.replace(ee, "-$&").toLowerCase(), "string" == typeof(n = e.getAttribute(r))) {
try {
n = te(n)
} catch (e) {}
K.set(e, t, n)
} else n = void 0;
return n
}
w.extend({
hasData: function(e) {
return K.hasData(e) || J.hasData(e)
},
data: function(e, t, n) {
return K.access(e, t, n)
},
removeData: function(e, t) {
K.remove(e, t)
},
_data: function(e, t, n) {
return J.access(e, t, n)
},
_removeData: function(e, t) {
J.remove(e, t)
}
}), w.fn.extend({
data: function(e, t) {
var n, r, i, o = this[0],
a = o && o.attributes;
if (void 0 === e) {
if (this.length && (i = K.get(o), 1 === o.nodeType && !J.get(o, "hasDataAttrs"))) {
n = a.length;
while (n--) a[n] && 0 === (r = a[n].name).indexOf("data-") && (r = G(r.slice(5)), ne(o, r, i[r]));
J.set(o, "hasDataAttrs", !0)
}
return i
}
return "object" == typeof e ? this.each(function() {
K.set(this, e)
}) : z(this, function(t) {
var n;
if (o && void 0 === t) {
if (void 0 !== (n = K.get(o, e))) return n;
if (void 0 !== (n = ne(o, e))) return n
} else this.each(function() {
K.set(this, e, t)
})
}, null, t, arguments.length > 1, null, !0)
},
removeData: function(e) {
return this.each(function() {
K.remove(this, e)
})
}
}), w.extend({
queue: function(e, t, n) {
var r;
if (e) return t = (t || "fx") + "queue", r = J.get(e, t), n && (!r || Array.isArray(n) ? r = J.access(e, t, w.makeArray(n)) : r.push(n)), r || []
},
dequeue: function(e, t) {
t = t || "fx";
var n = w.queue(e, t),
r = n.length,
i = n.shift(),
o = w._queueHooks(e, t),
a = function() {
w.dequeue(e, t)
};
"inprogress" === i && (i = n.shift(), r--), i && ("fx" === t && n.unshift("inprogress"), delete o.stop, i.call(e, a, o)), !r && o && o.empty.fire()
},
_queueHooks: function(e, t) {
var n = t + "queueHooks";
return J.get(e, n) || J.access(e, n, {
empty: w.Callbacks("once memory").add(function() {
J.remove(e, [t + "queue", n])
})
})
}
}), w.fn.extend({
queue: function(e, t) {
var n = 2;
return "string" != typeof e && (t = e, e = "fx", n--), arguments.length < n ? w.queue(this[0], e) : void 0 === t ? this : this.each(function() {
var n = w.queue(this, e, t);
w._queueHooks(this, e), "fx" === e && "inprogress" !== n[0] && w.dequeue(this, e)
})
},
dequeue: function(e) {
return this.each(function() {
w.dequeue(this, e)
})
},
clearQueue: function(e) {
return this.queue(e || "fx", [])
},
promise: function(e, t) {
var n, r = 1,
i = w.Deferred(),
o = this,
a = this.length,
s = function() {
--r || i.resolveWith(o, [o])
};
"string" != typeof e && (t = e, e = void 0), e = e || "fx";
while (a--)(n = J.get(o[a], e + "queueHooks")) && n.empty && (r++, n.empty.add(s));
return s(), i.promise(t)
}
});
var re = /[+-]?(?:d*.|)d+(?:[eE][+-]?d+|)/.source,
ie = new RegExp("^(?:([+-])=|)(" + re + ")([a-z%]*)$", "i"),
oe = ["Top", "Right", "Bottom", "Left"],
ae = function(e, t) {
return "none" === (e = t || e).style.display || "" === e.style.display && w.contains(e.ownerDocument, e) && "none" === w.css(e, "display")
},
se = function(e, t, n, r) {
var i, o, a = {};
for (o in t) a[o] = e.style[o], e.style[o] = t[o];
i = n.apply(e, r || []);
for (o in t) e.style[o] = a[o];
return i
};
function ue(e, t, n, r) {
var i, o, a = 20,
s = r ? function() {
return r.cur()
} : function() {
return w.css(e, t, "")
},
u = s(),
l = n && n[3] || (w.cssNumber[t] ? "" : "px"),
c = (w.cssNumber[t] || "px" !== l && +u) && ie.exec(w.css(e, t));
if (c && c[3] !== l) {
u /= 2, l = l || c[3], c = +u || 1;
while (a--) w.style(e, t, c + l), (1 - o) * (1 - (o = s() / u || .5)) <= 0 && (a = 0), c /= o;
c *= 2, w.style(e, t, c + l), n = n || []
}
return n && (c = +c || +u || 0, i = n[1] ? c + (n[1] + 1) * n[2] : +n[2], r && (r.unit = l, r.start = c, r.end = i)), i
}
var le = {};
function ce(e) {
var t, n = e.ownerDocument,
r = e.nodeName,
i = le[r];
return i || (t = n.body.appendChild(n.createElement(r)), i = w.css(t, "display"), t.parentNode.removeChild(t), "none" === i && (i = "block"), le[r] = i, i)
}
function fe(e, t) {
for (var n, r, i = [], o = 0, a = e.length; o < a; o++)(r = e[o]).style && (n = r.style.display, t ? ("none" === n && (i[o] = J.get(r, "display") || null, i[o] || (r.style.display = "")), "" === r.style.display && ae(r) && (i[o] = ce(r))) : "none" !== n && (i[o] = "none", J.set(r, "display", n)));
for (o = 0; o < a; o++) null != i[o] && (e[o].style.display = i[o]);
return e
}
w.fn.extend({
show: function() {
return fe(this, !0)
},
hide: function() {
return fe(this)
},
toggle: function(e) {
return "boolean" == typeof e ? e ? this.show() : this.hide() : this.each(function() {
ae(this) ? w(this).show() : w(this).hide()
})
}
});
var pe = /^(?:checkbox|radio)$/i,
de = /<([a-z][^/ >x20trnf]+)/i,
he = /^$|^module$|/(?:java|ecma)script/i,
ge = {
option: [1, "<select multiple='multiple'>", "</select>"],
thead: [1, "<table>", "</table>"],
col: [2, "<table><colgroup>", "</colgroup></table>"],
tr: [2, "<table><tbody>", "</tbody></table>"],
td: [3, "<table><tbody><tr>", "</tr></tbody></table>"],
_default: [0, "", ""]
};
ge.optgroup = ge.option, ge.tbody = ge.tfoot = ge.colgroup = ge.caption = ge.thead, ge.th = ge.td;
function ye(e, t) {
var n;
return n = "undefined" != typeof e.getElementsByTagName ? e.getElementsByTagName(t || "*") : "undefined" != typeof e.querySelectorAll ? e.querySelectorAll(t || "*") : [], void 0 === t || t && N(e, t) ? w.merge([e], n) : n
}
function ve(e, t) {
for (var n = 0, r = e.length; n < r; n++) J.set(e[n], "globalEval", !t || J.get(t[n], "globalEval"))
}
var me = /<|&#?w+;/;
function xe(e, t, n, r, i) {
for (var o, a, s, u, l, c, f = t.createDocumentFragment(), p = [], d = 0, h = e.length; d < h; d++)
if ((o = e[d]) || 0 === o)
if ("object" === x(o)) w.merge(p, o.nodeType ? [o] : o);
else if (me.test(o)) {
a = a || f.appendChild(t.createElement("div")), s = (de.exec(o) || ["", ""])[1].toLowerCase(), u = ge[s] || ge._default, a.innerHTML = u[1] + w.htmlPrefilter(o) + u[2], c = u[0];
while (c--) a = a.lastChild;
w.merge(p, a.childNodes), (a = f.firstChild).textContent = ""
} else p.push(t.createTextNode(o));
f.textContent = "", d = 0;
while (o = p[d++])
if (r && w.inArray(o, r) > -1) i && i.push(o);
else if (l = w.contains(o.ownerDocument, o), a = ye(f.appendChild(o), "script"), l && ve(a), n) {
c = 0;
while (o = a[c++]) he.test(o.type || "") && n.push(o)
}
return f
}! function() {
var e = r.createDocumentFragment().appendChild(r.createElement("div")),
t = r.createElement("input");
t.setAttribute("type", "radio"), t.setAttribute("checked", "checked"), t.setAttribute("name", "t"), e.appendChild(t), h.checkClone = e.cloneNode(!0).cloneNode(!0).lastChild.checked, e.innerHTML = "<textarea>x</textarea>", h.noCloneChecked = !!e.cloneNode(!0).lastChild.defaultValue
}();
var be = r.documentElement,
we = /^key/,
Te = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,
Ce = /^([^.]*)(?:.(.+)|)/;
function Ee() {
return !0
}
function ke() {
return !1
}
function Se() {
try {
return r.activeElement
} catch (e) {}
}
function De(e, t, n, r, i, o) {
var a, s;
if ("object" == typeof t) {
"string" != typeof n && (r = r || n, n = void 0);
for (s in t) De(e, s, n, r, t[s], o);
return e
}
if (null == r && null == i ? (i = n, r = n = void 0) : null == i && ("string" == typeof n ? (i = r, r = void 0) : (i = r, r = n, n = void 0)), !1 === i) i = ke;
else if (!i) return e;
return 1 === o && (a = i, (i = function(e) {
return w().off(e), a.apply(this, arguments)
}).guid = a.guid || (a.guid = w.guid++)), e.each(function() {
w.event.add(this, t, i, r, n)
})
}
w.event = {
global: {},
add: function(e, t, n, r, i) {
var o, a, s, u, l, c, f, p, d, h, g, y = J.get(e);
if (y) {
n.handler && (n = (o = n).handler, i = o.selector), i && w.find.matchesSelector(be, i), n.guid || (n.guid = w.guid++), (u = y.events) || (u = y.events = {}), (a = y.handle) || (a = y.handle = function(t) {
return "undefined" != typeof w && w.event.triggered !== t.type ? w.event.dispatch.apply(e, arguments) : void 0
}), l = (t = (t || "").match(M) || [""]).length;
while (l--) d = g = (s = Ce.exec(t[l]) || [])[1], h = (s[2] || "").split(".").sort(), d && (f = w.event.special[d] || {}, d = (i ? f.delegateType : f.bindType) || d, f = w.event.special[d] || {}, c = w.extend({
type: d,
origType: g,
data: r,
handler: n,
guid: n.guid,
selector: i,
needsContext: i && w.expr.match.needsContext.test(i),
namespace: h.join(".")
}, o), (p = u[d]) || ((p = u[d] = []).delegateCount = 0, f.setup && !1 !== f.setup.call(e, r, h, a) || e.addEventListener && e.addEventListener(d, a)), f.add && (f.add.call(e, c), c.handler.guid || (c.handler.guid = n.guid)), i ? p.splice(p.delegateCount++, 0, c) : p.push(c), w.event.global[d] = !0)
}
},
remove: function(e, t, n, r, i) {
var o, a, s, u, l, c, f, p, d, h, g, y = J.hasData(e) && J.get(e);
if (y && (u = y.events)) {
l = (t = (t || "").match(M) || [""]).length;
while (l--)
if (s = Ce.exec(t[l]) || [], d = g = s[1], h = (s[2] || "").split(".").sort(), d) {
f = w.event.special[d] || {}, p = u[d = (r ? f.delegateType : f.bindType) || d] || [], s = s[2] && new RegExp("(^|\.)" + h.join("\.(?:.*\.|)") + "(\.|$)"), a = o = p.length;
while (o--) c = p[o], !i && g !== c.origType || n && n.guid !== c.guid || s && !s.test(c.namespace) || r && r !== c.selector && ("**" !== r || !c.selector) || (p.splice(o, 1), c.selector && p.delegateCount--, f.remove && f.remove.call(e, c));
a && !p.length && (f.teardown && !1 !== f.teardown.call(e, h, y.handle) || w.removeEvent(e, d, y.handle), delete u[d])
} else
for (d in u) w.event.remove(e, d + t[l], n, r, !0);
w.isEmptyObject(u) && J.remove(e, "handle events")
}
},
dispatch: function(e) {
var t = w.event.fix(e),
n, r, i, o, a, s, u = new Array(arguments.length),
l = (J.get(this, "events") || {})[t.type] || [],
c = w.event.special[t.type] || {};
for (u[0] = t, n = 1; n < arguments.length; n++) u[n] = arguments[n];
if (t.delegateTarget = this, !c.preDispatch || !1 !== c.preDispatch.call(this, t)) {
s = w.event.handlers.call(this, t, l), n = 0;
while ((o = s[n++]) && !t.isPropagationStopped()) {
t.currentTarget = o.elem, r = 0;
while ((a = o.handlers[r++]) && !t.isImmediatePropagationStopped()) t.rnamespace && !t.rnamespace.test(a.namespace) || (t.handleObj = a, t.data = a.data, void 0 !== (i = ((w.event.special[a.origType] || {}).handle || a.handler).apply(o.elem, u)) && !1 === (t.result = i) && (t.preventDefault(), t.stopPropagation()))
}
return c.postDispatch && c.postDispatch.call(this, t), t.result
}
},
handlers: function(e, t) {
var n, r, i, o, a, s = [],
u = t.delegateCount,
l = e.target;
if (u && l.nodeType && !("click" === e.type && e.button >= 1))
for (; l !== this; l = l.parentNode || this)
if (1 === l.nodeType && ("click" !== e.type || !0 !== l.disabled)) {
for (o = [], a = {}, n = 0; n < u; n++) void 0 === a[i = (r = t[n]).selector + " "] && (a[i] = r.needsContext ? w(i, this).index(l) > -1 : w.find(i, this, null, [l]).length), a[i] && o.push(r);
o.length && s.push({
elem: l,
handlers: o
})
} return l = this, u < t.length && s.push({
elem: l,
handlers: t.slice(u)
}), s
},
addProp: function(e, t) {
Object.defineProperty(w.Event.prototype, e, {
enumerable: !0,
configurable: !0,
get: g(t) ? function() {
if (this.originalEvent) return t(this.originalEvent)
} : function() {
if (this.originalEvent) return this.originalEvent[e]
},
set: function(t) {
Object.defineProperty(this, e, {
enumerable: !0,
configurable: !0,
writable: !0,
value: t
})
}
})
},
fix: function(e) {
return e[w.expando] ? e : new w.Event(e)
},
special: {
load: {
noBubble: !0
},
focus: {
trigger: function() {
if (this !== Se() && this.focus) return this.focus(), !1
},
delegateType: "focusin"
},
blur: {
trigger: function() {
if (this === Se() && this.blur) return this.blur(), !1
},
delegateType: "focusout"
},
click: {
trigger: function() {
if ("checkbox" === this.type && this.click && N(this, "input")) return this.click(), !1
},
_default: function(e) {
return N(e.target, "a")
}
},
beforeunload: {
postDispatch: function(e) {
void 0 !== e.result && e.originalEvent && (e.originalEvent.returnValue = e.result)
}
}
}
}, w.removeEvent = function(e, t, n) {
e.removeEventListener && e.removeEventListener(t, n)
}, w.Event = function(e, t) {
if (!(this instanceof w.Event)) return new w.Event(e, t);
e && e.type ? (this.originalEvent = e, this.type = e.type, this.isDefaultPrevented = e.defaultPrevented || void 0 === e.defaultPrevented && !1 === e.returnValue ? Ee : ke, this.target = e.target && 3 === e.target.nodeType ? e.target.parentNode : e.target, this.currentTarget = e.currentTarget, this.relatedTarget = e.relatedTarget) : this.type = e, t && w.extend(this, t), this.timeStamp = e && e.timeStamp || Date.now(), this[w.expando] = !0
}, w.Event.prototype = {
constructor: w.Event,
isDefaultPrevented: ke,
isPropagationStopped: ke,
isImmediatePropagationStopped: ke,
isSimulated: !1,
preventDefault: function() {
var e = this.originalEvent;
this.isDefaultPrevented = Ee, e && !this.isSimulated && e.preventDefault()
},
stopPropagation: function() {
var e = this.originalEvent;
this.isPropagationStopped = Ee, e && !this.isSimulated && e.stopPropagation()
},
stopImmediatePropagation: function() {
var e = this.originalEvent;
this.isImmediatePropagationStopped = Ee, e && !this.isSimulated && e.stopImmediatePropagation(), this.stopPropagation()
}
}, w.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,
charCode: !0,
key: !0,
keyCode: !0,
button: !0,
buttons: !0,
clientX: !0,
clientY: !0,
offsetX: !0,
offsetY: !0,
pointerId: !0,
pointerType: !0,
screenX: !0,
screenY: !0,
targetTouches: !0,
toElement: !0,
touches: !0,
which: function(e) {
var t = e.button;
return null == e.which && we.test(e.type) ? null != e.charCode ? e.charCode : e.keyCode : !e.which && void 0 !== t && Te.test(e.type) ? 1 & t ? 1 : 2 & t ? 3 : 4 & t ? 2 : 0 : e.which
}
}, w.event.addProp), w.each({
mouseenter: "mouseover",
mouseleave: "mouseout",
pointerenter: "pointerover",
pointerleave: "pointerout"
}, function(e, t) {
w.event.special[e] = {
delegateType: t,
bindType: t,
handle: function(e) {
var n, r = this,
i = e.relatedTarget,
o = e.handleObj;
return i && (i === r || w.contains(r, i)) || (e.type = o.origType, n = o.handler.apply(this, arguments), e.type = t), n
}
}
}), w.fn.extend({
on: function(e, t, n, r) {
return De(this, e, t, n, r)
},
one: function(e, t, n, r) {
return De(this, e, t, n, r, 1)
},
off: function(e, t, n) {
var r, i;
if (e && e.preventDefault && e.handleObj) return r = e.handleObj, w(e.delegateTarget).off(r.namespace ? r.origType + "." + r.namespace : r.origType, r.selector, r.handler), this;
if ("object" == typeof e) {
for (i in e) this.off(i, t, e[i]);
return this
}
return !1 !== t && "function" != typeof t || (n = t, t = void 0), !1 === n && (n = ke), this.each(function() {
w.event.remove(this, e, n, t)
})
}
});
var Ne = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^/ >x20trnf]*)[^>]*)/>/gi,
Ae = /<script|<style|<link/i,
je = /checkeds*(?:[^=]|=s*.checked.)/i,
qe = /^s*<!(?:[CDATA[|--)|(?:]]|--)>s*$/g;
function Le(e, t) {
return N(e, "table") && N(11 !== t.nodeType ? t : t.firstChild, "tr") ? w(e).children("tbody")[0] || e : e
}
function He(e) {
return e.type = (null !== e.getAttribute("type")) + "/" + e.type, e
}
function Oe(e) {
return "true/" === (e.type || "").slice(0, 5) ? e.type = e.type.slice(5) : e.removeAttribute("type"), e
}
function Pe(e, t) {
var n, r, i, o, a, s, u, l;
if (1 === t.nodeType) {
if (J.hasData(e) && (o = J.access(e), a = J.set(t, o), l = o.events)) {
delete a.handle, a.events = {};
for (i in l)
for (n = 0, r = l[i].length; n < r; n++) w.event.add(t, i, l[i][n])
}
K.hasData(e) && (s = K.access(e), u = w.extend({}, s), K.set(t, u))
}
}
function Me(e, t) {
var n = t.nodeName.toLowerCase();
"input" === n && pe.test(e.type) ? t.checked = e.checked : "input" !== n && "textarea" !== n || (t.defaultValue = e.defaultValue)
}
function Re(e, t, n, r) {
t = a.apply([], t);
var i, o, s, u, l, c, f = 0,
p = e.length,
d = p - 1,
y = t[0],
v = g(y);
if (v || p > 1 && "string" == typeof y && !h.checkClone && je.test(y)) return e.each(function(i) {
var o = e.eq(i);
v && (t[0] = y.call(this, i, o.html())), Re(o, t, n, r)
});
if (p && (i = xe(t, e[0].ownerDocument, !1, e, r), o = i.firstChild, 1 === i.childNodes.length && (i = o), o || r)) {
for (u = (s = w.map(ye(i, "script"), He)).length; f < p; f++) l = i, f !== d && (l = w.clone(l, !0, !0), u && w.merge(s, ye(l, "script"))), n.call(e[f], l, f);
if (u)
for (c = s[s.length - 1].ownerDocument, w.map(s, Oe), f = 0; f < u; f++) l = s[f], he.test(l.type || "") && !J.access(l, "globalEval") && w.contains(c, l) && (l.src && "module" !== (l.type || "").toLowerCase() ? w._evalUrl && w._evalUrl(l.src) : m(l.textContent.replace(qe, ""), c, l))
}
return e
}
function Ie(e, t, n) {
for (var r, i = t ? w.filter(t, e) : e, o = 0; null != (r = i[o]); o++) n || 1 !== r.nodeType || w.cleanData(ye(r)), r.parentNode && (n && w.contains(r.ownerDocument, r) && ve(ye(r, "script")), r.parentNode.removeChild(r));
return e
}
w.extend({
htmlPrefilter: function(e) {
return e.replace(Ne, "<$1></$2>")
},
clone: function(e, t, n) {
var r, i, o, a, s = e.cloneNode(!0),
u = w.contains(e.ownerDocument, e);
if (!(h.noCloneChecked || 1 !== e.nodeType && 11 !== e.nodeType || w.isXMLDoc(e)))
for (a = ye(s), r = 0, i = (o = ye(e)).length; r < i; r++) Me(o[r], a[r]);
if (t)
if (n)
for (o = o || ye(e), a = a || ye(s), r = 0, i = o.length; r < i; r++) Pe(o[r], a[r]);
else Pe(e, s);
return (a = ye(s, "script")).length > 0 && ve(a, !u && ye(e, "script")), s
},
cleanData: function(e) {
for (var t, n, r, i = w.event.special, o = 0; void 0 !== (n = e[o]); o++)
if (Y(n)) {
if (t = n[J.expando]) {
if (t.events)
for (r in t.events) i[r] ? w.event.remove(n, r) : w.removeEvent(n, r, t.handle);
n[J.expando] = void 0
}
n[K.expando] && (n[K.expando] = void 0)
}
}
}), w.fn.extend({
detach: function(e) {
return Ie(this, e, !0)
},
remove: function(e) {
return Ie(this, e)
},
text: function(e) {
return z(this, function(e) {
return void 0 === e ? w.text(this) : this.empty().each(function() {
1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || (this.textContent = e)
})
}, null, e, arguments.length)
},
append: function() {
return Re(this, arguments, function(e) {
1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || Le(this, e).appendChild(e)
})
},
prepend: function() {
return Re(this, arguments, function(e) {
if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
var t = Le(this, e);
t.insertBefore(e, t.firstChild)
}
})
},
before: function() {
return Re(this, arguments, function(e) {
this.parentNode && this.parentNode.insertBefore(e, this)
})
},
after: function() {
return Re(this, arguments, function(e) {
this.parentNode && this.parentNode.insertBefore(e, this.nextSibling)
})
},
empty: function() {
for (var e, t = 0; null != (e = this[t]); t++) 1 === e.nodeType && (w.cleanData(ye(e, !1)), e.textContent = "");
return this
},
clone: function(e, t) {
return e = null != e && e, t = null == t ? e : t, this.map(function() {
return w.clone(this, e, t)
})
},
html: function(e) {
return z(this, function(e) {
var t = this[0] || {},
n = 0,
r = this.length;
if (void 0 === e && 1 === t.nodeType) return t.innerHTML;
if ("string" == typeof e && !Ae.test(e) && !ge[(de.exec(e) || ["", ""])[1].toLowerCase()]) {
e = w.htmlPrefilter(e);
try {
for (; n < r; n++) 1 === (t = this[n] || {}).nodeType && (w.cleanData(ye(t, !1)), t.innerHTML = e);
t = 0
} catch (e) {}
}
t && this.empty().append(e)
}, null, e, arguments.length)
},
replaceWith: function() {
var e = [];
return Re(this, arguments, function(t) {
var n = this.parentNode;
w.inArray(this, e) < 0 && (w.cleanData(ye(this)), n && n.replaceChild(t, this))
}, e)
}
}), w.each({
appendTo: "append",
prependTo: "prepend",
insertBefore: "before",
insertAfter: "after",
replaceAll: "replaceWith"
}, function(e, t) {
w.fn[e] = function(e) {
for (var n, r = [], i = w(e), o = i.length - 1, a = 0; a <= o; a++) n = a === o ? this : this.clone(!0), w(i[a])[t](n), s.apply(r, n.get());
return this.pushStack(r)
}
});
var We = new RegExp("^(" + re + ")(?!px)[a-z%]+$", "i"),
$e = function(t) {
var n = t.ownerDocument.defaultView;
return n && n.opener || (n = e), n.getComputedStyle(t)
},
Be = new RegExp(oe.join("|"), "i");
! function() {
function t() {
if (c) {
l.style.cssText = "position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0", c.style.cssText = "position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%", be.appendChild(l).appendChild(c);
var t = e.getComputedStyle(c);
i = "1%" !== t.top, u = 12 === n(t.marginLeft), c.style.right = "60%", s = 36 === n(t.right), o = 36 === n(t.width), c.style.position = "absolute", a = 36 === c.offsetWidth || "absolute", be.removeChild(l), c = null
}
}
function n(e) {
return Math.round(parseFloat(e))
}
var i, o, a, s, u, l = r.createElement("div"),
c = r.createElement("div");
c.style && (c.style.backgroundClip = "content-box", c.cloneNode(!0).style.backgroundClip = "", h.clearCloneStyle = "content-box" === c.style.backgroundClip, w.extend(h, {
boxSizingReliable: function() {
return t(), o
},
pixelBoxStyles: function() {
return t(), s
},
pixelPosition: function() {
return t(), i
},
reliableMarginLeft: function() {
return t(), u
},
scrollboxSize: function() {
return t(), a
}
}))
}();
function Fe(e, t, n) {
var r, i, o, a, s = e.style;
return (n = n || $e(e)) && ("" !== (a = n.getPropertyValue(t) || n[t]) || w.contains(e.ownerDocument, e) || (a = w.style(e, t)), !h.pixelBoxStyles() && We.test(a) && Be.test(t) && (r = s.width, i = s.minWidth, o = s.maxWidth, s.minWidth = s.maxWidth = s.width = a, a = n.width, s.width = r, s.minWidth = i, s.maxWidth = o)), void 0 !== a ? a + "" : a
}
function _e(e, t) {
return {
get: function() {
if (!e()) return (this.get = t).apply(this, arguments);
delete this.get
}
}
}
var ze = /^(none|table(?!-c[ea]).+)/,
Xe = /^--/,
Ue = {
position: "absolute",
visibility: "hidden",
display: "block"
},
Ve = {
letterSpacing: "0",
fontWeight: "400"
},
Ge = ["Webkit", "Moz", "ms"],
Ye = r.createElement("div").style;
function Qe(e) {
if (e in Ye) return e;
var t = e[0].toUpperCase() + e.slice(1),
n = Ge.length;
while (n--)
if ((e = Ge[n] + t) in Ye) return e
}
function Je(e) {
var t = w.cssProps[e];
return t || (t = w.cssProps[e] = Qe(e) || e), t
}
function Ke(e, t, n) {
var r = ie.exec(t);
return r ? Math.max(0, r[2] - (n || 0)) + (r[3] || "px") : t
}
function Ze(e, t, n, r, i, o) {
var a = "width" === t ? 1 : 0,
s = 0,
u = 0;
if (n === (r ? "border" : "content")) return 0;
for (; a < 4; a += 2) "margin" === n && (u += w.css(e, n + oe[a], !0, i)), r ? ("content" === n && (u -= w.css(e, "padding" + oe[a], !0, i)), "margin" !== n && (u -= w.css(e, "border" + oe[a] + "Width", !0, i))) : (u += w.css(e, "padding" + oe[a], !0, i), "padding" !== n ? u += w.css(e, "border" + oe[a] + "Width", !0, i) : s += w.css(e, "border" + oe[a] + "Width", !0, i));
return !r && o >= 0 && (u += Math.max(0, Math.ceil(e["offset" + t[0].toUpperCase() + t.slice(1)] - o - u - s - .5))), u
}
function et(e, t, n) {
var r = $e(e),
i = Fe(e, t, r),
o = "border-box" === w.css(e, "boxSizing", !1, r),
a = o;
if (We.test(i)) {
if (!n) return i;
i = "auto"
}
return a = a && (h.boxSizingReliable() || i === e.style[t]), ("auto" === i || !parseFloat(i) && "inline" === w.css(e, "display", !1, r)) && (i = e["offset" + t[0].toUpperCase() + t.slice(1)], a = !0), (i = parseFloat(i) || 0) + Ze(e, t, n || (o ? "border" : "content"), a, r, i) + "px"
}
w.extend({
cssHooks: {
opacity: {
get: function(e, t) {
if (t) {
var n = Fe(e, "opacity");
return "" === n ? "1" : n
}
}
}
},
cssNumber: {
animationIterationCount: !0,
columnCount: !0,
fillOpacity: !0,
flexGrow: !0,
flexShrink: !0,
fontWeight: !0,
lineHeight: !0,
opacity: !0,
order: !0,
orphans: !0,
widows: !0,
zIndex: !0,
zoom: !0
},
cssProps: {},
style: function(e, t, n, r) {
if (e && 3 !== e.nodeType && 8 !== e.nodeType && e.style) {
var i, o, a, s = G(t),
u = Xe.test(t),
l = e.style;
if (u || (t = Je(s)), a = w.cssHooks[t] || w.cssHooks[s], void 0 === n) return a && "get" in a && void 0 !== (i = a.get(e, !1, r)) ? i : l[t];
"string" == (o = typeof n) && (i = ie.exec(n)) && i[1] && (n = ue(e, t, i), o = "number"), null != n && n === n && ("number" === o && (n += i && i[3] || (w.cssNumber[s] ? "" : "px")), h.clearCloneStyle || "" !== n || 0 !== t.indexOf("background") || (l[t] = "inherit"), a && "set" in a && void 0 === (n = a.set(e, n, r)) || (u ? l.setProperty(t, n) : l[t] = n))
}
},
css: function(e, t, n, r) {
var i, o, a, s = G(t);
return Xe.test(t) || (t = Je(s)), (a = w.cssHooks[t] || w.cssHooks[s]) && "get" in a && (i = a.get(e, !0, n)), void 0 === i && (i = Fe(e, t, r)), "normal" === i && t in Ve && (i = Ve[t]), "" === n || n ? (o = parseFloat(i), !0 === n || isFinite(o) ? o || 0 : i) : i
}
}), w.each(["height", "width"], function(e, t) {
w.cssHooks[t] = {
get: function(e, n, r) {
if (n) return !ze.test(w.css(e, "display")) || e.getClientRects().length && e.getBoundingClientRect().width ? et(e, t, r) : se(e, Ue, function() {
return et(e, t, r)
})
},
set: function(e, n, r) {
var i, o = $e(e),
a = "border-box" === w.css(e, "boxSizing", !1, o),
s = r && Ze(e, t, r, a, o);
return a && h.scrollboxSize() === o.position && (s -= Math.ceil(e["offset" + t[0].toUpperCase() + t.slice(1)] - parseFloat(o[t]) - Ze(e, t, "border", !1, o) - .5)), s && (i = ie.exec(n)) && "px" !== (i[3] || "px") && (e.style[t] = n, n = w.css(e, t)), Ke(e, n, s)
}
}
}), w.cssHooks.marginLeft = _e(h.reliableMarginLeft, function(e, t) {
if (t) return (parseFloat(Fe(e, "marginLeft")) || e.getBoundingClientRect().left - se(e, {
marginLeft: 0
}, function() {
return e.getBoundingClientRect().left
})) + "px"
}), w.each({
margin: "",
padding: "",
border: "Width"
}, function(e, t) {
w.cssHooks[e + t] = {
expand: function(n) {
for (var r = 0, i = {}, o = "string" == typeof n ? n.split(" ") : [n]; r < 4; r++) i[e + oe[r] + t] = o[r] || o[r - 2] || o[0];
return i
}
}, "margin" !== e && (w.cssHooks[e + t].set = Ke)
}), w.fn.extend({
css: function(e, t) {
return z(this, function(e, t, n) {
var r, i, o = {},
a = 0;
if (Array.isArray(t)) {
for (r = $e(e), i = t.length; a < i; a++) o[t[a]] = w.css(e, t[a], !1, r);
return o
}
return void 0 !== n ? w.style(e, t, n) : w.css(e, t)
}, e, t, arguments.length > 1)
}
});
function tt(e, t, n, r, i) {
return new tt.prototype.init(e, t, n, r, i)
}
w.Tween = tt, tt.prototype = {
constructor: tt,
init: function(e, t, n, r, i, o) {
this.elem = e, this.prop = n, this.easing = i || w.easing._default, this.options = t, this.start = this.now = this.cur(), this.end = r, this.unit = o || (w.cssNumber[n] ? "" : "px")
},
cur: function() {
var e = tt.propHooks[this.prop];
return e && e.get ? e.get(this) : tt.propHooks._default.get(this)
},
run: function(e) {
var t, n = tt.propHooks[this.prop];
return this.options.duration ? this.pos = t = w.easing[this.easing](e, this.options.duration * e, 0, 1, this.options.duration) : this.pos = t = e, this.now = (this.end - this.start) * t + this.start, this.options.step && this.options.step.call(this.elem, this.now, this), n && n.set ? n.set(this) : tt.propHooks._default.set(this), this
}
}, tt.prototype.init.prototype = tt.prototype, tt.propHooks = {
_default: {
get: function(e) {
var t;
return 1 !== e.elem.nodeType || null != e.elem[e.prop] && null == e.elem.style[e.prop] ? e.elem[e.prop] : (t = w.css(e.elem, e.prop, "")) && "auto" !== t ? t : 0
},
set: function(e) {
w.fx.step[e.prop] ? w.fx.step[e.prop](e) : 1 !== e.elem.nodeType || null == e.elem.style[w.cssProps[e.prop]] && !w.cssHooks[e.prop] ? e.elem[e.prop] = e.now : w.style(e.elem, e.prop, e.now + e.unit)
}
}
}, tt.propHooks.scrollTop = tt.propHooks.scrollLeft = {
set: function(e) {
e.elem.nodeType && e.elem.parentNode && (e.elem[e.prop] = e.now)
}
}, w.easing = {
linear: function(e) {
return e
},
swing: function(e) {
return .5 - Math.cos(e * Math.PI) / 2
},
_default: "swing"
}, w.fx = tt.prototype.init, w.fx.step = {};
var nt, rt, it = /^(?:toggle|show|hide)$/,
ot = /queueHooks$/;
function at() {
rt && (!1 === r.hidden && e.requestAnimationFrame ? e.requestAnimationFrame(at) : e.setTimeout(at, w.fx.interval), w.fx.tick())
}
function st() {
return e.setTimeout(function() {
nt = void 0
}), nt = Date.now()
}
function ut(e, t) {
var n, r = 0,
i = {
height: e
};
for (t = t ? 1 : 0; r < 4; r += 2 - t) i["margin" + (n = oe[r])] = i["padding" + n] = e;
return t && (i.opacity = i.width = e), i
}
function lt(e, t, n) {
for (var r, i = (pt.tweeners[t] || []).concat(pt.tweeners["*"]), o = 0, a = i.length; o < a; o++)
if (r = i[o].call(n, t, e)) return r
}
function ct(e, t, n) {
var r, i, o, a, s, u, l, c, f = "width" in t || "height" in t,
p = this,
d = {},
h = e.style,
g = e.nodeType && ae(e),
y = J.get(e, "fxshow");
n.queue || (null == (a = w._queueHooks(e, "fx")).unqueued && (a.unqueued = 0, s = a.empty.fire, a.empty.fire = function() {
a.unqueued || s()
}), a.unqueued++, p.always(function() {
p.always(function() {
a.unqueued--, w.queue(e, "fx").length || a.empty.fire()
})
}));
for (r in t)
if (i = t[r], it.test(i)) {
if (delete t[r], o = o || "toggle" === i, i === (g ? "hide" : "show")) {
if ("show" !== i || !y || void 0 === y[r]) continue;
g = !0
}
d[r] = y && y[r] || w.style(e, r)
} if ((u = !w.isEmptyObject(t)) || !w.isEmptyObject(d)) {
f && 1 === e.nodeType && (n.overflow = [h.overflow, h.overflowX, h.overflowY], null == (l = y && y.display) && (l = J.get(e, "display")), "none" === (c = w.css(e, "display")) && (l ? c = l : (fe([e], !0), l = e.style.display || l, c = w.css(e, "display"), fe([e]))), ("inline" === c || "inline-block" === c && null != l) && "none" === w.css(e, "float") && (u || (p.done(function() {
h.display = l
}), null == l && (c = h.display, l = "none" === c ? "" : c)), h.display = "inline-block")), n.overflow && (h.overflow = "hidden", p.always(function() {
h.overflow = n.overflow[0], h.overflowX = n.overflow[1], h.overflowY = n.overflow[2]
})), u = !1;
for (r in d) u || (y ? "hidden" in y && (g = y.hidden) : y = J.access(e, "fxshow", {
display: l
}), o && (y.hidden = !g), g && fe([e], !0), p.done(function() {
g || fe([e]), J.remove(e, "fxshow");
for (r in d) w.style(e, r, d[r])
})), u = lt(g ? y[r] : 0, r, p), r in y || (y[r] = u.start, g && (u.end = u.start, u.start = 0))
}
}
function ft(e, t) {
var n, r, i, o, a;
for (n in e)
if (r = G(n), i = t[r], o = e[n], Array.isArray(o) && (i = o[1], o = e[n] = o[0]), n !== r && (e[r] = o, delete e[n]), (a = w.cssHooks[r]) && "expand" in a) {
o = a.expand(o), delete e[r];
for (n in o) n in e || (e[n] = o[n], t[n] = i)
} else t[r] = i
}
function pt(e, t, n) {
var r, i, o = 0,
a = pt.prefilters.length,
s = w.Deferred().always(function() {
delete u.elem
}),
u = function() {
if (i) return !1;
for (var t = nt || st(), n = Math.max(0, l.startTime + l.duration - t), r = 1 - (n / l.duration || 0), o = 0, a = l.tweens.length; o < a; o++) l.tweens[o].run(r);
return s.notifyWith(e, [l, r, n]), r < 1 && a ? n : (a || s.notifyWith(e, [l, 1, 0]), s.resolveWith(e, [l]), !1)
},
l = s.promise({
elem: e,
props: w.extend({}, t),
opts: w.extend(!0, {
specialEasing: {},
easing: w.easing._default
}, n),
originalProperties: t,
originalOptions: n,
startTime: nt || st(),
duration: n.duration,
tweens: [],
createTween: function(t, n) {
var r = w.Tween(e, l.opts, t, n, l.opts.specialEasing[t] || l.opts.easing);
return l.tweens.push(r), r
},
stop: function(t) {
var n = 0,
r = t ? l.tweens.length : 0;
if (i) return this;
for (i = !0; n < r; n++) l.tweens[n].run(1);
return t ? (s.notifyWith(e, [l, 1, 0]), s.resolveWith(e, [l, t])) : s.rejectWith(e, [l, t]), this
}
}),
c = l.props;
for (ft(c, l.opts.specialEasing); o < a; o++)
if (r = pt.prefilters[o].call(l, e, c, l.opts)) return g(r.stop) && (w._queueHooks(l.elem, l.opts.queue).stop = r.stop.bind(r)), r;
return w.map(c, lt, l), g(l.opts.start) && l.opts.start.call(e, l), l.progress(l.opts.progress).done(l.opts.done, l.opts.complete).fail(l.opts.fail).always(l.opts.always), w.fx.timer(w.extend(u, {
elem: e,
anim: l,
queue: l.opts.queue
})), l
}
w.Animation = w.extend(pt, {
tweeners: {
"*": [function(e, t) {
var n = this.createTween(e, t);
return ue(n.elem, e, ie.exec(t), n), n
}]
},
tweener: function(e, t) {
g(e) ? (t = e, e = ["*"]) : e = e.match(M);
for (var n, r = 0, i = e.length; r < i; r++) n = e[r], pt.tweeners[n] = pt.tweeners[n] || [], pt.tweeners[n].unshift(t)
},
prefilters: [ct],
prefilter: function(e, t) {
t ? pt.prefilters.unshift(e) : pt.prefilters.push(e)
}
}), w.speed = function(e, t, n) {
var r = e && "object" == typeof e ? w.extend({}, e) : {
complete: n || !n && t || g(e) && e,
duration: e,
easing: n && t || t && !g(t) && t
};
return w.fx.off ? r.duration = 0 : "number" != typeof r.duration && (r.duration in w.fx.speeds ? r.duration = w.fx.speeds[r.duration] : r.duration = w.fx.speeds._default), null != r.queue && !0 !== r.queue || (r.queue = "fx"), r.old = r.complete, r.complete = function() {
g(r.old) && r.old.call(this), r.queue && w.dequeue(this, r.queue)
}, r
}, w.fn.extend({
fadeTo: function(e, t, n, r) {
return this.filter(ae).css("opacity", 0).show().end().animate({
opacity: t
}, e, n, r)
},
animate: function(e, t, n, r) {
var i = w.isEmptyObject(e),
o = w.speed(t, n, r),
a = function() {
var t = pt(this, w.extend({}, e), o);
(i || J.get(this, "finish")) && t.stop(!0)
};
return a.finish = a, i || !1 === o.queue ? this.each(a) : this.queue(o.queue, a)
},
stop: function(e, t, n) {
var r = function(e) {
var t = e.stop;
delete e.stop, t(n)
};
return "string" != typeof e && (n = t, t = e, e = void 0), t && !1 !== e && this.queue(e || "fx", []), this.each(function() {
var t = !0,
i = null != e && e + "queueHooks",
o = w.timers,
a = J.get(this);
if (i) a[i] && a[i].stop && r(a[i]);
else
for (i in a) a[i] && a[i].stop && ot.test(i) && r(a[i]);
for (i = o.length; i--;) o[i].elem !== this || null != e && o[i].queue !== e || (o[i].anim.stop(n), t = !1, o.splice(i, 1));
!t && n || w.dequeue(this, e)
})
},
finish: function(e) {
return !1 !== e && (e = e || "fx"), this.each(function() {
var t, n = J.get(this),
r = n[e + "queue"],
i = n[e + "queueHooks"],
o = w.timers,
a = r ? r.length : 0;
for (n.finish = !0, w.queue(this, e, []), i && i.stop && i.stop.call(this, !0), t = o.length; t--;) o[t].elem === this && o[t].queue === e && (o[t].anim.stop(!0), o.splice(t, 1));
for (t = 0; t < a; t++) r[t] && r[t].finish && r[t].finish.call(this);
delete n.finish
})
}
}), w.each(["toggle", "show", "hide"], function(e, t) {
var n = w.fn[t];
w.fn[t] = function(e, r, i) {
return null == e || "boolean" == typeof e ? n.apply(this, arguments) : this.animate(ut(t, !0), e, r, i)
}
}), w.each({
slideDown: ut("show"),
slideUp: ut("hide"),
slideToggle: ut("toggle"),
fadeIn: {
opacity: "show"
},
fadeOut: {
opacity: "hide"
},
fadeToggle: {
opacity: "toggle"
}
}, function(e, t) {
w.fn[e] = function(e, n, r) {
return this.animate(t, e, n, r)
}
}), w.timers = [], w.fx.tick = function() {
var e, t = 0,
n = w.timers;
for (nt = Date.now(); t < n.length; t++)(e = n[t])() || n[t] !== e || n.splice(t--, 1);
n.length || w.fx.stop(), nt = void 0
}, w.fx.timer = function(e) {
w.timers.push(e), w.fx.start()
}, w.fx.interval = 13, w.fx.start = function() {
rt || (rt = !0, at())
}, w.fx.stop = function() {
rt = null
}, w.fx.speeds = {
slow: 600,
fast: 200,
_default: 400
}, w.fn.delay = function(t, n) {
return t = w.fx ? w.fx.speeds[t] || t : t, n = n || "fx", this.queue(n, function(n, r) {
var i = e.setTimeout(n, t);
r.stop = function() {
e.clearTimeout(i)
}
})
},
function() {
var e = r.createElement("input"),
t = r.createElement("select").appendChild(r.createElement("option"));
e.type = "checkbox", h.checkOn = "" !== e.value, h.optSelected = t.selected, (e = r.createElement("input")).value = "t", e.type = "radio", h.radioValue = "t" === e.value
}();
var dt, ht = w.expr.attrHandle;
w.fn.extend({
attr: function(e, t) {
return z(this, w.attr, e, t, arguments.length > 1)
},
removeAttr: function(e) {
return this.each(function() {
w.removeAttr(this, e)
})
}
}), w.extend({
attr: function(e, t, n) {
var r, i, o = e.nodeType;
if (3 !== o && 8 !== o && 2 !== o) return "undefined" == typeof e.getAttribute ? w.prop(e, t, n) : (1 === o && w.isXMLDoc(e) || (i = w.attrHooks[t.toLowerCase()] || (w.expr.match.bool.test(t) ? dt : void 0)), void 0 !== n ? null === n ? void w.removeAttr(e, t) : i && "set" in i && void 0 !== (r = i.set(e, n, t)) ? r : (e.setAttribute(t, n + ""), n) : i && "get" in i && null !== (r = i.get(e, t)) ? r : null == (r = w.find.attr(e, t)) ? void 0 : r)
},
attrHooks: {
type: {
set: function(e, t) {
if (!h.radioValue && "radio" === t && N(e, "input")) {
var n = e.value;
return e.setAttribute("type", t), n && (e.value = n), t
}
}
}
},
removeAttr: function(e, t) {
var n, r = 0,
i = t && t.match(M);
if (i && 1 === e.nodeType)
while (n = i[r++]) e.removeAttribute(n)
}
}), dt = {
set: function(e, t, n) {
return !1 === t ? w.removeAttr(e, n) : e.setAttribute(n, n), n
}
}, w.each(w.expr.match.bool.source.match(/w+/g), function(e, t) {
var n = ht[t] || w.find.attr;
ht[t] = function(e, t, r) {
var i, o, a = t.toLowerCase();
return r || (o = ht[a], ht[a] = i, i = null != n(e, t, r) ? a : null, ht[a] = o), i
}
});
var gt = /^(?:input|select|textarea|button)$/i,
yt = /^(?:a|area)$/i;
w.fn.extend({
prop: function(e, t) {
return z(this, w.prop, e, t, arguments.length > 1)
},
removeProp: function(e) {
return this.each(function() {
delete this[w.propFix[e] || e]
})
}
}), w.extend({
prop: function(e, t, n) {
var r, i, o = e.nodeType;
if (3 !== o && 8 !== o && 2 !== o) return 1 === o && w.isXMLDoc(e) || (t = w.propFix[t] || t, i = w.propHooks[t]), void 0 !== n ? i && "set" in i && void 0 !== (r = i.set(e, n, t)) ? r : e[t] = n : i && "get" in i && null !== (r = i.get(e, t)) ? r : e[t]
},
propHooks: {
tabIndex: {
get: function(e) {
var t = w.find.attr(e, "tabindex");
return t ? parseInt(t, 10) : gt.test(e.nodeName) || yt.test(e.nodeName) && e.href ? 0 : -1
}
}
},
propFix: {
"for": "htmlFor",
"class": "className"
}
}), h.optSelected || (w.propHooks.selected = {
get: function(e) {
var t = e.parentNode;
return t && t.parentNode && t.parentNode.selectedIndex, null
},
set: function(e) {
var t = e.parentNode;
t && (t.selectedIndex, t.parentNode && t.parentNode.selectedIndex)
}
}), w.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], function() {
w.propFix[this.toLowerCase()] = this
});
function vt(e) {
return (e.match(M) || []).join(" ")
}
function mt(e) {
return e.getAttribute && e.getAttribute("class") || ""
}
function xt(e) {
return Array.isArray(e) ? e : "string" == typeof e ? e.match(M) || [] : []
}
w.fn.extend({
addClass: function(e) {
var t, n, r, i, o, a, s, u = 0;
if (g(e)) return this.each(function(t) {
w(this).addClass(e.call(this, t, mt(this)))
});
if ((t = xt(e)).length)
while (n = this[u++])
if (i = mt(n), r = 1 === n.nodeType && " " + vt(i) + " ") {
a = 0;
while (o = t[a++]) r.indexOf(" " + o + " ") < 0 && (r += o + " ");
i !== (s = vt(r)) && n.setAttribute("class", s)
} return this
},
removeClass: function(e) {
var t, n, r, i, o, a, s, u = 0;
if (g(e)) return this.each(function(t) {
w(this).removeClass(e.call(this, t, mt(this)))
});
if (!arguments.length) return this.attr("class", "");
if ((t = xt(e)).length)
while (n = this[u++])
if (i = mt(n), r = 1 === n.nodeType && " " + vt(i) + " ") {
a = 0;
while (o = t[a++])
while (r.indexOf(" " + o + " ") > -1) r = r.replace(" " + o + " ", " ");
i !== (s = vt(r)) && n.setAttribute("class", s)
} return this
},
toggleClass: function(e, t) {
var n = typeof e,
r = "string" === n || Array.isArray(e);
return "boolean" == typeof t && r ? t ? this.addClass(e) : this.removeClass(e) : g(e) ? this.each(function(n) {
w(this).toggleClass(e.call(this, n, mt(this), t), t)
}) : this.each(function() {
var t, i, o, a;
if (r) {
i = 0, o = w(this), a = xt(e);
while (t = a[i++]) o.hasClass(t) ? o.removeClass(t) : o.addClass(t)
} else void 0 !== e && "boolean" !== n || ((t = mt(this)) && J.set(this, "__className__", t), this.setAttribute && this.setAttribute("class", t || !1 === e ? "" : J.get(this, "__className__") || ""))
})
},
hasClass: function(e) {
var t, n, r = 0;
t = " " + e + " ";
while (n = this[r++])
if (1 === n.nodeType && (" " + vt(mt(n)) + " ").indexOf(t) > -1) return !0;
return !1
}
});
var bt = /r/g;
w.fn.extend({
val: function(e) {
var t, n, r, i = this[0]; {
if (arguments.length) return r = g(e), this.each(function(n) {
var i;
1 === this.nodeType && (null == (i = r ? e.call(this, n, w(this).val()) : e) ? i = "" : "number" == typeof i ? i += "" : Array.isArray(i) && (i = w.map(i, function(e) {
return null == e ? "" : e + ""
})), (t = w.valHooks[this.type] || w.valHooks[this.nodeName.toLowerCase()]) && "set" in t && void 0 !== t.set(this, i, "value") || (this.value = i))
});
if (i) return (t = w.valHooks[i.type] || w.valHooks[i.nodeName.toLowerCase()]) && "get" in t && void 0 !== (n = t.get(i, "value")) ? n : "string" == typeof(n = i.value) ? n.replace(bt, "") : null == n ? "" : n
}
}
}), w.extend({
valHooks: {
option: {
get: function(e) {
var t = w.find.attr(e, "value");
return null != t ? t : vt(w.text(e))
}
},
select: {
get: function(e) {
var t, n, r, i = e.options,
o = e.selectedIndex,
a = "select-one" === e.type,
s = a ? null : [],
u = a ? o + 1 : i.length;
for (r = o < 0 ? u : a ? o : 0; r < u; r++)
if (((n = i[r]).selected || r === o) && !n.disabled && (!n.parentNode.disabled || !N(n.parentNode, "optgroup"))) {
if (t = w(n).val(), a) return t;
s.push(t)
} return s
},
set: function(e, t) {
var n, r, i = e.options,
o = w.makeArray(t),
a = i.length;
while (a--)((r = i[a]).selected = w.inArray(w.valHooks.option.get(r), o) > -1) && (n = !0);
return n || (e.selectedIndex = -1), o
}
}
}
}), w.each(["radio", "checkbox"], function() {
w.valHooks[this] = {
set: function(e, t) {
if (Array.isArray(t)) return e.checked = w.inArray(w(e).val(), t) > -1
}
}, h.checkOn || (w.valHooks[this].get = function(e) {
return null === e.getAttribute("value") ? "on" : e.value
})
}), h.focusin = "onfocusin" in e;
var wt = /^(?:focusinfocus|focusoutblur)$/,
Tt = function(e) {
e.stopPropagation()
};
w.extend(w.event, {
trigger: function(t, n, i, o) {
var a, s, u, l, c, p, d, h, v = [i || r],
m = f.call(t, "type") ? t.type : t,
x = f.call(t, "namespace") ? t.namespace.split(".") : [];
if (s = h = u = i = i || r, 3 !== i.nodeType && 8 !== i.nodeType && !wt.test(m + w.event.triggered) && (m.indexOf(".") > -1 && (m = (x = m.split(".")).shift(), x.sort()), c = m.indexOf(":") < 0 && "on" + m, t = t[w.expando] ? t : new w.Event(m, "object" == typeof t && t), t.isTrigger = o ? 2 : 3, t.namespace = x.join("."), t.rnamespace = t.namespace ? new RegExp("(^|\.)" + x.join("\.(?:.*\.|)") + "(\.|$)") : null, t.result = void 0, t.target || (t.target = i), n = null == n ? [t] : w.makeArray(n, [t]), d = w.event.special[m] || {}, o || !d.trigger || !1 !== d.trigger.apply(i, n))) {
if (!o && !d.noBubble && !y(i)) {
for (l = d.delegateType || m, wt.test(l + m) || (s = s.parentNode); s; s = s.parentNode) v.push(s), u = s;
u === (i.ownerDocument || r) && v.push(u.defaultView || u.parentWindow || e)
}
a = 0;
while ((s = v[a++]) && !t.isPropagationStopped()) h = s, t.type = a > 1 ? l : d.bindType || m, (p = (J.get(s, "events") || {})[t.type] && J.get(s, "handle")) && p.apply(s, n), (p = c && s[c]) && p.apply && Y(s) && (t.result = p.apply(s, n), !1 === t.result && t.preventDefault());
return t.type = m, o || t.isDefaultPrevented() || d._default && !1 !== d._default.apply(v.pop(), n) || !Y(i) || c && g(i[m]) && !y(i) && ((u = i[c]) && (i[c] = null), w.event.triggered = m, t.isPropagationStopped() && h.addEventListener(m, Tt), i[m](), t.isPropagationStopped() && h.removeEventListener(m, Tt), w.event.triggered = void 0, u && (i[c] = u)), t.result
}
},
simulate: function(e, t, n) {
var r = w.extend(new w.Event, n, {
type: e,
isSimulated: !0
});
w.event.trigger(r, null, t)
}
}), w.fn.extend({
trigger: function(e, t) {
return this.each(function() {
w.event.trigger(e, t, this)
})
},
triggerHandler: function(e, t) {
var n = this[0];
if (n) return w.event.trigger(e, t, n, !0)
}
}), h.focusin || w.each({
focus: "focusin",
blur: "focusout"
}, function(e, t) {
var n = function(e) {
w.event.simulate(t, e.target, w.event.fix(e))
};
w.event.special[t] = {
setup: function() {
var r = this.ownerDocument || this,
i = J.access(r, t);
i || r.addEventListener(e, n, !0), J.access(r, t, (i || 0) + 1)
},
teardown: function() {
var r = this.ownerDocument || this,
i = J.access(r, t) - 1;
i ? J.access(r, t, i) : (r.removeEventListener(e, n, !0), J.remove(r, t))
}
}
});
var Ct = e.location,
Et = Date.now(),
kt = /?/;
w.parseXML = function(t) {
var n;
if (!t || "string" != typeof t) return null;
try {
n = (new e.DOMParser).parseFromString(t, "text/xml")
} catch (e) {
n = void 0
}
return n && !n.getElementsByTagName("parsererror").length || w.error("Invalid XML: " + t), n
};
var St = /[]$/,
Dt = /r?n/g,
Nt = /^(?:submit|button|image|reset|file)$/i,
At = /^(?:input|select|textarea|keygen)/i;
function jt(e, t, n, r) {
var i;
if (Array.isArray(t)) w.each(t, function(t, i) {
n || St.test(e) ? r(e, i) : jt(e + "[" + ("object" == typeof i && null != i ? t : "") + "]", i, n, r)
});
else if (n || "object" !== x(t)) r(e, t);
else
for (i in t) jt(e + "[" + i + "]", t[i], n, r)
}
w.param = function(e, t) {
var n, r = [],
i = function(e, t) {
var n = g(t) ? t() : t;
r[r.length] = encodeURIComponent(e) + "=" + encodeURIComponent(null == n ? "" : n)
};
if (Array.isArray(e) || e.jquery && !w.isPlainObject(e)) w.each(e, function() {
i(this.name, this.value)
});
else
for (n in e) jt(n, e[n], t, i);
return r.join("&")
}, w.fn.extend({
serialize: function() {
return w.param(this.serializeArray())
},
serializeArray: function() {
return this.map(function() {
var e = w.prop(this, "elements");
return e ? w.makeArray(e) : this
}).filter(function() {
var e = this.type;
return this.name && !w(this).is(":disabled") && At.test(this.nodeName) && !Nt.test(e) && (this.checked || !pe.test(e))
}).map(function(e, t) {
var n = w(this).val();
return null == n ? null : Array.isArray(n) ? w.map(n, function(e) {
return {
name: t.name,
value: e.replace(Dt, "rn")
}
}) : {
name: t.name,
value: n.replace(Dt, "rn")
}
}).get()
}
});
var qt = /%20/g,
Lt = /#.*$/,
Ht = /([?&])_=[^&]*/,
Ot = /^(.*?):[ t]*([^rn]*)$/gm,
Pt = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,
Mt = /^(?:GET|HEAD)$/,
Rt = /^///,
It = {},
Wt = {},
$t = "*/".concat("*"),
Bt = r.createElement("a");
Bt.href = Ct.href;
function Ft(e) {
return function(t, n) {
"string" != typeof t && (n = t, t = "*");
var r, i = 0,
o = t.toLowerCase().match(M) || [];
if (g(n))
while (r = o[i++]) "+" === r[0] ? (r = r.slice(1) || "*", (e[r] = e[r] || []).unshift(n)) : (e[r] = e[r] || []).push(n)
}
}
function _t(e, t, n, r) {
var i = {},
o = e === Wt;
function a(s) {
var u;
return i[s] = !0, w.each(e[s] || [], function(e, s) {
var l = s(t, n, r);
return "string" != typeof l || o || i[l] ? o ? !(u = l) : void 0 : (t.dataTypes.unshift(l), a(l), !1)
}), u
}
return a(t.dataTypes[0]) || !i["*"] && a("*")
}
function zt(e, t) {
var n, r, i = w.ajaxSettings.flatOptions || {};
for (n in t) void 0 !== t[n] && ((i[n] ? e : r || (r = {}))[n] = t[n]);
return r && w.extend(!0, e, r), e
}
function Xt(e, t, n) {
var r, i, o, a, s = e.contents,
u = e.dataTypes;
while ("*" === u[0]) u.shift(), void 0 === r && (r = e.mimeType || t.getResponseHeader("Content-Type"));
if (r)
for (i in s)
if (s[i] && s[i].test(r)) {
u.unshift(i);
break
} if (u[0] in n) o = u[0];
else {
for (i in n) {
if (!u[0] || e.converters[i + " " + u[0]]) {
o = i;
break
}
a || (a = i)
}
o = o || a
}
if (o) return o !== u[0] && u.unshift(o), n[o]
}
function Ut(e, t, n, r) {
var i, o, a, s, u, l = {},
c = e.dataTypes.slice();
if (c[1])
for (a in e.converters) l[a.toLowerCase()] = e.converters[a];
o = c.shift();
while (o)
if (e.responseFields[o] && (n[e.responseFields[o]] = t), !u && r && e.dataFilter && (t = e.dataFilter(t, e.dataType)), u = o, o = c.shift())
if ("*" === o) o = u;
else if ("*" !== u && u !== o) {
if (!(a = l[u + " " + o] || l["* " + o]))
for (i in l)
if ((s = i.split(" "))[1] === o && (a = l[u + " " + s[0]] || l["* " + s[0]])) {
!0 === a ? a = l[i] : !0 !== l[i] && (o = s[0], c.unshift(s[1]));
break
} if (!0 !== a)
if (a && e["throws"]) t = a(t);
else try {
t = a(t)
} catch (e) {
return {
state: "parsererror",
error: a ? e : "No conversion from " + u + " to " + o
}
}
}
return {
state: "success",
data: t
}
}
w.extend({
active: 0,
lastModified: {},
etag: {},
ajaxSettings: {
url: Ct.href,
type: "GET",
isLocal: Pt.test(Ct.protocol),
global: !0,
processData: !0,
async: !0,
contentType: "application/x-www-form-urlencoded; charset=UTF-8",
accepts: {
"*": $t,
text: "text/plain",
html: "text/html",
xml: "application/xml, text/xml",
json: "application/json, text/javascript"
},
contents: {
xml: /bxmlb/,
html: /bhtml/,
json: /bjsonb/
},
responseFields: {
xml: "responseXML",
text: "responseText",
json: "responseJSON"
},
converters: {
"* text": String,
"text html": !0,
"text json": JSON.parse,
"text xml": w.parseXML
},
flatOptions: {
url: !0,
context: !0
}
},
ajaxSetup: function(e, t) {
return t ? zt(zt(e, w.ajaxSettings), t) : zt(w.ajaxSettings, e)
},
ajaxPrefilter: Ft(It),
ajaxTransport: Ft(Wt),
ajax: function(t, n) {
"object" == typeof t && (n = t, t = void 0), n = n || {};
var i, o, a, s, u, l, c, f, p, d, h = w.ajaxSetup({}, n),
g = h.context || h,
y = h.context && (g.nodeType || g.jquery) ? w(g) : w.event,
v = w.Deferred(),
m = w.Callbacks("once memory"),
x = h.statusCode || {},
b = {},
T = {},
C = "canceled",
E = {
readyState: 0,
getResponseHeader: function(e) {
var t;
if (c) {
if (!s) {
s = {};
while (t = Ot.exec(a)) s[t[1].toLowerCase()] = t[2]
}
t = s[e.toLowerCase()]
}
return null == t ? null : t
},
getAllResponseHeaders: function() {
return c ? a : null
},
setRequestHeader: function(e, t) {
return null == c && (e = T[e.toLowerCase()] = T[e.toLowerCase()] || e, b[e] = t), this
},
overrideMimeType: function(e) {
return null == c && (h.mimeType = e), this
},
statusCode: function(e) {
var t;
if (e)
if (c) E.always(e[E.status]);
else
for (t in e) x[t] = [x[t], e[t]];
return this
},
abort: function(e) {
var t = e || C;
return i && i.abort(t), k(0, t), this
}
};
if (v.promise(E), h.url = ((t || h.url || Ct.href) + "").replace(Rt, Ct.protocol + "//"), h.type = n.method || n.type || h.method || h.type, h.dataTypes = (h.dataType || "*").toLowerCase().match(M) || [""], null == h.crossDomain) {
l = r.createElement("a");
try {
l.href = h.url, l.href = l.href, h.crossDomain = Bt.protocol + "//" + Bt.host != l.protocol + "//" + l.host
} catch (e) {
h.crossDomain = !0
}
}
if (h.data && h.processData && "string" != typeof h.data && (h.data = w.param(h.data, h.traditional)), _t(It, h, n, E), c) return E;
(f = w.event && h.global) && 0 == w.active++ && w.event.trigger("ajaxStart"), h.type = h.type.toUpperCase(), h.hasContent = !Mt.test(h.type), o = h.url.replace(Lt, ""), h.hasContent ? h.data && h.processData && 0 === (h.contentType || "").indexOf("application/x-www-form-urlencoded") && (h.data = h.data.replace(qt, "+")) : (d = h.url.slice(o.length), h.data && (h.processData || "string" == typeof h.data) && (o += (kt.test(o) ? "&" : "?") + h.data, delete h.data), !1 === h.cache && (o = o.replace(Ht, "$1"), d = (kt.test(o) ? "&" : "?") + "_=" + Et++ + d), h.url = o + d), h.ifModified && (w.lastModified[o] && E.setRequestHeader("If-Modified-Since", w.lastModified[o]), w.etag[o] && E.setRequestHeader("If-None-Match", w.etag[o])), (h.data && h.hasContent && !1 !== h.contentType || n.contentType) && E.setRequestHeader("Content-Type", h.contentType), E.setRequestHeader("Accept", h.dataTypes[0] && h.accepts[h.dataTypes[0]] ? h.accepts[h.dataTypes[0]] + ("*" !== h.dataTypes[0] ? ", " + $t + "; q=0.01" : "") : h.accepts["*"]);
for (p in h.headers) E.setRequestHeader(p, h.headers[p]);
if (h.beforeSend && (!1 === h.beforeSend.call(g, E, h) || c)) return E.abort();
if (C = "abort", m.add(h.complete), E.done(h.success), E.fail(h.error), i = _t(Wt, h, n, E)) {
if (E.readyState = 1, f && y.trigger("ajaxSend", [E, h]), c) return E;
h.async && h.timeout > 0 && (u = e.setTimeout(function() {
E.abort("timeout")
}, h.timeout));
try {
c = !1, i.send(b, k)
} catch (e) {
if (c) throw e;
k(-1, e)
}
} else k(-1, "No Transport");
function k(t, n, r, s) {
var l, p, d, b, T, C = n;
c || (c = !0, u && e.clearTimeout(u), i = void 0, a = s || "", E.readyState = t > 0 ? 4 : 0, l = t >= 200 && t < 300 || 304 === t, r && (b = Xt(h, E, r)), b = Ut(h, b, E, l), l ? (h.ifModified && ((T = E.getResponseHeader("Last-Modified")) && (w.lastModified[o] = T), (T = E.getResponseHeader("etag")) && (w.etag[o] = T)), 204 === t || "HEAD" === h.type ? C = "nocontent" : 304 === t ? C = "notmodified" : (C = b.state, p = b.data, l = !(d = b.error))) : (d = C, !t && C || (C = "error", t < 0 && (t = 0))), E.status = t, E.statusText = (n || C) + "", l ? v.resolveWith(g, [p, C, E]) : v.rejectWith(g, [E, C, d]), E.statusCode(x), x = void 0, f && y.trigger(l ? "ajaxSuccess" : "ajaxError", [E, h, l ? p : d]), m.fireWith(g, [E, C]), f && (y.trigger("ajaxComplete", [E, h]), --w.active || w.event.trigger("ajaxStop")))
}
return E
},
getJSON: function(e, t, n) {
return w.get(e, t, n, "json")
},
getScript: function(e, t) {
return w.get(e, void 0, t, "script")
}
}), w.each(["get", "post"], function(e, t) {
w[t] = function(e, n, r, i) {
return g(n) && (i = i || r, r = n, n = void 0), w.ajax(w.extend({
url: e,
type: t,
dataType: i,
data: n,
success: r
}, w.isPlainObject(e) && e))
}
}), w._evalUrl = function(e) {
return w.ajax({
url: e,
type: "GET",
dataType: "script",
cache: !0,
async: !1,
global: !1,
"throws": !0
})
}, w.fn.extend({
wrapAll: function(e) {
var t;
return this[0] && (g(e) && (e = e.call(this[0])), t = w(e, this[0].ownerDocument).eq(0).clone(!0), this[0].parentNode && t.insertBefore(this[0]), t.map(function() {
var e = this;
while (e.firstElementChild) e = e.firstElementChild;
return e
}).append(this)), this
},
wrapInner: function(e) {
return g(e) ? this.each(function(t) {
w(this).wrapInner(e.call(this, t))
}) : this.each(function() {
var t = w(this),
n = t.contents();
n.length ? n.wrapAll(e) : t.append(e)
})
},
wrap: function(e) {
var t = g(e);
return this.each(function(n) {
w(this).wrapAll(t ? e.call(this, n) : e)
})
},
unwrap: function(e) {
return this.parent(e).not("body").each(function() {
w(this).replaceWith(this.childNodes)
}), this
}
}), w.expr.pseudos.hidden = function(e) {
return !w.expr.pseudos.visible(e)
}, w.expr.pseudos.visible = function(e) {
return !!(e.offsetWidth || e.offsetHeight || e.getClientRects().length)
}, w.ajaxSettings.xhr = function() {
try {
return new e.XMLHttpRequest
} catch (e) {}
};
var Vt = {
0: 200,
1223: 204
},
Gt = w.ajaxSettings.xhr();
h.cors = !!Gt && "withCredentials" in Gt, h.ajax = Gt = !!Gt, w.ajaxTransport(function(t) {
var n, r;
if (h.cors || Gt && !t.crossDomain) return {
send: function(i, o) {
var a, s = t.xhr();
if (s.open(t.type, t.url, t.async, t.username, t.password), t.xhrFields)
for (a in t.xhrFields) s[a] = t.xhrFields[a];
t.mimeType && s.overrideMimeType && s.overrideMimeType(t.mimeType), t.crossDomain || i["X-Requested-With"] || (i["X-Requested-With"] = "XMLHttpRequest");
for (a in i) s.setRequestHeader(a, i[a]);
n = function(e) {
return function() {
n && (n = r = s.onload = s.onerror = s.onabort = s.ontimeout = s.onreadystatechange = null, "abort" === e ? s.abort() : "error" === e ? "number" != typeof s.status ? o(0, "error") : o(s.status, s.statusText) : o(Vt[s.status] || s.status, s.statusText, "text" !== (s.responseType || "text") || "string" != typeof s.responseText ? {
binary: s.response
} : {
text: s.responseText
}, s.getAllResponseHeaders()))
}
}, s.onload = n(), r = s.onerror = s.ontimeout = n("error"), void 0 !== s.onabort ? s.onabort = r : s.onreadystatechange = function() {
4 === s.readyState && e.setTimeout(function() {
n && r()
})
}, n = n("abort");
try {
s.send(t.hasContent && t.data || null)
} catch (e) {
if (n) throw e
}
},
abort: function() {
n && n()
}
}
}), w.ajaxPrefilter(function(e) {
e.crossDomain && (e.contents.script = !1)
}), w.ajaxSetup({
accepts: {
script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
},
contents: {
script: /b(?:java|ecma)scriptb/
},
converters: {
"text script": function(e) {
return w.globalEval(e), e
}
}
}), w.ajaxPrefilter("script", function(e) {
void 0 === e.cache && (e.cache = !1), e.crossDomain && (e.type = "GET")
}), w.ajaxTransport("script", function(e) {
if (e.crossDomain) {
var t, n;
return {
send: function(i, o) {
t = w("<script>").prop({
charset: e.scriptCharset,
src: e.url
}).on("load error", n = function(e) {
t.remove(), n = null, e && o("error" === e.type ? 404 : 200, e.type)
}), r.head.appendChild(t[0])
},
abort: function() {
n && n()
}
}
}
});
var Yt = [],
Qt = /(=)?(?=&|$)|??/;
w.ajaxSetup({
jsonp: "callback",
jsonpCallback: function() {
var e = Yt.pop() || w.expando + "_" + Et++;
return this[e] = !0, e
}
}), w.ajaxPrefilter("json jsonp", function(t, n, r) {
var i, o, a, s = !1 !== t.jsonp && (Qt.test(t.url) ? "url" : "string" == typeof t.data && 0 === (t.contentType || "").indexOf("application/x-www-form-urlencoded") && Qt.test(t.data) && "data");
if (s || "jsonp" === t.dataTypes[0]) return i = t.jsonpCallback = g(t.jsonpCallback) ? t.jsonpCallback() : t.jsonpCallback, s ? t[s] = t[s].replace(Qt, "$1" + i) : !1 !== t.jsonp && (t.url += (kt.test(t.url) ? "&" : "?") + t.jsonp + "=" + i), t.converters["script json"] = function() {
return a || w.error(i + " was not called"), a[0]
}, t.dataTypes[0] = "json", o = e[i], e[i] = function() {
a = arguments
}, r.always(function() {
void 0 === o ? w(e).removeProp(i) : e[i] = o, t[i] && (t.jsonpCallback = n.jsonpCallback, Yt.push(i)), a && g(o) && o(a[0]), a = o = void 0
}), "script"
}), h.createHTMLDocument = function() {
var e = r.implementation.createHTMLDocument("").body;
return e.innerHTML = "<form></form><form></form>", 2 === e.childNodes.length
}(), w.parseHTML = function(e, t, n) {
if ("string" != typeof e) return [];
"boolean" == typeof t && (n = t, t = !1);
var i, o, a;
return t || (h.createHTMLDocument ? ((i = (t = r.implementation.createHTMLDocument("")).createElement("base")).href = r.location.href, t.head.appendChild(i)) : t = r), o = A.exec(e), a = !n && [], o ? [t.createElement(o[1])] : (o = xe([e], t, a), a && a.length && w(a).remove(), w.merge([], o.childNodes))
}, w.fn.load = function(e, t, n) {
var r, i, o, a = this,
s = e.indexOf(" ");
return s > -1 && (r = vt(e.slice(s)), e = e.slice(0, s)), g(t) ? (n = t, t = void 0) : t && "object" == typeof t && (i = "POST"), a.length > 0 && w.ajax({
url: e,
type: i || "GET",
dataType: "html",
data: t
}).done(function(e) {
o = arguments, a.html(r ? w("<div>").append(w.parseHTML(e)).find(r) : e)
}).always(n && function(e, t) {
a.each(function() {
n.apply(this, o || [e.responseText, t, e])
})
}), this
}, w.each(["ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], function(e, t) {
w.fn[t] = function(e) {
return this.on(t, e)
}
}), w.expr.pseudos.animated = function(e) {
return w.grep(w.timers, function(t) {
return e === t.elem
}).length
}, w.offset = {
setOffset: function(e, t, n) {
var r, i, o, a, s, u, l, c = w.css(e, "position"),
f = w(e),
p = {};
"static" === c && (e.style.position = "relative"), s = f.offset(), o = w.css(e, "top"), u = w.css(e, "left"), (l = ("absolute" === c || "fixed" === c) && (o + u).indexOf("auto") > -1) ? (a = (r = f.position()).top, i = r.left) : (a = parseFloat(o) || 0, i = parseFloat(u) || 0), g(t) && (t = t.call(e, n, w.extend({}, s))), null != t.top && (p.top = t.top - s.top + a), null != t.left && (p.left = t.left - s.left + i), "using" in t ? t.using.call(e, p) : f.css(p)
}
}, w.fn.extend({
offset: function(e) {
if (arguments.length) return void 0 === e ? this : this.each(function(t) {
w.offset.setOffset(this, e, t)
});
var t, n, r = this[0];
if (r) return r.getClientRects().length ? (t = r.getBoundingClientRect(), n = r.ownerDocument.defaultView, {
top: t.top + n.pageYOffset,
left: t.left + n.pageXOffset
}) : {
top: 0,
left: 0
}
},
position: function() {
if (this[0]) {
var e, t, n, r = this[0],
i = {
top: 0,
left: 0
};
if ("fixed" === w.css(r, "position")) t = r.getBoundingClientRect();
else {
t = this.offset(), n = r.ownerDocument, e = r.offsetParent || n.documentElement;
while (e && (e === n.body || e === n.documentElement) && "static" === w.css(e, "position")) e = e.parentNode;
e && e !== r && 1 === e.nodeType && ((i = w(e).offset()).top += w.css(e, "borderTopWidth", !0), i.left += w.css(e, "borderLeftWidth", !0))
}
return {
top: t.top - i.top - w.css(r, "marginTop", !0),
left: t.left - i.left - w.css(r, "marginLeft", !0)
}
}
},
offsetParent: function() {
return this.map(function() {
var e = this.offsetParent;
while (e && "static" === w.css(e, "position")) e = e.offsetParent;
return e || be
})
}
}), w.each({
scrollLeft: "pageXOffset",
scrollTop: "pageYOffset"
}, function(e, t) {
var n = "pageYOffset" === t;
w.fn[e] = function(r) {
return z(this, function(e, r, i) {
var o;
if (y(e) ? o = e : 9 === e.nodeType && (o = e.defaultView), void 0 === i) return o ? o[t] : e[r];
o ? o.scrollTo(n ? o.pageXOffset : i, n ? i : o.pageYOffset) : e[r] = i
}, e, r, arguments.length)
}
}), w.each(["top", "left"], function(e, t) {
w.cssHooks[t] = _e(h.pixelPosition, function(e, n) {
if (n) return n = Fe(e, t), We.test(n) ? w(e).position()[t] + "px" : n
})
}), w.each({
Height: "height",
Width: "width"
}, function(e, t) {
w.each({
padding: "inner" + e,
content: t,
"": "outer" + e
}, function(n, r) {
w.fn[r] = function(i, o) {
var a = arguments.length && (n || "boolean" != typeof i),
s = n || (!0 === i || !0 === o ? "margin" : "border");
return z(this, function(t, n, i) {
var o;
return y(t) ? 0 === r.indexOf("outer") ? t["inner" + e] : t.document.documentElement["client" + e] : 9 === t.nodeType ? (o = t.documentElement, Math.max(t.body["scroll" + e], o["scroll" + e], t.body["offset" + e], o["offset" + e], o["client" + e])) : void 0 === i ? w.css(t, n, s) : w.style(t, n, i, s)
}, t, a ? i : void 0, a)
}
})
}), w.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "), function(e, t) {
w.fn[t] = function(e, n) {
return arguments.length > 0 ? this.on(t, null, e, n) : this.trigger(t)
}
}), w.fn.extend({
hover: function(e, t) {
return this.mouseenter(e).mouseleave(t || e)
}
}), w.fn.extend({
bind: function(e, t, n) {
return this.on(e, null, t, n)
},
unbind: function(e, t) {
return this.off(e, null, t)
},
delegate: function(e, t, n, r) {
return this.on(t, e, n, r)
},
undelegate: function(e, t, n) {
return 1 === arguments.length ? this.off(e, "**") : this.off(t, e || "**", n)
}
}), w.proxy = function(e, t) {
var n, r, i;
if ("string" == typeof t && (n = e[t], t = e, e = n), g(e)) return r = o.call(arguments, 2), i = function() {
return e.apply(t || this, r.concat(o.call(arguments)))
}, i.guid = e.guid = e.guid || w.guid++, i
}, w.holdReady = function(e) {
e ? w.readyWait++ : w.ready(!0)
}, w.isArray = Array.isArray, w.parseJSON = JSON.parse, w.nodeName = N, w.isFunction = g, w.isWindow = y, w.camelCase = G, w.type = x, w.now = Date.now, w.isNumeric = function(e) {
var t = w.type(e);
return ("number" === t || "string" === t) && !isNaN(e - parseFloat(e))
}, "function" == typeof define && define.amd && define("jquery", [], function() {
return w
});
var Jt = e.jQuery,
Kt = e.$;
return w.noConflict = function(t) {
return e.$ === w && (e.$ = Kt), t && e.jQuery === w && (e.jQuery = Jt), w
}, t || (e.jQuery = e.$ = w), w
});
/*! Bootstrap v4.1.3 (https://getbootstrap.com). Copyright 2011-2018 The Bootstrap Authors */
! function(e, t) {
"object" == typeof exports && "undefined" != typeof module ? t(exports, require("jquery")) : "function" == typeof define && define.amd ? define(["exports", "jquery"], t) : t(e.bootstrap = {}, e.jQuery)
}(this, function(e, t) {
"use strict";
function i(e, t) {
for (var n = 0; n < t.length; n++) {
var i = t[n];
i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i)
}
}
function s(e, t, n) {
return t && i(e.prototype, t), n && i(e, n), e
}
function l(r) {
for (var e = 1; e < arguments.length; e++) {
var o = null != arguments[e] ? arguments[e] : {},
t = Object.keys(o);
"function" == typeof Object.getOwnPropertySymbols && (t = t.concat(Object.getOwnPropertySymbols(o).filter(function(e) {
return Object.getOwnPropertyDescriptor(o, e).enumerable
}))), t.forEach(function(e) {
var t, n, i;
t = r, i = o[n = e], n in t ? Object.defineProperty(t, n, {
value: i,
enumerable: !0,
configurable: !0,
writable: !0
}) : t[n] = i
})
}
return r
}
for (var r, n, o, a, c, u, f, h, d, p, m, g, _, v, y, E, b, w, C, T, S, D, A, I, O, N, k, x, P, L, j, H, M, F, W, R, U, B, q, K, Q, Y, V, z, G, J, Z, X, $, ee, te, ne, ie, re, oe, se, ae, le, ce, ue, fe, he, de, pe, me, ge, _e, ve, ye, Ee, be, we = function(i) {
var t = "transitionend";
function e(e) {
var t = this,
n = !1;
return i(this).one(l.TRANSITION_END, function() {
n = !0
}), setTimeout(function() {
n || l.triggerTransitionEnd(t)
}, e), this
}
var l = {
TRANSITION_END: "bsTransitionEnd",
getUID: function(e) {
for (; e += ~~(1e6 * Math.random()), document.getElementById(e););
return e
},
getSelectorFromElement: function(e) {
var t = e.getAttribute("data-target");
t && "#" !== t || (t = e.getAttribute("href") || "");
try {
return document.querySelector(t) ? t : null
} catch (e) {
return null
}
},
getTransitionDurationFromElement: function(e) {
if (!e) return 0;
var t = i(e).css("transition-duration");
return parseFloat(t) ? (t = t.split(",")[0], 1e3 * parseFloat(t)) : 0
},
reflow: function(e) {
return e.offsetHeight
},
triggerTransitionEnd: function(e) {
i(e).trigger(t)
},
supportsTransitionEnd: function() {
return Boolean(t)
},
isElement: function(e) {
return (e[0] || e).nodeType
},
typeCheckConfig: function(e, t, n) {
for (var i in n)
if (Object.prototype.hasOwnProperty.call(n, i)) {
var r = n[i],
o = t[i],
s = o && l.isElement(o) ? "element" : (a = o, {}.toString.call(a).match(/s([a-z]+)/i)[1].toLowerCase());
if (!new RegExp(r).test(s)) throw new Error(e.toUpperCase() + ': Option "' + i + '" provided type "' + s + '" but expected type "' + r + '".')
} var a
}
};
return i.fn.emulateTransitionEnd = e, i.event.special[l.TRANSITION_END] = {
bindType: t,
delegateType: t,
handle: function(e) {
if (i(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)
}
}, l
}(t = t && t.hasOwnProperty("default") ? t.default : t), Ce = (n = "alert", a = "." + (o = "bs.alert"), c = (r = t).fn[n], u = {
CLOSE: "close" + a,
CLOSED: "closed" + a,
CLICK_DATA_API: "click" + a + ".data-api"
}, f = "alert", h = "fade", d = "show", p = function() {
function i(e) {
this._element = e
}
var e = i.prototype;
return e.close = function(e) {
var t = this._element;
e && (t = this._getRootElement(e)), this._triggerCloseEvent(t).isDefaultPrevented() || this._removeElement(t)
}, e.dispose = function() {
r.removeData(this._element, o), this._element = null
}, e._getRootElement = function(e) {
var t = we.getSelectorFromElement(e),
n = !1;
return t && (n = document.querySelector(t)), n || (n = r(e).closest("." + f)[0]), n
}, e._triggerCloseEvent = function(e) {
var t = r.Event(u.CLOSE);
return r(e).trigger(t), t
}, e._removeElement = function(t) {
var n = this;
if (r(t).removeClass(d), r(t).hasClass(h)) {
var e = we.getTransitionDurationFromElement(t);
r(t).one(we.TRANSITION_END, function(e) {
return n._destroyElement(t, e)
}).emulateTransitionEnd(e)
} else this._destroyElement(t)
}, e._destroyElement = function(e) {
r(e).detach().trigger(u.CLOSED).remove()
}, i._jQueryInterface = function(n) {
return this.each(function() {
var e = r(this),
t = e.data(o);
t || (t = new i(this), e.data(o, t)), "close" === n && t[n](this)
})
}, i._handleDismiss = function(t) {
return function(e) {
e && e.preventDefault(), t.close(this)
}
}, s(i, null, [{
key: "VERSION",
get: function() {
return "4.1.3"
}
}]), i
}(), r(document).on(u.CLICK_DATA_API, '[data-dismiss="alert"]', p._handleDismiss(new p)), r.fn[n] = p._jQueryInterface, r.fn[n].Constructor = p, r.fn[n].noConflict = function() {
return r.fn[n] = c, p._jQueryInterface
}, p), Te = (g = "button", v = "." + (_ = "bs.button"), y = ".data-api", E = (m = t).fn[g], b = "active", w = "btn", T = '[data-toggle^="button"]', S = '[data-toggle="buttons"]', D = "input", A = ".active", I = ".btn", O = {
CLICK_DATA_API: "click" + v + y,
FOCUS_BLUR_DATA_API: (C = "focus") + v + y + " blur" + v + y
}, N = function() {
function n(e) {
this._element = e
}
var e = n.prototype;
return e.toggle = function() {
var e = !0,
t = !0,
n = m(this._element).closest(S)[0];
if (n) {
var i = this._element.querySelector(D);
if (i) {
if ("radio" === i.type)
if (i.checked && this._element.classList.contains(b)) e = !1;
else {
var r = n.querySelector(A);
r && m(r).removeClass(b)
} if (e) {
if (i.hasAttribute("disabled") || n.hasAttribute("disabled") || i.classList.contains("disabled") || n.classList.contains("disabled")) return;
i.checked = !this._element.classList.contains(b), m(i).trigger("change")
}
i.focus(), t = !1
}
}
t && this._element.setAttribute("aria-pressed", !this._element.classList.contains(b)), e && m(this._element).toggleClass(b)
}, e.dispose = function() {
m.removeData(this._element, _), this._element = null
}, n._jQueryInterface = function(t) {
return this.each(function() {
var e = m(this).data(_);
e || (e = new n(this), m(this).data(_, e)), "toggle" === t && e[t]()
})
}, s(n, null, [{
key: "VERSION",
get: function() {
return "4.1.3"
}
}]), n
}(), m(document).on(O.CLICK_DATA_API, T, function(e) {
e.preventDefault();
var t = e.target;
m(t).hasClass(w) || (t = m(t).closest(I)), N._jQueryInterface.call(m(t), "toggle")
}).on(O.FOCUS_BLUR_DATA_API, T, function(e) {
var t = m(e.target).closest(I)[0];
m(t).toggleClass(C, /^focus(in)?$/.test(e.type))
}), m.fn[g] = N._jQueryInterface, m.fn[g].Constructor = N, m.fn[g].noConflict = function() {
return m.fn[g] = E, N._jQueryInterface
}, N), Se = (x = "carousel", L = "." + (P = "bs.carousel"), j = ".data-api", H = (k = t).fn[x], M = {
interval: 5e3,
keyboard: !0,
slide: !1,
pause: "hover",
wrap: !0
}, F = {
interval: "(number|boolean)",
keyboard: "boolean",
slide: "(boolean|string)",
pause: "(string|boolean)",
wrap: "boolean"
}, W = "next", R = "prev", U = "left", B = "right", q = {
SLIDE: "slide" + L,
SLID: "slid" + L,
KEYDOWN: "keydown" + L,
MOUSEENTER: "mouseenter" + L,
MOUSELEAVE: "mouseleave" + L,
TOUCHEND: "touchend" + L,
LOAD_DATA_API: "load" + L + j,
CLICK_DATA_API: "click" + L + j
}, K = "carousel", Q = "active", Y = "slide", V = "carousel-item-right", z = "carousel-item-left", G = "carousel-item-next", J = "carousel-item-prev", Z = ".active", X = ".active.carousel-item", $ = ".carousel-item", ee = ".carousel-item-next, .carousel-item-prev", te = ".carousel-indicators", ne = "[data-slide], [data-slide-to]", ie = '[data-ride="carousel"]', re = function() {
function o(e, t) {
this._items = null, this._interval = null, this._activeElement = null, this._isPaused = !1, this._isSliding = !1, this.touchTimeout = null, this._config = this._getConfig(t), this._element = k(e)[0], this._indicatorsElement = this._element.querySelector(te), this._addEventListeners()
}
var e = o.prototype;
return e.next = function() {
this._isSliding || this._slide(W)
}, e.nextWhenVisible = function() {
!document.hidden && k(this._element).is(":visible") && "hidden" !== k(this._element).css("visibility") && this.next()
}, e.prev = function() {
this._isSliding || this._slide(R)
}, e.pause = function(e) {
e || (this._isPaused = !0), this._element.querySelector(ee) && (we.triggerTransitionEnd(this._element), this.cycle(!0)), clearInterval(this._interval), this._interval = null
}, e.cycle = function(e) {
e || (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))
}, e.to = function(e) {
var t = this;
this._activeElement = this._element.querySelector(X);
var n = this._getItemIndex(this._activeElement);
if (!(e > this._items.length - 1 || e < 0))
if (this._isSliding) k(this._element).one(q.SLID, function() {
return t.to(e)
});
else {
if (n === e) return this.pause(), void this.cycle();
var i = n < e ? W : R;
this._slide(i, this._items[e])
}
}, e.dispose = function() {
k(this._element).off(L), k.removeData(this._element, P), this._items = null, this._config = null, this._element = null, this._interval = null, this._isPaused = null, this._isSliding = null, this._activeElement = null, this._indicatorsElement = null
}, e._getConfig = function(e) {
return e = l({}, M, e), we.typeCheckConfig(x, e, F), e
}, e._addEventListeners = function() {
var t = this;
this._config.keyboard && k(this._element).on(q.KEYDOWN, function(e) {
return t._keydown(e)
}), "hover" === this._config.pause && (k(this._element).on(q.MOUSEENTER, function(e) {
return t.pause(e)
}).on(q.MOUSELEAVE, function(e) {
return t.cycle(e)
}), "ontouchstart" in document.documentElement && k(this._element).on(q.TOUCHEND, function() {
t.pause(), t.touchTimeout && clearTimeout(t.touchTimeout), t.touchTimeout = setTimeout(function(e) {
return t.cycle(e)
}, 500 + t._config.interval)
}))
}, e._keydown = function(e) {
if (!/input|textarea/i.test(e.target.tagName)) switch (e.which) {
case 37:
e.preventDefault(), this.prev();
break;
case 39:
e.preventDefault(), this.next()
}
}, e._getItemIndex = function(e) {
return this._items = e && e.parentNode ? [].slice.call(e.parentNode.querySelectorAll($)) : [], this._items.indexOf(e)
}, e._getItemByDirection = function(e, t) {
var n = e === W,
i = e === R,
r = this._getItemIndex(t),
o = this._items.length - 1;
if ((i && 0 === r || n && r === o) && !this._config.wrap) return t;
var s = (r + (e === R ? -1 : 1)) % this._items.length;
return -1 === s ? this._items[this._items.length - 1] : this._items[s]
}, e._triggerSlideEvent = function(e, t) {
var n = this._getItemIndex(e),
i = this._getItemIndex(this._element.querySelector(X)),
r = k.Event(q.SLIDE, {
relatedTarget: e,
direction: t,
from: i,
to: n
});
return k(this._element).trigger(r), r
}, e._setActiveIndicatorElement = function(e) {
if (this._indicatorsElement) {
var t = [].slice.call(this._indicatorsElement.querySelectorAll(Z));
k(t).removeClass(Q);
var n = this._indicatorsElement.children[this._getItemIndex(e)];
n && k(n).addClass(Q)
}
}, e._slide = function(e, t) {
var n, i, r, o = this,
s = this._element.querySelector(X),
a = this._getItemIndex(s),
l = t || s && this._getItemByDirection(e, s),
c = this._getItemIndex(l),
u = Boolean(this._interval);
if (e === W ? (n = z, i = G, r = U) : (n = V, i = J, r = B), l && k(l).hasClass(Q)) this._isSliding = !1;
else if (!this._triggerSlideEvent(l, r).isDefaultPrevented() && s && l) {
this._isSliding = !0, u && this.pause(), this._setActiveIndicatorElement(l);
var f = k.Event(q.SLID, {
relatedTarget: l,
direction: r,
from: a,
to: c
});
if (k(this._element).hasClass(Y)) {
k(l).addClass(i), we.reflow(l), k(s).addClass(n), k(l).addClass(n);
var h = we.getTransitionDurationFromElement(s);
k(s).one(we.TRANSITION_END, function() {
k(l).removeClass(n + " " + i).addClass(Q), k(s).removeClass(Q + " " + i + " " + n), o._isSliding = !1, setTimeout(function() {
return k(o._element).trigger(f)
}, 0)
}).emulateTransitionEnd(h)
} else k(s).removeClass(Q), k(l).addClass(Q), this._isSliding = !1, k(this._element).trigger(f);
u && this.cycle()
}
}, o._jQueryInterface = function(i) {
return this.each(function() {
var e = k(this).data(P),
t = l({}, M, k(this).data());
"object" == typeof i && (t = l({}, t, i));
var n = "string" == typeof i ? i : t.slide;
if (e || (e = new o(this, t), k(this).data(P, e)), "number" == typeof i) e.to(i);
else if ("string" == typeof n) {
if ("undefined" == typeof e[n]) throw new TypeError('No method named "' + n + '"');
e[n]()
} else t.interval && (e.pause(), e.cycle())
})
}, o._dataApiClickHandler = function(e) {
var t = we.getSelectorFromElement(this);
if (t) {
var n = k(t)[0];
if (n && k(n).hasClass(K)) {
var i = l({}, k(n).data(), k(this).data()),
r = this.getAttribute("data-slide-to");
r && (i.interval = !1), o._jQueryInterface.call(k(n), i), r && k(n).data(P).to(r), e.preventDefault()
}
}
}, s(o, null, [{
key: "VERSION",
get: function() {
return "4.1.3"
}
}, {
key: "Default",
get: function() {
return M
}
}]), o
}(), k(document).on(q.CLICK_DATA_API, ne, re._dataApiClickHandler), k(window).on(q.LOAD_DATA_API, function() {
for (var e = [].slice.call(document.querySelectorAll(ie)), t = 0, n = e.length; t < n; t++) {
var i = k(e[t]);
re._jQueryInterface.call(i, i.data())
}
}), k.fn[x] = re._jQueryInterface, k.fn[x].Constructor = re, k.fn[x].noConflict = function() {
return k.fn[x] = H, re._jQueryInterface
}, re), De = (se = "collapse", le = "." + (ae = "bs.collapse"), ce = (oe = t).fn[se], ue = {
toggle: !0,
parent: ""
}, fe = {
toggle: "boolean",
parent: "(string|element)"
}, he = {
SHOW: "show" + le,
SHOWN: "shown" + le,
HIDE: "hide" + le,
HIDDEN: "hidden" + le,
CLICK_DATA_API: "click" + le + ".data-api"
}, de = "show", pe = "collapse", me = "collapsing", ge = "collapsed", _e = "width", ve = "height", ye = ".show, .collapsing", Ee = '[data-toggle="collapse"]', be = function() {
function a(t, e) {
this._isTransitioning = !1, this._element = t, this._config = this._getConfig(e), this._triggerArray = oe.makeArray(document.querySelectorAll('[data-toggle="collapse"][href="#' + t.id + '"],[data-toggle="collapse"][data-target="#' + t.id + '"]'));
for (var n = [].slice.call(document.querySelectorAll(Ee)), i = 0, r = n.length; i < r; i++) {
var o = n[i],
s = we.getSelectorFromElement(o),
a = [].slice.call(document.querySelectorAll(s)).filter(function(e) {
return e === t
});
null !== s && 0 < a.length && (this._selector = s, 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()
}
var e = a.prototype;
return e.toggle = function() {
oe(this._element).hasClass(de) ? this.hide() : this.show()
}, e.show = function() {
var e, t, n = this;
if (!this._isTransitioning && !oe(this._element).hasClass(de) && (this._parent && 0 === (e = [].slice.call(this._parent.querySelectorAll(ye)).filter(function(e) {
return e.getAttribute("data-parent") === n._config.parent
})).length && (e = null), !(e && (t = oe(e).not(this._selector).data(ae)) && t._isTransitioning))) {
var i = oe.Event(he.SHOW);
if (oe(this._element).trigger(i), !i.isDefaultPrevented()) {
e && (a._jQueryInterface.call(oe(e).not(this._selector), "hide"), t || oe(e).data(ae, null));
var r = this._getDimension();
oe(this._element).removeClass(pe).addClass(me), this._element.style[r] = 0, this._triggerArray.length && oe(this._triggerArray).removeClass(ge).attr("aria-expanded", !0), this.setTransitioning(!0);
var o = "scroll" + (r[0].toUpperCase() + r.slice(1)),
s = we.getTransitionDurationFromElement(this._element);
oe(this._element).one(we.TRANSITION_END, function() {
oe(n._element).removeClass(me).addClass(pe).addClass(de), n._element.style[r] = "", n.setTransitioning(!1), oe(n._element).trigger(he.SHOWN)
}).emulateTransitionEnd(s), this._element.style[r] = this._element[o] + "px"
}
}
}, e.hide = function() {
var e = this;
if (!this._isTransitioning && oe(this._element).hasClass(de)) {
var t = oe.Event(he.HIDE);
if (oe(this._element).trigger(t), !t.isDefaultPrevented()) {
var n = this._getDimension();
this._element.style[n] = this._element.getBoundingClientRect()[n] + "px", we.reflow(this._element), oe(this._element).addClass(me).removeClass(pe).removeClass(de);
var i = this._triggerArray.length;
if (0 < i)
for (var r = 0; r < i; r++) {
var o = this._triggerArray[r],
s = we.getSelectorFromElement(o);
if (null !== s) oe([].slice.call(document.querySelectorAll(s))).hasClass(de) || oe(o).addClass(ge).attr("aria-expanded", !1)
}
this.setTransitioning(!0);
this._element.style[n] = "";
var a = we.getTransitionDurationFromElement(this._element);
oe(this._element).one(we.TRANSITION_END, function() {
e.setTransitioning(!1), oe(e._element).removeClass(me).addClass(pe).trigger(he.HIDDEN)
}).emulateTransitionEnd(a)
}
}
}, e.setTransitioning = function(e) {
this._isTransitioning = e
}, e.dispose = function() {
oe.removeData(this._element, ae), this._config = null, this._parent = null, this._element = null, this._triggerArray = null, this._isTransitioning = null
}, e._getConfig = function(e) {
return (e = l({}, ue, e)).toggle = Boolean(e.toggle), we.typeCheckConfig(se, e, fe), e
}, e._getDimension = function() {
return oe(this._element).hasClass(_e) ? _e : ve
}, e._getParent = function() {
var n = this,
e = null;
we.isElement(this._config.parent) ? (e = this._config.parent, "undefined" != typeof this._config.parent.jquery && (e = this._config.parent[0])) : e = document.querySelector(this._config.parent);
var t = '[data-toggle="collapse"][data-parent="' + this._config.parent + '"]',
i = [].slice.call(e.querySelectorAll(t));
return oe(i).each(function(e, t) {
n._addAriaAndCollapsedClass(a._getTargetFromElement(t), [t])
}), e
}, e._addAriaAndCollapsedClass = function(e, t) {
if (e) {
var n = oe(e).hasClass(de);
t.length && oe(t).toggleClass(ge, !n).attr("aria-expanded", n)
}
}, a._getTargetFromElement = function(e) {
var t = we.getSelectorFromElement(e);
return t ? document.querySelector(t) : null
}, a._jQueryInterface = function(i) {
return this.each(function() {
var e = oe(this),
t = e.data(ae),
n = l({}, ue, e.data(), "object" == typeof i && i ? i : {});
if (!t && n.toggle && /show|hide/.test(i) && (n.toggle = !1), t || (t = new a(this, n), e.data(ae, t)), "string" == typeof i) {
if ("undefined" == typeof t[i]) throw new TypeError('No method named "' + i + '"');
t[i]()
}
})
}, s(a, null, [{
key: "VERSION",
get: function() {
return "4.1.3"
}
}, {
key: "Default",
get: function() {
return ue
}
}]), a
}(), oe(document).on(he.CLICK_DATA_API, Ee, function(e) {
"A" === e.currentTarget.tagName && e.preventDefault();
var n = oe(this),
t = we.getSelectorFromElement(this),
i = [].slice.call(document.querySelectorAll(t));
oe(i).each(function() {
var e = oe(this),
t = e.data(ae) ? "toggle" : n.data();
be._jQueryInterface.call(e, t)
})
}), oe.fn[se] = be._jQueryInterface, oe.fn[se].Constructor = be, oe.fn[se].noConflict = function() {
return oe.fn[se] = ce, be._jQueryInterface
}, be), Ae = "undefined" != typeof window && "undefined" != typeof document, Ie = ["Edge", "Trident", "Firefox"], Oe = 0, Ne = 0; Ne < Ie.length; Ne += 1)
if (Ae && 0 <= navigator.userAgent.indexOf(Ie[Ne])) {
Oe = 1;
break
} var ke = Ae && window.Promise ? function(e) {
var t = !1;
return function() {
t || (t = !0, window.Promise.resolve().then(function() {
t = !1, e()
}))
}
} : function(e) {
var t = !1;
return function() {
t || (t = !0, setTimeout(function() {
t = !1, e()
}, Oe))
}
};
function xe(e) {
return e && "[object Function]" === {}.toString.call(e)
}
function Pe(e, t) {
if (1 !== e.nodeType) return [];
var n = getComputedStyle(e, null);
return t ? n[t] : n
}
function Le(e) {
return "HTML" === e.nodeName ? e : e.parentNode || e.host
}
function je(e) {
if (!e) return document.body;
switch (e.nodeName) {
case "HTML":
case "BODY":
return e.ownerDocument.body;
case "#document":
return e.body
}
var t = Pe(e),
n = t.overflow,
i = t.overflowX,
r = t.overflowY;
return /(auto|scroll|overlay)/.test(n + r + i) ? e : je(Le(e))
}
var He = Ae && !(!window.MSInputMethodContext || !document.documentMode),
Me = Ae && /MSIE 10/.test(navigator.userAgent);
function Fe(e) {
return 11 === e ? He : 10 === e ? Me : He || Me
}
function We(e) {
if (!e) return document.documentElement;
for (var t = Fe(10) ? document.body : null, n = e.offsetParent; n === t && e.nextElementSibling;) n = (e = e.nextElementSibling).offsetParent;
var i = n && n.nodeName;
return i && "BODY" !== i && "HTML" !== i ? -1 !== ["TD", "TABLE"].indexOf(n.nodeName) && "static" === Pe(n, "position") ? We(n) : n : e ? e.ownerDocument.documentElement : document.documentElement
}
function Re(e) {
return null !== e.parentNode ? Re(e.parentNode) : e
}
function Ue(e, t) {
if (!(e && e.nodeType && t && t.nodeType)) return document.documentElement;
var n = e.compareDocumentPosition(t) & Node.DOCUMENT_POSITION_FOLLOWING,
i = n ? e : t,
r = n ? t : e,
o = document.createRange();
o.setStart(i, 0), o.setEnd(r, 0);
var s, a, l = o.commonAncestorContainer;
if (e !== l && t !== l || i.contains(r)) return "BODY" === (a = (s = l).nodeName) || "HTML" !== a && We(s.firstElementChild) !== s ? We(l) : l;
var c = Re(e);
return c.host ? Ue(c.host, t) : Ue(e, Re(t).host)
}
function Be(e) {
var t = "top" === (1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : "top") ? "scrollTop" : "scrollLeft",
n = e.nodeName;
if ("BODY" === n || "HTML" === n) {
var i = e.ownerDocument.documentElement;
return (e.ownerDocument.scrollingElement || i)[t]
}
return e[t]
}
function qe(e, t) {
var n = "x" === t ? "Left" : "Top",
i = "Left" === n ? "Right" : "Bottom";
return parseFloat(e["border" + n + "Width"], 10) + parseFloat(e["border" + i + "Width"], 10)
}
function Ke(e, t, n, i) {
return Math.max(t["offset" + e], t["scroll" + e], n["client" + e], n["offset" + e], n["scroll" + e], Fe(10) ? n["offset" + e] + i["margin" + ("Height" === e ? "Top" : "Left")] + i["margin" + ("Height" === e ? "Bottom" : "Right")] : 0)
}
function Qe() {
var e = document.body,
t = document.documentElement,
n = Fe(10) && getComputedStyle(t);
return {
height: Ke("Height", e, t, n),
width: Ke("Width", e, t, n)
}
}
var Ye = function() {
function i(e, t) {
for (var n = 0; n < t.length; n++) {
var i = t[n];
i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i)
}
}
return function(e, t, n) {
return t && i(e.prototype, t), n && i(e, n), e
}
}(),
Ve = function(e, t, n) {
return t in e ? Object.defineProperty(e, t, {
value: n,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[t] = n, e
},
ze = Object.assign || function(e) {
for (var t = 1; t < arguments.length; t++) {
var n = arguments[t];
for (var i in n) Object.prototype.hasOwnProperty.call(n, i) && (e[i] = n[i])
}
return e
};
function Ge(e) {
return ze({}, e, {
right: e.left + e.width,
bottom: e.top + e.height
})
}
function Je(e) {
var t = {};
try {
if (Fe(10)) {
t = e.getBoundingClientRect();
var n = Be(e, "top"),
i = Be(e, "left");
t.top += n, t.left += i, t.bottom += n, t.right += i
} else t = e.getBoundingClientRect()
} catch (e) {}
var r = {
left: t.left,
top: t.top,
width: t.right - t.left,
height: t.bottom - t.top
},
o = "HTML" === e.nodeName ? Qe() : {},
s = o.width || e.clientWidth || r.right - r.left,
a = o.height || e.clientHeight || r.bottom - r.top,
l = e.offsetWidth - s,
c = e.offsetHeight - a;
if (l || c) {
var u = Pe(e);
l -= qe(u, "x"), c -= qe(u, "y"), r.width -= l, r.height -= c
}
return Ge(r)
}
function Ze(e, t) {
var n = 2 < arguments.length && void 0 !== arguments[2] && arguments[2],
i = Fe(10),
r = "HTML" === t.nodeName,
o = Je(e),
s = Je(t),
a = je(e),
l = Pe(t),
c = parseFloat(l.borderTopWidth, 10),
u = parseFloat(l.borderLeftWidth, 10);
n && "HTML" === t.nodeName && (s.top = Math.max(s.top, 0), s.left = Math.max(s.left, 0));
var f = Ge({
top: o.top - s.top - c,
left: o.left - s.left - u,
width: o.width,
height: o.height
});
if (f.marginTop = 0, f.marginLeft = 0, !i && r) {
var h = parseFloat(l.marginTop, 10),
d = parseFloat(l.marginLeft, 10);
f.top -= c - h, f.bottom -= c - h, f.left -= u - d, f.right -= u - d, f.marginTop = h, f.marginLeft = d
}
return (i && !n ? t.contains(a) : t === a && "BODY" !== a.nodeName) && (f = function(e, t) {
var n = 2 < arguments.length && void 0 !== arguments[2] && arguments[2],
i = Be(t, "top"),
r = Be(t, "left"),
o = n ? -1 : 1;
return e.top += i * o, e.bottom += i * o, e.left += r * o, e.right += r * o, e
}(f, t)), f
}
function Xe(e) {
if (!e || !e.parentElement || Fe()) return document.documentElement;
for (var t = e.parentElement; t && "none" === Pe(t, "transform");) t = t.parentElement;
return t || document.documentElement
}
function $e(e, t, n, i) {
var r = 4 < arguments.length && void 0 !== arguments[4] && arguments[4],
o = {
top: 0,
left: 0
},
s = r ? Xe(e) : Ue(e, t);
if ("viewport" === i) o = function(e) {
var t = 1 < arguments.length && void 0 !== arguments[1] && arguments[1],
n = e.ownerDocument.documentElement,
i = Ze(e, n),
r = Math.max(n.clientWidth, window.innerWidth || 0),
o = Math.max(n.clientHeight, window.innerHeight || 0),
s = t ? 0 : Be(n),
a = t ? 0 : Be(n, "left");
return Ge({
top: s - i.top + i.marginTop,
left: a - i.left + i.marginLeft,
width: r,
height: o
})
}(s, r);
else {
var a = void 0;
"scrollParent" === i ? "BODY" === (a = je(Le(t))).nodeName && (a = e.ownerDocument.documentElement) : a = "window" === i ? e.ownerDocument.documentElement : i;
var l = Ze(a, s, r);
if ("HTML" !== a.nodeName || function e(t) {
var n = t.nodeName;
return "BODY" !== n && "HTML" !== n && ("fixed" === Pe(t, "position") || e(Le(t)))
}(s)) o = l;
else {
var c = Qe(),
u = c.height,
f = c.width;
o.top += l.top - l.marginTop, o.bottom = u + l.top, o.left += l.left - l.marginLeft, o.right = f + l.left
}
}
return o.left += n, o.top += n, o.right -= n, o.bottom -= n, o
}
function et(e, t, i, n, r) {
var o = 5 < arguments.length && void 0 !== arguments[5] ? arguments[5] : 0;
if (-1 === e.indexOf("auto")) return e;
var s = $e(i, n, o, r),
a = {
top: {
width: s.width,
height: t.top - s.top
},
right: {
width: s.right - t.right,
height: s.height
},
bottom: {
width: s.width,
height: s.bottom - t.bottom
},
left: {
width: t.left - s.left,
height: s.height
}
},
l = Object.keys(a).map(function(e) {
return ze({
key: e
}, a[e], {
area: (t = a[e], t.width * t.height)
});
var t
}).sort(function(e, t) {
return t.area - e.area
}),
c = l.filter(function(e) {
var t = e.width,
n = e.height;
return t >= i.clientWidth && n >= i.clientHeight
}),
u = 0 < c.length ? c[0].key : l[0].key,
f = e.split("-")[1];
return u + (f ? "-" + f : "")
}
function tt(e, t, n) {
var i = 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null;
return Ze(n, i ? Xe(t) : Ue(t, n), i)
}
function nt(e) {
var t = getComputedStyle(e),
n = parseFloat(t.marginTop) + parseFloat(t.marginBottom),
i = parseFloat(t.marginLeft) + parseFloat(t.marginRight);
return {
width: e.offsetWidth + i,
height: e.offsetHeight + n
}
}
function it(e) {
var t = {
left: "right",
right: "left",
bottom: "top",
top: "bottom"
};
return e.replace(/left|right|bottom|top/g, function(e) {
return t[e]
})
}
function rt(e, t, n) {
n = n.split("-")[0];
var i = nt(e),
r = {
width: i.width,
height: i.height
},
o = -1 !== ["right", "left"].indexOf(n),
s = o ? "top" : "left",
a = o ? "left" : "top",
l = o ? "height" : "width",
c = o ? "width" : "height";
return r[s] = t[s] + t[l] / 2 - i[l] / 2, r[a] = n === a ? t[a] - i[c] : t[it(a)], r
}
function ot(e, t) {
return Array.prototype.find ? e.find(t) : e.filter(t)[0]
}
function st(e, n, t) {
return (void 0 === t ? e : e.slice(0, function(e, t, n) {
if (Array.prototype.findIndex) return e.findIndex(function(e) {
return e[t] === n
});
var i = ot(e, function(e) {
return e[t] === n
});
return e.indexOf(i)
}(e, "name", t))).forEach(function(e) {
e.function && console.warn("`modifier.function` is deprecated, use `modifier.fn`!");
var t = e.function || e.fn;
e.enabled && xe(t) && (n.offsets.popper = Ge(n.offsets.popper), n.offsets.reference = Ge(n.offsets.reference), n = t(n, e))
}), n
}
function at(e, n) {
return e.some(function(e) {
var t = e.name;
return e.enabled && t === n
})
}
function lt(e) {
for (var t = [!1, "ms", "Webkit", "Moz", "O"], n = e.charAt(0).toUpperCase() + e.slice(1), i = 0; i < t.length; i++) {
var r = t[i],
o = r ? "" + r + n : e;
if ("undefined" != typeof document.body.style[o]) return o
}
return null
}
function ct(e) {
var t = e.ownerDocument;
return t ? t.defaultView : window
}
function ut(e, t, n, i) {
n.updateBound = i, ct(e).addEventListener("resize", n.updateBound, {
passive: !0
});
var r = je(e);
return function e(t, n, i, r) {
var o = "BODY" === t.nodeName,
s = o ? t.ownerDocument.defaultView : t;
s.addEventListener(n, i, {
passive: !0
}), o || e(je(s.parentNode), n, i, r), r.push(s)
}(r, "scroll", n.updateBound, n.scrollParents), n.scrollElement = r, n.eventsEnabled = !0, n
}
function ft() {
var e, t;
this.state.eventsEnabled && (cancelAnimationFrame(this.scheduleUpdate), this.state = (e = this.reference, t = this.state, ct(e).removeEventListener("resize", t.updateBound), t.scrollParents.forEach(function(e) {
e.removeEventListener("scroll", t.updateBound)
}), t.updateBound = null, t.scrollParents = [], t.scrollElement = null, t.eventsEnabled = !1, t))
}
function ht(e) {
return "" !== e && !isNaN(parseFloat(e)) && isFinite(e)
}
function dt(n, i) {
Object.keys(i).forEach(function(e) {
var t = ""; - 1 !== ["width", "height", "top", "right", "bottom", "left"].indexOf(e) && ht(i[e]) && (t = "px"), n.style[e] = i[e] + t
})
}
function pt(e, t, n) {
var i = ot(e, function(e) {
return e.name === t
}),
r = !!i && e.some(function(e) {
return e.name === n && e.enabled && e.order < i.order
});
if (!r) {
var o = "`" + t + "`",
s = "`" + n + "`";
console.warn(s + " modifier is required by " + o + " modifier in order to work, be sure to include it before " + o + "!")
}
return r
}
var mt = ["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"],
gt = mt.slice(3);
function _t(e) {
var t = 1 < arguments.length && void 0 !== arguments[1] && arguments[1],
n = gt.indexOf(e),
i = gt.slice(n + 1).concat(gt.slice(0, n));
return t ? i.reverse() : i
}
var vt = "flip",
yt = "clockwise",
Et = "counterclockwise";
function bt(e, r, o, t) {
var s = [0, 0],
a = -1 !== ["right", "left"].indexOf(t),
n = e.split(/(+|-)/).map(function(e) {
return e.trim()
}),
i = n.indexOf(ot(n, function(e) {
return -1 !== e.search(/,|s/)
}));
n[i] && -1 === n[i].indexOf(",") && console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");
var l = /s*,s*|s+/,
c = -1 !== i ? [n.slice(0, i).concat([n[i].split(l)[0]]), [n[i].split(l)[1]].concat(n.slice(i + 1))] : [n];
return (c = c.map(function(e, t) {
var n = (1 === t ? !a : a) ? "height" : "width",
i = !1;
return e.reduce(function(e, t) {
return "" === e[e.length - 1] && -1 !== ["+", "-"].indexOf(t) ? (e[e.length - 1] = t, i = !0, e) : i ? (e[e.length - 1] += t, i = !1, e) : e.concat(t)
}, []).map(function(e) {
return function(e, t, n, i) {
var r = e.match(/((?:-|+)?d*.?d*)(.*)/),
o = +r[1],
s = r[2];
if (!o) return e;
if (0 === s.indexOf("%")) {
var a = void 0;
switch (s) {
case "%p":
a = n;
break;
case "%":
case "%r":
default:
a = i
}
return Ge(a)[t] / 100 * o
}
if ("vh" === s || "vw" === s) return ("vh" === s ? Math.max(document.documentElement.clientHeight, window.innerHeight || 0) : Math.max(document.documentElement.clientWidth, window.innerWidth || 0)) / 100 * o;
return o
}(e, n, r, o)
})
})).forEach(function(n, i) {
n.forEach(function(e, t) {
ht(e) && (s[i] += e * ("-" === n[t - 1] ? -1 : 1))
})
}), s
}
var wt = {
placement: "bottom",
positionFixed: !1,
eventsEnabled: !0,
removeOnDestroy: !1,
onCreate: function() {},
onUpdate: function() {},
modifiers: {
shift: {
order: 100,
enabled: !0,
fn: function(e) {
var t = e.placement,
n = t.split("-")[0],
i = t.split("-")[1];
if (i) {
var r = e.offsets,
o = r.reference,
s = r.popper,
a = -1 !== ["bottom", "top"].indexOf(n),
l = a ? "left" : "top",
c = a ? "width" : "height",
u = {
start: Ve({}, l, o[l]),
end: Ve({}, l, o[l] + o[c] - s[c])
};
e.offsets.popper = ze({}, s, u[i])
}
return e
}
},
offset: {
order: 200,
enabled: !0,
fn: function(e, t) {
var n = t.offset,
i = e.placement,
r = e.offsets,
o = r.popper,
s = r.reference,
a = i.split("-")[0],
l = void 0;
return l = ht(+n) ? [+n, 0] : bt(n, o, s, a), "left" === a ? (o.top += l[0], o.left -= l[1]) : "right" === a ? (o.top += l[0], o.left += l[1]) : "top" === a ? (o.left += l[0], o.top -= l[1]) : "bottom" === a && (o.left += l[0], o.top += l[1]), e.popper = o, e
},
offset: 0
},
preventOverflow: {
order: 300,
enabled: !0,
fn: function(e, i) {
var t = i.boundariesElement || We(e.instance.popper);
e.instance.reference === t && (t = We(t));
var n = lt("transform"),
r = e.instance.popper.style,
o = r.top,
s = r.left,
a = r[n];
r.top = "", r.left = "", r[n] = "";
var l = $e(e.instance.popper, e.instance.reference, i.padding, t, e.positionFixed);
r.top = o, r.left = s, r[n] = a, i.boundaries = l;
var c = i.priority,
u = e.offsets.popper,
f = {
primary: function(e) {
var t = u[e];
return u[e] < l[e] && !i.escapeWithReference && (t = Math.max(u[e], l[e])), Ve({}, e, t)
},
secondary: function(e) {
var t = "right" === e ? "left" : "top",
n = u[t];
return u[e] > l[e] && !i.escapeWithReference && (n = Math.min(u[t], l[e] - ("right" === e ? u.width : u.height))), Ve({}, t, n)
}
};
return c.forEach(function(e) {
var t = -1 !== ["left", "top"].indexOf(e) ? "primary" : "secondary";
u = ze({}, u, f[t](e))
}), e.offsets.popper = u, e
},
priority: ["left", "right", "top", "bottom"],
padding: 5,
boundariesElement: "scrollParent"
},
keepTogether: {
order: 400,
enabled: !0,
fn: function(e) {
var t = e.offsets,
n = t.popper,
i = t.reference,
r = e.placement.split("-")[0],
o = Math.floor,
s = -1 !== ["top", "bottom"].indexOf(r),
a = s ? "right" : "bottom",
l = s ? "left" : "top",
c = s ? "width" : "height";
return n[a] < o(i[l]) && (e.offsets.popper[l] = o(i[l]) - n[c]), n[l] > o(i[a]) && (e.offsets.popper[l] = o(i[a])), e
}
},
arrow: {
order: 500,
enabled: !0,
fn: function(e, t) {
var n;
if (!pt(e.instance.modifiers, "arrow", "keepTogether")) return e;
var i = t.element;
if ("string" == typeof i) {
if (!(i = e.instance.popper.querySelector(i))) return e
} else if (!e.instance.popper.contains(i)) return console.warn("WARNING: `arrow.element` must be child of its popper element!"), e;
var r = e.placement.split("-")[0],
o = e.offsets,
s = o.popper,
a = o.reference,
l = -1 !== ["left", "right"].indexOf(r),
c = l ? "height" : "width",
u = l ? "Top" : "Left",
f = u.toLowerCase(),
h = l ? "left" : "top",
d = l ? "bottom" : "right",
p = nt(i)[c];
a[d] - p < s[f] && (e.offsets.popper[f] -= s[f] - (a[d] - p)), a[f] + p > s[d] && (e.offsets.popper[f] += a[f] + p - s[d]), e.offsets.popper = Ge(e.offsets.popper);
var m = a[f] + a[c] / 2 - p / 2,
g = Pe(e.instance.popper),
_ = parseFloat(g["margin" + u], 10),
v = parseFloat(g["border" + u + "Width"], 10),
y = m - e.offsets.popper[f] - _ - v;
return y = Math.max(Math.min(s[c] - p, y), 0), e.arrowElement = i, e.offsets.arrow = (Ve(n = {}, f, Math.round(y)), Ve(n, h, ""), n), e
},
element: "[x-arrow]"
},
flip: {
order: 600,
enabled: !0,
fn: function(p, m) {
if (at(p.instance.modifiers, "inner")) return p;
if (p.flipped && p.placement === p.originalPlacement) return p;
var g = $e(p.instance.popper, p.instance.reference, m.padding, m.boundariesElement, p.positionFixed),
_ = p.placement.split("-")[0],
v = it(_),
y = p.placement.split("-")[1] || "",
E = [];
switch (m.behavior) {
case vt:
E = [_, v];
break;
case yt:
E = _t(_);
break;
case Et:
E = _t(_, !0);
break;
default:
E = m.behavior
}
return E.forEach(function(e, t) {
if (_ !== e || E.length === t + 1) return p;
_ = p.placement.split("-")[0], v = it(_);
var n, i = p.offsets.popper,
r = p.offsets.reference,
o = Math.floor,
s = "left" === _ && o(i.right) > o(r.left) || "right" === _ && o(i.left) < o(r.right) || "top" === _ && o(i.bottom) > o(r.top) || "bottom" === _ && o(i.top) < o(r.bottom),
a = o(i.left) < o(g.left),
l = o(i.right) > o(g.right),
c = o(i.top) < o(g.top),
u = o(i.bottom) > o(g.bottom),
f = "left" === _ && a || "right" === _ && l || "top" === _ && c || "bottom" === _ && u,
h = -1 !== ["top", "bottom"].indexOf(_),
d = !!m.flipVariations && (h && "start" === y && a || h && "end" === y && l || !h && "start" === y && c || !h && "end" === y && u);
(s || f || d) && (p.flipped = !0, (s || f) && (_ = E[t + 1]), d && (y = "end" === (n = y) ? "start" : "start" === n ? "end" : n), p.placement = _ + (y ? "-" + y : ""), p.offsets.popper = ze({}, p.offsets.popper, rt(p.instance.popper, p.offsets.reference, p.placement)), p = st(p.instance.modifiers, p, "flip"))
}), p
},
behavior: "flip",
padding: 5,
boundariesElement: "viewport"
},
inner: {
order: 700,
enabled: !1,
fn: function(e) {
var t = e.placement,
n = t.split("-")[0],
i = e.offsets,
r = i.popper,
o = i.reference,
s = -1 !== ["left", "right"].indexOf(n),
a = -1 === ["top", "left"].indexOf(n);
return r[s ? "left" : "top"] = o[n] - (a ? r[s ? "width" : "height"] : 0), e.placement = it(t), e.offsets.popper = Ge(r), e
}
},
hide: {
order: 800,
enabled: !0,
fn: function(e) {
if (!pt(e.instance.modifiers, "hide", "preventOverflow")) return e;
var t = e.offsets.reference,
n = ot(e.instance.modifiers, function(e) {
return "preventOverflow" === e.name
}).boundaries;
if (t.bottom < n.top || t.left > n.right || t.top > n.bottom || t.right < n.left) {
if (!0 === e.hide) return e;
e.hide = !0, e.attributes["x-out-of-boundaries"] = ""
} else {
if (!1 === e.hide) return e;
e.hide = !1, e.attributes["x-out-of-boundaries"] = !1
}
return e
}
},
computeStyle: {
order: 850,
enabled: !0,
fn: function(e, t) {
var n = t.x,
i = t.y,
r = e.offsets.popper,
o = ot(e.instance.modifiers, function(e) {
return "applyStyle" === e.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 s = void 0 !== o ? o : t.gpuAcceleration,
a = Je(We(e.instance.popper)),
l = {
position: r.position
},
c = {
left: Math.floor(r.left),
top: Math.round(r.top),
bottom: Math.round(r.bottom),
right: Math.floor(r.right)
},
u = "bottom" === n ? "top" : "bottom",
f = "right" === i ? "left" : "right",
h = lt("transform"),
d = void 0,
p = void 0;
if (p = "bottom" === u ? -a.height + c.bottom : c.top, d = "right" === f ? -a.width + c.right : c.left, s && h) l[h] = "translate3d(" + d + "px, " + p + "px, 0)", l[u] = 0, l[f] = 0, l.willChange = "transform";
else {
var m = "bottom" === u ? -1 : 1,
g = "right" === f ? -1 : 1;
l[u] = p * m, l[f] = d * g, l.willChange = u + ", " + f
}
var _ = {
"x-placement": e.placement
};
return e.attributes = ze({}, _, e.attributes), e.styles = ze({}, l, e.styles), e.arrowStyles = ze({}, e.offsets.arrow, e.arrowStyles), e
},
gpuAcceleration: !0,
x: "bottom",
y: "right"
},
applyStyle: {
order: 900,
enabled: !0,
fn: function(e) {
var t, n;
return dt(e.instance.popper, e.styles), t = e.instance.popper, n = e.attributes, Object.keys(n).forEach(function(e) {
!1 !== n[e] ? t.setAttribute(e, n[e]) : t.removeAttribute(e)
}), e.arrowElement && Object.keys(e.arrowStyles).length && dt(e.arrowElement, e.arrowStyles), e
},
onLoad: function(e, t, n, i, r) {
var o = tt(r, t, e, n.positionFixed),
s = et(n.placement, o, t, e, n.modifiers.flip.boundariesElement, n.modifiers.flip.padding);
return t.setAttribute("x-placement", s), dt(t, {
position: n.positionFixed ? "fixed" : "absolute"
}), n
},
gpuAcceleration: void 0
}
}
},
Ct = function() {
function o(e, t) {
var n = this,
i = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : {};
! function(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
}(this, o), this.scheduleUpdate = function() {
return requestAnimationFrame(n.update)
}, this.update = ke(this.update.bind(this)), this.options = ze({}, o.Defaults, i), this.state = {
isDestroyed: !1,
isCreated: !1,
scrollParents: []
}, this.reference = e && e.jquery ? e[0] : e, this.popper = t && t.jquery ? t[0] : t, this.options.modifiers = {}, Object.keys(ze({}, o.Defaults.modifiers, i.modifiers)).forEach(function(e) {
n.options.modifiers[e] = ze({}, o.Defaults.modifiers[e] || {}, i.modifiers ? i.modifiers[e] : {})
}), this.modifiers = Object.keys(this.options.modifiers).map(function(e) {
return ze({
name: e
}, n.options.modifiers[e])
}).sort(function(e, t) {
return e.order - t.order
}), this.modifiers.forEach(function(e) {
e.enabled && xe(e.onLoad) && e.onLoad(n.reference, n.popper, n.options, e, n.state)
}), this.update();
var r = this.options.eventsEnabled;
r && this.enableEventListeners(), this.state.eventsEnabled = r
}
return Ye(o, [{
key: "update",
value: function() {
return function() {
if (!this.state.isDestroyed) {
var e = {
instance: this,
styles: {},
arrowStyles: {},
attributes: {},
flipped: !1,
offsets: {}
};
e.offsets.reference = tt(this.state, this.popper, this.reference, this.options.positionFixed), e.placement = et(this.options.placement, e.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding), e.originalPlacement = e.placement, e.positionFixed = this.options.positionFixed, e.offsets.popper = rt(this.popper, e.offsets.reference, e.placement), e.offsets.popper.position = this.options.positionFixed ? "fixed" : "absolute", e = st(this.modifiers, e), this.state.isCreated ? this.options.onUpdate(e) : (this.state.isCreated = !0, this.options.onCreate(e))
}
}.call(this)
}
}, {
key: "destroy",
value: function() {
return function() {
return this.state.isDestroyed = !0, at(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[lt("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 = ut(this.reference, this.options, this.state, this.scheduleUpdate))
}.call(this)
}
}, {
key: "disableEventListeners",
value: function() {
return ft.call(this)
}
}]), o
}();
Ct.Utils = ("undefined" != typeof window ? window : global).PopperUtils, Ct.placements = mt, Ct.Defaults = wt;
var Tt, St, Dt, At, It, Ot, Nt, kt, xt, Pt, Lt, jt, Ht, Mt, Ft, Wt, Rt, Ut, Bt, qt, Kt, Qt, Yt, Vt, zt, Gt, Jt, Zt, Xt, $t, en, tn, nn, rn, on, sn, an, ln, cn, un, fn, hn, dn, pn, mn, gn, _n, vn, yn, En, bn, wn, Cn, Tn, Sn, Dn, An, In, On, Nn, kn, xn, Pn, Ln, jn, Hn, Mn, Fn, Wn, Rn, Un, Bn, qn, Kn, Qn, Yn, Vn, zn, Gn, Jn, Zn, Xn, $n, ei, ti, ni, ii, ri, oi, si, ai, li, ci, ui, fi, hi, di, pi, mi, gi, _i, vi, yi, Ei, bi, wi, Ci, Ti, Si, Di, Ai, Ii, Oi, Ni, ki, xi, Pi, Li, ji, Hi, Mi, Fi, Wi, Ri, Ui, Bi = (St = "dropdown", At = "." + (Dt = "bs.dropdown"), It = ".data-api", Ot = (Tt = t).fn[St], Nt = new RegExp("38|40|27"), kt = {
HIDE: "hide" + At,
HIDDEN: "hidden" + At,
SHOW: "show" + At,
SHOWN: "shown" + At,
CLICK: "click" + At,
CLICK_DATA_API: "click" + At + It,
KEYDOWN_DATA_API: "keydown" + At + It,
KEYUP_DATA_API: "keyup" + At + It
}, xt = "disabled", Pt = "show", Lt = "dropup", jt = "dropright", Ht = "dropleft", Mt = "dropdown-menu-right", Ft = "position-static", Wt = '[data-toggle="dropdown"]', Rt = ".dropdown form", Ut = ".dropdown-menu", Bt = ".navbar-nav", qt = ".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)", Kt = "top-start", Qt = "top-end", Yt = "bottom-start", Vt = "bottom-end", zt = "right-start", Gt = "left-start", Jt = {
offset: 0,
flip: !0,
boundary: "scrollParent",
reference: "toggle",
display: "dynamic"
}, Zt = {
offset: "(number|string|function)",
flip: "boolean",
boundary: "(string|element)",
reference: "(string|element)",
display: "string"
}, Xt = function() {
function c(e, t) {
this._element = e, this._popper = null, this._config = this._getConfig(t), this._menu = this._getMenuElement(), this._inNavbar = this._detectNavbar(), this._addEventListeners()
}
var e = c.prototype;
return e.toggle = function() {
if (!this._element.disabled && !Tt(this._element).hasClass(xt)) {
var e = c._getParentFromElement(this._element),
t = Tt(this._menu).hasClass(Pt);
if (c._clearMenus(), !t) {
var n = {
relatedTarget: this._element
},
i = Tt.Event(kt.SHOW, n);
if (Tt(e).trigger(i), !i.isDefaultPrevented()) {
if (!this._inNavbar) {
if ("undefined" == typeof Ct) throw new TypeError("Bootstrap dropdown require Popper.js (https://popper.js.org)");
var r = this._element;
"parent" === this._config.reference ? r = e : we.isElement(this._config.reference) && (r = this._config.reference, "undefined" != typeof this._config.reference.jquery && (r = this._config.reference[0])), "scrollParent" !== this._config.boundary && Tt(e).addClass(Ft), this._popper = new Ct(r, this._menu, this._getPopperConfig())
}
"ontouchstart" in document.documentElement && 0 === Tt(e).closest(Bt).length && Tt(document.body).children().on("mouseover", null, Tt.noop), this._element.focus(), this._element.setAttribute("aria-expanded", !0), Tt(this._menu).toggleClass(Pt), Tt(e).toggleClass(Pt).trigger(Tt.Event(kt.SHOWN, n))
}
}
}
}, e.dispose = function() {
Tt.removeData(this._element, Dt), Tt(this._element).off(At), this._element = null, (this._menu = null) !== this._popper && (this._popper.destroy(), this._popper = null)
}, e.update = function() {
this._inNavbar = this._detectNavbar(), null !== this._popper && this._popper.scheduleUpdate()
}, e._addEventListeners = function() {
var t = this;
Tt(this._element).on(kt.CLICK, function(e) {
e.preventDefault(), e.stopPropagation(), t.toggle()
})
}, e._getConfig = function(e) {
return e = l({}, this.constructor.Default, Tt(this._element).data(), e), we.typeCheckConfig(St, e, this.constructor.DefaultType), e
}, e._getMenuElement = function() {
if (!this._menu) {
var e = c._getParentFromElement(this._element);
e && (this._menu = e.querySelector(Ut))
}
return this._menu
}, e._getPlacement = function() {
var e = Tt(this._element.parentNode),
t = Yt;
return e.hasClass(Lt) ? (t = Kt, Tt(this._menu).hasClass(Mt) && (t = Qt)) : e.hasClass(jt) ? t = zt : e.hasClass(Ht) ? t = Gt : Tt(this._menu).hasClass(Mt) && (t = Vt), t
}, e._detectNavbar = function() {
return 0 < Tt(this._element).closest(".navbar").length
}, e._getPopperConfig = function() {
var t = this,
e = {};
"function" == typeof this._config.offset ? e.fn = function(e) {
return e.offsets = l({}, e.offsets, t._config.offset(e.offsets) || {}), e
} : e.offset = this._config.offset;
var n = {
placement: this._getPlacement(),
modifiers: {
offset: e,
flip: {
enabled: this._config.flip
},
preventOverflow: {
boundariesElement: this._config.boundary
}
}
};
return "static" === this._config.display && (n.modifiers.applyStyle = {
enabled: !1
}), n
}, c._jQueryInterface = function(t) {
return this.each(function() {
var e = Tt(this).data(Dt);
if (e || (e = new c(this, "object" == typeof t ? t : null), Tt(this).data(Dt, e)), "string" == typeof t) {
if ("undefined" == typeof e[t]) throw new TypeError('No method named "' + t + '"');
e[t]()
}
})
}, c._clearMenus = function(e) {
if (!e || 3 !== e.which && ("keyup" !== e.type || 9 === e.which))
for (var t = [].slice.call(document.querySelectorAll(Wt)), n = 0, i = t.length; n < i; n++) {
var r = c._getParentFromElement(t[n]),
o = Tt(t[n]).data(Dt),
s = {
relatedTarget: t[n]
};
if (e && "click" === e.type && (s.clickEvent = e), o) {
var a = o._menu;
if (Tt(r).hasClass(Pt) && !(e && ("click" === e.type && /input|textarea/i.test(e.target.tagName) || "keyup" === e.type && 9 === e.which) && Tt.contains(r, e.target))) {
var l = Tt.Event(kt.HIDE, s);
Tt(r).trigger(l), l.isDefaultPrevented() || ("ontouchstart" in document.documentElement && Tt(document.body).children().off("mouseover", null, Tt.noop), t[n].setAttribute("aria-expanded", "false"), Tt(a).removeClass(Pt), Tt(r).removeClass(Pt).trigger(Tt.Event(kt.HIDDEN, s)))
}
}
}
}, c._getParentFromElement = function(e) {
var t, n = we.getSelectorFromElement(e);
return n && (t = document.querySelector(n)), t || e.parentNode
}, c._dataApiKeydownHandler = function(e) {
if ((/input|textarea/i.test(e.target.tagName) ? !(32 === e.which || 27 !== e.which && (40 !== e.which && 38 !== e.which || Tt(e.target).closest(Ut).length)) : Nt.test(e.which)) && (e.preventDefault(), e.stopPropagation(), !this.disabled && !Tt(this).hasClass(xt))) {
var t = c._getParentFromElement(this),
n = Tt(t).hasClass(Pt);
if ((n || 27 === e.which && 32 === e.which) && (!n || 27 !== e.which && 32 !== e.which)) {
var i = [].slice.call(t.querySelectorAll(qt));
if (0 !== i.length) {
var r = i.indexOf(e.target);
38 === e.which && 0 < r && r--, 40 === e.which && r < i.length - 1 && r++, r < 0 && (r = 0), i[r].focus()
}
} else {
if (27 === e.which) {
var o = t.querySelector(Wt);
Tt(o).trigger("focus")
}
Tt(this).trigger("click")
}
}
}, s(c, null, [{
key: "VERSION",
get: function() {
return "4.1.3"
}
}, {
key: "Default",
get: function() {
return Jt
}
}, {
key: "DefaultType",
get: function() {
return Zt
}
}]), c
}(), Tt(document).on(kt.KEYDOWN_DATA_API, Wt, Xt._dataApiKeydownHandler).on(kt.KEYDOWN_DATA_API, Ut, Xt._dataApiKeydownHandler).on(kt.CLICK_DATA_API + " " + kt.KEYUP_DATA_API, Xt._clearMenus).on(kt.CLICK_DATA_API, Wt, function(e) {
e.preventDefault(), e.stopPropagation(), Xt._jQueryInterface.call(Tt(this), "toggle")
}).on(kt.CLICK_DATA_API, Rt, function(e) {
e.stopPropagation()
}), Tt.fn[St] = Xt._jQueryInterface, Tt.fn[St].Constructor = Xt, Tt.fn[St].noConflict = function() {
return Tt.fn[St] = Ot, Xt._jQueryInterface
}, Xt),
qi = (en = "modal", nn = "." + (tn = "bs.modal"), rn = ($t = t).fn[en], on = {
backdrop: !0,
keyboard: !0,
focus: !0,
show: !0
}, sn = {
backdrop: "(boolean|string)",
keyboard: "boolean",
focus: "boolean",
show: "boolean"
}, an = {
HIDE: "hide" + nn,
HIDDEN: "hidden" + nn,
SHOW: "show" + nn,
SHOWN: "shown" + nn,
FOCUSIN: "focusin" + nn,
RESIZE: "resize" + nn,
CLICK_DISMISS: "click.dismiss" + nn,
KEYDOWN_DISMISS: "keydown.dismiss" + nn,
MOUSEUP_DISMISS: "mouseup.dismiss" + nn,
MOUSEDOWN_DISMISS: "mousedown.dismiss" + nn,
CLICK_DATA_API: "click" + nn + ".data-api"
}, ln = "modal-scrollbar-measure", cn = "modal-backdrop", un = "modal-open", fn = "fade", hn = "show", dn = ".modal-dialog", pn = '[data-toggle="modal"]', mn = '[data-dismiss="modal"]', gn = ".fixed-top, .fixed-bottom, .is-fixed, .sticky-top", _n = ".sticky-top", vn = function() {
function r(e, t) {
this._config = this._getConfig(t), this._element = e, this._dialog = e.querySelector(dn), this._backdrop = null, this._isShown = !1, this._isBodyOverflowing = !1, this._ignoreBackdropClick = !1, this._scrollbarWidth = 0
}
var e = r.prototype;
return e.toggle = function(e) {
return this._isShown ? this.hide() : this.show(e)
}, e.show = function(e) {
var t = this;
if (!this._isTransitioning && !this._isShown) {
$t(this._element).hasClass(fn) && (this._isTransitioning = !0);
var n = $t.Event(an.SHOW, {
relatedTarget: e
});
$t(this._element).trigger(n), this._isShown || n.isDefaultPrevented() || (this._isShown = !0, this._checkScrollbar(), this._setScrollbar(), this._adjustDialog(), $t(document.body).addClass(un), this._setEscapeEvent(), this._setResizeEvent(), $t(this._element).on(an.CLICK_DISMISS, mn, function(e) {
return t.hide(e)
}), $t(this._dialog).on(an.MOUSEDOWN_DISMISS, function() {
$t(t._element).one(an.MOUSEUP_DISMISS, function(e) {
$t(e.target).is(t._element) && (t._ignoreBackdropClick = !0)
})
}), this._showBackdrop(function() {
return t._showElement(e)
}))
}
}, e.hide = function(e) {
var t = this;
if (e && e.preventDefault(), !this._isTransitioning && this._isShown) {
var n = $t.Event(an.HIDE);
if ($t(this._element).trigger(n), this._isShown && !n.isDefaultPrevented()) {
this._isShown = !1;
var i = $t(this._element).hasClass(fn);
if (i && (this._isTransitioning = !0), this._setEscapeEvent(), this._setResizeEvent(), $t(document).off(an.FOCUSIN), $t(this._element).removeClass(hn), $t(this._element).off(an.CLICK_DISMISS), $t(this._dialog).off(an.MOUSEDOWN_DISMISS), i) {
var r = we.getTransitionDurationFromElement(this._element);
$t(this._element).one(we.TRANSITION_END, function(e) {
return t._hideModal(e)
}).emulateTransitionEnd(r)
} else this._hideModal()
}
}
}, e.dispose = function() {
$t.removeData(this._element, tn), $t(window, document, this._element, this._backdrop).off(nn), this._config = null, this._element = null, this._dialog = null, this._backdrop = null, this._isShown = null, this._isBodyOverflowing = null, this._ignoreBackdropClick = null, this._scrollbarWidth = null
}, e.handleUpdate = function() {
this._adjustDialog()
}, e._getConfig = function(e) {
return e = l({}, on, e), we.typeCheckConfig(en, e, sn), e
}, e._showElement = function(e) {
var t = this,
n = $t(this._element).hasClass(fn);
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.scrollTop = 0, n && we.reflow(this._element), $t(this._element).addClass(hn), this._config.focus && this._enforceFocus();
var i = $t.Event(an.SHOWN, {
relatedTarget: e
}),
r = function() {
t._config.focus && t._element.focus(), t._isTransitioning = !1, $t(t._element).trigger(i)
};
if (n) {
var o = we.getTransitionDurationFromElement(this._element);
$t(this._dialog).one(we.TRANSITION_END, r).emulateTransitionEnd(o)
} else r()
}, e._enforceFocus = function() {
var t = this;
$t(document).off(an.FOCUSIN).on(an.FOCUSIN, function(e) {
document !== e.target && t._element !== e.target && 0 === $t(t._element).has(e.target).length && t._element.focus()
})
}, e._setEscapeEvent = function() {
var t = this;
this._isShown && this._config.keyboard ? $t(this._element).on(an.KEYDOWN_DISMISS, function(e) {
27 === e.which && (e.preventDefault(), t.hide())
}) : this._isShown || $t(this._element).off(an.KEYDOWN_DISMISS)
}, e._setResizeEvent = function() {
var t = this;
this._isShown ? $t(window).on(an.RESIZE, function(e) {
return t.handleUpdate(e)
}) : $t(window).off(an.RESIZE)
}, e._hideModal = function() {
var e = this;
this._element.style.display = "none", this._element.setAttribute("aria-hidden", !0), this._isTransitioning = !1, this._showBackdrop(function() {
$t(document.body).removeClass(un), e._resetAdjustments(), e._resetScrollbar(), $t(e._element).trigger(an.HIDDEN)
})
}, e._removeBackdrop = function() {
this._backdrop && ($t(this._backdrop).remove(), this._backdrop = null)
}, e._showBackdrop = function(e) {
var t = this,
n = $t(this._element).hasClass(fn) ? fn : "";
if (this._isShown && this._config.backdrop) {
if (this._backdrop = document.createElement("div"), this._backdrop.className = cn, n && this._backdrop.classList.add(n), $t(this._backdrop).appendTo(document.body), $t(this._element).on(an.CLICK_DISMISS, function(e) {
t._ignoreBackdropClick ? t._ignoreBackdropClick = !1 : e.target === e.currentTarget && ("static" === t._config.backdrop ? t._element.focus() : t.hide())
}), n && we.reflow(this._backdrop), $t(this._backdrop).addClass(hn), !e) return;
if (!n) return void e();
var i = we.getTransitionDurationFromElement(this._backdrop);
$t(this._backdrop).one(we.TRANSITION_END, e).emulateTransitionEnd(i)
} else if (!this._isShown && this._backdrop) {
$t(this._backdrop).removeClass(hn);
var r = function() {
t._removeBackdrop(), e && e()
};
if ($t(this._element).hasClass(fn)) {
var o = we.getTransitionDurationFromElement(this._backdrop);
$t(this._backdrop).one(we.TRANSITION_END, r).emulateTransitionEnd(o)
} else r()
} else e && e()
}, e._adjustDialog = function() {
var e = this._element.scrollHeight > document.documentElement.clientHeight;
!this._isBodyOverflowing && e && (this._element.style.paddingLeft = this._scrollbarWidth + "px"), this._isBodyOverflowing && !e && (this._element.style.paddingRight = this._scrollbarWidth + "px")
}, e._resetAdjustments = function() {
this._element.style.paddingLeft = "", this._element.style.paddingRight = ""
}, e._checkScrollbar = function() {
var e = document.body.getBoundingClientRect();
this._isBodyOverflowing = e.left + e.right < window.innerWidth, this._scrollbarWidth = this._getScrollbarWidth()
}, e._setScrollbar = function() {
var r = this;
if (this._isBodyOverflowing) {
var e = [].slice.call(document.querySelectorAll(gn)),
t = [].slice.call(document.querySelectorAll(_n));
$t(e).each(function(e, t) {
var n = t.style.paddingRight,
i = $t(t).css("padding-right");
$t(t).data("padding-right", n).css("padding-right", parseFloat(i) + r._scrollbarWidth + "px")
}), $t(t).each(function(e, t) {
var n = t.style.marginRight,
i = $t(t).css("margin-right");
$t(t).data("margin-right", n).css("margin-right", parseFloat(i) - r._scrollbarWidth + "px")
});
var n = document.body.style.paddingRight,
i = $t(document.body).css("padding-right");
$t(document.body).data("padding-right", n).css("padding-right", parseFloat(i) + this._scrollbarWidth + "px")
}
}, e._resetScrollbar = function() {
var e = [].slice.call(document.querySelectorAll(gn));
$t(e).each(function(e, t) {
var n = $t(t).data("padding-right");
$t(t).removeData("padding-right"), t.style.paddingRight = n || ""
});
var t = [].slice.call(document.querySelectorAll("" + _n));
$t(t).each(function(e, t) {
var n = $t(t).data("margin-right");
"undefined" != typeof n && $t(t).css("margin-right", n).removeData("margin-right")
});
var n = $t(document.body).data("padding-right");
$t(document.body).removeData("padding-right"), document.body.style.paddingRight = n || ""
}, e._getScrollbarWidth = function() {
var e = document.createElement("div");
e.className = ln, document.body.appendChild(e);
var t = e.getBoundingClientRect().width - e.clientWidth;
return document.body.removeChild(e), t
}, r._jQueryInterface = function(n, i) {
return this.each(function() {
var e = $t(this).data(tn),
t = l({}, on, $t(this).data(), "object" == typeof n && n ? n : {});
if (e || (e = new r(this, t), $t(this).data(tn, e)), "string" == typeof n) {
if ("undefined" == typeof e[n]) throw new TypeError('No method named "' + n + '"');
e[n](i)
} else t.show && e.show(i)
})
}, s(r, null, [{
key: "VERSION",
get: function() {
return "4.1.3"
}
}, {
key: "Default",
get: function() {
return on
}
}]), r
}(), $t(document).on(an.CLICK_DATA_API, pn, function(e) {
var t, n = this,
i = we.getSelectorFromElement(this);
i && (t = document.querySelector(i));
var r = $t(t).data(tn) ? "toggle" : l({}, $t(t).data(), $t(this).data());
"A" !== this.tagName && "AREA" !== this.tagName || e.preventDefault();
var o = $t(t).one(an.SHOW, function(e) {
e.isDefaultPrevented() || o.one(an.HIDDEN, function() {
$t(n).is(":visible") && n.focus()
})
});
vn._jQueryInterface.call($t(t), r, this)
}), $t.fn[en] = vn._jQueryInterface, $t.fn[en].Constructor = vn, $t.fn[en].noConflict = function() {
return $t.fn[en] = rn, vn._jQueryInterface
}, vn),
Ki = (En = "tooltip", wn = "." + (bn = "bs.tooltip"), Cn = (yn = t).fn[En], Tn = "bs-tooltip", Sn = new RegExp("(^|\s)" + Tn + "\S+", "g"), In = {
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: !(An = {
AUTO: "auto",
TOP: "top",
RIGHT: "right",
BOTTOM: "bottom",
LEFT: "left"
}),
selector: !(Dn = {
animation: "boolean",
template: "string",
title: "(string|element|function)",
trigger: "string",
delay: "(number|object)",
html: "boolean",
selector: "(string|boolean)",
placement: "(string|function)",
offset: "(number|string)",
container: "(string|element|boolean)",
fallbackPlacement: "(string|array)",
boundary: "(string|element)"
}),
placement: "top",
offset: 0,
container: !1,
fallbackPlacement: "flip",
boundary: "scrollParent"
}, Nn = "out", kn = {
HIDE: "hide" + wn,
HIDDEN: "hidden" + wn,
SHOW: (On = "show") + wn,
SHOWN: "shown" + wn,
INSERTED: "inserted" + wn,
CLICK: "click" + wn,
FOCUSIN: "focusin" + wn,
FOCUSOUT: "focusout" + wn,
MOUSEENTER: "mouseenter" + wn,
MOUSELEAVE: "mouseleave" + wn
}, xn = "fade", Pn = "show", Ln = ".tooltip-inner", jn = ".arrow", Hn = "hover", Mn = "focus", Fn = "click", Wn = "manual", Rn = function() {
function i(e, t) {
if ("undefined" == typeof Ct) throw new TypeError("Bootstrap tooltips require Popper.js (https://popper.js.org)");
this._isEnabled = !0, this._timeout = 0, this._hoverState = "", this._activeTrigger = {}, this._popper = null, this.element = e, this.config = this._getConfig(t), this.tip = null, this._setListeners()
}
var e = i.prototype;
return e.enable = function() {
this._isEnabled = !0
}, e.disable = function() {
this._isEnabled = !1
}, e.toggleEnabled = function() {
this._isEnabled = !this._isEnabled
}, e.toggle = function(e) {
if (this._isEnabled)
if (e) {
var t = this.constructor.DATA_KEY,
n = yn(e.currentTarget).data(t);
n || (n = new this.constructor(e.currentTarget, this._getDelegateConfig()), yn(e.currentTarget).data(t, n)), n._activeTrigger.click = !n._activeTrigger.click, n._isWithActiveTrigger() ? n._enter(null, n) : n._leave(null, n)
} else {
if (yn(this.getTipElement()).hasClass(Pn)) return void this._leave(null, this);
this._enter(null, this)
}
}, e.dispose = function() {
clearTimeout(this._timeout), yn.removeData(this.element, this.constructor.DATA_KEY), yn(this.element).off(this.constructor.EVENT_KEY), yn(this.element).closest(".modal").off("hide.bs.modal"), this.tip && yn(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
}, e.show = function() {
var t = this;
if ("none" === yn(this.element).css("display")) throw new Error("Please use show on visible elements");
var e = yn.Event(this.constructor.Event.SHOW);
if (this.isWithContent() && this._isEnabled) {
yn(this.element).trigger(e);
var n = yn.contains(this.element.ownerDocument.documentElement, this.element);
if (e.isDefaultPrevented() || !n) return;
var i = this.getTipElement(),
r = we.getUID(this.constructor.NAME);
i.setAttribute("id", r), this.element.setAttribute("aria-describedby", r), this.setContent(), this.config.animation && yn(i).addClass(xn);
var o = "function" == typeof this.config.placement ? this.config.placement.call(this, i, this.element) : this.config.placement,
s = this._getAttachment(o);
this.addAttachmentClass(s);
var a = !1 === this.config.container ? document.body : yn(document).find(this.config.container);
yn(i).data(this.constructor.DATA_KEY, this), yn.contains(this.element.ownerDocument.documentElement, this.tip) || yn(i).appendTo(a), yn(this.element).trigger(this.constructor.Event.INSERTED), this._popper = new Ct(this.element, i, {
placement: s,
modifiers: {
offset: {
offset: this.config.offset
},
flip: {
behavior: this.config.fallbackPlacement
},
arrow: {
element: jn
},
preventOverflow: {
boundariesElement: this.config.boundary
}
},
onCreate: function(e) {
e.originalPlacement !== e.placement && t._handlePopperPlacementChange(e)
},
onUpdate: function(e) {
t._handlePopperPlacementChange(e)
}
}), yn(i).addClass(Pn), "ontouchstart" in document.documentElement && yn(document.body).children().on("mouseover", null, yn.noop);
var l = function() {
t.config.animation && t._fixTransition();
var e = t._hoverState;
t._hoverState = null, yn(t.element).trigger(t.constructor.Event.SHOWN), e === Nn && t._leave(null, t)
};
if (yn(this.tip).hasClass(xn)) {
var c = we.getTransitionDurationFromElement(this.tip);
yn(this.tip).one(we.TRANSITION_END, l).emulateTransitionEnd(c)
} else l()
}
}, e.hide = function(e) {
var t = this,
n = this.getTipElement(),
i = yn.Event(this.constructor.Event.HIDE),
r = function() {
t._hoverState !== On && n.parentNode && n.parentNode.removeChild(n), t._cleanTipClass(), t.element.removeAttribute("aria-describedby"), yn(t.element).trigger(t.constructor.Event.HIDDEN), null !== t._popper && t._popper.destroy(), e && e()
};
if (yn(this.element).trigger(i), !i.isDefaultPrevented()) {
if (yn(n).removeClass(Pn), "ontouchstart" in document.documentElement && yn(document.body).children().off("mouseover", null, yn.noop), this._activeTrigger[Fn] = !1, this._activeTrigger[Mn] = !1, this._activeTrigger[Hn] = !1, yn(this.tip).hasClass(xn)) {
var o = we.getTransitionDurationFromElement(n);
yn(n).one(we.TRANSITION_END, r).emulateTransitionEnd(o)
} else r();
this._hoverState = ""
}
}, e.update = function() {
null !== this._popper && this._popper.scheduleUpdate()
}, e.isWithContent = function() {
return Boolean(this.getTitle())
}, e.addAttachmentClass = function(e) {
yn(this.getTipElement()).addClass(Tn + "-" + e)
}, e.getTipElement = function() {
return this.tip = this.tip || yn(this.config.template)[0], this.tip
}, e.setContent = function() {
var e = this.getTipElement();
this.setElementContent(yn(e.querySelectorAll(Ln)), this.getTitle()), yn(e).removeClass(xn + " " + Pn)
}, e.setElementContent = function(e, t) {
var n = this.config.html;
"object" == typeof t && (t.nodeType || t.jquery) ? n ? yn(t).parent().is(e) || e.empty().append(t) : e.text(yn(t).text()) : e[n ? "html" : "text"](t)
}, e.getTitle = function() {
var e = this.element.getAttribute("data-original-title");
return e || (e = "function" == typeof this.config.title ? this.config.title.call(this.element) : this.config.title), e
}, e._getAttachment = function(e) {
return An[e.toUpperCase()]
}, e._setListeners = function() {
var i = this;
this.config.trigger.split(" ").forEach(function(e) {
if ("click" === e) yn(i.element).on(i.constructor.Event.CLICK, i.config.selector, function(e) {
return i.toggle(e)
});
else if (e !== Wn) {
var t = e === Hn ? i.constructor.Event.MOUSEENTER : i.constructor.Event.FOCUSIN,
n = e === Hn ? i.constructor.Event.MOUSELEAVE : i.constructor.Event.FOCUSOUT;
yn(i.element).on(t, i.config.selector, function(e) {
return i._enter(e)
}).on(n, i.config.selector, function(e) {
return i._leave(e)
})
}
yn(i.element).closest(".modal").on("hide.bs.modal", function() {
return i.hide()
})
}), this.config.selector ? this.config = l({}, this.config, {
trigger: "manual",
selector: ""
}) : this._fixTitle()
}, e._fixTitle = function() {
var e = typeof this.element.getAttribute("data-original-title");
(this.element.getAttribute("title") || "string" !== e) && (this.element.setAttribute("data-original-title", this.element.getAttribute("title") || ""), this.element.setAttribute("title", ""))
}, e._enter = function(e, t) {
var n = this.constructor.DATA_KEY;
(t = t || yn(e.currentTarget).data(n)) || (t = new this.constructor(e.currentTarget, this._getDelegateConfig()), yn(e.currentTarget).data(n, t)), e && (t._activeTrigger["focusin" === e.type ? Mn : Hn] = !0), yn(t.getTipElement()).hasClass(Pn) || t._hoverState === On ? t._hoverState = On : (clearTimeout(t._timeout), t._hoverState = On, t.config.delay && t.config.delay.show ? t._timeout = setTimeout(function() {
t._hoverState === On && t.show()
}, t.config.delay.show) : t.show())
}, e._leave = function(e, t) {
var n = this.constructor.DATA_KEY;
(t = t || yn(e.currentTarget).data(n)) || (t = new this.constructor(e.currentTarget, this._getDelegateConfig()), yn(e.currentTarget).data(n, t)), e && (t._activeTrigger["focusout" === e.type ? Mn : Hn] = !1), t._isWithActiveTrigger() || (clearTimeout(t._timeout), t._hoverState = Nn, t.config.delay && t.config.delay.hide ? t._timeout = setTimeout(function() {
t._hoverState === Nn && t.hide()
}, t.config.delay.hide) : t.hide())
}, e._isWithActiveTrigger = function() {
for (var e in this._activeTrigger)
if (this._activeTrigger[e]) return !0;
return !1
}, e._getConfig = function(e) {
return "number" == typeof(e = l({}, this.constructor.Default, yn(this.element).data(), "object" == typeof e && e ? e : {})).delay && (e.delay = {
show: e.delay,
hide: e.delay
}), "number" == typeof e.title && (e.title = e.title.toString()), "number" == typeof e.content && (e.content = e.content.toString()), we.typeCheckConfig(En, e, this.constructor.DefaultType), e
}, e._getDelegateConfig = function() {
var e = {};
if (this.config)
for (var t in this.config) this.constructor.Default[t] !== this.config[t] && (e[t] = this.config[t]);
return e
}, e._cleanTipClass = function() {
var e = yn(this.getTipElement()),
t = e.attr("class").match(Sn);
null !== t && t.length && e.removeClass(t.join(""))
}, e._handlePopperPlacementChange = function(e) {
var t = e.instance;
this.tip = t.popper, this._cleanTipClass(), this.addAttachmentClass(this._getAttachment(e.placement))
}, e._fixTransition = function() {
var e = this.getTipElement(),
t = this.config.animation;
null === e.getAttribute("x-placement") && (yn(e).removeClass(xn), this.config.animation = !1, this.hide(), this.show(), this.config.animation = t)
}, i._jQueryInterface = function(n) {
return this.each(function() {
var e = yn(this).data(bn),
t = "object" == typeof n && n;
if ((e || !/dispose|hide/.test(n)) && (e || (e = new i(this, t), yn(this).data(bn, e)), "string" == typeof n)) {
if ("undefined" == typeof e[n]) throw new TypeError('No method named "' + n + '"');
e[n]()
}
})
}, s(i, null, [{
key: "VERSION",
get: function() {
return "4.1.3"
}
}, {
key: "Default",
get: function() {
return In
}
}, {
key: "NAME",
get: function() {
return En
}
}, {
key: "DATA_KEY",
get: function() {
return bn
}
}, {
key: "Event",
get: function() {
return kn
}
}, {
key: "EVENT_KEY",
get: function() {
return wn
}
}, {
key: "DefaultType",
get: function() {
return Dn
}
}]), i
}(), yn.fn[En] = Rn._jQueryInterface, yn.fn[En].Constructor = Rn, yn.fn[En].noConflict = function() {
return yn.fn[En] = Cn, Rn._jQueryInterface
}, Rn),
Qi = (Bn = "popover", Kn = "." + (qn = "bs.popover"), Qn = (Un = t).fn[Bn], Yn = "bs-popover", Vn = new RegExp("(^|\s)" + Yn + "\S+", "g"), zn = l({}, Ki.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>'
}), Gn = l({}, Ki.DefaultType, {
content: "(string|element|function)"
}), Jn = "fade", Xn = ".popover-header", $n = ".popover-body", ei = {
HIDE: "hide" + Kn,
HIDDEN: "hidden" + Kn,
SHOW: (Zn = "show") + Kn,
SHOWN: "shown" + Kn,
INSERTED: "inserted" + Kn,
CLICK: "click" + Kn,
FOCUSIN: "focusin" + Kn,
FOCUSOUT: "focusout" + Kn,
MOUSEENTER: "mouseenter" + Kn,
MOUSELEAVE: "mouseleave" + Kn
}, ti = function(e) {
var t, n;
function i() {
return e.apply(this, arguments) || this
}
n = e, (t = i).prototype = Object.create(n.prototype), (t.prototype.constructor = t).__proto__ = n;
var r = i.prototype;
return r.isWithContent = function() {
return this.getTitle() || this._getContent()
}, r.addAttachmentClass = function(e) {
Un(this.getTipElement()).addClass(Yn + "-" + e)
}, r.getTipElement = function() {
return this.tip = this.tip || Un(this.config.template)[0], this.tip
}, r.setContent = function() {
var e = Un(this.getTipElement());
this.setElementContent(e.find(Xn), this.getTitle());
var t = this._getContent();
"function" == typeof t && (t = t.call(this.element)), this.setElementContent(e.find($n), t), e.removeClass(Jn + " " + Zn)
}, r._getContent = function() {
return this.element.getAttribute("data-content") || this.config.content
}, r._cleanTipClass = function() {
var e = Un(this.getTipElement()),
t = e.attr("class").match(Vn);
null !== t && 0 < t.length && e.removeClass(t.join(""))
}, i._jQueryInterface = function(n) {
return this.each(function() {
var e = Un(this).data(qn),
t = "object" == typeof n ? n : null;
if ((e || !/destroy|hide/.test(n)) && (e || (e = new i(this, t), Un(this).data(qn, e)), "string" == typeof n)) {
if ("undefined" == typeof e[n]) throw new TypeError('No method named "' + n + '"');
e[n]()
}
})
}, s(i, null, [{
key: "VERSION",
get: function() {
return "4.1.3"
}
}, {
key: "Default",
get: function() {
return zn
}
}, {
key: "NAME",
get: function() {
return Bn
}
}, {
key: "DATA_KEY",
get: function() {
return qn
}
}, {
key: "Event",
get: function() {
return ei
}
}, {
key: "EVENT_KEY",
get: function() {
return Kn
}
}, {
key: "DefaultType",
get: function() {
return Gn
}
}]), i
}(Ki), Un.fn[Bn] = ti._jQueryInterface, Un.fn[Bn].Constructor = ti, Un.fn[Bn].noConflict = function() {
return Un.fn[Bn] = Qn, ti._jQueryInterface
}, ti),
Yi = (ii = "scrollspy", oi = "." + (ri = "bs.scrollspy"), si = (ni = t).fn[ii], ai = {
offset: 10,
method: "auto",
target: ""
}, li = {
offset: "number",
method: "string",
target: "(string|element)"
}, ci = {
ACTIVATE: "activate" + oi,
SCROLL: "scroll" + oi,
LOAD_DATA_API: "load" + oi + ".data-api"
}, ui = "dropdown-item", fi = "active", hi = '[data-spy="scroll"]', di = ".active", pi = ".nav, .list-group", mi = ".nav-link", gi = ".nav-item", _i = ".list-group-item", vi = ".dropdown", yi = ".dropdown-item", Ei = ".dropdown-toggle", bi = "offset", wi = "position", Ci = function() {
function n(e, t) {
var n = this;
this._element = e, this._scrollElement = "BODY" === e.tagName ? window : e, this._config = this._getConfig(t), this._selector = this._config.target + " " + mi + "," + this._config.target + " " + _i + "," + this._config.target + " " + yi, this._offsets = [], this._targets = [], this._activeTarget = null, this._scrollHeight = 0, ni(this._scrollElement).on(ci.SCROLL, function(e) {
return n._process(e)
}), this.refresh(), this._process()
}
var e = n.prototype;
return e.refresh = function() {
var t = this,
e = this._scrollElement === this._scrollElement.window ? bi : wi,
r = "auto" === this._config.method ? e : this._config.method,
o = r === wi ? this._getScrollTop() : 0;
this._offsets = [], this._targets = [], this._scrollHeight = this._getScrollHeight(), [].slice.call(document.querySelectorAll(this._selector)).map(function(e) {
var t, n = we.getSelectorFromElement(e);
if (n && (t = document.querySelector(n)), t) {
var i = t.getBoundingClientRect();
if (i.width || i.height) return [ni(t)[r]().top + o, n]
}
return null
}).filter(function(e) {
return e
}).sort(function(e, t) {
return e[0] - t[0]
}).forEach(function(e) {
t._offsets.push(e[0]), t._targets.push(e[1])
})
}, e.dispose = function() {
ni.removeData(this._element, ri), ni(this._scrollElement).off(oi), this._element = null, this._scrollElement = null, this._config = null, this._selector = null, this._offsets = null, this._targets = null, this._activeTarget = null, this._scrollHeight = null
}, e._getConfig = function(e) {
if ("string" != typeof(e = l({}, ai, "object" == typeof e && e ? e : {})).target) {
var t = ni(e.target).attr("id");
t || (t = we.getUID(ii), ni(e.target).attr("id", t)), e.target = "#" + t
}
return we.typeCheckConfig(ii, e, li), e
}, e._getScrollTop = function() {
return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop
}, e._getScrollHeight = function() {
return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight)
}, e._getOffsetHeight = function() {
return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height
}, e._process = function() {
var e = this._getScrollTop() + this._config.offset,
t = this._getScrollHeight(),
n = this._config.offset + t - this._getOffsetHeight();
if (this._scrollHeight !== t && this.refresh(), n <= e) {
var i = this._targets[this._targets.length - 1];
this._activeTarget !== i && this._activate(i)
} else {
if (this._activeTarget && e < this._offsets[0] && 0 < this._offsets[0]) return this._activeTarget = null, void this._clear();
for (var r = this._offsets.length; r--;) {
this._activeTarget !== this._targets[r] && e >= this._offsets[r] && ("undefined" == typeof this._offsets[r + 1] || e < this._offsets[r + 1]) && this._activate(this._targets[r])
}
}
}, e._activate = function(t) {
this._activeTarget = t, this._clear();
var e = this._selector.split(",");
e = e.map(function(e) {
return e + '[data-target="' + t + '"],' + e + '[href="' + t + '"]'
});
var n = ni([].slice.call(document.querySelectorAll(e.join(","))));
n.hasClass(ui) ? (n.closest(vi).find(Ei).addClass(fi), n.addClass(fi)) : (n.addClass(fi), n.parents(pi).prev(mi + ", " + _i).addClass(fi), n.parents(pi).prev(gi).children(mi).addClass(fi)), ni(this._scrollElement).trigger(ci.ACTIVATE, {
relatedTarget: t
})
}, e._clear = function() {
var e = [].slice.call(document.querySelectorAll(this._selector));
ni(e).filter(di).removeClass(fi)
}, n._jQueryInterface = function(t) {
return this.each(function() {
var e = ni(this).data(ri);
if (e || (e = new n(this, "object" == typeof t && t), ni(this).data(ri, e)), "string" == typeof t) {
if ("undefined" == typeof e[t]) throw new TypeError('No method named "' + t + '"');
e[t]()
}
})
}, s(n, null, [{
key: "VERSION",
get: function() {
return "4.1.3"
}
}, {
key: "Default",
get: function() {
return ai
}
}]), n
}(), ni(window).on(ci.LOAD_DATA_API, function() {
for (var e = [].slice.call(document.querySelectorAll(hi)), t = e.length; t--;) {
var n = ni(e[t]);
Ci._jQueryInterface.call(n, n.data())
}
}), ni.fn[ii] = Ci._jQueryInterface, ni.fn[ii].Constructor = Ci, ni.fn[ii].noConflict = function() {
return ni.fn[ii] = si, Ci._jQueryInterface
}, Ci),
Vi = (Di = "." + (Si = "bs.tab"), Ai = (Ti = t).fn.tab, Ii = {
HIDE: "hide" + Di,
HIDDEN: "hidden" + Di,
SHOW: "show" + Di,
SHOWN: "shown" + Di,
CLICK_DATA_API: "click" + Di + ".data-api"
}, Oi = "dropdown-menu", Ni = "active", ki = "disabled", xi = "fade", Pi = "show", Li = ".dropdown", ji = ".nav, .list-group", Hi = ".active", Mi = "> li > .active", Fi = '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]', Wi = ".dropdown-toggle", Ri = "> .dropdown-menu .active", Ui = function() {
function i(e) {
this._element = e
}
var e = i.prototype;
return e.show = function() {
var n = this;
if (!(this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && Ti(this._element).hasClass(Ni) || Ti(this._element).hasClass(ki))) {
var e, i, t = Ti(this._element).closest(ji)[0],
r = we.getSelectorFromElement(this._element);
if (t) {
var o = "UL" === t.nodeName ? Mi : Hi;
i = (i = Ti.makeArray(Ti(t).find(o)))[i.length - 1]
}
var s = Ti.Event(Ii.HIDE, {
relatedTarget: this._element
}),
a = Ti.Event(Ii.SHOW, {
relatedTarget: i
});
if (i && Ti(i).trigger(s), Ti(this._element).trigger(a), !a.isDefaultPrevented() && !s.isDefaultPrevented()) {
r && (e = document.querySelector(r)), this._activate(this._element, t);
var l = function() {
var e = Ti.Event(Ii.HIDDEN, {
relatedTarget: n._element
}),
t = Ti.Event(Ii.SHOWN, {
relatedTarget: i
});
Ti(i).trigger(e), Ti(n._element).trigger(t)
};
e ? this._activate(e, e.parentNode, l) : l()
}
}
}, e.dispose = function() {
Ti.removeData(this._element, Si), this._element = null
}, e._activate = function(e, t, n) {
var i = this,
r = ("UL" === t.nodeName ? Ti(t).find(Mi) : Ti(t).children(Hi))[0],
o = n && r && Ti(r).hasClass(xi),
s = function() {
return i._transitionComplete(e, r, n)
};
if (r && o) {
var a = we.getTransitionDurationFromElement(r);
Ti(r).one(we.TRANSITION_END, s).emulateTransitionEnd(a)
} else s()
}, e._transitionComplete = function(e, t, n) {
if (t) {
Ti(t).removeClass(Pi + " " + Ni);
var i = Ti(t.parentNode).find(Ri)[0];
i && Ti(i).removeClass(Ni), "tab" === t.getAttribute("role") && t.setAttribute("aria-selected", !1)
}
if (Ti(e).addClass(Ni), "tab" === e.getAttribute("role") && e.setAttribute("aria-selected", !0), we.reflow(e), Ti(e).addClass(Pi), e.parentNode && Ti(e.parentNode).hasClass(Oi)) {
var r = Ti(e).closest(Li)[0];
if (r) {
var o = [].slice.call(r.querySelectorAll(Wi));
Ti(o).addClass(Ni)
}
e.setAttribute("aria-expanded", !0)
}
n && n()
}, i._jQueryInterface = function(n) {
return this.each(function() {
var e = Ti(this),
t = e.data(Si);
if (t || (t = new i(this), e.data(Si, t)), "string" == typeof n) {
if ("undefined" == typeof t[n]) throw new TypeError('No method named "' + n + '"');
t[n]()
}
})
}, s(i, null, [{
key: "VERSION",
get: function() {
return "4.1.3"
}
}]), i
}(), Ti(document).on(Ii.CLICK_DATA_API, Fi, function(e) {
e.preventDefault(), Ui._jQueryInterface.call(Ti(this), "show")
}), Ti.fn.tab = Ui._jQueryInterface, Ti.fn.tab.Constructor = Ui, Ti.fn.tab.noConflict = function() {
return Ti.fn.tab = Ai, Ui._jQueryInterface
}, Ui);
! function(e) {
if ("undefined" == typeof e) throw new TypeError("Bootstrap's JavaScript requires jQuery. jQuery must be included before Bootstrap's JavaScript.");
var t = e.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")
}(t), e.Util = we, e.Alert = Ce, e.Button = Te, e.Carousel = Se, e.Collapse = De, e.Dropdown = Bi, e.Modal = qi, e.Popover = Qi, e.Scrollspy = Yi, e.Tab = Vi, e.Tooltip = Ki, Object.defineProperty(e, "__esModule", {
value: !0
})
});
/*! jQuery easing 1.3 */
(function(factory) {
if (typeof define === "function" && define.amd) {
define(["jquery"], function($) {
return factory($)
})
} else if (typeof module === "object" && typeof module.exports === "object") {
exports = factory(require("jquery"))
} else {
factory(jQuery)
}
})(function($) {
$.easing.jswing = $.easing.swing;
var pow = Math.pow,
sqrt = Math.sqrt,
sin = Math.sin,
cos = Math.cos,
PI = Math.PI,
c1 = 1.70158,
c2 = c1 * 1.525,
c3 = c1 + 1,
c4 = 2 * PI / 3,
c5 = 2 * PI / 4.5;
function bounceOut(x) {
var n1 = 7.5625,
d1 = 2.75;
if (x < 1 / d1) {
return n1 * x * x
} else if (x < 2 / d1) {
return n1 * (x -= 1.5 / d1) * x + .75
} else if (x < 2.5 / d1) {
return n1 * (x -= 2.25 / d1) * x + .9375
} else {
return n1 * (x -= 2.625 / d1) * x + .984375
}
}
$.extend($.easing, {
def: "easeOutQuad",
swing: function(x) {
return $.easing[$.easing.def](x)
},
easeInQuad: function(x) {
return x * x
},
easeOutQuad: function(x) {
return 1 - (1 - x) * (1 - x)
},
easeInOutQuad: function(x) {
return x < .5 ? 2 * x * x : 1 - pow(-2 * x + 2, 2) / 2
},
easeInCubic: function(x) {
return x * x * x
},
easeOutCubic: function(x) {
return 1 - pow(1 - x, 3)
},
easeInOutCubic: function(x) {
return x < .5 ? 4 * x * x * x : 1 - pow(-2 * x + 2, 3) / 2
},
easeInQuart: function(x) {
return x * x * x * x
},
easeOutQuart: function(x) {
return 1 - pow(1 - x, 4)
},
easeInOutQuart: function(x) {
return x < .5 ? 8 * x * x * x * x : 1 - pow(-2 * x + 2, 4) / 2
},
easeInQuint: function(x) {
return x * x * x * x * x
},
easeOutQuint: function(x) {
return 1 - pow(1 - x, 5)
},
easeInOutQuint: function(x) {
return x < .5 ? 16 * x * x * x * x * x : 1 - pow(-2 * x + 2, 5) / 2
},
easeInSine: function(x) {
return 1 - cos(x * PI / 2)
},
easeOutSine: function(x) {
return sin(x * PI / 2)
},
easeInOutSine: function(x) {
return -(cos(PI * x) - 1) / 2
},
easeInExpo: function(x) {
return x === 0 ? 0 : pow(2, 10 * x - 10)
},
easeOutExpo: function(x) {
return x === 1 ? 1 : 1 - pow(2, -10 * x)
},
easeInOutExpo: function(x) {
return x === 0 ? 0 : x === 1 ? 1 : x < .5 ? pow(2, 20 * x - 10) / 2 : (2 - pow(2, -20 * x + 10)) / 2
},
easeInCirc: function(x) {
return 1 - sqrt(1 - pow(x, 2))
},
easeOutCirc: function(x) {
return sqrt(1 - pow(x - 1, 2))
},
easeInOutCirc: function(x) {
return x < .5 ? (1 - sqrt(1 - pow(2 * x, 2))) / 2 : (sqrt(1 - pow(-2 * x + 2, 2)) + 1) / 2
},
easeInElastic: function(x) {
return x === 0 ? 0 : x === 1 ? 1 : -pow(2, 10 * x - 10) * sin((x * 10 - 10.75) * c4)
},
easeOutElastic: function(x) {
return x === 0 ? 0 : x === 1 ? 1 : pow(2, -10 * x) * sin((x * 10 - .75) * c4) + 1
},
easeInOutElastic: function(x) {
return x === 0 ? 0 : x === 1 ? 1 : x < .5 ? -(pow(2, 20 * x - 10) * sin((20 * x - 11.125) * c5)) / 2 : pow(2, -20 * x + 10) * sin((20 * x - 11.125) * c5) / 2 + 1
},
easeInBack: function(x) {
return c3 * x * x * x - c1 * x * x
},
easeOutBack: function(x) {
return 1 + c3 * pow(x - 1, 3) + c1 * pow(x - 1, 2)
},
easeInOutBack: function(x) {
return x < .5 ? pow(2 * x, 2) * ((c2 + 1) * 2 * x - c2) / 2 : (pow(2 * x - 2, 2) * ((c2 + 1) * (x * 2 - 2) + c2) + 2) / 2
},
easeInBounce: function(x) {
return 1 - bounceOut(1 - x)
},
easeOutBounce: bounceOut,
easeInOutBounce: function(x) {
return x < .5 ? (1 - bounceOut(1 - 2 * x)) / 2 : (1 + bounceOut(2 * x - 1)) / 2
}
})
});
/*! The Final Countdown for jQuery v2.2.0 ( http://hilios.github.io/jQuery.countdown/ )*/
! function(a) {
"use strict";
"function" == typeof define && define.amd ? define(["jquery"], a) : a(jQuery)
}(function(a) {
"use strict";
function b(a) {
if (a instanceof Date) return a;
if (String(a).match(g)) return String(a).match(/^[0-9]*$/) && (a = Number(a)), String(a).match(/-/) && (a = String(a).replace(/-/g, "/")), new Date(a);
throw new Error("Couldn't cast `" + a + "` to a date object.")
}
function c(a) {
var b = a.toString().replace(/([.?*+^$[]\(){}|-])/g, "\$1");
return new RegExp(b)
}
function d(a) {
return function(b) {
var d = b.match(/%(-|!)?[A-Z]{1}(:[^;]+;)?/gi);
if (d)
for (var f = 0, g = d.length; f < g; ++f) {
var h = d[f].match(/%(-|!)?([a-zA-Z]{1})(:[^;]+;)?/),
j = c(h[0]),
k = h[1] || "",
l = h[3] || "",
m = null;
h = h[2], i.hasOwnProperty(h) && (m = i[h], m = Number(a[m])), null !== m && ("!" === k && (m = e(l, m)), "" === k && m < 10 && (m = "0" + m.toString()), b = b.replace(j, m.toString()))
}
return b = b.replace(/%%/, "%")
}
}
function e(a, b) {
var c = "s",
d = "";
return a && (a = a.replace(/(:|;|s)/gi, "").split(/,/), 1 === a.length ? c = a[0] : (d = a[0], c = a[1])), Math.abs(b) > 1 ? c : d
}
var f = [],
g = [],
h = {
precision: 100,
elapse: !1,
defer: !1
};
g.push(/^[0-9]*$/.source), g.push(/([0-9]{1,2}/){2}[0-9]{4}( [0-9]{1,2}(:[0-9]{2}){2})?/.source), g.push(/[0-9]{4}([/-][0-9]{1,2}){2}( [0-9]{1,2}(:[0-9]{2}){2})?/.source), g = new RegExp(g.join("|"));
var i = {
Y: "years",
m: "months",
n: "daysToMonth",
d: "daysToWeek",
w: "weeks",
W: "weeksToMonth",
H: "hours",
M: "minutes",
S: "seconds",
D: "totalDays",
I: "totalHours",
N: "totalMinutes",
T: "totalSeconds"
},
j = function(b, c, d) {
this.el = b, this.$el = a(b), this.interval = null, this.offset = {}, this.options = a.extend({}, h), this.instanceNumber = f.length, f.push(this), this.$el.data("countdown-instance", this.instanceNumber), d && ("function" == typeof d ? (this.$el.on("update.countdown", d), this.$el.on("stoped.countdown", d), this.$el.on("finish.countdown", d)) : this.options = a.extend({}, h, d)), this.setFinalDate(c), this.options.defer === !1 && this.start()
};
a.extend(j.prototype, {
start: function() {
null !== this.interval && clearInterval(this.interval);
var a = this;
this.update(), this.interval = setInterval(function() {
a.update.call(a)
}, this.options.precision)
},
stop: function() {
clearInterval(this.interval), this.interval = null, this.dispatchEvent("stoped")
},
toggle: function() {
this.interval ? this.stop() : this.start()
},
pause: function() {
this.stop()
},
resume: function() {
this.start()
},
remove: function() {
this.stop.call(this), f[this.instanceNumber] = null, delete this.$el.data().countdownInstance
},
setFinalDate: function(a) {
this.finalDate = b(a)
},
update: function() {
if (0 === this.$el.closest("html").length) return void this.remove();
var b, c = void 0 !== a._data(this.el, "events"),
d = new Date;
b = this.finalDate.getTime() - d.getTime(), b = Math.ceil(b / 1e3), b = !this.options.elapse && b < 0 ? 0 : Math.abs(b), this.totalSecsLeft !== b && c && (this.totalSecsLeft = b, this.elapsed = d >= this.finalDate, this.offset = {
seconds: this.totalSecsLeft % 60,
minutes: Math.floor(this.totalSecsLeft / 60) % 60,
hours: Math.floor(this.totalSecsLeft / 60 / 60) % 24,
days: Math.floor(this.totalSecsLeft / 60 / 60 / 24) % 7,
daysToWeek: Math.floor(this.totalSecsLeft / 60 / 60 / 24) % 7,
daysToMonth: Math.floor(this.totalSecsLeft / 60 / 60 / 24 % 30.4368),
weeks: Math.floor(this.totalSecsLeft / 60 / 60 / 24 / 7),
weeksToMonth: Math.floor(this.totalSecsLeft / 60 / 60 / 24 / 7) % 4,
months: Math.floor(this.totalSecsLeft / 60 / 60 / 24 / 30.4368),
years: Math.abs(this.finalDate.getFullYear() - d.getFullYear()),
totalDays: Math.floor(this.totalSecsLeft / 60 / 60 / 24),
totalHours: Math.floor(this.totalSecsLeft / 60 / 60),
totalMinutes: Math.floor(this.totalSecsLeft / 60),
totalSeconds: this.totalSecsLeft
}, this.options.elapse || 0 !== this.totalSecsLeft ? this.dispatchEvent("update") : (this.stop(), this.dispatchEvent("finish")))
},
dispatchEvent: function(b) {
var c = a.Event(b + ".countdown");
c.finalDate = this.finalDate, c.elapsed = this.elapsed, c.offset = a.extend({}, this.offset), c.strftime = d(this.offset), this.$el.trigger(c)
}
}), a.fn.countdown = function() {
var b = Array.prototype.slice.call(arguments, 0);
return this.each(function() {
var c = a(this).data("countdown-instance");
if (void 0 !== c) {
var d = f[c],
e = b[0];
j.prototype.hasOwnProperty(e) ? d[e].apply(d, b.slice(1)) : null === String(e).match(/^[$A-Z_][0-9A-Z_$]*$/i) ? (d.setFinalDate.call(d, e), d.start()) : a.error("Method %s does not exist on jQuery.countdown".replace(/%s/gi, e))
} else new j(this, b[0], b[1])
})
}
});
/*! More info at [www.dropzonejs.com](http://www.dropzonejs.com) * Copyright (c) 2012, Matias Meno */
"use strict";
var _createClass = function() {
function e(e, t) {
for (var i = 0; i < t.length; i++) {
var n = t[i];
n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(e, n.key, n)
}
}
return function(t, i, n) {
return i && e(t.prototype, i), n && e(t, n), t
}
}();
function _possibleConstructorReturn(e, t) {
if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
return !t || "object" != typeof t && "function" != typeof t ? e : t
}
function _inherits(e, t) {
if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
e.prototype = Object.create(t && t.prototype, {
constructor: {
value: e,
enumerable: !1,
writable: !0,
configurable: !0
}
}), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
}
function _classCallCheck(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
}
var Emitter = function() {
function e() {
_classCallCheck(this, e)
}
return _createClass(e, [{
key: "on",
value: function(e, t) {
return this._callbacks = this._callbacks || {}, this._callbacks[e] || (this._callbacks[e] = []), this._callbacks[e].push(t), this
}
}, {
key: "emit",
value: function(e) {
this._callbacks = this._callbacks || {};
var t = this._callbacks[e];
if (t) {
for (var i = arguments.length, n = Array(i > 1 ? i - 1 : 0), r = 1; r < i; r++) n[r - 1] = arguments[r];
for (var o = 0, a = a = t;;) {
if (o >= a.length) break;
a[o++].apply(this, n)
}
}
return this
}
}, {
key: "off",
value: function(e, t) {
if (!this._callbacks || 0 === arguments.length) return this._callbacks = {}, this;
var i = this._callbacks[e];
if (!i) return this;
if (1 === arguments.length) return delete this._callbacks[e], this;
for (var n = 0; n < i.length; n++) {
if (i[n] === t) {
i.splice(n, 1);
break
}
}
return this
}
}]), e
}(),
Dropzone = function(e) {
function t(e, i) {
_classCallCheck(this, t);
var n, r = _possibleConstructorReturn(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this)),
o = void 0;
if (r.element = e, r.version = t.version, r.defaultOptions.previewTemplate = r.defaultOptions.previewTemplate.replace(/n*/g, ""), r.clickableElements = [], r.listeners = [], r.files = [], "string" == typeof r.element && (r.element = document.querySelector(r.element)), !r.element || null == r.element.nodeType) throw new Error("Invalid dropzone element.");
if (r.element.dropzone) throw new Error("Dropzone already attached.");
t.instances.push(r), r.element.dropzone = r;
var a, s = null != (n = t.optionsForElement(r.element)) ? n : {};
if (r.options = t.extend({}, r.defaultOptions, s, null != i ? i : {}), r.options.forceFallback || !t.isBrowserSupported()) return a = r.options.fallback.call(r), _possibleConstructorReturn(r, a);
if (null == r.options.url && (r.options.url = r.element.getAttribute("action")), !r.options.url) throw new Error("No URL provided.");
if (r.options.acceptedFiles && r.options.acceptedMimeTypes) throw new Error("You can't provide both 'acceptedFiles' and 'acceptedMimeTypes'. 'acceptedMimeTypes' is deprecated.");
if (r.options.uploadMultiple && r.options.chunking) throw new Error("You cannot set both: uploadMultiple and chunking.");
return r.options.acceptedMimeTypes && (r.options.acceptedFiles = r.options.acceptedMimeTypes, delete r.options.acceptedMimeTypes), null != r.options.renameFilename && (r.options.renameFile = function(e) {
return r.options.renameFilename.call(r, e.name, e)
}), r.options.method = r.options.method.toUpperCase(), (o = r.getExistingFallback()) && o.parentNode && o.parentNode.removeChild(o), !1 !== r.options.previewsContainer && (r.options.previewsContainer ? r.previewsContainer = t.getElement(r.options.previewsContainer, "previewsContainer") : r.previewsContainer = r.element), r.options.clickable && (!0 === r.options.clickable ? r.clickableElements = [r.element] : r.clickableElements = t.getElements(r.options.clickable, "clickable")), r.init(), r
}
return _inherits(t, Emitter), _createClass(t, null, [{
key: "initClass",
value: function() {
this.prototype.Emitter = Emitter, this.prototype.events = ["drop", "dragstart", "dragend", "dragenter", "dragover", "dragleave", "addedfile", "addedfiles", "removedfile", "thumbnail", "error", "errormultiple", "processing", "processingmultiple", "uploadprogress", "totaluploadprogress", "sending", "sendingmultiple", "success", "successmultiple", "canceled", "canceledmultiple", "complete", "completemultiple", "reset", "maxfilesexceeded", "maxfilesreached", "queuecomplete"], this.prototype.defaultOptions = {
url: null,
method: "post",
withCredentials: !1,
timeout: 3e4,
parallelUploads: 2,
uploadMultiple: !1,
chunking: !1,
forceChunking: !1,
chunkSize: 2e6,
parallelChunkUploads: !1,
retryChunks: !1,
retryChunksLimit: 3,
maxFilesize: 256,
paramName: "file",
createImageThumbnails: !0,
maxThumbnailFilesize: 10,
thumbnailWidth: 120,
thumbnailHeight: 120,
thumbnailMethod: "crop",
resizeWidth: null,
resizeHeight: null,
resizeMimeType: null,
resizeQuality: .8,
resizeMethod: "contain",
filesizeBase: 1e3,
maxFiles: null,
headers: null,
clickable: !0,
ignoreHiddenFiles: !0,
acceptedFiles: null,
acceptedMimeTypes: null,
autoProcessQueue: !0,
autoQueue: !0,
addRemoveLinks: !1,
previewsContainer: null,
hiddenInputContainer: "body",
capture: null,
renameFilename: null,
renameFile: null,
forceFallback: !1,
dictDefaultMessage: "Drop files here to upload",
dictFallbackMessage: "Your browser does not support drag'n'drop file uploads.",
dictFallbackText: "Please use the fallback form below to upload your files like in the olden days.",
dictFileTooBig: "File is too big ({{filesize}}MiB). Max filesize: {{maxFilesize}}MiB.",
dictInvalidFileType: "You can't upload files of this type.",
dictResponseError: "Server responded with {{statusCode}} code.",
dictCancelUpload: "Cancel upload",
dictUploadCanceled: "Upload canceled.",
dictCancelUploadConfirmation: "Are you sure you want to cancel this upload?",
dictRemoveFile: "Remove file",
dictRemoveFileConfirmation: null,
dictMaxFilesExceeded: "You can not upload any more files.",
dictFileSizeUnits: {
tb: "TB",
gb: "GB",
mb: "MB",
kb: "KB",
b: "b"
},
init: function() {},
params: function(e, t, i) {
if (i) return {
dzuuid: i.file.upload.uuid,
dzchunkindex: i.index,
dztotalfilesize: i.file.size,
dzchunksize: this.options.chunkSize,
dztotalchunkcount: i.file.upload.totalChunkCount,
dzchunkbyteoffset: i.index * this.options.chunkSize
}
},
accept: function(e, t) {
return t()
},
chunksUploaded: function(e, t) {
t()
},
fallback: function() {
var e = void 0;
this.element.className = this.element.className + " dz-browser-not-supported";
for (var i = 0, n = n = this.element.getElementsByTagName("div");;) {
if (i >= n.length) break;
var r = n[i++];
if (/(^| )dz-message($| )/.test(r.className)) {
e = r, r.className = "dz-message";
break
}
}
e || (e = t.createElement('<div class="dz-message"><span></span></div>'), this.element.appendChild(e));
var o = e.getElementsByTagName("span")[0];
return o && (null != o.textContent ? o.textContent = this.options.dictFallbackMessage : null != o.innerText && (o.innerText = this.options.dictFallbackMessage)), this.element.appendChild(this.getFallbackForm())
},
resize: function(e, t, i, n) {
var r = {
srcX: 0,
srcY: 0,
srcWidth: e.width,
srcHeight: e.height
},
o = e.width / e.height;
null == t && null == i ? (t = r.srcWidth, i = r.srcHeight) : null == t ? t = i * o : null == i && (i = t / o);
var a = (t = Math.min(t, r.srcWidth)) / (i = Math.min(i, r.srcHeight));
if (r.srcWidth > t || r.srcHeight > i)
if ("crop" === n) o > a ? (r.srcHeight = e.height, r.srcWidth = r.srcHeight * a) : (r.srcWidth = e.width, r.srcHeight = r.srcWidth / a);
else {
if ("contain" !== n) throw new Error("Unknown resizeMethod '" + n + "'");
o > a ? i = t / o : t = i * o
} return r.srcX = (e.width - r.srcWidth) / 2, r.srcY = (e.height - r.srcHeight) / 2, r.trgWidth = t, r.trgHeight = i, r
},
transformFile: function(e, t) {
return (this.options.resizeWidth || this.options.resizeHeight) && e.type.match(/image.*/) ? this.resizeImage(e, this.options.resizeWidth, this.options.resizeHeight, this.options.resizeMethod, t) : t(e)
},
previewTemplate: '<div class="dz-preview dz-file-preview">n <div class="dz-image"><img data-dz-thumbnail /></div>n <div class="dz-details">n <div class="dz-size"><span data-dz-size></span></div>n <div class="dz-filename"><span data-dz-name></span></div>n </div>n <div class="dz-progress"><span class="dz-upload" data-dz-uploadprogress></span></div>n <div class="dz-error-message"><span data-dz-errormessage></span></div>n <div class="dz-success-mark">n <svg width="54px" height="54px" viewBox="0 0 54 54" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">n <title>Check</title>n <defs></defs>n <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage">n <path d="M23.5,31.8431458 L17.5852419,25.9283877 C16.0248253,24.3679711 13.4910294,24.366835 11.9289322,25.9289322 C10.3700136,27.4878508 10.3665912,30.0234455 11.9283877,31.5852419 L20.4147581,40.0716123 C20.5133999,40.1702541 20.6159315,40.2626649 20.7218615,40.3488435 C22.2835669,41.8725651 24.794234,41.8626202 26.3461564,40.3106978 L43.3106978,23.3461564 C44.8771021,21.7797521 44.8758057,19.2483887 43.3137085,17.6862915 C41.7547899,16.1273729 39.2176035,16.1255422 37.6538436,17.6893022 L23.5,31.8431458 Z M27,53 C41.3594035,53 53,41.3594035 53,27 C53,12.6405965 41.3594035,1 27,1 C12.6405965,1 1,12.6405965 1,27 C1,41.3594035 12.6405965,53 27,53 Z" id="Oval-2" stroke-opacity="0.198794158" stroke="#747474" fill-opacity="0.816519475" fill="#FFFFFF" sketch:type="MSShapeGroup"></path>n </g>n </svg>n </div>n <div class="dz-error-mark">n <svg width="54px" height="54px" viewBox="0 0 54 54" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">n <title>Error</title>n <defs></defs>n <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage">n <g id="Check-+-Oval-2" sketch:type="MSLayerGroup" stroke="#747474" stroke-opacity="0.198794158" fill="#FFFFFF" fill-opacity="0.816519475">n <path d="M32.6568542,29 L38.3106978,23.3461564 C39.8771021,21.7797521 39.8758057,19.2483887 38.3137085,17.6862915 C36.7547899,16.1273729 34.2176035,16.1255422 32.6538436,17.6893022 L27,23.3431458 L21.3461564,17.6893022 C19.7823965,16.1255422 17.2452101,16.1273729 15.6862915,17.6862915 C14.1241943,19.2483887 14.1228979,21.7797521 15.6893022,23.3461564 L21.3431458,29 L15.6893022,34.6538436 C14.1228979,36.2202479 14.1241943,38.7516113 15.6862915,40.3137085 C17.2452101,41.8726271 19.7823965,41.8744578 21.3461564,40.3106978 L27,34.6568542 L32.6538436,40.3106978 C34.2176035,41.8744578 36.7547899,41.8726271 38.3137085,40.3137085 C39.8758057,38.7516113 39.8771021,36.2202479 38.3106978,34.6538436 L32.6568542,29 Z M27,53 C41.3594035,53 53,41.3594035 53,27 C53,12.6405965 41.3594035,1 27,1 C12.6405965,1 1,12.6405965 1,27 C1,41.3594035 12.6405965,53 27,53 Z" id="Oval-2" sketch:type="MSShapeGroup"></path>n </g>n </g>n </svg>n </div>n</div>',
drop: function(e) {
return this.element.classList.remove("dz-drag-hover")
},
dragstart: function(e) {},
dragend: function(e) {
return this.element.classList.remove("dz-drag-hover")
},
dragenter: function(e) {
return this.element.classList.add("dz-drag-hover")
},
dragover: function(e) {
return this.element.classList.add("dz-drag-hover")
},
dragleave: function(e) {
return this.element.classList.remove("dz-drag-hover")
},
paste: function(e) {},
reset: function() {
return this.element.classList.remove("dz-started")
},
addedfile: function(e) {
var i = this;
if (this.element === this.previewsContainer && this.element.classList.add("dz-started"), this.previewsContainer) {
e.previewElement = t.createElement(this.options.previewTemplate.trim()), e.previewTemplate = e.previewElement, this.previewsContainer.appendChild(e.previewElement);
for (var n = 0, r = r = e.previewElement.querySelectorAll("[data-dz-name]");;) {
if (n >= r.length) break;
var o = r[n++];
o.textContent = e.name
}
for (var a = 0, s = s = e.previewElement.querySelectorAll("[data-dz-size]"); !(a >= s.length);)(o = s[a++]).innerHTML = this.filesize(e.size);
this.options.addRemoveLinks && (e._removeLink = t.createElement('<a class="dz-remove" href="javascript:undefined;" data-dz-remove>' + this.options.dictRemoveFile + "</a>"), e.previewElement.appendChild(e._removeLink));
for (var l = function(n) {
return n.preventDefault(), n.stopPropagation(), e.status === t.UPLOADING ? t.confirm(i.options.dictCancelUploadConfirmation, function() {
return i.removeFile(e)
}) : i.options.dictRemoveFileConfirmation ? t.confirm(i.options.dictRemoveFileConfirmation, function() {
return i.removeFile(e)
}) : i.removeFile(e)
}, u = 0, d = d = e.previewElement.querySelectorAll("[data-dz-remove]");;) {
if (u >= d.length) break;
d[u++].addEventListener("click", l)
}
}
},
removedfile: function(e) {
return null != e.previewElement && null != e.previewElement.parentNode && e.previewElement.parentNode.removeChild(e.previewElement), this._updateMaxFilesReachedClass()
},
thumbnail: function(e, t) {
if (e.previewElement) {
e.previewElement.classList.remove("dz-file-preview");
for (var i = 0, n = n = e.previewElement.querySelectorAll("[data-dz-thumbnail]");;) {
if (i >= n.length) break;
var r = n[i++];
r.alt = e.name, r.src = t
}
return setTimeout(function() {
return e.previewElement.classList.add("dz-image-preview")
}, 1)
}
},
error: function(e, t) {
if (e.previewElement) {
e.previewElement.classList.add("dz-error"), "String" != typeof t && t.error && (t = t.error);
for (var i = 0, n = n = e.previewElement.querySelectorAll("[data-dz-errormessage]");;) {
if (i >= n.length) break;
n[i++].textContent = t
}
}
},
errormultiple: function() {},
processing: function(e) {
if (e.previewElement && (e.previewElement.classList.add("dz-processing"), e._removeLink)) return e._removeLink.textContent = this.options.dictCancelUpload
},
processingmultiple: function() {},
uploadprogress: function(e, t, i) {
if (e.previewElement)
for (var n = 0, r = r = e.previewElement.querySelectorAll("[data-dz-uploadprogress]");;) {
if (n >= r.length) break;
var o = r[n++];
"PROGRESS" === o.nodeName ? o.value = t : o.style.width = t + "%"
}
},
totaluploadprogress: function() {},
sending: function() {},
sendingmultiple: function() {},
success: function(e) {
if (e.previewElement) return e.previewElement.classList.add("dz-success")
},
successmultiple: function() {},
canceled: function(e) {
return this.emit("error", e, this.options.dictUploadCanceled)
},
canceledmultiple: function() {},
complete: function(e) {
if (e._removeLink && (e._removeLink.textContent = this.options.dictRemoveFile), e.previewElement) return e.previewElement.classList.add("dz-complete")
},
completemultiple: function() {},
maxfilesexceeded: function() {},
maxfilesreached: function() {},
queuecomplete: function() {},
addedfiles: function() {}
}, this.prototype._thumbnailQueue = [], this.prototype._processingThumbnail = !1
}
}, {
key: "extend",
value: function(e) {
for (var t = arguments.length, i = Array(t > 1 ? t - 1 : 0), n = 1; n < t; n++) i[n - 1] = arguments[n];
for (var r = 0, o = o = i;;) {
if (r >= o.length) break;
var a = o[r++];
for (var s in a) {
var l = a[s];
e[s] = l
}
}
return e
}
}]), _createClass(t, [{
key: "getAcceptedFiles",
value: function() {
return this.files.filter(function(e) {
return e.accepted
}).map(function(e) {
return e
})
}
}, {
key: "getRejectedFiles",
value: function() {
return this.files.filter(function(e) {
return !e.accepted
}).map(function(e) {
return e
})
}
}, {
key: "getFilesWithStatus",
value: function(e) {
return this.files.filter(function(t) {
return t.status === e
}).map(function(e) {
return e
})
}
}, {
key: "getQueuedFiles",
value: function() {
return this.getFilesWithStatus(t.QUEUED)
}
}, {
key: "getUploadingFiles",
value: function() {
return this.getFilesWithStatus(t.UPLOADING)
}
}, {
key: "getAddedFiles",
value: function() {
return this.getFilesWithStatus(t.ADDED)
}
}, {
key: "getActiveFiles",
value: function() {
return this.files.filter(function(e) {
return e.status === t.UPLOADING || e.status === t.QUEUED
}).map(function(e) {
return e
})
}
}, {
key: "init",
value: function() {
var e = this;
if ("form" === this.element.tagName && this.element.setAttribute("enctype", "multipart/form-data"), this.element.classList.contains("dropzone") && !this.element.querySelector(".dz-message") && this.element.appendChild(t.createElement('<div class="dz-default dz-message"><span>' + this.options.dictDefaultMessage + "</span></div>")), this.clickableElements.length) {
! function t() {
return e.hiddenFileInput && e.hiddenFileInput.parentNode.removeChild(e.hiddenFileInput), e.hiddenFileInput = document.createElement("input"), e.hiddenFileInput.setAttribute("type", "file"), (null === e.options.maxFiles || e.options.maxFiles > 1) && e.hiddenFileInput.setAttribute("multiple", "multiple"), e.hiddenFileInput.className = "dz-hidden-input", null !== e.options.acceptedFiles && e.hiddenFileInput.setAttribute("accept", e.options.acceptedFiles), null !== e.options.capture && e.hiddenFileInput.setAttribute("capture", e.options.capture), e.hiddenFileInput.style.visibility = "hidden", e.hiddenFileInput.style.position = "absolute", e.hiddenFileInput.style.top = "0", e.hiddenFileInput.style.left = "0", e.hiddenFileInput.style.height = "0", e.hiddenFileInput.style.width = "0", document.querySelector(e.options.hiddenInputContainer).appendChild(e.hiddenFileInput), e.hiddenFileInput.addEventListener("change", function() {
var i = e.hiddenFileInput.files;
if (i.length)
for (var n = 0, r = r = i; !(n >= r.length);) {
var o = r[n++];
e.addFile(o)
}
return e.emit("addedfiles", i), t()
})
}()
}
this.URL = null !== window.URL ? window.URL : window.webkitURL;
for (var i = 0, n = n = this.events;;) {
if (i >= n.length) break;
var r = n[i++];
this.on(r, this.options[r])
}
this.on("uploadprogress", function() {
return e.updateTotalUploadProgress()
}), this.on("removedfile", function() {
return e.updateTotalUploadProgress()
}), this.on("canceled", function(t) {
return e.emit("complete", t)
}), this.on("complete", function(t) {
if (0 === e.getAddedFiles().length && 0 === e.getUploadingFiles().length && 0 === e.getQueuedFiles().length) return setTimeout(function() {
return e.emit("queuecomplete")
}, 0)
});
var o = function(e) {
return e.stopPropagation(), e.preventDefault ? e.preventDefault() : e.returnValue = !1
};
return this.listeners = [{
element: this.element,
events: {
dragstart: function(t) {
return e.emit("dragstart", t)
},
dragenter: function(t) {
return o(t), e.emit("dragenter", t)
},
dragover: function(t) {
var i = void 0;
try {
i = t.dataTransfer.effectAllowed
} catch (e) {}
return t.dataTransfer.dropEffect = "move" === i || "linkMove" === i ? "move" : "copy", o(t), e.emit("dragover", t)
},
dragleave: function(t) {
return e.emit("dragleave", t)
},
drop: function(t) {
return o(t), e.drop(t)
},
dragend: function(t) {
return e.emit("dragend", t)
}
}
}], this.clickableElements.forEach(function(i) {
return e.listeners.push({
element: i,
events: {
click: function(n) {
return (i !== e.element || n.target === e.element || t.elementInside(n.target, e.element.querySelector(".dz-message"))) && e.hiddenFileInput.click(), !0
}
}
})
}), this.enable(), this.options.init.call(this)
}
}, {
key: "destroy",
value: function() {
return this.disable(), this.removeAllFiles(!0), (null != this.hiddenFileInput ? this.hiddenFileInput.parentNode : void 0) && (this.hiddenFileInput.parentNode.removeChild(this.hiddenFileInput), this.hiddenFileInput = null), delete this.element.dropzone, t.instances.splice(t.instances.indexOf(this), 1)
}
}, {
key: "updateTotalUploadProgress",
value: function() {
var e = void 0,
t = 0,
i = 0;
if (this.getActiveFiles().length) {
for (var n = 0, r = r = this.getActiveFiles();;) {
if (n >= r.length) break;
var o = r[n++];
t += o.upload.bytesSent, i += o.upload.total
}
e = 100 * t / i
} else e = 100;
return this.emit("totaluploadprogress", e, i, t)
}
}, {
key: "_getParamName",
value: function(e) {
return "function" == typeof this.options.paramName ? this.options.paramName(e) : this.options.paramName + (this.options.uploadMultiple ? "[" + e + "]" : "")
}
}, {
key: "_renameFile",
value: function(e) {
return "function" != typeof this.options.renameFile ? e.name : this.options.renameFile(e)
}
}, {
key: "getFallbackForm",
value: function() {
var e, i = void 0;
if (e = this.getExistingFallback()) return e;
var n = '<div class="dz-fallback">';
this.options.dictFallbackText && (n += "<p>" + this.options.dictFallbackText + "</p>"), n += '<input type="file" name="' + this._getParamName(0) + '" ' + (this.options.uploadMultiple ? 'multiple="multiple"' : void 0) + ' /><input type="submit" value="Upload!"></div>';
var r = t.createElement(n);
return "FORM" !== this.element.tagName ? (i = t.createElement('<form action="' + this.options.url + '" enctype="multipart/form-data" method="' + this.options.method + '"></form>')).appendChild(r) : (this.element.setAttribute("enctype", "multipart/form-data"), this.element.setAttribute("method", this.options.method)), null != i ? i : r
}
}, {
key: "getExistingFallback",
value: function() {
for (var e = function(e) {
for (var t = 0, i = i = e;;) {
if (t >= i.length) break;
var n = i[t++];
if (/(^| )fallback($| )/.test(n.className)) return n
}
}, t = ["div", "form"], i = 0; i < t.length; i++) {
var n, r = t[i];
if (n = e(this.element.getElementsByTagName(r))) return n
}
}
}, {
key: "setupEventListeners",
value: function() {
return this.listeners.map(function(e) {
return function() {
var t = [];
for (var i in e.events) {
var n = e.events[i];
t.push(e.element.addEventListener(i, n, !1))
}
return t
}()
})
}
}, {
key: "removeEventListeners",
value: function() {
return this.listeners.map(function(e) {
return function() {
var t = [];
for (var i in e.events) {
var n = e.events[i];
t.push(e.element.removeEventListener(i, n, !1))
}
return t
}()
})
}
}, {
key: "disable",
value: function() {
var e = this;
return this.clickableElements.forEach(function(e) {
return e.classList.remove("dz-clickable")
}), this.removeEventListeners(), this.disabled = !0, this.files.map(function(t) {
return e.cancelUpload(t)
})
}
}, {
key: "enable",
value: function() {
return delete this.disabled, this.clickableElements.forEach(function(e) {
return e.classList.add("dz-clickable")
}), this.setupEventListeners()
}
}, {
key: "filesize",
value: function(e) {
var t = 0,
i = "b";
if (e > 0) {
for (var n = ["tb", "gb", "mb", "kb", "b"], r = 0; r < n.length; r++) {
var o = n[r];
if (e >= Math.pow(this.options.filesizeBase, 4 - r) / 10) {
t = e / Math.pow(this.options.filesizeBase, 4 - r), i = o;
break
}
}
t = Math.round(10 * t) / 10
}
return "<strong>" + t + "</strong> " + this.options.dictFileSizeUnits[i]
}
}, {
key: "_updateMaxFilesReachedClass",
value: function() {
return null != this.options.maxFiles && this.getAcceptedFiles().length >= this.options.maxFiles ? (this.getAcceptedFiles().length === this.options.maxFiles && this.emit("maxfilesreached", this.files), this.element.classList.add("dz-max-files-reached")) : this.element.classList.remove("dz-max-files-reached")
}
}, {
key: "drop",
value: function(e) {
if (e.dataTransfer) {
this.emit("drop", e);
for (var t = [], i = 0; i < e.dataTransfer.files.length; i++) t[i] = e.dataTransfer.files[i];
if (this.emit("addedfiles", t), t.length) {
var n = e.dataTransfer.items;
n && n.length && null != n[0].webkitGetAsEntry ? this._addFilesFromItems(n) : this.handleFiles(t)
}
}
}
}, {
key: "paste",
value: function(e) {
if (null != __guard__(null != e ? e.clipboardData : void 0, function(e) {
return e.items
})) {
this.emit("paste", e);
var t = e.clipboardData.items;
return t.length ? this._addFilesFromItems(t) : void 0
}
}
}, {
key: "handleFiles",
value: function(e) {
for (var t = 0, i = i = e;;) {
if (t >= i.length) break;
var n = i[t++];
this.addFile(n)
}
}
}, {
key: "_addFilesFromItems",
value: function(e) {
var t = this;
return function() {
for (var i = [], n = 0, r = r = e;;) {
if (n >= r.length) break;
var o, a = r[n++];
null != a.webkitGetAsEntry && (o = a.webkitGetAsEntry()) ? o.isFile ? i.push(t.addFile(a.getAsFile())) : o.isDirectory ? i.push(t._addFilesFromDirectory(o, o.name)) : i.push(void 0) : null != a.getAsFile && (null == a.kind || "file" === a.kind) ? i.push(t.addFile(a.getAsFile())) : i.push(void 0)
}
return i
}()
}
}, {
key: "_addFilesFromDirectory",
value: function(e, t) {
var i = this,
n = e.createReader(),
r = function(e) {
return __guardMethod__(console, "log", function(t) {
return t.log(e)
})
};
return function e() {
return n.readEntries(function(n) {
if (n.length > 0) {
for (var r = 0, o = o = n; !(r >= o.length);) {
var a = o[r++];
a.isFile ? a.file(function(e) {
if (!i.options.ignoreHiddenFiles || "." !== e.name.substring(0, 1)) return e.fullPath = t + "/" + e.name, i.addFile(e)
}) : a.isDirectory && i._addFilesFromDirectory(a, t + "/" + a.name)
}
e()
}
return null
}, r)
}()
}
}, {
key: "accept",
value: function(e, i) {
return e.size > 1024 * this.options.maxFilesize * 1024 ? i(this.options.dictFileTooBig.replace("{{filesize}}", Math.round(e.size / 1024 / 10.24) / 100).replace("{{maxFilesize}}", this.options.maxFilesize)) : t.isValidFile(e, this.options.acceptedFiles) ? null != this.options.maxFiles && this.getAcceptedFiles().length >= this.options.maxFiles ? (i(this.options.dictMaxFilesExceeded.replace("{{maxFiles}}", this.options.maxFiles)), this.emit("maxfilesexceeded", e)) : this.options.accept.call(this, e, i) : i(this.options.dictInvalidFileType)
}
}, {
key: "addFile",
value: function(e) {
var i = this;
return e.upload = {
uuid: t.uuidv4(),
progress: 0,
total: e.size,
bytesSent: 0,
filename: this._renameFile(e),
chunked: this.options.chunking && (this.options.forceChunking || e.size > this.options.chunkSize),
totalChunkCount: Math.ceil(e.size / this.options.chunkSize)
}, this.files.push(e), e.status = t.ADDED, this.emit("addedfile", e), this._enqueueThumbnail(e), this.accept(e, function(t) {
return t ? (e.accepted = !1, i._errorProcessing([e], t)) : (e.accepted = !0, i.options.autoQueue && i.enqueueFile(e)), i._updateMaxFilesReachedClass()
})
}
}, {
key: "enqueueFiles",
value: function(e) {
for (var t = 0, i = i = e;;) {
if (t >= i.length) break;
var n = i[t++];
this.enqueueFile(n)
}
return null
}
}, {
key: "enqueueFile",
value: function(e) {
var i = this;
if (e.status !== t.ADDED || !0 !== e.accepted) throw new Error("This file can't be queued because it has already been processed or was rejected.");
if (e.status = t.QUEUED, this.options.autoProcessQueue) return setTimeout(function() {
return i.processQueue()
}, 0)
}
}, {
key: "_enqueueThumbnail",
value: function(e) {
var t = this;
if (this.options.createImageThumbnails && e.type.match(/image.*/) && e.size <= 1024 * this.options.maxThumbnailFilesize * 1024) return this._thumbnailQueue.push(e), setTimeout(function() {
return t._processThumbnailQueue()
}, 0)
}
}, {
key: "_processThumbnailQueue",
value: function() {
var e = this;
if (!this._processingThumbnail && 0 !== this._thumbnailQueue.length) {
this._processingThumbnail = !0;
var t = this._thumbnailQueue.shift();
return this.createThumbnail(t, this.options.thumbnailWidth, this.options.thumbnailHeight, this.options.thumbnailMethod, !0, function(i) {
return e.emit("thumbnail", t, i), e._processingThumbnail = !1, e._processThumbnailQueue()
})
}
}
}, {
key: "removeFile",
value: function(e) {
if (e.status === t.UPLOADING && this.cancelUpload(e), this.files = without(this.files, e), this.emit("removedfile", e), 0 === this.files.length) return this.emit("reset")
}
}, {
key: "removeAllFiles",
value: function(e) {
null == e && (e = !1);
for (var i = 0, n = n = this.files.slice();;) {
if (i >= n.length) break;
var r = n[i++];
(r.status !== t.UPLOADING || e) && this.removeFile(r)
}
return null
}
}, {
key: "resizeImage",
value: function(e, i, n, r, o) {
var a = this;
return this.createThumbnail(e, i, n, r, !1, function(i, n) {
if (null == n) return o(e);
var r = a.options.resizeMimeType;
null == r && (r = e.type);
var s = n.toDataURL(r, a.options.resizeQuality);
return "image/jpeg" !== r && "image/jpg" !== r || (s = ExifRestore.restore(e.dataURL, s)), o(t.dataURItoBlob(s))
})
}
}, {
key: "createThumbnail",
value: function(e, t, i, n, r, o) {
var a = this,
s = new FileReader;
return s.onload = function() {
if (e.dataURL = s.result, "image/svg+xml" !== e.type) return a.createThumbnailFromUrl(e, t, i, n, r, o);
null != o && o(s.result)
}, s.readAsDataURL(e)
}
}, {
key: "createThumbnailFromUrl",
value: function(e, t, i, n, r, o, a) {
var s = this,
l = document.createElement("img");
return a && (l.crossOrigin = a), l.onload = function() {
var a = function(e) {
return e(1)
};
return "undefined" != typeof EXIF && null !== EXIF && r && (a = function(e) {
return EXIF.getData(l, function() {
return e(EXIF.getTag(this, "Orientation"))
})
}), a(function(r) {
e.width = l.width, e.height = l.height;
var a = s.options.resize.call(s, e, t, i, n),
u = document.createElement("canvas"),
d = u.getContext("2d");
switch (u.width = a.trgWidth, u.height = a.trgHeight, r > 4 && (u.width = a.trgHeight, u.height = a.trgWidth), r) {
case 2:
d.translate(u.width, 0), d.scale(-1, 1);
break;
case 3:
d.translate(u.width, u.height), d.rotate(Math.PI);
break;
case 4:
d.translate(0, u.height), d.scale(1, -1);
break;
case 5:
d.rotate(.5 * Math.PI), d.scale(1, -1);
break;
case 6:
d.rotate(.5 * Math.PI), d.translate(0, -u.height);
break;
case 7:
d.rotate(.5 * Math.PI), d.translate(u.width, -u.height), d.scale(-1, 1);
break;
case 8:
d.rotate(-.5 * Math.PI), d.translate(-u.width, 0)
}
drawImageIOSFix(d, l, null != a.srcX ? a.srcX : 0, null != a.srcY ? a.srcY : 0, a.srcWidth, a.srcHeight, null != a.trgX ? a.trgX : 0, null != a.trgY ? a.trgY : 0, a.trgWidth, a.trgHeight);
var c = u.toDataURL("image/png");
if (null != o) return o(c, u)
})
}, null != o && (l.onerror = o), l.src = e.dataURL
}
}, {
key: "processQueue",
value: function() {
var e = this.options.parallelUploads,
t = this.getUploadingFiles().length,
i = t;
if (!(t >= e)) {
var n = this.getQueuedFiles();
if (n.length > 0) {
if (this.options.uploadMultiple) return this.processFiles(n.slice(0, e - t));
for (; i < e;) {
if (!n.length) return;
this.processFile(n.shift()), i++
}
}
}
}
}, {
key: "processFile",
value: function(e) {
return this.processFiles([e])
}
}, {
key: "processFiles",
value: function(e) {
for (var i = 0, n = n = e;;) {
if (i >= n.length) break;
var r = n[i++];
r.processing = !0, r.status = t.UPLOADING, this.emit("processing", r)
}
return this.options.uploadMultiple && this.emit("processingmultiple", e), this.uploadFiles(e)
}
}, {
key: "_getFilesWithXhr",
value: function(e) {
return this.files.filter(function(t) {
return t.xhr === e
}).map(function(e) {
return e
})
}
}, {
key: "cancelUpload",
value: function(e) {
if (e.status === t.UPLOADING) {
for (var i = this._getFilesWithXhr(e.xhr), n = 0, r = r = i;;) {
if (n >= r.length) break;
r[n++].status = t.CANCELED
}
void 0 !== e.xhr && e.xhr.abort();
for (var o = 0, a = a = i;;) {
if (o >= a.length) break;
var s = a[o++];
this.emit("canceled", s)
}
this.options.uploadMultiple && this.emit("canceledmultiple", i)
} else e.status !== t.ADDED && e.status !== t.QUEUED || (e.status = t.CANCELED, this.emit("canceled", e), this.options.uploadMultiple && this.emit("canceledmultiple", [e]));
if (this.options.autoProcessQueue) return this.processQueue()
}
}, {
key: "resolveOption",
value: function(e) {
if ("function" == typeof e) {
for (var t = arguments.length, i = Array(t > 1 ? t - 1 : 0), n = 1; n < t; n++) i[n - 1] = arguments[n];
return e.apply(this, i)
}
return e
}
}, {
key: "uploadFile",
value: function(e) {
return this.uploadFiles([e])
}
}, {
key: "uploadFiles",
value: function(e) {
var i = this;
this._transformFiles(e, function(n) {
if (e[0].upload.chunked) {
var r = e[0],
o = n[0];
r.upload.chunks = [];
var a = function() {
for (var n = 0; void 0 !== r.upload.chunks[n];) n++;
if (!(n >= r.upload.totalChunkCount)) {
0;
var a = n * i.options.chunkSize,
s = Math.min(a + i.options.chunkSize, r.size),
l = {
name: i._getParamName(0),
data: o.webkitSlice ? o.webkitSlice(a, s) : o.slice(a, s),
filename: r.upload.filename,
chunkIndex: n
};
r.upload.chunks[n] = {
file: r,
index: n,
dataBlock: l,
status: t.UPLOADING,
progress: 0,
retries: 0
}, i._uploadData(e, [l])
}
};
if (r.upload.finishedChunkUpload = function(n) {
var o = !0;
n.status = t.SUCCESS, n.dataBlock = null;
for (var s = 0; s < r.upload.totalChunkCount; s++) {
if (void 0 === r.upload.chunks[s]) return a();
r.upload.chunks[s].status !== t.SUCCESS && (o = !1)
}
o && i.options.chunksUploaded(r, function() {
i._finished(e, "", null)
})
}, i.options.parallelChunkUploads)
for (var s = 0; s < r.upload.totalChunkCount; s++) a();
else a()
} else {
for (var l = [], u = 0; u < e.length; u++) l[u] = {
name: i._getParamName(u),
data: n[u],
filename: e[u].upload.filename
};
i._uploadData(e, l)
}
})
}
}, {
key: "_getChunk",
value: function(e, t) {
for (var i = 0; i < e.upload.totalChunkCount; i++)
if (void 0 !== e.upload.chunks[i] && e.upload.chunks[i].xhr === t) return e.upload.chunks[i]
}
}, {
key: "_uploadData",
value: function(e, i) {
for (var n = this, r = new XMLHttpRequest, o = 0, a = a = e;;) {
if (o >= a.length) break;
a[o++].xhr = r
}
e[0].upload.chunked && (e[0].upload.chunks[i[0].chunkIndex].xhr = r);
var s = this.resolveOption(this.options.method, e),
l = this.resolveOption(this.options.url, e);
r.open(s, l, !0), r.timeout = this.resolveOption(this.options.timeout, e), r.withCredentials = !!this.options.withCredentials, r.onload = function(t) {
n._finishedUploading(e, r, t)
}, r.onerror = function() {
n._handleUploadError(e, r)
}, (null != r.upload ? r.upload : r).onprogress = function(t) {
return n._updateFilesUploadProgress(e, r, t)
};
var u = {
Accept: "application/json",
"Cache-Control": "no-cache",
"X-Requested-With": "XMLHttpRequest"
};
this.options.headers && t.extend(u, this.options.headers);
for (var d in u) {
var c = u[d];
c && r.setRequestHeader(d, c)
}
var p = new FormData;
if (this.options.params) {
var h = this.options.params;
"function" == typeof h && (h = h.call(this, e, r, e[0].upload.chunked ? this._getChunk(e[0], r) : null));
for (var f in h) {
var m = h[f];
p.append(f, m)
}
}
for (var v = 0, g = g = e;;) {
if (v >= g.length) break;
var k = g[v++];
this.emit("sending", k, r, p)
}
this.options.uploadMultiple && this.emit("sendingmultiple", e, r, p), this._addFormElementData(p);
for (var y = 0; y < i.length; y++) {
var b = i[y];
p.append(b.name, b.data, b.filename)
}
this.submitRequest(r, p, e)
}
}, {
key: "_transformFiles",
value: function(e, t) {
for (var i = this, n = [], r = 0, o = function(o) {
i.options.transformFile.call(i, e[o], function(i) {
n[o] = i, ++r === e.length && t(n)
})
}, a = 0; a < e.length; a++) o(a)
}
}, {
key: "_addFormElementData",
value: function(e) {
if ("FORM" === this.element.tagName)
for (var t = 0, i = i = this.element.querySelectorAll("input, textarea, select, button");;) {
if (t >= i.length) break;
var n = i[t++],
r = n.getAttribute("name"),
o = n.getAttribute("type");
if (o && (o = o.toLowerCase()), void 0 !== r && null !== r)
if ("SELECT" === n.tagName && n.hasAttribute("multiple"))
for (var a = 0, s = s = n.options;;) {
if (a >= s.length) break;
var l = s[a++];
l.selected && e.append(r, l.value)
} else(!o || "checkbox" !== o && "radio" !== o || n.checked) && e.append(r, n.value)
}
}
}, {
key: "_updateFilesUploadProgress",
value: function(e, t, i) {
var n = void 0;
if (void 0 !== i) {
if (n = 100 * i.loaded / i.total, e[0].upload.chunked) {
var r = e[0],
o = this._getChunk(r, t);
o.progress = n, o.total = i.total, o.bytesSent = i.loaded;
r.upload.progress = 0, r.upload.total = 0, r.upload.bytesSent = 0;
for (var a = 0; a < r.upload.totalChunkCount; a++) void 0 !== r.upload.chunks[a] && void 0 !== r.upload.chunks[a].progress && (r.upload.progress += r.upload.chunks[a].progress, r.upload.total += r.upload.chunks[a].total, r.upload.bytesSent += r.upload.chunks[a].bytesSent);
r.upload.progress = r.upload.progress / r.upload.totalChunkCount
} else
for (var s = 0, l = l = e;;) {
if (s >= l.length) break;
var u = l[s++];
u.upload.progress = n, u.upload.total = i.total, u.upload.bytesSent = i.loaded
}
for (var d = 0, c = c = e;;) {
if (d >= c.length) break;
var p = c[d++];
this.emit("uploadprogress", p, p.upload.progress, p.upload.bytesSent)
}
} else {
var h = !0;
n = 100;
for (var f = 0, m = m = e;;) {
if (f >= m.length) break;
var v = m[f++];
100 === v.upload.progress && v.upload.bytesSent === v.upload.total || (h = !1), v.upload.progress = n, v.upload.bytesSent = v.upload.total
}
if (h) return;
for (var g = 0, k = k = e;;) {
if (g >= k.length) break;
var y = k[g++];
this.emit("uploadprogress", y, n, y.upload.bytesSent)
}
}
}
}, {
key: "_finishedUploading",
value: function(e, i, n) {
var r = void 0;
if (e[0].status !== t.CANCELED && 4 === i.readyState) {
if ("arraybuffer" !== i.responseType && "blob" !== i.responseType && (r = i.responseText, i.getResponseHeader("content-type") && ~i.getResponseHeader("content-type").indexOf("application/json"))) try {
r = JSON.parse(r)
} catch (e) {
n = e, r = "Invalid JSON response from server."
}
this._updateFilesUploadProgress(e), 200 <= i.status && i.status < 300 ? e[0].upload.chunked ? e[0].upload.finishedChunkUpload(this._getChunk(e[0], i)) : this._finished(e, r, n) : this._handleUploadError(e, i, r)
}
}
}, {
key: "_handleUploadError",
value: function(e, i, n) {
if (e[0].status !== t.CANCELED) {
if (e[0].upload.chunked && this.options.retryChunks) {
var r = this._getChunk(e[0], i);
if (r.retries++ < this.options.retryChunksLimit) return void this._uploadData(e, [r.dataBlock]);
console.warn("Retried this chunk too often. Giving up.")
}
for (var o = 0, a = a = e;;) {
if (o >= a.length) break;
a[o++];
this._errorProcessing(e, n || this.options.dictResponseError.replace("{{statusCode}}", i.status), i)
}
}
}
}, {
key: "submitRequest",
value: function(e, t, i) {
e.send(t)
}
}, {
key: "_finished",
value: function(e, i, n) {
for (var r = 0, o = o = e;;) {
if (r >= o.length) break;
var a = o[r++];
a.status = t.SUCCESS, this.emit("success", a, i, n), this.emit("complete", a)
}
if (this.options.uploadMultiple && (this.emit("successmultiple", e, i, n), this.emit("completemultiple", e)), this.options.autoProcessQueue) return this.processQueue()
}
}, {
key: "_errorProcessing",
value: function(e, i, n) {
for (var r = 0, o = o = e;;) {
if (r >= o.length) break;
var a = o[r++];
a.status = t.ERROR, this.emit("error", a, i, n), this.emit("complete", a)
}
if (this.options.uploadMultiple && (this.emit("errormultiple", e, i, n), this.emit("completemultiple", e)), this.options.autoProcessQueue) return this.processQueue()
}
}], [{
key: "uuidv4",
value: function() {
return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(e) {
var t = 16 * Math.random() | 0;
return ("x" === e ? t : 3 & t | 8).toString(16)
})
}
}]), t
}();
Dropzone.initClass(), Dropzone.version = "5.4.0", Dropzone.options = {}, Dropzone.optionsForElement = function(e) {
return e.getAttribute("id") ? Dropzone.options[camelize(e.getAttribute("id"))] : void 0
}, Dropzone.instances = [], Dropzone.forElement = function(e) {
if ("string" == typeof e && (e = document.querySelector(e)), null == (null != e ? e.dropzone : void 0)) throw new Error("No Dropzone found for given element. This is probably because you're trying to access it before Dropzone had the time to initialize. Use the `init` option to setup any additional observers on your Dropzone.");
return e.dropzone
}, Dropzone.autoDiscover = !0, Dropzone.discover = function() {
var e = void 0;
if (document.querySelectorAll) e = document.querySelectorAll(".dropzone");
else {
e = [];
var t = function(t) {
return function() {
for (var i = [], n = 0, r = r = t;;) {
if (n >= r.length) break;
var o = r[n++];
/(^| )dropzone($| )/.test(o.className) ? i.push(e.push(o)) : i.push(void 0)
}
return i
}()
};
t(document.getElementsByTagName("div")), t(document.getElementsByTagName("form"))
}
return function() {
for (var t = [], i = 0, n = n = e;;) {
if (i >= n.length) break;
var r = n[i++];
!1 !== Dropzone.optionsForElement(r) ? t.push(new Dropzone(r)) : t.push(void 0)
}
return t
}()
}, Dropzone.blacklistedBrowsers = [/opera.*(Macintosh|Windows Phone).*version/12/i], Dropzone.isBrowserSupported = function() {
var e = !0;
if (window.File && window.FileReader && window.FileList && window.Blob && window.FormData && document.querySelector)
if ("classList" in document.createElement("a"))
for (var t = 0, i = i = Dropzone.blacklistedBrowsers;;) {
if (t >= i.length) break;
i[t++].test(navigator.userAgent) && (e = !1)
} else e = !1;
else e = !1;
return e
}, Dropzone.dataURItoBlob = function(e) {
for (var t = atob(e.split(",")[1]), i = e.split(",")[0].split(":")[1].split(";")[0], n = new ArrayBuffer(t.length), r = new Uint8Array(n), o = 0, a = t.length, s = 0 <= a; s ? o <= a : o >= a; s ? o++ : o--) r[o] = t.charCodeAt(o);
return new Blob([n], {
type: i
})
};
var without = function(e, t) {
return e.filter(function(e) {
return e !== t
}).map(function(e) {
return e
})
},
camelize = function(e) {
return e.replace(/[-_](w)/g, function(e) {
return e.charAt(1).toUpperCase()
})
};
Dropzone.createElement = function(e) {
var t = document.createElement("div");
return t.innerHTML = e, t.childNodes[0]
}, Dropzone.elementInside = function(e, t) {
if (e === t) return !0;
for (; e = e.parentNode;)
if (e === t) return !0;
return !1
}, Dropzone.getElement = function(e, t) {
var i = void 0;
if ("string" == typeof e ? i = document.querySelector(e) : null != e.nodeType && (i = e), null == i) throw new Error("Invalid `" + t + "` option provided. Please provide a CSS selector or a plain HTML element.");
return i
}, Dropzone.getElements = function(e, t) {
var i = void 0,
n = void 0;
if (e instanceof Array) {
n = [];
try {
for (var r = 0, o = o = e; !(r >= o.length);) i = o[r++], n.push(this.getElement(i, t))
} catch (e) {
n = null
}
} else if ("string" == typeof e) {
n = [];
for (var a = 0, s = s = document.querySelectorAll(e); !(a >= s.length);) i = s[a++], n.push(i)
} else null != e.nodeType && (n = [e]);
if (null == n || !n.length) throw new Error("Invalid `" + t + "` option provided. Please provide a CSS selector, a plain HTML element or a list of those.");
return n
}, Dropzone.confirm = function(e, t, i) {
return window.confirm(e) ? t() : null != i ? i() : void 0
}, Dropzone.isValidFile = function(e, t) {
if (!t) return !0;
t = t.split(",");
for (var i = e.type, n = i.replace(//.*$/, ""), r = 0, o = o = t;;) {
if (r >= o.length) break;
var a = o[r++];
if ("." === (a = a.trim()).charAt(0)) {
if (-1 !== e.name.toLowerCase().indexOf(a.toLowerCase(), e.name.length - a.length)) return !0
} else if (//*$/.test(a)) {
if (n === a.replace(//.*$/, "")) return !0
} else if (i === a) return !0
}
return !1
}, "undefined" != typeof jQuery && null !== jQuery && (jQuery.fn.dropzone = function(e) {
return this.each(function() {
return new Dropzone(this, e)
})
}), "undefined" != typeof module && null !== module ? module.exports = Dropzone : window.Dropzone = Dropzone, Dropzone.ADDED = "added", Dropzone.QUEUED = "queued", Dropzone.ACCEPTED = Dropzone.QUEUED, Dropzone.UPLOADING = "uploading", Dropzone.PROCESSING = Dropzone.UPLOADING, Dropzone.CANCELED = "canceled", Dropzone.ERROR = "error", Dropzone.SUCCESS = "success";
var detectVerticalSquash = function(e) {
e.naturalWidth;
var t = e.naturalHeight,
i = document.createElement("canvas");
i.width = 1, i.height = t;
var n = i.getContext("2d");
n.drawImage(e, 0, 0);
for (var r = n.getImageData(1, 0, 1, t).data, o = 0, a = t, s = t; s > o;) {
0 === r[4 * (s - 1) + 3] ? a = s : o = s, s = a + o >> 1
}
var l = s / t;
return 0 === l ? 1 : l
},
drawImageIOSFix = function(e, t, i, n, r, o, a, s, l, u) {
var d = detectVerticalSquash(t);
return e.drawImage(t, i, n, r, o, a, s, l, u / d)
},
ExifRestore = function() {
function e() {
_classCallCheck(this, e)
}
return _createClass(e, null, [{
key: "initClass",
value: function() {
this.KEY_STR = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="
}
}, {
key: "encode64",
value: function(e) {
for (var t = "", i = void 0, n = void 0, r = "", o = void 0, a = void 0, s = void 0, l = "", u = 0; o = (i = e[u++]) >> 2, a = (3 & i) << 4 | (n = e[u++]) >> 4, s = (15 & n) << 2 | (r = e[u++]) >> 6, l = 63 & r, isNaN(n) ? s = l = 64 : isNaN(r) && (l = 64), t = t + this.KEY_STR.charAt(o) + this.KEY_STR.charAt(a) + this.KEY_STR.charAt(s) + this.KEY_STR.charAt(l), i = n = r = "", o = a = s = l = "", u < e.length;);
return t
}
}, {
key: "restore",
value: function(e, t) {
if (!e.match("data:image/jpeg;base64,")) return t;
var i = this.decode64(e.replace("data:image/jpeg;base64,", "")),
n = this.slice2Segments(i),
r = this.exifManipulation(t, n);
return "data:image/jpeg;base64," + this.encode64(r)
}
}, {
key: "exifManipulation",
value: function(e, t) {
var i = this.getExifArray(t),
n = this.insertExif(e, i);
return new Uint8Array(n)
}
}, {
key: "getExifArray",
value: function(e) {
for (var t = void 0, i = 0; i < e.length;) {
if (255 === (t = e[i])[0] & 225 === t[1]) return t;
i++
}
return []
}
}, {
key: "insertExif",
value: function(e, t) {
var i = e.replace("data:image/jpeg;base64,", ""),
n = this.decode64(i),
r = n.indexOf(255, 3),
o = n.slice(0, r),
a = n.slice(r),
s = o;
return s = (s = s.concat(t)).concat(a)
}
}, {
key: "slice2Segments",
value: function(e) {
for (var t = 0, i = [];;) {
if (255 === e[t] & 218 === e[t + 1]) break;
if (255 === e[t] & 216 === e[t + 1]) t += 2;
else {
var n = t + (256 * e[t + 2] + e[t + 3]) + 2,
r = e.slice(t, n);
i.push(r), t = n
}
if (t > e.length) break
}
return i
}
}, {
key: "decode64",
value: function(e) {
var t = void 0,
i = void 0,
n = "",
r = void 0,
o = void 0,
a = "",
s = 0,
l = [];
for (/[^A-Za-z0-9+/=]/g.exec(e) && console.warn("There were invalid base64 characters in the input text.nValid base64 characters are A-Z, a-z, 0-9, '+', '/',and '='nExpect errors in decoding."), e = e.replace(/[^A-Za-z0-9+/=]/g, ""); t = this.KEY_STR.indexOf(e.charAt(s++)) << 2 | (r = this.KEY_STR.indexOf(e.charAt(s++))) >> 4, i = (15 & r) << 4 | (o = this.KEY_STR.indexOf(e.charAt(s++))) >> 2, n = (3 & o) << 6 | (a = this.KEY_STR.indexOf(e.charAt(s++))), l.push(t), 64 !== o && l.push(i), 64 !== a && l.push(n), t = i = n = "", r = o = a = "", s < e.length;);
return l
}
}]), e
}();
ExifRestore.initClass();
var contentLoaded = function(e, t) {
var i = !1,
n = !0,
r = e.document,
o = r.documentElement,
a = r.addEventListener ? "addEventListener" : "attachEvent",
s = r.addEventListener ? "removeEventListener" : "detachEvent",
l = r.addEventListener ? "" : "on",
u = function n(o) {
if ("readystatechange" !== o.type || "complete" === r.readyState) return ("load" === o.type ? e : r)[s](l + o.type, n, !1), !i && (i = !0) ? t.call(e, o.type || o) : void 0
};
if ("complete" !== r.readyState) {
if (r.createEventObject && o.doScroll) {
try {
n = !e.frameElement
} catch (e) {}
n && function e() {
try {
o.doScroll("left")
} catch (t) {
return void setTimeout(e, 50)
}
return u("poll")
}()
}
return r[a](l + "DOMContentLoaded", u, !1), r[a](l + "readystatechange", u, !1), e[a](l + "load", u, !1)
}
};
function __guard__(e, t) {
return void 0 !== e && null !== e ? t(e) : void 0
}
function __guardMethod__(e, t, i) {
return void 0 !== e && null !== e && "function" == typeof e[t] ? i(e, t) : void 0
}
Dropzone._autoDiscoverFunction = function() {
if (Dropzone.autoDiscover) return Dropzone.discover()
}, contentLoaded(window, Dropzone._autoDiscoverFunction);
/*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */
! function(a) {
"function" == typeof define && define.amd ? define(["jquery"], a) : "object" == typeof module && module.exports ? module.exports = function(b, c) {
return void 0 === c && (c = "undefined" != typeof window ? require("jquery") : require("jquery")(b)), a(c), c
} : a(jQuery)
}(function(a) {
var b = function() {
if (a && a.fn && a.fn.select2 && a.fn.select2.amd) var b = a.fn.select2.amd;
var b;
return function() {
if (!b || !b.requirejs) {
b ? c = b : b = {};
var a, c, d;
! function(b) {
function e(a, b) {
return v.call(a, b)
}
function f(a, b) {
var c, d, e, f, g, h, i, j, k, l, m, n, o = b && b.split("/"),
p = t.map,
q = p && p["*"] || {};
if (a) {
for (a = a.split("/"), g = a.length - 1, t.nodeIdCompat && x.test(a[g]) && (a[g] = a[g].replace(x, "")), "." === a[0].charAt(0) && o && (n = o.slice(0, o.length - 1), a = n.concat(a)), k = 0; k < a.length; k++)
if ("." === (m = a[k])) a.splice(k, 1), k -= 1;
else if (".." === m) {
if (0 === k || 1 === k && ".." === a[2] || ".." === a[k - 1]) continue;
k > 0 && (a.splice(k - 1, 2), k -= 2)
}
a = a.join("/")
}
if ((o || q) && p) {
for (c = a.split("/"), k = c.length; k > 0; k -= 1) {
if (d = c.slice(0, k).join("/"), o)
for (l = o.length; l > 0; l -= 1)
if ((e = p[o.slice(0, l).join("/")]) && (e = e[d])) {
f = e, h = k;
break
} if (f) break;
!i && q && q[d] && (i = q[d], j = k)
}!f && i && (f = i, h = j), f && (c.splice(0, h, f), a = c.join("/"))
}
return a
}
function g(a, c) {
return function() {
var d = w.call(arguments, 0);
return "string" != typeof d[0] && 1 === d.length && d.push(null), o.apply(b, d.concat([a, c]))
}
}
function h(a) {
return function(b) {
return f(b, a)
}
}
function i(a) {
return function(b) {
r[a] = b
}
}
function j(a) {
if (e(s, a)) {
var c = s[a];
delete s[a], u[a] = !0, n.apply(b, c)
}
if (!e(r, a) && !e(u, a)) throw new Error("No " + a);
return r[a]
}
function k(a) {
var b, c = a ? a.indexOf("!") : -1;
return c > -1 && (b = a.substring(0, c), a = a.substring(c + 1, a.length)), [b, a]
}
function l(a) {
return a ? k(a) : []
}
function m(a) {
return function() {
return t && t.config && t.config[a] || {}
}
}
var n, o, p, q, r = {},
s = {},
t = {},
u = {},
v = Object.prototype.hasOwnProperty,
w = [].slice,
x = /.js$/;
p = function(a, b) {
var c, d = k(a),
e = d[0],
g = b[1];
return a = d[1], e && (e = f(e, g), c = j(e)), e ? a = c && c.normalize ? c.normalize(a, h(g)) : f(a, g) : (a = f(a, g), d = k(a), e = d[0], a = d[1], e && (c = j(e))), {
f: e ? e + "!" + a : a,
n: a,
pr: e,
p: c
}
}, q = {
require: function(a) {
return g(a)
},
exports: function(a) {
var b = r[a];
return void 0 !== b ? b : r[a] = {}
},
module: function(a) {
return {
id: a,
uri: "",
exports: r[a],
config: m(a)
}
}
}, n = function(a, c, d, f) {
var h, k, m, n, o, t, v, w = [],
x = typeof d;
if (f = f || a, t = l(f), "undefined" === x || "function" === x) {
for (c = !c.length && d.length ? ["require", "exports", "module"] : c, o = 0; o < c.length; o += 1)
if (n = p(c[o], t), "require" === (k = n.f)) w[o] = q.require(a);
else if ("exports" === k) w[o] = q.exports(a), v = !0;
else if ("module" === k) h = w[o] = q.module(a);
else if (e(r, k) || e(s, k) || e(u, k)) w[o] = j(k);
else {
if (!n.p) throw new Error(a + " missing " + k);
n.p.load(n.n, g(f, !0), i(k), {}), w[o] = r[k]
}
m = d ? d.apply(r[a], w) : void 0, a && (h && h.exports !== b && h.exports !== r[a] ? r[a] = h.exports : m === b && v || (r[a] = m))
} else a && (r[a] = d)
}, a = c = o = function(a, c, d, e, f) {
if ("string" == typeof a) return q[a] ? q[a](c) : j(p(a, l(c)).f);
if (!a.splice) {
if (t = a, t.deps && o(t.deps, t.callback), !c) return;
c.splice ? (a = c, c = d, d = null) : a = b
}
return c = c || function() {}, "function" == typeof d && (d = e, e = f), e ? n(b, a, c, d) : setTimeout(function() {
n(b, a, c, d)
}, 4), o
}, o.config = function(a) {
return o(a)
}, a._defined = r, d = function(a, b, c) {
if ("string" != typeof a) throw new Error("See almond README: incorrect module build, no module name");
b.splice || (c = b, b = []), e(r, a) || e(s, a) || (s[a] = [a, b, c])
}, d.amd = {
jQuery: !0
}
}(), b.requirejs = a, b.require = c, b.define = d
}
}(), b.define("almond", function() {}), b.define("jquery", [], function() {
var b = a || $;
return null == b && console && console.error && console.error("Select2: An instance of jQuery or a jQuery-compatible library was not found. Make sure that you are including jQuery before Select2 on your web page."), b
}), b.define("select2/utils", ["jquery"], function(a) {
function b(a) {
var b = a.prototype,
c = [];
for (var d in b) {
"function" == typeof b[d] && ("constructor" !== d && c.push(d))
}
return c
}
var c = {};
c.Extend = function(a, b) {
function c() {
this.constructor = a
}
var d = {}.hasOwnProperty;
for (var e in b) d.call(b, e) && (a[e] = b[e]);
return c.prototype = b.prototype, a.prototype = new c, a.__super__ = b.prototype, a
}, c.Decorate = function(a, c) {
function d() {
var b = Array.prototype.unshift,
d = c.prototype.constructor.length,
e = a.prototype.constructor;
d > 0 && (b.call(arguments, a.prototype.constructor), e = c.prototype.constructor), e.apply(this, arguments)
}
function e() {
this.constructor = d
}
var f = b(c),
g = b(a);
c.displayName = a.displayName, d.prototype = new e;
for (var h = 0; h < g.length; h++) {
var i = g[h];
d.prototype[i] = a.prototype[i]
}
for (var j = (function(a) {
var b = function() {};
a in d.prototype && (b = d.prototype[a]);
var e = c.prototype[a];
return function() {
return Array.prototype.unshift.call(arguments, b), e.apply(this, arguments)
}
}), k = 0; k < f.length; k++) {
var l = f[k];
d.prototype[l] = j(l)
}
return d
};
var d = function() {
this.listeners = {}
};
return d.prototype.on = function(a, b) {
this.listeners = this.listeners || {}, a in this.listeners ? this.listeners[a].push(b) : this.listeners[a] = [b]
}, d.prototype.trigger = function(a) {
var b = Array.prototype.slice,
c = b.call(arguments, 1);
this.listeners = this.listeners || {}, null == c && (c = []), 0 === c.length && c.push({}), c[0]._type = a, a in this.listeners && this.invoke(this.listeners[a], b.call(arguments, 1)), "*" in this.listeners && this.invoke(this.listeners["*"], arguments)
}, d.prototype.invoke = function(a, b) {
for (var c = 0, d = a.length; c < d; c++) a[c].apply(this, b)
}, c.Observable = d, c.generateChars = function(a) {
for (var b = "", c = 0; c < a; c++) {
b += Math.floor(36 * Math.random()).toString(36)
}
return b
}, c.bind = function(a, b) {
return function() {
a.apply(b, arguments)
}
}, c._convertData = function(a) {
for (var b in a) {
var c = b.split("-"),
d = a;
if (1 !== c.length) {
for (var e = 0; e < c.length; e++) {
var f = c[e];
f = f.substring(0, 1).toLowerCase() + f.substring(1), f in d || (d[f] = {}), e == c.length - 1 && (d[f] = a[b]), d = d[f]
}
delete a[b]
}
}
return a
}, c.hasScroll = function(b, c) {
var d = a(c),
e = c.style.overflowX,
f = c.style.overflowY;
return (e !== f || "hidden" !== f && "visible" !== f) && ("scroll" === e || "scroll" === f || (d.innerHeight() < c.scrollHeight || d.innerWidth() < c.scrollWidth))
}, c.escapeMarkup = function(a) {
var b = {
"\": "\",
"&": "&",
"<": "<",
">": ">",
'"': """,
"'": "'",
"/": "/"
};
return "string" != typeof a ? a : String(a).replace(/[&<>"'/\]/g, function(a) {
return b[a]
})
}, c.appendMany = function(b, c) {
if ("1.7" === a.fn.jquery.substr(0, 3)) {
var d = a();
a.map(c, function(a) {
d = d.add(a)
}), c = d
}
b.append(c)
}, c
}), b.define("select2/results", ["jquery", "./utils"], function(a, b) {
function c(a, b, d) {
this.$element = a, this.data = d, this.options = b, c.__super__.constructor.call(this)
}
return b.Extend(c, b.Observable), c.prototype.render = function() {
var b = a('<ul class="select2-results__options" role="tree"></ul>');
return this.options.get("multiple") && b.attr("aria-multiselectable", "true"), this.$results = b, b
}, c.prototype.clear = function() {
this.$results.empty()
}, c.prototype.displayMessage = function(b) {
var c = this.options.get("escapeMarkup");
this.clear(), this.hideLoading();
var d = a('<li role="treeitem" aria-live="assertive" class="select2-results__option"></li>'),
e = this.options.get("translations").get(b.message);
d.append(c(e(b.args))), d[0].className += " select2-results__message", this.$results.append(d)
}, c.prototype.hideMessages = function() {
this.$results.find(".select2-results__message").remove()
}, c.prototype.append = function(a) {
this.hideLoading();
var b = [];
if (null == a.results || 0 === a.results.length) return void(0 === this.$results.children().length && this.trigger("results:message", {
message: "noResults"
}));
a.results = this.sort(a.results);
for (var c = 0; c < a.results.length; c++) {
var d = a.results[c],
e = this.option(d);
b.push(e)
}
this.$results.append(b)
}, c.prototype.position = function(a, b) {
b.find(".select2-results").append(a)
}, c.prototype.sort = function(a) {
return this.options.get("sorter")(a)
}, c.prototype.highlightFirstItem = function() {
var a = this.$results.find(".select2-results__option[aria-selected]"),
b = a.filter("[aria-selected=true]");
b.length > 0 ? b.first().trigger("mouseenter") : a.first().trigger("mouseenter"), this.ensureHighlightVisible()
}, c.prototype.setClasses = function() {
var b = this;
this.data.current(function(c) {
var d = a.map(c, function(a) {
return a.id.toString()
});
b.$results.find(".select2-results__option[aria-selected]").each(function() {
var b = a(this),
c = a.data(this, "data"),
e = "" + c.id;
null != c.element && c.element.selected || null == c.element && a.inArray(e, d) > -1 ? b.attr("aria-selected", "true") : b.attr("aria-selected", "false")
})
})
}, c.prototype.showLoading = function(a) {
this.hideLoading();
var b = this.options.get("translations").get("searching"),
c = {
disabled: !0,
loading: !0,
text: b(a)
},
d = this.option(c);
d.className += " loading-results", this.$results.prepend(d)
}, c.prototype.hideLoading = function() {
this.$results.find(".loading-results").remove()
}, c.prototype.option = function(b) {
var c = document.createElement("li");
c.className = "select2-results__option";
var d = {
role: "treeitem",
"aria-selected": "false"
};
b.disabled && (delete d["aria-selected"], d["aria-disabled"] = "true"), null == b.id && delete d["aria-selected"], null != b._resultId && (c.id = b._resultId), b.title && (c.title = b.title), b.children && (d.role = "group", d["aria-label"] = b.text, delete d["aria-selected"]);
for (var e in d) {
var f = d[e];
c.setAttribute(e, f)
}
if (b.children) {
var g = a(c),
h = document.createElement("strong");
h.className = "select2-results__group";
a(h);
this.template(b, h);
for (var i = [], j = 0; j < b.children.length; j++) {
var k = b.children[j],
l = this.option(k);
i.push(l)
}
var m = a("<ul></ul>", {
class: "select2-results__options select2-results__options--nested"
});
m.append(i), g.append(h), g.append(m)
} else this.template(b, c);
return a.data(c, "data", b), c
}, c.prototype.bind = function(b, c) {
var d = this,
e = b.id + "-results";
this.$results.attr("id", e), b.on("results:all", function(a) {
d.clear(), d.append(a.data), b.isOpen() && (d.setClasses(), d.highlightFirstItem())
}), b.on("results:append", function(a) {
d.append(a.data), b.isOpen() && d.setClasses()
}), b.on("query", function(a) {
d.hideMessages(), d.showLoading(a)
}), b.on("select", function() {
b.isOpen() && (d.setClasses(), d.highlightFirstItem())
}), b.on("unselect", function() {
b.isOpen() && (d.setClasses(), d.highlightFirstItem())
}), b.on("open", function() {
d.$results.attr("aria-expanded", "true"), d.$results.attr("aria-hidden", "false"), d.setClasses(), d.ensureHighlightVisible()
}), b.on("close", function() {
d.$results.attr("aria-expanded", "false"), d.$results.attr("aria-hidden", "true"), d.$results.removeAttr("aria-activedescendant")
}), b.on("results:toggle", function() {
var a = d.getHighlightedResults();
0 !== a.length && a.trigger("mouseup")
}), b.on("results:select", function() {
var a = d.getHighlightedResults();
if (0 !== a.length) {
var b = a.data("data");
"true" == a.attr("aria-selected") ? d.trigger("close", {}) : d.trigger("select", {
data: b
})
}
}), b.on("results:previous", function() {
var a = d.getHighlightedResults(),
b = d.$results.find("[aria-selected]"),
c = b.index(a);
if (0 !== c) {
var e = c - 1;
0 === a.length && (e = 0);
var f = b.eq(e);
f.trigger("mouseenter");
var g = d.$results.offset().top,
h = f.offset().top,
i = d.$results.scrollTop() + (h - g);
0 === e ? d.$results.scrollTop(0) : h - g < 0 && d.$results.scrollTop(i)
}
}), b.on("results:next", function() {
var a = d.getHighlightedResults(),
b = d.$results.find("[aria-selected]"),
c = b.index(a),
e = c + 1;
if (!(e >= b.length)) {
var f = b.eq(e);
f.trigger("mouseenter");
var g = d.$results.offset().top + d.$results.outerHeight(!1),
h = f.offset().top + f.outerHeight(!1),
i = d.$results.scrollTop() + h - g;
0 === e ? d.$results.scrollTop(0) : h > g && d.$results.scrollTop(i)
}
}), b.on("results:focus", function(a) {
a.element.addClass("select2-results__option--highlighted")
}), b.on("results:message", function(a) {
d.displayMessage(a)
}), a.fn.mousewheel && this.$results.on("mousewheel", function(a) {
var b = d.$results.scrollTop(),
c = d.$results.get(0).scrollHeight - b + a.deltaY,
e = a.deltaY > 0 && b - a.deltaY <= 0,
f = a.deltaY < 0 && c <= d.$results.height();
e ? (d.$results.scrollTop(0), a.preventDefault(), a.stopPropagation()) : f && (d.$results.scrollTop(d.$results.get(0).scrollHeight - d.$results.height()), a.preventDefault(), a.stopPropagation())
}), this.$results.on("mouseup", ".select2-results__option[aria-selected]", function(b) {
var c = a(this),
e = c.data("data");
if ("true" === c.attr("aria-selected")) return void(d.options.get("multiple") ? d.trigger("unselect", {
originalEvent: b,
data: e
}) : d.trigger("close", {}));
d.trigger("select", {
originalEvent: b,
data: e
})
}), this.$results.on("mouseenter", ".select2-results__option[aria-selected]", function(b) {
var c = a(this).data("data");
d.getHighlightedResults().removeClass("select2-results__option--highlighted"), d.trigger("results:focus", {
data: c,
element: a(this)
})
})
}, c.prototype.getHighlightedResults = function() {
return this.$results.find(".select2-results__option--highlighted")
}, c.prototype.destroy = function() {
this.$results.remove()
}, c.prototype.ensureHighlightVisible = function() {
var a = this.getHighlightedResults();
if (0 !== a.length) {
var b = this.$results.find("[aria-selected]"),
c = b.index(a),
d = this.$results.offset().top,
e = a.offset().top,
f = this.$results.scrollTop() + (e - d),
g = e - d;
f -= 2 * a.outerHeight(!1), c <= 2 ? this.$results.scrollTop(0) : (g > this.$results.outerHeight() || g < 0) && this.$results.scrollTop(f)
}
}, c.prototype.template = function(b, c) {
var d = this.options.get("templateResult"),
e = this.options.get("escapeMarkup"),
f = d(b, c);
null == f ? c.style.display = "none" : "string" == typeof f ? c.innerHTML = e(f) : a(c).append(f)
}, c
}), b.define("select2/keys", [], function() {
return {
BACKSPACE: 8,
TAB: 9,
ENTER: 13,
SHIFT: 16,
CTRL: 17,
ALT: 18,
ESC: 27,
SPACE: 32,
PAGE_UP: 33,
PAGE_DOWN: 34,
END: 35,
HOME: 36,
LEFT: 37,
UP: 38,
RIGHT: 39,
DOWN: 40,
DELETE: 46
}
}), b.define("select2/selection/base", ["jquery", "../utils", "../keys"], function(a, b, c) {
function d(a, b) {
this.$element = a, this.options = b, d.__super__.constructor.call(this)
}
return b.Extend(d, b.Observable), d.prototype.render = function() {
var b = a('<span class="select2-selection" role="combobox" aria-haspopup="true" aria-expanded="false"></span>');
return this._tabindex = 0, null != this.$element.data("old-tabindex") ? this._tabindex = this.$element.data("old-tabindex") : null != this.$element.attr("tabindex") && (this._tabindex = this.$element.attr("tabindex")), b.attr("title", this.$element.attr("title")), b.attr("tabindex", this._tabindex), this.$selection = b, b
}, d.prototype.bind = function(a, b) {
var d = this,
e = (a.id, a.id + "-results");
this.container = a, this.$selection.on("focus", function(a) {
d.trigger("focus", a)
}), this.$selection.on("blur", function(a) {
d._handleBlur(a)
}), this.$selection.on("keydown", function(a) {
d.trigger("keypress", a), a.which === c.SPACE && a.preventDefault()
}), a.on("results:focus", function(a) {
d.$selection.attr("aria-activedescendant", a.data._resultId)
}), a.on("selection:update", function(a) {
d.update(a.data)
}), a.on("open", function() {
d.$selection.attr("aria-expanded", "true"), d.$selection.attr("aria-owns", e), d._attachCloseHandler(a)
}), a.on("close", function() {
d.$selection.attr("aria-expanded", "false"), d.$selection.removeAttr("aria-activedescendant"), d.$selection.removeAttr("aria-owns"), d.$selection.focus(), d._detachCloseHandler(a)
}), a.on("enable", function() {
d.$selection.attr("tabindex", d._tabindex)
}), a.on("disable", function() {
d.$selection.attr("tabindex", "-1")
})
}, d.prototype._handleBlur = function(b) {
var c = this;
window.setTimeout(function() {
document.activeElement == c.$selection[0] || a.contains(c.$selection[0], document.activeElement) || c.trigger("blur", b)
}, 1)
}, d.prototype._attachCloseHandler = function(b) {
a(document.body).on("mousedown.select2." + b.id, function(b) {
var c = a(b.target),
d = c.closest(".select2");
a(".select2.select2-container--open").each(function() {
var b = a(this);
this != d[0] && b.data("element").select2("close")
})
})
}, d.prototype._detachCloseHandler = function(b) {
a(document.body).off("mousedown.select2." + b.id)
}, d.prototype.position = function(a, b) {
b.find(".selection").append(a)
}, d.prototype.destroy = function() {
this._detachCloseHandler(this.container)
}, d.prototype.update = function(a) {
throw new Error("The `update` method must be defined in child classes.")
}, d
}), b.define("select2/selection/single", ["jquery", "./base", "../utils", "../keys"], function(a, b, c, d) {
function e() {
e.__super__.constructor.apply(this, arguments)
}
return c.Extend(e, b), e.prototype.render = function() {
var a = e.__super__.render.call(this);
return a.addClass("select2-selection--single"), a.html('<span class="select2-selection__rendered"></span><span class="select2-selection__arrow" role="presentation"><b role="presentation"></b></span>'), a
}, e.prototype.bind = function(a, b) {
var c = this;
e.__super__.bind.apply(this, arguments);
var d = a.id + "-container";
this.$selection.find(".select2-selection__rendered").attr("id", d), this.$selection.attr("aria-labelledby", d), this.$selection.on("mousedown", function(a) {
1 === a.which && c.trigger("toggle", {
originalEvent: a
})
}), this.$selection.on("focus", function(a) {}), this.$selection.on("blur", function(a) {}), a.on("focus", function(b) {
a.isOpen() || c.$selection.focus()
}), a.on("selection:update", function(a) {
c.update(a.data)
})
}, e.prototype.clear = function() {
this.$selection.find(".select2-selection__rendered").empty()
}, e.prototype.display = function(a, b) {
var c = this.options.get("templateSelection");
return this.options.get("escapeMarkup")(c(a, b))
}, e.prototype.selectionContainer = function() {
return a("<span></span>")
}, e.prototype.update = function(a) {
if (0 === a.length) return void this.clear();
var b = a[0],
c = this.$selection.find(".select2-selection__rendered"),
d = this.display(b, c);
c.empty().append(d), c.prop("title", b.title || b.text)
}, e
}), b.define("select2/selection/multiple", ["jquery", "./base", "../utils"], function(a, b, c) {
function d(a, b) {
d.__super__.constructor.apply(this, arguments)
}
return c.Extend(d, b), d.prototype.render = function() {
var a = d.__super__.render.call(this);
return a.addClass("select2-selection--multiple"), a.html('<ul class="select2-selection__rendered"></ul>'), a
}, d.prototype.bind = function(b, c) {
var e = this;
d.__super__.bind.apply(this, arguments), this.$selection.on("click", function(a) {
e.trigger("toggle", {
originalEvent: a
})
}), this.$selection.on("click", ".select2-selection__choice__remove", function(b) {
if (!e.options.get("disabled")) {
var c = a(this),
d = c.parent(),
f = d.data("data");
e.trigger("unselect", {
originalEvent: b,
data: f
})
}
})
}, d.prototype.clear = function() {
this.$selection.find(".select2-selection__rendered").empty()
}, d.prototype.display = function(a, b) {
var c = this.options.get("templateSelection");
return this.options.get("escapeMarkup")(c(a, b))
}, d.prototype.selectionContainer = function() {
return a('<li class="select2-selection__choice"><span class="select2-selection__choice__remove" role="presentation">×</span></li>')
}, d.prototype.update = function(a) {
if (this.clear(), 0 !== a.length) {
for (var b = [], d = 0; d < a.length; d++) {
var e = a[d],
f = this.selectionContainer(),
g = this.display(e, f);
f.append(g), f.prop("title", e.title || e.text), f.data("data", e), b.push(f)
}
var h = this.$selection.find(".select2-selection__rendered");
c.appendMany(h, b)
}
}, d
}), b.define("select2/selection/placeholder", ["../utils"], function(a) {
function b(a, b, c) {
this.placeholder = this.normalizePlaceholder(c.get("placeholder")), a.call(this, b, c)
}
return b.prototype.normalizePlaceholder = function(a, b) {
return "string" == typeof b && (b = {
id: "",
text: b
}), b
}, b.prototype.createPlaceholder = function(a, b) {
var c = this.selectionContainer();
return c.html(this.display(b)), c.addClass("select2-selection__placeholder").removeClass("select2-selection__choice"), c
}, b.prototype.update = function(a, b) {
var c = 1 == b.length && b[0].id != this.placeholder.id;
if (b.length > 1 || c) return a.call(this, b);
this.clear();
var d = this.createPlaceholder(this.placeholder);
this.$selection.find(".select2-selection__rendered").append(d)
}, b
}), b.define("select2/selection/allowClear", ["jquery", "../keys"], function(a, b) {
function c() {}
return c.prototype.bind = function(a, b, c) {
var d = this;
a.call(this, b, c), null == this.placeholder && this.options.get("debug") && window.console && console.error && console.error("Select2: The `allowClear` option should be used in combination with the `placeholder` option."), this.$selection.on("mousedown", ".select2-selection__clear", function(a) {
d._handleClear(a)
}), b.on("keypress", function(a) {
d._handleKeyboardClear(a, b)
})
}, c.prototype._handleClear = function(a, b) {
if (!this.options.get("disabled")) {
var c = this.$selection.find(".select2-selection__clear");
if (0 !== c.length) {
b.stopPropagation();
for (var d = c.data("data"), e = 0; e < d.length; e++) {
var f = {
data: d[e]
};
if (this.trigger("unselect", f), f.prevented) return
}
this.$element.val(this.placeholder.id).trigger("change"), this.trigger("toggle", {})
}
}
}, c.prototype._handleKeyboardClear = function(a, c, d) {
d.isOpen() || c.which != b.DELETE && c.which != b.BACKSPACE || this._handleClear(c)
}, c.prototype.update = function(b, c) {
if (b.call(this, c), !(this.$selection.find(".select2-selection__placeholder").length > 0 || 0 === c.length)) {
var d = a('<span class="select2-selection__clear">×</span>');
d.data("data", c), this.$selection.find(".select2-selection__rendered").prepend(d)
}
}, c
}), b.define("select2/selection/search", ["jquery", "../utils", "../keys"], function(a, b, c) {
function d(a, b, c) {
a.call(this, b, c)
}
return d.prototype.render = function(b) {
var c = a('<li class="select2-search select2-search--inline"><input class="select2-search__field" type="search" tabindex="-1" autocomplete="off" autocorrect="off" autocapitalize="none" spellcheck="false" role="textbox" aria-autocomplete="list" /></li>');
this.$searchContainer = c, this.$search = c.find("input");
var d = b.call(this);
return this._transferTabIndex(), d
}, d.prototype.bind = function(a, b, d) {
var e = this;
a.call(this, b, d), b.on("open", function() {
e.$search.trigger("focus")
}), b.on("close", function() {
e.$search.val(""), e.$search.removeAttr("aria-activedescendant"), e.$search.trigger("focus")
}), b.on("enable", function() {
e.$search.prop("disabled", !1), e._transferTabIndex()
}), b.on("disable", function() {
e.$search.prop("disabled", !0)
}), b.on("focus", function(a) {
e.$search.trigger("focus")
}), b.on("results:focus", function(a) {
e.$search.attr("aria-activedescendant", a.id)
}), this.$selection.on("focusin", ".select2-search--inline", function(a) {
e.trigger("focus", a)
}), this.$selection.on("focusout", ".select2-search--inline", function(a) {
e._handleBlur(a)
}), this.$selection.on("keydown", ".select2-search--inline", function(a) {
if (a.stopPropagation(), e.trigger("keypress", a), e._keyUpPrevented = a.isDefaultPrevented(), a.which === c.BACKSPACE && "" === e.$search.val()) {
var b = e.$searchContainer.prev(".select2-selection__choice");
if (b.length > 0) {
var d = b.data("data");
e.searchRemoveChoice(d), a.preventDefault()
}
}
});
var f = document.documentMode,
g = f && f <= 11;
this.$selection.on("input.searchcheck", ".select2-search--inline", function(a) {
if (g) return void e.$selection.off("input.search input.searchcheck");
e.$selection.off("keyup.search")
}), this.$selection.on("keyup.search input.search", ".select2-search--inline", function(a) {
if (g && "input" === a.type) return void e.$selection.off("input.search input.searchcheck");
var b = a.which;
b != c.SHIFT && b != c.CTRL && b != c.ALT && b != c.TAB && e.handleSearch(a)
})
}, d.prototype._transferTabIndex = function(a) {
this.$search.attr("tabindex", this.$selection.attr("tabindex")), this.$selection.attr("tabindex", "-1")
}, d.prototype.createPlaceholder = function(a, b) {
this.$search.attr("placeholder", b.text)
}, d.prototype.update = function(a, b) {
var c = this.$search[0] == document.activeElement;
this.$search.attr("placeholder", ""), a.call(this, b), this.$selection.find(".select2-selection__rendered").append(this.$searchContainer), this.resizeSearch(), c && this.$search.focus()
}, d.prototype.handleSearch = function() {
if (this.resizeSearch(), !this._keyUpPrevented) {
var a = this.$search.val();
this.trigger("query", {
term: a
})
}
this._keyUpPrevented = !1
}, d.prototype.searchRemoveChoice = function(a, b) {
this.trigger("unselect", {
data: b
}), this.$search.val(b.text), this.handleSearch()
}, d.prototype.resizeSearch = function() {
this.$search.css("width", "25px");
var a = "";
if ("" !== this.$search.attr("placeholder")) a = this.$selection.find(".select2-selection__rendered").innerWidth();
else {
a = .75 * (this.$search.val().length + 1) + "em"
}
this.$search.css("width", a)
}, d
}), b.define("select2/selection/eventRelay", ["jquery"], function(a) {
function b() {}
return b.prototype.bind = function(b, c, d) {
var e = this,
f = ["open", "opening", "close", "closing", "select", "selecting", "unselect", "unselecting"],
g = ["opening", "closing", "selecting", "unselecting"];
b.call(this, c, d), c.on("*", function(b, c) {
if (-1 !== a.inArray(b, f)) {
c = c || {};
var d = a.Event("select2:" + b, {
params: c
});
e.$element.trigger(d), -1 !== a.inArray(b, g) && (c.prevented = d.isDefaultPrevented())
}
})
}, b
}), b.define("select2/translation", ["jquery", "require"], function(a, b) {
function c(a) {
this.dict = a || {}
}
return c.prototype.all = function() {
return this.dict
}, c.prototype.get = function(a) {
return this.dict[a]
}, c.prototype.extend = function(b) {
this.dict = a.extend({}, b.all(), this.dict)
}, c._cache = {}, c.loadPath = function(a) {
if (!(a in c._cache)) {
var d = b(a);
c._cache[a] = d
}
return new c(c._cache[a])
}, c
}), b.define("select2/diacritics", [], function() {
return {
"Ⓐ": "A",
"A": "A",
"À": "A",
"Á": "A",
"Â": "A",
"Ầ": "A",
"Ấ": "A",
"Ẫ": "A",
"Ẩ": "A",
"Ã": "A",
"Ā": "A",
"Ă": "A",
"Ằ": "A",
"Ắ": "A",
"Ẵ": "A",
"Ẳ": "A",
"Ȧ": "A",
"Ǡ": "A",
"Ä": "A",
"Ǟ": "A",
"Ả": "A",
"Å": "A",
"Ǻ": "A",
"Ǎ": "A",
"Ȁ": "A",
"Ȃ": "A",
"Ạ": "A",
"Ậ": "A",
"Ặ": "A",
"Ḁ": "A",
"Ą": "A",
"Ⱥ": "A",
"Ɐ": "A",
"Ꜳ": "AA",
"Æ": "AE",
"Ǽ": "AE",
"Ǣ": "AE",
"Ꜵ": "AO",
"Ꜷ": "AU",
"Ꜹ": "AV",
"Ꜻ": "AV",
"Ꜽ": "AY",
"Ⓑ": "B",
"B": "B",
"Ḃ": "B",
"Ḅ": "B",
"Ḇ": "B",
"Ƀ": "B",
"Ƃ": "B",
"Ɓ": "B",
"Ⓒ": "C",
"C": "C",
"Ć": "C",
"Ĉ": "C",
"Ċ": "C",
"Č": "C",
"Ç": "C",
"Ḉ": "C",
"Ƈ": "C",
"Ȼ": "C",
"Ꜿ": "C",
"Ⓓ": "D",
"D": "D",
"Ḋ": "D",
"Ď": "D",
"Ḍ": "D",
"Ḑ": "D",
"Ḓ": "D",
"Ḏ": "D",
"Đ": "D",
"Ƌ": "D",
"Ɗ": "D",
"Ɖ": "D",
"Ꝺ": "D",
"DZ": "DZ",
"DŽ": "DZ",
"Dz": "Dz",
"Dž": "Dz",
"Ⓔ": "E",
"E": "E",
"È": "E",
"É": "E",
"Ê": "E",
"Ề": "E",
"Ế": "E",
"Ễ": "E",
"Ể": "E",
"Ẽ": "E",
"Ē": "E",
"Ḕ": "E",
"Ḗ": "E",
"Ĕ": "E",
"Ė": "E",
"Ë": "E",
"Ẻ": "E",
"Ě": "E",
"Ȅ": "E",
"Ȇ": "E",
"Ẹ": "E",
"Ệ": "E",
"Ȩ": "E",
"Ḝ": "E",
"Ę": "E",
"Ḙ": "E",
"Ḛ": "E",
"Ɛ": "E",
"Ǝ": "E",
"Ⓕ": "F",
"F": "F",
"Ḟ": "F",
"Ƒ": "F",
"Ꝼ": "F",
"Ⓖ": "G",
"G": "G",
"Ǵ": "G",
"Ĝ": "G",
"Ḡ": "G",
"Ğ": "G",
"Ġ": "G",
"Ǧ": "G",
"Ģ": "G",
"Ǥ": "G",
"Ɠ": "G",
"Ꞡ": "G",
"Ᵹ": "G",
"Ꝿ": "G",
"Ⓗ": "H",
"H": "H",
"Ĥ": "H",
"Ḣ": "H",
"Ḧ": "H",
"Ȟ": "H",
"Ḥ": "H",
"Ḩ": "H",
"Ḫ": "H",
"Ħ": "H",
"Ⱨ": "H",
"Ⱶ": "H",
"Ɥ": "H",
"Ⓘ": "I",
"I": "I",
"Ì": "I",
"Í": "I",
"Î": "I",
"Ĩ": "I",
"Ī": "I",
"Ĭ": "I",
"İ": "I",
"Ï": "I",
"Ḯ": "I",
"Ỉ": "I",
"Ǐ": "I",
"Ȉ": "I",
"Ȋ": "I",
"Ị": "I",
"Į": "I",
"Ḭ": "I",
"Ɨ": "I",
"Ⓙ": "J",
"J": "J",
"Ĵ": "J",
"Ɉ": "J",
"Ⓚ": "K",
"K": "K",
"Ḱ": "K",
"Ǩ": "K",
"Ḳ": "K",
"Ķ": "K",
"Ḵ": "K",
"Ƙ": "K",
"Ⱪ": "K",
"Ꝁ": "K",
"Ꝃ": "K",
"Ꝅ": "K",
"Ꞣ": "K",
"Ⓛ": "L",
"L": "L",
"Ŀ": "L",
"Ĺ": "L",
"Ľ": "L",
"Ḷ": "L",
"Ḹ": "L",
"Ļ": "L",
"Ḽ": "L",
"Ḻ": "L",
"Ł": "L",
"Ƚ": "L",
"Ɫ": "L",
"Ⱡ": "L",
"Ꝉ": "L",
"Ꝇ": "L",
"Ꞁ": "L",
"LJ": "LJ",
"Lj": "Lj",
"Ⓜ": "M",
"M": "M",
"Ḿ": "M",
"Ṁ": "M",
"Ṃ": "M",
"Ɱ": "M",
"Ɯ": "M",
"Ⓝ": "N",
"N": "N",
"Ǹ": "N",
"Ń": "N",
"Ñ": "N",
"Ṅ": "N",
"Ň": "N",
"Ṇ": "N",
"Ņ": "N",
"Ṋ": "N",
"Ṉ": "N",
"Ƞ": "N",
"Ɲ": "N",
"Ꞑ": "N",
"Ꞥ": "N",
"NJ": "NJ",
"Nj": "Nj",
"Ⓞ": "O",
"O": "O",
"Ò": "O",
"Ó": "O",
"Ô": "O",
"Ồ": "O",
"Ố": "O",
"Ỗ": "O",
"Ổ": "O",
"Õ": "O",
"Ṍ": "O",
"Ȭ": "O",
"Ṏ": "O",
"Ō": "O",
"Ṑ": "O",
"Ṓ": "O",
"Ŏ": "O",
"Ȯ": "O",
"Ȱ": "O",
"Ö": "O",
"Ȫ": "O",
"Ỏ": "O",
"Ő": "O",
"Ǒ": "O",
"Ȍ": "O",
"Ȏ": "O",
"Ơ": "O",
"Ờ": "O",
"Ớ": "O",
"Ỡ": "O",
"Ở": "O",
"Ợ": "O",
"Ọ": "O",
"Ộ": "O",
"Ǫ": "O",
"Ǭ": "O",
"Ø": "O",
"Ǿ": "O",
"Ɔ": "O",
"Ɵ": "O",
"Ꝋ": "O",
"Ꝍ": "O",
"Ƣ": "OI",
"Ꝏ": "OO",
"Ȣ": "OU",
"Ⓟ": "P",
"P": "P",
"Ṕ": "P",
"Ṗ": "P",
"Ƥ": "P",
"Ᵽ": "P",
"Ꝑ": "P",
"Ꝓ": "P",
"Ꝕ": "P",
"Ⓠ": "Q",
"Q": "Q",
"Ꝗ": "Q",
"Ꝙ": "Q",
"Ɋ": "Q",
"Ⓡ": "R",
"R": "R",
"Ŕ": "R",
"Ṙ": "R",
"Ř": "R",
"Ȑ": "R",
"Ȓ": "R",
"Ṛ": "R",
"Ṝ": "R",
"Ŗ": "R",
"Ṟ": "R",
"Ɍ": "R",
"Ɽ": "R",
"Ꝛ": "R",
"Ꞧ": "R",
"Ꞃ": "R",
"Ⓢ": "S",
"S": "S",
"ẞ": "S",
"Ś": "S",
"Ṥ": "S",
"Ŝ": "S",
"Ṡ": "S",
"Š": "S",
"Ṧ": "S",
"Ṣ": "S",
"Ṩ": "S",
"Ș": "S",
"Ş": "S",
"Ȿ": "S",
"Ꞩ": "S",
"Ꞅ": "S",
"Ⓣ": "T",
"T": "T",
"Ṫ": "T",
"Ť": "T",
"Ṭ": "T",
"Ț": "T",
"Ţ": "T",
"Ṱ": "T",
"Ṯ": "T",
"Ŧ": "T",
"Ƭ": "T",
"Ʈ": "T",
"Ⱦ": "T",
"Ꞇ": "T",
"Ꜩ": "TZ",
"Ⓤ": "U",
"U": "U",
"Ù": "U",
"Ú": "U",
"Û": "U",
"Ũ": "U",
"Ṹ": "U",
"Ū": "U",
"Ṻ": "U",
"Ŭ": "U",
"Ü": "U",
"Ǜ": "U",
"Ǘ": "U",
"Ǖ": "U",
"Ǚ": "U",
"Ủ": "U",
"Ů": "U",
"Ű": "U",
"Ǔ": "U",
"Ȕ": "U",
"Ȗ": "U",
"Ư": "U",
"Ừ": "U",
"Ứ": "U",
"Ữ": "U",
"Ử": "U",
"Ự": "U",
"Ụ": "U",
"Ṳ": "U",
"Ų": "U",
"Ṷ": "U",
"Ṵ": "U",
"Ʉ": "U",
"Ⓥ": "V",
"V": "V",
"Ṽ": "V",
"Ṿ": "V",
"Ʋ": "V",
"Ꝟ": "V",
"Ʌ": "V",
"Ꝡ": "VY",
"Ⓦ": "W",
"W": "W",
"Ẁ": "W",
"Ẃ": "W",
"Ŵ": "W",
"Ẇ": "W",
"Ẅ": "W",
"Ẉ": "W",
"Ⱳ": "W",
"Ⓧ": "X",
"X": "X",
"Ẋ": "X",
"Ẍ": "X",
"Ⓨ": "Y",
"Y": "Y",
"Ỳ": "Y",
"Ý": "Y",
"Ŷ": "Y",
"Ỹ": "Y",
"Ȳ": "Y",
"Ẏ": "Y",
"Ÿ": "Y",
"Ỷ": "Y",
"Ỵ": "Y",
"Ƴ": "Y",
"Ɏ": "Y",
"Ỿ": "Y",
"Ⓩ": "Z",
"Z": "Z",
"Ź": "Z",
"Ẑ": "Z",
"Ż": "Z",
"Ž": "Z",
"Ẓ": "Z",
"Ẕ": "Z",
"Ƶ": "Z",
"Ȥ": "Z",
"Ɀ": "Z",
"Ⱬ": "Z",
"Ꝣ": "Z",
"ⓐ": "a",
"a": "a",
"ẚ": "a",
"à": "a",
"á": "a",
"â": "a",
"ầ": "a",
"ấ": "a",
"ẫ": "a",
"ẩ": "a",
"ã": "a",
"ā": "a",
"ă": "a",
"ằ": "a",
"ắ": "a",
"ẵ": "a",
"ẳ": "a",
"ȧ": "a",
"ǡ": "a",
"ä": "a",
"ǟ": "a",
"ả": "a",
"å": "a",
"ǻ": "a",
"ǎ": "a",
"ȁ": "a",
"ȃ": "a",
"ạ": "a",
"ậ": "a",
"ặ": "a",
"ḁ": "a",
"ą": "a",
"ⱥ": "a",
"ɐ": "a",
"ꜳ": "aa",
"æ": "ae",
"ǽ": "ae",
"ǣ": "ae",
"ꜵ": "ao",
"ꜷ": "au",
"ꜹ": "av",
"ꜻ": "av",
"ꜽ": "ay",
"ⓑ": "b",
"b": "b",
"ḃ": "b",
"ḅ": "b",
"ḇ": "b",
"ƀ": "b",
"ƃ": "b",
"ɓ": "b",
"ⓒ": "c",
"c": "c",
"ć": "c",
"ĉ": "c",
"ċ": "c",
"č": "c",
"ç": "c",
"ḉ": "c",
"ƈ": "c",
"ȼ": "c",
"ꜿ": "c",
"ↄ": "c",
"ⓓ": "d",
"d": "d",
"ḋ": "d",
"ď": "d",
"ḍ": "d",
"ḑ": "d",
"ḓ": "d",
"ḏ": "d",
"đ": "d",
"ƌ": "d",
"ɖ": "d",
"ɗ": "d",
"ꝺ": "d",
"dz": "dz",
"dž": "dz",
"ⓔ": "e",
"e": "e",
"è": "e",
"é": "e",
"ê": "e",
"ề": "e",
"ế": "e",
"ễ": "e",
"ể": "e",
"ẽ": "e",
"ē": "e",
"ḕ": "e",
"ḗ": "e",
"ĕ": "e",
"ė": "e",
"ë": "e",
"ẻ": "e",
"ě": "e",
"ȅ": "e",
"ȇ": "e",
"ẹ": "e",
"ệ": "e",
"ȩ": "e",
"ḝ": "e",
"ę": "e",
"ḙ": "e",
"ḛ": "e",
"ɇ": "e",
"ɛ": "e",
"ǝ": "e",
"ⓕ": "f",
"f": "f",
"ḟ": "f",
"ƒ": "f",
"ꝼ": "f",
"ⓖ": "g",
"g": "g",
"ǵ": "g",
"ĝ": "g",
"ḡ": "g",
"ğ": "g",
"ġ": "g",
"ǧ": "g",
"ģ": "g",
"ǥ": "g",
"ɠ": "g",
"ꞡ": "g",
"ᵹ": "g",
"ꝿ": "g",
"ⓗ": "h",
"h": "h",
"ĥ": "h",
"ḣ": "h",
"ḧ": "h",
"ȟ": "h",
"ḥ": "h",
"ḩ": "h",
"ḫ": "h",
"ẖ": "h",
"ħ": "h",
"ⱨ": "h",
"ⱶ": "h",
"ɥ": "h",
"ƕ": "hv",
"ⓘ": "i",
"i": "i",
"ì": "i",
"í": "i",
"î": "i",
"ĩ": "i",
"ī": "i",
"ĭ": "i",
"ï": "i",
"ḯ": "i",
"ỉ": "i",
"ǐ": "i",
"ȉ": "i",
"ȋ": "i",
"ị": "i",
"į": "i",
"ḭ": "i",
"ɨ": "i",
"ı": "i",
"ⓙ": "j",
"j": "j",
"ĵ": "j",
"ǰ": "j",
"ɉ": "j",
"ⓚ": "k",
"k": "k",
"ḱ": "k",
"ǩ": "k",
"ḳ": "k",
"ķ": "k",
"ḵ": "k",
"ƙ": "k",
"ⱪ": "k",
"ꝁ": "k",
"ꝃ": "k",
"ꝅ": "k",
"ꞣ": "k",
"ⓛ": "l",
"l": "l",
"ŀ": "l",
"ĺ": "l",
"ľ": "l",
"ḷ": "l",
"ḹ": "l",
"ļ": "l",
"ḽ": "l",
"ḻ": "l",
"ſ": "l",
"ł": "l",
"ƚ": "l",
"ɫ": "l",
"ⱡ": "l",
"ꝉ": "l",
"ꞁ": "l",
"ꝇ": "l",
"lj": "lj",
"ⓜ": "m",
"m": "m",
"ḿ": "m",
"ṁ": "m",
"ṃ": "m",
"ɱ": "m",
"ɯ": "m",
"ⓝ": "n",
"n": "n",
"ǹ": "n",
"ń": "n",
"ñ": "n",
"ṅ": "n",
"ň": "n",
"ṇ": "n",
"ņ": "n",
"ṋ": "n",
"ṉ": "n",
"ƞ": "n",
"ɲ": "n",
"ʼn": "n",
"ꞑ": "n",
"ꞥ": "n",
"nj": "nj",
"ⓞ": "o",
"o": "o",
"ò": "o",
"ó": "o",
"ô": "o",
"ồ": "o",
"ố": "o",
"ỗ": "o",
"ổ": "o",
"õ": "o",
"ṍ": "o",
"ȭ": "o",
"ṏ": "o",
"ō": "o",
"ṑ": "o",
"ṓ": "o",
"ŏ": "o",
"ȯ": "o",
"ȱ": "o",
"ö": "o",
"ȫ": "o",
"ỏ": "o",
"ő": "o",
"ǒ": "o",
"ȍ": "o",
"ȏ": "o",
"ơ": "o",
"ờ": "o",
"ớ": "o",
"ỡ": "o",
"ở": "o",
"ợ": "o",
"ọ": "o",
"ộ": "o",
"ǫ": "o",
"ǭ": "o",
"ø": "o",
"ǿ": "o",
"ɔ": "o",
"ꝋ": "o",
"ꝍ": "o",
"ɵ": "o",
"ƣ": "oi",
"ȣ": "ou",
"ꝏ": "oo",
"ⓟ": "p",
"p": "p",
"ṕ": "p",
"ṗ": "p",
"ƥ": "p",
"ᵽ": "p",
"ꝑ": "p",
"ꝓ": "p",
"ꝕ": "p",
"ⓠ": "q",
"q": "q",
"ɋ": "q",
"ꝗ": "q",
"ꝙ": "q",
"ⓡ": "r",
"r": "r",
"ŕ": "r",
"ṙ": "r",
"ř": "r",
"ȑ": "r",
"ȓ": "r",
"ṛ": "r",
"ṝ": "r",
"ŗ": "r",
"ṟ": "r",
"ɍ": "r",
"ɽ": "r",
"ꝛ": "r",
"ꞧ": "r",
"ꞃ": "r",
"ⓢ": "s",
"s": "s",
"ß": "s",
"ś": "s",
"ṥ": "s",
"ŝ": "s",
"ṡ": "s",
"š": "s",
"ṧ": "s",
"ṣ": "s",
"ṩ": "s",
"ș": "s",
"ş": "s",
"ȿ": "s",
"ꞩ": "s",
"ꞅ": "s",
"ẛ": "s",
"ⓣ": "t",
"t": "t",
"ṫ": "t",
"ẗ": "t",
"ť": "t",
"ṭ": "t",
"ț": "t",
"ţ": "t",
"ṱ": "t",
"ṯ": "t",
"ŧ": "t",
"ƭ": "t",
"ʈ": "t",
"ⱦ": "t",
"ꞇ": "t",
"ꜩ": "tz",
"ⓤ": "u",
"u": "u",
"ù": "u",
"ú": "u",
"û": "u",
"ũ": "u",
"ṹ": "u",
"ū": "u",
"ṻ": "u",
"ŭ": "u",
"ü": "u",
"ǜ": "u",
"ǘ": "u",
"ǖ": "u",
"ǚ": "u",
"ủ": "u",
"ů": "u",
"ű": "u",
"ǔ": "u",
"ȕ": "u",
"ȗ": "u",
"ư": "u",
"ừ": "u",
"ứ": "u",
"ữ": "u",
"ử": "u",
"ự": "u",
"ụ": "u",
"ṳ": "u",
"ų": "u",
"ṷ": "u",
"ṵ": "u",
"ʉ": "u",
"ⓥ": "v",
"v": "v",
"ṽ": "v",
"ṿ": "v",
"ʋ": "v",
"ꝟ": "v",
"ʌ": "v",
"ꝡ": "vy",
"ⓦ": "w",
"w": "w",
"ẁ": "w",
"ẃ": "w",
"ŵ": "w",
"ẇ": "w",
"ẅ": "w",
"ẘ": "w",
"ẉ": "w",
"ⱳ": "w",
"ⓧ": "x",
"x": "x",
"ẋ": "x",
"ẍ": "x",
"ⓨ": "y",
"y": "y",
"ỳ": "y",
"ý": "y",
"ŷ": "y",
"ỹ": "y",
"ȳ": "y",
"ẏ": "y",
"ÿ": "y",
"ỷ": "y",
"ẙ": "y",
"ỵ": "y",
"ƴ": "y",
"ɏ": "y",
"ỿ": "y",
"ⓩ": "z",
"z": "z",
"ź": "z",
"ẑ": "z",
"ż": "z",
"ž": "z",
"ẓ": "z",
"ẕ": "z",
"ƶ": "z",
"ȥ": "z",
"ɀ": "z",
"ⱬ": "z",
"ꝣ": "z",
"Ά": "Α",
"Έ": "Ε",
"Ή": "Η",
"Ί": "Ι",
"Ϊ": "Ι",
"Ό": "Ο",
"Ύ": "Υ",
"Ϋ": "Υ",
"Ώ": "Ω",
"ά": "α",
"έ": "ε",
"ή": "η",
"ί": "ι",
"ϊ": "ι",
"ΐ": "ι",
"ό": "ο",
"ύ": "υ",
"ϋ": "υ",
"ΰ": "υ",
"ω": "ω",
"ς": "σ"
}
}), b.define("select2/data/base", ["../utils"], function(a) {
function b(a, c) {
b.__super__.constructor.call(this)
}
return a.Extend(b, a.Observable), b.prototype.current = function(a) {
throw new Error("The `current` method must be defined in child classes.")
}, b.prototype.query = function(a, b) {
throw new Error("The `query` method must be defined in child classes.")
}, b.prototype.bind = function(a, b) {}, b.prototype.destroy = function() {}, b.prototype.generateResultId = function(b, c) {
var d = b.id + "-result-";
return d += a.generateChars(4), null != c.id ? d += "-" + c.id.toString() : d += "-" + a.generateChars(4), d
}, b
}), b.define("select2/data/select", ["./base", "../utils", "jquery"], function(a, b, c) {
function d(a, b) {
this.$element = a, this.options = b, d.__super__.constructor.call(this)
}
return b.Extend(d, a), d.prototype.current = function(a) {
var b = [],
d = this;
this.$element.find(":selected").each(function() {
var a = c(this),
e = d.item(a);
b.push(e)
}), a(b)
}, d.prototype.select = function(a) {
var b = this;
if (a.selected = !0, c(a.element).is("option")) return a.element.selected = !0, void this.$element.trigger("change");
if (this.$element.prop("multiple")) this.current(function(d) {
var e = [];
a = [a], a.push.apply(a, d);
for (var f = 0; f < a.length; f++) {
var g = a[f].id; - 1 === c.inArray(g, e) && e.push(g)
}
b.$element.val(e), b.$element.trigger("change")
});
else {
var d = a.id;
this.$element.val(d), this.$element.trigger("change")
}
}, d.prototype.unselect = function(a) {
var b = this;
if (this.$element.prop("multiple")) {
if (a.selected = !1, c(a.element).is("option")) return a.element.selected = !1, void this.$element.trigger("change");
this.current(function(d) {
for (var e = [], f = 0; f < d.length; f++) {
var g = d[f].id;
g !== a.id && -1 === c.inArray(g, e) && e.push(g)
}
b.$element.val(e), b.$element.trigger("change")
})
}
}, d.prototype.bind = function(a, b) {
var c = this;
this.container = a, a.on("select", function(a) {
c.select(a.data)
}), a.on("unselect", function(a) {
c.unselect(a.data)
})
}, d.prototype.destroy = function() {
this.$element.find("*").each(function() {
c.removeData(this, "data")
})
}, d.prototype.query = function(a, b) {
var d = [],
e = this;
this.$element.children().each(function() {
var b = c(this);
if (b.is("option") || b.is("optgroup")) {
var f = e.item(b),
g = e.matches(a, f);
null !== g && d.push(g)
}
}), b({
results: d
})
}, d.prototype.addOptions = function(a) {
b.appendMany(this.$element, a)
}, d.prototype.option = function(a) {
var b;
a.children ? (b = document.createElement("optgroup"), b.label = a.text) : (b = document.createElement("option"), void 0 !== b.textContent ? b.textContent = a.text : b.innerText = a.text), void 0 !== a.id && (b.value = a.id), a.disabled && (b.disabled = !0), a.selected && (b.selected = !0), a.title && (b.title = a.title);
var d = c(b),
e = this._normalizeItem(a);
return e.element = b, c.data(b, "data", e), d
}, d.prototype.item = function(a) {
var b = {};
if (null != (b = c.data(a[0], "data"))) return b;
if (a.is("option")) b = {
id: a.val(),
text: a.text(),
disabled: a.prop("disabled"),
selected: a.prop("selected"),
title: a.prop("title")
};
else if (a.is("optgroup")) {
b = {
text: a.prop("label"),
children: [],
title: a.prop("title")
};
for (var d = a.children("option"), e = [], f = 0; f < d.length; f++) {
var g = c(d[f]),
h = this.item(g);
e.push(h)
}
b.children = e
}
return b = this._normalizeItem(b), b.element = a[0], c.data(a[0], "data", b), b
}, d.prototype._normalizeItem = function(a) {
c.isPlainObject(a) || (a = {
id: a,
text: a
}), a = c.extend({}, {
text: ""
}, a);
var b = {
selected: !1,
disabled: !1
};
return null != a.id && (a.id = a.id.toString()), null != a.text && (a.text = a.text.toString()), null == a._resultId && a.id && null != this.container && (a._resultId = this.generateResultId(this.container, a)), c.extend({}, b, a)
}, d.prototype.matches = function(a, b) {
return this.options.get("matcher")(a, b)
}, d
}), b.define("select2/data/array", ["./select", "../utils", "jquery"], function(a, b, c) {
function d(a, b) {
var c = b.get("data") || [];
d.__super__.constructor.call(this, a, b), this.addOptions(this.convertToOptions(c))
}
return b.Extend(d, a), d.prototype.select = function(a) {
var b = this.$element.find("option").filter(function(b, c) {
return c.value == a.id.toString()
});
0 === b.length && (b = this.option(a), this.addOptions(b)), d.__super__.select.call(this, a)
}, d.prototype.convertToOptions = function(a) {
function d(a) {
return function() {
return c(this).val() == a.id
}
}
for (var e = this, f = this.$element.find("option"), g = f.map(function() {
return e.item(c(this)).id
}).get(), h = [], i = 0; i < a.length; i++) {
var j = this._normalizeItem(a[i]);
if (c.inArray(j.id, g) >= 0) {
var k = f.filter(d(j)),
l = this.item(k),
m = c.extend(!0, {}, j, l),
n = this.option(m);
k.replaceWith(n)
} else {
var o = this.option(j);
if (j.children) {
var p = this.convertToOptions(j.children);
b.appendMany(o, p)
}
h.push(o)
}
}
return h
}, d
}), b.define("select2/data/ajax", ["./array", "../utils", "jquery"], function(a, b, c) {
function d(a, b) {
this.ajaxOptions = this._applyDefaults(b.get("ajax")), null != this.ajaxOptions.processResults && (this.processResults = this.ajaxOptions.processResults), d.__super__.constructor.call(this, a, b)
}
return b.Extend(d, a), d.prototype._applyDefaults = function(a) {
var b = {
data: function(a) {
return c.extend({}, a, {
q: a.term
})
},
transport: function(a, b, d) {
var e = c.ajax(a);
return e.then(b), e.fail(d), e
}
};
return c.extend({}, b, a, !0)
}, d.prototype.processResults = function(a) {
return a
}, d.prototype.query = function(a, b) {
function d() {
var d = f.transport(f, function(d) {
var f = e.processResults(d, a);
e.options.get("debug") && window.console && console.error && (f && f.results && c.isArray(f.results) || console.error("Select2: The AJAX results did not return an array in the `results` key of the response.")), b(f)
}, function() {
d.status && "0" === d.status || e.trigger("results:message", {
message: "errorLoading"
})
});
e._request = d
}
var e = this;
null != this._request && (c.isFunction(this._request.abort) && this._request.abort(), this._request = null);
var f = c.extend({
type: "GET"
}, this.ajaxOptions);
"function" == typeof f.url && (f.url = f.url.call(this.$element, a)), "function" == typeof f.data && (f.data = f.data.call(this.$element, a)), this.ajaxOptions.delay && null != a.term ? (this._queryTimeout && window.clearTimeout(this._queryTimeout), this._queryTimeout = window.setTimeout(d, this.ajaxOptions.delay)) : d()
}, d
}), b.define("select2/data/tags", ["jquery"], function(a) {
function b(b, c, d) {
var e = d.get("tags"),
f = d.get("createTag");
void 0 !== f && (this.createTag = f);
var g = d.get("insertTag");
if (void 0 !== g && (this.insertTag = g), b.call(this, c, d), a.isArray(e))
for (var h = 0; h < e.length; h++) {
var i = e[h],
j = this._normalizeItem(i),
k = this.option(j);
this.$element.append(k)
}
}
return b.prototype.query = function(a, b, c) {
function d(a, f) {
for (var g = a.results, h = 0; h < g.length; h++) {
var i = g[h],
j = null != i.children && !d({
results: i.children
}, !0);
if ((i.text || "").toUpperCase() === (b.term || "").toUpperCase() || j) return !f && (a.data = g, void c(a))
}
if (f) return !0;
var k = e.createTag(b);
if (null != k) {
var l = e.option(k);
l.attr("data-select2-tag", !0), e.addOptions([l]), e.insertTag(g, k)
}
a.results = g, c(a)
}
var e = this;
if (this._removeOldTags(), null == b.term || null != b.page) return void a.call(this, b, c);
a.call(this, b, d)
}, b.prototype.createTag = function(b, c) {
var d = a.trim(c.term);
return "" === d ? null : {
id: d,
text: d
}
}, b.prototype.insertTag = function(a, b, c) {
b.unshift(c)
}, b.prototype._removeOldTags = function(b) {
this._lastTag;
this.$element.find("option[data-select2-tag]").each(function() {
this.selected || a(this).remove()
})
}, b
}), b.define("select2/data/tokenizer", ["jquery"], function(a) {
function b(a, b, c) {
var d = c.get("tokenizer");
void 0 !== d && (this.tokenizer = d), a.call(this, b, c)
}
return b.prototype.bind = function(a, b, c) {
a.call(this, b, c), this.$search = b.dropdown.$search || b.selection.$search || c.find(".select2-search__field")
}, b.prototype.query = function(b, c, d) {
function e(b) {
var c = g._normalizeItem(b);
if (!g.$element.find("option").filter(function() {
return a(this).val() === c.id
}).length) {
var d = g.option(c);
d.attr("data-select2-tag", !0), g._removeOldTags(), g.addOptions([d])
}
f(c)
}
function f(a) {
g.trigger("select", {
data: a
})
}
var g = this;
c.term = c.term || "";
var h = this.tokenizer(c, this.options, e);
h.term !== c.term && (this.$search.length && (this.$search.val(h.term), this.$search.focus()), c.term = h.term), b.call(this, c, d)
}, b.prototype.tokenizer = function(b, c, d, e) {
for (var f = d.get("tokenSeparators") || [], g = c.term, h = 0, i = this.createTag || function(a) {
return {
id: a.term,
text: a.term
}
}; h < g.length;) {
var j = g[h];
if (-1 !== a.inArray(j, f)) {
var k = g.substr(0, h),
l = a.extend({}, c, {
term: k
}),
m = i(l);
null != m ? (e(m), g = g.substr(h + 1) || "", h = 0) : h++
} else h++
}
return {
term: g
}
}, b
}), b.define("select2/data/minimumInputLength", [], function() {
function a(a, b, c) {
this.minimumInputLength = c.get("minimumInputLength"), a.call(this, b, c)
}
return a.prototype.query = function(a, b, c) {
if (b.term = b.term || "", b.term.length < this.minimumInputLength) return void this.trigger("results:message", {
message: "inputTooShort",
args: {
minimum: this.minimumInputLength,
input: b.term,
params: b
}
});
a.call(this, b, c)
}, a
}), b.define("select2/data/maximumInputLength", [], function() {
function a(a, b, c) {
this.maximumInputLength = c.get("maximumInputLength"), a.call(this, b, c)
}
return a.prototype.query = function(a, b, c) {
if (b.term = b.term || "", this.maximumInputLength > 0 && b.term.length > this.maximumInputLength) return void this.trigger("results:message", {
message: "inputTooLong",
args: {
maximum: this.maximumInputLength,
input: b.term,
params: b
}
});
a.call(this, b, c)
}, a
}), b.define("select2/data/maximumSelectionLength", [], function() {
function a(a, b, c) {
this.maximumSelectionLength = c.get("maximumSelectionLength"), a.call(this, b, c)
}
return a.prototype.query = function(a, b, c) {
var d = this;
this.current(function(e) {
var f = null != e ? e.length : 0;
if (d.maximumSelectionLength > 0 && f >= d.maximumSelectionLength) return void d.trigger("results:message", {
message: "maximumSelected",
args: {
maximum: d.maximumSelectionLength
}
});
a.call(d, b, c)
})
}, a
}), b.define("select2/dropdown", ["jquery", "./utils"], function(a, b) {
function c(a, b) {
this.$element = a, this.options = b, c.__super__.constructor.call(this)
}
return b.Extend(c, b.Observable), c.prototype.render = function() {
var b = a('<span class="select2-dropdown"><span class="select2-results"></span></span>');
return b.attr("dir", this.options.get("dir")), this.$dropdown = b, b
}, c.prototype.bind = function() {}, c.prototype.position = function(a, b) {}, c.prototype.destroy = function() {
this.$dropdown.remove()
}, c
}), b.define("select2/dropdown/search", ["jquery", "../utils"], function(a, b) {
function c() {}
return c.prototype.render = function(b) {
var c = b.call(this),
d = a('<span class="select2-search select2-search--dropdown"><input class="select2-search__field" type="search" tabindex="-1" autocomplete="off" autocorrect="off" autocapitalize="none" spellcheck="false" role="textbox" /></span>');
return this.$searchContainer = d, this.$search = d.find("input"), c.prepend(d), c
}, c.prototype.bind = function(b, c, d) {
var e = this;
b.call(this, c, d), this.$search.on("keydown", function(a) {
e.trigger("keypress", a), e._keyUpPrevented = a.isDefaultPrevented()
}), this.$search.on("input", function(b) {
a(this).off("keyup")
}), this.$search.on("keyup input", function(a) {
e.handleSearch(a)
}), c.on("open", function() {
e.$search.attr("tabindex", 0), e.$search.focus(), window.setTimeout(function() {
e.$search.focus()
}, 0)
}), c.on("close", function() {
e.$search.attr("tabindex", -1), e.$search.val("")
}), c.on("focus", function() {
c.isOpen() || e.$search.focus()
}), c.on("results:all", function(a) {
if (null == a.query.term || "" === a.query.term) {
e.showSearch(a) ? e.$searchContainer.removeClass("select2-search--hide") : e.$searchContainer.addClass("select2-search--hide")
}
})
}, c.prototype.handleSearch = function(a) {
if (!this._keyUpPrevented) {
var b = this.$search.val();
this.trigger("query", {
term: b
})
}
this._keyUpPrevented = !1
}, c.prototype.showSearch = function(a, b) {
return !0
}, c
}), b.define("select2/dropdown/hidePlaceholder", [], function() {
function a(a, b, c, d) {
this.placeholder = this.normalizePlaceholder(c.get("placeholder")), a.call(this, b, c, d)
}
return a.prototype.append = function(a, b) {
b.results = this.removePlaceholder(b.results), a.call(this, b)
}, a.prototype.normalizePlaceholder = function(a, b) {
return "string" == typeof b && (b = {
id: "",
text: b
}), b
}, a.prototype.removePlaceholder = function(a, b) {
for (var c = b.slice(0), d = b.length - 1; d >= 0; d--) {
var e = b[d];
this.placeholder.id === e.id && c.splice(d, 1)
}
return c
}, a
}), b.define("select2/dropdown/infiniteScroll", ["jquery"], function(a) {
function b(a, b, c, d) {
this.lastParams = {}, a.call(this, b, c, d), this.$loadingMore = this.createLoadingMore(), this.loading = !1
}
return b.prototype.append = function(a, b) {
this.$loadingMore.remove(), this.loading = !1, a.call(this, b), this.showLoadingMore(b) && this.$results.append(this.$loadingMore)
}, b.prototype.bind = function(b, c, d) {
var e = this;
b.call(this, c, d), c.on("query", function(a) {
e.lastParams = a, e.loading = !0
}), c.on("query:append", function(a) {
e.lastParams = a, e.loading = !0
}), this.$results.on("scroll", function() {
var b = a.contains(document.documentElement, e.$loadingMore[0]);
if (!e.loading && b) {
e.$results.offset().top + e.$results.outerHeight(!1) + 50 >= e.$loadingMore.offset().top + e.$loadingMore.outerHeight(!1) && e.loadMore()
}
})
}, b.prototype.loadMore = function() {
this.loading = !0;
var b = a.extend({}, {
page: 1
}, this.lastParams);
b.page++, this.trigger("query:append", b)
}, b.prototype.showLoadingMore = function(a, b) {
return b.pagination && b.pagination.more
}, b.prototype.createLoadingMore = function() {
var b = a('<li class="select2-results__option select2-results__option--load-more"role="treeitem" aria-disabled="true"></li>'),
c = this.options.get("translations").get("loadingMore");
return b.html(c(this.lastParams)), b
}, b
}), b.define("select2/dropdown/attachBody", ["jquery", "../utils"], function(a, b) {
function c(b, c, d) {
this.$dropdownParent = d.get("dropdownParent") || a(document.body), b.call(this, c, d)
}
return c.prototype.bind = function(a, b, c) {
var d = this,
e = !1;
a.call(this, b, c), b.on("open", function() {
d._showDropdown(), d._attachPositioningHandler(b), e || (e = !0, b.on("results:all", function() {
d._positionDropdown(), d._resizeDropdown()
}), b.on("results:append", function() {
d._positionDropdown(), d._resizeDropdown()
}))
}), b.on("close", function() {
d._hideDropdown(), d._detachPositioningHandler(b)
}), this.$dropdownContainer.on("mousedown", function(a) {
a.stopPropagation()
})
}, c.prototype.destroy = function(a) {
a.call(this), this.$dropdownContainer.remove()
}, c.prototype.position = function(a, b, c) {
b.attr("class", c.attr("class")), b.removeClass("select2"), b.addClass("select2-container--open"), b.css({
position: "absolute",
top: -999999
}), this.$container = c
}, c.prototype.render = function(b) {
var c = a("<span></span>"),
d = b.call(this);
return c.append(d), this.$dropdownContainer = c, c
}, c.prototype._hideDropdown = function(a) {
this.$dropdownContainer.detach()
}, c.prototype._attachPositioningHandler = function(c, d) {
var e = this,
f = "scroll.select2." + d.id,
g = "resize.select2." + d.id,
h = "orientationchange.select2." + d.id,
i = this.$container.parents().filter(b.hasScroll);
i.each(function() {
a(this).data("select2-scroll-position", {
x: a(this).scrollLeft(),
y: a(this).scrollTop()
})
}), i.on(f, function(b) {
var c = a(this).data("select2-scroll-position");
a(this).scrollTop(c.y)
}), a(window).on(f + " " + g + " " + h, function(a) {
e._positionDropdown(), e._resizeDropdown()
})
}, c.prototype._detachPositioningHandler = function(c, d) {
var e = "scroll.select2." + d.id,
f = "resize.select2." + d.id,
g = "orientationchange.select2." + d.id;
this.$container.parents().filter(b.hasScroll).off(e), a(window).off(e + " " + f + " " + g)
}, c.prototype._positionDropdown = function() {
var b = a(window),
c = this.$dropdown.hasClass("select2-dropdown--above"),
d = this.$dropdown.hasClass("select2-dropdown--below"),
e = null,
f = this.$container.offset();
f.bottom = f.top + this.$container.outerHeight(!1);
var g = {
height: this.$container.outerHeight(!1)
};
g.top = f.top, g.bottom = f.top + g.height;
var h = {
height: this.$dropdown.outerHeight(!1)
},
i = {
top: b.scrollTop(),
bottom: b.scrollTop() + b.height()
},
j = i.top < f.top - h.height,
k = i.bottom > f.bottom + h.height,
l = {
left: f.left,
top: g.bottom
},
m = this.$dropdownParent;
"static" === m.css("position") && (m = m.offsetParent());
var n = m.offset();
l.top -= n.top, l.left -= n.left, c || d || (e = "below"), k || !j || c ? !j && k && c && (e = "below") : e = "above", ("above" == e || c && "below" !== e) && (l.top = g.top - n.top - h.height), null != e && (this.$dropdown.removeClass("select2-dropdown--below select2-dropdown--above").addClass("select2-dropdown--" + e), this.$container.removeClass("select2-container--below select2-container--above").addClass("select2-container--" + e)), this.$dropdownContainer.css(l)
}, c.prototype._resizeDropdown = function() {
var a = {
width: this.$container.outerWidth(!1) + "px"
};
this.options.get("dropdownAutoWidth") && (a.minWidth = a.width, a.position = "relative", a.width = "auto"), this.$dropdown.css(a)
}, c.prototype._showDropdown = function(a) {
this.$dropdownContainer.appendTo(this.$dropdownParent), this._positionDropdown(), this._resizeDropdown()
}, c
}), b.define("select2/dropdown/minimumResultsForSearch", [], function() {
function a(b) {
for (var c = 0, d = 0; d < b.length; d++) {
var e = b[d];
e.children ? c += a(e.children) : c++
}
return c
}
function b(a, b, c, d) {
this.minimumResultsForSearch = c.get("minimumResultsForSearch"), this.minimumResultsForSearch < 0 && (this.minimumResultsForSearch = 1 / 0), a.call(this, b, c, d)
}
return b.prototype.showSearch = function(b, c) {
return !(a(c.data.results) < this.minimumResultsForSearch) && b.call(this, c)
}, b
}), b.define("select2/dropdown/selectOnClose", [], function() {
function a() {}
return a.prototype.bind = function(a, b, c) {
var d = this;
a.call(this, b, c), b.on("close", function(a) {
d._handleSelectOnClose(a)
})
}, a.prototype._handleSelectOnClose = function(a, b) {
if (b && null != b.originalSelect2Event) {
var c = b.originalSelect2Event;
if ("select" === c._type || "unselect" === c._type) return
}
var d = this.getHighlightedResults();
if (!(d.length < 1)) {
var e = d.data("data");
null != e.element && e.element.selected || null == e.element && e.selected || this.trigger("select", {
data: e
})
}
}, a
}), b.define("select2/dropdown/closeOnSelect", [], function() {
function a() {}
return a.prototype.bind = function(a, b, c) {
var d = this;
a.call(this, b, c), b.on("select", function(a) {
d._selectTriggered(a)
}), b.on("unselect", function(a) {
d._selectTriggered(a)
})
}, a.prototype._selectTriggered = function(a, b) {
var c = b.originalEvent;
c && c.ctrlKey || this.trigger("close", {
originalEvent: c,
originalSelect2Event: b
})
}, a
}), b.define("select2/i18n/en", [], function() {
return {
errorLoading: function() {
return "The results could not be loaded."
},
inputTooLong: function(a) {
var b = a.input.length - a.maximum,
c = "Please delete " + b + " character";
return 1 != b && (c += "s"), c
},
inputTooShort: function(a) {
return "Please enter " + (a.minimum - a.input.length) + " or more characters"
},
loadingMore: function() {
return "Loading more results…"
},
maximumSelected: function(a) {
var b = "You can only select " + a.maximum + " item";
return 1 != a.maximum && (b += "s"), b
},
noResults: function() {
return "No results found"
},
searching: function() {
return "Searching…"
}
}
}), b.define("select2/defaults", ["jquery", "require", "./results", "./selection/single", "./selection/multiple", "./selection/placeholder", "./selection/allowClear", "./selection/search", "./selection/eventRelay", "./utils", "./translation", "./diacritics", "./data/select", "./data/array", "./data/ajax", "./data/tags", "./data/tokenizer", "./data/minimumInputLength", "./data/maximumInputLength", "./data/maximumSelectionLength", "./dropdown", "./dropdown/search", "./dropdown/hidePlaceholder", "./dropdown/infiniteScroll", "./dropdown/attachBody", "./dropdown/minimumResultsForSearch", "./dropdown/selectOnClose", "./dropdown/closeOnSelect", "./i18n/en"], function(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C) {
function D() {
this.reset()
}
return D.prototype.apply = function(l) {
if (l = a.extend(!0, {}, this.defaults, l), null == l.dataAdapter) {
if (null != l.ajax ? l.dataAdapter = o : null != l.data ? l.dataAdapter = n : l.dataAdapter = m, l.minimumInputLength > 0 && (l.dataAdapter = j.Decorate(l.dataAdapter, r)), l.maximumInputLength > 0 && (l.dataAdapter = j.Decorate(l.dataAdapter, s)), l.maximumSelectionLength > 0 && (l.dataAdapter = j.Decorate(l.dataAdapter, t)), l.tags && (l.dataAdapter = j.Decorate(l.dataAdapter, p)), null == l.tokenSeparators && null == l.tokenizer || (l.dataAdapter = j.Decorate(l.dataAdapter, q)), null != l.query) {
var C = b(l.amdBase + "compat/query");
l.dataAdapter = j.Decorate(l.dataAdapter, C)
}
if (null != l.initSelection) {
var D = b(l.amdBase + "compat/initSelection");
l.dataAdapter = j.Decorate(l.dataAdapter, D)
}
}
if (null == l.resultsAdapter && (l.resultsAdapter = c, null != l.ajax && (l.resultsAdapter = j.Decorate(l.resultsAdapter, x)), null != l.placeholder && (l.resultsAdapter = j.Decorate(l.resultsAdapter, w)), l.selectOnClose && (l.resultsAdapter = j.Decorate(l.resultsAdapter, A))), null == l.dropdownAdapter) {
if (l.multiple) l.dropdownAdapter = u;
else {
var E = j.Decorate(u, v);
l.dropdownAdapter = E
}
if (0 !== l.minimumResultsForSearch && (l.dropdownAdapter = j.Decorate(l.dropdownAdapter, z)), l.closeOnSelect && (l.dropdownAdapter = j.Decorate(l.dropdownAdapter, B)), null != l.dropdownCssClass || null != l.dropdownCss || null != l.adaptDropdownCssClass) {
var F = b(l.amdBase + "compat/dropdownCss");
l.dropdownAdapter = j.Decorate(l.dropdownAdapter, F)
}
l.dropdownAdapter = j.Decorate(l.dropdownAdapter, y)
}
if (null == l.selectionAdapter) {
if (l.multiple ? l.selectionAdapter = e : l.selectionAdapter = d, null != l.placeholder && (l.selectionAdapter = j.Decorate(l.selectionAdapter, f)), l.allowClear && (l.selectionAdapter = j.Decorate(l.selectionAdapter, g)), l.multiple && (l.selectionAdapter = j.Decorate(l.selectionAdapter, h)), null != l.containerCssClass || null != l.containerCss || null != l.adaptContainerCssClass) {
var G = b(l.amdBase + "compat/containerCss");
l.selectionAdapter = j.Decorate(l.selectionAdapter, G)
}
l.selectionAdapter = j.Decorate(l.selectionAdapter, i)
}
if ("string" == typeof l.language)
if (l.language.indexOf("-") > 0) {
var H = l.language.split("-"),
I = H[0];
l.language = [l.language, I]
} else l.language = [l.language];
if (a.isArray(l.language)) {
var J = new k;
l.language.push("en");
for (var K = l.language, L = 0; L < K.length; L++) {
var M = K[L],
N = {};
try {
N = k.loadPath(M)
} catch (a) {
try {
M = this.defaults.amdLanguageBase + M, N = k.loadPath(M)
} catch (a) {
l.debug && window.console && console.warn && console.warn('Select2: The language file for "' + M + '" could not be automatically loaded. A fallback will be used instead.');
continue
}
}
J.extend(N)
}
l.translations = J
} else {
var O = k.loadPath(this.defaults.amdLanguageBase + "en"),
P = new k(l.language);
P.extend(O), l.translations = P
}
return l
}, D.prototype.reset = function() {
function b(a) {
function b(a) {
return l[a] || a
}
return a.replace(/[^u0000-u007E]/g, b)
}
function c(d, e) {
if ("" === a.trim(d.term)) return e;
if (e.children && e.children.length > 0) {
for (var f = a.extend(!0, {}, e), g = e.children.length - 1; g >= 0; g--) {
null == c(d, e.children[g]) && f.children.splice(g, 1)
}
return f.children.length > 0 ? f : c(d, f)
}
var h = b(e.text).toUpperCase(),
i = b(d.term).toUpperCase();
return h.indexOf(i) > -1 ? e : null
}
this.defaults = {
amdBase: "./",
amdLanguageBase: "./i18n/",
closeOnSelect: !0,
debug: !1,
dropdownAutoWidth: !1,
escapeMarkup: j.escapeMarkup,
language: C,
matcher: c,
minimumInputLength: 0,
maximumInputLength: 0,
maximumSelectionLength: 0,
minimumResultsForSearch: 0,
selectOnClose: !1,
sorter: function(a) {
return a
},
templateResult: function(a) {
return a.text
},
templateSelection: function(a) {
return a.text
},
theme: "default",
width: "resolve"
}
}, D.prototype.set = function(b, c) {
var d = a.camelCase(b),
e = {};
e[d] = c;
var f = j._convertData(e);
a.extend(this.defaults, f)
}, new D
}), b.define("select2/options", ["require", "jquery", "./defaults", "./utils"], function(a, b, c, d) {
function e(b, e) {
if (this.options = b, null != e && this.fromElement(e), this.options = c.apply(this.options), e && e.is("input")) {
var f = a(this.get("amdBase") + "compat/inputData");
this.options.dataAdapter = d.Decorate(this.options.dataAdapter, f)
}
}
return e.prototype.fromElement = function(a) {
var c = ["select2"];
null == this.options.multiple && (this.options.multiple = a.prop("multiple")), null == this.options.disabled && (this.options.disabled = a.prop("disabled")), null == this.options.language && (a.prop("lang") ? this.options.language = a.prop("lang").toLowerCase() : a.closest("[lang]").prop("lang") && (this.options.language = a.closest("[lang]").prop("lang"))), null == this.options.dir && (a.prop("dir") ? this.options.dir = a.prop("dir") : a.closest("[dir]").prop("dir") ? this.options.dir = a.closest("[dir]").prop("dir") : this.options.dir = "ltr"), a.prop("disabled", this.options.disabled), a.prop("multiple", this.options.multiple), a.data("select2Tags") && (this.options.debug && window.console && console.warn && console.warn('Select2: The `data-select2-tags` attribute has been changed to use the `data-data` and `data-tags="true"` attributes and will be removed in future versions of Select2.'), a.data("data", a.data("select2Tags")), a.data("tags", !0)), a.data("ajaxUrl") && (this.options.debug && window.console && console.warn && console.warn("Select2: The `data-ajax-url` attribute has been changed to `data-ajax--url` and support for the old attribute will be removed in future versions of Select2."), a.attr("ajax--url", a.data("ajaxUrl")), a.data("ajax--url", a.data("ajaxUrl")));
var e = {};
e = b.fn.jquery && "1." == b.fn.jquery.substr(0, 2) && a[0].dataset ? b.extend(!0, {}, a[0].dataset, a.data()) : a.data();
var f = b.extend(!0, {}, e);
f = d._convertData(f);
for (var g in f) b.inArray(g, c) > -1 || (b.isPlainObject(this.options[g]) ? b.extend(this.options[g], f[g]) : this.options[g] = f[g]);
return this
}, e.prototype.get = function(a) {
return this.options[a]
}, e.prototype.set = function(a, b) {
this.options[a] = b
}, e
}), b.define("select2/core", ["jquery", "./options", "./utils", "./keys"], function(a, b, c, d) {
var e = function(a, c) {
null != a.data("select2") && a.data("select2").destroy(), this.$element = a, this.id = this._generateId(a), c = c || {}, this.options = new b(c, a), e.__super__.constructor.call(this);
var d = a.attr("tabindex") || 0;
a.data("old-tabindex", d), a.attr("tabindex", "-1");
var f = this.options.get("dataAdapter");
this.dataAdapter = new f(a, this.options);
var g = this.render();
this._placeContainer(g);
var h = this.options.get("selectionAdapter");
this.selection = new h(a, this.options), this.$selection = this.selection.render(), this.selection.position(this.$selection, g);
var i = this.options.get("dropdownAdapter");
this.dropdown = new i(a, this.options), this.$dropdown = this.dropdown.render(), this.dropdown.position(this.$dropdown, g);
var j = this.options.get("resultsAdapter");
this.results = new j(a, this.options, this.dataAdapter), this.$results = this.results.render(), this.results.position(this.$results, this.$dropdown);
var k = this;
this._bindAdapters(), this._registerDomEvents(), this._registerDataEvents(), this._registerSelectionEvents(), this._registerDropdownEvents(), this._registerResultsEvents(), this._registerEvents(), this.dataAdapter.current(function(a) {
k.trigger("selection:update", {
data: a
})
}), a.addClass("select2-hidden-accessible"), a.attr("aria-hidden", "true"), this._syncAttributes(), a.data("select2", this)
};
return c.Extend(e, c.Observable), e.prototype._generateId = function(a) {
var b = "";
return b = null != a.attr("id") ? a.attr("id") : null != a.attr("name") ? a.attr("name") + "-" + c.generateChars(2) : c.generateChars(4), b = b.replace(/(:|.|[|]|,)/g, ""), b = "select2-" + b
}, e.prototype._placeContainer = function(a) {
a.insertAfter(this.$element);
var b = this._resolveWidth(this.$element, this.options.get("width"));
null != b && a.css("width", b)
}, e.prototype._resolveWidth = function(a, b) {
var c = /^width:(([-+]?([0-9]*.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;
if ("resolve" == b) {
var d = this._resolveWidth(a, "style");
return null != d ? d : this._resolveWidth(a, "element")
}
if ("element" == b) {
var e = a.outerWidth(!1);
return e <= 0 ? "auto" : e + "px"
}
if ("style" == b) {
var f = a.attr("style");
if ("string" != typeof f) return null;
for (var g = f.split(";"), h = 0, i = g.length; h < i; h += 1) {
var j = g[h].replace(/s/g, ""),
k = j.match(c);
if (null !== k && k.length >= 1) return k[1]
}
return null
}
return b
}, e.prototype._bindAdapters = function() {
this.dataAdapter.bind(this, this.$container), this.selection.bind(this, this.$container), this.dropdown.bind(this, this.$container), this.results.bind(this, this.$container)
}, e.prototype._registerDomEvents = function() {
var b = this;
this.$element.on("change.select2", function() {
b.dataAdapter.current(function(a) {
b.trigger("selection:update", {
data: a
})
})
}), this.$element.on("focus.select2", function(a) {
b.trigger("focus", a)
}), this._syncA = c.bind(this._syncAttributes, this), this._syncS = c.bind(this._syncSubtree, this), this.$element[0].attachEvent && this.$element[0].attachEvent("onpropertychange", this._syncA);
var d = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;
null != d ? (this._observer = new d(function(c) {
a.each(c, b._syncA), a.each(c, b._syncS)
}), this._observer.observe(this.$element[0], {
attributes: !0,
childList: !0,
subtree: !1
})) : this.$element[0].addEventListener && (this.$element[0].addEventListener("DOMAttrModified", b._syncA, !1), this.$element[0].addEventListener("DOMNodeInserted", b._syncS, !1), this.$element[0].addEventListener("DOMNodeRemoved", b._syncS, !1))
}, e.prototype._registerDataEvents = function() {
var a = this;
this.dataAdapter.on("*", function(b, c) {
a.trigger(b, c)
})
}, e.prototype._registerSelectionEvents = function() {
var b = this,
c = ["toggle", "focus"];
this.selection.on("toggle", function() {
b.toggleDropdown()
}), this.selection.on("focus", function(a) {
b.focus(a)
}), this.selection.on("*", function(d, e) {
-1 === a.inArray(d, c) && b.trigger(d, e)
})
}, e.prototype._registerDropdownEvents = function() {
var a = this;
this.dropdown.on("*", function(b, c) {
a.trigger(b, c)
})
}, e.prototype._registerResultsEvents = function() {
var a = this;
this.results.on("*", function(b, c) {
a.trigger(b, c)
})
}, e.prototype._registerEvents = function() {
var a = this;
this.on("open", function() {
a.$container.addClass("select2-container--open")
}), this.on("close", function() {
a.$container.removeClass("select2-container--open")
}), this.on("enable", function() {
a.$container.removeClass("select2-container--disabled")
}), this.on("disable", function() {
a.$container.addClass("select2-container--disabled")
}), this.on("blur", function() {
a.$container.removeClass("select2-container--focus")
}), this.on("query", function(b) {
a.isOpen() || a.trigger("open", {}), this.dataAdapter.query(b, function(c) {
a.trigger("results:all", {
data: c,
query: b
})
})
}), this.on("query:append", function(b) {
this.dataAdapter.query(b, function(c) {
a.trigger("results:append", {
data: c,
query: b
})
})
}), this.on("keypress", function(b) {
var c = b.which;
a.isOpen() ? c === d.ESC || c === d.TAB || c === d.UP && b.altKey ? (a.close(), b.preventDefault()) : c === d.ENTER ? (a.trigger("results:select", {}), b.preventDefault()) : c === d.SPACE && b.ctrlKey ? (a.trigger("results:toggle", {}), b.preventDefault()) : c === d.UP ? (a.trigger("results:previous", {}), b.preventDefault()) : c === d.DOWN && (a.trigger("results:next", {}), b.preventDefault()) : (c === d.ENTER || c === d.SPACE || c === d.DOWN && b.altKey) && (a.open(), b.preventDefault())
})
}, e.prototype._syncAttributes = function() {
this.options.set("disabled", this.$element.prop("disabled")), this.options.get("disabled") ? (this.isOpen() && this.close(), this.trigger("disable", {})) : this.trigger("enable", {})
}, e.prototype._syncSubtree = function(a, b) {
var c = !1,
d = this;
if (!a || !a.target || "OPTION" === a.target.nodeName || "OPTGROUP" === a.target.nodeName) {
if (b)
if (b.addedNodes && b.addedNodes.length > 0)
for (var e = 0; e < b.addedNodes.length; e++) {
var f = b.addedNodes[e];
f.selected && (c = !0)
} else b.removedNodes && b.removedNodes.length > 0 && (c = !0);
else c = !0;
c && this.dataAdapter.current(function(a) {
d.trigger("selection:update", {
data: a
})
})
}
}, e.prototype.trigger = function(a, b) {
var c = e.__super__.trigger,
d = {
open: "opening",
close: "closing",
select: "selecting",
unselect: "unselecting"
};
if (void 0 === b && (b = {}), a in d) {
var f = d[a],
g = {
prevented: !1,
name: a,
args: b
};
if (c.call(this, f, g), g.prevented) return void(b.prevented = !0)
}
c.call(this, a, b)
}, e.prototype.toggleDropdown = function() {
this.options.get("disabled") || (this.isOpen() ? this.close() : this.open())
}, e.prototype.open = function() {
this.isOpen() || this.trigger("query", {})
}, e.prototype.close = function() {
this.isOpen() && this.trigger("close", {})
}, e.prototype.isOpen = function() {
return this.$container.hasClass("select2-container--open")
}, e.prototype.hasFocus = function() {
return this.$container.hasClass("select2-container--focus")
}, e.prototype.focus = function(a) {
this.hasFocus() || (this.$container.addClass("select2-container--focus"), this.trigger("focus", {}))
}, e.prototype.enable = function(a) {
this.options.get("debug") && window.console && console.warn && console.warn('Select2: The `select2("enable")` method has been deprecated and will be removed in later Select2 versions. Use $element.prop("disabled") instead.'), null != a && 0 !== a.length || (a = [!0]);
var b = !a[0];
this.$element.prop("disabled", b)
}, e.prototype.data = function() {
this.options.get("debug") && arguments.length > 0 && window.console && console.warn && console.warn('Select2: Data can no longer be set using `select2("data")`. You should consider setting the value instead using `$element.val()`.');
var a = [];
return this.dataAdapter.current(function(b) {
a = b
}), a
}, e.prototype.val = function(b) {
if (this.options.get("debug") && window.console && console.warn && console.warn('Select2: The `select2("val")` method has been deprecated and will be removed in later Select2 versions. Use $element.val() instead.'), null == b || 0 === b.length) return this.$element.val();
var c = b[0];
a.isArray(c) && (c = a.map(c, function(a) {
return a.toString()
})), this.$element.val(c).trigger("change")
}, e.prototype.destroy = function() {
this.$container.remove(), this.$element[0].detachEvent && this.$element[0].detachEvent("onpropertychange", this._syncA), null != this._observer ? (this._observer.disconnect(), this._observer = null) : this.$element[0].removeEventListener && (this.$element[0].removeEventListener("DOMAttrModified", this._syncA, !1), this.$element[0].removeEventListener("DOMNodeInserted", this._syncS, !1), this.$element[0].removeEventListener("DOMNodeRemoved", this._syncS, !1)), this._syncA = null, this._syncS = null, this.$element.off(".select2"), this.$element.attr("tabindex", this.$element.data("old-tabindex")), this.$element.removeClass("select2-hidden-accessible"), this.$element.attr("aria-hidden", "false"), this.$element.removeData("select2"), this.dataAdapter.destroy(), this.selection.destroy(), this.dropdown.destroy(), this.results.destroy(), this.dataAdapter = null, this.selection = null, this.dropdown = null, this.results = null
}, e.prototype.render = function() {
var b = a('<span class="select2 select2-container"><span class="selection"></span><span class="dropdown-wrapper" aria-hidden="true"></span></span>');
return b.attr("dir", this.options.get("dir")), this.$container = b, this.$container.addClass("select2-container--" + this.options.get("theme")), b.data("element", this.$element), b
}, e
}), b.define("select2/compat/utils", ["jquery"], function(a) {
function b(b, c, d) {
var e, f, g = [];
e = a.trim(b.attr("class")), e && (e = "" + e, a(e.split(/s+/)).each(function() {
0 === this.indexOf("select2-") && g.push(this)
})), e = a.trim(c.attr("class")), e && (e = "" + e, a(e.split(/s+/)).each(function() {
0 !== this.indexOf("select2-") && null != (f = d(this)) && g.push(f)
})), b.attr("class", g.join(" "))
}
return {
syncCssClasses: b
}
}), b.define("select2/compat/containerCss", ["jquery", "./utils"], function(a, b) {
function c(a) {
return null
}
function d() {}
return d.prototype.render = function(d) {
var e = d.call(this),
f = this.options.get("containerCssClass") || "";
a.isFunction(f) && (f = f(this.$element));
var g = this.options.get("adaptContainerCssClass");
if (g = g || c, -1 !== f.indexOf(":all:")) {
f = f.replace(":all:", "");
var h = g;
g = function(a) {
var b = h(a);
return null != b ? b + " " + a : a
}
}
var i = this.options.get("containerCss") || {};
return a.isFunction(i) && (i = i(this.$element)), b.syncCssClasses(e, this.$element, g), e.css(i), e.addClass(f), e
}, d
}), b.define("select2/compat/dropdownCss", ["jquery", "./utils"], function(a, b) {
function c(a) {
return null
}
function d() {}
return d.prototype.render = function(d) {
var e = d.call(this),
f = this.options.get("dropdownCssClass") || "";
a.isFunction(f) && (f = f(this.$element));
var g = this.options.get("adaptDropdownCssClass");
if (g = g || c, -1 !== f.indexOf(":all:")) {
f = f.replace(":all:", "");
var h = g;
g = function(a) {
var b = h(a);
return null != b ? b + " " + a : a
}
}
var i = this.options.get("dropdownCss") || {};
return a.isFunction(i) && (i = i(this.$element)), b.syncCssClasses(e, this.$element, g), e.css(i), e.addClass(f), e
}, d
}), b.define("select2/compat/initSelection", ["jquery"], function(a) {
function b(a, b, c) {
c.get("debug") && window.console && console.warn && console.warn("Select2: The `initSelection` option has been deprecated in favor of a custom data adapter that overrides the `current` method. This method is now called multiple times instead of a single time when the instance is initialized. Support will be removed for the `initSelection` option in future versions of Select2"), this.initSelection = c.get("initSelection"), this._isInitialized = !1, a.call(this, b, c)
}
return b.prototype.current = function(b, c) {
var d = this;
if (this._isInitialized) return void b.call(this, c);
this.initSelection.call(null, this.$element, function(b) {
d._isInitialized = !0, a.isArray(b) || (b = [b]), c(b)
})
}, b
}), b.define("select2/compat/inputData", ["jquery"], function(a) {
function b(a, b, c) {
this._currentData = [], this._valueSeparator = c.get("valueSeparator") || ",", "hidden" === b.prop("type") && c.get("debug") && console && console.warn && console.warn("Select2: Using a hidden input with Select2 is no longer supported and may stop working in the future. It is recommended to use a `<select>` element instead."), a.call(this, b, c)
}
return b.prototype.current = function(b, c) {
function d(b, c) {
var e = [];
return b.selected || -1 !== a.inArray(b.id, c) ? (b.selected = !0, e.push(b)) : b.selected = !1, b.children && e.push.apply(e, d(b.children, c)), e
}
for (var e = [], f = 0; f < this._currentData.length; f++) {
var g = this._currentData[f];
e.push.apply(e, d(g, this.$element.val().split(this._valueSeparator)))
}
c(e)
}, b.prototype.select = function(b, c) {
if (this.options.get("multiple")) {
var d = this.$element.val();
d += this._valueSeparator + c.id, this.$element.val(d), this.$element.trigger("change")
} else this.current(function(b) {
a.map(b, function(a) {
a.selected = !1
})
}), this.$element.val(c.id), this.$element.trigger("change")
}, b.prototype.unselect = function(a, b) {
var c = this;
b.selected = !1, this.current(function(a) {
for (var d = [], e = 0; e < a.length; e++) {
var f = a[e];
b.id != f.id && d.push(f.id)
}
c.$element.val(d.join(c._valueSeparator)), c.$element.trigger("change")
})
}, b.prototype.query = function(a, b, c) {
for (var d = [], e = 0; e < this._currentData.length; e++) {
var f = this._currentData[e],
g = this.matches(b, f);
null !== g && d.push(g)
}
c({
results: d
})
}, b.prototype.addOptions = function(b, c) {
var d = a.map(c, function(b) {
return a.data(b[0], "data")
});
this._currentData.push.apply(this._currentData, d)
}, b
}), b.define("select2/compat/matcher", ["jquery"], function(a) {
function b(b) {
function c(c, d) {
var e = a.extend(!0, {}, d);
if (null == c.term || "" === a.trim(c.term)) return e;
if (d.children) {
for (var f = d.children.length - 1; f >= 0; f--) {
var g = d.children[f];
b(c.term, g.text, g) || e.children.splice(f, 1)
}
if (e.children.length > 0) return e
}
return b(c.term, d.text, d) ? e : null
}
return c
}
return b
}), b.define("select2/compat/query", [], function() {
function a(a, b, c) {
c.get("debug") && window.console && console.warn && console.warn("Select2: The `query` option has been deprecated in favor of a custom data adapter that overrides the `query` method. Support will be removed for the `query` option in future versions of Select2."), a.call(this, b, c)
}
return a.prototype.query = function(a, b, c) {
b.callback = c, this.options.get("query").call(null, b)
}, a
}), b.define("select2/dropdown/attachContainer", [], function() {
function a(a, b, c) {
a.call(this, b, c)
}
return a.prototype.position = function(a, b, c) {
c.find(".dropdown-wrapper").append(b), b.addClass("select2-dropdown--below"), c.addClass("select2-container--below")
}, a
}), b.define("select2/dropdown/stopPropagation", [], function() {
function a() {}
return a.prototype.bind = function(a, b, c) {
a.call(this, b, c);
var d = ["blur", "change", "click", "dblclick", "focus", "focusin", "focusout", "input", "keydown", "keyup", "keypress", "mousedown", "mouseenter", "mouseleave", "mousemove", "mouseover", "mouseup", "search", "touchend", "touchstart"];
this.$dropdown.on(d.join(" "), function(a) {
a.stopPropagation()
})
}, a
}), b.define("select2/selection/stopPropagation", [], function() {
function a() {}
return a.prototype.bind = function(a, b, c) {
a.call(this, b, c);
var d = ["blur", "change", "click", "dblclick", "focus", "focusin", "focusout", "input", "keydown", "keyup", "keypress", "mousedown", "mouseenter", "mouseleave", "mousemove", "mouseover", "mouseup", "search", "touchend", "touchstart"];
this.$selection.on(d.join(" "), function(a) {
a.stopPropagation()
})
}, a
}),
function(c) {
"function" == typeof b.define && b.define.amd ? b.define("jquery-mousewheel", ["jquery"], c) : "object" == typeof exports ? module.exports = c : c(a)
}(function(a) {
function b(b) {
var g = b || window.event,
h = i.call(arguments, 1),
j = 0,
l = 0,
m = 0,
n = 0,
o = 0,
p = 0;
if (b = a.event.fix(g), b.type = "mousewheel", "detail" in g && (m = -1 * g.detail), "wheelDelta" in g && (m = g.wheelDelta), "wheelDeltaY" in g && (m = g.wheelDeltaY), "wheelDeltaX" in g && (l = -1 * g.wheelDeltaX), "axis" in g && g.axis === g.HORIZONTAL_AXIS && (l = -1 * m, m = 0), j = 0 === m ? l : m, "deltaY" in g && (m = -1 * g.deltaY, j = m), "deltaX" in g && (l = g.deltaX, 0 === m && (j = -1 * l)), 0 !== m || 0 !== l) {
if (1 === g.deltaMode) {
var q = a.data(this, "mousewheel-line-height");
j *= q, m *= q, l *= q
} else if (2 === g.deltaMode) {
var r = a.data(this, "mousewheel-page-height");
j *= r, m *= r, l *= r
}
if (n = Math.max(Math.abs(m), Math.abs(l)), (!f || n < f) && (f = n, d(g, n) && (f /= 40)), d(g, n) && (j /= 40, l /= 40, m /= 40), j = Math[j >= 1 ? "floor" : "ceil"](j / f), l = Math[l >= 1 ? "floor" : "ceil"](l / f), m = Math[m >= 1 ? "floor" : "ceil"](m / f), k.settings.normalizeOffset && this.getBoundingClientRect) {
var s = this.getBoundingClientRect();
o = b.clientX - s.left, p = b.clientY - s.top
}
return b.deltaX = l, b.deltaY = m, b.deltaFactor = f, b.offsetX = o, b.offsetY = p, b.deltaMode = 0, h.unshift(b, j, l, m), e && clearTimeout(e), e = setTimeout(c, 200), (a.event.dispatch || a.event.handle).apply(this, h)
}
}
function c() {
f = null
}
function d(a, b) {
return k.settings.adjustOldDeltas && "mousewheel" === a.type && b % 120 == 0
}
var e, f, g = ["wheel", "mousewheel", "DOMMouseScroll", "MozMousePixelScroll"],
h = "onwheel" in document || document.documentMode >= 9 ? ["wheel"] : ["mousewheel", "DomMouseScroll", "MozMousePixelScroll"],
i = Array.prototype.slice;
if (a.event.fixHooks)
for (var j = g.length; j;) a.event.fixHooks[g[--j]] = a.event.mouseHooks;
var k = a.event.special.mousewheel = {
version: "3.1.12",
setup: function() {
if (this.addEventListener)
for (var c = h.length; c;) this.addEventListener(h[--c], b, !1);
else this.onmousewheel = b;
a.data(this, "mousewheel-line-height", k.getLineHeight(this)), a.data(this, "mousewheel-page-height", k.getPageHeight(this))
},
teardown: function() {
if (this.removeEventListener)
for (var c = h.length; c;) this.removeEventListener(h[--c], b, !1);
else this.onmousewheel = null;
a.removeData(this, "mousewheel-line-height"), a.removeData(this, "mousewheel-page-height")
},
getLineHeight: function(b) {
var c = a(b),
d = c["offsetParent" in a.fn ? "offsetParent" : "parent"]();
return d.length || (d = a("body")), parseInt(d.css("fontSize"), 10) || parseInt(c.css("fontSize"), 10) || 16
},
getPageHeight: function(b) {
return a(b).height()
},
settings: {
adjustOldDeltas: !0,
normalizeOffset: !0
}
};
a.fn.extend({
mousewheel: function(a) {
return a ? this.bind("mousewheel", a) : this.trigger("mousewheel")
},
unmousewheel: function(a) {
return this.unbind("mousewheel", a)
}
})
}), b.define("jquery.select2", ["jquery", "jquery-mousewheel", "./select2/core", "./select2/defaults"], function(a, b, c, d) {
if (null == a.fn.select2) {
var e = ["open", "close", "destroy"];
a.fn.select2 = function(b) {
if ("object" == typeof(b = b || {})) return this.each(function() {
var d = a.extend(!0, {}, b);
new c(a(this), d)
}), this;
if ("string" == typeof b) {
var d, f = Array.prototype.slice.call(arguments, 1);
return this.each(function() {
var c = a(this).data("select2");
null == c && window.console && console.error && console.error("The select2('" + b + "') method was called on an element that is not using Select2."), d = c[b].apply(c, f)
}), a.inArray(b, e) > -1 ? this : d
}
throw new Error("Invalid arguments for Select2: " + b)
}
}
return null == a.fn.select2.defaults && (a.fn.select2.defaults = d), c
}), {
define: b.define,
require: b.require
}
}(),
c = b.require("jquery.select2");
return a.fn.select2.amd = b, c
});
/*! Datepicker for Bootstrap v1.8.0 (https://github.com/uxsolutions/bootstrap-datepicker) Licensed under the Apache License v2.0 */
! function(a) {
"function" == typeof define && define.amd ? define(["jquery"], a) : a("object" == typeof exports ? require("jquery") : jQuery)
}(function(a, b) {
function c() {
return new Date(Date.UTC.apply(Date, arguments))
}
function d() {
var a = new Date;
return c(a.getFullYear(), a.getMonth(), a.getDate())
}
function e(a, b) {
return a.getUTCFullYear() === b.getUTCFullYear() && a.getUTCMonth() === b.getUTCMonth() && a.getUTCDate() === b.getUTCDate()
}
function f(c, d) {
return function() {
return d !== b && a.fn.datepicker.deprecated(d), this[c].apply(this, arguments)
}
}
function g(a) {
return a && !isNaN(a.getTime())
}
function h(b, c) {
function d(a, b) {
return b.toLowerCase()
}
var e, f = a(b).data(),
g = {},
h = new RegExp("^" + c.toLowerCase() + "([A-Z])");
c = new RegExp("^" + c.toLowerCase());
for (var i in f) c.test(i) && (e = i.replace(h, d), g[e] = f[i]);
return g
}
function i(b) {
var c = {};
if (q[b] || (b = b.split("-")[0], q[b])) {
var d = q[b];
return a.each(p, function(a, b) {
b in d && (c[b] = d[b])
}), c
}
}
var j = function() {
var b = {
get: function(a) {
return this.slice(a)[0]
},
contains: function(a) {
for (var b = a && a.valueOf(), c = 0, d = this.length; c < d; c++)
if (0 <= this[c].valueOf() - b && this[c].valueOf() - b < 864e5) return c;
return -1
},
remove: function(a) {
this.splice(a, 1)
},
replace: function(b) {
b && (a.isArray(b) || (b = [b]), this.clear(), this.push.apply(this, b))
},
clear: function() {
this.length = 0
},
copy: function() {
var a = new j;
return a.replace(this), a
}
};
return function() {
var c = [];
return c.push.apply(c, arguments), a.extend(c, b), c
}
}(),
k = function(b, c) {
a.data(b, "datepicker", this), this._process_options(c), this.dates = new j, this.viewDate = this.o.defaultViewDate, this.focusDate = null, this.element = a(b), this.isInput = this.element.is("input"), this.inputField = this.isInput ? this.element : this.element.find("input"), this.component = !!this.element.hasClass("date") && this.element.find(".add-on, .input-group-addon, .btn"), this.component && 0 === this.component.length && (this.component = !1), this.isInline = !this.component && this.element.is("div"), this.picker = a(r.template), this._check_template(this.o.templates.leftArrow) && this.picker.find(".prev").html(this.o.templates.leftArrow), this._check_template(this.o.templates.rightArrow) && this.picker.find(".next").html(this.o.templates.rightArrow), this._buildEvents(), this._attachEvents(), this.isInline ? this.picker.addClass("datepicker-inline").appendTo(this.element) : this.picker.addClass("datepicker-dropdown dropdown-menu"), this.o.rtl && this.picker.addClass("datepicker-rtl"), this.o.calendarWeeks && this.picker.find(".datepicker-days .datepicker-switch, thead .datepicker-title, tfoot .today, tfoot .clear").attr("colspan", function(a, b) {
return Number(b) + 1
}), this._process_options({
startDate: this._o.startDate,
endDate: this._o.endDate,
daysOfWeekDisabled: this.o.daysOfWeekDisabled,
daysOfWeekHighlighted: this.o.daysOfWeekHighlighted,
datesDisabled: this.o.datesDisabled
}), this._allow_update = !1, this.setViewMode(this.o.startView), this._allow_update = !0, this.fillDow(), this.fillMonths(), this.update(), this.isInline && this.show()
};
k.prototype = {
constructor: k,
_resolveViewName: function(b) {
return a.each(r.viewModes, function(c, d) {
if (b === c || a.inArray(b, d.names) !== -1) return b = c, !1
}), b
},
_resolveDaysOfWeek: function(b) {
return a.isArray(b) || (b = b.split(/[,s]*/)), a.map(b, Number)
},
_check_template: function(c) {
try {
if (c === b || "" === c) return !1;
if ((c.match(/[<>]/g) || []).length <= 0) return !0;
var d = a(c);
return d.length > 0
} catch (a) {
return !1
}
},
_process_options: function(b) {
this._o = a.extend({}, this._o, b);
var e = this.o = a.extend({}, this._o),
f = e.language;
q[f] || (f = f.split("-")[0], q[f] || (f = o.language)), e.language = f, e.startView = this._resolveViewName(e.startView), e.minViewMode = this._resolveViewName(e.minViewMode), e.maxViewMode = this._resolveViewName(e.maxViewMode), e.startView = Math.max(this.o.minViewMode, Math.min(this.o.maxViewMode, e.startView)), e.multidate !== !0 && (e.multidate = Number(e.multidate) || !1, e.multidate !== !1 && (e.multidate = Math.max(0, e.multidate))), e.multidateSeparator = String(e.multidateSeparator), e.weekStart %= 7, e.weekEnd = (e.weekStart + 6) % 7;
var g = r.parseFormat(e.format);
e.startDate !== -(1 / 0) && (e.startDate ? e.startDate instanceof Date ? e.startDate = this._local_to_utc(this._zero_time(e.startDate)) : e.startDate = r.parseDate(e.startDate, g, e.language, e.assumeNearbyYear) : e.startDate = -(1 / 0)), e.endDate !== 1 / 0 && (e.endDate ? e.endDate instanceof Date ? e.endDate = this._local_to_utc(this._zero_time(e.endDate)) : e.endDate = r.parseDate(e.endDate, g, e.language, e.assumeNearbyYear) : e.endDate = 1 / 0), e.daysOfWeekDisabled = this._resolveDaysOfWeek(e.daysOfWeekDisabled || []), e.daysOfWeekHighlighted = this._resolveDaysOfWeek(e.daysOfWeekHighlighted || []), e.datesDisabled = e.datesDisabled || [], a.isArray(e.datesDisabled) || (e.datesDisabled = e.datesDisabled.split(",")), e.datesDisabled = a.map(e.datesDisabled, function(a) {
return r.parseDate(a, g, e.language, e.assumeNearbyYear)
});
var h = String(e.orientation).toLowerCase().split(/s+/g),
i = e.orientation.toLowerCase();
if (h = a.grep(h, function(a) {
return /^auto|left|right|top|bottom$/.test(a)
}), e.orientation = {
x: "auto",
y: "auto"
}, i && "auto" !== i)
if (1 === h.length) switch (h[0]) {
case "top":
case "bottom":
e.orientation.y = h[0];
break;
case "left":
case "right":
e.orientation.x = h[0]
} else i = a.grep(h, function(a) {
return /^left|right$/.test(a)
}), e.orientation.x = i[0] || "auto", i = a.grep(h, function(a) {
return /^top|bottom$/.test(a)
}), e.orientation.y = i[0] || "auto";
else;
if (e.defaultViewDate instanceof Date || "string" == typeof e.defaultViewDate) e.defaultViewDate = r.parseDate(e.defaultViewDate, g, e.language, e.assumeNearbyYear);
else if (e.defaultViewDate) {
var j = e.defaultViewDate.year || (new Date).getFullYear(),
k = e.defaultViewDate.month || 0,
l = e.defaultViewDate.day || 1;
e.defaultViewDate = c(j, k, l)
} else e.defaultViewDate = d()
},
_events: [],
_secondaryEvents: [],
_applyEvents: function(a) {
for (var c, d, e, f = 0; f < a.length; f++) c = a[f][0], 2 === a[f].length ? (d = b, e = a[f][1]) : 3 === a[f].length && (d = a[f][1], e = a[f][2]), c.on(e, d)
},
_unapplyEvents: function(a) {
for (var c, d, e, f = 0; f < a.length; f++) c = a[f][0], 2 === a[f].length ? (e = b, d = a[f][1]) : 3 === a[f].length && (e = a[f][1], d = a[f][2]), c.off(d, e)
},
_buildEvents: function() {
var b = {
keyup: a.proxy(function(b) {
a.inArray(b.keyCode, [27, 37, 39, 38, 40, 32, 13, 9]) === -1 && this.update()
}, this),
keydown: a.proxy(this.keydown, this),
paste: a.proxy(this.paste, this)
};
this.o.showOnFocus === !0 && (b.focus = a.proxy(this.show, this)), this.isInput ? this._events = [
[this.element, b]
] : this.component && this.inputField.length ? this._events = [
[this.inputField, b],
[this.component, {
click: a.proxy(this.show, this)
}]
] : this._events = [
[this.element, {
click: a.proxy(this.show, this),
keydown: a.proxy(this.keydown, this)
}]
], this._events.push([this.element, "*", {
blur: a.proxy(function(a) {
this._focused_from = a.target
}, this)
}], [this.element, {
blur: a.proxy(function(a) {
this._focused_from = a.target
}, this)
}]), this.o.immediateUpdates && this._events.push([this.element, {
"changeYear changeMonth": a.proxy(function(a) {
this.update(a.date)
}, this)
}]), this._secondaryEvents = [
[this.picker, {
click: a.proxy(this.click, this)
}],
[this.picker, ".prev, .next", {
click: a.proxy(this.navArrowsClick, this)
}],
[this.picker, ".day:not(.disabled)", {
click: a.proxy(this.dayCellClick, this)
}],
[a(window), {
resize: a.proxy(this.place, this)
}],
[a(document), {
"mousedown touchstart": a.proxy(function(a) {
this.element.is(a.target) || this.element.find(a.target).length || this.picker.is(a.target) || this.picker.find(a.target).length || this.isInline || this.hide()
}, this)
}]
]
},
_attachEvents: function() {
this._detachEvents(), this._applyEvents(this._events)
},
_detachEvents: function() {
this._unapplyEvents(this._events)
},
_attachSecondaryEvents: function() {
this._detachSecondaryEvents(), this._applyEvents(this._secondaryEvents)
},
_detachSecondaryEvents: function() {
this._unapplyEvents(this._secondaryEvents)
},
_trigger: function(b, c) {
var d = c || this.dates.get(-1),
e = this._utc_to_local(d);
this.element.trigger({
type: b,
date: e,
viewMode: this.viewMode,
dates: a.map(this.dates, this._utc_to_local),
format: a.proxy(function(a, b) {
0 === arguments.length ? (a = this.dates.length - 1, b = this.o.format) : "string" == typeof a && (b = a, a = this.dates.length - 1), b = b || this.o.format;
var c = this.dates.get(a);
return r.formatDate(c, b, this.o.language)
}, this)
})
},
show: function() {
if (!(this.inputField.prop("disabled") || this.inputField.prop("readonly") && this.o.enableOnReadonly === !1)) return this.isInline || this.picker.appendTo(this.o.container), this.place(), this.picker.show(), this._attachSecondaryEvents(), this._trigger("show"), (window.navigator.msMaxTouchPoints || "ontouchstart" in document) && this.o.disableTouchKeyboard && a(this.element).blur(), this
},
hide: function() {
return this.isInline || !this.picker.is(":visible") ? this : (this.focusDate = null, this.picker.hide().detach(), this._detachSecondaryEvents(), this.setViewMode(this.o.startView), this.o.forceParse && this.inputField.val() && this.setValue(), this._trigger("hide"), this)
},
destroy: function() {
return this.hide(), this._detachEvents(), this._detachSecondaryEvents(), this.picker.remove(), delete this.element.data().datepicker, this.isInput || delete this.element.data().date, this
},
paste: function(b) {
var c;
if (b.originalEvent.clipboardData && b.originalEvent.clipboardData.types && a.inArray("text/plain", b.originalEvent.clipboardData.types) !== -1) c = b.originalEvent.clipboardData.getData("text/plain");
else {
if (!window.clipboardData) return;
c = window.clipboardData.getData("Text")
}
this.setDate(c), this.update(), b.preventDefault()
},
_utc_to_local: function(a) {
if (!a) return a;
var b = new Date(a.getTime() + 6e4 * a.getTimezoneOffset());
return b.getTimezoneOffset() !== a.getTimezoneOffset() && (b = new Date(a.getTime() + 6e4 * b.getTimezoneOffset())), b
},
_local_to_utc: function(a) {
return a && new Date(a.getTime() - 6e4 * a.getTimezoneOffset())
},
_zero_time: function(a) {
return a && new Date(a.getFullYear(), a.getMonth(), a.getDate())
},
_zero_utc_time: function(a) {
return a && c(a.getUTCFullYear(), a.getUTCMonth(), a.getUTCDate())
},
getDates: function() {
return a.map(this.dates, this._utc_to_local)
},
getUTCDates: function() {
return a.map(this.dates, function(a) {
return new Date(a)
})
},
getDate: function() {
return this._utc_to_local(this.getUTCDate())
},
getUTCDate: function() {
var a = this.dates.get(-1);
return a !== b ? new Date(a) : null
},
clearDates: function() {
this.inputField.val(""), this.update(), this._trigger("changeDate"), this.o.autoclose && this.hide()
},
setDates: function() {
var b = a.isArray(arguments[0]) ? arguments[0] : arguments;
return this.update.apply(this, b), this._trigger("changeDate"), this.setValue(), this
},
setUTCDates: function() {
var b = a.isArray(arguments[0]) ? arguments[0] : arguments;
return this.setDates.apply(this, a.map(b, this._utc_to_local)), this
},
setDate: f("setDates"),
setUTCDate: f("setUTCDates"),
remove: f("destroy", "Method `remove` is deprecated and will be removed in version 2.0. Use `destroy` instead"),
setValue: function() {
var a = this.getFormattedDate();
return this.inputField.val(a), this
},
getFormattedDate: function(c) {
c === b && (c = this.o.format);
var d = this.o.language;
return a.map(this.dates, function(a) {
return r.formatDate(a, c, d)
}).join(this.o.multidateSeparator)
},
getStartDate: function() {
return this.o.startDate
},
setStartDate: function(a) {
return this._process_options({
startDate: a
}), this.update(), this.updateNavArrows(), this
},
getEndDate: function() {
return this.o.endDate
},
setEndDate: function(a) {
return this._process_options({
endDate: a
}), this.update(), this.updateNavArrows(), this
},
setDaysOfWeekDisabled: function(a) {
return this._process_options({
daysOfWeekDisabled: a
}), this.update(), this
},
setDaysOfWeekHighlighted: function(a) {
return this._process_options({
daysOfWeekHighlighted: a
}), this.update(), this
},
setDatesDisabled: function(a) {
return this._process_options({
datesDisabled: a
}), this.update(), this
},
place: function() {
if (this.isInline) return this;
var b = this.picker.outerWidth(),
c = this.picker.outerHeight(),
d = 10,
e = a(this.o.container),
f = e.width(),
g = "body" === this.o.container ? a(document).scrollTop() : e.scrollTop(),
h = e.offset(),
i = [0];
this.element.parents().each(function() {
var b = a(this).css("z-index");
"auto" !== b && 0 !== Number(b) && i.push(Number(b))
});
var j = Math.max.apply(Math, i) + this.o.zIndexOffset,
k = this.component ? this.component.parent().offset() : this.element.offset(),
l = this.component ? this.component.outerHeight(!0) : this.element.outerHeight(!1),
m = this.component ? this.component.outerWidth(!0) : this.element.outerWidth(!1),
n = k.left - h.left,
o = k.top - h.top;
"body" !== this.o.container && (o += g), this.picker.removeClass("datepicker-orient-top datepicker-orient-bottom datepicker-orient-right datepicker-orient-left"), "auto" !== this.o.orientation.x ? (this.picker.addClass("datepicker-orient-" + this.o.orientation.x), "right" === this.o.orientation.x && (n -= b - m)) : k.left < 0 ? (this.picker.addClass("datepicker-orient-left"), n -= k.left - d) : n + b > f ? (this.picker.addClass("datepicker-orient-right"), n += m - b) : this.o.rtl ? this.picker.addClass("datepicker-orient-right") : this.picker.addClass("datepicker-orient-left");
var p, q = this.o.orientation.y;
if ("auto" === q && (p = -g + o - c, q = p < 0 ? "bottom" : "top"), this.picker.addClass("datepicker-orient-" + q), "top" === q ? o -= c + parseInt(this.picker.css("padding-top")) : o += l, this.o.rtl) {
var r = f - (n + m);
this.picker.css({
top: o,
right: r,
zIndex: j
})
} else this.picker.css({
top: o,
left: n,
zIndex: j
});
return this
},
_allow_update: !0,
update: function() {
if (!this._allow_update) return this;
var b = this.dates.copy(),
c = [],
d = !1;
return arguments.length ? (a.each(arguments, a.proxy(function(a, b) {
b instanceof Date && (b = this._local_to_utc(b)), c.push(b)
}, this)), d = !0) : (c = this.isInput ? this.element.val() : this.element.data("date") || this.inputField.val(), c = c && this.o.multidate ? c.split(this.o.multidateSeparator) : [c], delete this.element.data().date), c = a.map(c, a.proxy(function(a) {
return r.parseDate(a, this.o.format, this.o.language, this.o.assumeNearbyYear)
}, this)), c = a.grep(c, a.proxy(function(a) {
return !this.dateWithinRange(a) || !a
}, this), !0), this.dates.replace(c), this.o.updateViewDate && (this.dates.length ? this.viewDate = new Date(this.dates.get(-1)) : this.viewDate < this.o.startDate ? this.viewDate = new Date(this.o.startDate) : this.viewDate > this.o.endDate ? this.viewDate = new Date(this.o.endDate) : this.viewDate = this.o.defaultViewDate), d ? (this.setValue(), this.element.change()) : this.dates.length && String(b) !== String(this.dates) && d && (this._trigger("changeDate"), this.element.change()), !this.dates.length && b.length && (this._trigger("clearDate"), this.element.change()), this.fill(), this
},
fillDow: function() {
if (this.o.showWeekDays) {
var b = this.o.weekStart,
c = "<tr>";
for (this.o.calendarWeeks && (c += '<th class="cw"> </th>'); b < this.o.weekStart + 7;) c += '<th class="dow', a.inArray(b, this.o.daysOfWeekDisabled) !== -1 && (c += " disabled"), c += '">' + q[this.o.language].daysMin[b++ % 7] + "</th>";
c += "</tr>", this.picker.find(".datepicker-days thead").append(c)
}
},
fillMonths: function() {
for (var a, b = this._utc_to_local(this.viewDate), c = "", d = 0; d < 12; d++) a = b && b.getMonth() === d ? " focused" : "", c += '<span class="month' + a + '">' + q[this.o.language].monthsShort[d] + "</span>";
this.picker.find(".datepicker-months td").html(c)
},
setRange: function(b) {
b && b.length ? this.range = a.map(b, function(a) {
return a.valueOf()
}) : delete this.range, this.fill()
},
getClassNames: function(b) {
var c = [],
f = this.viewDate.getUTCFullYear(),
g = this.viewDate.getUTCMonth(),
h = d();
return b.getUTCFullYear() < f || b.getUTCFullYear() === f && b.getUTCMonth() < g ? c.push("old") : (b.getUTCFullYear() > f || b.getUTCFullYear() === f && b.getUTCMonth() > g) && c.push("new"), this.focusDate && b.valueOf() === this.focusDate.valueOf() && c.push("focused"), this.o.todayHighlight && e(b, h) && c.push("today"), this.dates.contains(b) !== -1 && c.push("active"), this.dateWithinRange(b) || c.push("disabled"), this.dateIsDisabled(b) && c.push("disabled", "disabled-date"), a.inArray(b.getUTCDay(), this.o.daysOfWeekHighlighted) !== -1 && c.push("highlighted"), this.range && (b > this.range[0] && b < this.range[this.range.length - 1] && c.push("range"), a.inArray(b.valueOf(), this.range) !== -1 && c.push("selected"), b.valueOf() === this.range[0] && c.push("range-start"), b.valueOf() === this.range[this.range.length - 1] && c.push("range-end")), c
},
_fill_yearsView: function(c, d, e, f, g, h, i) {
for (var j, k, l, m = "", n = e / 10, o = this.picker.find(c), p = Math.floor(f / e) * e, q = p + 9 * n, r = Math.floor(this.viewDate.getFullYear() / n) * n, s = a.map(this.dates, function(a) {
return Math.floor(a.getUTCFullYear() / n) * n
}), t = p - n; t <= q + n; t += n) j = [d], k = null, t === p - n ? j.push("old") : t === q + n && j.push("new"), a.inArray(t, s) !== -1 && j.push("active"), (t < g || t > h) && j.push("disabled"), t === r && j.push("focused"), i !== a.noop && (l = i(new Date(t, 0, 1)), l === b ? l = {} : "boolean" == typeof l ? l = {
enabled: l
} : "string" == typeof l && (l = {
classes: l
}), l.enabled === !1 && j.push("disabled"), l.classes && (j = j.concat(l.classes.split(/s+/))), l.tooltip && (k = l.tooltip)), m += '<span class="' + j.join(" ") + '"' + (k ? ' title="' + k + '"' : "") + ">" + t + "</span>";
o.find(".datepicker-switch").text(p + "-" + q), o.find("td").html(m)
},
fill: function() {
var d, e, f = new Date(this.viewDate),
g = f.getUTCFullYear(),
h = f.getUTCMonth(),
i = this.o.startDate !== -(1 / 0) ? this.o.startDate.getUTCFullYear() : -(1 / 0),
j = this.o.startDate !== -(1 / 0) ? this.o.startDate.getUTCMonth() : -(1 / 0),
k = this.o.endDate !== 1 / 0 ? this.o.endDate.getUTCFullYear() : 1 / 0,
l = this.o.endDate !== 1 / 0 ? this.o.endDate.getUTCMonth() : 1 / 0,
m = q[this.o.language].today || q.en.today || "",
n = q[this.o.language].clear || q.en.clear || "",
o = q[this.o.language].titleFormat || q.en.titleFormat;
if (!isNaN(g) && !isNaN(h)) {
this.picker.find(".datepicker-days .datepicker-switch").text(r.formatDate(f, o, this.o.language)), this.picker.find("tfoot .today").text(m).css("display", this.o.todayBtn === !0 || "linked" === this.o.todayBtn ? "table-cell" : "none"), this.picker.find("tfoot .clear").text(n).css("display", this.o.clearBtn === !0 ? "table-cell" : "none"), this.picker.find("thead .datepicker-title").text(this.o.title).css("display", "string" == typeof this.o.title && "" !== this.o.title ? "table-cell" : "none"), this.updateNavArrows(), this.fillMonths();
var p = c(g, h, 0),
s = p.getUTCDate();
p.setUTCDate(s - (p.getUTCDay() - this.o.weekStart + 7) % 7);
var t = new Date(p);
p.getUTCFullYear() < 100 && t.setUTCFullYear(p.getUTCFullYear()), t.setUTCDate(t.getUTCDate() + 42), t = t.valueOf();
for (var u, v, w = []; p.valueOf() < t;) {
if (u = p.getUTCDay(), u === this.o.weekStart && (w.push("<tr>"), this.o.calendarWeeks)) {
var x = new Date(+p + (this.o.weekStart - u - 7) % 7 * 864e5),
y = new Date(Number(x) + (11 - x.getUTCDay()) % 7 * 864e5),
z = new Date(Number(z = c(y.getUTCFullYear(), 0, 1)) + (11 - z.getUTCDay()) % 7 * 864e5),
A = (y - z) / 864e5 / 7 + 1;
w.push('<td class="cw">' + A + "</td>")
}
v = this.getClassNames(p), v.push("day");
var B = p.getUTCDate();
this.o.beforeShowDay !== a.noop && (e = this.o.beforeShowDay(this._utc_to_local(p)), e === b ? e = {} : "boolean" == typeof e ? e = {
enabled: e
} : "string" == typeof e && (e = {
classes: e
}), e.enabled === !1 && v.push("disabled"), e.classes && (v = v.concat(e.classes.split(/s+/))), e.tooltip && (d = e.tooltip), e.content && (B = e.content)), v = a.isFunction(a.uniqueSort) ? a.uniqueSort(v) : a.unique(v), w.push('<td class="' + v.join(" ") + '"' + (d ? ' title="' + d + '"' : "") + ' data-date="' + p.getTime().toString() + '">' + B + "</td>"), d = null, u === this.o.weekEnd && w.push("</tr>"), p.setUTCDate(p.getUTCDate() + 1)
}
this.picker.find(".datepicker-days tbody").html(w.join(""));
var C = q[this.o.language].monthsTitle || q.en.monthsTitle || "Months",
D = this.picker.find(".datepicker-months").find(".datepicker-switch").text(this.o.maxViewMode < 2 ? C : g).end().find("tbody span").removeClass("active");
if (a.each(this.dates, function(a, b) {
b.getUTCFullYear() === g && D.eq(b.getUTCMonth()).addClass("active")
}), (g < i || g > k) && D.addClass("disabled"), g === i && D.slice(0, j).addClass("disabled"), g === k && D.slice(l + 1).addClass("disabled"), this.o.beforeShowMonth !== a.noop) {
var E = this;
a.each(D, function(c, d) {
var e = new Date(g, c, 1),
f = E.o.beforeShowMonth(e);
f === b ? f = {} : "boolean" == typeof f ? f = {
enabled: f
} : "string" == typeof f && (f = {
classes: f
}), f.enabled !== !1 || a(d).hasClass("disabled") || a(d).addClass("disabled"), f.classes && a(d).addClass(f.classes), f.tooltip && a(d).prop("title", f.tooltip)
})
}
this._fill_yearsView(".datepicker-years", "year", 10, g, i, k, this.o.beforeShowYear), this._fill_yearsView(".datepicker-decades", "decade", 100, g, i, k, this.o.beforeShowDecade), this._fill_yearsView(".datepicker-centuries", "century", 1e3, g, i, k, this.o.beforeShowCentury)
}
},
updateNavArrows: function() {
if (this._allow_update) {
var a, b, c = new Date(this.viewDate),
d = c.getUTCFullYear(),
e = c.getUTCMonth(),
f = this.o.startDate !== -(1 / 0) ? this.o.startDate.getUTCFullYear() : -(1 / 0),
g = this.o.startDate !== -(1 / 0) ? this.o.startDate.getUTCMonth() : -(1 / 0),
h = this.o.endDate !== 1 / 0 ? this.o.endDate.getUTCFullYear() : 1 / 0,
i = this.o.endDate !== 1 / 0 ? this.o.endDate.getUTCMonth() : 1 / 0,
j = 1;
switch (this.viewMode) {
case 4:
j *= 10;
case 3:
j *= 10;
case 2:
j *= 10;
case 1:
a = Math.floor(d / j) * j < f, b = Math.floor(d / j) * j + j > h;
break;
case 0:
a = d <= f && e < g, b = d >= h && e > i
}
this.picker.find(".prev").toggleClass("disabled", a), this.picker.find(".next").toggleClass("disabled", b)
}
},
click: function(b) {
b.preventDefault(), b.stopPropagation();
var e, f, g, h;
e = a(b.target), e.hasClass("datepicker-switch") && this.viewMode !== this.o.maxViewMode && this.setViewMode(this.viewMode + 1), e.hasClass("today") && !e.hasClass("day") && (this.setViewMode(0), this._setDate(d(), "linked" === this.o.todayBtn ? null : "view")), e.hasClass("clear") && this.clearDates(), e.hasClass("disabled") || (e.hasClass("month") || e.hasClass("year") || e.hasClass("decade") || e.hasClass("century")) && (this.viewDate.setUTCDate(1), f = 1, 1 === this.viewMode ? (h = e.parent().find("span").index(e), g = this.viewDate.getUTCFullYear(), this.viewDate.setUTCMonth(h)) : (h = 0, g = Number(e.text()), this.viewDate.setUTCFullYear(g)), this._trigger(r.viewModes[this.viewMode - 1].e, this.viewDate), this.viewMode === this.o.minViewMode ? this._setDate(c(g, h, f)) : (this.setViewMode(this.viewMode - 1), this.fill())), this.picker.is(":visible") && this._focused_from && this._focused_from.focus(), delete this._focused_from
},
dayCellClick: function(b) {
var c = a(b.currentTarget),
d = c.data("date"),
e = new Date(d);
this.o.updateViewDate && (e.getUTCFullYear() !== this.viewDate.getUTCFullYear() && this._trigger("changeYear", this.viewDate), e.getUTCMonth() !== this.viewDate.getUTCMonth() && this._trigger("changeMonth", this.viewDate)), this._setDate(e)
},
navArrowsClick: function(b) {
var c = a(b.currentTarget),
d = c.hasClass("prev") ? -1 : 1;
0 !== this.viewMode && (d *= 12 * r.viewModes[this.viewMode].navStep), this.viewDate = this.moveMonth(this.viewDate, d), this._trigger(r.viewModes[this.viewMode].e, this.viewDate), this.fill()
},
_toggle_multidate: function(a) {
var b = this.dates.contains(a);
if (a || this.dates.clear(), b !== -1 ? (this.o.multidate === !0 || this.o.multidate > 1 || this.o.toggleActive) && this.dates.remove(b) : this.o.multidate === !1 ? (this.dates.clear(), this.dates.push(a)) : this.dates.push(a), "number" == typeof this.o.multidate)
for (; this.dates.length > this.o.multidate;) this.dates.remove(0)
},
_setDate: function(a, b) {
b && "date" !== b || this._toggle_multidate(a && new Date(a)), (!b && this.o.updateViewDate || "view" === b) && (this.viewDate = a && new Date(a)), this.fill(), this.setValue(), b && "view" === b || this._trigger("changeDate"), this.inputField.trigger("change"), !this.o.autoclose || b && "date" !== b || this.hide()
},
moveDay: function(a, b) {
var c = new Date(a);
return c.setUTCDate(a.getUTCDate() + b), c
},
moveWeek: function(a, b) {
return this.moveDay(a, 7 * b)
},
moveMonth: function(a, b) {
if (!g(a)) return this.o.defaultViewDate;
if (!b) return a;
var c, d, e = new Date(a.valueOf()),
f = e.getUTCDate(),
h = e.getUTCMonth(),
i = Math.abs(b);
if (b = b > 0 ? 1 : -1, 1 === i) d = b === -1 ? function() {
return e.getUTCMonth() === h
} : function() {
return e.getUTCMonth() !== c
}, c = h + b, e.setUTCMonth(c), c = (c + 12) % 12;
else {
for (var j = 0; j < i; j++) e = this.moveMonth(e, b);
c = e.getUTCMonth(), e.setUTCDate(f), d = function() {
return c !== e.getUTCMonth()
}
}
for (; d();) e.setUTCDate(--f), e.setUTCMonth(c);
return e
},
moveYear: function(a, b) {
return this.moveMonth(a, 12 * b)
},
moveAvailableDate: function(a, b, c) {
do {
if (a = this[c](a, b), !this.dateWithinRange(a)) return !1;
c = "moveDay"
} while (this.dateIsDisabled(a));
return a
},
weekOfDateIsDisabled: function(b) {
return a.inArray(b.getUTCDay(), this.o.daysOfWeekDisabled) !== -1
},
dateIsDisabled: function(b) {
return this.weekOfDateIsDisabled(b) || a.grep(this.o.datesDisabled, function(a) {
return e(b, a)
}).length > 0
},
dateWithinRange: function(a) {
return a >= this.o.startDate && a <= this.o.endDate
},
keydown: function(a) {
if (!this.picker.is(":visible")) return void(40 !== a.keyCode && 27 !== a.keyCode || (this.show(), a.stopPropagation()));
var b, c, d = !1,
e = this.focusDate || this.viewDate;
switch (a.keyCode) {
case 27:
this.focusDate ? (this.focusDate = null, this.viewDate = this.dates.get(-1) || this.viewDate, this.fill()) : this.hide(), a.preventDefault(), a.stopPropagation();
break;
case 37:
case 38:
case 39:
case 40:
if (!this.o.keyboardNavigation || 7 === this.o.daysOfWeekDisabled.length) break;
b = 37 === a.keyCode || 38 === a.keyCode ? -1 : 1, 0 === this.viewMode ? a.ctrlKey ? (c = this.moveAvailableDate(e, b, "moveYear"), c && this._trigger("changeYear", this.viewDate)) : a.shiftKey ? (c = this.moveAvailableDate(e, b, "moveMonth"), c && this._trigger("changeMonth", this.viewDate)) : 37 === a.keyCode || 39 === a.keyCode ? c = this.moveAvailableDate(e, b, "moveDay") : this.weekOfDateIsDisabled(e) || (c = this.moveAvailableDate(e, b, "moveWeek")) : 1 === this.viewMode ? (38 !== a.keyCode && 40 !== a.keyCode || (b *= 4), c = this.moveAvailableDate(e, b, "moveMonth")) : 2 === this.viewMode && (38 !== a.keyCode && 40 !== a.keyCode || (b *= 4), c = this.moveAvailableDate(e, b, "moveYear")), c && (this.focusDate = this.viewDate = c, this.setValue(), this.fill(), a.preventDefault());
break;
case 13:
if (!this.o.forceParse) break;
e = this.focusDate || this.dates.get(-1) || this.viewDate, this.o.keyboardNavigation && (this._toggle_multidate(e), d = !0), this.focusDate = null, this.viewDate = this.dates.get(-1) || this.viewDate, this.setValue(), this.fill(), this.picker.is(":visible") && (a.preventDefault(), a.stopPropagation(), this.o.autoclose && this.hide());
break;
case 9:
this.focusDate = null, this.viewDate = this.dates.get(-1) || this.viewDate, this.fill(), this.hide()
}
d && (this.dates.length ? this._trigger("changeDate") : this._trigger("clearDate"), this.inputField.trigger("change"))
},
setViewMode: function(a) {
this.viewMode = a, this.picker.children("div").hide().filter(".datepicker-" + r.viewModes[this.viewMode].clsName).show(), this.updateNavArrows(), this._trigger("changeViewMode", new Date(this.viewDate))
}
};
var l = function(b, c) {
a.data(b, "datepicker", this), this.element = a(b), this.inputs = a.map(c.inputs, function(a) {
return a.jquery ? a[0] : a
}), delete c.inputs, this.keepEmptyValues = c.keepEmptyValues, delete c.keepEmptyValues, n.call(a(this.inputs), c).on("changeDate", a.proxy(this.dateUpdated, this)), this.pickers = a.map(this.inputs, function(b) {
return a.data(b, "datepicker")
}), this.updateDates()
};
l.prototype = {
updateDates: function() {
this.dates = a.map(this.pickers, function(a) {
return a.getUTCDate()
}), this.updateRanges()
},
updateRanges: function() {
var b = a.map(this.dates, function(a) {
return a.valueOf()
});
a.each(this.pickers, function(a, c) {
c.setRange(b)
})
},
clearDates: function() {
a.each(this.pickers, function(a, b) {
b.clearDates()
})
},
dateUpdated: function(c) {
if (!this.updating) {
this.updating = !0;
var d = a.data(c.target, "datepicker");
if (d !== b) {
var e = d.getUTCDate(),
f = this.keepEmptyValues,
g = a.inArray(c.target, this.inputs),
h = g - 1,
i = g + 1,
j = this.inputs.length;
if (g !== -1) {
if (a.each(this.pickers, function(a, b) {
b.getUTCDate() || b !== d && f || b.setUTCDate(e)
}), e < this.dates[h])
for (; h >= 0 && e < this.dates[h];) this.pickers[h--].setUTCDate(e);
else if (e > this.dates[i])
for (; i < j && e > this.dates[i];) this.pickers[i++].setUTCDate(e);
this.updateDates(), delete this.updating
}
}
}
},
destroy: function() {
a.map(this.pickers, function(a) {
a.destroy()
}), a(this.inputs).off("changeDate", this.dateUpdated), delete this.element.data().datepicker
},
remove: f("destroy", "Method `remove` is deprecated and will be removed in version 2.0. Use `destroy` instead")
};
var m = a.fn.datepicker,
n = function(c) {
var d = Array.apply(null, arguments);
d.shift();
var e;
if (this.each(function() {
var b = a(this),
f = b.data("datepicker"),
g = "object" == typeof c && c;
if (!f) {
var j = h(this, "date"),
m = a.extend({}, o, j, g),
n = i(m.language),
p = a.extend({}, o, n, j, g);
b.hasClass("input-daterange") || p.inputs ? (a.extend(p, {
inputs: p.inputs || b.find("input").toArray()
}), f = new l(this, p)) : f = new k(this, p), b.data("datepicker", f)
}
"string" == typeof c && "function" == typeof f[c] && (e = f[c].apply(f, d))
}), e === b || e instanceof k || e instanceof l) return this;
if (this.length > 1) throw new Error("Using only allowed for the collection of a single element (" + c + " function)");
return e
};
a.fn.datepicker = n;
var o = a.fn.datepicker.defaults = {
assumeNearbyYear: !1,
autoclose: !1,
beforeShowDay: a.noop,
beforeShowMonth: a.noop,
beforeShowYear: a.noop,
beforeShowDecade: a.noop,
beforeShowCentury: a.noop,
calendarWeeks: !1,
clearBtn: !1,
toggleActive: !1,
daysOfWeekDisabled: [],
daysOfWeekHighlighted: [],
datesDisabled: [],
endDate: 1 / 0,
forceParse: !0,
format: "mm/dd/yyyy",
keepEmptyValues: !1,
keyboardNavigation: !0,
language: "en",
minViewMode: 0,
maxViewMode: 4,
multidate: !1,
multidateSeparator: ",",
orientation: "auto",
rtl: !1,
startDate: -(1 / 0),
startView: 0,
todayBtn: !1,
todayHighlight: !1,
updateViewDate: !0,
weekStart: 0,
disableTouchKeyboard: !1,
enableOnReadonly: !0,
showOnFocus: !0,
zIndexOffset: 10,
container: "body",
immediateUpdates: !1,
title: "",
templates: {
leftArrow: "«",
rightArrow: "»"
},
showWeekDays: !0
},
p = a.fn.datepicker.locale_opts = ["format", "rtl", "weekStart"];
a.fn.datepicker.Constructor = k;
var q = a.fn.datepicker.dates = {
en: {
days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
daysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
daysMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"],
months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
today: "Today",
clear: "Clear",
titleFormat: "MM yyyy"
}
},
r = {
viewModes: [{
names: ["days", "month"],
clsName: "days",
e: "changeMonth"
}, {
names: ["months", "year"],
clsName: "months",
e: "changeYear",
navStep: 1
}, {
names: ["years", "decade"],
clsName: "years",
e: "changeDecade",
navStep: 10
}, {
names: ["decades", "century"],
clsName: "decades",
e: "changeCentury",
navStep: 100
}, {
names: ["centuries", "millennium"],
clsName: "centuries",
e: "changeMillennium",
navStep: 1e3
}],
validParts: /dd?|DD?|mm?|MM?|yy(?:yy)?/g,
nonpunctuation: /[^ -/:-@u5e74u6708u65e5[-`{-~tnr]+/g,
parseFormat: function(a) {
if ("function" == typeof a.toValue && "function" == typeof a.toDisplay) return a;
var b = a.replace(this.validParts, " ").split(" "),
c = a.match(this.validParts);
if (!b || !b.length || !c || 0 === c.length) throw new Error("Invalid date format.");
return {
separators: b,
parts: c
}
},
parseDate: function(c, e, f, g) {
function h(a, b) {
return b === !0 && (b = 10), a < 100 && (a += 2e3, a > (new Date).getFullYear() + b && (a -= 100)), a
}
function i() {
var a = this.slice(0, j[n].length),
b = j[n].slice(0, a.length);
return a.toLowerCase() === b.toLowerCase()
}
if (!c) return b;
if (c instanceof Date) return c;
if ("string" == typeof e && (e = r.parseFormat(e)), e.toValue) return e.toValue(c, e, f);
var j, l, m, n, o, p = {
d: "moveDay",
m: "moveMonth",
w: "moveWeek",
y: "moveYear"
},
s = {
yesterday: "-1d",
today: "+0d",
tomorrow: "+1d"
};
if (c in s && (c = s[c]), /^[-+]d+[dmwy]([s,]+[-+]d+[dmwy])*$/i.test(c)) {
for (j = c.match(/([-+]d+)([dmwy])/gi), c = new Date, n = 0; n < j.length; n++) l = j[n].match(/([-+]d+)([dmwy])/i), m = Number(l[1]), o = p[l[2].toLowerCase()], c = k.prototype[o](c, m);
return k.prototype._zero_utc_time(c)
}
j = c && c.match(this.nonpunctuation) || [];
var t, u, v = {},
w = ["yyyy", "yy", "M", "MM", "m", "mm", "d", "dd"],
x = {
yyyy: function(a, b) {
return a.setUTCFullYear(g ? h(b, g) : b)
},
m: function(a, b) {
if (isNaN(a)) return a;
for (b -= 1; b < 0;) b += 12;
for (b %= 12, a.setUTCMonth(b); a.getUTCMonth() !== b;) a.setUTCDate(a.getUTCDate() - 1);
return a
},
d: function(a, b) {
return a.setUTCDate(b)
}
};
x.yy = x.yyyy, x.M = x.MM = x.mm = x.m, x.dd = x.d, c = d();
var y = e.parts.slice();
if (j.length !== y.length && (y = a(y).filter(function(b, c) {
return a.inArray(c, w) !== -1
}).toArray()), j.length === y.length) {
var z;
for (n = 0, z = y.length; n < z; n++) {
if (t = parseInt(j[n], 10), l = y[n], isNaN(t)) switch (l) {
case "MM":
u = a(q[f].months).filter(i), t = a.inArray(u[0], q[f].months) + 1;
break;
case "M":
u = a(q[f].monthsShort).filter(i), t = a.inArray(u[0], q[f].monthsShort) + 1
}
v[l] = t
}
var A, B;
for (n = 0; n < w.length; n++) B = w[n], B in v && !isNaN(v[B]) && (A = new Date(c), x[B](A, v[B]), isNaN(A) || (c = A))
}
return c
},
formatDate: function(b, c, d) {
if (!b) return "";
if ("string" == typeof c && (c = r.parseFormat(c)), c.toDisplay) return c.toDisplay(b, c, d);
var e = {
d: b.getUTCDate(),
D: q[d].daysShort[b.getUTCDay()],
DD: q[d].days[b.getUTCDay()],
m: b.getUTCMonth() + 1,
M: q[d].monthsShort[b.getUTCMonth()],
MM: q[d].months[b.getUTCMonth()],
yy: b.getUTCFullYear().toString().substring(2),
yyyy: b.getUTCFullYear()
};
e.dd = (e.d < 10 ? "0" : "") + e.d, e.mm = (e.m < 10 ? "0" : "") + e.m, b = [];
for (var f = a.extend([], c.separators), g = 0, h = c.parts.length; g <= h; g++) f.length && b.push(f.shift()), b.push(e[c.parts[g]]);
return b.join("")
},
headTemplate: '<thead><tr><th colspan="7" class="datepicker-title"></th></tr><tr><th class="prev">' + o.templates.leftArrow + '</th><th colspan="5" class="datepicker-switch"></th><th class="next">' + o.templates.rightArrow + "</th></tr></thead>",
contTemplate: '<tbody><tr><td colspan="7"></td></tr></tbody>',
footTemplate: '<tfoot><tr><th colspan="7" class="today"></th></tr><tr><th colspan="7" class="clear"></th></tr></tfoot>'
};
r.template = '<div class="datepicker"><div class="datepicker-days"><table class="table-condensed">' + r.headTemplate + "<tbody></tbody>" + r.footTemplate + '</table></div><div class="datepicker-months"><table class="table-condensed">' + r.headTemplate + r.contTemplate + r.footTemplate + '</table></div><div class="datepicker-years"><table class="table-condensed">' + r.headTemplate + r.contTemplate + r.footTemplate + '</table></div><div class="datepicker-decades"><table class="table-condensed">' + r.headTemplate + r.contTemplate + r.footTemplate + '</table></div><div class="datepicker-centuries"><table class="table-condensed">' + r.headTemplate + r.contTemplate + r.footTemplate + "</table></div></div>", a.fn.datepicker.DPGlobal = r, a.fn.datepicker.noConflict = function() {
return a.fn.datepicker = m, this
}, a.fn.datepicker.version = "1.8.0", a.fn.datepicker.deprecated = function(a) {
var b = window.console;
b && b.warn && b.warn("DEPRECATED: " + a)
}, a(document).on("focus.datepicker.data-api click.datepicker.data-api", '[data-provide="datepicker"]', function(b) {
var c = a(this);
c.data("datepicker") || (b.preventDefault(), n.call(c, "show"))
}), a(function() {
n.call(a('[data-provide="datepicker-inline"]'))
})
});
/** jQuery Timepicker - v1.3.5 | http://timepicker.co | Copyright (c) 2016 Willington Vega; Licensed MIT, GPL */
! function(a) {
"object" == typeof module && "object" == typeof module.exports ? a(require("jquery"), window, document) : "undefined" != typeof jQuery && a(jQuery, window, document)
}(function(a, b, c, d) {
! function() {
function b(a, b, c) {
return new Array(c + 1 - a.length).join(b) + a
}
function d() {
if (1 === arguments.length) {
var b = arguments[0];
return "string" == typeof b && (b = a.fn.timepicker.parseTime(b)), new Date(0, 0, 0, b.getHours(), b.getMinutes(), b.getSeconds())
}
return 3 === arguments.length ? new Date(0, 0, 0, arguments[0], arguments[1], arguments[2]) : 2 === arguments.length ? new Date(0, 0, 0, arguments[0], arguments[1], 0) : new Date(0, 0, 0)
}
a.TimePicker = function() {
var b = this;
b.container = a(".ui-timepicker-container"), b.ui = b.container.find(".ui-timepicker"), 0 === b.container.length && (b.container = a("<div></div>").addClass("ui-timepicker-container").addClass("ui-timepicker-hidden ui-helper-hidden").appendTo("body").hide(), b.ui = a("<div></div>").addClass("ui-timepicker").addClass("ui-widget ui-widget-content ui-menu").addClass("ui-corner-all").appendTo(b.container), b.viewport = a("<ul></ul>").addClass("ui-timepicker-viewport").appendTo(b.ui), a.fn.jquery >= "1.4.2" && b.ui.delegate("a", "mouseenter.timepicker", function() {
b.activate(!1, a(this).parent())
}).delegate("a", "mouseleave.timepicker", function() {
b.deactivate(!1)
}).delegate("a", "click.timepicker", function(c) {
c.preventDefault(), b.select(!1, a(this).parent())
}))
}, a.TimePicker.count = 0, a.TimePicker.instance = function() {
return a.TimePicker._instance || (a.TimePicker._instance = new a.TimePicker), a.TimePicker._instance
}, a.TimePicker.prototype = {
keyCode: {
ALT: 18,
BLOQ_MAYUS: 20,
CTRL: 17,
DOWN: 40,
END: 35,
ENTER: 13,
HOME: 36,
LEFT: 37,
NUMPAD_ENTER: 108,
PAGE_DOWN: 34,
PAGE_UP: 33,
RIGHT: 39,
SHIFT: 16,
TAB: 9,
UP: 38
},
_items: function(b, c) {
var e, f, g = this,
h = a("<ul></ul>"),
i = null;
for (-1 === b.options.timeFormat.indexOf("m") && b.options.interval % 60 !== 0 && (b.options.interval = 60 * Math.max(Math.round(b.options.interval / 60), 1)), e = c ? d(c) : b.options.startTime ? d(b.options.startTime) : d(b.options.startHour, b.options.startMinutes), f = new Date(e.getTime() + 864e5); f > e;) g._isValidTime(b, e) && (i = a("<li>").addClass("ui-menu-item").appendTo(h), a("<a>").addClass("ui-corner-all").text(a.fn.timepicker.formatTime(b.options.timeFormat, e)).appendTo(i), i.data("time-value", e)), e = new Date(e.getTime() + 60 * b.options.interval * 1e3);
return h.children()
},
_isValidTime: function(a, b) {
var c = null,
e = null;
return b = d(b), null !== a.options.minTime ? c = d(a.options.minTime) : (null !== a.options.minHour || null !== a.options.minMinutes) && (c = d(a.options.minHour, a.options.minMinutes)), null !== a.options.maxTime ? e = d(a.options.maxTime) : (null !== a.options.maxHour || null !== a.options.maxMinutes) && (e = d(a.options.maxHour, a.options.maxMinutes)), null !== c && null !== e ? b >= c && e >= b : null !== c ? b >= c : null !== e ? e >= b : !0
},
_hasScroll: function() {
var a = "undefined" != typeof this.ui.prop ? "prop" : "attr";
return this.ui.height() < this.ui[a]("scrollHeight")
},
_move: function(a, b, c) {
var d = this;
if (d.closed() && d.open(a), !d.active) return void d.activate(a, d.viewport.children(c));
var e = d.active[b + "All"](".ui-menu-item").eq(0);
e.length ? d.activate(a, e) : d.activate(a, d.viewport.children(c))
},
register: function(b, c) {
var d = this,
e = {};
e.element = a(b), e.element.data("TimePicker") || (e.options = a.metadata ? a.extend({}, c, e.element.metadata()) : a.extend({}, c), e.widget = d, a.extend(e, {
next: function() {
return d.next(e)
},
previous: function() {
return d.previous(e)
},
first: function() {
return d.first(e)
},
last: function() {
return d.last(e)
},
selected: function() {
return d.selected(e)
},
open: function() {
return d.open(e)
},
close: function() {
return d.close(e)
},
closed: function() {
return d.closed(e)
},
destroy: function() {
return d.destroy(e)
},
parse: function(a) {
return d.parse(e, a)
},
format: function(a, b) {
return d.format(e, a, b)
},
getTime: function() {
return d.getTime(e)
},
setTime: function(a, b) {
return d.setTime(e, a, b)
},
option: function(a, b) {
return d.option(e, a, b)
}
}), d._setDefaultTime(e), d._addInputEventsHandlers(e), e.element.data("TimePicker", e))
},
_setDefaultTime: function(b) {
"now" === b.options.defaultTime ? b.setTime(d(new Date)) : b.options.defaultTime && b.options.defaultTime.getFullYear ? b.setTime(d(b.options.defaultTime)) : b.options.defaultTime && b.setTime(a.fn.timepicker.parseTime(b.options.defaultTime))
},
_addInputEventsHandlers: function(b) {
var c = this;
b.element.bind("keydown.timepicker", function(a) {
switch (a.which || a.keyCode) {
case c.keyCode.ENTER:
case c.keyCode.NUMPAD_ENTER:
a.preventDefault(), c.closed() ? b.element.trigger("change.timepicker") : c.select(b, c.active);
break;
case c.keyCode.UP:
b.previous();
break;
case c.keyCode.DOWN:
b.next();
break;
default:
c.closed() || b.close(!0)
}
}).bind("focus.timepicker", function() {
b.open()
}).bind("blur.timepicker", function() {
setTimeout(function() {
b.element.data("timepicker-user-clicked-outside") && b.close()
})
}).bind("change.timepicker", function() {
b.closed() && b.setTime(a.fn.timepicker.parseTime(b.element.val()))
})
},
select: function(b, c) {
var d = this,
e = b === !1 ? d.instance : b;
d.setTime(e, a.fn.timepicker.parseTime(c.children("a").text())), d.close(e, !0)
},
activate: function(a, b) {
var c = this,
d = a === !1 ? c.instance : a;
if (d === c.instance) {
if (c.deactivate(), c._hasScroll()) {
var e = b.offset().top - c.ui.offset().top,
f = c.ui.scrollTop(),
g = c.ui.height();
0 > e ? c.ui.scrollTop(f + e) : e >= g && c.ui.scrollTop(f + e - g + b.height())
}
c.active = b.eq(0).children("a").addClass("ui-state-hover").attr("id", "ui-active-item").end()
}
},
deactivate: function() {
var a = this;
a.active && (a.active.children("a").removeClass("ui-state-hover").removeAttr("id"), a.active = null)
},
next: function(a) {
return (this.closed() || this.instance === a) && this._move(a, "next", ".ui-menu-item:first"), a.element
},
previous: function(a) {
return (this.closed() || this.instance === a) && this._move(a, "prev", ".ui-menu-item:last"), a.element
},
first: function(a) {
return this.instance === a ? this.active && 0 === this.active.prevAll(".ui-menu-item").length : !1
},
last: function(a) {
return this.instance === a ? this.active && 0 === this.active.nextAll(".ui-menu-item").length : !1
},
selected: function(a) {
return this.instance === a && this.active ? this.active : null
},
open: function(b) {
var d = this,
e = b.getTime(),
f = b.options.dynamic && e;
if (!b.options.dropdown) return b.element;
switch (b.element.data("timepicker-event-namespace", Math.random()), a(c).bind("click.timepicker-" + b.element.data("timepicker-event-namespace"), function(a) {
b.element.get(0) === a.target ? b.element.data("timepicker-user-clicked-outside", !1) : b.element.data("timepicker-user-clicked-outside", !0).blur()
}), (b.rebuild || !b.items || f) && (b.items = d._items(b, f ? e : null)), (b.rebuild || d.instance !== b || f) && (a.fn.jquery < "1.4.2" ? (d.viewport.children().remove(), d.viewport.append(b.items), d.viewport.find("a").bind("mouseover.timepicker", function() {
d.activate(b, a(this).parent())
}).bind("mouseout.timepicker", function() {
d.deactivate(b)
}).bind("click.timepicker", function(c) {
c.preventDefault(), d.select(b, a(this).parent())
})) : (d.viewport.children().detach(), d.viewport.append(b.items))), b.rebuild = !1, d.container.removeClass("ui-helper-hidden ui-timepicker-hidden ui-timepicker-standard ui-timepicker-corners").show(), b.options.theme) {
case "standard":
d.container.addClass("ui-timepicker-standard");
break;
case "standard-rounded-corners":
d.container.addClass("ui-timepicker-standard ui-timepicker-corners")
}
d.container.hasClass("ui-timepicker-no-scrollbar") || b.options.scrollbar || (d.container.addClass("ui-timepicker-no-scrollbar"), d.viewport.css({
paddingRight: 40
}));
var g = d.container.outerHeight() - d.container.height(),
h = b.options.zindex ? b.options.zindex : b.element.offsetParent().css("z-index"),
i = b.element.offset();
d.container.css({
top: i.top + b.element.outerHeight(),
left: i.left
}), d.container.show(), d.container.css({
left: b.element.offset().left,
height: d.ui.outerHeight() + g,
width: b.element.outerWidth(),
zIndex: h,
cursor: "default"
});
var j = d.container.width() - (d.ui.outerWidth() - d.ui.width());
return d.ui.css({
width: j
}), d.viewport.css({
width: j
}), b.items.css({
width: j
}), d.instance = b, e ? b.items.each(function() {
var c, f = a(this);
return c = a.fn.jquery < "1.4.2" ? a.fn.timepicker.parseTime(f.find("a").text()) : f.data("time-value"), c.getTime() === e.getTime() ? (d.activate(b, f), !1) : !0
}) : d.deactivate(b), b.element
},
close: function(b) {
var d = this;
return d.instance === b && (d.container.addClass("ui-helper-hidden ui-timepicker-hidden").hide(), d.ui.scrollTop(0), d.ui.children().removeClass("ui-state-hover")), a(c).unbind("click.timepicker-" + b.element.data("timepicker-event-namespace")), b.element
},
closed: function() {
return this.ui.is(":hidden")
},
destroy: function(a) {
var b = this;
return b.close(a, !0), a.element.unbind(".timepicker").data("TimePicker", null)
},
parse: function(b, c) {
return a.fn.timepicker.parseTime(c)
},
format: function(b, c, d) {
return d = d || b.options.timeFormat, a.fn.timepicker.formatTime(d, c)
},
getTime: function(b) {
var c = this,
d = a.fn.timepicker.parseTime(b.element.val());
return d instanceof Date && !c._isValidTime(b, d) ? null : d instanceof Date && b.selectedTime ? b.format(d) === b.format(b.selectedTime) ? b.selectedTime : d : d instanceof Date ? d : null
},
setTime: function(b, c, e) {
var f = this,
g = b.selectedTime;
if ("string" == typeof c && (c = b.parse(c)), c && c.getMinutes && f._isValidTime(b, c)) {
if (c = d(c), b.selectedTime = c, b.element.val(b.format(c, b.options.timeFormat)), e) return b
} else b.selectedTime = null;
return (null !== g || null !== b.selectedTime) && (b.element.trigger("time-change", [c]), a.isFunction(b.options.change) && b.options.change.apply(b.element, [c])), b.element
},
option: function(b, c, d) {
if ("undefined" == typeof d) return b.options[c];
var e, f, g = b.getTime();
"string" == typeof c ? (e = {}, e[c] = d) : e = c, f = ["minHour", "minMinutes", "minTime", "maxHour", "maxMinutes", "maxTime", "startHour", "startMinutes", "startTime", "timeFormat", "interval", "dropdown"], a.each(e, function(c) {
b.options[c] = e[c], b.rebuild = b.rebuild || a.inArray(c, f) > -1
}), b.rebuild && b.setTime(g)
}
}, a.TimePicker.defaults = {
timeFormat: "hh:mm p",
minHour: null,
minMinutes: null,
minTime: null,
maxHour: null,
maxMinutes: null,
maxTime: null,
startHour: null,
startMinutes: null,
startTime: null,
interval: 30,
dynamic: !0,
theme: "standard",
zindex: null,
dropdown: !0,
scrollbar: !1,
change: function() {}
}, a.TimePicker.methods = {
chainable: ["next", "previous", "open", "close", "destroy", "setTime"]
}, a.fn.timepicker = function(b) {
if ("string" == typeof b) {
var c, d, e = Array.prototype.slice.call(arguments, 1);
return c = "option" === b && arguments.length > 2 ? "each" : -1 !== a.inArray(b, a.TimePicker.methods.chainable) ? "each" : "map", d = this[c](function() {
var c = a(this),
d = c.data("TimePicker");
return "object" == typeof d ? d[b].apply(d, e) : void 0
}), "map" === c && 1 === this.length ? a.makeArray(d).shift() : "map" === c ? a.makeArray(d) : d
}
if (1 === this.length && this.data("TimePicker")) return this.data("TimePicker");
var f = a.extend({}, a.TimePicker.defaults, b);
return this.each(function() {
a.TimePicker.instance().register(this, f)
})
}, a.fn.timepicker.formatTime = function(a, c) {
var d = c.getHours(),
e = d % 12,
f = c.getMinutes(),
g = c.getSeconds(),
h = {
hh: b((0 === e ? 12 : e).toString(), "0", 2),
HH: b(d.toString(), "0", 2),
mm: b(f.toString(), "0", 2),
ss: b(g.toString(), "0", 2),
h: 0 === e ? 12 : e,
H: d,
m: f,
s: g,
p: d > 11 ? "PM" : "AM"
},
i = a,
j = "";
for (j in h) h.hasOwnProperty(j) && (i = i.replace(new RegExp(j, "g"), h[j]));
return i = i.replace(new RegExp("a", "g"), d > 11 ? "pm" : "am")
}, a.fn.timepicker.parseTime = function() {
var b = [
[/^(d+)$/, "$1"],
[/^:(d)$/, "$10"],
[/^:(d+)/, "$1"],
[/^(d):([7-9])$/, "0$10$2"],
[/^(d):(dd)$/, "$1$2"],
[/^(d):(d{1,})$/, "0$1$20"],
[/^(dd):([7-9])$/, "$10$2"],
[/^(dd):(d)$/, "$1$20"],
[/^(dd):(d*)$/, "$1$2"],
[/^(d{3,}):(d)$/, "$10$2"],
[/^(d{3,}):(d{2,})/, "$1$2"],
[/^(d):(d):(d)$/, "0$10$20$3"],
[/^(d{1,2}):(d):(dd)/, "$10$2$3"]
],
c = b.length;
return function(e) {
var f = d(new Date),
g = !1,
h = !1,
i = !1,
j = !1,
k = !1;
if ("undefined" == typeof e || !e.toLowerCase) return null;
e = e.toLowerCase(), g = /a/.test(e), h = g ? !1 : /p/.test(e), e = e.replace(/[^0-9:]/g, "").replace(/:+/g, ":");
for (var l = 0; c > l; l += 1)
if (b[l][0].test(e)) {
e = e.replace(b[l][0], b[l][1]);
break
} return e = e.replace(/:/g, ""), 1 === e.length ? i = e : 2 === e.length ? i = e : 3 === e.length || 5 === e.length ? (i = e.substr(0, 1), j = e.substr(1, 2), k = e.substr(3, 2)) : (4 === e.length || e.length > 5) && (i = e.substr(0, 2), j = e.substr(2, 2), k = e.substr(4, 2)), e.length > 0 && e.length < 5 && (e.length < 3 && (j = 0), k = 0), i === !1 || j === !1 || k === !1 ? !1 : (i = parseInt(i, 10), j = parseInt(j, 10), k = parseInt(k, 10), g && 12 === i ? i = 0 : h && 12 > i && (i += 12), i > 24 ? e.length >= 6 ? a.fn.timepicker.parseTime(e.substr(0, 5)) : a.fn.timepicker.parseTime(e + "0" + (g ? "a" : "") + (h ? "p" : "")) : (f.setHours(i, j, k), f))
}
}()
}()
});
/*! Magnific Popup - v1.1.0 - 2016-02-20 * http://dimsemenov.com/plugins/magnific-popup/ * Copyright (c) 2016 Dmitry Semenov; */
! function(a) {
"function" == typeof define && define.amd ? define(["jquery"], a) : a("object" == typeof exports ? require("jquery") : window.jQuery || window.Zepto)
}(function(a) {
var b, c, d, e, f, g, h = "Close",
i = "BeforeClose",
j = "AfterClose",
k = "BeforeAppend",
l = "MarkupParse",
m = "Open",
n = "Change",
o = "mfp",
p = "." + o,
q = "mfp-ready",
r = "mfp-removing",
s = "mfp-prevent-close",
t = function() {},
u = !!window.jQuery,
v = a(window),
w = function(a, c) {
b.ev.on(o + a + p, c)
},
x = function(b, c, d, e) {
var f = document.createElement("div");
return f.className = "mfp-" + b, d && (f.innerHTML = d), e ? c && c.appendChild(f) : (f = a(f), c && f.appendTo(c)), f
},
y = function(c, d) {
b.ev.triggerHandler(o + c, d), b.st.callbacks && (c = c.charAt(0).toLowerCase() + c.slice(1), b.st.callbacks[c] && b.st.callbacks[c].apply(b, a.isArray(d) ? d : [d]))
},
z = function(c) {
return c === g && b.currTemplate.closeBtn || (b.currTemplate.closeBtn = a(b.st.closeMarkup.replace("%title%", b.st.tClose)), g = c), b.currTemplate.closeBtn
},
A = function() {
a.magnificPopup.instance || (b = new t, b.init(), a.magnificPopup.instance = b)
},
B = function() {
var a = document.createElement("p").style,
b = ["ms", "O", "Moz", "Webkit"];
if (void 0 !== a.transition) return !0;
for (; b.length;)
if (b.pop() + "Transition" in a) return !0;
return !1
};
t.prototype = {
constructor: t,
init: function() {
var c = navigator.appVersion;
b.isLowIE = b.isIE8 = document.all && !document.addEventListener, b.isAndroid = /android/gi.test(c), b.isIOS = /iphone|ipad|ipod/gi.test(c), b.supportsTransition = B(), b.probablyMobile = b.isAndroid || b.isIOS || /(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent), d = a(document), b.popupsCache = {}
},
open: function(c) {
var e;
if (c.isObj === !1) {
b.items = c.items.toArray(), b.index = 0;
var g, h = c.items;
for (e = 0; e < h.length; e++)
if (g = h[e], g.parsed && (g = g.el[0]), g === c.el[0]) {
b.index = e;
break
}
} else b.items = a.isArray(c.items) ? c.items : [c.items], b.index = c.index || 0;
if (b.isOpen) return void b.updateItemHTML();
b.types = [], f = "", c.mainEl && c.mainEl.length ? b.ev = c.mainEl.eq(0) : b.ev = d, c.key ? (b.popupsCache[c.key] || (b.popupsCache[c.key] = {}), b.currTemplate = b.popupsCache[c.key]) : b.currTemplate = {}, b.st = a.extend(!0, {}, a.magnificPopup.defaults, c), b.fixedContentPos = "auto" === b.st.fixedContentPos ? !b.probablyMobile : b.st.fixedContentPos, b.st.modal && (b.st.closeOnContentClick = !1, b.st.closeOnBgClick = !1, b.st.showCloseBtn = !1, b.st.enableEscapeKey = !1), b.bgOverlay || (b.bgOverlay = x("bg").on("click" + p, function() {
b.close()
}), b.wrap = x("wrap").attr("tabindex", -1).on("click" + p, function(a) {
b._checkIfClose(a.target) && b.close()
}), b.container = x("container", b.wrap)), b.contentContainer = x("content"), b.st.preloader && (b.preloader = x("preloader", b.container, b.st.tLoading));
var i = a.magnificPopup.modules;
for (e = 0; e < i.length; e++) {
var j = i[e];
j = j.charAt(0).toUpperCase() + j.slice(1), b["init" + j].call(b)
}
y("BeforeOpen"), b.st.showCloseBtn && (b.st.closeBtnInside ? (w(l, function(a, b, c, d) {
c.close_replaceWith = z(d.type)
}), f += " mfp-close-btn-in") : b.wrap.append(z())), b.st.alignTop && (f += " mfp-align-top"), b.fixedContentPos ? b.wrap.css({
overflow: b.st.overflowY,
overflowX: "hidden",
overflowY: b.st.overflowY
}) : b.wrap.css({
top: v.scrollTop(),
position: "absolute"
}), (b.st.fixedBgPos === !1 || "auto" === b.st.fixedBgPos && !b.fixedContentPos) && b.bgOverlay.css({
height: d.height(),
position: "absolute"
}), b.st.enableEscapeKey && d.on("keyup" + p, function(a) {
27 === a.keyCode && b.close()
}), v.on("resize" + p, function() {
b.updateSize()
}), b.st.closeOnContentClick || (f += " mfp-auto-cursor"), f && b.wrap.addClass(f);
var k = b.wH = v.height(),
n = {};
if (b.fixedContentPos && b._hasScrollBar(k)) {
var o = b._getScrollbarSize();
o && (n.marginRight = o)
}
b.fixedContentPos && (b.isIE7 ? a("body, html").css("overflow", "hidden") : n.overflow = "hidden");
var r = b.st.mainClass;
return b.isIE7 && (r += " mfp-ie7"), r && b._addClassToMFP(r), b.updateItemHTML(), y("BuildControls"), a("html").css(n), b.bgOverlay.add(b.wrap).prependTo(b.st.prependTo || a(document.body)), b._lastFocusedEl = document.activeElement, setTimeout(function() {
b.content ? (b._addClassToMFP(q), b._setFocus()) : b.bgOverlay.addClass(q), d.on("focusin" + p, b._onFocusIn)
}, 16), b.isOpen = !0, b.updateSize(k), y(m), c
},
close: function() {
b.isOpen && (y(i), b.isOpen = !1, b.st.removalDelay && !b.isLowIE && b.supportsTransition ? (b._addClassToMFP(r), setTimeout(function() {
b._close()
}, b.st.removalDelay)) : b._close())
},
_close: function() {
y(h);
var c = r + " " + q + " ";
if (b.bgOverlay.detach(), b.wrap.detach(), b.container.empty(), b.st.mainClass && (c += b.st.mainClass + " "), b._removeClassFromMFP(c), b.fixedContentPos) {
var e = {
marginRight: ""
};
b.isIE7 ? a("body, html").css("overflow", "") : e.overflow = "", a("html").css(e)
}
d.off("keyup" + p + " focusin" + p), b.ev.off(p), b.wrap.attr("class", "mfp-wrap").removeAttr("style"), b.bgOverlay.attr("class", "mfp-bg"), b.container.attr("class", "mfp-container"), !b.st.showCloseBtn || b.st.closeBtnInside && b.currTemplate[b.currItem.type] !== !0 || b.currTemplate.closeBtn && b.currTemplate.closeBtn.detach(), b.st.autoFocusLast && b._lastFocusedEl && a(b._lastFocusedEl).focus(), b.currItem = null, b.content = null, b.currTemplate = null, b.prevHeight = 0, y(j)
},
updateSize: function(a) {
if (b.isIOS) {
var c = document.documentElement.clientWidth / window.innerWidth,
d = window.innerHeight * c;
b.wrap.css("height", d), b.wH = d
} else b.wH = a || v.height();
b.fixedContentPos || b.wrap.css("height", b.wH), y("Resize")
},
updateItemHTML: function() {
var c = b.items[b.index];
b.contentContainer.detach(), b.content && b.content.detach(), c.parsed || (c = b.parseEl(b.index));
var d = c.type;
if (y("BeforeChange", [b.currItem ? b.currItem.type : "", d]), b.currItem = c, !b.currTemplate[d]) {
var f = b.st[d] ? b.st[d].markup : !1;
y("FirstMarkupParse", f), f ? b.currTemplate[d] = a(f) : b.currTemplate[d] = !0
}
e && e !== c.type && b.container.removeClass("mfp-" + e + "-holder");
var g = b["get" + d.charAt(0).toUpperCase() + d.slice(1)](c, b.currTemplate[d]);
b.appendContent(g, d), c.preloaded = !0, y(n, c), e = c.type, b.container.prepend(b.contentContainer), y("AfterChange")
},
appendContent: function(a, c) {
b.content = a, a ? b.st.showCloseBtn && b.st.closeBtnInside && b.currTemplate[c] === !0 ? b.content.find(".mfp-close").length || b.content.append(z()) : b.content = a : b.content = "", y(k), b.container.addClass("mfp-" + c + "-holder"), b.contentContainer.append(b.content)
},
parseEl: function(c) {
var d, e = b.items[c];
if (e.tagName ? e = {
el: a(e)
} : (d = e.type, e = {
data: e,
src: e.src
}), e.el) {
for (var f = b.types, g = 0; g < f.length; g++)
if (e.el.hasClass("mfp-" + f[g])) {
d = f[g];
break
} e.src = e.el.attr("data-mfp-src"), e.src || (e.src = e.el.attr("href"))
}
return e.type = d || b.st.type || "inline", e.index = c, e.parsed = !0, b.items[c] = e, y("ElementParse", e), b.items[c]
},
addGroup: function(a, c) {
var d = function(d) {
d.mfpEl = this, b._openClick(d, a, c)
};
c || (c = {});
var e = "click.magnificPopup";
c.mainEl = a, c.items ? (c.isObj = !0, a.off(e).on(e, d)) : (c.isObj = !1, c.delegate ? a.off(e).on(e, c.delegate, d) : (c.items = a, a.off(e).on(e, d)))
},
_openClick: function(c, d, e) {
var f = void 0 !== e.midClick ? e.midClick : a.magnificPopup.defaults.midClick;
if (f || !(2 === c.which || c.ctrlKey || c.metaKey || c.altKey || c.shiftKey)) {
var g = void 0 !== e.disableOn ? e.disableOn : a.magnificPopup.defaults.disableOn;
if (g)
if (a.isFunction(g)) {
if (!g.call(b)) return !0
} else if (v.width() < g) return !0;
c.type && (c.preventDefault(), b.isOpen && c.stopPropagation()), e.el = a(c.mfpEl), e.delegate && (e.items = d.find(e.delegate)), b.open(e)
}
},
updateStatus: function(a, d) {
if (b.preloader) {
c !== a && b.container.removeClass("mfp-s-" + c), d || "loading" !== a || (d = b.st.tLoading);
var e = {
status: a,
text: d
};
y("UpdateStatus", e), a = e.status, d = e.text, b.preloader.html(d), b.preloader.find("a").on("click", function(a) {
a.stopImmediatePropagation()
}), b.container.addClass("mfp-s-" + a), c = a
}
},
_checkIfClose: function(c) {
if (!a(c).hasClass(s)) {
var d = b.st.closeOnContentClick,
e = b.st.closeOnBgClick;
if (d && e) return !0;
if (!b.content || a(c).hasClass("mfp-close") || b.preloader && c === b.preloader[0]) return !0;
if (c === b.content[0] || a.contains(b.content[0], c)) {
if (d) return !0
} else if (e && a.contains(document, c)) return !0;
return !1
}
},
_addClassToMFP: function(a) {
b.bgOverlay.addClass(a), b.wrap.addClass(a)
},
_removeClassFromMFP: function(a) {
this.bgOverlay.removeClass(a), b.wrap.removeClass(a)
},
_hasScrollBar: function(a) {
return (b.isIE7 ? d.height() : document.body.scrollHeight) > (a || v.height())
},
_setFocus: function() {
(b.st.focus ? b.content.find(b.st.focus).eq(0) : b.wrap).focus()
},
_onFocusIn: function(c) {
return c.target === b.wrap[0] || a.contains(b.wrap[0], c.target) ? void 0 : (b._setFocus(), !1)
},
_parseMarkup: function(b, c, d) {
var e;
d.data && (c = a.extend(d.data, c)), y(l, [b, c, d]), a.each(c, function(c, d) {
if (void 0 === d || d === !1) return !0;
if (e = c.split("_"), e.length > 1) {
var f = b.find(p + "-" + e[0]);
if (f.length > 0) {
var g = e[1];
"replaceWith" === g ? f[0] !== d[0] && f.replaceWith(d) : "img" === g ? f.is("img") ? f.attr("src", d) : f.replaceWith(a("<img>").attr("src", d).attr("class", f.attr("class"))) : f.attr(e[1], d)
}
} else b.find(p + "-" + c).html(d)
})
},
_getScrollbarSize: function() {
if (void 0 === b.scrollbarSize) {
var a = document.createElement("div");
a.style.cssText = "width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;", document.body.appendChild(a), b.scrollbarSize = a.offsetWidth - a.clientWidth, document.body.removeChild(a)
}
return b.scrollbarSize
}
}, a.magnificPopup = {
instance: null,
proto: t.prototype,
modules: [],
open: function(b, c) {
return A(), b = b ? a.extend(!0, {}, b) : {}, b.isObj = !0, b.index = c || 0, this.instance.open(b)
},
close: function() {
return a.magnificPopup.instance && a.magnificPopup.instance.close()
},
registerModule: function(b, c) {
c.options && (a.magnificPopup.defaults[b] = c.options), a.extend(this.proto, c.proto), this.modules.push(b)
},
defaults: {
disableOn: 0,
key: null,
midClick: !1,
mainClass: "",
preloader: !0,
focus: "",
closeOnContentClick: !1,
closeOnBgClick: !0,
closeBtnInside: !0,
showCloseBtn: !0,
enableEscapeKey: !0,
modal: !1,
alignTop: !1,
removalDelay: 0,
prependTo: null,
fixedContentPos: "auto",
fixedBgPos: "auto",
overflowY: "auto",
closeMarkup: '<button title="%title%" type="button" class="mfp-close">×</button>',
tClose: "Close (Esc)",
tLoading: "Loading...",
autoFocusLast: !0
}
}, a.fn.magnificPopup = function(c) {
A();
var d = a(this);
if ("string" == typeof c)
if ("open" === c) {
var e, f = u ? d.data("magnificPopup") : d[0].magnificPopup,
g = parseInt(arguments[1], 10) || 0;
f.items ? e = f.items[g] : (e = d, f.delegate && (e = e.find(f.delegate)), e = e.eq(g)), b._openClick({
mfpEl: e
}, d, f)
} else b.isOpen && b[c].apply(b, Array.prototype.slice.call(arguments, 1));
else c = a.extend(!0, {}, c), u ? d.data("magnificPopup", c) : d[0].magnificPopup = c, b.addGroup(d, c);
return d
};
var C, D, E, F = "inline",
G = function() {
E && (D.after(E.addClass(C)).detach(), E = null)
};
a.magnificPopup.registerModule(F, {
options: {
hiddenClass: "hide",
markup: "",
tNotFound: "Content not found"
},
proto: {
initInline: function() {
b.types.push(F), w(h + "." + F, function() {
G()
})
},
getInline: function(c, d) {
if (G(), c.src) {
var e = b.st.inline,
f = a(c.src);
if (f.length) {
var g = f[0].parentNode;
g && g.tagName && (D || (C = e.hiddenClass, D = x(C), C = "mfp-" + C), E = f.after(D).detach().removeClass(C)), b.updateStatus("ready")
} else b.updateStatus("error", e.tNotFound), f = a("<div>");
return c.inlineElement = f, f
}
return b.updateStatus("ready"), b._parseMarkup(d, {}, c), d
}
}
});
var H, I = "ajax",
J = function() {
H && a(document.body).removeClass(H)
},
K = function() {
J(), b.req && b.req.abort()
};
a.magnificPopup.registerModule(I, {
options: {
settings: null,
cursor: "mfp-ajax-cur",
tError: '<a href="%url%">The content</a> could not be loaded.'
},
proto: {
initAjax: function() {
b.types.push(I), H = b.st.ajax.cursor, w(h + "." + I, K), w("BeforeChange." + I, K)
},
getAjax: function(c) {
H && a(document.body).addClass(H), b.updateStatus("loading");
var d = a.extend({
url: c.src,
success: function(d, e, f) {
var g = {
data: d,
xhr: f
};
y("ParseAjax", g), b.appendContent(a(g.data), I), c.finished = !0, J(), b._setFocus(), setTimeout(function() {
b.wrap.addClass(q)
}, 16), b.updateStatus("ready"), y("AjaxContentAdded")
},
error: function() {
J(), c.finished = c.loadError = !0, b.updateStatus("error", b.st.ajax.tError.replace("%url%", c.src))
}
}, b.st.ajax.settings);
return b.req = a.ajax(d), ""
}
}
});
var L, M = function(c) {
if (c.data && void 0 !== c.data.title) return c.data.title;
var d = b.st.image.titleSrc;
if (d) {
if (a.isFunction(d)) return d.call(b, c);
if (c.el) return c.el.attr(d) || ""
}
return ""
};
a.magnificPopup.registerModule("image", {
options: {
markup: '<div class="mfp-figure"><div class="mfp-close"></div><figure><div class="mfp-img"></div><figcaption><div class="mfp-bottom-bar"><div class="mfp-title"></div><div class="mfp-counter"></div></div></figcaption></figure></div>',
cursor: "mfp-zoom-out-cur",
titleSrc: "title",
verticalFit: !0,
tError: '<a href="%url%">The image</a> could not be loaded.'
},
proto: {
initImage: function() {
var c = b.st.image,
d = ".image";
b.types.push("image"), w(m + d, function() {
"image" === b.currItem.type && c.cursor && a(document.body).addClass(c.cursor)
}), w(h + d, function() {
c.cursor && a(document.body).removeClass(c.cursor), v.off("resize" + p)
}), w("Resize" + d, b.resizeImage), b.isLowIE && w("AfterChange", b.resizeImage)
},
resizeImage: function() {
var a = b.currItem;
if (a && a.img && b.st.image.verticalFit) {
var c = 0;
b.isLowIE && (c = parseInt(a.img.css("padding-top"), 10) + parseInt(a.img.css("padding-bottom"), 10)), a.img.css("max-height", b.wH - c)
}
},
_onImageHasSize: function(a) {
a.img && (a.hasSize = !0, L && clearInterval(L), a.isCheckingImgSize = !1, y("ImageHasSize", a), a.imgHidden && (b.content && b.content.removeClass("mfp-loading"), a.imgHidden = !1))
},
findImageSize: function(a) {
var c = 0,
d = a.img[0],
e = function(f) {
L && clearInterval(L), L = setInterval(function() {
return d.naturalWidth > 0 ? void b._onImageHasSize(a) : (c > 200 && clearInterval(L), c++, void(3 === c ? e(10) : 40 === c ? e(50) : 100 === c && e(500)))
}, f)
};
e(1)
},
getImage: function(c, d) {
var e = 0,
f = function() {
c && (c.img[0].complete ? (c.img.off(".mfploader"), c === b.currItem && (b._onImageHasSize(c), b.updateStatus("ready")), c.hasSize = !0, c.loaded = !0, y("ImageLoadComplete")) : (e++, 200 > e ? setTimeout(f, 100) : g()))
},
g = function() {
c && (c.img.off(".mfploader"), c === b.currItem && (b._onImageHasSize(c), b.updateStatus("error", h.tError.replace("%url%", c.src))), c.hasSize = !0, c.loaded = !0, c.loadError = !0)
},
h = b.st.image,
i = d.find(".mfp-img");
if (i.length) {
var j = document.createElement("img");
j.className = "mfp-img", c.el && c.el.find("img").length && (j.alt = c.el.find("img").attr("alt")), c.img = a(j).on("load.mfploader", f).on("error.mfploader", g), j.src = c.src, i.is("img") && (c.img = c.img.clone()), j = c.img[0], j.naturalWidth > 0 ? c.hasSize = !0 : j.width || (c.hasSize = !1)
}
return b._parseMarkup(d, {
title: M(c),
img_replaceWith: c.img
}, c), b.resizeImage(), c.hasSize ? (L && clearInterval(L), c.loadError ? (d.addClass("mfp-loading"), b.updateStatus("error", h.tError.replace("%url%", c.src))) : (d.removeClass("mfp-loading"), b.updateStatus("ready")), d) : (b.updateStatus("loading"), c.loading = !0, c.hasSize || (c.imgHidden = !0, d.addClass("mfp-loading"), b.findImageSize(c)), d)
}
}
});
var N, O = function() {
return void 0 === N && (N = void 0 !== document.createElement("p").style.MozTransform), N
};
a.magnificPopup.registerModule("zoom", {
options: {
enabled: !1,
easing: "ease-in-out",
duration: 300,
opener: function(a) {
return a.is("img") ? a : a.find("img")
}
},
proto: {
initZoom: function() {
var a, c = b.st.zoom,
d = ".zoom";
if (c.enabled && b.supportsTransition) {
var e, f, g = c.duration,
j = function(a) {
var b = a.clone().removeAttr("style").removeAttr("class").addClass("mfp-animated-image"),
d = "all " + c.duration / 1e3 + "s " + c.easing,
e = {
position: "fixed",
zIndex: 9999,
left: 0,
top: 0,
"-webkit-backface-visibility": "hidden"
},
f = "transition";
return e["-webkit-" + f] = e["-moz-" + f] = e["-o-" + f] = e[f] = d, b.css(e), b
},
k = function() {
b.content.css("visibility", "visible")
};
w("BuildControls" + d, function() {
if (b._allowZoom()) {
if (clearTimeout(e), b.content.css("visibility", "hidden"), a = b._getItemToZoom(), !a) return void k();
f = j(a), f.css(b._getOffset()), b.wrap.append(f), e = setTimeout(function() {
f.css(b._getOffset(!0)), e = setTimeout(function() {
k(), setTimeout(function() {
f.remove(), a = f = null, y("ZoomAnimationEnded")
}, 16)
}, g)
}, 16)
}
}), w(i + d, function() {
if (b._allowZoom()) {
if (clearTimeout(e), b.st.removalDelay = g, !a) {
if (a = b._getItemToZoom(), !a) return;
f = j(a)
}
f.css(b._getOffset(!0)), b.wrap.append(f), b.content.css("visibility", "hidden"), setTimeout(function() {
f.css(b._getOffset())
}, 16)
}
}), w(h + d, function() {
b._allowZoom() && (k(), f && f.remove(), a = null)
})
}
},
_allowZoom: function() {
return "image" === b.currItem.type
},
_getItemToZoom: function() {
return b.currItem.hasSize ? b.currItem.img : !1
},
_getOffset: function(c) {
var d;
d = c ? b.currItem.img : b.st.zoom.opener(b.currItem.el || b.currItem);
var e = d.offset(),
f = parseInt(d.css("padding-top"), 10),
g = parseInt(d.css("padding-bottom"), 10);
e.top -= a(window).scrollTop() - f;
var h = {
width: d.width(),
height: (u ? d.innerHeight() : d[0].offsetHeight) - g - f
};
return O() ? h["-moz-transform"] = h.transform = "translate(" + e.left + "px," + e.top + "px)" : (h.left = e.left, h.top = e.top), h
}
}
});
var P = "iframe",
Q = "//about:blank",
R = function(a) {
if (b.currTemplate[P]) {
var c = b.currTemplate[P].find("iframe");
c.length && (a || (c[0].src = Q), b.isIE8 && c.css("display", a ? "block" : "none"))
}
};
a.magnificPopup.registerModule(P, {
options: {
markup: '<div class="mfp-iframe-scaler"><div class="mfp-close"></div><iframe class="mfp-iframe" src="//about:blank" frameborder="0" allowfullscreen></iframe></div>',
srcAction: "iframe_src",
patterns: {
youtube: {
index: "youtube.com",
id: "v=",
src: "//www.youtube.com/embed/%id%?autoplay=1"
},
vimeo: {
index: "vimeo.com/",
id: "/",
src: "//player.vimeo.com/video/%id%?autoplay=1"
},
gmaps: {
index: "//maps.google.",
src: "%id%&output=embed"
}
}
},
proto: {
initIframe: function() {
b.types.push(P), w("BeforeChange", function(a, b, c) {
b !== c && (b === P ? R() : c === P && R(!0))
}), w(h + "." + P, function() {
R()
})
},
getIframe: function(c, d) {
var e = c.src,
f = b.st.iframe;
a.each(f.patterns, function() {
return e.indexOf(this.index) > -1 ? (this.id && (e = "string" == typeof this.id ? e.substr(e.lastIndexOf(this.id) + this.id.length, e.length) : this.id.call(this, e)), e = this.src.replace("%id%", e), !1) : void 0
});
var g = {};
return f.srcAction && (g[f.srcAction] = e), b._parseMarkup(d, g, c), b.updateStatus("ready"), d
}
}
});
var S = function(a) {
var c = b.items.length;
return a > c - 1 ? a - c : 0 > a ? c + a : a
},
T = function(a, b, c) {
return a.replace(/%curr%/gi, b + 1).replace(/%total%/gi, c)
};
a.magnificPopup.registerModule("gallery", {
options: {
enabled: !1,
arrowMarkup: '<button title="%title%" type="button" class="mfp-arrow mfp-arrow-%dir%"></button>',
preload: [0, 2],
navigateByImgClick: !0,
arrows: !0,
tPrev: "Previous (Left arrow key)",
tNext: "Next (Right arrow key)",
tCounter: "%curr% of %total%"
},
proto: {
initGallery: function() {
var c = b.st.gallery,
e = ".mfp-gallery";
return b.direction = !0, c && c.enabled ? (f += " mfp-gallery", w(m + e, function() {
c.navigateByImgClick && b.wrap.on("click" + e, ".mfp-img", function() {
return b.items.length > 1 ? (b.next(), !1) : void 0
}), d.on("keydown" + e, function(a) {
37 === a.keyCode ? b.prev() : 39 === a.keyCode && b.next()
})
}), w("UpdateStatus" + e, function(a, c) {
c.text && (c.text = T(c.text, b.currItem.index, b.items.length))
}), w(l + e, function(a, d, e, f) {
var g = b.items.length;
e.counter = g > 1 ? T(c.tCounter, f.index, g) : ""
}), w("BuildControls" + e, function() {
if (b.items.length > 1 && c.arrows && !b.arrowLeft) {
var d = c.arrowMarkup,
e = b.arrowLeft = a(d.replace(/%title%/gi, c.tPrev).replace(/%dir%/gi, "left")).addClass(s),
f = b.arrowRight = a(d.replace(/%title%/gi, c.tNext).replace(/%dir%/gi, "right")).addClass(s);
e.click(function() {
b.prev()
}), f.click(function() {
b.next()
}), b.container.append(e.add(f))
}
}), w(n + e, function() {
b._preloadTimeout && clearTimeout(b._preloadTimeout), b._preloadTimeout = setTimeout(function() {
b.preloadNearbyImages(), b._preloadTimeout = null
}, 16)
}), void w(h + e, function() {
d.off(e), b.wrap.off("click" + e), b.arrowRight = b.arrowLeft = null
})) : !1
},
next: function() {
b.direction = !0, b.index = S(b.index + 1), b.updateItemHTML()
},
prev: function() {
b.direction = !1, b.index = S(b.index - 1), b.updateItemHTML()
},
goTo: function(a) {
b.direction = a >= b.index, b.index = a, b.updateItemHTML()
},
preloadNearbyImages: function() {
var a, c = b.st.gallery.preload,
d = Math.min(c[0], b.items.length),
e = Math.min(c[1], b.items.length);
for (a = 1; a <= (b.direction ? e : d); a++) b._preloadItem(b.index + a);
for (a = 1; a <= (b.direction ? d : e); a++) b._preloadItem(b.index - a)
},
_preloadItem: function(c) {
if (c = S(c), !b.items[c].preloaded) {
var d = b.items[c];
d.parsed || (d = b.parseEl(c)), y("LazyLoad", d), "image" === d.type && (d.img = a('<img class="mfp-img" />').on("load.mfploader", function() {
d.hasSize = !0
}).on("error.mfploader", function() {
d.hasSize = !0, d.loadError = !0, y("LazyLoadError", d)
}).attr("src", d.src)), d.preloaded = !0
}
}
}
});
var U = "retina";
a.magnificPopup.registerModule(U, {
options: {
replaceSrc: function(a) {
return a.src.replace(/.w+$/, function(a) {
return "@2x" + a
})
},
ratio: 1
},
proto: {
initRetina: function() {
if (window.devicePixelRatio > 1) {
var a = b.st.retina,
c = a.ratio;
c = isNaN(c) ? c() : c, c > 1 && (w("ImageHasSize." + U, function(a, b) {
b.img.css({
"max-width": b.img[0].naturalWidth / c,
width: "100%"
})
}), w("ElementParse." + U, function(b, d) {
d.src = a.replaceSrc(d, c)
}))
}
}
}
}), A()
});
/*! Chart.js * http://chartjs.org/ * Version: 2.4.0 * https://github.com/chartjs/Chart.js/blob/master/LICENSE.md */
! function(t) {
if ("object" == typeof exports && "undefined" != typeof module) module.exports = t();
else if ("function" == typeof define && define.amd) define([], t);
else {
var e;
e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : this, e.Chart = t()
}
}(function() {
return function t(e, a, i) {
function n(r, l) {
if (!a[r]) {
if (!e[r]) {
var s = "function" == typeof require && require;
if (!l && s) return s(r, !0);
if (o) return o(r, !0);
var d = new Error("Cannot find module '" + r + "'");
throw d.code = "MODULE_NOT_FOUND", d
}
var u = a[r] = {
exports: {}
};
e[r][0].call(u.exports, function(t) {
var a = e[r][1][t];
return n(a ? a : t)
}, u, u.exports, t, e, a, i)
}
return a[r].exports
}
for (var o = "function" == typeof require && require, r = 0; r < i.length; r++) n(i[r]);
return n
}({
1: [function(t, e, a) {}, {}],
2: [function(t, e, a) {
function i(t) {
if (t) {
var e = /^#([a-fA-F0-9]{3})$/,
a = /^#([a-fA-F0-9]{6})$/,
i = /^rgba?(s*([+-]?d+)s*,s*([+-]?d+)s*,s*([+-]?d+)s*(?:,s*([+-]?[d.]+)s*)?)$/,
n = /^rgba?(s*([+-]?[d.]+)%s*,s*([+-]?[d.]+)%s*,s*([+-]?[d.]+)%s*(?:,s*([+-]?[d.]+)s*)?)$/,
o = /(w+)/,
r = [0, 0, 0],
l = 1,
s = t.match(e);
if (s) {
s = s[1];
for (var d = 0; d < r.length; d++) r[d] = parseInt(s[d] + s[d], 16)
} else if (s = t.match(a)) {
s = s[1];
for (var d = 0; d < r.length; d++) r[d] = parseInt(s.slice(2 * d, 2 * d + 2), 16)
} else if (s = t.match(i)) {
for (var d = 0; d < r.length; d++) r[d] = parseInt(s[d + 1]);
l = parseFloat(s[4])
} else if (s = t.match(n)) {
for (var d = 0; d < r.length; d++) r[d] = Math.round(2.55 * parseFloat(s[d + 1]));
l = parseFloat(s[4])
} else if (s = t.match(o)) {
if ("transparent" == s[1]) return [0, 0, 0, 0];
if (r = y[s[1]], !r) return
}
for (var d = 0; d < r.length; d++) r[d] = v(r[d], 0, 255);
return l = l || 0 == l ? v(l, 0, 1) : 1, r[3] = l, r
}
}
function n(t) {
if (t) {
var e = /^hsla?(s*([+-]?d+)(?:deg)?s*,s*([+-]?[d.]+)%s*,s*([+-]?[d.]+)%s*(?:,s*([+-]?[d.]+)s*)?)/,
a = t.match(e);
if (a) {
var i = parseFloat(a[4]),
n = v(parseInt(a[1]), 0, 360),
o = v(parseFloat(a[2]), 0, 100),
r = v(parseFloat(a[3]), 0, 100),
l = v(isNaN(i) ? 1 : i, 0, 1);
return [n, o, r, l]
}
}
}
function o(t) {
if (t) {
var e = /^hwb(s*([+-]?d+)(?:deg)?s*,s*([+-]?[d.]+)%s*,s*([+-]?[d.]+)%s*(?:,s*([+-]?[d.]+)s*)?)/,
a = t.match(e);
if (a) {
var i = parseFloat(a[4]),
n = v(parseInt(a[1]), 0, 360),
o = v(parseFloat(a[2]), 0, 100),
r = v(parseFloat(a[3]), 0, 100),
l = v(isNaN(i) ? 1 : i, 0, 1);
return [n, o, r, l]
}
}
}
function r(t) {
var e = i(t);
return e && e.slice(0, 3)
}
function l(t) {
var e = n(t);
return e && e.slice(0, 3)
}
function s(t) {
var e = i(t);
return e ? e[3] : (e = n(t)) ? e[3] : (e = o(t)) ? e[3] : void 0
}
function d(t) {
return "#" + x(t[0]) + x(t[1]) + x(t[2])
}
function u(t, e) {
return 1 > e || t[3] && t[3] < 1 ? c(t, e) : "rgb(" + t[0] + ", " + t[1] + ", " + t[2] + ")"
}
function c(t, e) {
return void 0 === e && (e = void 0 !== t[3] ? t[3] : 1), "rgba(" + t[0] + ", " + t[1] + ", " + t[2] + ", " + e + ")"
}
function h(t, e) {
if (1 > e || t[3] && t[3] < 1) return f(t, e);
var a = Math.round(t[0] / 255 * 100),
i = Math.round(t[1] / 255 * 100),
n = Math.round(t[2] / 255 * 100);
return "rgb(" + a + "%, " + i + "%, " + n + "%)"
}
function f(t, e) {
var a = Math.round(t[0] / 255 * 100),
i = Math.round(t[1] / 255 * 100),
n = Math.round(t[2] / 255 * 100);
return "rgba(" + a + "%, " + i + "%, " + n + "%, " + (e || t[3] || 1) + ")"
}
function g(t, e) {
return 1 > e || t[3] && t[3] < 1 ? p(t, e) : "hsl(" + t[0] + ", " + t[1] + "%, " + t[2] + "%)"
}
function p(t, e) {
return void 0 === e && (e = void 0 !== t[3] ? t[3] : 1), "hsla(" + t[0] + ", " + t[1] + "%, " + t[2] + "%, " + e + ")"
}
function m(t, e) {
return void 0 === e && (e = void 0 !== t[3] ? t[3] : 1), "hwb(" + t[0] + ", " + t[1] + "%, " + t[2] + "%" + (void 0 !== e && 1 !== e ? ", " + e : "") + ")"
}
function b(t) {
return k[t.slice(0, 3)]
}
function v(t, e, a) {
return Math.min(Math.max(e, t), a)
}
function x(t) {
var e = t.toString(16).toUpperCase();
return e.length < 2 ? "0" + e : e
}
var y = t(6);
e.exports = {
getRgba: i,
getHsla: n,
getRgb: r,
getHsl: l,
getHwb: o,
getAlpha: s,
hexString: d,
rgbString: u,
rgbaString: c,
percentString: h,
percentaString: f,
hslString: g,
hslaString: p,
hwbString: m,
keyword: b
};
var k = {};
for (var S in y) k[y[S]] = S
}, {
6: 6
}],
3: [function(t, e, a) {
var i = t(5),
n = t(2),
o = function(t) {
if (t instanceof o) return t;
if (!(this instanceof o)) return new o(t);
this.values = {
rgb: [0, 0, 0],
hsl: [0, 0, 0],
hsv: [0, 0, 0],
hwb: [0, 0, 0],
cmyk: [0, 0, 0, 0],
alpha: 1
};
var e;
if ("string" == typeof t)
if (e = n.getRgba(t)) this.setValues("rgb", e);
else if (e = n.getHsla(t)) this.setValues("hsl", e);
else {
if (!(e = n.getHwb(t))) throw new Error('Unable to parse color from string "' + t + '"');
this.setValues("hwb", e)
} else if ("object" == typeof t)
if (e = t, void 0 !== e.r || void 0 !== e.red) this.setValues("rgb", e);
else if (void 0 !== e.l || void 0 !== e.lightness) this.setValues("hsl", e);
else if (void 0 !== e.v || void 0 !== e.value) this.setValues("hsv", e);
else if (void 0 !== e.w || void 0 !== e.whiteness) this.setValues("hwb", e);
else {
if (void 0 === e.c && void 0 === e.cyan) throw new Error("Unable to parse color from object " + JSON.stringify(t));
this.setValues("cmyk", e)
}
};
o.prototype = {
rgb: function() {
return this.setSpace("rgb", arguments)
},
hsl: function() {
return this.setSpace("hsl", arguments)
},
hsv: function() {
return this.setSpace("hsv", arguments)
},
hwb: function() {
return this.setSpace("hwb", arguments)
},
cmyk: function() {
return this.setSpace("cmyk", arguments)
},
rgbArray: function() {
return this.values.rgb
},
hslArray: function() {
return this.values.hsl
},
hsvArray: function() {
return this.values.hsv
},
hwbArray: function() {
var t = this.values;
return 1 !== t.alpha ? t.hwb.concat([t.alpha]) : t.hwb
},
cmykArray: function() {
return this.values.cmyk
},
rgbaArray: function() {
var t = this.values;
return t.rgb.concat([t.alpha])
},
hslaArray: function() {
var t = this.values;
return t.hsl.concat([t.alpha])
},
alpha: function(t) {
return void 0 === t ? this.values.alpha : (this.setValues("alpha", t), this)
},
red: function(t) {
return this.setChannel("rgb", 0, t)
},
green: function(t) {
return this.setChannel("rgb", 1, t)
},
blue: function(t) {
return this.setChannel("rgb", 2, t)
},
hue: function(t) {
return t && (t %= 360, t = 0 > t ? 360 + t : t), this.setChannel("hsl", 0, t)
},
saturation: function(t) {
return this.setChannel("hsl", 1, t)
},
lightness: function(t) {
return this.setChannel("hsl", 2, t)
},
saturationv: function(t) {
return this.setChannel("hsv", 1, t)
},
whiteness: function(t) {
return this.setChannel("hwb", 1, t)
},
blackness: function(t) {
return this.setChannel("hwb", 2, t)
},
value: function(t) {
return this.setChannel("hsv", 2, t)
},
cyan: function(t) {
return this.setChannel("cmyk", 0, t)
},
magenta: function(t) {
return this.setChannel("cmyk", 1, t)
},
yellow: function(t) {
return this.setChannel("cmyk", 2, t)
},
black: function(t) {
return this.setChannel("cmyk", 3, t)
},
hexString: function() {
return n.hexString(this.values.rgb)
},
rgbString: function() {
return n.rgbString(this.values.rgb, this.values.alpha)
},
rgbaString: function() {
return n.rgbaString(this.values.rgb, this.values.alpha)
},
percentString: function() {
return n.percentString(this.values.rgb, this.values.alpha)
},
hslString: function() {
return n.hslString(this.values.hsl, this.values.alpha)
},
hslaString: function() {
return n.hslaString(this.values.hsl, this.values.alpha)
},
hwbString: function() {
return n.hwbString(this.values.hwb, this.values.alpha)
},
keyword: function() {
return n.keyword(this.values.rgb, this.values.alpha)
},
rgbNumber: function() {
var t = this.values.rgb;
return t[0] << 16 | t[1] << 8 | t[2]
},
luminosity: function() {
for (var t = this.values.rgb, e = [], a = 0; a < t.length; a++) {
var i = t[a] / 255;
e[a] = .03928 >= i ? i / 12.92 : Math.pow((i + .055) / 1.055, 2.4)
}
return .2126 * e[0] + .7152 * e[1] + .0722 * e[2]
},
contrast: function(t) {
var e = this.luminosity(),
a = t.luminosity();
return e > a ? (e + .05) / (a + .05) : (a + .05) / (e + .05)
},
level: function(t) {
var e = this.contrast(t);
return e >= 7.1 ? "AAA" : e >= 4.5 ? "AA" : ""
},
dark: function() {
var t = this.values.rgb,
e = (299 * t[0] + 587 * t[1] + 114 * t[2]) / 1e3;
return 128 > e
},
light: function() {
return !this.dark()
},
negate: function() {
for (var t = [], e = 0; 3 > e; e++) t[e] = 255 - this.values.rgb[e];
return this.setValues("rgb", t), this
},
lighten: function(t) {
var e = this.values.hsl;
return e[2] += e[2] * t, this.setValues("hsl", e), this
},
darken: function(t) {
var e = this.values.hsl;
return e[2] -= e[2] * t, this.setValues("hsl", e), this
},
saturate: function(t) {
var e = this.values.hsl;
return e[1] += e[1] * t, this.setValues("hsl", e), this
},
desaturate: function(t) {
var e = this.values.hsl;
return e[1] -= e[1] * t, this.setValues("hsl", e), this
},
whiten: function(t) {
var e = this.values.hwb;
return e[1] += e[1] * t, this.setValues("hwb", e), this
},
blacken: function(t) {
var e = this.values.hwb;
return e[2] += e[2] * t, this.setValues("hwb", e), this
},
greyscale: function() {
var t = this.values.rgb,
e = .3 * t[0] + .59 * t[1] + .11 * t[2];
return this.setValues("rgb", [e, e, e]), this
},
clearer: function(t) {
var e = this.values.alpha;
return this.setValues("alpha", e - e * t), this
},
opaquer: function(t) {
var e = this.values.alpha;
return this.setValues("alpha", e + e * t), this
},
rotate: function(t) {
var e = this.values.hsl,
a = (e[0] + t) % 360;
return e[0] = 0 > a ? 360 + a : a, this.setValues("hsl", e), this
},
mix: function(t, e) {
var a = this,
i = t,
n = void 0 === e ? .5 : e,
o = 2 * n - 1,
r = a.alpha() - i.alpha(),
l = ((o * r === -1 ? o : (o + r) / (1 + o * r)) + 1) / 2,
s = 1 - l;
return this.rgb(l * a.red() + s * i.red(), l * a.green() + s * i.green(), l * a.blue() + s * i.blue()).alpha(a.alpha() * n + i.alpha() * (1 - n))
},
toJSON: function() {
return this.rgb()
},
clone: function() {
var t, e, a = new o,
i = this.values,
n = a.values;
for (var r in i) i.hasOwnProperty(r) && (t = i[r], e = {}.toString.call(t), "[object Array]" === e ? n[r] = t.slice(0) : "[object Number]" === e ? n[r] = t : console.error("unexpected color value:", t));
return a
}
}, o.prototype.spaces = {
rgb: ["red", "green", "blue"],
hsl: ["hue", "saturation", "lightness"],
hsv: ["hue", "saturation", "value"],
hwb: ["hue", "whiteness", "blackness"],
cmyk: ["cyan", "magenta", "yellow", "black"]
}, o.prototype.maxes = {
rgb: [255, 255, 255],
hsl: [360, 100, 100],
hsv: [360, 100, 100],
hwb: [360, 100, 100],
cmyk: [100, 100, 100, 100]
}, o.prototype.getValues = function(t) {
for (var e = this.values, a = {}, i = 0; i < t.length; i++) a[t.charAt(i)] = e[t][i];
return 1 !== e.alpha && (a.a = e.alpha), a
}, o.prototype.setValues = function(t, e) {
var a, n = this.values,
o = this.spaces,
r = this.maxes,
l = 1;
if ("alpha" === t) l = e;
else if (e.length) n[t] = e.slice(0, t.length), l = e[t.length];
else if (void 0 !== e[t.charAt(0)]) {
for (a = 0; a < t.length; a++) n[t][a] = e[t.charAt(a)];
l = e.a
} else if (void 0 !== e[o[t][0]]) {
var s = o[t];
for (a = 0; a < t.length; a++) n[t][a] = e[s[a]];
l = e.alpha
}
if (n.alpha = Math.max(0, Math.min(1, void 0 === l ? n.alpha : l)), "alpha" === t) return !1;
var d;
for (a = 0; a < t.length; a++) d = Math.max(0, Math.min(r[t][a], n[t][a])), n[t][a] = Math.round(d);
for (var u in o) u !== t && (n[u] = i[t][u](n[t]));
return !0
}, o.prototype.setSpace = function(t, e) {
var a = e[0];
return void 0 === a ? this.getValues(t) : ("number" == typeof a && (a = Array.prototype.slice.call(e)), this.setValues(t, a), this)
}, o.prototype.setChannel = function(t, e, a) {
var i = this.values[t];
return void 0 === a ? i[e] : a === i[e] ? this : (i[e] = a, this.setValues(t, i), this)
}, "undefined" != typeof window && (window.Color = o), e.exports = o
}, {
2: 2,
5: 5
}],
4: [function(t, e, a) {
function i(t) {
var e, a, i, n = t[0] / 255,
o = t[1] / 255,
r = t[2] / 255,
l = Math.min(n, o, r),
s = Math.max(n, o, r),
d = s - l;
return s == l ? e = 0 : n == s ? e = (o - r) / d : o == s ? e = 2 + (r - n) / d : r == s && (e = 4 + (n - o) / d), e = Math.min(60 * e, 360), 0 > e && (e += 360), i = (l + s) / 2, a = s == l ? 0 : .5 >= i ? d / (s + l) : d / (2 - s - l), [e, 100 * a, 100 * i]
}
function n(t) {
var e, a, i, n = t[0],
o = t[1],
r = t[2],
l = Math.min(n, o, r),
s = Math.max(n, o, r),
d = s - l;
return a = 0 == s ? 0 : d / s * 1e3 / 10, s == l ? e = 0 : n == s ? e = (o - r) / d : o == s ? e = 2 + (r - n) / d : r == s && (e = 4 + (n - o) / d), e = Math.min(60 * e, 360), 0 > e && (e += 360), i = s / 255 * 1e3 / 10, [e, a, i]
}
function o(t) {
var e = t[0],
a = t[1],
n = t[2],
o = i(t)[0],
r = 1 / 255 * Math.min(e, Math.min(a, n)),
n = 1 - 1 / 255 * Math.max(e, Math.max(a, n));
return [o, 100 * r, 100 * n]
}
function l(t) {
var e, a, i, n, o = t[0] / 255,
r = t[1] / 255,
l = t[2] / 255;
return n = Math.min(1 - o, 1 - r, 1 - l), e = (1 - o - n) / (1 - n) || 0, a = (1 - r - n) / (1 - n) || 0, i = (1 - l - n) / (1 - n) || 0, [100 * e, 100 * a, 100 * i, 100 * n]
}
function s(t) {
return G[JSON.stringify(t)]
}
function d(t) {
var e = t[0] / 255,
a = t[1] / 255,
i = t[2] / 255;
e = e > .04045 ? Math.pow((e + .055) / 1.055, 2.4) : e / 12.92, a = a > .04045 ? Math.pow((a + .055) / 1.055, 2.4) : a / 12.92, i = i > .04045 ? Math.pow((i + .055) / 1.055, 2.4) : i / 12.92;
var n = .4124 * e + .3576 * a + .1805 * i,
o = .2126 * e + .7152 * a + .0722 * i,
r = .0193 * e + .1192 * a + .9505 * i;
return [100 * n, 100 * o, 100 * r]
}
function u(t) {
var e, a, i, n = d(t),
o = n[0],
r = n[1],
l = n[2];
return o /= 95.047, r /= 100, l /= 108.883, o = o > .008856 ? Math.pow(o, 1 / 3) : 7.787 * o + 16 / 116, r = r > .008856 ? Math.pow(r, 1 / 3) : 7.787 * r + 16 / 116, l = l > .008856 ? Math.pow(l, 1 / 3) : 7.787 * l + 16 / 116, e = 116 * r - 16, a = 500 * (o - r), i = 200 * (r - l), [e, a, i]
}
function c(t) {
return W(u(t))
}
function h(t) {
var e, a, i, n, o, r = t[0] / 360,
l = t[1] / 100,
s = t[2] / 100;
if (0 == l) return o = 255 * s, [o, o, o];
a = .5 > s ? s * (1 + l) : s + l - s * l, e = 2 * s - a, n = [0, 0, 0];
for (var d = 0; 3 > d; d++) i = r + 1 / 3 * -(d - 1), 0 > i && i++, i > 1 && i--, o = 1 > 6 * i ? e + 6 * (a - e) * i : 1 > 2 * i ? a : 2 > 3 * i ? e + (a - e) * (2 / 3 - i) * 6 : e, n[d] = 255 * o;
return n
}
function f(t) {
var e, a, i = t[0],
n = t[1] / 100,
o = t[2] / 100;
return 0 === o ? [0, 0, 0] : (o *= 2, n *= 1 >= o ? o : 2 - o, a = (o + n) / 2, e = 2 * n / (o + n), [i, 100 * e, 100 * a])
}
function p(t) {
return o(h(t))
}
function m(t) {
return l(h(t))
}
function v(t) {
return s(h(t))
}
function x(t) {
var e = t[0] / 60,
a = t[1] / 100,
i = t[2] / 100,
n = Math.floor(e) % 6,
o = e - Math.floor(e),
r = 255 * i * (1 - a),
l = 255 * i * (1 - a * o),
s = 255 * i * (1 - a * (1 - o)),
i = 255 * i;
switch (n) {
case 0:
return [i, s, r];
case 1:
return [l, i, r];
case 2:
return [r, i, s];
case 3:
return [r, l, i];
case 4:
return [s, r, i];
case 5:
return [i, r, l]
}
}
function y(t) {
var e, a, i = t[0],
n = t[1] / 100,
o = t[2] / 100;
return a = (2 - n) * o, e = n * o, e /= 1 >= a ? a : 2 - a, e = e || 0, a /= 2, [i, 100 * e, 100 * a]
}
function k(t) {
return o(x(t))
}
function S(t) {
return l(x(t))
}
function w(t) {
return s(x(t))
}
function M(t) {
var e, a, i, n, o = t[0] / 360,
l = t[1] / 100,
s = t[2] / 100,
d = l + s;
switch (d > 1 && (l /= d, s /= d), e = Math.floor(6 * o), a = 1 - s, i = 6 * o - e, 0 != (1 & e) && (i = 1 - i), n = l + i * (a - l), e) {
default:
case 6:
case 0:
r = a, g = n, b = l;
break;
case 1:
r = n, g = a, b = l;
break;
case 2:
r = l, g = a, b = n;
break;
case 3:
r = l, g = n, b = a;
break;
case 4:
r = n, g = l, b = a;
break;
case 5:
r = a, g = l, b = n
}
return [255 * r, 255 * g, 255 * b]
}
function C(t) {
return i(M(t))
}
function D(t) {
return n(M(t))
}
function I(t) {
return l(M(t))
}
function A(t) {
return s(M(t))
}
function T(t) {
var e, a, i, n = t[0] / 100,
o = t[1] / 100,
r = t[2] / 100,
l = t[3] / 100;
return e = 1 - Math.min(1, n * (1 - l) + l), a = 1 - Math.min(1, o * (1 - l) + l), i = 1 - Math.min(1, r * (1 - l) + l), [255 * e, 255 * a, 255 * i]
}
function P(t) {
return i(T(t))
}
function F(t) {
return n(T(t))
}
function _(t) {
return o(T(t))
}
function R(t) {
return s(T(t))
}
function V(t) {
var e, a, i, n = t[0] / 100,
o = t[1] / 100,
r = t[2] / 100;
return e = 3.2406 * n + -1.5372 * o + r * -.4986, a = n * -.9689 + 1.8758 * o + .0415 * r, i = .0557 * n + o * -.204 + 1.057 * r, e = e > .0031308 ? 1.055 * Math.pow(e, 1 / 2.4) - .055 : e = 12.92 * e, a = a > .0031308 ? 1.055 * Math.pow(a, 1 / 2.4) - .055 : a = 12.92 * a, i = i > .0031308 ? 1.055 * Math.pow(i, 1 / 2.4) - .055 : i = 12.92 * i, e = Math.min(Math.max(0, e), 1), a = Math.min(Math.max(0, a), 1), i = Math.min(Math.max(0, i), 1), [255 * e, 255 * a, 255 * i]
}
function L(t) {
var e, a, i, n = t[0],
o = t[1],
r = t[2];
return n /= 95.047, o /= 100, r /= 108.883, n = n > .008856 ? Math.pow(n, 1 / 3) : 7.787 * n + 16 / 116, o = o > .008856 ? Math.pow(o, 1 / 3) : 7.787 * o + 16 / 116, r = r > .008856 ? Math.pow(r, 1 / 3) : 7.787 * r + 16 / 116, e = 116 * o - 16, a = 500 * (n - o), i = 200 * (o - r), [e, a, i]
}
function O(t) {
return W(L(t))
}
function B(t) {
var e, a, i, n, o = t[0],
r = t[1],
l = t[2];
return 8 >= o ? (a = 100 * o / 903.3, n = 7.787 * (a / 100) + 16 / 116) : (a = 100 * Math.pow((o + 16) / 116, 3), n = Math.pow(a / 100, 1 / 3)), e = .008856 >= e / 95.047 ? e = 95.047 * (r / 500 + n - 16 / 116) / 7.787 : 95.047 * Math.pow(r / 500 + n, 3), i = .008859 >= i / 108.883 ? i = 108.883 * (n - l / 200 - 16 / 116) / 7.787 : 108.883 * Math.pow(n - l / 200, 3), [e, a, i]
}
function W(t) {
var e, a, i, n = t[0],
o = t[1],
r = t[2];
return e = Math.atan2(r, o), a = 360 * e / 2 / Math.PI, 0 > a && (a += 360), i = Math.sqrt(o * o + r * r), [n, i, a]
}
function z(t) {
return V(B(t))
}
function N(t) {
var e, a, i, n = t[0],
o = t[1],
r = t[2];
return i = r / 360 * 2 * Math.PI, e = o * Math.cos(i), a = o * Math.sin(i), [n, e, a]
}
function E(t) {
return B(N(t))
}
function H(t) {
return z(N(t))
}
function U(t) {
return Z[t]
}
function j(t) {
return i(U(t))
}
function q(t) {
return n(U(t))
}
function Y(t) {
return o(U(t))
}
function X(t) {
return l(U(t))
}
function K(t) {
return u(U(t))
}
function J(t) {
return d(U(t))
}
e.exports = {
rgb2hsl: i,
rgb2hsv: n,
rgb2hwb: o,
rgb2cmyk: l,
rgb2keyword: s,
rgb2xyz: d,
rgb2lab: u,
rgb2lch: c,
hsl2rgb: h,
hsl2hsv: f,
hsl2hwb: p,
hsl2cmyk: m,
hsl2keyword: v,
hsv2rgb: x,
hsv2hsl: y,
hsv2hwb: k,
hsv2cmyk: S,
hsv2keyword: w,
hwb2rgb: M,
hwb2hsl: C,
hwb2hsv: D,
hwb2cmyk: I,
hwb2keyword: A,
cmyk2rgb: T,
cmyk2hsl: P,
cmyk2hsv: F,
cmyk2hwb: _,
cmyk2keyword: R,
keyword2rgb: U,
keyword2hsl: j,
keyword2hsv: q,
keyword2hwb: Y,
keyword2cmyk: X,
keyword2lab: K,
keyword2xyz: J,
xyz2rgb: V,
xyz2lab: L,
xyz2lch: O,
lab2xyz: B,
lab2rgb: z,
lab2lch: W,
lch2lab: N,
lch2xyz: E,
lch2rgb: H
};
var Z = {
aliceblue: [240, 248, 255],
antiquewhite: [250, 235, 215],
aqua: [0, 255, 255],
aquamarine: [127, 255, 212],
azure: [240, 255, 255],
beige: [245, 245, 220],
bisque: [255, 228, 196],
black: [0, 0, 0],
blanchedalmond: [255, 235, 205],
blue: [0, 0, 255],
blueviolet: [138, 43, 226],
brown: [165, 42, 42],
burlywood: [222, 184, 135],
cadetblue: [95, 158, 160],
chartreuse: [127, 255, 0],
chocolate: [210, 105, 30],
coral: [255, 127, 80],
cornflowerblue: [100, 149, 237],
cornsilk: [255, 248, 220],
crimson: [220, 20, 60],
cyan: [0, 255, 255],
darkblue: [0, 0, 139],
darkcyan: [0, 139, 139],
darkgoldenrod: [184, 134, 11],
darkgray: [169, 169, 169],
darkgreen: [0, 100, 0],
darkgrey: [169, 169, 169],
darkkhaki: [189, 183, 107],
darkmagenta: [139, 0, 139],
darkolivegreen: [85, 107, 47],
darkorange: [255, 140, 0],
darkorchid: [153, 50, 204],
darkred: [139, 0, 0],
darksalmon: [233, 150, 122],
darkseagreen: [143, 188, 143],
darkslateblue: [72, 61, 139],
darkslategray: [47, 79, 79],
darkslategrey: [47, 79, 79],
darkturquoise: [0, 206, 209],
darkviolet: [148, 0, 211],
deeppink: [255, 20, 147],
deepskyblue: [0, 191, 255],
dimgray: [105, 105, 105],
dimgrey: [105, 105, 105],
dodgerblue: [30, 144, 255],
firebrick: [178, 34, 34],
floralwhite: [255, 250, 240],
forestgreen: [34, 139, 34],
fuchsia: [255, 0, 255],
gainsboro: [220, 220, 220],
ghostwhite: [248, 248, 255],
gold: [255, 215, 0],
goldenrod: [218, 165, 32],
gray: [128, 128, 128],
green: [0, 128, 0],
greenyellow: [173, 255, 47],
grey: [128, 128, 128],
honeydew: [240, 255, 240],
hotpink: [255, 105, 180],
indianred: [205, 92, 92],
indigo: [75, 0, 130],
ivory: [255, 255, 240],
khaki: [240, 230, 140],
lavender: [230, 230, 250],
lavenderblush: [255, 240, 245],
lawngreen: [124, 252, 0],
lemonchiffon: [255, 250, 205],
lightblue: [173, 216, 230],
lightcoral: [240, 128, 128],
lightcyan: [224, 255, 255],
lightgoldenrodyellow: [250, 250, 210],
lightgray: [211, 211, 211],
lightgreen: [144, 238, 144],
lightgrey: [211, 211, 211],
lightpink: [255, 182, 193],
lightsalmon: [255, 160, 122],
lightseagreen: [32, 178, 170],
lightskyblue: [135, 206, 250],
lightslategray: [119, 136, 153],
lightslategrey: [119, 136, 153],
lightsteelblue: [176, 196, 222],
lightyellow: [255, 255, 224],
lime: [0, 255, 0],
limegreen: [50, 205, 50],
linen: [250, 240, 230],
magenta: [255, 0, 255],
maroon: [128, 0, 0],
mediumaquamarine: [102, 205, 170],
mediumblue: [0, 0, 205],
mediumorchid: [186, 85, 211],
mediumpurple: [147, 112, 219],
mediumseagreen: [60, 179, 113],
mediumslateblue: [123, 104, 238],
mediumspringgreen: [0, 250, 154],
mediumturquoise: [72, 209, 204],
mediumvioletred: [199, 21, 133],
midnightblue: [25, 25, 112],
mintcream: [245, 255, 250],
mistyrose: [255, 228, 225],
moccasin: [255, 228, 181],
navajowhite: [255, 222, 173],
navy: [0, 0, 128],
oldlace: [253, 245, 230],
olive: [128, 128, 0],
olivedrab: [107, 142, 35],
orange: [255, 165, 0],
orangered: [255, 69, 0],
orchid: [218, 112, 214],
palegoldenrod: [238, 232, 170],
palegreen: [152, 251, 152],
paleturquoise: [175, 238, 238],
palevioletred: [219, 112, 147],
papayawhip: [255, 239, 213],
peachpuff: [255, 218, 185],
peru: [205, 133, 63],
pink: [255, 192, 203],
plum: [221, 160, 221],
powderblue: [176, 224, 230],
purple: [128, 0, 128],
rebeccapurple: [102, 51, 153],
red: [255, 0, 0],
rosybrown: [188, 143, 143],
royalblue: [65, 105, 225],
saddlebrown: [139, 69, 19],
salmon: [250, 128, 114],
sandybrown: [244, 164, 96],
seagreen: [46, 139, 87],
seashell: [255, 245, 238],
sienna: [160, 82, 45],
silver: [192, 192, 192],
skyblue: [135, 206, 235],
slateblue: [106, 90, 205],
slategray: [112, 128, 144],
slategrey: [112, 128, 144],
snow: [255, 250, 250],
springgreen: [0, 255, 127],
steelblue: [70, 130, 180],
tan: [210, 180, 140],
teal: [0, 128, 128],
thistle: [216, 191, 216],
tomato: [255, 99, 71],
turquoise: [64, 224, 208],
violet: [238, 130, 238],
wheat: [245, 222, 179],
white: [255, 255, 255],
whitesmoke: [245, 245, 245],
yellow: [255, 255, 0],
yellowgreen: [154, 205, 50]
},
G = {};
for (var Q in Z) G[JSON.stringify(Z[Q])] = Q
}, {}],
5: [function(t, e, a) {
var i = t(4),
n = function() {
return new d
};
for (var o in i) {
n[o + "Raw"] = function(t) {
return function(e) {
return "number" == typeof e && (e = Array.prototype.slice.call(arguments)), i[t](e)
}
}(o);
var r = /(w+)2(w+)/.exec(o),
l = r[1],
s = r[2];
n[l] = n[l] || {}, n[l][s] = n[o] = function(t) {
return function(e) {
"number" == typeof e && (e = Array.prototype.slice.call(arguments));
var a = i[t](e);
if ("string" == typeof a || void 0 === a) return a;
for (var n = 0; n < a.length; n++) a[n] = Math.round(a[n]);
return a
}
}(o)
}
var d = function() {
this.convs = {}
};
d.prototype.routeSpace = function(t, e) {
var a = e[0];
return void 0 === a ? this.getValues(t) : ("number" == typeof a && (a = Array.prototype.slice.call(e)), this.setValues(t, a))
}, d.prototype.setValues = function(t, e) {
return this.space = t, this.convs = {}, this.convs[t] = e, this
}, d.prototype.getValues = function(t) {
var e = this.convs[t];
if (!e) {
var a = this.space,
i = this.convs[a];
e = n[a][t](i), this.convs[t] = e
}
return e
}, ["rgb", "hsl", "hsv", "cmyk", "keyword"].forEach(function(t) {
d.prototype[t] = function(e) {
return this.routeSpace(t, arguments)
}
}), e.exports = n
}, {
4: 4
}],
6: [function(t, e, a) {
e.exports = {
aliceblue: [240, 248, 255],
antiquewhite: [250, 235, 215],
aqua: [0, 255, 255],
aquamarine: [127, 255, 212],
azure: [240, 255, 255],
beige: [245, 245, 220],
bisque: [255, 228, 196],
black: [0, 0, 0],
blanchedalmond: [255, 235, 205],
blue: [0, 0, 255],
blueviolet: [138, 43, 226],
brown: [165, 42, 42],
burlywood: [222, 184, 135],
cadetblue: [95, 158, 160],
chartreuse: [127, 255, 0],
chocolate: [210, 105, 30],
coral: [255, 127, 80],
cornflowerblue: [100, 149, 237],
cornsilk: [255, 248, 220],
crimson: [220, 20, 60],
cyan: [0, 255, 255],
darkblue: [0, 0, 139],
darkcyan: [0, 139, 139],
darkgoldenrod: [184, 134, 11],
darkgray: [169, 169, 169],
darkgreen: [0, 100, 0],
darkgrey: [169, 169, 169],
darkkhaki: [189, 183, 107],
darkmagenta: [139, 0, 139],
darkolivegreen: [85, 107, 47],
darkorange: [255, 140, 0],
darkorchid: [153, 50, 204],
darkred: [139, 0, 0],
darksalmon: [233, 150, 122],
darkseagreen: [143, 188, 143],
darkslateblue: [72, 61, 139],
darkslategray: [47, 79, 79],
darkslategrey: [47, 79, 79],
darkturquoise: [0, 206, 209],
darkviolet: [148, 0, 211],
deeppink: [255, 20, 147],
deepskyblue: [0, 191, 255],
dimgray: [105, 105, 105],
dimgrey: [105, 105, 105],
dodgerblue: [30, 144, 255],
firebrick: [178, 34, 34],
floralwhite: [255, 250, 240],
forestgreen: [34, 139, 34],
fuchsia: [255, 0, 255],
gainsboro: [220, 220, 220],
ghostwhite: [248, 248, 255],
gold: [255, 215, 0],
goldenrod: [218, 165, 32],
gray: [128, 128, 128],
green: [0, 128, 0],
greenyellow: [173, 255, 47],
grey: [128, 128, 128],
honeydew: [240, 255, 240],
hotpink: [255, 105, 180],
indianred: [205, 92, 92],
indigo: [75, 0, 130],
ivory: [255, 255, 240],
khaki: [240, 230, 140],
lavender: [230, 230, 250],
lavenderblush: [255, 240, 245],
lawngreen: [124, 252, 0],
lemonchiffon: [255, 250, 205],
lightblue: [173, 216, 230],
lightcoral: [240, 128, 128],
lightcyan: [224, 255, 255],
lightgoldenrodyellow: [250, 250, 210],
lightgray: [211, 211, 211],
lightgreen: [144, 238, 144],
lightgrey: [211, 211, 211],
lightpink: [255, 182, 193],
lightsalmon: [255, 160, 122],
lightseagreen: [32, 178, 170],
lightskyblue: [135, 206, 250],
lightslategray: [119, 136, 153],
lightslategrey: [119, 136, 153],
lightsteelblue: [176, 196, 222],
lightyellow: [255, 255, 224],
lime: [0, 255, 0],
limegreen: [50, 205, 50],
linen: [250, 240, 230],
magenta: [255, 0, 255],
maroon: [128, 0, 0],
mediumaquamarine: [102, 205, 170],
mediumblue: [0, 0, 205],
mediumorchid: [186, 85, 211],
mediumpurple: [147, 112, 219],
mediumseagreen: [60, 179, 113],
mediumslateblue: [123, 104, 238],
mediumspringgreen: [0, 250, 154],
mediumturquoise: [72, 209, 204],
mediumvioletred: [199, 21, 133],
midnightblue: [25, 25, 112],
mintcream: [245, 255, 250],
mistyrose: [255, 228, 225],
moccasin: [255, 228, 181],
navajowhite: [255, 222, 173],
navy: [0, 0, 128],
oldlace: [253, 245, 230],
olive: [128, 128, 0],
olivedrab: [107, 142, 35],
orange: [255, 165, 0],
orangered: [255, 69, 0],
orchid: [218, 112, 214],
palegoldenrod: [238, 232, 170],
palegreen: [152, 251, 152],
paleturquoise: [175, 238, 238],
palevioletred: [219, 112, 147],
papayawhip: [255, 239, 213],
peachpuff: [255, 218, 185],
peru: [205, 133, 63],
pink: [255, 192, 203],
plum: [221, 160, 221],
powderblue: [176, 224, 230],
purple: [128, 0, 128],
rebeccapurple: [102, 51, 153],
red: [255, 0, 0],
rosybrown: [188, 143, 143],
royalblue: [65, 105, 225],
saddlebrown: [139, 69, 19],
salmon: [250, 128, 114],
sandybrown: [244, 164, 96],
seagreen: [46, 139, 87],
seashell: [255, 245, 238],
sienna: [160, 82, 45],
silver: [192, 192, 192],
skyblue: [135, 206, 235],
slateblue: [106, 90, 205],
slategray: [112, 128, 144],
slategrey: [112, 128, 144],
snow: [255, 250, 250],
springgreen: [0, 255, 127],
steelblue: [70, 130, 180],
tan: [210, 180, 140],
teal: [0, 128, 128],
thistle: [216, 191, 216],
tomato: [255, 99, 71],
turquoise: [64, 224, 208],
violet: [238, 130, 238],
wheat: [245, 222, 179],
white: [255, 255, 255],
whitesmoke: [245, 245, 245],
yellow: [255, 255, 0],
yellowgreen: [154, 205, 50]
}
}, {}],
7: [function(t, e, a) {
var i = t(28)();
t(26)(i), t(22)(i), t(25)(i), t(21)(i), t(23)(i), t(24)(i), t(29)(i), t(33)(i), t(31)(i), t(34)(i), t(32)(i), t(35)(i), t(30)(i), t(27)(i), t(36)(i), t(37)(i), t(38)(i), t(39)(i), t(40)(i), t(43)(i), t(41)(i), t(42)(i), t(44)(i), t(45)(i), t(46)(i), t(15)(i), t(16)(i), t(17)(i), t(18)(i), t(19)(i), t(20)(i), t(8)(i), t(9)(i), t(10)(i), t(11)(i), t(12)(i), t(13)(i), t(14)(i), window.Chart = e.exports = i
}, {
10: 10,
11: 11,
12: 12,
13: 13,
14: 14,
15: 15,
16: 16,
17: 17,
18: 18,
19: 19,
20: 20,
21: 21,
22: 22,
23: 23,
24: 24,
25: 25,
26: 26,
27: 27,
28: 28,
29: 29,
30: 30,
31: 31,
32: 32,
33: 33,
34: 34,
35: 35,
36: 36,
37: 37,
38: 38,
39: 39,
40: 40,
41: 41,
42: 42,
43: 43,
44: 44,
45: 45,
46: 46,
8: 8,
9: 9
}],
8: [function(t, e, a) {
"use strict";
e.exports = function(t) {
t.Bar = function(e, a) {
return a.type = "bar", new t(e, a)
}
}
}, {}],
9: [function(t, e, a) {
"use strict";
e.exports = function(t) {
t.Bubble = function(e, a) {
return a.type = "bubble", new t(e, a)
}
}
}, {}],
10: [function(t, e, a) {
"use strict";
e.exports = function(t) {
t.Doughnut = function(e, a) {
return a.type = "doughnut", new t(e, a)
}
}
}, {}],
11: [function(t, e, a) {
"use strict";
e.exports = function(t) {
t.Line = function(e, a) {
return a.type = "line", new t(e, a)
}
}
}, {}],
12: [function(t, e, a) {
"use strict";
e.exports = function(t) {
t.PolarArea = function(e, a) {
return a.type = "polarArea", new t(e, a)
}
}
}, {}],
13: [function(t, e, a) {
"use strict";
e.exports = function(t) {
t.Radar = function(e, a) {
return a.type = "radar", new t(e, a)
}
}
}, {}],
14: [function(t, e, a) {
"use strict";
e.exports = function(t) {
var e = {
hover: {
mode: "single"
},
scales: {
xAxes: [{
type: "linear",
position: "bottom",
id: "x-axis-1"
}],
yAxes: [{
type: "linear",
position: "left",
id: "y-axis-1"
}]
},
tooltips: {
callbacks: {
title: function() {
return ""
},
label: function(t) {
return "(" + t.xLabel + ", " + t.yLabel + ")"
}
}
}
};
t.defaults.scatter = e, t.controllers.scatter = t.controllers.line, t.Scatter = function(e, a) {
return a.type = "scatter", new t(e, a)
}
}
}, {}],
15: [function(t, e, a) {
"use strict";
e.exports = function(t) {
var e = t.helpers;
t.defaults.bar = {
hover: {
mode: "label"
},
scales: {
xAxes: [{
type: "category",
categoryPercentage: .8,
barPercentage: .9,
gridLines: {
offsetGridLines: !0
}
}],
yAxes: [{
type: "linear"
}]
}
}, t.controllers.bar = t.DatasetController.extend({
dataElementType: t.elements.Rectangle,
initialize: function(e, a) {
t.DatasetController.prototype.initialize.call(this, e, a), this.getMeta().bar = !0
},
getBarCount: function() {
var t = this,
a = 0;
return e.each(t.chart.data.datasets, function(e, i) {
var n = t.chart.getDatasetMeta(i);
n.bar && t.chart.isDatasetVisible(i) && ++a
}, t), a
},
update: function(t) {
var a = this;
e.each(a.getMeta().data, function(e, i) {
a.updateElement(e, i, t)
}, a)
},
updateElement: function(t, a, i) {
var n = this,
o = n.getMeta(),
r = n.getScaleForId(o.xAxisID),
l = n.getScaleForId(o.yAxisID),
s = l.getBasePixel(),
d = n.chart.options.elements.rectangle,
u = t.custom || {},
c = n.getDataset();
t._xScale = r, t._yScale = l, t._datasetIndex = n.index, t._index = a;
var h = n.getRuler(a);
t._model = {
x: n.calculateBarX(a, n.index, h),
y: i ? s : n.calculateBarY(a, n.index),
label: n.chart.data.labels[a],
datasetLabel: c.label,
base: i ? s : n.calculateBarBase(n.index, a),
width: n.calculateBarWidth(h),
backgroundColor: u.backgroundColor ? u.backgroundColor : e.getValueAtIndexOrDefault(c.backgroundColor, a, d.backgroundColor),
borderSkipped: u.borderSkipped ? u.borderSkipped : d.borderSkipped,
borderColor: u.borderColor ? u.borderColor : e.getValueAtIndexOrDefault(c.borderColor, a, d.borderColor),
borderWidth: u.borderWidth ? u.borderWidth : e.getValueAtIndexOrDefault(c.borderWidth, a, d.borderWidth)
}, t.pivot()
},
calculateBarBase: function(t, e) {
var a = this,
i = a.getMeta(),
n = a.getScaleForId(i.yAxisID),
o = 0;
if (n.options.stacked) {
for (var r = a.chart, l = r.data.datasets, s = Number(l[t].data[e]), d = 0; t > d; d++) {
var u = l[d],
c = r.getDatasetMeta(d);
if (c.bar && c.yAxisID === n.id && r.isDatasetVisible(d)) {
var h = Number(u.data[e]);
o += 0 > s ? Math.min(h, 0) : Math.max(h, 0)
}
}
return n.getPixelForValue(o)
}
return n.getBasePixel()
},
getRuler: function(t) {
var e, a = this,
i = a.getMeta(),
n = a.getScaleForId(i.xAxisID),
o = a.getBarCount();
e = "category" === n.options.type ? n.getPixelForTick(t + 1) - n.getPixelForTick(t) : n.width / n.ticks.length;
var r = e * n.options.categoryPercentage,
l = (e - e * n.options.categoryPercentage) / 2,
s = r / o;
if (n.ticks.length !== a.chart.data.labels.length) {
var d = n.ticks.length / a.chart.data.labels.length;
s *= d
}
var u = s * n.options.barPercentage,
c = s - s * n.options.barPercentage;
return {
datasetCount: o,
tickWidth: e,
categoryWidth: r,
categorySpacing: l,
fullBarWidth: s,
barWidth: u,
barSpacing: c
}
},
calculateBarWidth: function(t) {
var e = this.getScaleForId(this.getMeta().xAxisID);
return e.options.barThickness ? e.options.barThickness : e.options.stacked ? t.categoryWidth : t.barWidth
},
getBarIndex: function(t) {
var e, a, i = 0;
for (a = 0; t > a; ++a) e = this.chart.getDatasetMeta(a), e.bar && this.chart.isDatasetVisible(a) && ++i;
return i
},
calculateBarX: function(t, e, a) {
var i = this,
n = i.getMeta(),
o = i.getScaleForId(n.xAxisID),
r = i.getBarIndex(e),
l = o.getPixelForValue(null, t, e, i.chart.isCombo);
return l -= i.chart.isCombo ? a.tickWidth / 2 : 0, o.options.stacked ? l + a.categoryWidth / 2 + a.categorySpacing : l + a.barWidth / 2 + a.categorySpacing + a.barWidth * r + a.barSpacing / 2 + a.barSpacing * r
},
calculateBarY: function(t, e) {
var a = this,
i = a.getMeta(),
n = a.getScaleForId(i.yAxisID),
o = Number(a.getDataset().data[t]);
if (n.options.stacked) {
for (var r = 0, l = 0, s = 0; e > s; s++) {
var d = a.chart.data.datasets[s],
u = a.chart.getDatasetMeta(s);
if (u.bar && u.yAxisID === n.id && a.chart.isDatasetVisible(s)) {
var c = Number(d.data[t]);
0 > c ? l += c || 0 : r += c || 0
}
}
return 0 > o ? n.getPixelForValue(l + o) : n.getPixelForValue(r + o)
}
return n.getPixelForValue(o)
},
draw: function(t) {
var e, a, i = this,
n = t || 1,
o = i.getMeta().data,
r = i.getDataset();
for (e = 0, a = o.length; a > e; ++e) {
var l = r.data[e];
null === l || void 0 === l || isNaN(l) || o[e].transition(n).draw()
}
},
setHoverStyle: function(t) {
var a = this.chart.data.datasets[t._datasetIndex],
i = t._index,
n = t.custom || {},
o = t._model;
o.backgroundColor = n.hoverBackgroundColor ? n.hoverBackgroundColor : e.getValueAtIndexOrDefault(a.hoverBackgroundColor, i, e.getHoverColor(o.backgroundColor)), o.borderColor = n.hoverBorderColor ? n.hoverBorderColor : e.getValueAtIndexOrDefault(a.hoverBorderColor, i, e.getHoverColor(o.borderColor)), o.borderWidth = n.hoverBorderWidth ? n.hoverBorderWidth : e.getValueAtIndexOrDefault(a.hoverBorderWidth, i, o.borderWidth)
},
removeHoverStyle: function(t) {
var a = this.chart.data.datasets[t._datasetIndex],
i = t._index,
n = t.custom || {},
o = t._model,
r = this.chart.options.elements.rectangle;
o.backgroundColor = n.backgroundColor ? n.backgroundColor : e.getValueAtIndexOrDefault(a.backgroundColor, i, r.backgroundColor), o.borderColor = n.borderColor ? n.borderColor : e.getValueAtIndexOrDefault(a.borderColor, i, r.borderColor), o.borderWidth = n.borderWidth ? n.borderWidth : e.getValueAtIndexOrDefault(a.borderWidth, i, r.borderWidth)
}
}), t.defaults.horizontalBar = {
hover: {
mode: "label"
},
scales: {
xAxes: [{
type: "linear",
position: "bottom"
}],
yAxes: [{
position: "left",
type: "category",
categoryPercentage: .8,
barPercentage: .9,
gridLines: {
offsetGridLines: !0
}
}]
},
elements: {
rectangle: {
borderSkipped: "left"
}
},
tooltips: {
callbacks: {
title: function(t, e) {
var a = "";
return t.length > 0 && (t[0].yLabel ? a = t[0].yLabel : e.labels.length > 0 && t[0].index < e.labels.length && (a = e.labels[t[0].index])), a
},
label: function(t, e) {
var a = e.datasets[t.datasetIndex].label || "";
return a + ": " + t.xLabel
}
}
}
}, t.controllers.horizontalBar = t.controllers.bar.extend({
updateElement: function(t, a, i) {
var n = this,
o = n.getMeta(),
r = n.getScaleForId(o.xAxisID),
l = n.getScaleForId(o.yAxisID),
s = r.getBasePixel(),
d = t.custom || {},
u = n.getDataset(),
c = n.chart.options.elements.rectangle;
t._xScale = r, t._yScale = l, t._datasetIndex = n.index, t._index = a;
var h = n.getRuler(a);
t._model = {
x: i ? s : n.calculateBarX(a, n.index),
y: n.calculateBarY(a, n.index, h),
label: n.chart.data.labels[a],
datasetLabel: u.label,
base: i ? s : n.calculateBarBase(n.index, a),
height: n.calculateBarHeight(h),
backgroundColor: d.backgroundColor ? d.backgroundColor : e.getValueAtIndexOrDefault(u.backgroundColor, a, c.backgroundColor),
borderSkipped: d.borderSkipped ? d.borderSkipped : c.borderSkipped,
borderColor: d.borderColor ? d.borderColor : e.getValueAtIndexOrDefault(u.borderColor, a, c.borderColor),
borderWidth: d.borderWidth ? d.borderWidth : e.getValueAtIndexOrDefault(u.borderWidth, a, c.borderWidth)
}, t.draw = function() {
function t(t) {
return s[(u + t) % 4]
}
var e = this._chart.ctx,
a = this._view,
i = a.height / 2,
n = a.y - i,
o = a.y + i,
r = a.base - (a.base - a.x),
l = a.borderWidth / 2;
a.borderWidth && (n += l, o -= l, r += l), e.beginPath(), e.fillStyle = a.backgroundColor, e.strokeStyle = a.borderColor, e.lineWidth = a.borderWidth;
var s = [
[a.base, o],
[a.base, n],
[r, n],
[r, o]
],
d = ["bottom", "left", "top", "right"],
u = d.indexOf(a.borderSkipped, 0); - 1 === u && (u = 0), e.moveTo.apply(e, t(0));
for (var c = 1; 4 > c; c++) e.lineTo.apply(e, t(c));
e.fill(), a.borderWidth && e.stroke()
}, t.pivot()
},
calculateBarBase: function(t, e) {
var a = this,
i = a.getMeta(),
n = a.getScaleForId(i.xAxisID),
o = 0;
if (n.options.stacked) {
for (var r = a.chart, l = r.data.datasets, s = Number(l[t].data[e]), d = 0; t > d; d++) {
var u = l[d],
c = r.getDatasetMeta(d);
if (c.bar && c.xAxisID === n.id && r.isDatasetVisible(d)) {
var h = Number(u.data[e]);
o += 0 > s ? Math.min(h, 0) : Math.max(h, 0)
}
}
return n.getPixelForValue(o)
}
return n.getBasePixel()
},
getRuler: function(t) {
var e, a = this,
i = a.getMeta(),
n = a.getScaleForId(i.yAxisID),
o = a.getBarCount();
e = "category" === n.options.type ? n.getPixelForTick(t + 1) - n.getPixelForTick(t) : n.width / n.ticks.length;
var r = e * n.options.categoryPercentage,
l = (e - e * n.options.categoryPercentage) / 2,
s = r / o;
if (n.ticks.length !== a.chart.data.labels.length) {
var d = n.ticks.length / a.chart.data.labels.length;
s *= d
}
var u = s * n.options.barPercentage,
c = s - s * n.options.barPercentage;
return {
datasetCount: o,
tickHeight: e,
categoryHeight: r,
categorySpacing: l,
fullBarHeight: s,
barHeight: u,
barSpacing: c
}
},
calculateBarHeight: function(t) {
var e = this,
a = e.getScaleForId(e.getMeta().yAxisID);
return a.options.barThickness ? a.options.barThickness : a.options.stacked ? t.categoryHeight : t.barHeight
},
calculateBarX: function(t, e) {
var a = this,
i = a.getMeta(),
n = a.getScaleForId(i.xAxisID),
o = Number(a.getDataset().data[t]);
if (n.options.stacked) {
for (var r = 0, l = 0, s = 0; e > s; s++) {
var d = a.chart.data.datasets[s],
u = a.chart.getDatasetMeta(s);
if (u.bar && u.xAxisID === n.id && a.chart.isDatasetVisible(s)) {
var c = Number(d.data[t]);
0 > c ? l += c || 0 : r += c || 0
}
}
return 0 > o ? n.getPixelForValue(l + o) : n.getPixelForValue(r + o)
}
return n.getPixelForValue(o)
},
calculateBarY: function(t, e, a) {
var i = this,
n = i.getMeta(),
o = i.getScaleForId(n.yAxisID),
r = i.getBarIndex(e),
l = o.getPixelForValue(null, t, e, i.chart.isCombo);
return l -= i.chart.isCombo ? a.tickHeight / 2 : 0, o.options.stacked ? l + a.categoryHeight / 2 + a.categorySpacing : l + a.barHeight / 2 + a.categorySpacing + a.barHeight * r + a.barSpacing / 2 + a.barSpacing * r
}
})
}
}, {}],
16: [function(t, e, a) {
"use strict";
e.exports = function(t) {
var e = t.helpers;
t.defaults.bubble = {
hover: {
mode: "single"
},
scales: {
xAxes: [{
type: "linear",
position: "bottom",
id: "x-axis-0"
}],
yAxes: [{
type: "linear",
position: "left",
id: "y-axis-0"
}]
},
tooltips: {
callbacks: {
title: function() {
return ""
},
label: function(t, e) {
var a = e.datasets[t.datasetIndex].label || "",
i = e.datasets[t.datasetIndex].data[t.index];
return a + ": (" + t.xLabel + ", " + t.yLabel + ", " + i.r + ")"
}
}
}
}, t.controllers.bubble = t.DatasetController.extend({
dataElementType: t.elements.Point,
update: function(t) {
var a = this,
i = a.getMeta(),
n = i.data;
e.each(n, function(e, i) {
a.updateElement(e, i, t)
})
},
updateElement: function(a, i, n) {
var o = this,
r = o.getMeta(),
l = o.getScaleForId(r.xAxisID),
s = o.getScaleForId(r.yAxisID),
d = a.custom || {},
u = o.getDataset(),
c = u.data[i],
h = o.chart.options.elements.point,
f = o.index;
e.extend(a, {
_xScale: l,
_yScale: s,
_datasetIndex: f,
_index: i,
_model: {
x: n ? l.getPixelForDecimal(.5) : l.getPixelForValue("object" == typeof c ? c : NaN, i, f, o.chart.isCombo),
y: n ? s.getBasePixel() : s.getPixelForValue(c, i, f),
radius: n ? 0 : d.radius ? d.radius : o.getRadius(c),
hitRadius: d.hitRadius ? d.hitRadius : e.getValueAtIndexOrDefault(u.hitRadius, i, h.hitRadius)
}
}), t.DatasetController.prototype.removeHoverStyle.call(o, a, h);
var g = a._model;
g.skip = d.skip ? d.skip : isNaN(g.x) || isNaN(g.y), a.pivot()
},
getRadius: function(t) {
return t.r || this.chart.options.elements.point.radius
},
setHoverStyle: function(a) {
var i = this;
t.DatasetController.prototype.setHoverStyle.call(i, a);
var n = i.chart.data.datasets[a._datasetIndex],
o = a._index,
r = a.custom || {},
l = a._model;
l.radius = r.hoverRadius ? r.hoverRadius : e.getValueAtIndexOrDefault(n.hoverRadius, o, i.chart.options.elements.point.hoverRadius) + i.getRadius(n.data[o])
},
removeHoverStyle: function(e) {
var a = this;
t.DatasetController.prototype.removeHoverStyle.call(a, e, a.chart.options.elements.point);
var i = a.chart.data.datasets[e._datasetIndex].data[e._index],
n = e.custom || {},
o = e._model;
o.radius = n.radius ? n.radius : a.getRadius(i)
}
})
}
}, {}],
17: [function(t, e, a) {
"use strict";
e.exports = function(t) {
var e = t.helpers,
a = t.defaults;
a.doughnut = {
animation: {
animateRotate: !0,
animateScale: !1
},
aspectRatio: 1,
hover: {
mode: "single"
},
legendCallback: function(t) {
var e = [];
e.push('<ul class="' + t.id + '-legend">');
var a = t.data,
i = a.datasets,
n = a.labels;
if (i.length)
for (var o = 0; o < i[0].data.length; ++o) e.push('<li><span style="background-color:' + i[0].backgroundColor[o] + '"></span>'), n[o] && e.push(n[o]), e.push("</li>");
return e.push("</ul>"), e.join("")
},
legend: {
labels: {
generateLabels: function(t) {
var a = t.data;
return a.labels.length && a.datasets.length ? a.labels.map(function(i, n) {
var o = t.getDatasetMeta(0),
r = a.datasets[0],
l = o.data[n],
s = l && l.custom || {},
d = e.getValueAtIndexOrDefault,
u = t.options.elements.arc,
c = s.backgroundColor ? s.backgroundColor : d(r.backgroundColor, n, u.backgroundColor),
h = s.borderColor ? s.borderColor : d(r.borderColor, n, u.borderColor),
f = s.borderWidth ? s.borderWidth : d(r.borderWidth, n, u.borderWidth);
return {
text: i,
fillStyle: c,
strokeStyle: h,
lineWidth: f,
hidden: isNaN(r.data[n]) || o.data[n].hidden,
index: n
}
}) : []
}
},
onClick: function(t, e) {
var a, i, n, o = e.index,
r = this.chart;
for (a = 0, i = (r.data.datasets || []).length; i > a; ++a) n = r.getDatasetMeta(a), n.data[o] && (n.data[o].hidden = !n.data[o].hidden);
r.update()
}
},
cutoutPercentage: 50,
rotation: Math.PI * -.5,
circumference: 2 * Math.PI,
tooltips: {
callbacks: {
title: function() {
return ""
},
label: function(t, a) {
var i = a.labels[t.index],
n = ": " + a.datasets[t.datasetIndex].data[t.index];
return e.isArray(i) ? (i = i.slice(), i[0] += n) : i += n, i
}
}
}
}, a.pie = e.clone(a.doughnut), e.extend(a.pie, {
cutoutPercentage: 0
}), t.controllers.doughnut = t.controllers.pie = t.DatasetController.extend({
dataElementType: t.elements.Arc,
linkScales: e.noop,
getRingIndex: function(t) {
for (var e = 0, a = 0; t > a; ++a) this.chart.isDatasetVisible(a) && ++e;
return e
},
update: function(t) {
var a = this,
i = a.chart,
n = i.chartArea,
o = i.options,
r = o.elements.arc,
l = n.right - n.left - r.borderWidth,
s = n.bottom - n.top - r.borderWidth,
d = Math.min(l, s),
u = {
x: 0,
y: 0
},
c = a.getMeta(),
h = o.cutoutPercentage,
f = o.circumference;
if (f < 2 * Math.PI) {
var g = o.rotation % (2 * Math.PI);
g += 2 * Math.PI * (g >= Math.PI ? -1 : g < -Math.PI ? 1 : 0);
var p = g + f,
m = {
x: Math.cos(g),
y: Math.sin(g)
},
b = {
x: Math.cos(p),
y: Math.sin(p)
},
v = 0 >= g && p >= 0 || g <= 2 * Math.PI && 2 * Math.PI <= p,
x = g <= .5 * Math.PI && .5 * Math.PI <= p || g <= 2.5 * Math.PI && 2.5 * Math.PI <= p,
y = g <= -Math.PI && -Math.PI <= p || g <= Math.PI && Math.PI <= p,
k = g <= .5 * -Math.PI && .5 * -Math.PI <= p || g <= 1.5 * Math.PI && 1.5 * Math.PI <= p,
S = h / 100,
w = {
x: y ? -1 : Math.min(m.x * (m.x < 0 ? 1 : S), b.x * (b.x < 0 ? 1 : S)),
y: k ? -1 : Math.min(m.y * (m.y < 0 ? 1 : S), b.y * (b.y < 0 ? 1 : S))
},
M = {
x: v ? 1 : Math.max(m.x * (m.x > 0 ? 1 : S), b.x * (b.x > 0 ? 1 : S)),
y: x ? 1 : Math.max(m.y * (m.y > 0 ? 1 : S), b.y * (b.y > 0 ? 1 : S))
},
C = {
width: .5 * (M.x - w.x),
height: .5 * (M.y - w.y)
};
d = Math.min(l / C.width, s / C.height), u = {
x: (M.x + w.x) * -.5,
y: (M.y + w.y) * -.5
}
}
i.borderWidth = a.getMaxBorderWidth(c.data), i.outerRadius = Math.max((d - i.borderWidth) / 2, 0), i.innerRadius = Math.max(h ? i.outerRadius / 100 * h : 1, 0), i.radiusLength = (i.outerRadius - i.innerRadius) / i.getVisibleDatasetCount(), i.offsetX = u.x * i.outerRadius, i.offsetY = u.y * i.outerRadius, c.total = a.calculateTotal(), a.outerRadius = i.outerRadius - i.radiusLength * a.getRingIndex(a.index), a.innerRadius = a.outerRadius - i.radiusLength, e.each(c.data, function(e, i) {
a.updateElement(e, i, t)
})
},
updateElement: function(t, a, i) {
var n = this,
o = n.chart,
r = o.chartArea,
l = o.options,
s = l.animation,
d = (r.left + r.right) / 2,
u = (r.top + r.bottom) / 2,
c = l.rotation,
h = l.rotation,
f = n.getDataset(),
g = i && s.animateRotate ? 0 : t.hidden ? 0 : n.calculateCircumference(f.data[a]) * (l.circumference / (2 * Math.PI)),
p = i && s.animateScale ? 0 : n.innerRadius,
m = i && s.animateScale ? 0 : n.outerRadius,
b = e.getValueAtIndexOrDefault;
e.extend(t, {
_datasetIndex: n.index,
_index: a,
_model: {
x: d + o.offsetX,
y: u + o.offsetY,
startAngle: c,
endAngle: h,
circumference: g,
outerRadius: m,
innerRadius: p,
label: b(f.label, a, o.data.labels[a])
}
});
var v = t._model;
this.removeHoverStyle(t), i && s.animateRotate || (0 === a ? v.startAngle = l.rotation : v.startAngle = n.getMeta().data[a - 1]._model.endAngle, v.endAngle = v.startAngle + v.circumference), t.pivot()
},
removeHoverStyle: function(e) {
t.DatasetController.prototype.removeHoverStyle.call(this, e, this.chart.options.elements.arc)
},
calculateTotal: function() {
var t, a = this.getDataset(),
i = this.getMeta(),
n = 0;
return e.each(i.data, function(e, i) {
t = a.data[i], isNaN(t) || e.hidden || (n += Math.abs(t))
}), n
},
calculateCircumference: function(t) {
var e = this.getMeta().total;
return e > 0 && !isNaN(t) ? 2 * Math.PI * (t / e) : 0
},
getMaxBorderWidth: function(t) {
for (var e, a, i = 0, n = this.index, o = t.length, r = 0; o > r; r++) e = t[r]._model ? t[r]._model.borderWidth : 0, a = t[r]._chart ? t[r]._chart.config.data.datasets[n].hoverBorderWidth : 0, i = e > i ? e : i, i = a > i ? a : i;
return i
}
})
}
}, {}],
18: [function(t, e, a) {
"use strict";
e.exports = function(t) {
function e(t, e) {
return a.getValueOrDefault(t.showLine, e.showLines)
}
var a = t.helpers;
t.defaults.line = {
showLines: !0,
spanGaps: !1,
hover: {
mode: "label"
},
scales: {
xAxes: [{
type: "category",
id: "x-axis-0"
}],
yAxes: [{
type: "linear",
id: "y-axis-0"
}]
}
}, t.controllers.line = t.DatasetController.extend({
datasetElementType: t.elements.Line,
dataElementType: t.elements.Point,
update: function(t) {
var i, n, o, r = this,
l = r.getMeta(),
s = l.dataset,
d = l.data || [],
u = r.chart.options,
c = u.elements.line,
h = r.getScaleForId(l.yAxisID),
f = r.getDataset(),
g = e(f, u);
for (g && (o = s.custom || {}, void 0 !== f.tension && void 0 === f.lineTension && (f.lineTension = f.tension), s._scale = h, s._datasetIndex = r.index, s._children = d, s._model = {
spanGaps: f.spanGaps ? f.spanGaps : u.spanGaps,
tension: o.tension ? o.tension : a.getValueOrDefault(f.lineTension, c.tension),
backgroundColor: o.backgroundColor ? o.backgroundColor : f.backgroundColor || c.backgroundColor,
borderWidth: o.borderWidth ? o.borderWidth : f.borderWidth || c.borderWidth,
borderColor: o.borderColor ? o.borderColor : f.borderColor || c.borderColor,
borderCapStyle: o.borderCapStyle ? o.borderCapStyle : f.borderCapStyle || c.borderCapStyle,
borderDash: o.borderDash ? o.borderDash : f.borderDash || c.borderDash,
borderDashOffset: o.borderDashOffset ? o.borderDashOffset : f.borderDashOffset || c.borderDashOffset,
borderJoinStyle: o.borderJoinStyle ? o.borderJoinStyle : f.borderJoinStyle || c.borderJoinStyle,
fill: o.fill ? o.fill : void 0 !== f.fill ? f.fill : c.fill,
steppedLine: o.steppedLine ? o.steppedLine : a.getValueOrDefault(f.steppedLine, c.stepped),
cubicInterpolationMode: o.cubicInterpolationMode ? o.cubicInterpolationMode : a.getValueOrDefault(f.cubicInterpolationMode, c.cubicInterpolationMode),
scaleTop: h.top,
scaleBottom: h.bottom,
scaleZero: h.getBasePixel()
}, s.pivot()), i = 0, n = d.length; n > i; ++i) r.updateElement(d[i], i, t);
for (g && 0 !== s._model.tension && r.updateBezierControlPoints(), i = 0, n = d.length; n > i; ++i) d[i].pivot()
},
getPointBackgroundColor: function(t, e) {
var i = this.chart.options.elements.point.backgroundColor,
n = this.getDataset(),
o = t.custom || {};
return o.backgroundColor ? i = o.backgroundColor : n.pointBackgroundColor ? i = a.getValueAtIndexOrDefault(n.pointBackgroundColor, e, i) : n.backgroundColor && (i = n.backgroundColor), i
},
getPointBorderColor: function(t, e) {
var i = this.chart.options.elements.point.borderColor,
n = this.getDataset(),
o = t.custom || {};
return o.borderColor ? i = o.borderColor : n.pointBorderColor ? i = a.getValueAtIndexOrDefault(n.pointBorderColor, e, i) : n.borderColor && (i = n.borderColor), i
},
getPointBorderWidth: function(t, e) {
var i = this.chart.options.elements.point.borderWidth,
n = this.getDataset(),
o = t.custom || {};
return o.borderWidth ? i = o.borderWidth : n.pointBorderWidth ? i = a.getValueAtIndexOrDefault(n.pointBorderWidth, e, i) : n.borderWidth && (i = n.borderWidth), i
},
updateElement: function(t, e, i) {
var n, o, r = this,
l = r.getMeta(),
s = t.custom || {},
d = r.getDataset(),
u = r.index,
c = d.data[e],
h = r.getScaleForId(l.yAxisID),
f = r.getScaleForId(l.xAxisID),
g = r.chart.options.elements.point,
p = r.chart.data.labels || [],
m = 1 === p.length || 1 === d.data.length || r.chart.isCombo;
void 0 !== d.radius && void 0 === d.pointRadius && (d.pointRadius = d.radius), void 0 !== d.hitRadius && void 0 === d.pointHitRadius && (d.pointHitRadius = d.hitRadius), n = f.getPixelForValue("object" == typeof c ? c : NaN, e, u, m), o = i ? h.getBasePixel() : r.calculatePointY(c, e, u), t._xScale = f, t._yScale = h, t._datasetIndex = u, t._index = e, t._model = {
x: n,
y: o,
skip: s.skip || isNaN(n) || isNaN(o),
radius: s.radius || a.getValueAtIndexOrDefault(d.pointRadius, e, g.radius),
pointStyle: s.pointStyle || a.getValueAtIndexOrDefault(d.pointStyle, e, g.pointStyle),
backgroundColor: r.getPointBackgroundColor(t, e),
borderColor: r.getPointBorderColor(t, e),
borderWidth: r.getPointBorderWidth(t, e),
tension: l.dataset._model ? l.dataset._model.tension : 0,
steppedLine: l.dataset._model ? l.dataset._model.steppedLine : !1,
hitRadius: s.hitRadius || a.getValueAtIndexOrDefault(d.pointHitRadius, e, g.hitRadius)
}
},
calculatePointY: function(t, e, a) {
var i, n, o, r = this,
l = r.chart,
s = r.getMeta(),
d = r.getScaleForId(s.yAxisID),
u = 0,
c = 0;
if (d.options.stacked) {
for (i = 0; a > i; i++)
if (n = l.data.datasets[i], o = l.getDatasetMeta(i), "line" === o.type && o.yAxisID === d.id && l.isDatasetVisible(i)) {
var h = Number(d.getRightValue(n.data[e]));
0 > h ? c += h || 0 : u += h || 0
} var f = Number(d.getRightValue(t));
return 0 > f ? d.getPixelForValue(c + f) : d.getPixelForValue(u + f)
}
return d.getPixelForValue(t)
},
updateBezierControlPoints: function() {
function t(t, e, a) {
return Math.max(Math.min(t, a), e)
}
var e, i, n, o, r, l = this,
s = l.getMeta(),
d = l.chart.chartArea,
u = s.data || [];
if (s.dataset._model.spanGaps && (u = u.filter(function(t) {
return !t._model.skip
})), "monotone" === s.dataset._model.cubicInterpolationMode) a.splineCurveMonotone(u);
else
for (e = 0, i = u.length; i > e; ++e) n = u[e], o = n._model, r = a.splineCurve(a.previousItem(u, e)._model, o, a.nextItem(u, e)._model, s.dataset._model.tension), o.controlPointPreviousX = r.previous.x, o.controlPointPreviousY = r.previous.y, o.controlPointNextX = r.next.x, o.controlPointNextY = r.next.y;
if (l.chart.options.elements.line.capBezierPoints)
for (e = 0, i = u.length; i > e; ++e) o = u[e]._model, o.controlPointPreviousX = t(o.controlPointPreviousX, d.left, d.right), o.controlPointPreviousY = t(o.controlPointPreviousY, d.top, d.bottom), o.controlPointNextX = t(o.controlPointNextX, d.left, d.right), o.controlPointNextY = t(o.controlPointNextY, d.top, d.bottom)
},
draw: function(t) {
var a, i, n = this,
o = n.getMeta(),
r = o.data || [],
l = t || 1;
for (a = 0, i = r.length; i > a; ++a) r[a].transition(l);
for (e(n.getDataset(), n.chart.options) && o.dataset.transition(l).draw(), a = 0, i = r.length; i > a; ++a) r[a].draw()
},
setHoverStyle: function(t) {
var e = this.chart.data.datasets[t._datasetIndex],
i = t._index,
n = t.custom || {},
o = t._model;
o.radius = n.hoverRadius || a.getValueAtIndexOrDefault(e.pointHoverRadius, i, this.chart.options.elements.point.hoverRadius), o.backgroundColor = n.hoverBackgroundColor || a.getValueAtIndexOrDefault(e.pointHoverBackgroundColor, i, a.getHoverColor(o.backgroundColor)), o.borderColor = n.hoverBorderColor || a.getValueAtIndexOrDefault(e.pointHoverBorderColor, i, a.getHoverColor(o.borderColor)), o.borderWidth = n.hoverBorderWidth || a.getValueAtIndexOrDefault(e.pointHoverBorderWidth, i, o.borderWidth)
},
removeHoverStyle: function(t) {
var e = this,
i = e.chart.data.datasets[t._datasetIndex],
n = t._index,
o = t.custom || {},
r = t._model;
void 0 !== i.radius && void 0 === i.pointRadius && (i.pointRadius = i.radius), r.radius = o.radius || a.getValueAtIndexOrDefault(i.pointRadius, n, e.chart.options.elements.point.radius), r.backgroundColor = e.getPointBackgroundColor(t, n), r.borderColor = e.getPointBorderColor(t, n), r.borderWidth = e.getPointBorderWidth(t, n)
}
})
}
}, {}],
19: [function(t, e, a) {
"use strict";
e.exports = function(t) {
var e = t.helpers;
t.defaults.polarArea = {
scale: {
type: "radialLinear",
lineArc: !0,
ticks: {
beginAtZero: !0
}
},
animation: {
animateRotate: !0,
animateScale: !0
},
startAngle: -.5 * Math.PI,
aspectRatio: 1,
legendCallback: function(t) {
var e = [];
e.push('<ul class="' + t.id + '-legend">');
var a = t.data,
i = a.datasets,
n = a.labels;
if (i.length)
for (var o = 0; o < i[0].data.length; ++o) e.push('<li><span style="background-color:' + i[0].backgroundColor[o] + '"></span>'), n[o] && e.push(n[o]), e.push("</li>");
return e.push("</ul>"), e.join("")
},
legend: {
labels: {
generateLabels: function(t) {
var a = t.data;
return a.labels.length && a.datasets.length ? a.labels.map(function(i, n) {
var o = t.getDatasetMeta(0),
r = a.datasets[0],
l = o.data[n],
s = l.custom || {},
d = e.getValueAtIndexOrDefault,
u = t.options.elements.arc,
c = s.backgroundColor ? s.backgroundColor : d(r.backgroundColor, n, u.backgroundColor),
h = s.borderColor ? s.borderColor : d(r.borderColor, n, u.borderColor),
f = s.borderWidth ? s.borderWidth : d(r.borderWidth, n, u.borderWidth);
return {
text: i,
fillStyle: c,
strokeStyle: h,
lineWidth: f,
hidden: isNaN(r.data[n]) || o.data[n].hidden,
index: n
}
}) : []
}
},
onClick: function(t, e) {
var a, i, n, o = e.index,
r = this.chart;
for (a = 0, i = (r.data.datasets || []).length; i > a; ++a) n = r.getDatasetMeta(a), n.data[o].hidden = !n.data[o].hidden;
r.update()
}
},
tooltips: {
callbacks: {
title: function() {
return ""
},
label: function(t, e) {
return e.labels[t.index] + ": " + t.yLabel
}
}
}
}, t.controllers.polarArea = t.DatasetController.extend({
dataElementType: t.elements.Arc,
linkScales: e.noop,
update: function(t) {
var a = this,
i = a.chart,
n = i.chartArea,
o = a.getMeta(),
r = i.options,
l = r.elements.arc,
s = Math.min(n.right - n.left, n.bottom - n.top);
i.outerRadius = Math.max((s - l.borderWidth / 2) / 2, 0), i.innerRadius = Math.max(r.cutoutPercentage ? i.outerRadius / 100 * r.cutoutPercentage : 1, 0), i.radiusLength = (i.outerRadius - i.innerRadius) / i.getVisibleDatasetCount(), a.outerRadius = i.outerRadius - i.radiusLength * a.index, a.innerRadius = a.outerRadius - i.radiusLength, o.count = a.countVisibleElements(), e.each(o.data, function(e, i) {
a.updateElement(e, i, t)
})
},
updateElement: function(t, a, i) {
for (var n = this, o = n.chart, r = n.getDataset(), l = o.options, s = l.animation, d = o.scale, u = e.getValueAtIndexOrDefault, c = o.data.labels, h = n.calculateCircumference(r.data[a]), f = d.xCenter, g = d.yCenter, p = 0, m = n.getMeta(), b = 0; a > b; ++b) isNaN(r.data[b]) || m.data[b].hidden || ++p;
var v = l.startAngle,
x = t.hidden ? 0 : d.getDistanceFromCenterForValue(r.data[a]),
y = v + h * p,
k = y + (t.hidden ? 0 : h),
S = s.animateScale ? 0 : d.getDistanceFromCenterForValue(r.data[a]);
e.extend(t, {
_datasetIndex: n.index,
_index: a,
_scale: d,
_model: {
x: f,
y: g,
innerRadius: 0,
outerRadius: i ? S : x,
startAngle: i && s.animateRotate ? v : y,
endAngle: i && s.animateRotate ? v : k,
label: u(c, a, c[a])
}
}), n.removeHoverStyle(t), t.pivot()
},
removeHoverStyle: function(e) {
t.DatasetController.prototype.removeHoverStyle.call(this, e, this.chart.options.elements.arc)
},
countVisibleElements: function() {
var t = this.getDataset(),
a = this.getMeta(),
i = 0;
return e.each(a.data, function(e, a) {
isNaN(t.data[a]) || e.hidden || i++
}), i
},
calculateCircumference: function(t) {
var e = this.getMeta().count;
return e > 0 && !isNaN(t) ? 2 * Math.PI / e : 0
}
})
}
}, {}],
20: [function(t, e, a) {
"use strict";
e.exports = function(t) {
var e = t.helpers;
t.defaults.radar = {
aspectRatio: 1,
scale: {
type: "radialLinear"
},
elements: {
line: {
tension: 0
}
}
}, t.controllers.radar = t.DatasetController.extend({
datasetElementType: t.elements.Line,
dataElementType: t.elements.Point,
linkScales: e.noop,
update: function(t) {
var a = this,
i = a.getMeta(),
n = i.dataset,
o = i.data,
r = n.custom || {},
l = a.getDataset(),
s = a.chart.options.elements.line,
d = a.chart.scale;
void 0 !== l.tension && void 0 === l.lineTension && (l.lineTension = l.tension), e.extend(i.dataset, {
_datasetIndex: a.index,
_children: o,
_loop: !0,
_model: {
tension: r.tension ? r.tension : e.getValueOrDefault(l.lineTension, s.tension),
backgroundColor: r.backgroundColor ? r.backgroundColor : l.backgroundColor || s.backgroundColor,
borderWidth: r.borderWidth ? r.borderWidth : l.borderWidth || s.borderWidth,
borderColor: r.borderColor ? r.borderColor : l.borderColor || s.borderColor,
fill: r.fill ? r.fill : void 0 !== l.fill ? l.fill : s.fill,
borderCapStyle: r.borderCapStyle ? r.borderCapStyle : l.borderCapStyle || s.borderCapStyle,
borderDash: r.borderDash ? r.borderDash : l.borderDash || s.borderDash,
borderDashOffset: r.borderDashOffset ? r.borderDashOffset : l.borderDashOffset || s.borderDashOffset,
borderJoinStyle: r.borderJoinStyle ? r.borderJoinStyle : l.borderJoinStyle || s.borderJoinStyle,
scaleTop: d.top,
scaleBottom: d.bottom,
scaleZero: d.getBasePosition()
}
}), i.dataset.pivot(), e.each(o, function(e, i) {
a.updateElement(e, i, t)
}, a), a.updateBezierControlPoints()
},
updateElement: function(t, a, i) {
var n = this,
o = t.custom || {},
r = n.getDataset(),
l = n.chart.scale,
s = n.chart.options.elements.point,
d = l.getPointPositionForValue(a, r.data[a]);
e.extend(t, {
_datasetIndex: n.index,
_index: a,
_scale: l,
_model: {
x: i ? l.xCenter : d.x,
y: i ? l.yCenter : d.y,
tension: o.tension ? o.tension : e.getValueOrDefault(r.tension, n.chart.options.elements.line.tension),
radius: o.radius ? o.radius : e.getValueAtIndexOrDefault(r.pointRadius, a, s.radius),
backgroundColor: o.backgroundColor ? o.backgroundColor : e.getValueAtIndexOrDefault(r.pointBackgroundColor, a, s.backgroundColor),
borderColor: o.borderColor ? o.borderColor : e.getValueAtIndexOrDefault(r.pointBorderColor, a, s.borderColor),
borderWidth: o.borderWidth ? o.borderWidth : e.getValueAtIndexOrDefault(r.pointBorderWidth, a, s.borderWidth),
pointStyle: o.pointStyle ? o.pointStyle : e.getValueAtIndexOrDefault(r.pointStyle, a, s.pointStyle),
hitRadius: o.hitRadius ? o.hitRadius : e.getValueAtIndexOrDefault(r.hitRadius, a, s.hitRadius)
}
}), t._model.skip = o.skip ? o.skip : isNaN(t._model.x) || isNaN(t._model.y)
},
updateBezierControlPoints: function() {
var t = this.chart.chartArea,
a = this.getMeta();
e.each(a.data, function(i, n) {
var o = i._model,
r = e.splineCurve(e.previousItem(a.data, n, !0)._model, o, e.nextItem(a.data, n, !0)._model, o.tension);
o.controlPointPreviousX = Math.max(Math.min(r.previous.x, t.right), t.left), o.controlPointPreviousY = Math.max(Math.min(r.previous.y, t.bottom), t.top), o.controlPointNextX = Math.max(Math.min(r.next.x, t.right), t.left), o.controlPointNextY = Math.max(Math.min(r.next.y, t.bottom), t.top), i.pivot()
})
},
draw: function(t) {
var a = this.getMeta(),
i = t || 1;
e.each(a.data, function(t) {
t.transition(i)
}), a.dataset.transition(i).draw(), e.each(a.data, function(t) {
t.draw()
})
},
setHoverStyle: function(t) {
var a = this.chart.data.datasets[t._datasetIndex],
i = t.custom || {},
n = t._index,
o = t._model;
o.radius = i.hoverRadius ? i.hoverRadius : e.getValueAtIndexOrDefault(a.pointHoverRadius, n, this.chart.options.elements.point.hoverRadius), o.backgroundColor = i.hoverBackgroundColor ? i.hoverBackgroundColor : e.getValueAtIndexOrDefault(a.pointHoverBackgroundColor, n, e.getHoverColor(o.backgroundColor)), o.borderColor = i.hoverBorderColor ? i.hoverBorderColor : e.getValueAtIndexOrDefault(a.pointHoverBorderColor, n, e.getHoverColor(o.borderColor)), o.borderWidth = i.hoverBorderWidth ? i.hoverBorderWidth : e.getValueAtIndexOrDefault(a.pointHoverBorderWidth, n, o.borderWidth)
},
removeHoverStyle: function(t) {
var a = this.chart.data.datasets[t._datasetIndex],
i = t.custom || {},
n = t._index,
o = t._model,
r = this.chart.options.elements.point;
o.radius = i.radius ? i.radius : e.getValueAtIndexOrDefault(a.radius, n, r.radius), o.backgroundColor = i.backgroundColor ? i.backgroundColor : e.getValueAtIndexOrDefault(a.pointBackgroundColor, n, r.backgroundColor), o.borderColor = i.borderColor ? i.borderColor : e.getValueAtIndexOrDefault(a.pointBorderColor, n, r.borderColor), o.borderWidth = i.borderWidth ? i.borderWidth : e.getValueAtIndexOrDefault(a.pointBorderWidth, n, r.borderWidth)
}
})
}
}, {}],
21: [function(t, e, a) {
"use strict";
e.exports = function(t) {
var e = t.helpers;
t.defaults.global.animation = {
duration: 1e3,
easing: "easeOutQuart",
onProgress: e.noop,
onComplete: e.noop
}, t.Animation = t.Element.extend({
currentStep: null,
numSteps: 60,
easing: "",
render: null,
onAnimationProgress: null,
onAnimationComplete: null
}), t.animationService = {
frameDuration: 17,
animations: [],
dropFrames: 0,
request: null,
addAnimation: function(t, e, a, i) {
var n = this;
i || (t.animating = !0);
for (var o = 0; o < n.animations.length; ++o)
if (n.animations[o].chartInstance === t) return void(n.animations[o].animationObject = e);
n.animations.push({
chartInstance: t,
animationObject: e
}), 1 === n.animations.length && n.requestAnimationFrame()
},
cancelAnimation: function(t) {
var a = e.findIndex(this.animations, function(e) {
return e.chartInstance === t
}); - 1 !== a && (this.animations.splice(a, 1), t.animating = !1)
},
requestAnimationFrame: function() {
var t = this;
null === t.request && (t.request = e.requestAnimFrame.call(window, function() {
t.request = null, t.startDigest()
}))
},
startDigest: function() {
var t = this,
e = Date.now(),
a = 0;
t.dropFrames > 1 && (a = Math.floor(t.dropFrames), t.dropFrames = t.dropFrames % 1);
for (var i = 0; i < t.animations.length;) null === t.animations[i].animationObject.currentStep && (t.animations[i].animationObject.currentStep = 0), t.animations[i].animationObject.currentStep += 1 + a, t.animations[i].animationObject.currentStep > t.animations[i].animationObject.numSteps && (t.animations[i].animationObject.currentStep = t.animations[i].animationObject.numSteps), t.animations[i].animationObject.render(t.animations[i].chartInstance, t.animations[i].animationObject), t.animations[i].animationObject.onAnimationProgress && t.animations[i].animationObject.onAnimationProgress.call && t.animations[i].animationObject.onAnimationProgress.call(t.animations[i].chartInstance, t.animations[i]), t.animations[i].animationObject.currentStep === t.animations[i].animationObject.numSteps ? (t.animations[i].animationObject.onAnimationComplete && t.animations[i].animationObject.onAnimationComplete.call && t.animations[i].animationObject.onAnimationComplete.call(t.animations[i].chartInstance, t.animations[i]), t.animations[i].chartInstance.animating = !1, t.animations.splice(i, 1)) : ++i;
var n = Date.now(),
o = (n - e) / t.frameDuration;
t.dropFrames += o, t.animations.length > 0 && t.requestAnimationFrame()
}
}
}
}, {}],
22: [function(t, e, a) {
"use strict";
e.exports = function(t) {
var e = t.canvasHelpers = {};
e.drawPoint = function(t, e, a, i, n) {
var o, r, l, s, d, u;
if ("object" == typeof e && (o = e.toString(), "[object HTMLImageElement]" === o || "[object HTMLCanvasElement]" === o)) return void t.drawImage(e, i - e.width / 2, n - e.height / 2);
if (!(isNaN(a) || 0 >= a)) {
switch (e) {
default:
t.beginPath(), t.arc(i, n, a, 0, 2 * Math.PI), t.closePath(), t.fill();
break;
case "triangle":
t.beginPath(), r = 3 * a / Math.sqrt(3), d = r * Math.sqrt(3) / 2, t.moveTo(i - r / 2, n + d / 3), t.lineTo(i + r / 2, n + d / 3), t.lineTo(i, n - 2 * d / 3), t.closePath(), t.fill();
break;
case "rect":
u = 1 / Math.SQRT2 * a, t.beginPath(), t.fillRect(i - u, n - u, 2 * u, 2 * u), t.strokeRect(i - u, n - u, 2 * u, 2 * u);
break;
case "rectRot":
u = 1 / Math.SQRT2 * a, t.beginPath(), t.moveTo(i - u, n), t.lineTo(i, n + u), t.lineTo(i + u, n), t.lineTo(i, n - u), t.closePath(), t.fill();
break;
case "cross":
t.beginPath(), t.moveTo(i, n + a), t.lineTo(i, n - a), t.moveTo(i - a, n), t.lineTo(i + a, n), t.closePath();
break;
case "crossRot":
t.beginPath(), l = Math.cos(Math.PI / 4) * a, s = Math.sin(Math.PI / 4) * a, t.moveTo(i - l, n - s), t.lineTo(i + l, n + s), t.moveTo(i - l, n + s), t.lineTo(i + l, n - s), t.closePath();
break;
case "star":
t.beginPath(), t.moveTo(i, n + a), t.lineTo(i, n - a), t.moveTo(i - a, n), t.lineTo(i + a, n), l = Math.cos(Math.PI / 4) * a, s = Math.sin(Math.PI / 4) * a, t.moveTo(i - l, n - s), t.lineTo(i + l, n + s), t.moveTo(i - l, n + s), t.lineTo(i + l, n - s), t.closePath();
break;
case "line":
t.beginPath(), t.moveTo(i - a, n), t.lineTo(i + a, n), t.closePath();
break;
case "dash":
t.beginPath(), t.moveTo(i, n), t.lineTo(i + a, n), t.closePath()
}
t.stroke()
}
}
}
}, {}],
23: [function(t, e, a) {
"use strict";
e.exports = function(t) {
function e(t, e) {
var a = r.getStyle(t, e),
i = a && a.match(/(d+)px/);
return i ? Number(i[1]) : void 0
}
function a(t, a) {
var i = t.style,
n = t.getAttribute("height"),
o = t.getAttribute("width");
if (t._chartjs = {
initial: {
height: n,
width: o,
style: {
display: i.display,
height: i.height,
width: i.width
}
}
}, i.display = i.display || "block", null === o || "" === o) {
var r = e(t, "width");
void 0 !== r && (t.width = r)
}
if (null === n || "" === n)
if ("" === t.style.height) t.height = t.width / (a.options.aspectRatio || 2);
else {
var l = e(t, "height");
void 0 !== r && (t.height = l)
} return t
}
function i(t) {
if (t._chartjs) {
var e = t._chartjs.initial;
["height", "width"].forEach(function(a) {
var i = e[a];
void 0 === i || null === i ? t.removeAttribute(a) : t.setAttribute(a, i)
}), r.each(e.style || {}, function(e, a) {
t.style[a] = e
}), t.width = t.width, delete t._chartjs
}
}
function n(t, e) {
if ("string" == typeof t ? t = document.getElementById(t) : t.length && (t = t[0]), t && t.canvas && (t = t.canvas), t instanceof HTMLCanvasElement) {
var i = t.getContext && t.getContext("2d");
if (i instanceof CanvasRenderingContext2D) return a(t, e), i
}
return null
}
function o(e) {
e = e || {};
var a = e.data = e.data || {};
return a.datasets = a.datasets || [], a.labels = a.labels || [], e.options = r.configMerge(t.defaults.global, t.defaults[e.type], e.options || {}), e
}
var r = t.helpers;
t.types = {}, t.instances = {}, t.controllers = {}, t.Controller = function(e, a, i) {
var l = this;
a = o(a);
var s = n(e, a),
d = s && s.canvas,
u = d && d.height,
c = d && d.width;
return i.ctx = s, i.canvas = d, i.config = a, i.width = c, i.height = u, i.aspectRatio = u ? c / u : null, l.id = r.uid(), l.chart = i, l.config = a, l.options = a.options, l._bufferedRender = !1, t.instances[l.id] = l, Object.defineProperty(l, "data", {
get: function() {
return l.config.data
}
}), s && d ? (r.retinaScale(i), l.options.responsive && (r.addResizeListener(d.parentNode, function() {
l.resize()
}), l.resize(!0)), l.initialize(), l) : (console.error("Failed to create chart: can't acquire context from the given item"), l)
}, r.extend(t.Controller.prototype, {
initialize: function() {
var e = this;
return t.plugins.notify("beforeInit", [e]), e.bindEvents(), e.ensureScalesHaveIDs(), e.buildOrUpdateControllers(), e.buildScales(), e.updateLayout(), e.resetElements(), e.initToolTip(), e.update(), t.plugins.notify("afterInit", [e]), e
},
clear: function() {
return r.clear(this.chart), this
},
stop: function() {
return t.animationService.cancelAnimation(this), this
},
resize: function(e) {
var a = this,
i = a.chart,
n = a.options,
o = i.canvas,
l = n.maintainAspectRatio && i.aspectRatio || null,
s = Math.floor(r.getMaximumWidth(o)),
d = Math.floor(l ? s / l : r.getMaximumHeight(o));
if (i.width !== s || i.height !== d) {
o.width = i.width = s, o.height = i.height = d, o.style.width = s + "px", o.style.height = d + "px", r.retinaScale(i);
var u = {
width: s,
height: d
};
t.plugins.notify("resize", [a, u]), a.options.onResize && a.options.onResize(a, u), e || (a.stop(), a.update(a.options.responsiveAnimationDuration))
}
},
ensureScalesHaveIDs: function() {
var t = this.options,
e = t.scales || {},
a = t.scale;
r.each(e.xAxes, function(t, e) {
t.id = t.id || "x-axis-" + e
}), r.each(e.yAxes, function(t, e) {
t.id = t.id || "y-axis-" + e
}), a && (a.id = a.id || "scale")
},
buildScales: function() {
var e = this,
a = e.options,
i = e.scales = {},
n = [];
a.scales && (n = n.concat((a.scales.xAxes || []).map(function(t) {
return {
options: t,
dtype: "category"
}
}), (a.scales.yAxes || []).map(function(t) {
return {
options: t,
dtype: "linear"
}
}))), a.scale && n.push({
options: a.scale,
dtype: "radialLinear",
isDefault: !0
}), r.each(n, function(a) {
var n = a.options,
o = r.getValueOrDefault(n.type, a.dtype),
l = t.scaleService.getScaleConstructor(o);
if (l) {
var s = new l({
id: n.id,
options: n,
ctx: e.chart.ctx,
chart: e
});
i[s.id] = s, a.isDefault && (e.scale = s)
}
}), t.scaleService.addScalesToLayout(this)
},
updateLayout: function() {
t.layoutService.update(this, this.chart.width, this.chart.height)
},
buildOrUpdateControllers: function() {
var e = this,
a = [],
i = [];
if (r.each(e.data.datasets, function(n, o) {
var r = e.getDatasetMeta(o);
r.type || (r.type = n.type || e.config.type), a.push(r.type), r.controller ? r.controller.updateIndex(o) : (r.controller = new t.controllers[r.type](e, o), i.push(r.controller))
}, e), a.length > 1)
for (var n = 1; n < a.length; n++)
if (a[n] !== a[n - 1]) {
e.isCombo = !0;
break
} return i
},
resetElements: function() {
var t = this;
r.each(t.data.datasets, function(e, a) {
t.getDatasetMeta(a).controller.reset()
}, t)
},
reset: function() {
this.resetElements(), this.tooltip.initialize()
},
update: function(e, a) {
var i = this;
t.plugins.notify("beforeUpdate", [i]), i.tooltip._data = i.data;
var n = i.buildOrUpdateControllers();
r.each(i.data.datasets, function(t, e) {
i.getDatasetMeta(e).controller.buildOrUpdateElements()
}, i), t.layoutService.update(i, i.chart.width, i.chart.height), t.plugins.notify("afterScaleUpdate", [i]), r.each(n, function(t) {
t.reset()
}), i.updateDatasets(), t.plugins.notify("afterUpdate", [i]), i._bufferedRender ? i._bufferedRequest = {
lazy: a,
duration: e
} : i.render(e, a)
},
updateDatasets: function() {
var e, a, i = this;
if (t.plugins.notify("beforeDatasetsUpdate", [i])) {
for (e = 0, a = i.data.datasets.length; a > e; ++e) i.getDatasetMeta(e).controller.update();
t.plugins.notify("afterDatasetsUpdate", [i])
}
},
render: function(e, a) {
var i = this;
t.plugins.notify("beforeRender", [i]);
var n = i.options.animation;
if (n && ("undefined" != typeof e && 0 !== e || "undefined" == typeof e && 0 !== n.duration)) {
var o = new t.Animation;
o.numSteps = (e || n.duration) / 16.66, o.easing = n.easing, o.render = function(t, e) {
var a = r.easingEffects[e.easing],
i = e.currentStep / e.numSteps,
n = a(i);
t.draw(n, i, e.currentStep)
}, o.onAnimationProgress = n.onProgress, o.onAnimationComplete = n.onComplete, t.animationService.addAnimation(i, o, e, a)
} else i.draw(), n && n.onComplete && n.onComplete.call && n.onComplete.call(i);
return i
},
draw: function(e) {
var a = this,
i = e || 1;
a.clear(), t.plugins.notify("beforeDraw", [a, i]), r.each(a.boxes, function(t) {
t.draw(a.chartArea)
}, a), a.scale && a.scale.draw(), t.plugins.notify("beforeDatasetsDraw", [a, i]), r.each(a.data.datasets, function(t, i) {
a.isDatasetVisible(i) && a.getDatasetMeta(i).controller.draw(e)
}, a, !0), t.plugins.notify("afterDatasetsDraw", [a, i]), a.tooltip.transition(i).draw(), t.plugins.notify("afterDraw", [a, i])
},
getElementAtEvent: function(e) {
return t.Interaction.modes.single(this, e)
},
getElementsAtEvent: function(e) {
return t.Interaction.modes.label(this, e, {
intersect: !0
})
},
getElementsAtXAxis: function(e) {
return t.Interaction.modes["x-axis"](this, e, {
intersect: !0
})
},
getElementsAtEventForMode: function(e, a, i) {
var n = t.Interaction.modes[a];
return "function" == typeof n ? n(this, e, i) : []
},
getDatasetAtEvent: function(e) {
return t.Interaction.modes.dataset(this, e)
},
getDatasetMeta: function(t) {
var e = this,
a = e.data.datasets[t];
a._meta || (a._meta = {});
var i = a._meta[e.id];
return i || (i = a._meta[e.id] = {
type: null,
data: [],
dataset: null,
controller: null,
hidden: null,
xAxisID: null,
yAxisID: null
}), i
},
getVisibleDatasetCount: function() {
for (var t = 0, e = 0, a = this.data.datasets.length; a > e; ++e) this.isDatasetVisible(e) && t++;
return t
},
isDatasetVisible: function(t) {
var e = this.getDatasetMeta(t);
return "boolean" == typeof e.hidden ? !e.hidden : !this.data.datasets[t].hidden
},
generateLegend: function() {
return this.options.legendCallback(this)
},
destroy: function() {
var e, a, n, o = this,
l = o.chart.canvas;
for (o.stop(), a = 0, n = o.data.datasets.length; n > a; ++a) e = o.getDatasetMeta(a), e.controller && (e.controller.destroy(), e.controller = null);
l && (r.unbindEvents(o, o.events), r.removeResizeListener(l.parentNode), r.clear(o.chart), i(l), o.chart.canvas = null, o.chart.ctx = null), t.plugins.notify("destroy", [o]), delete t.instances[o.id]
},
toBase64Image: function() {
return this.chart.canvas.toDataURL.apply(this.chart.canvas, arguments)
},
initToolTip: function() {
var e = this;
e.tooltip = new t.Tooltip({
_chart: e.chart,
_chartInstance: e,
_data: e.data,
_options: e.options.tooltips
}, e), e.tooltip.initialize()
},
bindEvents: function() {
var t = this;
r.bindEvents(t, t.options.events, function(e) {
t.eventHandler(e)
})
},
updateHoverStyle: function(t, e, a) {
var i, n, o, r = a ? "setHoverStyle" : "removeHoverStyle";
for (n = 0, o = t.length; o > n; ++n) i = t[n], i && this.getDatasetMeta(i._datasetIndex).controller[r](i)
},
eventHandler: function(t) {
var e = this,
a = e.legend,
i = e.tooltip,
n = e.options.hover;
e._bufferedRender = !0, e._bufferedRequest = null;
var o = e.handleEvent(t);
o |= a && a.handleEvent(t), o |= i && i.handleEvent(t);
var r = e._bufferedRequest;
return r ? e.render(r.duration, r.lazy) : o && !e.animating && (e.stop(), e.render(n.animationDuration, !0)), e._bufferedRender = !1, e._bufferedRequest = null, e
},
handleEvent: function(t) {
var e = this,
a = e.options || {},
i = a.hover,
n = !1;
return e.lastActive = e.lastActive || [], "mouseout" === t.type ? e.active = [] : e.active = e.getElementsAtEventForMode(t, i.mode, i), i.onHover && i.onHover.call(e, e.active), ("mouseup" === t.type || "click" === t.type) && a.onClick && a.onClick.call(e, t, e.active), e.lastActive.length && e.updateHoverStyle(e.lastActive, i.mode, !1), e.active.length && i.mode && e.updateHoverStyle(e.active, i.mode, !0), n = !r.arrayEquals(e.active, e.lastActive), e.lastActive = e.active, n
}
})
}
}, {}],
24: [function(t, e, a) {
"use strict";
e.exports = function(t) {
function e(t, e) {
return t._chartjs ? void t._chartjs.listeners.push(e) : (Object.defineProperty(t, "_chartjs", {
configurable: !0,
enumerable: !1,
value: {
listeners: [e]
}
}), void n.forEach(function(e) {
var a = "onData" + e.charAt(0).toUpperCase() + e.slice(1),
n = t[e];
Object.defineProperty(t, e, {
configurable: !0,
enumerable: !1,
value: function() {
var e = Array.prototype.slice.call(arguments),
o = n.apply(this, e);
return i.each(t._chartjs.listeners, function(t) {
"function" == typeof t[a] && t[a].apply(t, e)
}), o
}
})
}))
}
function a(t, e) {
var a = t._chartjs;
if (a) {
var i = a.listeners,
o = i.indexOf(e); - 1 !== o && i.splice(o, 1), i.length > 0 || (n.forEach(function(e) {
delete t[e]
}), delete t._chartjs)
}
}
var i = t.helpers,
n = ["push", "pop", "shift", "splice", "unshift"];
t.DatasetController = function(t, e) {
this.initialize(t, e)
}, i.extend(t.DatasetController.prototype, {
datasetElementType: null,
dataElementType: null,
initialize: function(t, e) {
var a = this;
a.chart = t, a.index = e, a.linkScales(), a.addElements()
},
updateIndex: function(t) {
this.index = t
},
linkScales: function() {
var t = this,
e = t.getMeta(),
a = t.getDataset();
null === e.xAxisID && (e.xAxisID = a.xAxisID || t.chart.options.scales.xAxes[0].id), null === e.yAxisID && (e.yAxisID = a.yAxisID || t.chart.options.scales.yAxes[0].id)
},
getDataset: function() {
return this.chart.data.datasets[this.index]
},
getMeta: function() {
return this.chart.getDatasetMeta(this.index)
},
getScaleForId: function(t) {
return this.chart.scales[t]
},
reset: function() {
this.update(!0)
},
destroy: function() {
this._data && a(this._data, this)
},
createMetaDataset: function() {
var t = this,
e = t.datasetElementType;
return e && new e({
_chart: t.chart.chart,
_datasetIndex: t.index
})
},
createMetaData: function(t) {
var e = this,
a = e.dataElementType;
return a && new a({
_chart: e.chart.chart,
_datasetIndex: e.index,
_index: t
})
},
addElements: function() {
var t, e, a = this,
i = a.getMeta(),
n = a.getDataset().data || [],
o = i.data;
for (t = 0, e = n.length; e > t; ++t) o[t] = o[t] || a.createMetaData(t);
i.dataset = i.dataset || a.createMetaDataset()
},
addElementAndReset: function(t) {
var e = this.createMetaData(t);
this.getMeta().data.splice(t, 0, e), this.updateElement(e, t, !0)
},
buildOrUpdateElements: function() {
var t = this,
i = t.getDataset(),
n = i.data || (i.data = []);
t._data !== n && (t._data && a(t._data, t), e(n, t), t._data = n), t.resyncElements()
},
update: i.noop,
draw: function(t) {
var e, a, i = t || 1,
n = this.getMeta().data;
for (e = 0, a = n.length; a > e; ++e) n[e].transition(i).draw()
},
removeHoverStyle: function(t, e) {
var a = this.chart.data.datasets[t._datasetIndex],
n = t._index,
o = t.custom || {},
r = i.getValueAtIndexOrDefault,
l = t._model;
l.backgroundColor = o.backgroundColor ? o.backgroundColor : r(a.backgroundColor, n, e.backgroundColor), l.borderColor = o.borderColor ? o.borderColor : r(a.borderColor, n, e.borderColor), l.borderWidth = o.borderWidth ? o.borderWidth : r(a.borderWidth, n, e.borderWidth)
},
setHoverStyle: function(t) {
var e = this.chart.data.datasets[t._datasetIndex],
a = t._index,
n = t.custom || {},
o = i.getValueAtIndexOrDefault,
r = i.getHoverColor,
l = t._model;
l.backgroundColor = n.hoverBackgroundColor ? n.hoverBackgroundColor : o(e.hoverBackgroundColor, a, r(l.backgroundColor)), l.borderColor = n.hoverBorderColor ? n.hoverBorderColor : o(e.hoverBorderColor, a, r(l.borderColor)), l.borderWidth = n.hoverBorderWidth ? n.hoverBorderWidth : o(e.hoverBorderWidth, a, l.borderWidth)
},
resyncElements: function() {
var t = this,
e = t.getMeta(),
a = t.getDataset().data,
i = e.data.length,
n = a.length;
i > n ? e.data.splice(n, i - n) : n > i && t.insertElements(i, n - i)
},
insertElements: function(t, e) {
for (var a = 0; e > a; ++a) this.addElementAndReset(t + a)
},
onDataPush: function() {
this.insertElements(this.getDataset().data.length - 1, arguments.length)
},
onDataPop: function() {
this.getMeta().data.pop()
},
onDataShift: function() {
this.getMeta().data.shift()
},
onDataSplice: function(t, e) {
this.getMeta().data.splice(t, e), this.insertElements(t, arguments.length - 2)
},
onDataUnshift: function() {
this.insertElements(0, arguments.length)
}
}), t.DatasetController.extend = i.inherits
}
}, {}],
25: [function(t, e, a) {
"use strict";
e.exports = function(t) {
var e = t.helpers;
t.elements = {}, t.Element = function(t) {
e.extend(this, t), this.initialize.apply(this, arguments)
}, e.extend(t.Element.prototype, {
initialize: function() {
this.hidden = !1
},
pivot: function() {
var t = this;
return t._view || (t._view = e.clone(t._model)), t._start = e.clone(t._view), t
},
transition: function(t) {
var a = this;
return a._view || (a._view = e.clone(a._model)), 1 === t ? (a._view = a._model, a._start = null, a) : (a._start || a.pivot(), e.each(a._model, function(i, n) {
if ("_" === n[0]);
else if (a._view.hasOwnProperty(n))
if (i === a._view[n]);
else if ("string" == typeof i) try {
var o = e.color(a._model[n]).mix(e.color(a._start[n]), t);
a._view[n] = o.rgbString()
} catch (r) {
a._view[n] = i
} else if ("number" == typeof i) {
var l = void 0 !== a._start[n] && isNaN(a._start[n]) === !1 ? a._start[n] : 0;
a._view[n] = (a._model[n] - l) * t + l
} else a._view[n] = i;
else "number" != typeof i || isNaN(a._view[n]) ? a._view[n] = i : a._view[n] = i * t
}, a), a)
},
tooltipPosition: function() {
return {
x: this._model.x,
y: this._model.y
}
},
hasValue: function() {
return e.isNumber(this._model.x) && e.isNumber(this._model.y)
}
}), t.Element.extend = e.inherits
}
}, {}],
26: [function(t, e, a) {
"use strict";
var i = t(3);
e.exports = function(t) {
function e(t, e, a) {
var i;
return "string" == typeof t ? (i = parseInt(t, 10), -1 !== t.indexOf("%") && (i = i / 100 * e.parentNode[a])) : i = t, i
}
function a(t) {
return void 0 !== t && null !== t && "none" !== t
}
function n(t, i, n) {
var o = document.defaultView,
r = t.parentNode,
l = o.getComputedStyle(t)[i],
s = o.getComputedStyle(r)[i],
d = a(l),
u = a(s),
c = Number.POSITIVE_INFINITY;
return d || u ? Math.min(d ? e(l, t, n) : c, u ? e(s, r, n) : c) : "none"
}
var o = t.helpers = {};
o.each = function(t, e, a, i) {
var n, r;
if (o.isArray(t))
if (r = t.length, i)
for (n = r - 1; n >= 0; n--) e.call(a, t[n], n);
else
for (n = 0; r > n; n++) e.call(a, t[n], n);
else if ("object" == typeof t) {
var l = Object.keys(t);
for (r = l.length, n = 0; r > n; n++) e.call(a, t[l[n]], l[n])
}
}, o.clone = function(t) {
var e = {};
return o.each(t, function(t, a) {
o.isArray(t) ? e[a] = t.slice(0) : "object" == typeof t && null !== t ? e[a] = o.clone(t) : e[a] = t
}), e
}, o.extend = function(t) {
for (var e = function(e, a) {
t[a] = e
}, a = 1, i = arguments.length; i > a; a++) o.each(arguments[a], e);
return t
}, o.configMerge = function(e) {
var a = o.clone(e);
return o.each(Array.prototype.slice.call(arguments, 1), function(e) {
o.each(e, function(e, i) {
var n = a.hasOwnProperty(i),
r = n ? a[i] : {};
"scales" === i ? a[i] = o.scaleMerge(r, e) : "scale" === i ? a[i] = o.configMerge(r, t.scaleService.getScaleDefaults(e.type), e) : !n || "object" != typeof r || o.isArray(r) || null === r || "object" != typeof e || o.isArray(e) ? a[i] = e : a[i] = o.configMerge(r, e)
})
}), a
}, o.scaleMerge = function(e, a) {
var i = o.clone(e);
return o.each(a, function(e, a) {
"xAxes" === a || "yAxes" === a ? i.hasOwnProperty(a) ? o.each(e, function(e, n) {
var r = o.getValueOrDefault(e.type, "xAxes" === a ? "category" : "linear"),
l = t.scaleService.getScaleDefaults(r);
n >= i[a].length || !i[a][n].type ? i[a].push(o.configMerge(l, e)) : e.type && e.type !== i[a][n].type ? i[a][n] = o.configMerge(i[a][n], l, e) : i[a][n] = o.configMerge(i[a][n], e)
}) : (i[a] = [], o.each(e, function(e) {
var n = o.getValueOrDefault(e.type, "xAxes" === a ? "category" : "linear");
i[a].push(o.configMerge(t.scaleService.getScaleDefaults(n), e))
})) : i.hasOwnProperty(a) && "object" == typeof i[a] && null !== i[a] && "object" == typeof e ? i[a] = o.configMerge(i[a], e) : i[a] = e
}), i
}, o.getValueAtIndexOrDefault = function(t, e, a) {
return void 0 === t || null === t ? a : o.isArray(t) ? e < t.length ? t[e] : a : t
}, o.getValueOrDefault = function(t, e) {
return void 0 === t ? e : t
}, o.indexOf = Array.prototype.indexOf ? function(t, e) {
return t.indexOf(e)
} : function(t, e) {
for (var a = 0, i = t.length; i > a; ++a)
if (t[a] === e) return a;
return -1
}, o.where = function(t, e) {
if (o.isArray(t) && Array.prototype.filter) return t.filter(e);
var a = [];
return o.each(t, function(t) {
e(t) && a.push(t)
}), a
}, o.findIndex = Array.prototype.findIndex ? function(t, e, a) {
return t.findIndex(e, a)
} : function(t, e, a) {
a = void 0 === a ? t : a;
for (var i = 0, n = t.length; n > i; ++i)
if (e.call(a, t[i], i, t)) return i;
return -1
}, o.findNextWhere = function(t, e, a) {
(void 0 === a || null === a) && (a = -1);
for (var i = a + 1; i < t.length; i++) {
var n = t[i];
if (e(n)) return n
}
}, o.findPreviousWhere = function(t, e, a) {
(void 0 === a || null === a) && (a = t.length);
for (var i = a - 1; i >= 0; i--) {
var n = t[i];
if (e(n)) return n
}
}, o.inherits = function(t) {
var e = this,
a = t && t.hasOwnProperty("constructor") ? t.constructor : function() {
return e.apply(this, arguments)
},
i = function() {
this.constructor = a
};
return i.prototype = e.prototype, a.prototype = new i, a.extend = o.inherits, t && o.extend(a.prototype, t), a.__super__ = e.prototype, a
}, o.noop = function() {}, o.uid = function() {
var t = 0;
return function() {
return t++
}
}(), o.isNumber = function(t) {
return !isNaN(parseFloat(t)) && isFinite(t)
}, o.almostEquals = function(t, e, a) {
return Math.abs(t - e) < a
}, o.max = function(t) {
return t.reduce(function(t, e) {
return isNaN(e) ? t : Math.max(t, e)
}, Number.NEGATIVE_INFINITY)
}, o.min = function(t) {
return t.reduce(function(t, e) {
return isNaN(e) ? t : Math.min(t, e)
}, Number.POSITIVE_INFINITY)
}, o.sign = Math.sign ? function(t) {
return Math.sign(t)
} : function(t) {
return t = +t, 0 === t || isNaN(t) ? t : t > 0 ? 1 : -1
}, o.log10 = Math.log10 ? function(t) {
return Math.log10(t)
} : function(t) {
return Math.log(t) / Math.LN10
}, o.toRadians = function(t) {
return t * (Math.PI / 180)
}, o.toDegrees = function(t) {
return t * (180 / Math.PI)
}, o.getAngleFromPoint = function(t, e) {
var a = e.x - t.x,
i = e.y - t.y,
n = Math.sqrt(a * a + i * i),
o = Math.atan2(i, a);
return o < -.5 * Math.PI && (o += 2 * Math.PI), {
angle: o,
distance: n
}
}, o.distanceBetweenPoints = function(t, e) {
return Math.sqrt(Math.pow(e.x - t.x, 2) + Math.pow(e.y - t.y, 2))
}, o.aliasPixel = function(t) {
return t % 2 === 0 ? 0 : .5
}, o.splineCurve = function(t, e, a, i) {
var n = t.skip ? e : t,
o = e,
r = a.skip ? e : a,
l = Math.sqrt(Math.pow(o.x - n.x, 2) + Math.pow(o.y - n.y, 2)),
s = Math.sqrt(Math.pow(r.x - o.x, 2) + Math.pow(r.y - o.y, 2)),
d = l / (l + s),
u = s / (l + s);
d = isNaN(d) ? 0 : d, u = isNaN(u) ? 0 : u;
var c = i * d,
h = i * u;
return {
previous: {
x: o.x - c * (r.x - n.x),
y: o.y - c * (r.y - n.y)
},
next: {
x: o.x + h * (r.x - n.x),
y: o.y + h * (r.y - n.y)
}
}
}, o.EPSILON = Number.EPSILON || 1e-14, o.splineCurveMonotone = function(t) {
var e, a, i, n, r = (t || []).map(function(t) {
return {
model: t._model,
deltaK: 0,
mK: 0
}
}),
l = r.length;
for (e = 0; l > e; ++e) i = r[e], i.model.skip || (a = e > 0 ? r[e - 1] : null, n = l - 1 > e ? r[e + 1] : null, n && !n.model.skip && (i.deltaK = (n.model.y - i.model.y) / (n.model.x - i.model.x)), !a || a.model.skip ? i.mK = i.deltaK : !n || n.model.skip ? i.mK = a.deltaK : this.sign(a.deltaK) !== this.sign(i.deltaK) ? i.mK = 0 : i.mK = (a.deltaK + i.deltaK) / 2);
var s, d, u, c;
for (e = 0; l - 1 > e; ++e) i = r[e], n = r[e + 1], i.model.skip || n.model.skip || (o.almostEquals(i.deltaK, 0, this.EPSILON) ? i.mK = n.mK = 0 : (s = i.mK / i.deltaK, d = n.mK / i.deltaK, c = Math.pow(s, 2) + Math.pow(d, 2), 9 >= c || (u = 3 / Math.sqrt(c), i.mK = s * u * i.deltaK, n.mK = d * u * i.deltaK)));
var h;
for (e = 0; l > e; ++e) i = r[e], i.model.skip || (a = e > 0 ? r[e - 1] : null, n = l - 1 > e ? r[e + 1] : null, a && !a.model.skip && (h = (i.model.x - a.model.x) / 3, i.model.controlPointPreviousX = i.model.x - h, i.model.controlPointPreviousY = i.model.y - h * i.mK), n && !n.model.skip && (h = (n.model.x - i.model.x) / 3, i.model.controlPointNextX = i.model.x + h, i.model.controlPointNextY = i.model.y + h * i.mK))
}, o.nextItem = function(t, e, a) {
return a ? e >= t.length - 1 ? t[0] : t[e + 1] : e >= t.length - 1 ? t[t.length - 1] : t[e + 1]
}, o.previousItem = function(t, e, a) {
return a ? 0 >= e ? t[t.length - 1] : t[e - 1] : 0 >= e ? t[0] : t[e - 1]
}, o.niceNum = function(t, e) {
var a, i = Math.floor(o.log10(t)),
n = t / Math.pow(10, i);
return a = e ? 1.5 > n ? 1 : 3 > n ? 2 : 7 > n ? 5 : 10 : 1 >= n ? 1 : 2 >= n ? 2 : 5 >= n ? 5 : 10, a * Math.pow(10, i)
};
var r = o.easingEffects = {
linear: function(t) {
return t
},
easeInQuad: function(t) {
return t * t
},
easeOutQuad: function(t) {
return -1 * t * (t - 2)
},
easeInOutQuad: function(t) {
return (t /= .5) < 1 ? .5 * t * t : -0.5 * (--t * (t - 2) - 1)
},
easeInCubic: function(t) {
return t * t * t
},
easeOutCubic: function(t) {
return 1 * ((t = t / 1 - 1) * t * t + 1)
},
easeInOutCubic: function(t) {
return (t /= .5) < 1 ? .5 * t * t * t : .5 * ((t -= 2) * t * t + 2)
},
easeInQuart: function(t) {
return t * t * t * t
},
easeOutQuart: function(t) {
return -1 * ((t = t / 1 - 1) * t * t * t - 1)
},
easeInOutQuart: function(t) {
return (t /= .5) < 1 ? .5 * t * t * t * t : -0.5 * ((t -= 2) * t * t * t - 2)
},
easeInQuint: function(t) {
return 1 * (t /= 1) * t * t * t * t
},
easeOutQuint: function(t) {
return 1 * ((t = t / 1 - 1) * t * t * t * t + 1)
},
easeInOutQuint: function(t) {
return (t /= .5) < 1 ? .5 * t * t * t * t * t : .5 * ((t -= 2) * t * t * t * t + 2)
},
easeInSine: function(t) {
return -1 * Math.cos(t / 1 * (Math.PI / 2)) + 1
},
easeOutSine: function(t) {
return 1 * Math.sin(t / 1 * (Math.PI / 2))
},
easeInOutSine: function(t) {
return -0.5 * (Math.cos(Math.PI * t / 1) - 1)
},
easeInExpo: function(t) {
return 0 === t ? 1 : 1 * Math.pow(2, 10 * (t / 1 - 1))
},
easeOutExpo: function(t) {
return 1 === t ? 1 : 1 * (-Math.pow(2, -10 * t / 1) + 1)
},
easeInOutExpo: function(t) {
return 0 === t ? 0 : 1 === t ? 1 : (t /= .5) < 1 ? .5 * Math.pow(2, 10 * (t - 1)) : .5 * (-Math.pow(2, -10 * --t) + 2)
},
easeInCirc: function(t) {
return t >= 1 ? t : -1 * (Math.sqrt(1 - (t /= 1) * t) - 1)
},
easeOutCirc: function(t) {
return 1 * Math.sqrt(1 - (t = t / 1 - 1) * t)
},
easeInOutCirc: function(t) {
return (t /= .5) < 1 ? -0.5 * (Math.sqrt(1 - t * t) - 1) : .5 * (Math.sqrt(1 - (t -= 2) * t) + 1)
},
easeInElastic: function(t) {
var e = 1.70158,
a = 0,
i = 1;
return 0 === t ? 0 : 1 === (t /= 1) ? 1 : (a || (a = .3), i < Math.abs(1) ? (i = 1, e = a / 4) : e = a / (2 * Math.PI) * Math.asin(1 / i), -(i * Math.pow(2, 10 * (t -= 1)) * Math.sin((1 * t - e) * (2 * Math.PI) / a)))
},
easeOutElastic: function(t) {
var e = 1.70158,
a = 0,
i = 1;
return 0 === t ? 0 : 1 === (t /= 1) ? 1 : (a || (a = .3), i < Math.abs(1) ? (i = 1, e = a / 4) : e = a / (2 * Math.PI) * Math.asin(1 / i), i * Math.pow(2, -10 * t) * Math.sin((1 * t - e) * (2 * Math.PI) / a) + 1)
},
easeInOutElastic: function(t) {
var e = 1.70158,
a = 0,
i = 1;
return 0 === t ? 0 : 2 === (t /= .5) ? 1 : (a || (a = 1 * (.3 * 1.5)), i < Math.abs(1) ? (i = 1, e = a / 4) : e = a / (2 * Math.PI) * Math.asin(1 / i), 1 > t ? -.5 * (i * Math.pow(2, 10 * (t -= 1)) * Math.sin((1 * t - e) * (2 * Math.PI) / a)) : i * Math.pow(2, -10 * (t -= 1)) * Math.sin((1 * t - e) * (2 * Math.PI) / a) * .5 + 1)
},
easeInBack: function(t) {
var e = 1.70158;
return 1 * (t /= 1) * t * ((e + 1) * t - e)
},
easeOutBack: function(t) {
var e = 1.70158;
return 1 * ((t = t / 1 - 1) * t * ((e + 1) * t + e) + 1)
},
easeInOutBack: function(t) {
var e = 1.70158;
return (t /= .5) < 1 ? .5 * (t * t * (((e *= 1.525) + 1) * t - e)) : .5 * ((t -= 2) * t * (((e *= 1.525) + 1) * t + e) + 2)
},
easeInBounce: function(t) {
return 1 - r.easeOutBounce(1 - t)
},
easeOutBounce: function(t) {
return (t /= 1) < 1 / 2.75 ? 1 * (7.5625 * t * t) : 2 / 2.75 > t ? 1 * (7.5625 * (t -= 1.5 / 2.75) * t + .75) : 2.5 / 2.75 > t ? 1 * (7.5625 * (t -= 2.25 / 2.75) * t + .9375) : 1 * (7.5625 * (t -= 2.625 / 2.75) * t + .984375)
},
easeInOutBounce: function(t) {
return .5 > t ? .5 * r.easeInBounce(2 * t) : .5 * r.easeOutBounce(2 * t - 1) + .5
}
};
o.requestAnimFrame = function() {
return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function(t) {
return window.setTimeout(t, 1e3 / 60)
}
}(), o.cancelAnimFrame = function() {
return window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || window.oCancelAnimationFrame || window.msCancelAnimationFrame || function(t) {
return window.clearTimeout(t, 1e3 / 60)
}
}(), o.getRelativePosition = function(t, e) {
var a, i, n = t.originalEvent || t,
r = t.currentTarget || t.srcElement,
l = r.getBoundingClientRect(),
s = n.touches;
s && s.length > 0 ? (a = s[0].clientX, i = s[0].clientY) : (a = n.clientX, i = n.clientY);
var d = parseFloat(o.getStyle(r, "padding-left")),
u = parseFloat(o.getStyle(r, "padding-top")),
c = parseFloat(o.getStyle(r, "padding-right")),
h = parseFloat(o.getStyle(r, "padding-bottom")),
f = l.right - l.left - d - c,
g = l.bottom - l.top - u - h;
return a = Math.round((a - l.left - d) / f * r.width / e.currentDevicePixelRatio), i = Math.round((i - l.top - u) / g * r.height / e.currentDevicePixelRatio), {
x: a,
y: i
}
}, o.addEvent = function(t, e, a) {
t.addEventListener ? t.addEventListener(e, a) : t.attachEvent ? t.attachEvent("on" + e, a) : t["on" + e] = a
}, o.removeEvent = function(t, e, a) {
t.removeEventListener ? t.removeEventListener(e, a, !1) : t.detachEvent ? t.detachEvent("on" + e, a) : t["on" + e] = o.noop
}, o.bindEvents = function(t, e, a) {
var i = t.events = t.events || {};
o.each(e, function(e) {
i[e] = function() {
a.apply(t, arguments)
}, o.addEvent(t.chart.canvas, e, i[e])
})
}, o.unbindEvents = function(t, e) {
var a = t.chart.canvas;
o.each(e, function(t, e) {
o.removeEvent(a, e, t)
})
}, o.getConstraintWidth = function(t) {
return n(t, "max-width", "clientWidth")
}, o.getConstraintHeight = function(t) {
return n(t, "max-height", "clientHeight")
}, o.getMaximumWidth = function(t) {
var e = t.parentNode,
a = parseInt(o.getStyle(e, "padding-left"), 10),
i = parseInt(o.getStyle(e, "padding-right"), 10),
n = e.clientWidth - a - i,
r = o.getConstraintWidth(t);
return isNaN(r) ? n : Math.min(n, r)
}, o.getMaximumHeight = function(t) {
var e = t.parentNode,
a = parseInt(o.getStyle(e, "padding-top"), 10),
i = parseInt(o.getStyle(e, "padding-bottom"), 10),
n = e.clientHeight - a - i,
r = o.getConstraintHeight(t);
return isNaN(r) ? n : Math.min(n, r)
}, o.getStyle = function(t, e) {
return t.currentStyle ? t.currentStyle[e] : document.defaultView.getComputedStyle(t, null).getPropertyValue(e)
}, o.retinaScale = function(t) {
var e = t.currentDevicePixelRatio = window.devicePixelRatio || 1;
if (1 !== e) {
var a = t.canvas,
i = t.height,
n = t.width;
a.height = i * e, a.width = n * e, t.ctx.scale(e, e), a.style.height = i + "px", a.style.width = n + "px"
}
}, o.clear = function(t) {
t.ctx.clearRect(0, 0, t.width, t.height)
}, o.fontString = function(t, e, a) {
return e + " " + t + "px " + a
}, o.longestText = function(t, e, a, i) {
i = i || {};
var n = i.data = i.data || {},
r = i.garbageCollect = i.garbageCollect || [];
i.font !== e && (n = i.data = {}, r = i.garbageCollect = [], i.font = e), t.font = e;
var l = 0;
o.each(a, function(e) {
void 0 !== e && null !== e && o.isArray(e) !== !0 ? l = o.measureText(t, n, r, l, e) : o.isArray(e) && o.each(e, function(e) {
void 0 === e || null === e || o.isArray(e) || (l = o.measureText(t, n, r, l, e))
})
});
var s = r.length / 2;
if (s > a.length) {
for (var d = 0; s > d; d++) delete n[r[d]];
r.splice(0, s)
}
return l
}, o.measureText = function(t, e, a, i, n) {
var o = e[n];
return o || (o = e[n] = t.measureText(n).width, a.push(n)), o > i && (i = o), i
}, o.numberOfLabelLines = function(t) {
var e = 1;
return o.each(t, function(t) {
o.isArray(t) && t.length > e && (e = t.length)
}), e
}, o.drawRoundedRectangle = function(t, e, a, i, n, o) {
t.beginPath(), t.moveTo(e + o, a), t.lineTo(e + i - o, a), t.quadraticCurveTo(e + i, a, e + i, a + o), t.lineTo(e + i, a + n - o), t.quadraticCurveTo(e + i, a + n, e + i - o, a + n), t.lineTo(e + o, a + n), t.quadraticCurveTo(e, a + n, e, a + n - o), t.lineTo(e, a + o), t.quadraticCurveTo(e, a, e + o, a), t.closePath()
}, o.color = function(e) {
return i ? i(e instanceof CanvasGradient ? t.defaults.global.defaultColor : e) : (console.error("Color.js not found!"), e)
}, o.addResizeListener = function(t, e) {
var a = document.createElement("iframe");
a.className = "chartjs-hidden-iframe", a.style.cssText = "display:block;overflow:hidden;border:0;margin:0;top:0;left:0;bottom:0;right:0;height:100%;width:100%;position:absolute;pointer-events:none;z-index:-1;", a.tabIndex = -1;
var i = t._chartjs = {
resizer: a,
ticking: !1
},
n = function() {
i.ticking || (i.ticking = !0, o.requestAnimFrame.call(window, function() {
return i.resizer ? (i.ticking = !1, e()) : void 0
}))
};
o.addEvent(a, "load", function() {
o.addEvent(a.contentWindow || a, "resize", n), n()
}), t.insertBefore(a, t.firstChild)
}, o.removeResizeListener = function(t) {
if (t && t._chartjs) {
var e = t._chartjs.resizer;
e && (e.parentNode.removeChild(e), t._chartjs.resizer = null), delete t._chartjs
}
}, o.isArray = Array.isArray ? function(t) {
return Array.isArray(t)
} : function(t) {
return "[object Array]" === Object.prototype.toString.call(t)
}, o.arrayEquals = function(t, e) {
var a, i, n, r;
if (!t || !e || t.length !== e.length) return !1;
for (a = 0, i = t.length; i > a; ++a)
if (n = t[a], r = e[a], n instanceof Array && r instanceof Array) {
if (!o.arrayEquals(n, r)) return !1
} else if (n !== r) return !1;
return !0
}, o.callCallback = function(t, e, a) {
t && "function" == typeof t.call && t.apply(a, e)
}, o.getHoverColor = function(t) {
return t instanceof CanvasPattern ? t : o.color(t).saturate(.5).darken(.1).rgbString()
}
}
}, {
3: 3
}],
27: [function(t, e, a) {
"use strict";
e.exports = function(t) {
function e(t, e) {
var a, i, n, o, r, l = t.data.datasets;
for (i = 0, o = l.length; o > i; ++i)
if (t.isDatasetVisible(i))
for (a = t.getDatasetMeta(i), n = 0, r = a.data.length; r > n; ++n) {
var s = a.data[n];
s._view.skip || e(s)
}
}
function a(t, a) {
var i = [];
return e(t, function(t) {
t.inRange(a.x, a.y) && i.push(t)
}), i
}
function i(t, a, i, n) {
var r = Number.POSITIVE_INFINITY,
l = [];
return n || (n = o.distanceBetweenPoints), e(t, function(t) {
if (!i || t.inRange(a.x, a.y)) {
var e = t.getCenterPoint(),
o = n(a, e);
r > o ? (l = [t], r = o) : o === r && l.push(t)
}
}), l
}
function n(t, e, n) {
var r = o.getRelativePosition(e, t.chart),
l = function(t, e) {
return Math.abs(t.x - e.x)
},
s = n.intersect ? a(t, r) : i(t, r, !1, l),
d = [];
return s.length ? (t.data.datasets.forEach(function(e, a) {
if (t.isDatasetVisible(a)) {
var i = t.getDatasetMeta(a),
n = i.data[s[0]._index];
n && !n._view.skip && d.push(n)
}
}), d) : []
}
var o = t.helpers;
t.Interaction = {
modes: {
single: function(t, a) {
var i = o.getRelativePosition(a, t.chart),
n = [];
return e(t, function(t) {
return t.inRange(i.x, i.y) ? (n.push(t), n) : void 0
}), n.slice(0, 1)
},
label: n,
index: n,
dataset: function(t, e, n) {
var r = o.getRelativePosition(e, t.chart),
l = n.intersect ? a(t, r) : i(t, r, !1);
return l.length > 0 && (l = t.getDatasetMeta(l[0]._datasetIndex).data), l
},
"x-axis": function(t, e) {
return n(t, e, !0)
},
point: function(t, e) {
var i = o.getRelativePosition(e, t.chart);
return a(t, i)
},
nearest: function(t, e, a) {
var n = o.getRelativePosition(e, t.chart),
r = i(t, n, a.intersect);
return r.length > 1 && r.sort(function(t, e) {
var a = t.getArea(),
i = e.getArea(),
n = a - i;
return 0 === n && (n = t._datasetIndex - e._datasetIndex), n
}), r.slice(0, 1)
},
x: function(t, a, i) {
var n = o.getRelativePosition(a, t.chart),
r = [],
l = !1;
return e(t, function(t) {
t.inXRange(n.x) && r.push(t), t.inRange(n.x, n.y) && (l = !0)
}), i.intersect && !l && (r = []), r
},
y: function(t, a, i) {
var n = o.getRelativePosition(a, t.chart),
r = [],
l = !1;
return e(t, function(t) {
t.inYRange(n.y) && r.push(t), t.inRange(n.x, n.y) && (l = !0)
}), i.intersect && !l && (r = []), r
}
}
}
}
}, {}],
28: [function(t, e, a) {
"use strict";
e.exports = function() {
var t = function(e, a) {
return this.controller = new t.Controller(e, a, this), this.controller
};
return t.defaults = {
global: {
responsive: !0,
responsiveAnimationDuration: 0,
maintainAspectRatio: !0,
events: ["mousemove", "mouseout", "click", "touchstart", "touchmove"],
hover: {
onHover: null,
mode: "nearest",
intersect: !0,
animationDuration: 400
},
onClick: null,
defaultColor: "rgba(0,0,0,0.1)",
defaultFontColor: "#666",
defaultFontFamily: "'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",
defaultFontSize: 12,
defaultFontStyle: "normal",
showLines: !0,
elements: {},
legendCallback: function(t) {
var e = [];
e.push('<ul class="' + t.id + '-legend">');
for (var a = 0; a < t.data.datasets.length; a++) e.push('<li><span style="background-color:' + t.data.datasets[a].backgroundColor + '"></span>'), t.data.datasets[a].label && e.push(t.data.datasets[a].label), e.push("</li>");
return e.push("</ul>"), e.join("")
}
}
}, t.Chart = t, t
}
}, {}],
29: [function(t, e, a) {
"use strict";
e.exports = function(t) {
var e = t.helpers;
t.layoutService = {
defaults: {},
addBox: function(t, e) {
t.boxes || (t.boxes = []), t.boxes.push(e)
},
removeBox: function(t, e) {
t.boxes && t.boxes.splice(t.boxes.indexOf(e), 1)
},
update: function(t, a, i) {
function n(t) {
var e, a = t.isHorizontal();
a ? (e = t.update(t.options.fullWidth ? x : C, M), D -= e.height) : (e = t.update(w, S), C -= e.width), I.push({
horizontal: a,
minSize: e,
box: t
})
}
function o(t) {
var a = e.findNextWhere(I, function(e) {
return e.box === t
});
if (a)
if (t.isHorizontal()) {
var i = {
left: A,
right: T,
top: 0,
bottom: 0
};
t.update(t.options.fullWidth ? x : C, y / 2, i)
} else t.update(a.minSize.width, D)
}
function r(t) {
var a = e.findNextWhere(I, function(e) {
return e.box === t
}),
i = {
left: 0,
right: 0,
top: P,
bottom: F
};
a && t.update(a.minSize.width, D, i)
}
function l(t) {
t.isHorizontal() ? (t.left = t.options.fullWidth ? u : A, t.right = t.options.fullWidth ? a - c : A + C, t.top = L, t.bottom = L + t.height, L = t.bottom) : (t.left = V, t.right = V + t.width, t.top = P, t.bottom = P + D, V = t.right)
}
if (t) {
var s = t.options.layout,
d = s ? s.padding : null,
u = 0,
c = 0,
h = 0,
f = 0;
isNaN(d) ? (u = d.left || 0, c = d.right || 0, h = d.top || 0, f = d.bottom || 0) : (u = d, c = d, h = d, f = d);
var g = e.where(t.boxes, function(t) {
return "left" === t.options.position
}),
p = e.where(t.boxes, function(t) {
return "right" === t.options.position
}),
m = e.where(t.boxes, function(t) {
return "top" === t.options.position
}),
b = e.where(t.boxes, function(t) {
return "bottom" === t.options.position
}),
v = e.where(t.boxes, function(t) {
return "chartArea" === t.options.position
});
m.sort(function(t, e) {
return (e.options.fullWidth ? 1 : 0) - (t.options.fullWidth ? 1 : 0)
}), b.sort(function(t, e) {
return (t.options.fullWidth ? 1 : 0) - (e.options.fullWidth ? 1 : 0)
});
var x = a - u - c,
y = i - h - f,
k = x / 2,
S = y / 2,
w = (a - k) / (g.length + p.length),
M = (i - S) / (m.length + b.length),
C = x,
D = y,
I = [];
e.each(g.concat(p, m, b), n);
var A = u,
T = c,
P = h,
F = f;
e.each(g.concat(p), o), e.each(g, function(t) {
A += t.width
}), e.each(p, function(t) {
T += t.width
}), e.each(m.concat(b), o), e.each(m, function(t) {
P += t.height
}), e.each(b, function(t) {
F += t.height
}), e.each(g.concat(p), r), A = u, T = c, P = h, F = f, e.each(g, function(t) {
A += t.width
}), e.each(p, function(t) {
T += t.width
}), e.each(m, function(t) {
P += t.height
}), e.each(b, function(t) {
F += t.height
});
var _ = i - P - F,
R = a - A - T;
(R !== C || _ !== D) && (e.each(g, function(t) {
t.height = _
}), e.each(p, function(t) {
t.height = _
}), e.each(m, function(t) {
t.options.fullWidth || (t.width = R)
}), e.each(b, function(t) {
t.options.fullWidth || (t.width = R)
}), D = _, C = R);
var V = u,
L = h;
e.each(g.concat(m), l), V += C, L += D, e.each(p, l), e.each(b, l), t.chartArea = {
left: A,
top: P,
right: A + C,
bottom: P + D
}, e.each(v, function(e) {
e.left = t.chartArea.left, e.top = t.chartArea.top, e.right = t.chartArea.right, e.bottom = t.chartArea.bottom, e.update(C, D)
})
}
}
}
}
}, {}],
30: [function(t, e, a) {
"use strict";
e.exports = function(t) {
function e(t, e) {
return t.usePointStyle ? e * Math.SQRT2 : t.boxWidth
}
var a = t.helpers,
i = a.noop;
t.defaults.global.legend = {
display: !0,
position: "top",
fullWidth: !0,
reverse: !1,
onClick: function(t, e) {
var a = e.datasetIndex,
i = this.chart,
n = i.getDatasetMeta(a);
n.hidden = null === n.hidden ? !i.data.datasets[a].hidden : null, i.update()
},
onHover: null,
labels: {
boxWidth: 40,
padding: 10,
generateLabels: function(t) {
var e = t.data;
return a.isArray(e.datasets) ? e.datasets.map(function(e, i) {
return {
text: e.label,
fillStyle: a.isArray(e.backgroundColor) ? e.backgroundColor[0] : e.backgroundColor,
hidden: !t.isDatasetVisible(i),
lineCap: e.borderCapStyle,
lineDash: e.borderDash,
lineDashOffset: e.borderDashOffset,
lineJoin: e.borderJoinStyle,
lineWidth: e.borderWidth,
strokeStyle: e.borderColor,
pointStyle: e.pointStyle,
datasetIndex: i
}
}, this) : []
}
}
}, t.Legend = t.Element.extend({
initialize: function(t) {
a.extend(this, t), this.legendHitBoxes = [], this.doughnutMode = !1
},
beforeUpdate: i,
update: function(t, e, a) {
var i = this;
return i.beforeUpdate(), i.maxWidth = t, i.maxHeight = e, i.margins = a, i.beforeSetDimensions(), i.setDimensions(), i.afterSetDimensions(), i.beforeBuildLabels(), i.buildLabels(), i.afterBuildLabels(), i.beforeFit(), i.fit(), i.afterFit(), i.afterUpdate(), i.minSize
},
afterUpdate: i,
beforeSetDimensions: i,
setDimensions: function() {
var t = this;
t.isHorizontal() ? (t.width = t.maxWidth, t.left = 0, t.right = t.width) : (t.height = t.maxHeight, t.top = 0, t.bottom = t.height), t.paddingLeft = 0, t.paddingTop = 0, t.paddingRight = 0, t.paddingBottom = 0, t.minSize = {
width: 0,
height: 0
}
},
afterSetDimensions: i,
beforeBuildLabels: i,
buildLabels: function() {
var t = this;
t.legendItems = t.options.labels.generateLabels.call(t, t.chart), t.options.reverse && t.legendItems.reverse()
},
afterBuildLabels: i,
beforeFit: i,
fit: function() {
var i = this,
n = i.options,
o = n.labels,
r = n.display,
l = i.ctx,
s = t.defaults.global,
d = a.getValueOrDefault,
u = d(o.fontSize, s.defaultFontSize),
c = d(o.fontStyle, s.defaultFontStyle),
h = d(o.fontFamily, s.defaultFontFamily),
f = a.fontString(u, c, h),
g = i.legendHitBoxes = [],
p = i.minSize,
m = i.isHorizontal();
if (m ? (p.width = i.maxWidth, p.height = r ? 10 : 0) : (p.width = r ? 10 : 0, p.height = i.maxHeight), r)
if (l.font = f, m) {
var b = i.lineWidths = [0],
v = i.legendItems.length ? u + o.padding : 0;
l.textAlign = "left", l.textBaseline = "top", a.each(i.legendItems, function(t, a) {
var n = e(o, u),
r = n + u / 2 + l.measureText(t.text).width;
b[b.length - 1] + r + o.padding >= i.width && (v += u + o.padding, b[b.length] = i.left), g[a] = {
left: 0,
top: 0,
width: r,
height: u
}, b[b.length - 1] += r + o.padding
}), p.height += v
} else {
var x = o.padding,
y = i.columnWidths = [],
k = o.padding,
S = 0,
w = 0,
M = u + x;
a.each(i.legendItems, function(t, a) {
var i = e(o, u),
n = i + u / 2 + l.measureText(t.text).width;
w + M > p.height && (k += S + o.padding, y.push(S), S = 0, w = 0), S = Math.max(S, n), w += M, g[a] = {
left: 0,
top: 0,
width: n,
height: u
}
}), k += S, y.push(S), p.width += k
} i.width = p.width, i.height = p.height
},
afterFit: i,
isHorizontal: function() {
return "top" === this.options.position || "bottom" === this.options.position
},
draw: function() {
var i = this,
n = i.options,
o = n.labels,
r = t.defaults.global,
l = r.elements.line,
s = i.width,
d = i.lineWidths;
if (n.display) {
var u, c = i.ctx,
h = a.getValueOrDefault,
f = h(o.fontColor, r.defaultFontColor),
g = h(o.fontSize, r.defaultFontSize),
p = h(o.fontStyle, r.defaultFontStyle),
m = h(o.fontFamily, r.defaultFontFamily),
b = a.fontString(g, p, m);
c.textAlign = "left", c.textBaseline = "top", c.lineWidth = .5, c.strokeStyle = f, c.fillStyle = f, c.font = b;
var v = e(o, g),
x = i.legendHitBoxes,
y = function(e, a, i) {
if (!(isNaN(v) || 0 >= v)) {
c.save(), c.fillStyle = h(i.fillStyle, r.defaultColor), c.lineCap = h(i.lineCap, l.borderCapStyle), c.lineDashOffset = h(i.lineDashOffset, l.borderDashOffset), c.lineJoin = h(i.lineJoin, l.borderJoinStyle), c.lineWidth = h(i.lineWidth, l.borderWidth), c.strokeStyle = h(i.strokeStyle, r.defaultColor);
var o = 0 === h(i.lineWidth, l.borderWidth);
if (c.setLineDash && c.setLineDash(h(i.lineDash, l.borderDash)), n.labels && n.labels.usePointStyle) {
var s = g * Math.SQRT2 / 2,
d = s / Math.SQRT2,
u = e + d,
f = a + d;
t.canvasHelpers.drawPoint(c, i.pointStyle, s, u, f)
} else o || c.strokeRect(e, a, v, g), c.fillRect(e, a, v, g);
c.restore()
}
},
k = function(t, e, a, i) {
c.fillText(a.text, v + g / 2 + t, e), a.hidden && (c.beginPath(), c.lineWidth = 2, c.moveTo(v + g / 2 + t, e + g / 2), c.lineTo(v + g / 2 + t + i, e + g / 2), c.stroke())
},
S = i.isHorizontal();
u = S ? {
x: i.left + (s - d[0]) / 2,
y: i.top + o.padding,
line: 0
} : {
x: i.left + o.padding,
y: i.top + o.padding,
line: 0
};
var w = g + o.padding;
a.each(i.legendItems, function(t, e) {
var a = c.measureText(t.text).width,
n = v + g / 2 + a,
r = u.x,
l = u.y;
S ? r + n >= s && (l = u.y += w, u.line++, r = u.x = i.left + (s - d[u.line]) / 2) : l + w > i.bottom && (r = u.x = r + i.columnWidths[u.line] + o.padding, l = u.y = i.top, u.line++), y(r, l, t), x[e].left = r, x[e].top = l, k(r, l, t, a), S ? u.x += n + o.padding : u.y += w
})
}
},
handleEvent: function(t) {
var e = this,
i = e.options,
n = "mouseup" === t.type ? "click" : t.type,
o = !1;
if ("mousemove" === n) {
if (!i.onHover) return
} else {
if ("click" !== n) return;
if (!i.onClick) return
}
var r = a.getRelativePosition(t, e.chart.chart),
l = r.x,
s = r.y;
if (l >= e.left && l <= e.right && s >= e.top && s <= e.bottom)
for (var d = e.legendHitBoxes, u = 0; u < d.length; ++u) {
var c = d[u];
if (l >= c.left && l <= c.left + c.width && s >= c.top && s <= c.top + c.height) {
if ("click" === n) {
i.onClick.call(e, t, e.legendItems[u]), o = !0;
break
}
if ("mousemove" === n) {
i.onHover.call(e, t, e.legendItems[u]), o = !0;
break
}
}
}
return o
}
}), t.plugins.register({
beforeInit: function(e) {
var a = e.options,
i = a.legend;
i && (e.legend = new t.Legend({
ctx: e.chart.ctx,
options: i,
chart: e
}), t.layoutService.addBox(e, e.legend))
}
})
}
}, {}],
31: [function(t, e, a) {
"use strict";
e.exports = function(t) {
var e = t.helpers.noop;
t.plugins = {
_plugins: [],
register: function(t) {
var e = this._plugins;
[].concat(t).forEach(function(t) {
-1 === e.indexOf(t) && e.push(t)
})
},
unregister: function(t) {
var e = this._plugins;
[].concat(t).forEach(function(t) {
var a = e.indexOf(t); - 1 !== a && e.splice(a, 1)
})
},
clear: function() {
this._plugins = []
},
count: function() {
return this._plugins.length
},
getAll: function() {
return this._plugins
},
notify: function(t, e) {
var a, i, n = this._plugins,
o = n.length;
for (a = 0; o > a; ++a)
if (i = n[a], "function" == typeof i[t] && i[t].apply(i, e || []) === !1) return !1;
return !0
}
}, t.PluginBase = t.Element.extend({
beforeInit: e,
afterInit: e,
beforeUpdate: e,
afterUpdate: e,
beforeDraw: e,
afterDraw: e,
destroy: e
}), t.pluginService = t.plugins
}
}, {}],
32: [function(t, e, a) {
"use strict";
e.exports = function(t) {
var e = t.helpers;
t.defaults.scale = {
display: !0,
position: "left",
gridLines: {
display: !0,
color: "rgba(0, 0, 0, 0.1)",
lineWidth: 1,
drawBorder: !0,
drawOnChartArea: !0,
drawTicks: !0,
tickMarkLength: 10,
zeroLineWidth: 1,
zeroLineColor: "rgba(0,0,0,0.25)",
offsetGridLines: !1,
borderDash: [],
borderDashOffset: 0
},
scaleLabel: {
labelString: "",
display: !1
},
ticks: {
beginAtZero: !1,
minRotation: 0,
maxRotation: 50,
mirror: !1,
padding: 10,
reverse: !1,
display: !0,
autoSkip: !0,
autoSkipPadding: 0,
labelOffset: 0,
callback: t.Ticks.formatters.values
}
}, t.Scale = t.Element.extend({
beforeUpdate: function() {
e.callCallback(this.options.beforeUpdate, [this])
},
update: function(t, a, i) {
var n = this;
return n.beforeUpdate(), n.maxWidth = t, n.maxHeight = a, n.margins = e.extend({
left: 0,
right: 0,
top: 0,
bottom: 0
}, i), n.beforeSetDimensions(), n.setDimensions(), n.afterSetDimensions(), n.beforeDataLimits(), n.determineDataLimits(), n.afterDataLimits(), n.beforeBuildTicks(), n.buildTicks(), n.afterBuildTicks(), n.beforeTickToLabelConversion(), n.convertTicksToLabels(), n.afterTickToLabelConversion(), n.beforeCalculateTickRotation(), n.calculateTickRotation(), n.afterCalculateTickRotation(), n.beforeFit(), n.fit(), n.afterFit(), n.afterUpdate(), n.minSize
},
afterUpdate: function() {
e.callCallback(this.options.afterUpdate, [this])
},
beforeSetDimensions: function() {
e.callCallback(this.options.beforeSetDimensions, [this])
},
setDimensions: function() {
var t = this;
t.isHorizontal() ? (t.width = t.maxWidth, t.left = 0, t.right = t.width) : (t.height = t.maxHeight, t.top = 0, t.bottom = t.height), t.paddingLeft = 0, t.paddingTop = 0, t.paddingRight = 0, t.paddingBottom = 0
},
afterSetDimensions: function() {
e.callCallback(this.options.afterSetDimensions, [this])
},
beforeDataLimits: function() {
e.callCallback(this.options.beforeDataLimits, [this])
},
determineDataLimits: e.noop,
afterDataLimits: function() {
e.callCallback(this.options.afterDataLimits, [this])
},
beforeBuildTicks: function() {
e.callCallback(this.options.beforeBuildTicks, [this])
},
buildTicks: e.noop,
afterBuildTicks: function() {
e.callCallback(this.options.afterBuildTicks, [this])
},
beforeTickToLabelConversion: function() {
e.callCallback(this.options.beforeTickToLabelConversion, [this])
},
convertTicksToLabels: function() {
var t = this,
e = t.options.ticks;
t.ticks = t.ticks.map(e.userCallback || e.callback)
},
afterTickToLabelConversion: function() {
e.callCallback(this.options.afterTickToLabelConversion, [this])
},
beforeCalculateTickRotation: function() {
e.callCallback(this.options.beforeCalculateTickRotation, [this])
},
calculateTickRotation: function() {
var a = this,
i = a.ctx,
n = t.defaults.global,
o = a.options.ticks,
r = e.getValueOrDefault(o.fontSize, n.defaultFontSize),
l = e.getValueOrDefault(o.fontStyle, n.defaultFontStyle),
s = e.getValueOrDefault(o.fontFamily, n.defaultFontFamily),
d = e.fontString(r, l, s);
i.font = d;
var u, c = i.measureText(a.ticks[0]).width,
h = i.measureText(a.ticks[a.ticks.length - 1]).width;
if (a.labelRotation = o.minRotation || 0, a.paddingRight = 0, a.paddingLeft = 0, a.options.display && a.isHorizontal()) {
a.paddingRight = h / 2 + 3, a.paddingLeft = c / 2 + 3, a.longestTextCache || (a.longestTextCache = {});
for (var f, g, p = e.longestText(i, d, a.ticks, a.longestTextCache), m = p, b = a.getPixelForTick(1) - a.getPixelForTick(0) - 6; m > b && a.labelRotation < o.maxRotation;) {
if (f = Math.cos(e.toRadians(a.labelRotation)), g = Math.sin(e.toRadians(a.labelRotation)), u = f * c, u + r / 2 > a.yLabelWidth && (a.paddingLeft = u + r / 2), a.paddingRight = r / 2, g * p > a.maxHeight) {
a.labelRotation--;
break
}
a.labelRotation++, m = f * p
}
}
a.margins && (a.paddingLeft = Math.max(a.paddingLeft - a.margins.left, 0), a.paddingRight = Math.max(a.paddingRight - a.margins.right, 0))
},
afterCalculateTickRotation: function() {
e.callCallback(this.options.afterCalculateTickRotation, [this])
},
beforeFit: function() {
e.callCallback(this.options.beforeFit, [this])
},
fit: function() {
var a = this,
i = a.minSize = {
width: 0,
height: 0
},
n = a.options,
o = t.defaults.global,
r = n.ticks,
l = n.scaleLabel,
s = n.gridLines,
d = n.display,
u = a.isHorizontal(),
c = e.getValueOrDefault(r.fontSize, o.defaultFontSize),
h = e.getValueOrDefault(r.fontStyle, o.defaultFontStyle),
f = e.getValueOrDefault(r.fontFamily, o.defaultFontFamily),
g = e.fontString(c, h, f),
p = e.getValueOrDefault(l.fontSize, o.defaultFontSize),
m = n.gridLines.tickMarkLength;
if (u ? i.width = a.isFullWidth() ? a.maxWidth - a.margins.left - a.margins.right : a.maxWidth : i.width = d && s.drawTicks ? m : 0, u ? i.height = d && s.drawTicks ? m : 0 : i.height = a.maxHeight, l.display && d && (u ? i.height += 1.5 * p : i.width += 1.5 * p), r.display && d) {
a.longestTextCache || (a.longestTextCache = {});
var b = e.longestText(a.ctx, g, a.ticks, a.longestTextCache),
v = e.numberOfLabelLines(a.ticks),
x = .5 * c;
if (u) {
a.longestLabelWidth = b;
var y = Math.sin(e.toRadians(a.labelRotation)) * a.longestLabelWidth + c * v + x * v;
i.height = Math.min(a.maxHeight, i.height + y), a.ctx.font = g;
var k = a.ctx.measureText(a.ticks[0]).width,
S = a.ctx.measureText(a.ticks[a.ticks.length - 1]).width,
w = Math.cos(e.toRadians(a.labelRotation)),
M = Math.sin(e.toRadians(a.labelRotation));
a.paddingLeft = 0 !== a.labelRotation ? w * k + 3 : k / 2 + 3, a.paddingRight = 0 !== a.labelRotation ? M * (c / 2) + 3 : S / 2 + 3
} else {
var C = a.maxWidth - i.width,
D = r.mirror;
D ? b = 0 : b += a.options.ticks.padding, C > b ? i.width += b : i.width = a.maxWidth, a.paddingTop = c / 2, a.paddingBottom = c / 2
}
}
a.margins && (a.paddingLeft = Math.max(a.paddingLeft - a.margins.left, 0), a.paddingTop = Math.max(a.paddingTop - a.margins.top, 0), a.paddingRight = Math.max(a.paddingRight - a.margins.right, 0), a.paddingBottom = Math.max(a.paddingBottom - a.margins.bottom, 0)), a.width = i.width, a.height = i.height
},
afterFit: function() {
e.callCallback(this.options.afterFit, [this])
},
isHorizontal: function() {
return "top" === this.options.position || "bottom" === this.options.position
},
isFullWidth: function() {
return this.options.fullWidth
},
getRightValue: function(t) {
return null === t || "undefined" == typeof t ? NaN : "number" != typeof t || isFinite(t) ? "object" == typeof t ? t instanceof Date || t.isValid ? t : this.getRightValue(this.isHorizontal() ? t.x : t.y) : t : NaN
},
getLabelForIndex: e.noop,
getPixelForValue: e.noop,
getValueForPixel: e.noop,
getPixelForTick: function(t, e) {
var a = this;
if (a.isHorizontal()) {
var i = a.width - (a.paddingLeft + a.paddingRight),
n = i / Math.max(a.ticks.length - (a.options.gridLines.offsetGridLines ? 0 : 1), 1),
o = n * t + a.paddingLeft;
e && (o += n / 2);
var r = a.left + Math.round(o);
return r += a.isFullWidth() ? a.margins.left : 0
}
var l = a.height - (a.paddingTop + a.paddingBottom);
return a.top + t * (l / (a.ticks.length - 1))
},
getPixelForDecimal: function(t) {
var e = this;
if (e.isHorizontal()) {
var a = e.width - (e.paddingLeft + e.paddingRight),
i = a * t + e.paddingLeft,
n = e.left + Math.round(i);
return n += e.isFullWidth() ? e.margins.left : 0
}
return e.top + t * e.height
},
getBasePixel: function() {
var t = this,
e = t.min,
a = t.max;
return t.getPixelForValue(t.beginAtZero ? 0 : 0 > e && 0 > a ? a : e > 0 && a > 0 ? e : 0)
},
draw: function(a) {
var i = this,
n = i.options;
if (n.display) {
var o, r, l = i.ctx,
s = t.defaults.global,
d = n.ticks,
u = n.gridLines,
c = n.scaleLabel,
h = 0 !== i.labelRotation,
f = d.autoSkip,
g = i.isHorizontal();
d.maxTicksLimit && (r = d.maxTicksLimit);
var p = e.getValueOrDefault(d.fontColor, s.defaultFontColor),
m = e.getValueOrDefault(d.fontSize, s.defaultFontSize),
b = e.getValueOrDefault(d.fontStyle, s.defaultFontStyle),
v = e.getValueOrDefault(d.fontFamily, s.defaultFontFamily),
x = e.fontString(m, b, v),
y = u.tickMarkLength,
k = e.getValueOrDefault(u.borderDash, s.borderDash),
S = e.getValueOrDefault(u.borderDashOffset, s.borderDashOffset),
w = e.getValueOrDefault(c.fontColor, s.defaultFontColor),
M = e.getValueOrDefault(c.fontSize, s.defaultFontSize),
C = e.getValueOrDefault(c.fontStyle, s.defaultFontStyle),
D = e.getValueOrDefault(c.fontFamily, s.defaultFontFamily),
I = e.fontString(M, C, D),
A = e.toRadians(i.labelRotation),
T = Math.cos(A),
P = i.longestLabelWidth * T;
l.fillStyle = p;
var F = [];
if (g) {
if (o = !1, h && (P /= 2), (P + d.autoSkipPadding) * i.ticks.length > i.width - (i.paddingLeft + i.paddingRight) && (o = 1 + Math.floor((P + d.autoSkipPadding) * i.ticks.length / (i.width - (i.paddingLeft + i.paddingRight)))), r && i.ticks.length > r)
for (; !o || i.ticks.length / (o || 1) > r;) o || (o = 1), o += 1;
f || (o = !1)
}
var _ = "right" === n.position ? i.left : i.right - y,
R = "right" === n.position ? i.left + y : i.right,
V = "bottom" === n.position ? i.top : i.bottom - y,
L = "bottom" === n.position ? i.top + y : i.bottom;
if (e.each(i.ticks, function(t, r) {
if (void 0 !== t && null !== t) {
var l = i.ticks.length === r + 1,
s = o > 1 && r % o > 0 || r % o === 0 && r + o >= i.ticks.length;
if ((!s || l) && void 0 !== t && null !== t) {
var c, f;
r === ("undefined" != typeof i.zeroLineIndex ? i.zeroLineIndex : 0) ? (c = u.zeroLineWidth, f = u.zeroLineColor) : (c = e.getValueAtIndexOrDefault(u.lineWidth, r), f = e.getValueAtIndexOrDefault(u.color, r));
var p, m, b, v, x, w, M, C, D, I, T = "middle",
P = "middle";
if (g) {
h || (P = "top" === n.position ? "bottom" : "top"), T = h ? "right" : "center";
var O = i.getPixelForTick(r) + e.aliasPixel(c);
D = i.getPixelForTick(r, u.offsetGridLines) + d.labelOffset, I = h ? i.top + 12 : "top" === n.position ? i.bottom - y : i.top + y, p = b = x = M = O, m = V, v = L, w = a.top, C = a.bottom
} else {
"left" === n.position ? d.mirror ? (D = i.right + d.padding, T = "left") : (D = i.right - d.padding, T = "right") : d.mirror ? (D = i.left - d.padding, T = "right") : (D = i.left + d.padding, T = "left");
var B = i.getPixelForTick(r);
B += e.aliasPixel(c), I = i.getPixelForTick(r, u.offsetGridLines), p = _, b = R, x = a.left, M = a.right, m = v = w = C = B
}
F.push({
tx1: p,
ty1: m,
tx2: b,
ty2: v,
x1: x,
y1: w,
x2: M,
y2: C,
labelX: D,
labelY: I,
glWidth: c,
glColor: f,
glBorderDash: k,
glBorderDashOffset: S,
rotation: -1 * A,
label: t,
textBaseline: P,
textAlign: T
})
}
}
}), e.each(F, function(t) {
if (u.display && (l.save(), l.lineWidth = t.glWidth, l.strokeStyle = t.glColor, l.setLineDash && (l.setLineDash(t.glBorderDash), l.lineDashOffset = t.glBorderDashOffset), l.beginPath(), u.drawTicks && (l.moveTo(t.tx1, t.ty1), l.lineTo(t.tx2, t.ty2)), u.drawOnChartArea && (l.moveTo(t.x1, t.y1), l.lineTo(t.x2, t.y2)), l.stroke(), l.restore()), d.display) {
l.save(), l.translate(t.labelX, t.labelY), l.rotate(t.rotation), l.font = x, l.textBaseline = t.textBaseline, l.textAlign = t.textAlign;
var a = t.label;
if (e.isArray(a))
for (var i = 0, n = -(a.length - 1) * m * .75; i < a.length; ++i) l.fillText("" + a[i], 0, n), n += 1.5 * m;
else l.fillText(a, 0, 0);
l.restore()
}
}), c.display) {
var O, B, W = 0;
if (g) O = i.left + (i.right - i.left) / 2, B = "bottom" === n.position ? i.bottom - M / 2 : i.top + M / 2;
else {
var z = "left" === n.position;
O = z ? i.left + M / 2 : i.right - M / 2, B = i.top + (i.bottom - i.top) / 2, W = z ? -.5 * Math.PI : .5 * Math.PI
}
l.save(), l.translate(O, B), l.rotate(W), l.textAlign = "center", l.textBaseline = "middle", l.fillStyle = w, l.font = I, l.fillText(c.labelString, 0, 0), l.restore()
}
if (u.drawBorder) {
l.lineWidth = e.getValueAtIndexOrDefault(u.lineWidth, 0), l.strokeStyle = e.getValueAtIndexOrDefault(u.color, 0);
var N = i.left,
E = i.right,
H = i.top,
U = i.bottom,
j = e.aliasPixel(l.lineWidth);
g ? (H = U = "top" === n.position ? i.bottom : i.top, H += j, U += j) : (N = E = "left" === n.position ? i.right : i.left, N += j, E += j), l.beginPath(), l.moveTo(N, H), l.lineTo(E, U), l.stroke()
}
}
}
})
}
}, {}],
33: [function(t, e, a) {
"use strict";
e.exports = function(t) {
var e = t.helpers;
t.scaleService = {
constructors: {},
defaults: {},
registerScaleType: function(t, a, i) {
this.constructors[t] = a, this.defaults[t] = e.clone(i)
},
getScaleConstructor: function(t) {
return this.constructors.hasOwnProperty(t) ? this.constructors[t] : void 0
},
getScaleDefaults: function(a) {
return this.defaults.hasOwnProperty(a) ? e.scaleMerge(t.defaults.scale, this.defaults[a]) : {}
},
updateScaleDefaults: function(t, a) {
var i = this.defaults;
i.hasOwnProperty(t) && (i[t] = e.extend(i[t], a))
},
addScalesToLayout: function(a) {
e.each(a.scales, function(e) {
t.layoutService.addBox(a, e)
})
}
}
}
}, {}],
34: [function(t, e, a) {
"use strict";
e.exports = function(t) {
var e = t.helpers;
t.Ticks = {
generators: {
linear: function(t, a) {
var i, n = [];
if (t.stepSize && t.stepSize > 0) i = t.stepSize;
else {
var o = e.niceNum(a.max - a.min, !1);
i = e.niceNum(o / (t.maxTicks - 1), !0)
}
var r = Math.floor(a.min / i) * i,
l = Math.ceil(a.max / i) * i;
if (t.min && t.max && t.stepSize) {
var s = (t.max - t.min) % t.stepSize === 0;
s && (r = t.min, l = t.max)
}
var d = (l - r) / i;
d = e.almostEquals(d, Math.round(d), i / 1e3) ? Math.round(d) : Math.ceil(d), n.push(void 0 !== t.min ? t.min : r);
for (var u = 1; d > u; ++u) n.push(r + u * i);
return n.push(void 0 !== t.max ? t.max : l), n
},
logarithmic: function(t, a) {
for (var i = [], n = e.getValueOrDefault, o = n(t.min, Math.pow(10, Math.floor(e.log10(a.min)))); o < a.max;) {
i.push(o);
var r, l;
0 === o ? (r = Math.floor(e.log10(a.minNotZero)), l = Math.round(a.minNotZero / Math.pow(10, r))) : (r = Math.floor(e.log10(o)), l = Math.floor(o / Math.pow(10, r)) + 1), 10 === l && (l = 1, ++r), o = l * Math.pow(10, r)
}
var s = n(t.max, o);
return i.push(s), i
}
},
formatters: {
values: function(t) {
return e.isArray(t) ? t : "" + t
},
linear: function(t, a, i) {
var n = i.length > 3 ? i[2] - i[1] : i[1] - i[0];
Math.abs(n) > 1 && t !== Math.floor(t) && (n = t - Math.floor(t));
var o = e.log10(Math.abs(n)),
r = "";
if (0 !== t) {
var l = -1 * Math.floor(o);
l = Math.max(Math.min(l, 20), 0), r = t.toFixed(l)
} else r = "0";
return r
},
logarithmic: function(t, a, i) {
var n = t / Math.pow(10, Math.floor(e.log10(t)));
return 0 === t ? "0" : 1 === n || 2 === n || 5 === n || 0 === a || a === i.length - 1 ? t.toExponential() : ""
}
}
}
}
}, {}],
35: [function(t, e, a) {
"use strict";
e.exports = function(t) {
var e = t.helpers;
t.defaults.global.title = {
display: !1,
position: "top",
fullWidth: !0,
fontStyle: "bold",
padding: 10,
text: ""
};
var a = e.noop;
t.Title = t.Element.extend({
initialize: function(a) {
var i = this;
e.extend(i, a), i.options = e.configMerge(t.defaults.global.title, a.options), i.legendHitBoxes = []
},
beforeUpdate: function() {
var a = this.chart.options;
a && a.title && (this.options = e.configMerge(t.defaults.global.title, a.title))
},
update: function(t, e, a) {
var i = this;
return i.beforeUpdate(), i.maxWidth = t, i.maxHeight = e, i.margins = a, i.beforeSetDimensions(), i.setDimensions(), i.afterSetDimensions(), i.beforeBuildLabels(), i.buildLabels(), i.afterBuildLabels(), i.beforeFit(), i.fit(), i.afterFit(), i.afterUpdate(), i.minSize
},
afterUpdate: a,
beforeSetDimensions: a,
setDimensions: function() {
var t = this;
t.isHorizontal() ? (t.width = t.maxWidth, t.left = 0, t.right = t.width) : (t.height = t.maxHeight, t.top = 0, t.bottom = t.height), t.paddingLeft = 0, t.paddingTop = 0, t.paddingRight = 0, t.paddingBottom = 0, t.minSize = {
width: 0,
height: 0
}
},
afterSetDimensions: a,
beforeBuildLabels: a,
buildLabels: a,
afterBuildLabels: a,
beforeFit: a,
fit: function() {
var a = this,
i = e.getValueOrDefault,
n = a.options,
o = t.defaults.global,
r = n.display,
l = i(n.fontSize, o.defaultFontSize),
s = a.minSize;
a.isHorizontal() ? (s.width = a.maxWidth, s.height = r ? l + 2 * n.padding : 0) : (s.width = r ? l + 2 * n.padding : 0, s.height = a.maxHeight), a.width = s.width, a.height = s.height
},
afterFit: a,
isHorizontal: function() {
var t = this.options.position;
return "top" === t || "bottom" === t
},
draw: function() {
var a = this,
i = a.ctx,
n = e.getValueOrDefault,
o = a.options,
r = t.defaults.global;
if (o.display) {
var l, s, d, u = n(o.fontSize, r.defaultFontSize),
c = n(o.fontStyle, r.defaultFontStyle),
h = n(o.fontFamily, r.defaultFontFamily),
f = e.fontString(u, c, h),
g = 0,
p = a.top,
m = a.left,
b = a.bottom,
v = a.right;
i.fillStyle = n(o.fontColor, r.defaultFontColor), i.font = f, a.isHorizontal() ? (l = m + (v - m) / 2, s = p + (b - p) / 2, d = v - m) : (l = "left" === o.position ? m + u / 2 : v - u / 2, s = p + (b - p) / 2, d = b - p, g = Math.PI * ("left" === o.position ? -.5 : .5)), i.save(), i.translate(l, s), i.rotate(g), i.textAlign = "center", i.textBaseline = "middle", i.fillText(o.text, 0, 0, d), i.restore()
}
}
}), t.plugins.register({
beforeInit: function(e) {
var a = e.options,
i = a.title;
i && (e.titleBlock = new t.Title({
ctx: e.chart.ctx,
options: i,
chart: e
}), t.layoutService.addBox(e, e.titleBlock))
}
})
}
}, {}],
36: [function(t, e, a) {
"use strict";
e.exports = function(t) {
function e(t, e) {
var a = s.color(t);
return a.alpha(e * a.alpha()).rgbaString()
}
function a(t, e) {
return e && (s.isArray(e) ? Array.prototype.push.apply(t, e) : t.push(e)), t
}
function i(t) {
var e = t._xScale,
a = t._yScale || t._scale,
i = t._index,
n = t._datasetIndex;
return {
xLabel: e ? e.getLabelForIndex(i, n) : "",
yLabel: a ? a.getLabelForIndex(i, n) : "",
index: i,
datasetIndex: n,
x: t._model.x,
y: t._model.y
}
}
function n(e) {
var a = t.defaults.global,
i = s.getValueOrDefault;
return {
xPadding: e.xPadding,
yPadding: e.yPadding,
xAlign: e.xAlign,
yAlign: e.yAlign,
bodyFontColor: e.bodyFontColor,
_bodyFontFamily: i(e.bodyFontFamily, a.defaultFontFamily),
_bodyFontStyle: i(e.bodyFontStyle, a.defaultFontStyle),
_bodyAlign: e.bodyAlign,
bodyFontSize: i(e.bodyFontSize, a.defaultFontSize),
bodySpacing: e.bodySpacing,
titleFontColor: e.titleFontColor,
_titleFontFamily: i(e.titleFontFamily, a.defaultFontFamily),
_titleFontStyle: i(e.titleFontStyle, a.defaultFontStyle),
titleFontSize: i(e.titleFontSize, a.defaultFontSize),
_titleAlign: e.titleAlign,
titleSpacing: e.titleSpacing,
titleMarginBottom: e.titleMarginBottom,
footerFontColor: e.footerFontColor,
_footerFontFamily: i(e.footerFontFamily, a.defaultFontFamily),
_footerFontStyle: i(e.footerFontStyle, a.defaultFontStyle),
footerFontSize: i(e.footerFontSize, a.defaultFontSize),
_footerAlign: e.footerAlign,
footerSpacing: e.footerSpacing,
footerMarginTop: e.footerMarginTop,
caretSize: e.caretSize,
cornerRadius: e.cornerRadius,
backgroundColor: e.backgroundColor,
opacity: 0,
legendColorBackground: e.multiKeyBackground,
displayColors: e.displayColors
}
}
function o(t, e) {
var a = t._chart.ctx,
i = 2 * e.yPadding,
n = 0,
o = e.body,
r = o.reduce(function(t, e) {
return t + e.before.length + e.lines.length + e.after.length
}, 0);
r += e.beforeBody.length + e.afterBody.length;
var l = e.title.length,
d = e.footer.length,
u = e.titleFontSize,
c = e.bodyFontSize,
h = e.footerFontSize;
i += l * u, i += l ? (l - 1) * e.titleSpacing : 0, i += l ? e.titleMarginBottom : 0, i += r * c, i += r ? (r - 1) * e.bodySpacing : 0, i += d ? e.footerMarginTop : 0, i += d * h, i += d ? (d - 1) * e.footerSpacing : 0;
var f = 0,
g = function(t) {
n = Math.max(n, a.measureText(t).width + f)
};
return a.font = s.fontString(u, e._titleFontStyle, e._titleFontFamily), s.each(e.title, g), a.font = s.fontString(c, e._bodyFontStyle, e._bodyFontFamily), s.each(e.beforeBody.concat(e.afterBody), g), f = e.displayColors ? c + 2 : 0, s.each(o, function(t) {
s.each(t.before, g), s.each(t.lines, g), s.each(t.after, g)
}), f = 0, a.font = s.fontString(h, e._footerFontStyle, e._footerFontFamily), s.each(e.footer, g), n += 2 * e.xPadding, {
width: n,
height: i
}
}
function r(t, e) {
var a = t._model,
i = t._chart,
n = t._chartInstance.chartArea,
o = "center",
r = "center";
a.y < e.height ? r = "top" : a.y > i.height - e.height && (r = "bottom");
var l, s, d, u, c, h = (n.left + n.right) / 2,
f = (n.top + n.bottom) / 2;
"center" === r ? (l = function(t) {
return h >= t
}, s = function(t) {
return t > h
}) : (l = function(t) {
return t <= e.width / 2
}, s = function(t) {
return t >= i.width - e.width / 2
}), d = function(t) {
return t + e.width > i.width
}, u = function(t) {
return t - e.width < 0
}, c = function(t) {
return f >= t ? "top" : "bottom"
}, l(a.x) ? (o = "left", d(a.x) && (o = "center", r = c(a.y))) : s(a.x) && (o = "right", u(a.x) && (o = "center", r = c(a.y)));
var g = t._options;
return {
xAlign: g.xAlign ? g.xAlign : o,
yAlign: g.yAlign ? g.yAlign : r
}
}
function l(t, e, a) {
var i = t.x,
n = t.y,
o = t.caretSize,
r = t.caretPadding,
l = t.cornerRadius,
s = a.xAlign,
d = a.yAlign,
u = o + r,
c = l + r;
return "right" === s ? i -= e.width : "center" === s && (i -= e.width / 2), "top" === d ? n += u : n -= "bottom" === d ? e.height + u : e.height / 2, "center" === d ? "left" === s ? i += u : "right" === s && (i -= u) : "left" === s ? i -= c : "right" === s && (i += c), {
x: i,
y: n
}
}
var s = t.helpers;
t.defaults.global.tooltips = {
enabled: !0,
custom: null,
mode: "nearest",
position: "average",
intersect: !0,
backgroundColor: "rgba(0,0,0,0.8)",
titleFontStyle: "bold",
titleSpacing: 2,
titleMarginBottom: 6,
titleFontColor: "#fff",
titleAlign: "left",
bodySpacing: 2,
bodyFontColor: "#fff",
bodyAlign: "left",
footerFontStyle: "bold",
footerSpacing: 2,
footerMarginTop: 6,
footerFontColor: "#fff",
footerAlign: "left",
yPadding: 6,
xPadding: 6,
caretSize: 5,
cornerRadius: 6,
multiKeyBackground: "#fff",
displayColors: !0,
callbacks: {
beforeTitle: s.noop,
title: function(t, e) {
var a = "",
i = e.labels,
n = i ? i.length : 0;
if (t.length > 0) {
var o = t[0];
o.xLabel ? a = o.xLabel : n > 0 && o.index < n && (a = i[o.index])
}
return a
},
afterTitle: s.noop,
beforeBody: s.noop,
beforeLabel: s.noop,
label: function(t, e) {
var a = e.datasets[t.datasetIndex].label || "";
return a + ": " + t.yLabel
},
labelColor: function(t, e) {
var a = e.getDatasetMeta(t.datasetIndex),
i = a.data[t.index],
n = i._view;
return {
borderColor: n.borderColor,
backgroundColor: n.backgroundColor
}
},
afterLabel: s.noop,
afterBody: s.noop,
beforeFooter: s.noop,
footer: s.noop,
afterFooter: s.noop
}
}, t.Tooltip = t.Element.extend({
initialize: function() {
this._model = n(this._options)
},
getTitle: function() {
var t = this,
e = t._options,
i = e.callbacks,
n = i.beforeTitle.apply(t, arguments),
o = i.title.apply(t, arguments),
r = i.afterTitle.apply(t, arguments),
l = [];
return l = a(l, n), l = a(l, o), l = a(l, r)
},
getBeforeBody: function() {
var t = this._options.callbacks.beforeBody.apply(this, arguments);
return s.isArray(t) ? t : void 0 !== t ? [t] : []
},
getBody: function(t, e) {
var i = this,
n = i._options.callbacks,
o = [];
return s.each(t, function(t) {
var r = {
before: [],
lines: [],
after: []
};
a(r.before, n.beforeLabel.call(i, t, e)), a(r.lines, n.label.call(i, t, e)), a(r.after, n.afterLabel.call(i, t, e)), o.push(r)
}), o
},
getAfterBody: function() {
var t = this._options.callbacks.afterBody.apply(this, arguments);
return s.isArray(t) ? t : void 0 !== t ? [t] : []
},
getFooter: function() {
var t = this,
e = t._options.callbacks,
i = e.beforeFooter.apply(t, arguments),
n = e.footer.apply(t, arguments),
o = e.afterFooter.apply(t, arguments),
r = [];
return r = a(r, i), r = a(r, n), r = a(r, o)
},
update: function(e) {
var a, d, u = this,
c = u._options,
h = u._model,
f = u._model = n(c),
g = u._active,
p = u._data,
m = u._chartInstance,
b = {
xAlign: h.xAlign,
yAlign: h.yAlign
},
v = {
x: h.x,
y: h.y
},
x = {
width: h.width,
height: h.height
},
y = {
x: h.caretX,
y: h.caretY
};
if (g.length) {
f.opacity = 1;
var k = [];
y = t.Tooltip.positioners[c.position](g, u._eventPosition);
var S = [];
for (a = 0, d = g.length; d > a; ++a) S.push(i(g[a]));
c.filter && (S = S.filter(function(t) {
return c.filter(t, p)
})), c.itemSort && (S = S.sort(function(t, e) {
return c.itemSort(t, e, p)
})), s.each(S, function(t) {
k.push(c.callbacks.labelColor.call(u, t, m))
}), f.title = u.getTitle(S, p), f.beforeBody = u.getBeforeBody(S, p), f.body = u.getBody(S, p), f.afterBody = u.getAfterBody(S, p), f.footer = u.getFooter(S, p), f.x = Math.round(y.x), f.y = Math.round(y.y), f.caretPadding = s.getValueOrDefault(y.padding, 2), f.labelColors = k, f.dataPoints = S, x = o(this, f), b = r(this, x), v = l(f, x, b)
} else f.opacity = 0;
return f.xAlign = b.xAlign, f.yAlign = b.yAlign, f.x = v.x, f.y = v.y, f.width = x.width, f.height = x.height, f.caretX = y.x, f.caretY = y.y, u._model = f, e && c.custom && c.custom.call(u, f), u
},
drawCaret: function(t, a, i) {
var n, o, r, l, s, d, u = this._view,
c = this._chart.ctx,
h = u.caretSize,
f = u.cornerRadius,
g = u.xAlign,
p = u.yAlign,
m = t.x,
b = t.y,
v = a.width,
x = a.height;
"center" === p ? ("left" === g ? (n = m, o = n - h, r = n) : (n = m + v, o = n + h, r = n), s = b + x / 2, l = s - h, d = s + h) : ("left" === g ? (n = m + f, o = n + h, r = o + h) : "right" === g ? (n = m + v - f, o = n - h, r = o - h) : (o = m + v / 2, n = o - h, r = o + h), "top" === p ? (l = b, s = l - h, d = l) : (l = b + x, s = l + h, d = l)), c.fillStyle = e(u.backgroundColor, i), c.beginPath(), c.moveTo(n, l), c.lineTo(o, s), c.lineTo(r, d), c.closePath(), c.fill()
},
drawTitle: function(t, a, i, n) {
var o = a.title;
if (o.length) {
i.textAlign = a._titleAlign, i.textBaseline = "top";
var r = a.titleFontSize,
l = a.titleSpacing;
i.fillStyle = e(a.titleFontColor, n), i.font = s.fontString(r, a._titleFontStyle, a._titleFontFamily);
var d, u;
for (d = 0, u = o.length; u > d; ++d) i.fillText(o[d], t.x, t.y), t.y += r + l, d + 1 === o.length && (t.y += a.titleMarginBottom - l)
}
},
drawBody: function(t, a, i, n) {
var o = a.bodyFontSize,
r = a.bodySpacing,
l = a.body;
i.textAlign = a._bodyAlign, i.textBaseline = "top";
var d = e(a.bodyFontColor, n);
i.fillStyle = d, i.font = s.fontString(o, a._bodyFontStyle, a._bodyFontFamily);
var u = 0,
c = function(e) {
i.fillText(e, t.x + u, t.y), t.y += o + r
};
s.each(a.beforeBody, c);
var h = a.displayColors;
u = h ? o + 2 : 0, s.each(l, function(r, l) {
s.each(r.before, c), s.each(r.lines, function(r) {
h && (i.fillStyle = e(a.legendColorBackground, n), i.fillRect(t.x, t.y, o, o), i.strokeStyle = e(a.labelColors[l].borderColor, n), i.strokeRect(t.x, t.y, o, o), i.fillStyle = e(a.labelColors[l].backgroundColor, n), i.fillRect(t.x + 1, t.y + 1, o - 2, o - 2), i.fillStyle = d), c(r)
}), s.each(r.after, c)
}), u = 0, s.each(a.afterBody, c), t.y -= r
},
drawFooter: function(t, a, i, n) {
var o = a.footer;
o.length && (t.y += a.footerMarginTop, i.textAlign = a._footerAlign, i.textBaseline = "top", i.fillStyle = e(a.footerFontColor, n), i.font = s.fontString(a.footerFontSize, a._footerFontStyle, a._footerFontFamily), s.each(o, function(e) {
i.fillText(e, t.x, t.y), t.y += a.footerFontSize + a.footerSpacing
}))
},
drawBackground: function(t, a, i, n, o) {
i.fillStyle = e(a.backgroundColor, o), s.drawRoundedRectangle(i, t.x, t.y, n.width, n.height, a.cornerRadius), i.fill()
},
draw: function() {
var t = this._chart.ctx,
e = this._view;
if (0 !== e.opacity) {
var a = {
width: e.width,
height: e.height
},
i = {
x: e.x,
y: e.y
},
n = Math.abs(e.opacity < .001) ? 0 : e.opacity;
this._options.enabled && (this.drawBackground(i, e, t, a, n), this.drawCaret(i, a, n), i.x += e.xPadding, i.y += e.yPadding, this.drawTitle(i, e, t, n), this.drawBody(i, e, t, n), this.drawFooter(i, e, t, n))
}
},
handleEvent: function(t) {
var e = this,
a = e._options,
i = !1;
if (e._lastActive = e._lastActive || [], "mouseout" === t.type ? e._active = [] : e._active = e._chartInstance.getElementsAtEventForMode(t, a.mode, a), i = !s.arrayEquals(e._active, e._lastActive), e._lastActive = e._active, a.enabled || a.custom) {
e._eventPosition = s.getRelativePosition(t, e._chart);
var n = e._model;
e.update(!0), e.pivot(), i |= n.x !== e._model.x || n.y !== e._model.y
}
return i
}
}), t.Tooltip.positioners = {
average: function(t) {
if (!t.length) return !1;
var e, a, i = 0,
n = 0,
o = 0;
for (e = 0, a = t.length; a > e; ++e) {
var r = t[e];
if (r && r.hasValue()) {
var l = r.tooltipPosition();
i += l.x, n += l.y, ++o
}
}
return {
x: Math.round(i / o),
y: Math.round(n / o)
}
},
nearest: function(t, e) {
var a, i, n, o = e.x,
r = e.y,
l = Number.POSITIVE_INFINITY;
for (i = 0, n = t.length; n > i; ++i) {
var d = t[i];
if (d && d.hasValue()) {
var u = d.getCenterPoint(),
c = s.distanceBetweenPoints(e, u);
l > c && (l = c, a = d)
}
}
if (a) {
var h = a.tooltipPosition();
o = h.x, r = h.y
}
return {
x: o,
y: r
}
}
}
}
}, {}],
37: [function(t, e, a) {
"use strict";
e.exports = function(t) {
var e = t.helpers,
a = t.defaults.global;
a.elements.arc = {
backgroundColor: a.defaultColor,
borderColor: "#fff",
borderWidth: 2
}, t.elements.Arc = t.Element.extend({
inLabelRange: function(t) {
var e = this._view;
return e ? Math.pow(t - e.x, 2) < Math.pow(e.radius + e.hoverRadius, 2) : !1
},
inRange: function(t, a) {
var i = this._view;
if (i) {
for (var n = e.getAngleFromPoint(i, {
x: t,
y: a
}), o = n.angle, r = n.distance, l = i.startAngle, s = i.endAngle; l > s;) s += 2 * Math.PI;
for (; o > s;) o -= 2 * Math.PI;
for (; l > o;) o += 2 * Math.PI;
var d = o >= l && s >= o,
u = r >= i.innerRadius && r <= i.outerRadius;
return d && u
}
return !1
},
getCenterPoint: function() {
var t = this._view,
e = (t.startAngle + t.endAngle) / 2,
a = (t.innerRadius + t.outerRadius) / 2;
return {
x: t.x + Math.cos(e) * a,
y: t.y + Math.sin(e) * a
}
},
getArea: function() {
var t = this._view;
return Math.PI * ((t.endAngle - t.startAngle) / (2 * Math.PI)) * (Math.pow(t.outerRadius, 2) - Math.pow(t.innerRadius, 2))
},
tooltipPosition: function() {
var t = this._view,
e = t.startAngle + (t.endAngle - t.startAngle) / 2,
a = (t.outerRadius - t.innerRadius) / 2 + t.innerRadius;
return {
x: t.x + Math.cos(e) * a,
y: t.y + Math.sin(e) * a
}
},
draw: function() {
var t = this._chart.ctx,
e = this._view,
a = e.startAngle,
i = e.endAngle;
t.beginPath(), t.arc(e.x, e.y, e.outerRadius, a, i), t.arc(e.x, e.y, e.innerRadius, i, a, !0), t.closePath(), t.strokeStyle = e.borderColor, t.lineWidth = e.borderWidth, t.fillStyle = e.backgroundColor, t.fill(), t.lineJoin = "bevel", e.borderWidth && t.stroke()
}
})
}
}, {}],
38: [function(t, e, a) {
"use strict";
e.exports = function(t) {
var e = t.helpers,
a = t.defaults.global;
t.defaults.global.elements.line = {
tension: .4,
backgroundColor: a.defaultColor,
borderWidth: 3,
borderColor: a.defaultColor,
borderCapStyle: "butt",
borderDash: [],
borderDashOffset: 0,
borderJoinStyle: "miter",
capBezierPoints: !0,
fill: !0
}, t.elements.Line = t.Element.extend({
draw: function() {
function t(t, e) {
var a = e._view;
e._view.steppedLine === !0 ? (s.lineTo(a.x, t._view.y), s.lineTo(a.x, a.y)) : 0 === e._view.tension ? s.lineTo(a.x, a.y) : s.bezierCurveTo(t._view.controlPointNextX, t._view.controlPointNextY, a.controlPointPreviousX, a.controlPointPreviousY, a.x, a.y)
}
var i = this,
n = i._view,
o = n.spanGaps,
r = n.scaleZero,
l = i._loop;
l || ("top" === n.fill ? r = n.scaleTop : "bottom" === n.fill && (r = n.scaleBottom));
var s = i._chart.ctx;
s.save();
var d = i._children.slice(),
u = -1;
l && d.length && d.push(d[0]);
var c, h, f, g;
if (d.length && n.fill) {
for (s.beginPath(), c = 0; c < d.length; ++c) h = d[c], f = e.previousItem(d, c), g = h._view, 0 === c ? (l ? s.moveTo(r.x, r.y) : s.moveTo(g.x, r), g.skip || (u = c, s.lineTo(g.x, g.y))) : (f = -1 === u ? f : d[u], g.skip ? o || u !== c - 1 || (l ? s.lineTo(r.x, r.y) : s.lineTo(f._view.x, r)) : (u !== c - 1 ? o && -1 !== u ? t(f, h) : l ? s.lineTo(g.x, g.y) : (s.lineTo(g.x, r), s.lineTo(g.x, g.y)) : t(f, h), u = c));
l || -1 === u || s.lineTo(d[u]._view.x, r), s.fillStyle = n.backgroundColor || a.defaultColor, s.closePath(), s.fill()
}
var p = a.elements.line;
for (s.lineCap = n.borderCapStyle || p.borderCapStyle, s.setLineDash && s.setLineDash(n.borderDash || p.borderDash), s.lineDashOffset = n.borderDashOffset || p.borderDashOffset, s.lineJoin = n.borderJoinStyle || p.borderJoinStyle, s.lineWidth = n.borderWidth || p.borderWidth, s.strokeStyle = n.borderColor || a.defaultColor, s.beginPath(), u = -1, c = 0; c < d.length; ++c) h = d[c], f = e.previousItem(d, c), g = h._view, 0 === c ? g.skip || (s.moveTo(g.x, g.y), u = c) : (f = -1 === u ? f : d[u], g.skip || (u !== c - 1 && !o || -1 === u ? s.moveTo(g.x, g.y) : t(f, h), u = c));
s.stroke(), s.restore()
}
})
}
}, {}],
39: [function(t, e, a) {
"use strict";
e.exports = function(t) {
function e(t) {
var e = this._view;
return e ? Math.pow(t - e.x, 2) < Math.pow(e.radius + e.hitRadius, 2) : !1
}
function a(t) {
var e = this._view;
return e ? Math.pow(t - e.y, 2) < Math.pow(e.radius + e.hitRadius, 2) : !1
}
var i = t.helpers,
n = t.defaults.global,
o = n.defaultColor;
n.elements.point = {
radius: 3,
pointStyle: "circle",
backgroundColor: o,
borderWidth: 1,
borderColor: o,
hitRadius: 1,
hoverRadius: 4,
hoverBorderWidth: 1
}, t.elements.Point = t.Element.extend({
inRange: function(t, e) {
var a = this._view;
return a ? Math.pow(t - a.x, 2) + Math.pow(e - a.y, 2) < Math.pow(a.hitRadius + a.radius, 2) : !1
},
inLabelRange: e,
inXRange: e,
inYRange: a,
getCenterPoint: function() {
var t = this._view;
return {
x: t.x,
y: t.y
}
},
getArea: function() {
return Math.PI * Math.pow(this._view.radius, 2)
},
tooltipPosition: function() {
var t = this._view;
return {
x: t.x,
y: t.y,
padding: t.radius + t.borderWidth
}
},
draw: function() {
var e = this._view,
a = this._chart.ctx,
r = e.pointStyle,
l = e.radius,
s = e.x,
d = e.y;
e.skip || (a.strokeStyle = e.borderColor || o, a.lineWidth = i.getValueOrDefault(e.borderWidth, n.elements.point.borderWidth), a.fillStyle = e.backgroundColor || o, t.canvasHelpers.drawPoint(a, r, l, s, d))
}
})
}
}, {}],
40: [function(t, e, a) {
"use strict";
e.exports = function(t) {
function e(t) {
return void 0 !== t._view.width
}
function a(t) {
var a, i, n, o, r = t._view;
if (e(t)) {
var l = r.width / 2;
a = r.x - l, i = r.x + l, n = Math.min(r.y, r.base), o = Math.max(r.y, r.base)
} else {
var s = r.height / 2;
a = Math.min(r.x, r.base), i = Math.max(r.x, r.base), n = r.y - s, o = r.y + s
}
return {
left: a,
top: n,
right: i,
bottom: o
}
}
var i = t.defaults.global;
i.elements.rectangle = {
backgroundColor: i.defaultColor,
borderWidth: 0,
borderColor: i.defaultColor,
borderSkipped: "bottom"
}, t.elements.Rectangle = t.Element.extend({
draw: function() {
function t(t) {
return s[(u + t) % 4]
}
var e = this._chart.ctx,
a = this._view,
i = a.width / 2,
n = a.x - i,
o = a.x + i,
r = a.base - (a.base - a.y),
l = a.borderWidth / 2;
a.borderWidth && (n += l, o -= l, r += l), e.beginPath(), e.fillStyle = a.backgroundColor, e.strokeStyle = a.borderColor, e.lineWidth = a.borderWidth;
var s = [
[n, a.base],
[n, r],
[o, r],
[o, a.base]
],
d = ["bottom", "left", "top", "right"],
u = d.indexOf(a.borderSkipped, 0); - 1 === u && (u = 0);
var c = t(0);
e.moveTo(c[0], c[1]);
for (var h = 1; 4 > h; h++) c = t(h), e.lineTo(c[0], c[1]);
e.fill(), a.borderWidth && e.stroke()
},
height: function() {
var t = this._view;
return t.base - t.y
},
inRange: function(t, e) {
var i = !1;
if (this._view) {
var n = a(this);
i = t >= n.left && t <= n.right && e >= n.top && e <= n.bottom
}
return i
},
inLabelRange: function(t, i) {
var n = this;
if (!n._view) return !1;
var o = !1,
r = a(n);
return o = e(n) ? t >= r.left && t <= r.right : i >= r.top && i <= r.bottom
},
inXRange: function(t) {
var e = a(this);
return t >= e.left && t <= e.right
},
inYRange: function(t) {
var e = a(this);
return t >= e.top && t <= e.bottom
},
getCenterPoint: function() {
var t, a, i = this._view;
return e(this) ? (t = i.x, a = (i.y + i.base) / 2) : (t = (i.x + i.base) / 2, a = i.y), {
x: t,
y: a
}
},
getArea: function() {
var t = this._view;
return t.width * Math.abs(t.y - t.base)
},
tooltipPosition: function() {
var t = this._view;
return {
x: t.x,
y: t.y
}
}
})
}
}, {}],
41: [function(t, e, a) {
"use strict";
e.exports = function(t) {
var e = t.helpers,
a = {
position: "bottom"
},
i = t.Scale.extend({
getLabels: function() {
var t = this.chart.data;
return (this.isHorizontal() ? t.xLabels : t.yLabels) || t.labels
},
determineDataLimits: function() {
var t = this,
a = t.getLabels();
t.minIndex = 0, t.maxIndex = a.length - 1;
var i;
void 0 !== t.options.ticks.min && (i = e.indexOf(a, t.options.ticks.min), t.minIndex = -1 !== i ? i : t.minIndex), void 0 !== t.options.ticks.max && (i = e.indexOf(a, t.options.ticks.max), t.maxIndex = -1 !== i ? i : t.maxIndex), t.min = a[t.minIndex], t.max = a[t.maxIndex]
},
buildTicks: function() {
var t = this,
e = t.getLabels();
t.ticks = 0 === t.minIndex && t.maxIndex === e.length - 1 ? e : e.slice(t.minIndex, t.maxIndex + 1)
},
getLabelForIndex: function(t, e) {
var a = this,
i = a.chart.data,
n = a.isHorizontal();
return i.xLabels && n || i.yLabels && !n ? a.getRightValue(i.datasets[e].data[t]) : a.ticks[t]
},
getPixelForValue: function(t, e, a, i) {
var n = this,
o = Math.max(n.maxIndex + 1 - n.minIndex - (n.options.gridLines.offsetGridLines ? 0 : 1), 1);
if (void 0 !== t && isNaN(e)) {
var r = n.getLabels(),
l = r.indexOf(t);
e = -1 !== l ? l : e
}
if (n.isHorizontal()) {
var s = n.width - (n.paddingLeft + n.paddingRight),
d = s / o,
u = d * (e - n.minIndex) + n.paddingLeft;
return (n.options.gridLines.offsetGridLines && i || n.maxIndex === n.minIndex && i) && (u += d / 2),
n.left + Math.round(u)
}
var c = n.height - (n.paddingTop + n.paddingBottom),
h = c / o,
f = h * (e - n.minIndex) + n.paddingTop;
return n.options.gridLines.offsetGridLines && i && (f += h / 2), n.top + Math.round(f)
},
getPixelForTick: function(t, e) {
return this.getPixelForValue(this.ticks[t], t + this.minIndex, null, e)
},
getValueForPixel: function(t) {
var e, a = this,
i = Math.max(a.ticks.length - (a.options.gridLines.offsetGridLines ? 0 : 1), 1),
n = a.isHorizontal(),
o = n ? a.width - (a.paddingLeft + a.paddingRight) : a.height - (a.paddingTop + a.paddingBottom),
r = o / i;
return t -= n ? a.left : a.top, a.options.gridLines.offsetGridLines && (t -= r / 2), t -= n ? a.paddingLeft : a.paddingTop, e = 0 >= t ? 0 : Math.round(t / r)
},
getBasePixel: function() {
return this.bottom
}
});
t.scaleService.registerScaleType("category", i, a)
}
}, {}],
42: [function(t, e, a) {
"use strict";
e.exports = function(t) {
var e = t.helpers,
a = {
position: "left",
ticks: {
callback: t.Ticks.formatters.linear
}
},
i = t.LinearScaleBase.extend({
determineDataLimits: function() {
function t(t) {
return l ? t.xAxisID === a.id : t.yAxisID === a.id
}
var a = this,
i = a.options,
n = a.chart,
o = n.data,
r = o.datasets,
l = a.isHorizontal();
if (a.min = null, a.max = null, i.stacked) {
var s = {};
e.each(r, function(o, r) {
var l = n.getDatasetMeta(r);
void 0 === s[l.type] && (s[l.type] = {
positiveValues: [],
negativeValues: []
});
var d = s[l.type].positiveValues,
u = s[l.type].negativeValues;
n.isDatasetVisible(r) && t(l) && e.each(o.data, function(t, e) {
var n = +a.getRightValue(t);
isNaN(n) || l.data[e].hidden || (d[e] = d[e] || 0, u[e] = u[e] || 0, i.relativePoints ? d[e] = 100 : 0 > n ? u[e] += n : d[e] += n)
})
}), e.each(s, function(t) {
var i = t.positiveValues.concat(t.negativeValues),
n = e.min(i),
o = e.max(i);
a.min = null === a.min ? n : Math.min(a.min, n), a.max = null === a.max ? o : Math.max(a.max, o)
})
} else e.each(r, function(i, o) {
var r = n.getDatasetMeta(o);
n.isDatasetVisible(o) && t(r) && e.each(i.data, function(t, e) {
var i = +a.getRightValue(t);
isNaN(i) || r.data[e].hidden || (null === a.min ? a.min = i : i < a.min && (a.min = i), null === a.max ? a.max = i : i > a.max && (a.max = i))
})
});
this.handleTickRangeOptions()
},
getTickLimit: function() {
var a, i = this,
n = i.options.ticks;
if (i.isHorizontal()) a = Math.min(n.maxTicksLimit ? n.maxTicksLimit : 11, Math.ceil(i.width / 50));
else {
var o = e.getValueOrDefault(n.fontSize, t.defaults.global.defaultFontSize);
a = Math.min(n.maxTicksLimit ? n.maxTicksLimit : 11, Math.ceil(i.height / (2 * o)))
}
return a
},
handleDirectionalChanges: function() {
this.isHorizontal() || this.ticks.reverse()
},
getLabelForIndex: function(t, e) {
return +this.getRightValue(this.chart.data.datasets[e].data[t])
},
getPixelForValue: function(t) {
var e, a, i = this,
n = i.paddingLeft,
o = i.paddingBottom,
r = i.start,
l = +i.getRightValue(t),
s = i.end - r;
return i.isHorizontal() ? (a = i.width - (n + i.paddingRight), e = i.left + a / s * (l - r), Math.round(e + n)) : (a = i.height - (i.paddingTop + o), e = i.bottom - o - a / s * (l - r), Math.round(e))
},
getValueForPixel: function(t) {
var e = this,
a = e.isHorizontal(),
i = e.paddingLeft,
n = e.paddingBottom,
o = a ? e.width - (i + e.paddingRight) : e.height - (e.paddingTop + n),
r = (a ? t - e.left - i : e.bottom - n - t) / o;
return e.start + (e.end - e.start) * r
},
getPixelForTick: function(t) {
return this.getPixelForValue(this.ticksAsNumbers[t])
}
});
t.scaleService.registerScaleType("linear", i, a)
}
}, {}],
43: [function(t, e, a) {
"use strict";
e.exports = function(t) {
var e = t.helpers,
a = e.noop;
t.LinearScaleBase = t.Scale.extend({
handleTickRangeOptions: function() {
var t = this,
a = t.options,
i = a.ticks;
if (i.beginAtZero) {
var n = e.sign(t.min),
o = e.sign(t.max);
0 > n && 0 > o ? t.max = 0 : n > 0 && o > 0 && (t.min = 0)
}
void 0 !== i.min ? t.min = i.min : void 0 !== i.suggestedMin && (t.min = Math.min(t.min, i.suggestedMin)), void 0 !== i.max ? t.max = i.max : void 0 !== i.suggestedMax && (t.max = Math.max(t.max, i.suggestedMax)), t.min === t.max && (t.max++, i.beginAtZero || t.min--)
},
getTickLimit: a,
handleDirectionalChanges: a,
buildTicks: function() {
var a = this,
i = a.options,
n = i.ticks,
o = a.getTickLimit();
o = Math.max(2, o);
var r = {
maxTicks: o,
min: n.min,
max: n.max,
stepSize: e.getValueOrDefault(n.fixedStepSize, n.stepSize)
},
l = a.ticks = t.Ticks.generators.linear(r, a);
a.handleDirectionalChanges(), a.max = e.max(l), a.min = e.min(l), n.reverse ? (l.reverse(), a.start = a.max, a.end = a.min) : (a.start = a.min, a.end = a.max)
},
convertTicksToLabels: function() {
var e = this;
e.ticksAsNumbers = e.ticks.slice(), e.zeroLineIndex = e.ticks.indexOf(0), t.Scale.prototype.convertTicksToLabels.call(e)
}
})
}
}, {}],
44: [function(t, e, a) {
"use strict";
e.exports = function(t) {
var e = t.helpers,
a = {
position: "left",
ticks: {
callback: t.Ticks.formatters.logarithmic
}
},
i = t.Scale.extend({
determineDataLimits: function() {
function t(t) {
return d ? t.xAxisID === a.id : t.yAxisID === a.id
}
var a = this,
i = a.options,
n = i.ticks,
o = a.chart,
r = o.data,
l = r.datasets,
s = e.getValueOrDefault,
d = a.isHorizontal();
if (a.min = null, a.max = null, a.minNotZero = null, i.stacked) {
var u = {};
e.each(l, function(n, r) {
var l = o.getDatasetMeta(r);
o.isDatasetVisible(r) && t(l) && (void 0 === u[l.type] && (u[l.type] = []), e.each(n.data, function(t, e) {
var n = u[l.type],
o = +a.getRightValue(t);
isNaN(o) || l.data[e].hidden || (n[e] = n[e] || 0, i.relativePoints ? n[e] = 100 : n[e] += o)
}))
}), e.each(u, function(t) {
var i = e.min(t),
n = e.max(t);
a.min = null === a.min ? i : Math.min(a.min, i), a.max = null === a.max ? n : Math.max(a.max, n)
})
} else e.each(l, function(i, n) {
var r = o.getDatasetMeta(n);
o.isDatasetVisible(n) && t(r) && e.each(i.data, function(t, e) {
var i = +a.getRightValue(t);
isNaN(i) || r.data[e].hidden || (null === a.min ? a.min = i : i < a.min && (a.min = i), null === a.max ? a.max = i : i > a.max && (a.max = i), 0 !== i && (null === a.minNotZero || i < a.minNotZero) && (a.minNotZero = i))
})
});
a.min = s(n.min, a.min), a.max = s(n.max, a.max), a.min === a.max && (0 !== a.min && null !== a.min ? (a.min = Math.pow(10, Math.floor(e.log10(a.min)) - 1), a.max = Math.pow(10, Math.floor(e.log10(a.max)) + 1)) : (a.min = 1, a.max = 10))
},
buildTicks: function() {
var a = this,
i = a.options,
n = i.ticks,
o = {
min: n.min,
max: n.max
},
r = a.ticks = t.Ticks.generators.logarithmic(o, a);
a.isHorizontal() || r.reverse(), a.max = e.max(r), a.min = e.min(r), n.reverse ? (r.reverse(), a.start = a.max, a.end = a.min) : (a.start = a.min, a.end = a.max)
},
convertTicksToLabels: function() {
this.tickValues = this.ticks.slice(), t.Scale.prototype.convertTicksToLabels.call(this)
},
getLabelForIndex: function(t, e) {
return +this.getRightValue(this.chart.data.datasets[e].data[t])
},
getPixelForTick: function(t) {
return this.getPixelForValue(this.tickValues[t])
},
getPixelForValue: function(t) {
var a, i, n, o = this,
r = o.start,
l = +o.getRightValue(t),
s = o.paddingTop,
d = o.paddingBottom,
u = o.paddingLeft,
c = o.options,
h = c.ticks;
return o.isHorizontal() ? (n = e.log10(o.end) - e.log10(r), 0 === l ? i = o.left + u : (a = o.width - (u + o.paddingRight), i = o.left + a / n * (e.log10(l) - e.log10(r)), i += u)) : (a = o.height - (s + d), 0 !== r || h.reverse ? 0 === o.end && h.reverse ? (n = e.log10(o.start) - e.log10(o.minNotZero), i = l === o.end ? o.top + s : l === o.minNotZero ? o.top + s + .02 * a : o.top + s + .02 * a + .98 * a / n * (e.log10(l) - e.log10(o.minNotZero))) : (n = e.log10(o.end) - e.log10(r), a = o.height - (s + d), i = o.bottom - d - a / n * (e.log10(l) - e.log10(r))) : (n = e.log10(o.end) - e.log10(o.minNotZero), i = l === r ? o.bottom - d : l === o.minNotZero ? o.bottom - d - .02 * a : o.bottom - d - .02 * a - .98 * a / n * (e.log10(l) - e.log10(o.minNotZero)))), i
},
getValueForPixel: function(t) {
var a, i, n = this,
o = e.log10(n.end) - e.log10(n.start);
return n.isHorizontal() ? (i = n.width - (n.paddingLeft + n.paddingRight), a = n.start * Math.pow(10, (t - n.left - n.paddingLeft) * o / i)) : (i = n.height - (n.paddingTop + n.paddingBottom), a = Math.pow(10, (n.bottom - n.paddingBottom - t) * o / i) / n.start), a
}
});
t.scaleService.registerScaleType("logarithmic", i, a)
}
}, {}],
45: [function(t, e, a) {
"use strict";
e.exports = function(t) {
var e = t.helpers,
a = t.defaults.global,
i = {
display: !0,
animate: !0,
lineArc: !1,
position: "chartArea",
angleLines: {
display: !0,
color: "rgba(0, 0, 0, 0.1)",
lineWidth: 1
},
ticks: {
showLabelBackdrop: !0,
backdropColor: "rgba(255,255,255,0.75)",
backdropPaddingY: 2,
backdropPaddingX: 2,
callback: t.Ticks.formatters.linear
},
pointLabels: {
fontSize: 10,
callback: function(t) {
return t
}
}
},
n = t.LinearScaleBase.extend({
getValueCount: function() {
return this.chart.data.labels.length
},
setDimensions: function() {
var t = this,
i = t.options,
n = i.ticks;
t.width = t.maxWidth, t.height = t.maxHeight, t.xCenter = Math.round(t.width / 2), t.yCenter = Math.round(t.height / 2);
var o = e.min([t.height, t.width]),
r = e.getValueOrDefault(n.fontSize, a.defaultFontSize);
t.drawingArea = i.display ? o / 2 - (r / 2 + n.backdropPaddingY) : o / 2
},
determineDataLimits: function() {
var t = this,
a = t.chart;
t.min = null, t.max = null, e.each(a.data.datasets, function(i, n) {
if (a.isDatasetVisible(n)) {
var o = a.getDatasetMeta(n);
e.each(i.data, function(e, a) {
var i = +t.getRightValue(e);
isNaN(i) || o.data[a].hidden || (null === t.min ? t.min = i : i < t.min && (t.min = i), null === t.max ? t.max = i : i > t.max && (t.max = i))
})
}
}), t.handleTickRangeOptions()
},
getTickLimit: function() {
var t = this.options.ticks,
i = e.getValueOrDefault(t.fontSize, a.defaultFontSize);
return Math.min(t.maxTicksLimit ? t.maxTicksLimit : 11, Math.ceil(this.drawingArea / (1.5 * i)))
},
convertTicksToLabels: function() {
var e = this;
t.LinearScaleBase.prototype.convertTicksToLabels.call(e), e.pointLabels = e.chart.data.labels.map(e.options.pointLabels.callback, e)
},
getLabelForIndex: function(t, e) {
return +this.getRightValue(this.chart.data.datasets[e].data[t])
},
fit: function() {
var t, i, n, o, r, l, s, d, u, c, h, f, g = this.options.pointLabels,
p = e.getValueOrDefault(g.fontSize, a.defaultFontSize),
m = e.getValueOrDefault(g.fontStyle, a.defaultFontStyle),
b = e.getValueOrDefault(g.fontFamily, a.defaultFontFamily),
v = e.fontString(p, m, b),
x = e.min([this.height / 2 - p - 5, this.width / 2]),
y = this.width,
k = 0;
for (this.ctx.font = v, i = 0; i < this.getValueCount(); i++) {
t = this.getPointPosition(i, x), n = this.ctx.measureText(this.pointLabels[i] ? this.pointLabels[i] : "").width + 5;
var S = this.getIndexAngle(i) + Math.PI / 2,
w = 360 * S / (2 * Math.PI) % 360;
0 === w || 180 === w ? (o = n / 2, t.x + o > y && (y = t.x + o, r = i), t.x - o < k && (k = t.x - o, s = i)) : 180 > w ? t.x + n > y && (y = t.x + n, r = i) : t.x - n < k && (k = t.x - n, s = i)
}
u = k, c = Math.ceil(y - this.width), l = this.getIndexAngle(r), d = this.getIndexAngle(s), h = c / Math.sin(l + Math.PI / 2), f = u / Math.sin(d + Math.PI / 2), h = e.isNumber(h) ? h : 0, f = e.isNumber(f) ? f : 0, this.drawingArea = Math.round(x - (f + h) / 2), this.setCenterPoint(f, h)
},
setCenterPoint: function(t, e) {
var a = this,
i = a.width - e - a.drawingArea,
n = t + a.drawingArea;
a.xCenter = Math.round((n + i) / 2 + a.left), a.yCenter = Math.round(a.height / 2 + a.top)
},
getIndexAngle: function(t) {
var e = 2 * Math.PI / this.getValueCount(),
a = this.chart.options && this.chart.options.startAngle ? this.chart.options.startAngle : 0,
i = a * Math.PI * 2 / 360;
return t * e - Math.PI / 2 + i
},
getDistanceFromCenterForValue: function(t) {
var e = this;
if (null === t) return 0;
var a = e.drawingArea / (e.max - e.min);
return e.options.reverse ? (e.max - t) * a : (t - e.min) * a
},
getPointPosition: function(t, e) {
var a = this,
i = a.getIndexAngle(t);
return {
x: Math.round(Math.cos(i) * e) + a.xCenter,
y: Math.round(Math.sin(i) * e) + a.yCenter
}
},
getPointPositionForValue: function(t, e) {
return this.getPointPosition(t, this.getDistanceFromCenterForValue(e))
},
getBasePosition: function() {
var t = this,
e = t.min,
a = t.max;
return t.getPointPositionForValue(0, t.beginAtZero ? 0 : 0 > e && 0 > a ? a : e > 0 && a > 0 ? e : 0)
},
draw: function() {
var t = this,
i = t.options,
n = i.gridLines,
o = i.ticks,
r = i.angleLines,
l = i.pointLabels,
s = e.getValueOrDefault;
if (i.display) {
var d = t.ctx,
u = s(o.fontSize, a.defaultFontSize),
c = s(o.fontStyle, a.defaultFontStyle),
h = s(o.fontFamily, a.defaultFontFamily),
f = e.fontString(u, c, h);
if (e.each(t.ticks, function(r, l) {
if (l > 0 || i.reverse) {
var c = t.getDistanceFromCenterForValue(t.ticksAsNumbers[l]),
h = t.yCenter - c;
if (n.display && 0 !== l)
if (d.strokeStyle = e.getValueAtIndexOrDefault(n.color, l - 1), d.lineWidth = e.getValueAtIndexOrDefault(n.lineWidth, l - 1), i.lineArc) d.beginPath(), d.arc(t.xCenter, t.yCenter, c, 0, 2 * Math.PI), d.closePath(), d.stroke();
else {
d.beginPath();
for (var g = 0; g < t.getValueCount(); g++) {
var p = t.getPointPosition(g, c);
0 === g ? d.moveTo(p.x, p.y) : d.lineTo(p.x, p.y)
}
d.closePath(), d.stroke()
} if (o.display) {
var m = s(o.fontColor, a.defaultFontColor);
if (d.font = f, o.showLabelBackdrop) {
var b = d.measureText(r).width;
d.fillStyle = o.backdropColor, d.fillRect(t.xCenter - b / 2 - o.backdropPaddingX, h - u / 2 - o.backdropPaddingY, b + 2 * o.backdropPaddingX, u + 2 * o.backdropPaddingY)
}
d.textAlign = "center", d.textBaseline = "middle", d.fillStyle = m, d.fillText(r, t.xCenter, h)
}
}
}), !i.lineArc) {
d.lineWidth = r.lineWidth, d.strokeStyle = r.color;
for (var g = t.getDistanceFromCenterForValue(i.reverse ? t.min : t.max), p = s(l.fontSize, a.defaultFontSize), m = s(l.fontStyle, a.defaultFontStyle), b = s(l.fontFamily, a.defaultFontFamily), v = e.fontString(p, m, b), x = t.getValueCount() - 1; x >= 0; x--) {
if (r.display) {
var y = t.getPointPosition(x, g);
d.beginPath(), d.moveTo(t.xCenter, t.yCenter), d.lineTo(y.x, y.y), d.stroke(), d.closePath()
}
var k = t.getPointPosition(x, g + 5),
S = s(l.fontColor, a.defaultFontColor);
d.font = v, d.fillStyle = S;
var w = t.pointLabels,
M = this.getIndexAngle(x) + Math.PI / 2,
C = 360 * M / (2 * Math.PI) % 360;
0 === C || 180 === C ? d.textAlign = "center" : 180 > C ? d.textAlign = "left" : d.textAlign = "right", 90 === C || 270 === C ? d.textBaseline = "middle" : C > 270 || 90 > C ? d.textBaseline = "bottom" : d.textBaseline = "top", d.fillText(w[x] ? w[x] : "", k.x, k.y)
}
}
}
}
});
t.scaleService.registerScaleType("radialLinear", n, i)
}
}, {}],
46: [function(t, e, a) {
"use strict";
var i = t(1);
i = "function" == typeof i ? i : window.moment, e.exports = function(t) {
var e = t.helpers,
a = {
units: [{
name: "millisecond",
steps: [1, 2, 5, 10, 20, 50, 100, 250, 500]
}, {
name: "second",
steps: [1, 2, 5, 10, 30]
}, {
name: "minute",
steps: [1, 2, 5, 10, 30]
}, {
name: "hour",
steps: [1, 2, 3, 6, 12]
}, {
name: "day",
steps: [1, 2, 5]
}, {
name: "week",
maxStep: 4
}, {
name: "month",
maxStep: 3
}, {
name: "quarter",
maxStep: 4
}, {
name: "year",
maxStep: !1
}]
},
n = {
position: "bottom",
time: {
parser: !1,
format: !1,
unit: !1,
round: !1,
displayFormat: !1,
isoWeekday: !1,
minUnit: "millisecond",
displayFormats: {
millisecond: "h:mm:ss.SSS a",
second: "h:mm:ss a",
minute: "h:mm:ss a",
hour: "MMM D, hA",
day: "ll",
week: "ll",
month: "MMM YYYY",
quarter: "[Q]Q - YYYY",
year: "YYYY"
}
},
ticks: {
autoSkip: !1
}
},
o = t.Scale.extend({
initialize: function() {
if (!i) throw new Error("Chart.js - Moment.js could not be found! You must include it before Chart.js to use the time scale. Download at https://momentjs.com");
t.Scale.prototype.initialize.call(this)
},
getLabelMoment: function(t, e) {
return null === t || null === e ? null : "undefined" != typeof this.labelMoments[t] ? this.labelMoments[t][e] : null
},
getLabelDiff: function(t, e) {
var a = this;
return null === t || null === e ? null : (void 0 === a.labelDiffs && a.buildLabelDiffs(), "undefined" != typeof a.labelDiffs[t] ? a.labelDiffs[t][e] : null)
},
getMomentStartOf: function(t) {
var e = this;
return "week" === e.options.time.unit && e.options.time.isoWeekday !== !1 ? t.clone().startOf("isoWeek").isoWeekday(e.options.time.isoWeekday) : t.clone().startOf(e.tickUnit)
},
determineDataLimits: function() {
var t = this;
t.labelMoments = [];
var a = [];
t.chart.data.labels && t.chart.data.labels.length > 0 ? (e.each(t.chart.data.labels, function(e) {
var i = t.parseTime(e);
i.isValid() && (t.options.time.round && i.startOf(t.options.time.round), a.push(i))
}, t), t.firstTick = i.min.call(t, a), t.lastTick = i.max.call(t, a)) : (t.firstTick = null, t.lastTick = null), e.each(t.chart.data.datasets, function(n, o) {
var r = [],
l = t.chart.isDatasetVisible(o);
"object" == typeof n.data[0] && null !== n.data[0] ? e.each(n.data, function(e) {
var a = t.parseTime(t.getRightValue(e));
a.isValid() && (t.options.time.round && a.startOf(t.options.time.round), r.push(a), l && (t.firstTick = null !== t.firstTick ? i.min(t.firstTick, a) : a, t.lastTick = null !== t.lastTick ? i.max(t.lastTick, a) : a))
}, t) : r = a, t.labelMoments.push(r)
}, t), t.options.time.min && (t.firstTick = t.parseTime(t.options.time.min)), t.options.time.max && (t.lastTick = t.parseTime(t.options.time.max)), t.firstTick = (t.firstTick || i()).clone(), t.lastTick = (t.lastTick || i()).clone()
},
buildLabelDiffs: function() {
var t = this;
t.labelDiffs = [];
var a = [];
t.chart.data.labels && t.chart.data.labels.length > 0 && e.each(t.chart.data.labels, function(e) {
var i = t.parseTime(e);
i.isValid() && (t.options.time.round && i.startOf(t.options.time.round), a.push(i.diff(t.firstTick, t.tickUnit, !0)))
}, t), e.each(t.chart.data.datasets, function(i) {
var n = [];
"object" == typeof i.data[0] && null !== i.data[0] ? e.each(i.data, function(e) {
var a = t.parseTime(t.getRightValue(e));
a.isValid() && (t.options.time.round && a.startOf(t.options.time.round), n.push(a.diff(t.firstTick, t.tickUnit, !0)))
}, t) : n = a, t.labelDiffs.push(n)
}, t)
},
buildTicks: function() {
var i = this;
i.ctx.save();
var n = e.getValueOrDefault(i.options.ticks.fontSize, t.defaults.global.defaultFontSize),
o = e.getValueOrDefault(i.options.ticks.fontStyle, t.defaults.global.defaultFontStyle),
r = e.getValueOrDefault(i.options.ticks.fontFamily, t.defaults.global.defaultFontFamily),
l = e.fontString(n, o, r);
if (i.ctx.font = l, i.ticks = [], i.unitScale = 1, i.scaleSizeInUnits = 0, i.options.time.unit) i.tickUnit = i.options.time.unit || "day", i.displayFormat = i.options.time.displayFormats[i.tickUnit], i.scaleSizeInUnits = i.lastTick.diff(i.firstTick, i.tickUnit, !0), i.unitScale = e.getValueOrDefault(i.options.time.unitStepSize, 1);
else {
var s = i.isHorizontal() ? i.width - (i.paddingLeft + i.paddingRight) : i.height - (i.paddingTop + i.paddingBottom),
d = i.tickFormatFunction(i.firstTick, 0, []),
u = i.ctx.measureText(d).width,
c = Math.cos(e.toRadians(i.options.ticks.maxRotation)),
h = Math.sin(e.toRadians(i.options.ticks.maxRotation));
u = u * c + n * h;
var f = s / u;
i.tickUnit = i.options.time.minUnit, i.scaleSizeInUnits = i.lastTick.diff(i.firstTick, i.tickUnit, !0), i.displayFormat = i.options.time.displayFormats[i.tickUnit];
for (var g = 0, p = a.units[g]; g < a.units.length;) {
if (i.unitScale = 1, e.isArray(p.steps) && Math.ceil(i.scaleSizeInUnits / f) < e.max(p.steps)) {
for (var m = 0; m < p.steps.length; ++m)
if (p.steps[m] >= Math.ceil(i.scaleSizeInUnits / f)) {
i.unitScale = e.getValueOrDefault(i.options.time.unitStepSize, p.steps[m]);
break
} break
}
if (p.maxStep === !1 || Math.ceil(i.scaleSizeInUnits / f) < p.maxStep) {
i.unitScale = e.getValueOrDefault(i.options.time.unitStepSize, Math.ceil(i.scaleSizeInUnits / f));
break
}++g, p = a.units[g], i.tickUnit = p.name;
var b = i.firstTick.diff(i.getMomentStartOf(i.firstTick), i.tickUnit, !0),
v = i.getMomentStartOf(i.lastTick.clone().add(1, i.tickUnit)).diff(i.lastTick, i.tickUnit, !0);
i.scaleSizeInUnits = i.lastTick.diff(i.firstTick, i.tickUnit, !0) + b + v, i.displayFormat = i.options.time.displayFormats[p.name]
}
}
var x;
if (i.options.time.min ? x = i.getMomentStartOf(i.firstTick) : (i.firstTick = i.getMomentStartOf(i.firstTick), x = i.firstTick), !i.options.time.max) {
var y = i.getMomentStartOf(i.lastTick),
k = y.diff(i.lastTick, i.tickUnit, !0);
0 > k ? i.lastTick = i.getMomentStartOf(i.lastTick.add(1, i.tickUnit)) : k >= 0 && (i.lastTick = y), i.scaleSizeInUnits = i.lastTick.diff(i.firstTick, i.tickUnit, !0)
}
i.options.time.displayFormat && (i.displayFormat = i.options.time.displayFormat), i.ticks.push(i.firstTick.clone());
for (var S = 1; S <= i.scaleSizeInUnits; ++S) {
var w = x.clone().add(S, i.tickUnit);
if (i.options.time.max && w.diff(i.lastTick, i.tickUnit, !0) >= 0) break;
S % i.unitScale === 0 && i.ticks.push(w)
}
var M = i.ticks[i.ticks.length - 1].diff(i.lastTick, i.tickUnit);
(0 !== M || 0 === i.scaleSizeInUnits) && (i.options.time.max ? (i.ticks.push(i.lastTick.clone()), i.scaleSizeInUnits = i.lastTick.diff(i.ticks[0], i.tickUnit, !0)) : (i.ticks.push(i.lastTick.clone()), i.scaleSizeInUnits = i.lastTick.diff(i.firstTick, i.tickUnit, !0))), i.ctx.restore(), i.labelDiffs = void 0
},
getLabelForIndex: function(t, e) {
var a = this,
i = a.chart.data.labels && t < a.chart.data.labels.length ? a.chart.data.labels[t] : "";
return "object" == typeof a.chart.data.datasets[e].data[0] && (i = a.getRightValue(a.chart.data.datasets[e].data[t])), a.options.time.tooltipFormat && (i = a.parseTime(i).format(a.options.time.tooltipFormat)), i
},
tickFormatFunction: function(t, a, i) {
var n = t.format(this.displayFormat),
o = this.options.ticks,
r = e.getValueOrDefault(o.callback, o.userCallback);
return r ? r(n, a, i) : n
},
convertTicksToLabels: function() {
var t = this;
t.tickMoments = t.ticks, t.ticks = t.ticks.map(t.tickFormatFunction, t)
},
getPixelForValue: function(t, e, a) {
var i = this,
n = null;
if (void 0 !== e && void 0 !== a && (n = i.getLabelDiff(a, e)), null === n && (t && t.isValid || (t = i.parseTime(i.getRightValue(t))), t && t.isValid && t.isValid() && (n = t.diff(i.firstTick, i.tickUnit, !0))), null !== n) {
var o = 0 !== n ? n / i.scaleSizeInUnits : n;
if (i.isHorizontal()) {
var r = i.width - (i.paddingLeft + i.paddingRight),
l = r * o + i.paddingLeft;
return i.left + Math.round(l)
}
var s = i.height - (i.paddingTop + i.paddingBottom),
d = s * o + i.paddingTop;
return i.top + Math.round(d)
}
},
getPixelForTick: function(t) {
return this.getPixelForValue(this.tickMoments[t], null, null)
},
getValueForPixel: function(t) {
var e = this,
a = e.isHorizontal() ? e.width - (e.paddingLeft + e.paddingRight) : e.height - (e.paddingTop + e.paddingBottom),
n = (t - (e.isHorizontal() ? e.left + e.paddingLeft : e.top + e.paddingTop)) / a;
return n *= e.scaleSizeInUnits, e.firstTick.clone().add(i.duration(n, e.tickUnit).asSeconds(), "seconds")
},
parseTime: function(t) {
var e = this;
return "string" == typeof e.options.time.parser ? i(t, e.options.time.parser) : "function" == typeof e.options.time.parser ? e.options.time.parser(t) : "function" == typeof t.getMonth || "number" == typeof t ? i(t) : t.isValid && t.isValid() ? t : "string" != typeof e.options.time.format && e.options.time.format.call ? (console.warn("options.time.format is deprecated and replaced by options.time.parser. See http://nnnick.github.io/Chart.js/docs-v2/#scales-time-scale"), e.options.time.format(t)) : i(t, e.options.time.format)
}
});
t.scaleService.registerScaleType("time", o, n)
}
}, {
1: 1
}]
}, {}, [7])(7)
});
/*! Clipboard.js v2.0.1 * https://zenorocha.github.io/clipboard.js * * Licensed MIT © Zeno Rocha */
! function(t, e) {
"object" == typeof exports && "object" == typeof module ? module.exports = e() : "function" == typeof define && define.amd ? define([], e) : "object" == typeof exports ? exports.ClipboardJS = e() : t.ClipboardJS = e()
}(this, function() {
return function(t) {
function e(o) {
if (n[o]) return n[o].exports;
var r = n[o] = {
i: o,
l: !1,
exports: {}
};
return t[o].call(r.exports, r, r.exports, e), r.l = !0, r.exports
}
var n = {};
return e.m = t, e.c = n, e.i = function(t) {
return t
}, e.d = function(t, n, o) {
e.o(t, n) || Object.defineProperty(t, n, {
configurable: !1,
enumerable: !0,
get: o
})
}, e.n = function(t) {
var n = t && t.__esModule ? function() {
return t.default
} : function() {
return t
};
return e.d(n, "a", n), n
}, e.o = function(t, e) {
return Object.prototype.hasOwnProperty.call(t, e)
}, e.p = "", e(e.s = 3)
}([function(t, e, n) {
var o, r, i;
! function(a, c) {
r = [t, n(7)], o = c, void 0 !== (i = "function" == typeof o ? o.apply(e, r) : o) && (t.exports = i)
}(0, function(t, e) {
"use strict";
function n(t, e) {
if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
}
var o = function(t) {
return t && t.__esModule ? t : {
default: t
}
}(e),
r = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
return typeof t
} : function(t) {
return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
},
i = function() {
function t(t, e) {
for (var n = 0; n < e.length; n++) {
var o = e[n];
o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(t, o.key, o)
}
}
return function(e, n, o) {
return n && t(e.prototype, n), o && t(e, o), e
}
}(),
a = function() {
function t(e) {
n(this, t), this.resolveOptions(e), this.initSelection()
}
return i(t, [{
key: "resolveOptions",
value: function() {
var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};
this.action = t.action, this.container = t.container, this.emitter = t.emitter, this.target = t.target, this.text = t.text, this.trigger = t.trigger, this.selectedText = ""
}
}, {
key: "initSelection",
value: function() {
this.text ? this.selectFake() : this.target && this.selectTarget()
}
}, {
key: "selectFake",
value: function() {
var t = this,
e = "rtl" == document.documentElement.getAttribute("dir");
this.removeFake(), this.fakeHandlerCallback = function() {
return t.removeFake()
}, this.fakeHandler = this.container.addEventListener("click", this.fakeHandlerCallback) || !0, this.fakeElem = document.createElement("textarea"), this.fakeElem.style.fontSize = "12pt", this.fakeElem.style.border = "0", this.fakeElem.style.padding = "0", this.fakeElem.style.margin = "0", this.fakeElem.style.position = "absolute", this.fakeElem.style[e ? "right" : "left"] = "-9999px";
var n = window.pageYOffset || document.documentElement.scrollTop;
this.fakeElem.style.top = n + "px", this.fakeElem.setAttribute("readonly", ""), this.fakeElem.value = this.text, this.container.appendChild(this.fakeElem), this.selectedText = (0, o.default)(this.fakeElem), this.copyText()
}
}, {
key: "removeFake",
value: function() {
this.fakeHandler && (this.container.removeEventListener("click", this.fakeHandlerCallback), this.fakeHandler = null, this.fakeHandlerCallback = null), this.fakeElem && (this.container.removeChild(this.fakeElem), this.fakeElem = null)
}
}, {
key: "selectTarget",
value: function() {
this.selectedText = (0, o.default)(this.target), this.copyText()
}
}, {
key: "copyText",
value: function() {
var t = void 0;
try {
t = document.execCommand(this.action)
} catch (e) {
t = !1
}
this.handleResult(t)
}
}, {
key: "handleResult",
value: function(t) {
this.emitter.emit(t ? "success" : "error", {
action: this.action,
text: this.selectedText,
trigger: this.trigger,
clearSelection: this.clearSelection.bind(this)
})
}
}, {
key: "clearSelection",
value: function() {
this.trigger && this.trigger.focus(), window.getSelection().removeAllRanges()
}
}, {
key: "destroy",
value: function() {
this.removeFake()
}
}, {
key: "action",
set: function() {
var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "copy";
if (this._action = t, "copy" !== this._action && "cut" !== this._action) throw new Error('Invalid "action" value, use either "copy" or "cut"')
},
get: function() {
return this._action
}
}, {
key: "target",
set: function(t) {
if (void 0 !== t) {
if (!t || "object" !== (void 0 === t ? "undefined" : r(t)) || 1 !== t.nodeType) throw new Error('Invalid "target" value, use a valid Element');
if ("copy" === this.action && t.hasAttribute("disabled")) throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');
if ("cut" === this.action && (t.hasAttribute("readonly") || t.hasAttribute("disabled"))) throw new Error('Invalid "target" attribute. You can't cut text from elements with "readonly" or "disabled" attributes');
this._target = t
}
},
get: function() {
return this._target
}
}]), t
}();
t.exports = a
})
}, function(t, e, n) {
function o(t, e, n) {
if (!t && !e && !n) throw new Error("Missing required arguments");
if (!c.string(e)) throw new TypeError("Second argument must be a String");
if (!c.fn(n)) throw new TypeError("Third argument must be a Function");
if (c.node(t)) return r(t, e, n);
if (c.nodeList(t)) return i(t, e, n);
if (c.string(t)) return a(t, e, n);
throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")
}
function r(t, e, n) {
return t.addEventListener(e, n), {
destroy: function() {
t.removeEventListener(e, n)
}
}
}
function i(t, e, n) {
return Array.prototype.forEach.call(t, function(t) {
t.addEventListener(e, n)
}), {
destroy: function() {
Array.prototype.forEach.call(t, function(t) {
t.removeEventListener(e, n)
})
}
}
}
function a(t, e, n) {
return u(document.body, t, e, n)
}
var c = n(6),
u = n(5);
t.exports = o
}, function(t, e) {
function n() {}
n.prototype = {
on: function(t, e, n) {
var o = this.e || (this.e = {});
return (o[t] || (o[t] = [])).push({
fn: e,
ctx: n
}), this
},
once: function(t, e, n) {
function o() {
r.off(t, o), e.apply(n, arguments)
}
var r = this;
return o._ = e, this.on(t, o, n)
},
emit: function(t) {
var e = [].slice.call(arguments, 1),
n = ((this.e || (this.e = {}))[t] || []).slice(),
o = 0,
r = n.length;
for (o; o < r; o++) n[o].fn.apply(n[o].ctx, e);
return this
},
off: function(t, e) {
var n = this.e || (this.e = {}),
o = n[t],
r = [];
if (o && e)
for (var i = 0, a = o.length; i < a; i++) o[i].fn !== e && o[i].fn._ !== e && r.push(o[i]);
return r.length ? n[t] = r : delete n[t], this
}
}, t.exports = n
}, function(t, e, n) {
var o, r, i;
! function(a, c) {
r = [t, n(0), n(2), n(1)], o = c, void 0 !== (i = "function" == typeof o ? o.apply(e, r) : o) && (t.exports = i)
}(0, function(t, e, n, o) {
"use strict";
function r(t) {
return t && t.__esModule ? t : {
default: t
}
}
function i(t, e) {
if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
}
function a(t, e) {
if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
return !e || "object" != typeof e && "function" != typeof e ? t : e
}
function c(t, e) {
if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
t.prototype = Object.create(e && e.prototype, {
constructor: {
value: t,
enumerable: !1,
writable: !0,
configurable: !0
}
}), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
}
function u(t, e) {
var n = "data-clipboard-" + t;
if (e.hasAttribute(n)) return e.getAttribute(n)
}
var l = r(e),
s = r(n),
f = r(o),
d = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
return typeof t
} : function(t) {
return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
},
h = function() {
function t(t, e) {
for (var n = 0; n < e.length; n++) {
var o = e[n];
o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(t, o.key, o)
}
}
return function(e, n, o) {
return n && t(e.prototype, n), o && t(e, o), e
}
}(),
p = function(t) {
function e(t, n) {
i(this, e);
var o = a(this, (e.__proto__ || Object.getPrototypeOf(e)).call(this));
return o.resolveOptions(n), o.listenClick(t), o
}
return c(e, t), h(e, [{
key: "resolveOptions",
value: function() {
var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};
this.action = "function" == typeof t.action ? t.action : this.defaultAction, this.target = "function" == typeof t.target ? t.target : this.defaultTarget, this.text = "function" == typeof t.text ? t.text : this.defaultText, this.container = "object" === d(t.container) ? t.container : document.body
}
}, {
key: "listenClick",
value: function(t) {
var e = this;
this.listener = (0, f.default)(t, "click", function(t) {
return e.onClick(t)
})
}
}, {
key: "onClick",
value: function(t) {
var e = t.delegateTarget || t.currentTarget;
this.clipboardAction && (this.clipboardAction = null), this.clipboardAction = new l.default({
action: this.action(e),
target: this.target(e),
text: this.text(e),
container: this.container,
trigger: e,
emitter: this
})
}
}, {
key: "defaultAction",
value: function(t) {
return u("action", t)
}
}, {
key: "defaultTarget",
value: function(t) {
var e = u("target", t);
if (e) return document.querySelector(e)
}
}, {
key: "defaultText",
value: function(t) {
return u("text", t)
}
}, {
key: "destroy",
value: function() {
this.listener.destroy(), this.clipboardAction && (this.clipboardAction.destroy(), this.clipboardAction = null)
}
}], [{
key: "isSupported",
value: function() {
var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : ["copy", "cut"],
e = "string" == typeof t ? [t] : t,
n = !!document.queryCommandSupported;
return e.forEach(function(t) {
n = n && !!document.queryCommandSupported(t)
}), n
}
}]), e
}(s.default);
t.exports = p
})
}, function(t, e) {
function n(t, e) {
for (; t && t.nodeType !== o;) {
if ("function" == typeof t.matches && t.matches(e)) return t;
t = t.parentNode
}
}
var o = 9;
if ("undefined" != typeof Element && !Element.prototype.matches) {
var r = Element.prototype;
r.matches = r.matchesSelector || r.mozMatchesSelector || r.msMatchesSelector || r.oMatchesSelector || r.webkitMatchesSelector
}
t.exports = n
}, function(t, e, n) {
function o(t, e, n, o, r) {
var a = i.apply(this, arguments);
return t.addEventListener(n, a, r), {
destroy: function() {
t.removeEventListener(n, a, r)
}
}
}
function r(t, e, n, r, i) {
return "function" == typeof t.addEventListener ? o.apply(null, arguments) : "function" == typeof n ? o.bind(null, document).apply(null, arguments) : ("string" == typeof t && (t = document.querySelectorAll(t)), Array.prototype.map.call(t, function(t) {
return o(t, e, n, r, i)
}))
}
function i(t, e, n, o) {
return function(n) {
n.delegateTarget = a(n.target, e), n.delegateTarget && o.call(t, n)
}
}
var a = n(4);
t.exports = r
}, function(t, e) {
e.node = function(t) {
return void 0 !== t && t instanceof HTMLElement && 1 === t.nodeType
}, e.nodeList = function(t) {
var n = Object.prototype.toString.call(t);
return void 0 !== t && ("[object NodeList]" === n || "[object HTMLCollection]" === n) && "length" in t && (0 === t.length || e.node(t[0]))
}, e.string = function(t) {
return "string" == typeof t || t instanceof String
}, e.fn = function(t) {
return "[object Function]" === Object.prototype.toString.call(t)
}
}, function(t, e) {
function n(t) {
var e;
if ("SELECT" === t.nodeName) t.focus(), e = t.value;
else if ("INPUT" === t.nodeName || "TEXTAREA" === t.nodeName) {
var n = t.hasAttribute("readonly");
n || t.setAttribute("readonly", ""), t.select(), t.setSelectionRange(0, t.value.length), n || t.removeAttribute("readonly"), e = t.value
} else {
t.hasAttribute("contenteditable") && t.focus();
var o = window.getSelection(),
r = document.createRange();
r.selectNodeContents(t), o.removeAllRanges(), o.addRange(r), e = o.toString()
}
return e
}
t.exports = n
}])
});
/*! Toastr | Authors: John Papa, Hans Fjällemark, and Tim Ferrell. | conditions of the MIT license | Project: https://github.com/CodeSeven/toastr */
! function(e) {
e(["jquery"], function(e) {
return function() {
function t(e, t, n) {
return g({
type: O.error,
iconClass: m().iconClasses.error,
message: e,
optionsOverride: n,
title: t
})
}
function n(t, n) {
return t || (t = m()), v = e("#" + t.containerId), v.length ? v : (n && (v = d(t)), v)
}
function o(e, t, n) {
return g({
type: O.info,
iconClass: m().iconClasses.info,
message: e,
optionsOverride: n,
title: t
})
}
function s(e) {
C = e
}
function i(e, t, n) {
return g({
type: O.success,
iconClass: m().iconClasses.success,
message: e,
optionsOverride: n,
title: t
})
}
function a(e, t, n) {
return g({
type: O.warning,
iconClass: m().iconClasses.warning,
message: e,
optionsOverride: n,
title: t
})
}
function r(e, t) {
var o = m();
v || n(o), u(e, o, t) || l(o)
}
function c(t) {
var o = m();
return v || n(o), t && 0 === e(":focus", t).length ? void h(t) : void(v.children().length && v.remove())
}
function l(t) {
for (var n = v.children(), o = n.length - 1; o >= 0; o--) u(e(n[o]), t)
}
function u(t, n, o) {
var s = !(!o || !o.force) && o.force;
return !(!t || !s && 0 !== e(":focus", t).length) && (t[n.hideMethod]({
duration: n.hideDuration,
easing: n.hideEasing,
complete: function() {
h(t)
}
}), !0)
}
function d(t) {
return v = e("<div/>").attr("id", t.containerId).addClass(t.positionClass), v.appendTo(e(t.target)), v
}
function p() {
return {
tapToDismiss: !0,
toastClass: "toast",
containerId: "toast-container",
debug: !1,
showMethod: "fadeIn",
showDuration: 300,
showEasing: "swing",
onShown: void 0,
hideMethod: "fadeOut",
hideDuration: 1e3,
hideEasing: "swing",
onHidden: void 0,
closeMethod: !1,
closeDuration: !1,
closeEasing: !1,
closeOnHover: !0,
extendedTimeOut: 1e3,
iconClasses: {
error: "toast-error",
info: "toast-info",
success: "toast-success",
warning: "toast-warning"
},
iconClass: "toast-info",
positionClass: "toast-top-right",
timeOut: 5e3,
titleClass: "toast-title",
messageClass: "toast-message",
escapeHtml: !1,
target: "body",
closeHtml: '<button type="button">×</button>',
closeClass: "toast-close-button",
newestOnTop: !0,
preventDuplicates: !1,
progressBar: !1,
progressClass: "toast-progress",
rtl: !1
}
}
function f(e) {
C && C(e)
}
function g(t) {
function o(e) {
return null == e && (e = ""), e.replace(/&/g, "&").replace(/"/g, """).replace(/'/g, "'").replace(/</g, "<").replace(/>/g, ">")
}
function s() {
c(), u(), d(), p(), g(), C(), l(), i()
}
function i() {
var e = "";
switch (t.iconClass) {
case "toast-success":
case "toast-info":
e = "polite";
break;
default:
e = "assertive"
}
I.attr("aria-live", e)
}
function a() {
E.closeOnHover && I.hover(H, D), !E.onclick && E.tapToDismiss && I.click(b), E.closeButton && j && j.click(function(e) {
e.stopPropagation ? e.stopPropagation() : void 0 !== e.cancelBubble && e.cancelBubble !== !0 && (e.cancelBubble = !0), E.onCloseClick && E.onCloseClick(e), b(!0)
}), E.onclick && I.click(function(e) {
E.onclick(e), b()
})
}
function r() {
I.hide(), I[E.showMethod]({
duration: E.showDuration,
easing: E.showEasing,
complete: E.onShown
}), E.timeOut > 0 && (k = setTimeout(b, E.timeOut), F.maxHideTime = parseFloat(E.timeOut), F.hideEta = (new Date).getTime() + F.maxHideTime, E.progressBar && (F.intervalId = setInterval(x, 10)))
}
function c() {
t.iconClass && I.addClass(E.toastClass).addClass(y)
}
function l() {
E.newestOnTop ? v.prepend(I) : v.append(I)
}
function u() {
if (t.title) {
var e = t.title;
E.escapeHtml && (e = o(t.title)), M.append(e).addClass(E.titleClass), I.append(M)
}
}
function d() {
if (t.message) {
var e = t.message;
E.escapeHtml && (e = o(t.message)), B.append(e).addClass(E.messageClass), I.append(B)
}
}
function p() {
E.closeButton && (j.addClass(E.closeClass).attr("role", "button"), I.prepend(j))
}
function g() {
E.progressBar && (q.addClass(E.progressClass), I.prepend(q))
}
function C() {
E.rtl && I.addClass("rtl")
}
function O(e, t) {
if (e.preventDuplicates) {
if (t.message === w) return !0;
w = t.message
}
return !1
}
function b(t) {
var n = t && E.closeMethod !== !1 ? E.closeMethod : E.hideMethod,
o = t && E.closeDuration !== !1 ? E.closeDuration : E.hideDuration,
s = t && E.closeEasing !== !1 ? E.closeEasing : E.hideEasing;
if (!e(":focus", I).length || t) return clearTimeout(F.intervalId), I[n]({
duration: o,
easing: s,
complete: function() {
h(I), clearTimeout(k), E.onHidden && "hidden" !== P.state && E.onHidden(), P.state = "hidden", P.endTime = new Date, f(P)
}
})
}
function D() {
(E.timeOut > 0 || E.extendedTimeOut > 0) && (k = setTimeout(b, E.extendedTimeOut), F.maxHideTime = parseFloat(E.extendedTimeOut), F.hideEta = (new Date).getTime() + F.maxHideTime)
}
function H() {
clearTimeout(k), F.hideEta = 0, I.stop(!0, !0)[E.showMethod]({
duration: E.showDuration,
easing: E.showEasing
})
}
function x() {
var e = (F.hideEta - (new Date).getTime()) / F.maxHideTime * 100;
q.width(e + "%")
}
var E = m(),
y = t.iconClass || E.iconClass;
if ("undefined" != typeof t.optionsOverride && (E = e.extend(E, t.optionsOverride), y = t.optionsOverride.iconClass || y), !O(E, t)) {
T++, v = n(E, !0);
var k = null,
I = e("<div/>"),
M = e("<div/>"),
B = e("<div/>"),
q = e("<div/>"),
j = e(E.closeHtml),
F = {
intervalId: null,
hideEta: null,
maxHideTime: null
},
P = {
toastId: T,
state: "visible",
startTime: new Date,
options: E,
map: t
};
return s(), r(), a(), f(P), E.debug && console && console.log(P), I
}
}
function m() {
return e.extend({}, p(), b.options)
}
function h(e) {
v || (v = n()), e.is(":visible") || (e.remove(), e = null, 0 === v.children().length && (v.remove(), w = void 0))
}
var v, C, w, T = 0,
O = {
error: "error",
info: "info",
success: "success",
warning: "warning"
},
b = {
clear: r,
remove: c,
error: t,
getContainer: n,
info: o,
options: {},
subscribe: s,
success: i,
version: "2.1.4",
warning: a
};
return b
}()
})
}("function" == typeof define && define.amd ? define : function(e, t) {
"undefined" != typeof module && module.exports ? module.exports = t(require("jquery")) : window.toastr = t(window.jQuery)
});
/*! SweatAlert JS*/
! function(t, e) {
"object" == typeof exports && "object" == typeof module ? module.exports = e() : "function" == typeof define && define.amd ? define([], e) : "object" == typeof exports ? exports.swal = e() : t.swal = e()
}(this, function() {
return function(t) {
function e(o) {
if (n[o]) return n[o].exports;
var r = n[o] = {
i: o,
l: !1,
exports: {}
};
return t[o].call(r.exports, r, r.exports, e), r.l = !0, r.exports
}
var n = {};
return e.m = t, e.c = n, e.d = function(t, n, o) {
e.o(t, n) || Object.defineProperty(t, n, {
configurable: !1,
enumerable: !0,
get: o
})
}, e.n = function(t) {
var n = t && t.__esModule ? function() {
return t.default
} : function() {
return t
};
return e.d(n, "a", n), n
}, e.o = function(t, e) {
return Object.prototype.hasOwnProperty.call(t, e)
}, e.p = "", e(e.s = 8)
}([function(t, e, n) {
"use strict";
Object.defineProperty(e, "__esModule", {
value: !0
});
var o = "swal-button";
e.CLASS_NAMES = {
MODAL: "swal-modal",
OVERLAY: "swal-overlay",
SHOW_MODAL: "swal-overlay--show-modal",
MODAL_TITLE: "swal-title",
MODAL_TEXT: "swal-text",
ICON: "swal-icon",
ICON_CUSTOM: "swal-icon--custom",
CONTENT: "swal-content",
FOOTER: "swal-footer",
BUTTON_CONTAINER: "swal-button-container",
BUTTON: o,
CONFIRM_BUTTON: o + "--confirm",
CANCEL_BUTTON: o + "--cancel",
DANGER_BUTTON: o + "--danger",
BUTTON_LOADING: o + "--loading",
BUTTON_LOADER: o + "__loader"
}, e.default = e.CLASS_NAMES
}, function(t, e, n) {
"use strict";
Object.defineProperty(e, "__esModule", {
value: !0
}), e.getNode = function(t) {
var e = "." + t;
return document.querySelector(e)
}, e.stringToNode = function(t) {
var e = document.createElement("div");
return e.innerHTML = t.trim(), e.firstChild
}, e.insertAfter = function(t, e) {
var n = e.nextSibling;
e.parentNode.insertBefore(t, n)
}, e.removeNode = function(t) {
t.parentElement.removeChild(t)
}, e.throwErr = function(t) {
throw t = t.replace(/ +(?= )/g, ""), "SweetAlert: " + (t = t.trim())
}, e.isPlainObject = function(t) {
if ("[object Object]" !== Object.prototype.toString.call(t)) return !1;
var e = Object.getPrototypeOf(t);
return null === e || e === Object.prototype
}, e.ordinalSuffixOf = function(t) {
var e = t % 10,
n = t % 100;
return 1 === e && 11 !== n ? t + "st" : 2 === e && 12 !== n ? t + "nd" : 3 === e && 13 !== n ? t + "rd" : t + "th"
}
}, function(t, e, n) {
"use strict";
function o(t) {
for (var n in t) e.hasOwnProperty(n) || (e[n] = t[n])
}
Object.defineProperty(e, "__esModule", {
value: !0
}), o(n(25));
var r = n(26);
e.overlayMarkup = r.default, o(n(27)), o(n(28)), o(n(29));
var i = n(0),
a = i.default.MODAL_TITLE,
s = i.default.MODAL_TEXT,
c = i.default.ICON,
l = i.default.FOOTER;
e.iconMarkup = 'n <div class="' + c + '"></div>', e.titleMarkup = 'n <div class="' + a + '"></div>n', e.textMarkup = 'n <div class="' + s + '"></div>', e.footerMarkup = 'n <div class="' + l + '"></div>n'
}, function(t, e, n) {
"use strict";
Object.defineProperty(e, "__esModule", {
value: !0
});
var o = n(1);
e.CONFIRM_KEY = "confirm", e.CANCEL_KEY = "cancel";
var r = {
visible: !0,
text: null,
value: null,
className: "",
closeModal: !0
},
i = Object.assign({}, r, {
visible: !1,
text: "Cancel",
value: null
}),
a = Object.assign({}, r, {
text: "OK",
value: !0
});
e.defaultButtonList = {
cancel: i,
confirm: a
};
var s = function(t) {
switch (t) {
case e.CONFIRM_KEY:
return a;
case e.CANCEL_KEY:
return i;
default:
var n = t.charAt(0).toUpperCase() + t.slice(1);
return Object.assign({}, r, {
text: n,
value: t
})
}
},
c = function(t, e) {
var n = s(t);
return !0 === e ? Object.assign({}, n, {
visible: !0
}) : "string" == typeof e ? Object.assign({}, n, {
visible: !0,
text: e
}) : o.isPlainObject(e) ? Object.assign({
visible: !0
}, n, e) : Object.assign({}, n, {
visible: !1
})
},
l = function(t) {
for (var e = {}, n = 0, o = Object.keys(t); n < o.length; n++) {
var r = o[n],
a = t[r],
s = c(r, a);
e[r] = s
}
return e.cancel || (e.cancel = i), e
},
u = function(t) {
var n = {};
switch (t.length) {
case 1:
n[e.CANCEL_KEY] = Object.assign({}, i, {
visible: !1
});
break;
case 2:
n[e.CANCEL_KEY] = c(e.CANCEL_KEY, t[0]), n[e.CONFIRM_KEY] = c(e.CONFIRM_KEY, t[1]);
break;
default:
o.throwErr("Invalid number of 'buttons' in array (" + t.length + ").n If you want more than 2 buttons, you need to use an object!")
}
return n
};
e.getButtonListOpts = function(t) {
var n = e.defaultButtonList;
return "string" == typeof t ? n[e.CONFIRM_KEY] = c(e.CONFIRM_KEY, t) : Array.isArray(t) ? n = u(t) : o.isPlainObject(t) ? n = l(t) : !0 === t ? n = u([!0, !0]) : !1 === t ? n = u([!1, !1]) : void 0 === t && (n = e.defaultButtonList), n
}
}, function(t, e, n) {
"use strict";
Object.defineProperty(e, "__esModule", {
value: !0
});
var o = n(1),
r = n(2),
i = n(0),
a = i.default.MODAL,
s = i.default.OVERLAY,
c = n(30),
l = n(31),
u = n(32),
f = n(33);
e.injectElIntoModal = function(t) {
var e = o.getNode(a),
n = o.stringToNode(t);
return e.appendChild(n), n
};
var d = function(t) {
t.className = a, t.textContent = ""
},
p = function(t, e) {
d(t);
var n = e.className;
n && t.classList.add(n)
};
e.initModalContent = function(t) {
var e = o.getNode(a);
p(e, t), c.default(t.icon), l.initTitle(t.title), l.initText(t.text), f.default(t.content), u.default(t.buttons, t.dangerMode)
};
var m = function() {
var t = o.getNode(s),
e = o.stringToNode(r.modalMarkup);
t.appendChild(e)
};
e.default = m
}, function(t, e, n) {
"use strict";
Object.defineProperty(e, "__esModule", {
value: !0
});
var o = n(3),
r = {
isOpen: !1,
promise: null,
actions: {},
timer: null
},
i = Object.assign({}, r);
e.resetState = function() {
i = Object.assign({}, r)
}, e.setActionValue = function(t) {
if ("string" == typeof t) return a(o.CONFIRM_KEY, t);
for (var e in t) a(e, t[e])
};
var a = function(t, e) {
i.actions[t] || (i.actions[t] = {}), Object.assign(i.actions[t], {
value: e
})
};
e.setActionOptionsFor = function(t, e) {
var n = (void 0 === e ? {} : e).closeModal,
o = void 0 === n || n;
Object.assign(i.actions[t], {
closeModal: o
})
}, e.default = i
}, function(t, e, n) {
"use strict";
Object.defineProperty(e, "__esModule", {
value: !0
});
var o = n(1),
r = n(3),
i = n(0),
a = i.default.OVERLAY,
s = i.default.SHOW_MODAL,
c = i.default.BUTTON,
l = i.default.BUTTON_LOADING,
u = n(5);
e.openModal = function() {
o.getNode(a).classList.add(s), u.default.isOpen = !0
};
var f = function() {
o.getNode(a).classList.remove(s), u.default.isOpen = !1
};
e.onAction = function(t) {
void 0 === t && (t = r.CANCEL_KEY);
var e = u.default.actions[t],
n = e.value;
if (!1 === e.closeModal) {
var i = c + "--" + t;
o.getNode(i).classList.add(l)
} else f();
u.default.promise.resolve(n)
}, e.getState = function() {
var t = Object.assign({}, u.default);
return delete t.promise, delete t.timer, t
}, e.stopLoading = function() {
for (var t = document.querySelectorAll("." + c), e = 0; e < t.length; e++) {
t[e].classList.remove(l)
}
}
}, function(t, e) {
var n;
n = function() {
return this
}();
try {
n = n || Function("return this")() || (0, eval)("this")
} catch (t) {
"object" == typeof window && (n = window)
}
t.exports = n
}, function(t, e, n) {
(function(e) {
t.exports = e.sweetAlert = n(9)
}).call(e, n(7))
}, function(t, e, n) {
(function(e) {
t.exports = e.swal = n(10)
}).call(e, n(7))
}, function(t, e, n) {
"undefined" != typeof window && n(11), n(16);
var o = n(23).default;
t.exports = o
}, function(t, e, n) {
var o = n(12);
"string" == typeof o && (o = [
[t.i, o, ""]
]);
var r = {
insertAt: "top"
};
r.transform = void 0;
n(14)(o, r);
o.locals && (t.exports = o.locals)
}, function(t, e, n) {
e = t.exports = n(13)(void 0), e.push([t.i, '.swal-icon--error{border-color:#f27474;-webkit-animation:animateErrorIcon .5s;animation:animateErrorIcon .5s}.swal-icon--error__x-mark{position:relative;display:block;-webkit-animation:animateXMark .5s;animation:animateXMark .5s}.swal-icon--error__line{position:absolute;height:5px;width:47px;background-color:#f27474;display:block;top:37px;border-radius:2px}.swal-icon--error__line--left{-webkit-transform:rotate(45deg);transform:rotate(45deg);left:17px}.swal-icon--error__line--right{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);right:16px}@-webkit-keyframes animateErrorIcon{0%{-webkit-transform:rotateX(100deg);transform:rotateX(100deg);opacity:0}to{-webkit-transform:rotateX(0deg);transform:rotateX(0deg);opacity:1}}@keyframes animateErrorIcon{0%{-webkit-transform:rotateX(100deg);transform:rotateX(100deg);opacity:0}to{-webkit-transform:rotateX(0deg);transform:rotateX(0deg);opacity:1}}@-webkit-keyframes animateXMark{0%{-webkit-transform:scale(.4);transform:scale(.4);margin-top:26px;opacity:0}50%{-webkit-transform:scale(.4);transform:scale(.4);margin-top:26px;opacity:0}80%{-webkit-transform:scale(1.15);transform:scale(1.15);margin-top:-6px}to{-webkit-transform:scale(1);transform:scale(1);margin-top:0;opacity:1}}@keyframes animateXMark{0%{-webkit-transform:scale(.4);transform:scale(.4);margin-top:26px;opacity:0}50%{-webkit-transform:scale(.4);transform:scale(.4);margin-top:26px;opacity:0}80%{-webkit-transform:scale(1.15);transform:scale(1.15);margin-top:-6px}to{-webkit-transform:scale(1);transform:scale(1);margin-top:0;opacity:1}}.swal-icon--warning{border-color:#f8bb86;-webkit-animation:pulseWarning .75s infinite alternate;animation:pulseWarning .75s infinite alternate}.swal-icon--warning__body{width:5px;height:47px;top:10px;border-radius:2px;margin-left:-2px}.swal-icon--warning__body,.swal-icon--warning__dot{position:absolute;left:50%;background-color:#f8bb86}.swal-icon--warning__dot{width:7px;height:7px;border-radius:50%;margin-left:-4px;bottom:-11px}@-webkit-keyframes pulseWarning{0%{border-color:#f8d486}to{border-color:#f8bb86}}@keyframes pulseWarning{0%{border-color:#f8d486}to{border-color:#f8bb86}}.swal-icon--success{border-color:#a5dc86}.swal-icon--success:after,.swal-icon--success:before{content:"";border-radius:50%;position:absolute;width:60px;height:120px;background:#fff;-webkit-transform:rotate(45deg);transform:rotate(45deg)}.swal-icon--success:before{border-radius:120px 0 0 120px;top:-7px;left:-33px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);-webkit-transform-origin:60px 60px;transform-origin:60px 60px}.swal-icon--success:after{border-radius:0 120px 120px 0;top:-11px;left:30px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);-webkit-transform-origin:0 60px;transform-origin:0 60px;-webkit-animation:rotatePlaceholder 4.25s ease-in;animation:rotatePlaceholder 4.25s ease-in}.swal-icon--success__ring{width:80px;height:80px;border:4px solid hsla(98,55%,69%,.2);border-radius:50%;box-sizing:content-box;position:absolute;left:-4px;top:-4px;z-index:2}.swal-icon--success__hide-corners{width:5px;height:90px;background-color:#fff;padding:1px;position:absolute;left:28px;top:8px;z-index:1;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.swal-icon--success__line{height:5px;background-color:#a5dc86;display:block;border-radius:2px;position:absolute;z-index:2}.swal-icon--success__line--tip{width:25px;left:14px;top:46px;-webkit-transform:rotate(45deg);transform:rotate(45deg);-webkit-animation:animateSuccessTip .75s;animation:animateSuccessTip .75s}.swal-icon--success__line--long{width:47px;right:8px;top:38px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);-webkit-animation:animateSuccessLong .75s;animation:animateSuccessLong .75s}@-webkit-keyframes rotatePlaceholder{0%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}5%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}12%{-webkit-transform:rotate(-405deg);transform:rotate(-405deg)}to{-webkit-transform:rotate(-405deg);transform:rotate(-405deg)}}@keyframes rotatePlaceholder{0%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}5%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}12%{-webkit-transform:rotate(-405deg);transform:rotate(-405deg)}to{-webkit-transform:rotate(-405deg);transform:rotate(-405deg)}}@-webkit-keyframes animateSuccessTip{0%{width:0;left:1px;top:19px}54%{width:0;left:1px;top:19px}70%{width:50px;left:-8px;top:37px}84%{width:17px;left:21px;top:48px}to{width:25px;left:14px;top:45px}}@keyframes animateSuccessTip{0%{width:0;left:1px;top:19px}54%{width:0;left:1px;top:19px}70%{width:50px;left:-8px;top:37px}84%{width:17px;left:21px;top:48px}to{width:25px;left:14px;top:45px}}@-webkit-keyframes animateSuccessLong{0%{width:0;right:46px;top:54px}65%{width:0;right:46px;top:54px}84%{width:55px;right:0;top:35px}to{width:47px;right:8px;top:38px}}@keyframes animateSuccessLong{0%{width:0;right:46px;top:54px}65%{width:0;right:46px;top:54px}84%{width:55px;right:0;top:35px}to{width:47px;right:8px;top:38px}}.swal-icon--info{border-color:#c9dae1}.swal-icon--info:before{width:5px;height:29px;bottom:17px;border-radius:2px;margin-left:-2px}.swal-icon--info:after,.swal-icon--info:before{content:"";position:absolute;left:50%;background-color:#c9dae1}.swal-icon--info:after{width:7px;height:7px;border-radius:50%;margin-left:-3px;top:19px}.swal-icon{width:80px;height:80px;border-width:4px;border-style:solid;border-radius:50%;padding:0;position:relative;box-sizing:content-box;margin:20px auto}.swal-icon:first-child{margin-top:32px}.swal-icon--custom{width:auto;height:auto;max-width:100%;border:none;border-radius:0}.swal-icon img{max-width:100%;max-height:100%}.swal-title{color:rgba(0,0,0,.65);font-weight:600;text-transform:none;position:relative;display:block;padding:13px 16px;font-size:27px;line-height:normal;text-align:center;margin-bottom:0}.swal-title:first-child{margin-top:26px}.swal-title:not(:first-child){padding-bottom:0}.swal-title:not(:last-child){margin-bottom:13px}.swal-text{font-size:16px;position:relative;float:none;line-height:normal;vertical-align:top;text-align:left;display:inline-block;margin:0;padding:0 10px;font-weight:400;color:rgba(0,0,0,.64);max-width:calc(100% - 20px);overflow-wrap:break-word;box-sizing:border-box}.swal-text:first-child{margin-top:45px}.swal-text:last-child{margin-bottom:45px}.swal-footer{text-align:right;padding-top:13px;margin-top:13px;padding:13px 16px;border-radius:inherit;border-top-left-radius:0;border-top-right-radius:0}.swal-button-container{margin:5px;display:inline-block;position:relative}.swal-button{background-color:#7cd1f9;color:#fff;border:none;box-shadow:none;border-radius:5px;font-weight:600;font-size:14px;padding:10px 24px;margin:0;cursor:pointer}.swal-button:not([disabled]):hover{background-color:#78cbf2}.swal-button:active{background-color:#70bce0}.swal-button:focus{outline:none;box-shadow:0 0 0 1px #fff,0 0 0 3px rgba(43,114,165,.29)}.swal-button[disabled]{opacity:.5;cursor:default}.swal-button::-moz-focus-inner{border:0}.swal-button--cancel{color:#555;background-color:#efefef}.swal-button--cancel:not([disabled]):hover{background-color:#e8e8e8}.swal-button--cancel:active{background-color:#d7d7d7}.swal-button--cancel:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px rgba(116,136,150,.29)}.swal-button--danger{background-color:#e64942}.swal-button--danger:not([disabled]):hover{background-color:#df4740}.swal-button--danger:active{background-color:#cf423b}.swal-button--danger:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px rgba(165,43,43,.29)}.swal-content{padding:0 20px;margin-top:20px;font-size:medium}.swal-content:last-child{margin-bottom:20px}.swal-content__input,.swal-content__textarea{-webkit-appearance:none;background-color:#fff;border:none;font-size:14px;display:block;box-sizing:border-box;width:100%;border:1px solid rgba(0,0,0,.14);padding:10px 13px;border-radius:2px;transition:border-color .2s}.swal-content__input:focus,.swal-content__textarea:focus{outline:none;border-color:#6db8ff}.swal-content__textarea{resize:vertical}.swal-button--loading{color:transparent}.swal-button--loading~.swal-button__loader{opacity:1}.swal-button__loader{position:absolute;height:auto;width:43px;z-index:2;left:50%;top:50%;-webkit-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);text-align:center;pointer-events:none;opacity:0}.swal-button__loader div{display:inline-block;float:none;vertical-align:baseline;width:9px;height:9px;padding:0;border:none;margin:2px;opacity:.4;border-radius:7px;background-color:hsla(0,0%,100%,.9);transition:background .2s;-webkit-animation:swal-loading-anim 1s infinite;animation:swal-loading-anim 1s infinite}.swal-button__loader div:nth-child(3n+2){-webkit-animation-delay:.15s;animation-delay:.15s}.swal-button__loader div:nth-child(3n+3){-webkit-animation-delay:.3s;animation-delay:.3s}@-webkit-keyframes swal-loading-anim{0%{opacity:.4}20%{opacity:.4}50%{opacity:1}to{opacity:.4}}@keyframes swal-loading-anim{0%{opacity:.4}20%{opacity:.4}50%{opacity:1}to{opacity:.4}}.swal-overlay{position:fixed;top:0;bottom:0;left:0;right:0;text-align:center;font-size:0;overflow-y:auto;background-color:rgba(0,0,0,.4);z-index:10000;pointer-events:none;opacity:0;transition:opacity .3s}.swal-overlay:before{content:" ";display:inline-block;vertical-align:middle;height:100%}.swal-overlay--show-modal{opacity:1;pointer-events:auto}.swal-overlay--show-modal .swal-modal{opacity:1;pointer-events:auto;box-sizing:border-box;-webkit-animation:showSweetAlert .3s;animation:showSweetAlert .3s;will-change:transform}.swal-modal{width:478px;opacity:0;pointer-events:none;background-color:#fff;text-align:center;border-radius:5px;position:static;margin:20px auto;display:inline-block;vertical-align:middle;-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 50%;transform-origin:50% 50%;z-index:10001;transition:opacity .2s,-webkit-transform .3s;transition:transform .3s,opacity .2s;transition:transform .3s,opacity .2s,-webkit-transform .3s}@media (max-width:500px){.swal-modal{width:calc(100% - 20px)}}@-webkit-keyframes showSweetAlert{0%{-webkit-transform:scale(1);transform:scale(1)}1%{-webkit-transform:scale(.5);transform:scale(.5)}45%{-webkit-transform:scale(1.05);transform:scale(1.05)}80%{-webkit-transform:scale(.95);transform:scale(.95)}to{-webkit-transform:scale(1);transform:scale(1)}}@keyframes showSweetAlert{0%{-webkit-transform:scale(1);transform:scale(1)}1%{-webkit-transform:scale(.5);transform:scale(.5)}45%{-webkit-transform:scale(1.05);transform:scale(1.05)}80%{-webkit-transform:scale(.95);transform:scale(.95)}to{-webkit-transform:scale(1);transform:scale(1)}}', ""])
}, function(t, e) {
function n(t, e) {
var n = t[1] || "",
r = t[3];
if (!r) return n;
if (e && "function" == typeof btoa) {
var i = o(r);
return [n].concat(r.sources.map(function(t) {
return "/*# sourceURL=" + r.sourceRoot + t + " */"
})).concat([i]).join("n")
}
return [n].join("n")
}
function o(t) {
return "/*# sourceMappingURL=data:application/json;charset=utf-8;base64," + btoa(unescape(encodeURIComponent(JSON.stringify(t)))) + " */"
}
t.exports = function(t) {
var e = [];
return e.toString = function() {
return this.map(function(e) {
var o = n(e, t);
return e[2] ? "@media " + e[2] + "{" + o + "}" : o
}).join("")
}, e.i = function(t, n) {
"string" == typeof t && (t = [
[null, t, ""]
]);
for (var o = {}, r = 0; r < this.length; r++) {
var i = this[r][0];
"number" == typeof i && (o[i] = !0)
}
for (r = 0; r < t.length; r++) {
var a = t[r];
"number" == typeof a[0] && o[a[0]] || (n && !a[2] ? a[2] = n : n && (a[2] = "(" + a[2] + ") and (" + n + ")"), e.push(a))
}
}, e
}
}, function(t, e, n) {
function o(t, e) {
for (var n = 0; n < t.length; n++) {
var o = t[n],
r = m[o.id];
if (r) {
r.refs++;
for (var i = 0; i < r.parts.length; i++) r.parts[i](o.parts[i]);
for (; i < o.parts.length; i++) r.parts.push(u(o.parts[i], e))
} else {
for (var a = [], i = 0; i < o.parts.length; i++) a.push(u(o.parts[i], e));
m[o.id] = {
id: o.id,
refs: 1,
parts: a
}
}
}
}
function r(t, e) {
for (var n = [], o = {}, r = 0; r < t.length; r++) {
var i = t[r],
a = e.base ? i[0] + e.base : i[0],
s = i[1],
c = i[2],
l = i[3],
u = {
css: s,
media: c,
sourceMap: l
};
o[a] ? o[a].parts.push(u) : n.push(o[a] = {
id: a,
parts: [u]
})
}
return n
}
function i(t, e) {
var n = v(t.insertInto);
if (!n) throw new Error("Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.");
var o = w[w.length - 1];
if ("top" === t.insertAt) o ? o.nextSibling ? n.insertBefore(e, o.nextSibling) : n.appendChild(e) : n.insertBefore(e, n.firstChild), w.push(e);
else {
if ("bottom" !== t.insertAt) throw new Error("Invalid value for parameter 'insertAt'. Must be 'top' or 'bottom'.");
n.appendChild(e)
}
}
function a(t) {
if (null === t.parentNode) return !1;
t.parentNode.removeChild(t);
var e = w.indexOf(t);
e >= 0 && w.splice(e, 1)
}
function s(t) {
var e = document.createElement("style");
return t.attrs.type = "text/css", l(e, t.attrs), i(t, e), e
}
function c(t) {
var e = document.createElement("link");
return t.attrs.type = "text/css", t.attrs.rel = "stylesheet", l(e, t.attrs), i(t, e), e
}
function l(t, e) {
Object.keys(e).forEach(function(n) {
t.setAttribute(n, e[n])
})
}
function u(t, e) {
var n, o, r, i;
if (e.transform && t.css) {
if (!(i = e.transform(t.css))) return function() {};
t.css = i
}
if (e.singleton) {
var l = h++;
n = g || (g = s(e)), o = f.bind(null, n, l, !1), r = f.bind(null, n, l, !0)
} else t.sourceMap && "function" == typeof URL && "function" == typeof URL.createObjectURL && "function" == typeof URL.revokeObjectURL && "function" == typeof Blob && "function" == typeof btoa ? (n = c(e), o = p.bind(null, n, e), r = function() {
a(n), n.href && URL.revokeObjectURL(n.href)
}) : (n = s(e), o = d.bind(null, n), r = function() {
a(n)
});
return o(t),
function(e) {
if (e) {
if (e.css === t.css && e.media === t.media && e.sourceMap === t.sourceMap) return;
o(t = e)
} else r()
}
}
function f(t, e, n, o) {
var r = n ? "" : o.css;
if (t.styleSheet) t.styleSheet.cssText = x(e, r);
else {
var i = document.createTextNode(r),
a = t.childNodes;
a[e] && t.removeChild(a[e]), a.length ? t.insertBefore(i, a[e]) : t.appendChild(i)
}
}
function d(t, e) {
var n = e.css,
o = e.media;
if (o && t.setAttribute("media", o), t.styleSheet) t.styleSheet.cssText = n;
else {
for (; t.firstChild;) t.removeChild(t.firstChild);
t.appendChild(document.createTextNode(n))
}
}
function p(t, e, n) {
var o = n.css,
r = n.sourceMap,
i = void 0 === e.convertToAbsoluteUrls && r;
(e.convertToAbsoluteUrls || i) && (o = y(o)), r && (o += "n/*# sourceMappingURL=data:application/json;base64," + btoa(unescape(encodeURIComponent(JSON.stringify(r)))) + " */");
var a = new Blob([o], {
type: "text/css"
}),
s = t.href;
t.href = URL.createObjectURL(a), s && URL.revokeObjectURL(s)
}
var m = {},
b = function(t) {
var e;
return function() {
return void 0 === e && (e = t.apply(this, arguments)), e
}
}(function() {
return window && document && document.all && !window.atob
}),
v = function(t) {
var e = {};
return function(n) {
return void 0 === e[n] && (e[n] = t.call(this, n)), e[n]
}
}(function(t) {
return document.querySelector(t)
}),
g = null,
h = 0,
w = [],
y = n(15);
t.exports = function(t, e) {
if ("undefined" != typeof DEBUG && DEBUG && "object" != typeof document) throw new Error("The style-loader cannot be used in a non-browser environment");
e = e || {}, e.attrs = "object" == typeof e.attrs ? e.attrs : {}, e.singleton || (e.singleton = b()), e.insertInto || (e.insertInto = "head"), e.insertAt || (e.insertAt = "bottom");
var n = r(t, e);
return o(n, e),
function(t) {
for (var i = [], a = 0; a < n.length; a++) {
var s = n[a],
c = m[s.id];
c.refs--, i.push(c)
}
if (t) {
o(r(t, e), e)
}
for (var a = 0; a < i.length; a++) {
var c = i[a];
if (0 === c.refs) {
for (var l = 0; l < c.parts.length; l++) c.parts[l]();
delete m[c.id]
}
}
}
};
var x = function() {
var t = [];
return function(e, n) {
return t[e] = n, t.filter(Boolean).join("n")
}
}()
}, function(t, e) {
t.exports = function(t) {
var e = "undefined" != typeof window && window.location;
if (!e) throw new Error("fixUrls requires window.location");
if (!t || "string" != typeof t) return t;
var n = e.protocol + "//" + e.host,
o = n + e.pathname.replace(//[^/]*$/, "/");
return t.replace(/urls*(((?:[^)(]|((?:[^)(]+|([^)(]*))*))*))/gi, function(t, e) {
var r = e.trim().replace(/^"(.*)"$/, function(t, e) {
return e
}).replace(/^'(.*)'$/, function(t, e) {
return e
});
if (/^(#|data:|http://|https://|file:///)/i.test(r)) return t;
var i;
return i = 0 === r.indexOf("//") ? r : 0 === r.indexOf("/") ? n + r : o + r.replace(/^.//, ""), "url(" + JSON.stringify(i) + ")"
})
}
}, function(t, e, n) {
var o = n(17);
"undefined" == typeof window || window.Promise || (window.Promise = o), n(21), String.prototype.includes || (String.prototype.includes = function(t, e) {
"use strict";
return "number" != typeof e && (e = 0), !(e + t.length > this.length) && -1 !== this.indexOf(t, e)
}), Array.prototype.includes || Object.defineProperty(Array.prototype, "includes", {
value: function(t, e) {
if (null == this) throw new TypeError('"this" is null or not defined');
var n = Object(this),
o = n.length >>> 0;
if (0 === o) return !1;
for (var r = 0 | e, i = Math.max(r >= 0 ? r : o - Math.abs(r), 0); i < o;) {
if (function(t, e) {
return t === e || "number" == typeof t && "number" == typeof e && isNaN(t) && isNaN(e)
}(n[i], t)) return !0;
i++
}
return !1
}
}), "undefined" != typeof window && function(t) {
t.forEach(function(t) {
t.hasOwnProperty("remove") || Object.defineProperty(t, "remove", {
configurable: !0,
enumerable: !0,
writable: !0,
value: function() {
this.parentNode.removeChild(this)
}
})
})
}([Element.prototype, CharacterData.prototype, DocumentType.prototype])
}, function(t, e, n) {
(function(e) {
! function(n) {
function o() {}
function r(t, e) {
return function() {
t.apply(e, arguments)
}
}
function i(t) {
if ("object" != typeof this) throw new TypeError("Promises must be constructed via new");
if ("function" != typeof t) throw new TypeError("not a function");
this._state = 0, this._handled = !1, this._value = void 0, this._deferreds = [], f(t, this)
}
function a(t, e) {
for (; 3 === t._state;) t = t._value;
if (0 === t._state) return void t._deferreds.push(e);
t._handled = !0, i._immediateFn(function() {
var n = 1 === t._state ? e.onFulfilled : e.onRejected;
if (null === n) return void(1 === t._state ? s : c)(e.promise, t._value);
var o;
try {
o = n(t._value)
} catch (t) {
return void c(e.promise, t)
}
s(e.promise, o)
})
}
function s(t, e) {
try {
if (e === t) throw new TypeError("A promise cannot be resolved with itself.");
if (e && ("object" == typeof e || "function" == typeof e)) {
var n = e.then;
if (e instanceof i) return t._state = 3, t._value = e, void l(t);
if ("function" == typeof n) return void f(r(n, e), t)
}
t._state = 1, t._value = e, l(t)
} catch (e) {
c(t, e)
}
}
function c(t, e) {
t._state = 2, t._value = e, l(t)
}
function l(t) {
2 === t._state && 0 === t._deferreds.length && i._immediateFn(function() {
t._handled || i._unhandledRejectionFn(t._value)
});
for (var e = 0, n = t._deferreds.length; e < n; e++) a(t, t._deferreds[e]);
t._deferreds = null
}
function u(t, e, n) {
this.onFulfilled = "function" == typeof t ? t : null, this.onRejected = "function" == typeof e ? e : null, this.promise = n
}
function f(t, e) {
var n = !1;
try {
t(function(t) {
n || (n = !0, s(e, t))
}, function(t) {
n || (n = !0, c(e, t))
})
} catch (t) {
if (n) return;
n = !0, c(e, t)
}
}
var d = setTimeout;
i.prototype.catch = function(t) {
return this.then(null, t)
}, i.prototype.then = function(t, e) {
var n = new this.constructor(o);
return a(this, new u(t, e, n)), n
}, i.all = function(t) {
var e = Array.prototype.slice.call(t);
return new i(function(t, n) {
function o(i, a) {
try {
if (a && ("object" == typeof a || "function" == typeof a)) {
var s = a.then;
if ("function" == typeof s) return void s.call(a, function(t) {
o(i, t)
}, n)
}
e[i] = a, 0 == --r && t(e)
} catch (t) {
n(t)
}
}
if (0 === e.length) return t([]);
for (var r = e.length, i = 0; i < e.length; i++) o(i, e[i])
})
}, i.resolve = function(t) {
return t && "object" == typeof t && t.constructor === i ? t : new i(function(e) {
e(t)
})
}, i.reject = function(t) {
return new i(function(e, n) {
n(t)
})
}, i.race = function(t) {
return new i(function(e, n) {
for (var o = 0, r = t.length; o < r; o++) t[o].then(e, n)
})
}, i._immediateFn = "function" == typeof e && function(t) {
e(t)
} || function(t) {
d(t, 0)
}, i._unhandledRejectionFn = function(t) {
"undefined" != typeof console && console && console.warn("Possible Unhandled Promise Rejection:", t)
}, i._setImmediateFn = function(t) {
i._immediateFn = t
}, i._setUnhandledRejectionFn = function(t) {
i._unhandledRejectionFn = t
}, void 0 !== t && t.exports ? t.exports = i : n.Promise || (n.Promise = i)
}(this)
}).call(e, n(18).setImmediate)
}, function(t, e, n) {
function o(t, e) {
this._id = t, this._clearFn = e
}
var r = Function.prototype.apply;
e.setTimeout = function() {
return new o(r.call(setTimeout, window, arguments), clearTimeout)
}, e.setInterval = function() {
return new o(r.call(setInterval, window, arguments), clearInterval)
}, e.clearTimeout = e.clearInterval = function(t) {
t && t.close()
}, o.prototype.unref = o.prototype.ref = function() {}, o.prototype.close = function() {
this._clearFn.call(window, this._id)
}, e.enroll = function(t, e) {
clearTimeout(t._idleTimeoutId), t._idleTimeout = e
}, e.unenroll = function(t) {
clearTimeout(t._idleTimeoutId), t._idleTimeout = -1
}, e._unrefActive = e.active = function(t) {
clearTimeout(t._idleTimeoutId);
var e = t._idleTimeout;
e >= 0 && (t._idleTimeoutId = setTimeout(function() {
t._onTimeout && t._onTimeout()
}, e))
}, n(19), e.setImmediate = setImmediate, e.clearImmediate = clearImmediate
}, function(t, e, n) {
(function(t, e) {
! function(t, n) {
"use strict";
function o(t) {
"function" != typeof t && (t = new Function("" + t));
for (var e = new Array(arguments.length - 1), n = 0; n < e.length; n++) e[n] = arguments[n + 1];
var o = {
callback: t,
args: e
};
return l[c] = o, s(c), c++
}
function r(t) {
delete l[t]
}
function i(t) {
var e = t.callback,
o = t.args;
switch (o.length) {
case 0:
e();
break;
case 1:
e(o[0]);
break;
case 2:
e(o[0], o[1]);
break;
case 3:
e(o[0], o[1], o[2]);
break;
default:
e.apply(n, o)
}
}
function a(t) {
if (u) setTimeout(a, 0, t);
else {
var e = l[t];
if (e) {
u = !0;
try {
i(e)
} finally {
r(t), u = !1
}
}
}
}
if (!t.setImmediate) {
var s, c = 1,
l = {},
u = !1,
f = t.document,
d = Object.getPrototypeOf && Object.getPrototypeOf(t);
d = d && d.setTimeout ? d : t, "[object process]" === {}.toString.call(t.process) ? function() {
s = function(t) {
e.nextTick(function() {
a(t)
})
}
}() : function() {
if (t.postMessage && !t.importScripts) {
var e = !0,
n = t.onmessage;
return t.onmessage = function() {
e = !1
}, t.postMessage("", "*"), t.onmessage = n, e
}
}() ? function() {
var e = "setImmediate$" + Math.random() + "$",
n = function(n) {
n.source === t && "string" == typeof n.data && 0 === n.data.indexOf(e) && a(+n.data.slice(e.length))
};
t.addEventListener ? t.addEventListener("message", n, !1) : t.attachEvent("onmessage", n), s = function(n) {
t.postMessage(e + n, "*")
}
}() : t.MessageChannel ? function() {
var t = new MessageChannel;
t.port1.onmessage = function(t) {
a(t.data)
}, s = function(e) {
t.port2.postMessage(e)
}
}() : f && "onreadystatechange" in f.createElement("script") ? function() {
var t = f.documentElement;
s = function(e) {
var n = f.createElement("script");
n.onreadystatechange = function() {
a(e), n.onreadystatechange = null, t.removeChild(n), n = null
}, t.appendChild(n)
}
}() : function() {
s = function(t) {
setTimeout(a, 0, t)
}
}(), d.setImmediate = o, d.clearImmediate = r
}
}("undefined" == typeof self ? void 0 === t ? this : t : self)
}).call(e, n(7), n(20))
}, function(t, e) {
function n() {
throw new Error("setTimeout has not been defined")
}
function o() {
throw new Error("clearTimeout has not been defined")
}
function r(t) {
if (u === setTimeout) return setTimeout(t, 0);
if ((u === n || !u) && setTimeout) return u = setTimeout, setTimeout(t, 0);
try {
return u(t, 0)
} catch (e) {
try {
return u.call(null, t, 0)
} catch (e) {
return u.call(this, t, 0)
}
}
}
function i(t) {
if (f === clearTimeout) return clearTimeout(t);
if ((f === o || !f) && clearTimeout) return f = clearTimeout, clearTimeout(t);
try {
return f(t)
} catch (e) {
try {
return f.call(null, t)
} catch (e) {
return f.call(this, t)
}
}
}
function a() {
b && p && (b = !1, p.length ? m = p.concat(m) : v = -1, m.length && s())
}
function s() {
if (!b) {
var t = r(a);
b = !0;
for (var e = m.length; e;) {
for (p = m, m = []; ++v < e;) p && p[v].run();
v = -1, e = m.length
}
p = null, b = !1, i(t)
}
}
function c(t, e) {
this.fun = t, this.array = e
}
function l() {}
var u, f, d = t.exports = {};
! function() {
try {
u = "function" == typeof setTimeout ? setTimeout : n
} catch (t) {
u = n
}
try {
f = "function" == typeof clearTimeout ? clearTimeout : o
} catch (t) {
f = o
}
}();
var p, m = [],
b = !1,
v = -1;
d.nextTick = function(t) {
var e = new Array(arguments.length - 1);
if (arguments.length > 1)
for (var n = 1; n < arguments.length; n++) e[n - 1] = arguments[n];
m.push(new c(t, e)), 1 !== m.length || b || r(s)
}, c.prototype.run = function() {
this.fun.apply(null, this.array)
}, d.title = "browser", d.browser = !0, d.env = {}, d.argv = [], d.version = "", d.versions = {}, d.on = l, d.addListener = l, d.once = l, d.off = l, d.removeListener = l, d.removeAllListeners = l, d.emit = l, d.prependListener = l, d.prependOnceListener = l, d.listeners = function(t) {
return []
}, d.binding = function(t) {
throw new Error("process.binding is not supported")
}, d.cwd = function() {
return "/"
}, d.chdir = function(t) {
throw new Error("process.chdir is not supported")
}, d.umask = function() {
return 0
}
}, function(t, e, n) {
"use strict";
n(22).polyfill()
}, function(t, e, n) {
"use strict";
function o(t, e) {
if (void 0 === t || null === t) throw new TypeError("Cannot convert first argument to object");
for (var n = Object(t), o = 1; o < arguments.length; o++) {
var r = arguments[o];
if (void 0 !== r && null !== r)
for (var i = Object.keys(Object(r)), a = 0, s = i.length; a < s; a++) {
var c = i[a],
l = Object.getOwnPropertyDescriptor(r, c);
void 0 !== l && l.enumerable && (n[c] = r[c])
}
}
return n
}
function r() {
Object.assign || Object.defineProperty(Object, "assign", {
enumerable: !1,
configurable: !0,
writable: !0,
value: o
})
}
t.exports = {
assign: o,
polyfill: r
}
}, function(t, e, n) {
"use strict";
Object.defineProperty(e, "__esModule", {
value: !0
});
var o = n(24),
r = n(6),
i = n(5),
a = n(36),
s = function() {
for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e];
if ("undefined" != typeof window) {
var n = a.getOpts.apply(void 0, t);
return new Promise(function(t, e) {
i.default.promise = {
resolve: t,
reject: e
}, o.default(n), setTimeout(function() {
r.openModal()
})
})
}
};
s.close = r.onAction, s.getState = r.getState, s.setActionValue = i.setActionValue, s.stopLoading = r.stopLoading, s.setDefaults = a.setDefaults, e.default = s
}, function(t, e, n) {
"use strict";
Object.defineProperty(e, "__esModule", {
value: !0
});
var o = n(1),
r = n(0),
i = r.default.MODAL,
a = n(4),
s = n(34),
c = n(35),
l = n(1);
e.init = function(t) {
o.getNode(i) || (document.body || l.throwErr("You can only use SweetAlert AFTER the DOM has loaded!"), s.default(), a.default()), a.initModalContent(t), c.default(t)
}, e.default = e.init
}, function(t, e, n) {
"use strict";
Object.defineProperty(e, "__esModule", {
value: !0
});
var o = n(0),
r = o.default.MODAL;
e.modalMarkup = 'n <div class="' + r + '" role="dialog" aria-modal="true"></div>', e.default = e.modalMarkup
}, function(t, e, n) {
"use strict";
Object.defineProperty(e, "__esModule", {
value: !0
});
var o = n(0),
r = o.default.OVERLAY,
i = '<div n class="' + r + '"n tabIndex="-1">n </div>';
e.default = i
}, function(t, e, n) {
"use strict";
Object.defineProperty(e, "__esModule", {
value: !0
});
var o = n(0),
r = o.default.ICON;
e.errorIconMarkup = function() {
var t = r + "--error",
e = t + "__line";
return 'n <div class="' + t + '__x-mark">n <span class="' + e + " " + e + '--left"></span>n <span class="' + e + " " + e + '--right"></span>n </div>n '
}, e.warningIconMarkup = function() {
var t = r + "--warning";
return 'n <span class="' + t + '__body">n <span class="' + t + '__dot"></span>n </span>n '
}, e.successIconMarkup = function() {
var t = r + "--success";
return 'n <span class="' + t + "__line " + t + '__line--long"></span>n <span class="' + t + "__line " + t + '__line--tip"></span>nn <div class="' + t + '__ring"></div>n <div class="' + t + '__hide-corners"></div>n '
}
}, function(t, e, n) {
"use strict";
Object.defineProperty(e, "__esModule", {
value: !0
});
var o = n(0),
r = o.default.CONTENT;
e.contentMarkup = 'n <div class="' + r + '">nn </div>n'
}, function(t, e, n) {
"use strict";
Object.defineProperty(e, "__esModule", {
value: !0
});
var o = n(0),
r = o.default.BUTTON_CONTAINER,
i = o.default.BUTTON,
a = o.default.BUTTON_LOADER;
e.buttonMarkup = 'n <div class="' + r + '">nn <buttonn class="' + i + '"n ></button>nn <div class="' + a + '">n <div></div>n <div></div>n <div></div>n </div>nn </div>n'
}, function(t, e, n) {
"use strict";
Object.defineProperty(e, "__esModule", {
value: !0
});
var o = n(4),
r = n(2),
i = n(0),
a = i.default.ICON,
s = i.default.ICON_CUSTOM,
c = ["error", "warning", "success", "info"],
l = {
error: r.errorIconMarkup(),
warning: r.warningIconMarkup(),
success: r.successIconMarkup()
},
u = function(t, e) {
var n = a + "--" + t;
e.classList.add(n);
var o = l[t];
o && (e.innerHTML = o)
},
f = function(t, e) {
e.classList.add(s);
var n = document.createElement("img");
n.src = t, e.appendChild(n)
},
d = function(t) {
if (t) {
var e = o.injectElIntoModal(r.iconMarkup);
c.includes(t) ? u(t, e) : f(t, e)
}
};
e.default = d
}, function(t, e, n) {
"use strict";
Object.defineProperty(e, "__esModule", {
value: !0
});
var o = n(2),
r = n(4),
i = function(t) {
navigator.userAgent.includes("AppleWebKit") && (t.style.display = "none", t.offsetHeight, t.style.display = "")
};
e.initTitle = function(t) {
if (t) {
var e = r.injectElIntoModal(o.titleMarkup);
e.textContent = t, i(e)
}
}, e.initText = function(t) {
if (t) {
var e = document.createDocumentFragment();
t.split("n").forEach(function(t, n, o) {
e.appendChild(document.createTextNode(t)), n < o.length - 1 && e.appendChild(document.createElement("br"))
});
var n = r.injectElIntoModal(o.textMarkup);
n.appendChild(e), i(n)
}
}
}, function(t, e, n) {
"use strict";
Object.defineProperty(e, "__esModule", {
value: !0
});
var o = n(1),
r = n(4),
i = n(0),
a = i.default.BUTTON,
s = i.default.DANGER_BUTTON,
c = n(3),
l = n(2),
u = n(6),
f = n(5),
d = function(t, e, n) {
var r = e.text,
i = e.value,
d = e.className,
p = e.closeModal,
m = o.stringToNode(l.buttonMarkup),
b = m.querySelector("." + a),
v = a + "--" + t;
if (b.classList.add(v), d) {
(Array.isArray(d) ? d : d.split(" ")).filter(function(t) {
return t.length > 0
}).forEach(function(t) {
b.classList.add(t)
})
}
n && t === c.CONFIRM_KEY && b.classList.add(s), b.textContent = r;
var g = {};
return g[t] = i, f.setActionValue(g), f.setActionOptionsFor(t, {
closeModal: p
}), b.addEventListener("click", function() {
return u.onAction(t)
}), m
},
p = function(t, e) {
var n = r.injectElIntoModal(l.footerMarkup);
for (var o in t) {
var i = t[o],
a = d(o, i, e);
i.visible && n.appendChild(a)
}
0 === n.children.length && n.remove()
};
e.default = p
}, function(t, e, n) {
"use strict";
Object.defineProperty(e, "__esModule", {
value: !0
});
var o = n(3),
r = n(4),
i = n(2),
a = n(5),
s = n(6),
c = n(0),
l = c.default.CONTENT,
u = function(t) {
t.addEventListener("input", function(t) {
var e = t.target,
n = e.value;
a.setActionValue(n)
}), t.addEventListener("keyup", function(t) {
if ("Enter" === t.key) return s.onAction(o.CONFIRM_KEY)
}), setTimeout(function() {
t.focus(), a.setActionValue("")
}, 0)
},
f = function(t, e, n) {
var o = document.createElement(e),
r = l + "__" + e;
o.classList.add(r);
for (var i in n) {
var a = n[i];
o[i] = a
}
"input" === e && u(o), t.appendChild(o)
},
d = function(t) {
if (t) {
var e = r.injectElIntoModal(i.contentMarkup),
n = t.element,
o = t.attributes;
"string" == typeof n ? f(e, n, o) : e.appendChild(n)
}
};
e.default = d
}, function(t, e, n) {
"use strict";
Object.defineProperty(e, "__esModule", {
value: !0
});
var o = n(1),
r = n(2),
i = function() {
var t = o.stringToNode(r.overlayMarkup);
document.body.appendChild(t)
};
e.default = i
}, function(t, e, n) {
"use strict";
Object.defineProperty(e, "__esModule", {
value: !0
});
var o = n(5),
r = n(6),
i = n(1),
a = n(3),
s = n(0),
c = s.default.MODAL,
l = s.default.BUTTON,
u = s.default.OVERLAY,
f = function(t) {
t.preventDefault(), v()
},
d = function(t) {
t.preventDefault(), g()
},
p = function(t) {
if (o.default.isOpen) switch (t.key) {
case "Escape":
return r.onAction(a.CANCEL_KEY)
}
},
m = function(t) {
if (o.default.isOpen) switch (t.key) {
case "Tab":
return f(t)
}
},
b = function(t) {
if (o.default.isOpen) return "Tab" === t.key && t.shiftKey ? d(t) : void 0
},
v = function() {
var t = i.getNode(l);
t && (t.tabIndex = 0, t.focus())
},
g = function() {
var t = i.getNode(c),
e = t.querySelectorAll("." + l),
n = e.length - 1,
o = e[n];
o && o.focus()
},
h = function(t) {
t[t.length - 1].addEventListener("keydown", m)
},
w = function(t) {
t[0].addEventListener("keydown", b)
},
y = function() {
var t = i.getNode(c),
e = t.querySelectorAll("." + l);
e.length && (h(e), w(e))
},
x = function(t) {
if (i.getNode(u) === t.target) return r.onAction(a.CANCEL_KEY)
},
_ = function(t) {
var e = i.getNode(u);
e.removeEventListener("click", x), t && e.addEventListener("click", x)
},
k = function(t) {
o.default.timer && clearTimeout(o.default.timer), t && (o.default.timer = window.setTimeout(function() {
return r.onAction(a.CANCEL_KEY)
}, t))
},
O = function(t) {
t.closeOnEsc ? document.addEventListener("keyup", p) : document.removeEventListener("keyup", p), t.dangerMode ? v() : g(), y(), _(t.closeOnClickOutside), k(t.timer)
};
e.default = O
}, function(t, e, n) {
"use strict";
Object.defineProperty(e, "__esModule", {
value: !0
});
var o = n(1),
r = n(3),
i = n(37),
a = n(38),
s = {
title: null,
text: null,
icon: null,
buttons: r.defaultButtonList,
content: null,
className: null,
closeOnClickOutside: !0,
closeOnEsc: !0,
dangerMode: !1,
timer: null
},
c = Object.assign({}, s);
e.setDefaults = function(t) {
c = Object.assign({}, s, t)
};
var l = function(t) {
var e = t && t.button,
n = t && t.buttons;
return void 0 !== e && void 0 !== n && o.throwErr("Cannot set both 'button' and 'buttons' options!"), void 0 !== e ? {
confirm: e
} : n
},
u = function(t) {
return o.ordinalSuffixOf(t + 1)
},
f = function(t, e) {
o.throwErr(u(e) + " argument ('" + t + "') is invalid")
},
d = function(t, e) {
var n = t + 1,
r = e[n];
o.isPlainObject(r) || void 0 === r || o.throwErr("Expected " + u(n) + " argument ('" + r + "') to be a plain object")
},
p = function(t, e) {
var n = t + 1,
r = e[n];
void 0 !== r && o.throwErr("Unexpected " + u(n) + " argument (" + r + ")")
},
m = function(t, e, n, r) {
var i = typeof e,
a = "string" === i,
s = e instanceof Element;
if (a) {
if (0 === n) return {
text: e
};
if (1 === n) return {
text: e,
title: r[0]
};
if (2 === n) return d(n, r), {
icon: e
};
f(e, n)
} else {
if (s && 0 === n) return d(n, r), {
content: e
};
if (o.isPlainObject(e)) return p(n, r), e;
f(e, n)
}
};
e.getOpts = function() {
for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e];
var n = {};
t.forEach(function(e, o) {
var r = m(0, e, o, t);
Object.assign(n, r)
});
var o = l(n);
n.buttons = r.getButtonListOpts(o), delete n.button, n.content = i.getContentOpts(n.content);
var u = Object.assign({}, s, c, n);
return Object.keys(u).forEach(function(t) {
a.DEPRECATED_OPTS[t] && a.logDeprecation(t)
}), u
}
}, function(t, e, n) {
"use strict";
Object.defineProperty(e, "__esModule", {
value: !0
});
var o = n(1),
r = {
element: "input",
attributes: {
placeholder: ""
}
};
e.getContentOpts = function(t) {
var e = {};
return o.isPlainObject(t) ? Object.assign(e, t) : t instanceof Element ? {
element: t
} : "input" === t ? r : null
}
}, function(t, e, n) {
"use strict";
Object.defineProperty(e, "__esModule", {
value: !0
}), e.logDeprecation = function(t) {
var n = e.DEPRECATED_OPTS[t],
o = n.onlyRename,
r = n.replacement,
i = n.subOption,
a = n.link,
s = o ? "renamed" : "deprecated",
c = 'SweetAlert warning: "' + t + '" option has been ' + s + ".";
if (r) {
c += " Please use" + (i ? ' "' + i + '" in ' : " ") + '"' + r + '" instead.'
}
var l = "https://sweetalert.js.org";
c += a ? " More details: " + l + a : " More details: " + l + "/guides/#upgrading-from-1x", console.warn(c)
}, e.DEPRECATED_OPTS = {
type: {
replacement: "icon",
link: "/docs/#icon"
},
imageUrl: {
replacement: "icon",
link: "/docs/#icon"
},
customClass: {
replacement: "className",
onlyRename: !0,
link: "/docs/#classname"
},
imageSize: {},
showCancelButton: {
replacement: "buttons",
link: "/docs/#buttons"
},
showConfirmButton: {
replacement: "button",
link: "/docs/#button"
},
confirmButtonText: {
replacement: "button",
link: "/docs/#button"
},
confirmButtonColor: {},
cancelButtonText: {
replacement: "buttons",
link: "/docs/#buttons"
},
closeOnConfirm: {
replacement: "button",
subOption: "closeModal",
link: "/docs/#button"
},
closeOnCancel: {
replacement: "buttons",
subOption: "closeModal",
link: "/docs/#buttons"
},
showLoaderOnConfirm: {
replacement: "buttons"
},
animation: {},
inputType: {
replacement: "content",
link: "/docs/#content"
},
inputValue: {
replacement: "content",
link: "/docs/#content"
},
inputPlaceholder: {
replacement: "content",
link: "/docs/#content"
},
html: {
replacement: "content",
link: "/docs/#content"
},
allowEscapeKey: {
replacement: "closeOnEsc",
onlyRename: !0,
link: "/docs/#closeonesc"
},
allowClickOutside: {
replacement: "closeOnClickOutside",
onlyRename: !0,
link: "/docs/#closeonclickoutside"
}
}
}])
});
/*! jQuery Form Plugin | Version: 3.51.0-2014.06.20 | Requires jQuery v1.5 or later | Copyright (c) 2014 M. Alsup | Dual licensed under the MIT and GPL licenses. */
! function(e) {
"use strict";
"function" == typeof define && define.amd ? define(["jquery"], e) : e("undefined" != typeof jQuery ? jQuery : window.Zepto)
}(function(e) {
"use strict";
function t(t) {
var r = t.data;
t.isDefaultPrevented() || (t.preventDefault(), e(t.target).ajaxSubmit(r))
}
function r(t) {
var r = t.target,
a = e(r);
if (!a.is("[type=submit],[type=image]")) {
var n = a.closest("[type=submit]");
if (0 === n.length) return;
r = n[0]
}
var i = this;
if (i.clk = r, "image" == r.type)
if (void 0 !== t.offsetX) i.clk_x = t.offsetX, i.clk_y = t.offsetY;
else if ("function" == typeof e.fn.offset) {
var o = a.offset();
i.clk_x = t.pageX - o.left, i.clk_y = t.pageY - o.top
} else i.clk_x = t.pageX - r.offsetLeft, i.clk_y = t.pageY - r.offsetTop;
setTimeout(function() {
i.clk = i.clk_x = i.clk_y = null
}, 100)
}
function a() {
if (e.fn.ajaxSubmit.debug) {
var t = "[jquery.form] " + Array.prototype.join.call(arguments, "");
window.console && window.console.log ? window.console.log(t) : window.opera && window.opera.postError && window.opera.postError(t)
}
}
var n = {};
n.fileapi = void 0 !== e("<input type='file'/>").get(0).files, n.formdata = void 0 !== window.FormData;
var i = !!e.fn.prop;
e.fn.attr2 = function() {
if (!i) return this.attr.apply(this, arguments);
var e = this.prop.apply(this, arguments);
return e && e.jquery || "string" == typeof e ? e : this.attr.apply(this, arguments)
}, e.fn.ajaxSubmit = function(t) {
function r(r) {
var a, n, i = e.param(r, t.traditional).split("&"),
o = i.length,
s = [];
for (a = 0; o > a; a++) i[a] = i[a].replace(/+/g, " "), n = i[a].split("="), s.push([decodeURIComponent(n[0]), decodeURIComponent(n[1])]);
return s
}
function o(a) {
for (var n = new FormData, i = 0; i < a.length; i++) n.append(a[i].name, a[i].value);
if (t.extraData) {
var o = r(t.extraData);
for (i = 0; i < o.length; i++) o[i] && n.append(o[i][0], o[i][1])
}
t.data = null;
var s = e.extend(!0, {}, e.ajaxSettings, t, {
contentType: !1,
processData: !1,
cache: !1,
type: u || "POST"
});
t.uploadProgress && (s.xhr = function() {
var r = e.ajaxSettings.xhr();
return r.upload && r.upload.addEventListener("progress", function(e) {
var r = 0,
a = e.loaded || e.position,
n = e.total;
e.lengthComputable && (r = Math.ceil(a / n * 100)), t.uploadProgress(e, a, n, r)
}, !1), r
}), s.data = null;
var c = s.beforeSend;
return s.beforeSend = function(e, r) {
r.data = t.formData ? t.formData : n, c && c.call(this, e, r)
}, e.ajax(s)
}
function s(r) {
function n(e) {
var t = null;
try {
e.contentWindow && (t = e.contentWindow.document)
} catch (r) {
a("cannot get iframe.contentWindow document: " + r)
}
if (t) return t;
try {
t = e.contentDocument ? e.contentDocument : e.document
} catch (r) {
a("cannot get iframe.contentDocument: " + r), t = e.document
}
return t
}
function o() {
function t() {
try {
var e = n(g).readyState;
a("state = " + e), e && "uninitialized" == e.toLowerCase() && setTimeout(t, 50)
} catch (r) {
a("Server abort: ", r, " (", r.name, ")"), s(k), j && clearTimeout(j), j = void 0
}
}
var r = f.attr2("target"),
i = f.attr2("action"),
o = "multipart/form-data",
c = f.attr("enctype") || f.attr("encoding") || o;
w.setAttribute("target", p), (!u || /post/i.test(u)) && w.setAttribute("method", "POST"), i != m.url && w.setAttribute("action", m.url), m.skipEncodingOverride || u && !/post/i.test(u) || f.attr({
encoding: "multipart/form-data",
enctype: "multipart/form-data"
}), m.timeout && (j = setTimeout(function() {
T = !0, s(D)
}, m.timeout));
var l = [];
try {
if (m.extraData)
for (var d in m.extraData) m.extraData.hasOwnProperty(d) && l.push(e.isPlainObject(m.extraData[d]) && m.extraData[d].hasOwnProperty("name") && m.extraData[d].hasOwnProperty("value") ? e('<input type="hidden" name="' + m.extraData[d].name + '">').val(m.extraData[d].value).appendTo(w)[0] : e('<input type="hidden" name="' + d + '">').val(m.extraData[d]).appendTo(w)[0]);
m.iframeTarget || v.appendTo("body"), g.attachEvent ? g.attachEvent("onload", s) : g.addEventListener("load", s, !1), setTimeout(t, 15);
try {
w.submit()
} catch (h) {
var x = document.createElement("form").submit;
x.apply(w)
}
} finally {
w.setAttribute("action", i), w.setAttribute("enctype", c), r ? w.setAttribute("target", r) : f.removeAttr("target"), e(l).remove()
}
}
function s(t) {
if (!x.aborted && !F) {
if (M = n(g), M || (a("cannot access response document"), t = k), t === D && x) return x.abort("timeout"), void S.reject(x, "timeout");
if (t == k && x) return x.abort("server abort"), void S.reject(x, "error", "server abort");
if (M && M.location.href != m.iframeSrc || T) {
g.detachEvent ? g.detachEvent("onload", s) : g.removeEventListener("load", s, !1);
var r, i = "success";
try {
if (T) throw "timeout";
var o = "xml" == m.dataType || M.XMLDocument || e.isXMLDoc(M);
if (a("isXml=" + o), !o && window.opera && (null === M.body || !M.body.innerHTML) && --O) return a("requeing onLoad callback, DOM not available"), void setTimeout(s, 250);
var u = M.body ? M.body : M.documentElement;
x.responseText = u ? u.innerHTML : null, x.responseXML = M.XMLDocument ? M.XMLDocument : M, o && (m.dataType = "xml"), x.getResponseHeader = function(e) {
var t = {
"content-type": m.dataType
};
return t[e.toLowerCase()]
}, u && (x.status = Number(u.getAttribute("status")) || x.status, x.statusText = u.getAttribute("statusText") || x.statusText);
var c = (m.dataType || "").toLowerCase(),
l = /(json|script|text)/.test(c);
if (l || m.textarea) {
var f = M.getElementsByTagName("textarea")[0];
if (f) x.responseText = f.value, x.status = Number(f.getAttribute("status")) || x.status, x.statusText = f.getAttribute("statusText") || x.statusText;
else if (l) {
var p = M.getElementsByTagName("pre")[0],
h = M.getElementsByTagName("body")[0];
p ? x.responseText = p.textContent ? p.textContent : p.innerText : h && (x.responseText = h.textContent ? h.textContent : h.innerText)
}
} else "xml" == c && !x.responseXML && x.responseText && (x.responseXML = X(x.responseText));
try {
E = _(x, c, m)
} catch (y) {
i = "parsererror", x.error = r = y || i
}
} catch (y) {
a("error caught: ", y), i = "error", x.error = r = y || i
}
x.aborted && (a("upload aborted"), i = null), x.status && (i = x.status >= 200 && x.status < 300 || 304 === x.status ? "success" : "error"), "success" === i ? (m.success && m.success.call(m.context, E, "success", x), S.resolve(x.responseText, "success", x), d && e.event.trigger("ajaxSuccess", [x, m])) : i && (void 0 === r && (r = x.statusText), m.error && m.error.call(m.context, x, i, r), S.reject(x, "error", r), d && e.event.trigger("ajaxError", [x, m, r])), d && e.event.trigger("ajaxComplete", [x, m]), d && !--e.active && e.event.trigger("ajaxStop"), m.complete && m.complete.call(m.context, x, i), F = !0, m.timeout && clearTimeout(j), setTimeout(function() {
m.iframeTarget ? v.attr("src", m.iframeSrc) : v.remove(), x.responseXML = null
}, 100)
}
}
}
var c, l, m, d, p, v, g, x, y, b, T, j, w = f[0],
S = e.Deferred();
if (S.abort = function(e) {
x.abort(e)
}, r)
for (l = 0; l < h.length; l++) c = e(h[l]), i ? c.prop("disabled", !1) : c.removeAttr("disabled");
if (m = e.extend(!0, {}, e.ajaxSettings, t), m.context = m.context || m, p = "jqFormIO" + (new Date).getTime(), m.iframeTarget ? (v = e(m.iframeTarget), b = v.attr2("name"), b ? p = b : v.attr2("name", p)) : (v = e('<iframe name="' + p + '" src="' + m.iframeSrc + '" />'), v.css({
position: "absolute",
top: "-1000px",
left: "-1000px"
})), g = v[0], x = {
aborted: 0,
responseText: null,
responseXML: null,
status: 0,
statusText: "n/a",
getAllResponseHeaders: function() {},
getResponseHeader: function() {},
setRequestHeader: function() {},
abort: function(t) {
var r = "timeout" === t ? "timeout" : "aborted";
a("aborting upload... " + r), this.aborted = 1;
try {
g.contentWindow.document.execCommand && g.contentWindow.document.execCommand("Stop")
} catch (n) {}
v.attr("src", m.iframeSrc), x.error = r, m.error && m.error.call(m.context, x, r, t), d && e.event.trigger("ajaxError", [x, m, r]), m.complete && m.complete.call(m.context, x, r)
}
}, d = m.global, d && 0 === e.active++ && e.event.trigger("ajaxStart"), d && e.event.trigger("ajaxSend", [x, m]), m.beforeSend && m.beforeSend.call(m.context, x, m) === !1) return m.global && e.active--, S.reject(), S;
if (x.aborted) return S.reject(), S;
y = w.clk, y && (b = y.name, b && !y.disabled && (m.extraData = m.extraData || {}, m.extraData[b] = y.value, "image" == y.type && (m.extraData[b + ".x"] = w.clk_x, m.extraData[b + ".y"] = w.clk_y)));
var D = 1,
k = 2,
A = e("meta[name=csrf-token]").attr("content"),
L = e("meta[name=csrf-param]").attr("content");
L && A && (m.extraData = m.extraData || {}, m.extraData[L] = A), m.forceSync ? o() : setTimeout(o, 10);
var E, M, F, O = 50,
X = e.parseXML || function(e, t) {
return window.ActiveXObject ? (t = new ActiveXObject("Microsoft.XMLDOM"), t.async = "false", t.loadXML(e)) : t = (new DOMParser).parseFromString(e, "text/xml"), t && t.documentElement && "parsererror" != t.documentElement.nodeName ? t : null
},
C = e.parseJSON || function(e) {
return window.eval("(" + e + ")")
},
_ = function(t, r, a) {
var n = t.getResponseHeader("content-type") || "",
i = "xml" === r || !r && n.indexOf("xml") >= 0,
o = i ? t.responseXML : t.responseText;
return i && "parsererror" === o.documentElement.nodeName && e.error && e.error("parsererror"), a && a.dataFilter && (o = a.dataFilter(o, r)), "string" == typeof o && ("json" === r || !r && n.indexOf("json") >= 0 ? o = C(o) : ("script" === r || !r && n.indexOf("javascript") >= 0) && e.globalEval(o)), o
};
return S
}
if (!this.length) return a("ajaxSubmit: skipping submit process - no element selected"), this;
var u, c, l, f = this;
"function" == typeof t ? t = {
success: t
} : void 0 === t && (t = {}), u = t.type || this.attr2("method"), c = t.url || this.attr2("action"), l = "string" == typeof c ? e.trim(c) : "", l = l || window.location.href || "", l && (l = (l.match(/^([^#]+)/) || [])[1]), t = e.extend(!0, {
url: l,
success: e.ajaxSettings.success,
type: u || e.ajaxSettings.type,
iframeSrc: /^https/i.test(window.location.href || "") ? "javascript:false" : "about:blank"
}, t);
var m = {};
if (this.trigger("form-pre-serialize", [this, t, m]), m.veto) return a("ajaxSubmit: submit vetoed via form-pre-serialize trigger"), this;
if (t.beforeSerialize && t.beforeSerialize(this, t) === !1) return a("ajaxSubmit: submit aborted via beforeSerialize callback"), this;
var d = t.traditional;
void 0 === d && (d = e.ajaxSettings.traditional);
var p, h = [],
v = this.formToArray(t.semantic, h);
if (t.data && (t.extraData = t.data, p = e.param(t.data, d)), t.beforeSubmit && t.beforeSubmit(v, this, t) === !1) return a("ajaxSubmit: submit aborted via beforeSubmit callback"), this;
if (this.trigger("form-submit-validate", [v, this, t, m]), m.veto) return a("ajaxSubmit: submit vetoed via form-submit-validate trigger"), this;
var g = e.param(v, d);
p && (g = g ? g + "&" + p : p), "GET" == t.type.toUpperCase() ? (t.url += (t.url.indexOf("?") >= 0 ? "&" : "?") + g, t.data = null) : t.data = g;
var x = [];
if (t.resetForm && x.push(function() {
f.resetForm()
}), t.clearForm && x.push(function() {
f.clearForm(t.includeHidden)
}), !t.dataType && t.target) {
var y = t.success || function() {};
x.push(function(r) {
var a = t.replaceTarget ? "replaceWith" : "html";
e(t.target)[a](r).each(y, arguments)
})
} else t.success && x.push(t.success);
if (t.success = function(e, r, a) {
for (var n = t.context || this, i = 0, o = x.length; o > i; i++) x[i].apply(n, [e, r, a || f, f])
}, t.error) {
var b = t.error;
t.error = function(e, r, a) {
var n = t.context || this;
b.apply(n, [e, r, a, f])
}
}
if (t.complete) {
var T = t.complete;
t.complete = function(e, r) {
var a = t.context || this;
T.apply(a, [e, r, f])
}
}
var j = e("input[type=file]:enabled", this).filter(function() {
return "" !== e(this).val()
}),
w = j.length > 0,
S = "multipart/form-data",
D = f.attr("enctype") == S || f.attr("encoding") == S,
k = n.fileapi && n.formdata;
a("fileAPI :" + k);
var A, L = (w || D) && !k;
t.iframe !== !1 && (t.iframe || L) ? t.closeKeepAlive ? e.get(t.closeKeepAlive, function() {
A = s(v)
}) : A = s(v) : A = (w || D) && k ? o(v) : e.ajax(t), f.removeData("jqxhr").data("jqxhr", A);
for (var E = 0; E < h.length; E++) h[E] = null;
return this.trigger("form-submit-notify", [this, t]), this
}, e.fn.ajaxForm = function(n) {
if (n = n || {}, n.delegation = n.delegation && e.isFunction(e.fn.on), !n.delegation && 0 === this.length) {
var i = {
s: this.selector,
c: this.context
};
return !e.isReady && i.s ? (a("DOM not ready, queuing ajaxForm"), e(function() {
e(i.s, i.c).ajaxForm(n)
}), this) : (a("terminating; zero elements found by selector" + (e.isReady ? "" : " (DOM not ready)")), this)
}
return n.delegation ? (e(document).off("submit.form-plugin", this.selector, t).off("click.form-plugin", this.selector, r).on("submit.form-plugin", this.selector, n, t).on("click.form-plugin", this.selector, n, r), this) : this.ajaxFormUnbind().bind("submit.form-plugin", n, t).bind("click.form-plugin", n, r)
}, e.fn.ajaxFormUnbind = function() {
return this.unbind("submit.form-plugin click.form-plugin")
}, e.fn.formToArray = function(t, r) {
var a = [];
if (0 === this.length) return a;
var i, o = this[0],
s = this.attr("id"),
u = t ? o.getElementsByTagName("*") : o.elements;
if (u && !/MSIE [678]/.test(navigator.userAgent) && (u = e(u).get()), s && (i = e(':input[form="' + s + '"]').get(), i.length && (u = (u || []).concat(i))), !u || !u.length) return a;
var c, l, f, m, d, p, h;
for (c = 0, p = u.length; p > c; c++)
if (d = u[c], f = d.name, f && !d.disabled)
if (t && o.clk && "image" == d.type) o.clk == d && (a.push({
name: f,
value: e(d).val(),
type: d.type
}), a.push({
name: f + ".x",
value: o.clk_x
}, {
name: f + ".y",
value: o.clk_y
}));
else if (m = e.fieldValue(d, !0), m && m.constructor == Array)
for (r && r.push(d), l = 0, h = m.length; h > l; l++) a.push({
name: f,
value: m[l]
});
else if (n.fileapi && "file" == d.type) {
r && r.push(d);
var v = d.files;
if (v.length)
for (l = 0; l < v.length; l++) a.push({
name: f,
value: v[l],
type: d.type
});
else a.push({
name: f,
value: "",
type: d.type
})
} else null !== m && "undefined" != typeof m && (r && r.push(d), a.push({
name: f,
value: m,
type: d.type,
required: d.required
}));
if (!t && o.clk) {
var g = e(o.clk),
x = g[0];
f = x.name, f && !x.disabled && "image" == x.type && (a.push({
name: f,
value: g.val()
}), a.push({
name: f + ".x",
value: o.clk_x
}, {
name: f + ".y",
value: o.clk_y
}))
}
return a
}, e.fn.formSerialize = function(t) {
return e.param(this.formToArray(t))
}, e.fn.fieldSerialize = function(t) {
var r = [];
return this.each(function() {
var a = this.name;
if (a) {
var n = e.fieldValue(this, t);
if (n && n.constructor == Array)
for (var i = 0, o = n.length; o > i; i++) r.push({
name: a,
value: n[i]
});
else null !== n && "undefined" != typeof n && r.push({
name: this.name,
value: n
})
}
}), e.param(r)
}, e.fn.fieldValue = function(t) {
for (var r = [], a = 0, n = this.length; n > a; a++) {
var i = this[a],
o = e.fieldValue(i, t);
null === o || "undefined" == typeof o || o.constructor == Array && !o.length || (o.constructor == Array ? e.merge(r, o) : r.push(o))
}
return r
}, e.fieldValue = function(t, r) {
var a = t.name,
n = t.type,
i = t.tagName.toLowerCase();
if (void 0 === r && (r = !0), r && (!a || t.disabled || "reset" == n || "button" == n || ("checkbox" == n || "radio" == n) && !t.checked || ("submit" == n || "image" == n) && t.form && t.form.clk != t || "select" == i && -1 == t.selectedIndex)) return null;
if ("select" == i) {
var o = t.selectedIndex;
if (0 > o) return null;
for (var s = [], u = t.options, c = "select-one" == n, l = c ? o + 1 : u.length, f = c ? o : 0; l > f; f++) {
var m = u[f];
if (m.selected) {
var d = m.value;
if (d || (d = m.attributes && m.attributes.value && !m.attributes.value.specified ? m.text : m.value), c) return d;
s.push(d)
}
}
return s
}
return e(t).val()
}, e.fn.clearForm = function(t) {
return this.each(function() {
e("input,select,textarea", this).clearFields(t)
})
}, e.fn.clearFields = e.fn.clearInputs = function(t) {
var r = /^(?:color|date|datetime|email|month|number|password|range|search|tel|text|time|url|week)$/i;
return this.each(function() {
var a = this.type,
n = this.tagName.toLowerCase();
r.test(a) || "textarea" == n ? this.value = "" : "checkbox" == a || "radio" == a ? this.checked = !1 : "select" == n ? this.selectedIndex = -1 : "file" == a ? /MSIE/.test(navigator.userAgent) ? e(this).replaceWith(e(this).clone(!0)) : e(this).val("") : t && (t === !0 && /hidden/.test(a) || "string" == typeof t && e(this).is(t)) && (this.value = "")
})
}, e.fn.resetForm = function() {
return this.each(function() {
("function" == typeof this.reset || "object" == typeof this.reset && !this.reset.nodeType) && this.reset()
})
}, e.fn.enable = function(e) {
return void 0 === e && (e = !0), this.each(function() {
this.disabled = !e
})
}, e.fn.selected = function(t) {
return void 0 === t && (t = !0), this.each(function() {
var r = this.type;
if ("checkbox" == r || "radio" == r) this.checked = t;
else if ("option" == this.tagName.toLowerCase()) {
var a = e(this).parent("select");
t && a[0] && "select-one" == a[0].type && a.find("option").selected(!1), this.selected = t
}
})
}, e.fn.ajaxSubmit.debug = !1
});
/*! jQuery Validation Plugin - v1.16.0 - 12/2/2016 | http://jqueryvalidation.org/ | Copyright (c) 2016 Jörn Zaefferer; Licensed MIT */
! function(a) {
"function" == typeof define && define.amd ? define(["jquery"], a) : "object" == typeof module && module.exports ? module.exports = a(require("jquery")) : a(jQuery)
}(function(a) {
a.extend(a.fn, {
validate: function(b) {
if (!this.length) return void(b && b.debug && window.console && console.warn("Nothing selected, can't validate, returning nothing."));
var c = a.data(this[0], "validator");
return c ? c : (this.attr("novalidate", "novalidate"), c = new a.validator(b, this[0]), a.data(this[0], "validator", c), c.settings.onsubmit && (this.on("click.validate", ":submit", function(b) {
c.settings.submitHandler && (c.submitButton = b.target), a(this).hasClass("cancel") && (c.cancelSubmit = !0), void 0 !== a(this).attr("formnovalidate") && (c.cancelSubmit = !0)
}), this.on("submit.validate", function(b) {
function d() {
var d, e;
return !c.settings.submitHandler || (c.submitButton && (d = a("<input type='hidden'/>").attr("name", c.submitButton.name).val(a(c.submitButton).val()).appendTo(c.currentForm)), e = c.settings.submitHandler.call(c, c.currentForm, b), c.submitButton && d.remove(), void 0 !== e && e)
}
return c.settings.debug && b.preventDefault(), c.cancelSubmit ? (c.cancelSubmit = !1, d()) : c.form() ? c.pendingRequest ? (c.formSubmitted = !0, !1) : d() : (c.focusInvalid(), !1)
})), c)
},
valid: function() {
var b, c, d;
return a(this[0]).is("form") ? b = this.validate().form() : (d = [], b = !0, c = a(this[0].form).validate(), this.each(function() {
b = c.element(this) && b, b || (d = d.concat(c.errorList))
}), c.errorList = d), b
},
rules: function(b, c) {
var d, e, f, g, h, i, j = this[0];
if (null != j && null != j.form) {
if (b) switch (d = a.data(j.form, "validator").settings, e = d.rules, f = a.validator.staticRules(j), b) {
case "add":
a.extend(f, a.validator.normalizeRule(c)), delete f.messages, e[j.name] = f, c.messages && (d.messages[j.name] = a.extend(d.messages[j.name], c.messages));
break;
case "remove":
return c ? (i = {}, a.each(c.split(/s/), function(b, c) {
i[c] = f[c], delete f[c], "required" === c && a(j).removeAttr("aria-required")
}), i) : (delete e[j.name], f)
}
return g = a.validator.normalizeRules(a.extend({}, a.validator.classRules(j), a.validator.attributeRules(j), a.validator.dataRules(j), a.validator.staticRules(j)), j), g.required && (h = g.required, delete g.required, g = a.extend({
required: h
}, g), a(j).attr("aria-required", "true")), g.remote && (h = g.remote, delete g.remote, g = a.extend(g, {
remote: h
})), g
}
}
}), a.extend(a.expr.pseudos || a.expr[":"], {
blank: function(b) {
return !a.trim("" + a(b).val())
},
filled: function(b) {
var c = a(b).val();
return null !== c && !!a.trim("" + c)
},
unchecked: function(b) {
return !a(b).prop("checked")
}
}), a.validator = function(b, c) {
this.settings = a.extend(!0, {}, a.validator.defaults, b), this.currentForm = c, this.init()
}, a.validator.format = function(b, c) {
return 1 === arguments.length ? function() {
var c = a.makeArray(arguments);
return c.unshift(b), a.validator.format.apply(this, c)
} : void 0 === c ? b : (arguments.length > 2 && c.constructor !== Array && (c = a.makeArray(arguments).slice(1)), c.constructor !== Array && (c = [c]), a.each(c, function(a, c) {
b = b.replace(new RegExp("\{" + a + "\}", "g"), function() {
return c
})
}), b)
}, a.extend(a.validator, {
defaults: {
messages: {},
groups: {},
rules: {},
errorClass: "error",
pendingClass: "pending",
validClass: "valid",
errorElement: "label",
focusCleanup: !1,
focusInvalid: !0,
errorContainer: a([]),
errorLabelContainer: a([]),
onsubmit: !0,
ignore: ":hidden",
ignoreTitle: !1,
onfocusin: function(a) {
this.lastActive = a, this.settings.focusCleanup && (this.settings.unhighlight && this.settings.unhighlight.call(this, a, this.settings.errorClass, this.settings.validClass), this.hideThese(this.errorsFor(a)))
},
onfocusout: function(a) {
this.checkable(a) || !(a.name in this.submitted) && this.optional(a) || this.element(a)
},
onkeyup: function(b, c) {
var d = [16, 17, 18, 20, 35, 36, 37, 38, 39, 40, 45, 144, 225];
9 === c.which && "" === this.elementValue(b) || a.inArray(c.keyCode, d) !== -1 || (b.name in this.submitted || b.name in this.invalid) && this.element(b)
},
onclick: function(a) {
a.name in this.submitted ? this.element(a) : a.parentNode.name in this.submitted && this.element(a.parentNode)
},
highlight: function(b, c, d) {
"radio" === b.type ? this.findByName(b.name).addClass(c).removeClass(d) : a(b).addClass(c).removeClass(d)
},
unhighlight: function(b, c, d) {
"radio" === b.type ? this.findByName(b.name).removeClass(c).addClass(d) : a(b).removeClass(c).addClass(d)
}
},
setDefaults: function(b) {
a.extend(a.validator.defaults, b)
},
messages: {
required: "This field is required.",
remote: "Please fix this field.",
email: "Please enter a valid email address.",
url: "Please enter a valid URL.",
date: "Please enter a valid date.",
dateISO: "Please enter a valid date (ISO).",
number: "Please enter a valid number.",
digits: "Please enter only digits.",
equalTo: "Please enter the same value again.",
maxlength: a.validator.format("Please enter no more than {0} characters."),
minlength: a.validator.format("Please enter at least {0} characters."),
rangelength: a.validator.format("Please enter a value between {0} and {1} characters long."),
range: a.validator.format("Please enter a value between {0} and {1}."),
max: a.validator.format("Please enter a value less than or equal to {0}."),
min: a.validator.format("Please enter a value greater than or equal to {0}."),
step: a.validator.format("Please enter a multiple of {0}.")
},
autoCreateRanges: !1,
prototype: {
init: function() {
function b(b) {
!this.form && this.hasAttribute("contenteditable") && (this.form = a(this).closest("form")[0]);
var c = a.data(this.form, "validator"),
d = "on" + b.type.replace(/^validate/, ""),
e = c.settings;
e[d] && !a(this).is(e.ignore) && e[d].call(c, this, b)
}
this.labelContainer = a(this.settings.errorLabelContainer), this.errorContext = this.labelContainer.length && this.labelContainer || a(this.currentForm), this.containers = a(this.settings.errorContainer).add(this.settings.errorLabelContainer), this.submitted = {}, this.valueCache = {}, this.pendingRequest = 0, this.pending = {}, this.invalid = {}, this.reset();
var c, d = this.groups = {};
a.each(this.settings.groups, function(b, c) {
"string" == typeof c && (c = c.split(/s/)), a.each(c, function(a, c) {
d[c] = b
})
}), c = this.settings.rules, a.each(c, function(b, d) {
c[b] = a.validator.normalizeRule(d)
}), a(this.currentForm).on("focusin.validate focusout.validate keyup.validate", ":text, [type='password'], [type='file'], select, textarea, [type='number'], [type='search'], [type='tel'], [type='url'], [type='email'], [type='datetime'], [type='date'], [type='month'], [type='week'], [type='time'], [type='datetime-local'], [type='range'], [type='color'], [type='radio'], [type='checkbox'], [contenteditable], [type='button']", b).on("click.validate", "select, option, [type='radio'], [type='checkbox']", b), this.settings.invalidHandler && a(this.currentForm).on("invalid-form.validate", this.settings.invalidHandler), a(this.currentForm).find("[required], [data-rule-required], .required").attr("aria-required", "true")
},
form: function() {
return this.checkForm(), a.extend(this.submitted, this.errorMap), this.invalid = a.extend({}, this.errorMap), this.valid() || a(this.currentForm).triggerHandler("invalid-form", [this]), this.showErrors(), this.valid()
},
checkForm: function() {
this.prepareForm();
for (var a = 0, b = this.currentElements = this.elements(); b[a]; a++) this.check(b[a]);
return this.valid()
},
element: function(b) {
var c, d, e = this.clean(b),
f = this.validationTargetFor(e),
g = this,
h = !0;
return void 0 === f ? delete this.invalid[e.name] : (this.prepareElement(f), this.currentElements = a(f), d = this.groups[f.name], d && a.each(this.groups, function(a, b) {
b === d && a !== f.name && (e = g.validationTargetFor(g.clean(g.findByName(a))), e && e.name in g.invalid && (g.currentElements.push(e), h = g.check(e) && h))
}), c = this.check(f) !== !1, h = h && c, c ? this.invalid[f.name] = !1 : this.invalid[f.name] = !0, this.numberOfInvalids() || (this.toHide = this.toHide.add(this.containers)), this.showErrors(), a(b).attr("aria-invalid", !c)), h
},
showErrors: function(b) {
if (b) {
var c = this;
a.extend(this.errorMap, b), this.errorList = a.map(this.errorMap, function(a, b) {
return {
message: a,
element: c.findByName(b)[0]
}
}), this.successList = a.grep(this.successList, function(a) {
return !(a.name in b)
})
}
this.settings.showErrors ? this.settings.showErrors.call(this, this.errorMap, this.errorList) : this.defaultShowErrors()
},
resetForm: function() {
a.fn.resetForm && a(this.currentForm).resetForm(), this.invalid = {}, this.submitted = {}, this.prepareForm(), this.hideErrors();
var b = this.elements().removeData("previousValue").removeAttr("aria-invalid");
this.resetElements(b)
},
resetElements: function(a) {
var b;
if (this.settings.unhighlight)
for (b = 0; a[b]; b++) this.settings.unhighlight.call(this, a[b], this.settings.errorClass, ""), this.findByName(a[b].name).removeClass(this.settings.validClass);
else a.removeClass(this.settings.errorClass).removeClass(this.settings.validClass)
},
numberOfInvalids: function() {
return this.objectLength(this.invalid)
},
objectLength: function(a) {
var b, c = 0;
for (b in a) a[b] && c++;
return c
},
hideErrors: function() {
this.hideThese(this.toHide)
},
hideThese: function(a) {
a.not(this.containers).text(""), this.addWrapper(a).hide()
},
valid: function() {
return 0 === this.size()
},
size: function() {
return this.errorList.length
},
focusInvalid: function() {
if (this.settings.focusInvalid) try {
a(this.findLastActive() || this.errorList.length && this.errorList[0].element || []).filter(":visible").focus().trigger("focusin")
} catch (b) {}
},
findLastActive: function() {
var b = this.lastActive;
return b && 1 === a.grep(this.errorList, function(a) {
return a.element.name === b.name
}).length && b
},
elements: function() {
var b = this,
c = {};
return a(this.currentForm).find("input, select, textarea, [contenteditable]").not(":submit, :reset, :image, :disabled").not(this.settings.ignore).filter(function() {
var d = this.name || a(this).attr("name");
return !d && b.settings.debug && window.console && console.error("%o has no name assigned", this), this.hasAttribute("contenteditable") && (this.form = a(this).closest("form")[0]), !(d in c || !b.objectLength(a(this).rules())) && (c[d] = !0, !0)
})
},
clean: function(b) {
return a(b)[0]
},
errors: function() {
var b = this.settings.errorClass.split(" ").join(".");
return a(this.settings.errorElement + "." + b, this.errorContext)
},
resetInternals: function() {
this.successList = [], this.errorList = [], this.errorMap = {}, this.toShow = a([]), this.toHide = a([])
},
reset: function() {
this.resetInternals(), this.currentElements = a([])
},
prepareForm: function() {
this.reset(), this.toHide = this.errors().add(this.containers)
},
prepareElement: function(a) {
this.reset(), this.toHide = this.errorsFor(a)
},
elementValue: function(b) {
var c, d, e = a(b),
f = b.type;
return "radio" === f || "checkbox" === f ? this.findByName(b.name).filter(":checked").val() : "number" === f && "undefined" != typeof b.validity ? b.validity.badInput ? "NaN" : e.val() : (c = b.hasAttribute("contenteditable") ? e.text() : e.val(), "file" === f ? "C:\fakepath\" === c.substr(0, 12) ? c.substr(12) : (d = c.lastIndexOf("/"), d >= 0 ? c.substr(d + 1) : (d = c.lastIndexOf("\"), d >= 0 ? c.substr(d + 1) : c)) : "string" == typeof c ? c.replace(/r/g, "") : c)
},
check: function(b) {
b = this.validationTargetFor(this.clean(b));
var c, d, e, f = a(b).rules(),
g = a.map(f, function(a, b) {
return b
}).length,
h = !1,
i = this.elementValue(b);
if ("function" == typeof f.normalizer) {
if (i = f.normalizer.call(b, i), "string" != typeof i) throw new TypeError("The normalizer should return a string value.");
delete f.normalizer
}
for (d in f) {
e = {
method: d,
parameters: f[d]
};
try {
if (c = a.validator.methods[d].call(this, i, b, e.parameters), "dependency-mismatch" === c && 1 === g) {
h = !0;
continue
}
if (h = !1, "pending" === c) return void(this.toHide = this.toHide.not(this.errorsFor(b)));
if (!c) return this.formatAndAdd(b, e), !1
} catch (j) {
throw this.settings.debug && window.console && console.log("Exception occurred when checking element " + b.id + ", check the '" + e.method + "' method.", j), j instanceof TypeError && (j.message += ". Exception occurred when checking element " + b.id + ", check the '" + e.method + "' method."), j
}
}
if (!h) return this.objectLength(f) && this.successList.push(b), !0
},
customDataMessage: function(b, c) {
return a(b).data("msg" + c.charAt(0).toUpperCase() + c.substring(1).toLowerCase()) || a(b).data("msg")
},
customMessage: function(a, b) {
var c = this.settings.messages[a];
return c && (c.constructor === String ? c : c[b])
},
findDefined: function() {
for (var a = 0; a < arguments.length; a++)
if (void 0 !== arguments[a]) return arguments[a]
},
defaultMessage: function(b, c) {
"string" == typeof c && (c = {
method: c
});
var d = this.findDefined(this.customMessage(b.name, c.method), this.customDataMessage(b, c.method), !this.settings.ignoreTitle && b.title || void 0, a.validator.messages[c.method], "<strong>Warning: No message defined for " + b.name + "</strong>"),
e = /$?{(d+)}/g;
return "function" == typeof d ? d = d.call(this, c.parameters, b) : e.test(d) && (d = a.validator.format(d.replace(e, "{$1}"), c.parameters)), d
},
formatAndAdd: function(a, b) {
var c = this.defaultMessage(a, b);
this.errorList.push({
message: c,
element: a,
method: b.method
}), this.errorMap[a.name] = c, this.submitted[a.name] = c
},
addWrapper: function(a) {
return this.settings.wrapper && (a = a.add(a.parent(this.settings.wrapper))), a
},
defaultShowErrors: function() {
var a, b, c;
for (a = 0; this.errorList[a]; a++) c = this.errorList[a], this.settings.highlight && this.settings.highlight.call(this, c.element, this.settings.errorClass, this.settings.validClass), this.showLabel(c.element, c.message);
if (this.errorList.length && (this.toShow = this.toShow.add(this.containers)), this.settings.success)
for (a = 0; this.successList[a]; a++) this.showLabel(this.successList[a]);
if (this.settings.unhighlight)
for (a = 0, b = this.validElements(); b[a]; a++) this.settings.unhighlight.call(this, b[a], this.settings.errorClass, this.settings.validClass);
this.toHide = this.toHide.not(this.toShow), this.hideErrors(), this.addWrapper(this.toShow).show()
},
validElements: function() {
return this.currentElements.not(this.invalidElements())
},
invalidElements: function() {
return a(this.errorList).map(function() {
return this.element
})
},
showLabel: function(b, c) {
var d, e, f, g, h = this.errorsFor(b),
i = this.idOrName(b),
j = a(b).attr("aria-describedby");
h.length ? (h.removeClass(this.settings.validClass).addClass(this.settings.errorClass), h.html(c)) : (h = a("<" + this.settings.errorElement + ">").attr("id", i + "-error").addClass(this.settings.errorClass).html(c || ""), d = h, this.settings.wrapper && (d = h.hide().show().wrap("<" + this.settings.wrapper + "/>").parent()), this.labelContainer.length ? this.labelContainer.append(d) : this.settings.errorPlacement ? this.settings.errorPlacement.call(this, d, a(b)) : d.insertAfter(b), h.is("label") ? h.attr("for", i) : 0 === h.parents("label[for='" + this.escapeCssMeta(i) + "']").length && (f = h.attr("id"), j ? j.match(new RegExp("\b" + this.escapeCssMeta(f) + "\b")) || (j += " " + f) : j = f, a(b).attr("aria-describedby", j), e = this.groups[b.name], e && (g = this, a.each(g.groups, function(b, c) {
c === e && a("[name='" + g.escapeCssMeta(b) + "']", g.currentForm).attr("aria-describedby", h.attr("id"))
})))), !c && this.settings.success && (h.text(""), "string" == typeof this.settings.success ? h.addClass(this.settings.success) : this.settings.success(h, b)), this.toShow = this.toShow.add(h)
},
errorsFor: function(b) {
var c = this.escapeCssMeta(this.idOrName(b)),
d = a(b).attr("aria-describedby"),
e = "label[for='" + c + "'], label[for='" + c + "'] *";
return d && (e = e + ", #" + this.escapeCssMeta(d).replace(/s+/g, ", #")), this.errors().filter(e)
},
escapeCssMeta: function(a) {
return a.replace(/([\!"#$%&'()*+,./:;<=>?@[]^`{|}~])/g, "\$1")
},
idOrName: function(a) {
return this.groups[a.name] || (this.checkable(a) ? a.name : a.id || a.name)
},
validationTargetFor: function(b) {
return this.checkable(b) && (b = this.findByName(b.name)), a(b).not(this.settings.ignore)[0]
},
checkable: function(a) {
return /radio|checkbox/i.test(a.type)
},
findByName: function(b) {
return a(this.currentForm).find("[name='" + this.escapeCssMeta(b) + "']")
},
getLength: function(b, c) {
switch (c.nodeName.toLowerCase()) {
case "select":
return a("option:selected", c).length;
case "input":
if (this.checkable(c)) return this.findByName(c.name).filter(":checked").length
}
return b.length
},
depend: function(a, b) {
return !this.dependTypes[typeof a] || this.dependTypes[typeof a](a, b)
},
dependTypes: {
"boolean": function(a) {
return a
},
string: function(b, c) {
return !!a(b, c.form).length
},
"function": function(a, b) {
return a(b)
}
},
optional: function(b) {
var c = this.elementValue(b);
return !a.validator.methods.required.call(this, c, b) && "dependency-mismatch"
},
startRequest: function(b) {
this.pending[b.name] || (this.pendingRequest++, a(b).addClass(this.settings.pendingClass), this.pending[b.name] = !0)
},
stopRequest: function(b, c) {
this.pendingRequest--, this.pendingRequest < 0 && (this.pendingRequest = 0), delete this.pending[b.name], a(b).removeClass(this.settings.pendingClass), c && 0 === this.pendingRequest && this.formSubmitted && this.form() ? (a(this.currentForm).submit(), this.formSubmitted = !1) : !c && 0 === this.pendingRequest && this.formSubmitted && (a(this.currentForm).triggerHandler("invalid-form", [this]), this.formSubmitted = !1)
},
previousValue: function(b, c) {
return c = "string" == typeof c && c || "remote", a.data(b, "previousValue") || a.data(b, "previousValue", {
old: null,
valid: !0,
message: this.defaultMessage(b, {
method: c
})
})
},
destroy: function() {
this.resetForm(), a(this.currentForm).off(".validate").removeData("validator").find(".validate-equalTo-blur").off(".validate-equalTo").removeClass("validate-equalTo-blur")
}
},
classRuleSettings: {
required: {
required: !0
},
email: {
email: !0
},
url: {
url: !0
},
date: {
date: !0
},
dateISO: {
dateISO: !0
},
number: {
number: !0
},
digits: {
digits: !0
},
creditcard: {
creditcard: !0
}
},
addClassRules: function(b, c) {
b.constructor === String ? this.classRuleSettings[b] = c : a.extend(this.classRuleSettings, b)
},
classRules: function(b) {
var c = {},
d = a(b).attr("class");
return d && a.each(d.split(" "), function() {
this in a.validator.classRuleSettings && a.extend(c, a.validator.classRuleSettings[this])
}), c
},
normalizeAttributeRule: function(a, b, c, d) {
/min|max|step/.test(c) && (null === b || /number|range|text/.test(b)) && (d = Number(d), isNaN(d) && (d = void 0)), d || 0 === d ? a[c] = d : b === c && "range" !== b && (a[c] = !0)
},
attributeRules: function(b) {
var c, d, e = {},
f = a(b),
g = b.getAttribute("type");
for (c in a.validator.methods) "required" === c ? (d = b.getAttribute(c), "" === d && (d = !0), d = !!d) : d = f.attr(c), this.normalizeAttributeRule(e, g, c, d);
return e.maxlength && /-1|2147483647|524288/.test(e.maxlength) && delete e.maxlength, e
},
dataRules: function(b) {
var c, d, e = {},
f = a(b),
g = b.getAttribute("type");
for (c in a.validator.methods) d = f.data("rule" + c.charAt(0).toUpperCase() + c.substring(1).toLowerCase()), this.normalizeAttributeRule(e, g, c, d);
return e
},
staticRules: function(b) {
var c = {},
d = a.data(b.form, "validator");
return d.settings.rules && (c = a.validator.normalizeRule(d.settings.rules[b.name]) || {}), c
},
normalizeRules: function(b, c) {
return a.each(b, function(d, e) {
if (e === !1) return void delete b[d];
if (e.param || e.depends) {
var f = !0;
switch (typeof e.depends) {
case "string":
f = !!a(e.depends, c.form).length;
break;
case "function":
f = e.depends.call(c, c)
}
f ? b[d] = void 0 === e.param || e.param : (a.data(c.form, "validator").resetElements(a(c)), delete b[d])
}
}), a.each(b, function(d, e) {
b[d] = a.isFunction(e) && "normalizer" !== d ? e(c) : e
}), a.each(["minlength", "maxlength"], function() {
b[this] && (b[this] = Number(b[this]))
}), a.each(["rangelength", "range"], function() {
var c;
b[this] && (a.isArray(b[this]) ? b[this] = [Number(b[this][0]), Number(b[this][1])] : "string" == typeof b[this] && (c = b[this].replace(/[[]]/g, "").split(/[s,]+/), b[this] = [Number(c[0]), Number(c[1])]))
}), a.validator.autoCreateRanges && (null != b.min && null != b.max && (b.range = [b.min, b.max], delete b.min, delete b.max), null != b.minlength && null != b.maxlength && (b.rangelength = [b.minlength, b.maxlength], delete b.minlength, delete b.maxlength)), b
},
normalizeRule: function(b) {
if ("string" == typeof b) {
var c = {};
a.each(b.split(/s/), function() {
c[this] = !0
}), b = c
}
return b
},
addMethod: function(b, c, d) {
a.validator.methods[b] = c, a.validator.messages[b] = void 0 !== d ? d : a.validator.messages[b], c.length < 3 && a.validator.addClassRules(b, a.validator.normalizeRule(b))
},
methods: {
required: function(b, c, d) {
if (!this.depend(d, c)) return "dependency-mismatch";
if ("select" === c.nodeName.toLowerCase()) {
var e = a(c).val();
return e && e.length > 0
}
return this.checkable(c) ? this.getLength(b, c) > 0 : b.length > 0
},
email: function(a, b) {
return this.optional(b) || /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test(a)
},
url: function(a, b) {
return this.optional(b) || /^(?:(?:(?:https?|ftp):)?//)(?:S+(?::S*)?@)?(?:(?!(?:10|127)(?:.d{1,3}){3})(?!(?:169.254|192.168)(?:.d{1,3}){2})(?!172.(?:1[6-9]|2d|3[0-1])(?:.d{1,3}){2})(?:[1-9]d?|1dd|2[01]d|22[0-3])(?:.(?:1?d{1,2}|2[0-4]d|25[0-5])){2}(?:.(?:[1-9]d?|1dd|2[0-4]d|25[0-4]))|(?:(?:[a-zu00a1-uffff0-9]-*)*[a-zu00a1-uffff0-9]+)(?:.(?:[a-zu00a1-uffff0-9]-*)*[a-zu00a1-uffff0-9]+)*(?:.(?:[a-zu00a1-uffff]{2,})).?)(?::d{2,5})?(?:[/?#]S*)?$/i.test(a)
},
date: function(a, b) {
return this.optional(b) || !/Invalid|NaN/.test(new Date(a).toString())
},
dateISO: function(a, b) {
return this.optional(b) || /^d{4}[/-](0?[1-9]|1[012])[/-](0?[1-9]|[12][0-9]|3[01])$/.test(a)
},
number: function(a, b) {
return this.optional(b) || /^(?:-?d+|-?d{1,3}(?:,d{3})+)?(?:.d+)?$/.test(a)
},
digits: function(a, b) {
return this.optional(b) || /^d+$/.test(a)
},
minlength: function(b, c, d) {
var e = a.isArray(b) ? b.length : this.getLength(b, c);
return this.optional(c) || e >= d
},
maxlength: function(b, c, d) {
var e = a.isArray(b) ? b.length : this.getLength(b, c);
return this.optional(c) || e <= d
},
rangelength: function(b, c, d) {
var e = a.isArray(b) ? b.length : this.getLength(b, c);
return this.optional(c) || e >= d[0] && e <= d[1]
},
min: function(a, b, c) {
return this.optional(b) || a >= c
},
max: function(a, b, c) {
return this.optional(b) || a <= c
},
range: function(a, b, c) {
return this.optional(b) || a >= c[0] && a <= c[1]
},
step: function(b, c, d) {
var e, f = a(c).attr("type"),
g = "Step attribute on input type " + f + " is not supported.",
h = ["text", "number", "range"],
i = new RegExp("\b" + f + "\b"),
j = f && !i.test(h.join()),
k = function(a) {
var b = ("" + a).match(/(?:.(d+))?$/);
return b && b[1] ? b[1].length : 0
},
l = function(a) {
return Math.round(a * Math.pow(10, e))
},
m = !0;
if (j) throw new Error(g);
return e = k(d), (k(b) > e || l(b) % l(d) !== 0) && (m = !1), this.optional(c) || m
},
equalTo: function(b, c, d) {
var e = a(d);
return this.settings.onfocusout && e.not(".validate-equalTo-blur").length && e.addClass("validate-equalTo-blur").on("blur.validate-equalTo", function() {
a(c).valid()
}), b === e.val()
},
remote: function(b, c, d, e) {
if (this.optional(c)) return "dependency-mismatch";
e = "string" == typeof e && e || "remote";
var f, g, h, i = this.previousValue(c, e);
return this.settings.messages[c.name] || (this.settings.messages[c.name] = {}), i.originalMessage = i.originalMessage || this.settings.messages[c.name][e], this.settings.messages[c.name][e] = i.message, d = "string" == typeof d && {
url: d
} || d, h = a.param(a.extend({
data: b
}, d.data)), i.old === h ? i.valid : (i.old = h, f = this, this.startRequest(c), g = {}, g[c.name] = b, a.ajax(a.extend(!0, {
mode: "abort",
port: "validate" + c.name,
dataType: "json",
data: g,
context: f.currentForm,
success: function(a) {
var d, g, h, j = a === !0 || "true" === a;
f.settings.messages[c.name][e] = i.originalMessage, j ? (h = f.formSubmitted, f.resetInternals(), f.toHide = f.errorsFor(c), f.formSubmitted = h, f.successList.push(c), f.invalid[c.name] = !1, f.showErrors()) : (d = {}, g = a || f.defaultMessage(c, {
method: e,
parameters: b
}), d[c.name] = i.message = g, f.invalid[c.name] = !0, f.showErrors(d)), i.valid = j, f.stopRequest(c, j)
}
}, d)), "pending")
}
}
});
var b, c = {};
return a.ajaxPrefilter ? a.ajaxPrefilter(function(a, b, d) {
var e = a.port;
"abort" === a.mode && (c[e] && c[e].abort(), c[e] = d)
}) : (b = a.ajax, a.ajax = function(d) {
var e = ("mode" in d ? d : a.ajaxSettings).mode,
f = ("port" in d ? d : a.ajaxSettings).port;
return "abort" === e ? (c[f] && c[f].abort(), c[f] = b.apply(this, arguments), c[f]) : b.apply(this, arguments)
}), a
});
/*! jQuery Steps v1.1.0 - 09/04/2014 * Copyright (c) 2014 Rafael Staib (http://www.jquery-steps.com) * Licensed under MIT http://www.opensource.org/licenses/MIT */
! function(a, b) {
function c(a, b) {
o(a).push(b)
}
function d(d, e, f) {
var g = d.children(e.headerTag),
h = d.children(e.bodyTag);
g.length > h.length ? R(Z, "contents") : g.length < h.length && R(Z, "titles");
var i = e.startIndex;
if (f.stepCount = g.length, e.saveState && a.cookie) {
var j = a.cookie(U + q(d)),
k = parseInt(j, 0);
!isNaN(k) && k < f.stepCount && (i = k)
}
f.currentIndex = i, g.each(function(e) {
var f = a(this),
g = h.eq(e),
i = g.data("mode"),
j = null == i ? $.html : r($, /^s*$/.test(i) || isNaN(i) ? i : parseInt(i, 0)),
k = j === $.html || g.data("url") === b ? "" : g.data("url"),
l = j !== $.html && "1" === g.data("loaded"),
m = a.extend({}, bb, {
title: f.html(),
content: j === $.html ? g.html() : "",
contentUrl: k,
contentMode: j,
contentLoaded: l
});
c(d, m)
})
}
function e(a) {
a.triggerHandler("canceled")
}
function f(a, b) {
return a.currentIndex - b
}
function g(b, c) {
var d = i(b);
b.unbind(d).removeData("uid").removeData("options").removeData("state").removeData("steps").removeData("eventNamespace").find(".actions a").unbind(d), b.removeClass(c.clearFixCssClass + " vertical");
var e = b.find(".content > *");
e.removeData("loaded").removeData("mode").removeData("url"), e.removeAttr("id").removeAttr("role").removeAttr("tabindex").removeAttr("class").removeAttr("style")._removeAria("labelledby")._removeAria("hidden"), b.find(".content > [data-mode='async'],.content > [data-mode='iframe']").empty();
var f = a('<{0} class="{1}"></{0}>'.format(b.get(0).tagName, b.attr("class"))),
g = b._id();
return null != g && "" !== g && f._id(g), f.html(b.find(".content").html()), b.after(f), b.remove(), f
}
function h(a, b) {
var c = a.find(".steps li").eq(b.currentIndex);
a.triggerHandler("finishing", [b.currentIndex]) ? (c.addClass("done").removeClass("error"), a.triggerHandler("finished", [b.currentIndex])) : c.addClass("error")
}
function i(a) {
var b = a.data("eventNamespace");
return null == b && (b = "." + q(a), a.data("eventNamespace", b)), b
}
function j(a, b) {
var c = q(a);
return a.find("#" + c + V + b)
}
function k(a, b) {
var c = q(a);
return a.find("#" + c + W + b)
}
function l(a, b) {
var c = q(a);
return a.find("#" + c + X + b)
}
function m(a) {
return a.data("options")
}
function n(a) {
return a.data("state")
}
function o(a) {
return a.data("steps")
}
function p(a, b) {
var c = o(a);
return (0 > b || b >= c.length) && R(Y), c[b]
}
function q(a) {
var b = a.data("uid");
return null == b && (b = a._id(), null == b && (b = "steps-uid-".concat(T), a._id(b)), T++, a.data("uid", b)), b
}
function r(a, c) {
if (S("enumType", a), S("keyOrValue", c), "string" == typeof c) {
var d = a[c];
return d === b && R("The enum key '{0}' does not exist.", c), d
}
if ("number" == typeof c) {
for (var e in a)
if (a[e] === c) return c;
R("Invalid enum value '{0}'.", c)
} else R("Invalid key or value type.")
}
function s(a, b, c) {
return B(a, b, c, v(c, 1))
}
function t(a, b, c) {
return B(a, b, c, f(c, 1))
}
function u(a, b, c, d) {
if ((0 > d || d >= c.stepCount) && R(Y), !(b.forceMoveForward && d < c.currentIndex)) {
var e = c.currentIndex;
return a.triggerHandler("stepChanging", [c.currentIndex, d]) ? (c.currentIndex = d, O(a, b, c), E(a, b, c, e), D(a, b, c), A(a, b, c), P(a, b, c, d, e, function() {
a.triggerHandler("stepChanged", [d, e])
})) : a.find(".steps li").eq(e).addClass("error"), !0
}
}
function v(a, b) {
return a.currentIndex + b
}
function w(b) {
var c = a.extend(!0, {}, cb, b);
return this.each(function() {
var b = a(this),
e = {
currentIndex: c.startIndex,
currentStep: null,
stepCount: 0,
transitionElement: null
};
b.data("options", c), b.data("state", e), b.data("steps", []), d(b, c, e), J(b, c, e), G(b, c), c.autoFocus && 0 === T && j(b, c.startIndex).focus(), b.triggerHandler("init", [c.startIndex])
})
}
function x(b, c, d, e, f) {
(0 > e || e > d.stepCount) && R(Y), f = a.extend({}, bb, f), y(b, e, f), d.currentIndex !== d.stepCount && d.currentIndex >= e && (d.currentIndex++, O(b, c, d)), d.stepCount++;
var g = b.find(".content"),
h = a("<{0}>{1}</{0}>".format(c.headerTag, f.title)),
i = a("<{0}></{0}>".format(c.bodyTag));
return (null == f.contentMode || f.contentMode === $.html) && i.html(f.content), 0 === e ? g.prepend(i).prepend(h) : k(b, e - 1).after(i).after(h), K(b, d, i, e), N(b, c, d, h, e), F(b, c, d, e), e === d.currentIndex && E(b, c, d), D(b, c, d), b
}
function y(a, b, c) {
o(a).splice(b, 0, c)
}
function z(b) {
var c = a(this),
d = m(c),
e = n(c);
if (d.suppressPaginationOnFocus && c.find(":focus").is(":input")) return b.preventDefault(), !1;
var f = {
left: 37,
right: 39
};
b.keyCode === f.left ? (b.preventDefault(), t(c, d, e)) : b.keyCode === f.right && (b.preventDefault(), s(c, d, e))
}
function A(b, c, d) {
if (d.stepCount > 0) {
var e = d.currentIndex,
f = p(b, e);
if (!c.enableContentCache || !f.contentLoaded) switch (r($, f.contentMode)) {
case $.iframe:
b.find(".content > .body").eq(d.currentIndex).empty().html('<iframe src="' + f.contentUrl + '" frameborder="0" scrolling="no" />').data("loaded", "1");
break;
case $.async:
var g = k(b, e)._aria("busy", "true").empty().append(M(c.loadingTemplate, {
text: c.labels.loading
}));
a.ajax({
url: f.contentUrl,
cache: !1
}).done(function(a) {
g.empty().html(a)._aria("busy", "false").data("loaded", "1"), b.triggerHandler("contentLoaded", [e])
})
}
}
}
function B(a, b, c, d) {
var e = c.currentIndex;
if (d >= 0 && d < c.stepCount && !(b.forceMoveForward && d < c.currentIndex)) {
var f = j(a, d),
g = f.parent(),
h = g.hasClass("disabled");
return g._enableAria(), f.click(), e === c.currentIndex && h ? (g._enableAria(!1), !1) : !0
}
return !1
}
function C(b) {
b.preventDefault();
var c = a(this),
d = c.parent().parent().parent().parent(),
f = m(d),
g = n(d),
i = c.attr("href");
switch (i.substring(i.lastIndexOf("#") + 1)) {
case "cancel":
e(d);
break;
case "finish":
h(d, g);
break;
case "next":
s(d, f, g);
break;
case "previous":
t(d, f, g)
}
}
function D(a, b, c) {
if (b.enablePagination) {
var d = a.find(".actions a[href$='#finish']").parent(),
e = a.find(".actions a[href$='#next']").parent();
if (!b.forceMoveForward) {
var f = a.find(".actions a[href$='#previous']").parent();
f._enableAria(c.currentIndex > 0)
}
b.enableFinishButton && b.showFinishButtonAlways ? (d._enableAria(c.stepCount > 0), e._enableAria(c.stepCount > 1 && c.stepCount > c.currentIndex + 1)) : (d._showAria(b.enableFinishButton && c.stepCount === c.currentIndex + 1), e._showAria(0 === c.stepCount || c.stepCount > c.currentIndex + 1)._enableAria(c.stepCount > c.currentIndex + 1 || !b.enableFinishButton))
}
}
function E(b, c, d, e) {
var f = j(b, d.currentIndex),
g = a('<span class="current-info audible">' + c.labels.current + " </span>"),
h = b.find(".content > .title");
if (null != e) {
var i = j(b, e);
i.parent().addClass("done").removeClass("error")._selectAria(!1), h.eq(e).removeClass("current").next(".body").removeClass("current"), g = i.find(".current-info"), f.focus()
}
f.prepend(g).parent()._selectAria().removeClass("done")._enableAria(), h.eq(d.currentIndex).addClass("current").next(".body").addClass("current")
}
function F(a, b, c, d) {
for (var e = q(a), f = d; f < c.stepCount; f++) {
var g = e + V + f,
h = e + W + f,
i = e + X + f,
j = a.find(".title").eq(f)._id(i);
a.find(".steps a").eq(f)._id(g)._aria("controls", h).attr("href", "#" + i).html(M(b.titleTemplate, {
index: f + 1,
title: j.html()
})), a.find(".body").eq(f)._id(h)._aria("labelledby", i)
}
}
function G(a, b) {
var c = i(a);
a.bind("canceled" + c, b.onCanceled), a.bind("contentLoaded" + c, b.onContentLoaded), a.bind("finishing" + c, b.onFinishing), a.bind("finished" + c, b.onFinished), a.bind("init" + c, b.onInit), a.bind("stepChanging" + c, b.onStepChanging), a.bind("stepChanged" + c, b.onStepChanged), b.enableKeyNavigation && a.bind("keyup" + c, z), a.find(".actions a").bind("click" + c, C)
}
function H(a, b, c, d) {
return 0 > d || d >= c.stepCount || c.currentIndex === d ? !1 : (I(a, d), c.currentIndex > d && (c.currentIndex--, O(a, b, c)), c.stepCount--, l(a, d).remove(), k(a, d).remove(), j(a, d).parent().remove(), 0 === d && a.find(".steps li").first().addClass("first"), d === c.stepCount && a.find(".steps li").eq(d).addClass("last"), F(a, b, c, d), D(a, b, c), !0)
}
function I(a, b) {
o(a).splice(b, 1)
}
function J(b, c, d) {
var e = '<{0} class="{1}">{2}</{0}>',
f = r(_, c.stepsOrientation),
g = f === _.vertical ? " vertical" : "",
h = a(e.format(c.contentContainerTag, "content " + c.clearFixCssClass, b.html())),
i = a(e.format(c.stepsContainerTag, "steps " + c.clearFixCssClass, '<ul role="tablist"></ul>')),
j = h.children(c.headerTag),
k = h.children(c.bodyTag);
b.attr("role", "application").empty().append(i).append(h).addClass(c.cssClass + " " + c.clearFixCssClass + g), k.each(function(c) {
K(b, d, a(this), c)
}), j.each(function(e) {
N(b, c, d, a(this), e)
}), E(b, c, d), L(b, c, d)
}
function K(a, b, c, d) {
var e = q(a),
f = e + W + d,
g = e + X + d;
c._id(f).attr("role", "tabpanel")._aria("labelledby", g).addClass("body")._showAria(b.currentIndex === d)
}
function L(a, b, c) {
if (b.enablePagination) {
var d = '<{0} class="actions {1}"><ul role="menu" aria-label="{2}">{3}</ul></{0}>',
e = '<li><a href="#{0}" role="menuitem">{1}</a></li>',
f = "";
b.forceMoveForward || (f += e.format("previous", b.labels.previous)), f += e.format("next", b.labels.next), b.enableFinishButton && (f += e.format("finish", b.labels.finish)), b.enableCancelButton && (f += e.format("cancel", b.labels.cancel)), a.append(d.format(b.actionContainerTag, b.clearFixCssClass, b.labels.pagination, f)), D(a, b, c), A(a, b, c)
}
}
function M(a, c) {
for (var d = a.match(/#([a-z]*)#/gi), e = 0; e < d.length; e++) {
var f = d[e],
g = f.substring(1, f.length - 1);
c[g] === b && R("The key '{0}' does not exist in the substitute collection!", g), a = a.replace(f, c[g])
}
return a
}
function N(b, c, d, e, f) {
var g = q(b),
h = g + V + f,
j = g + W + f,
k = g + X + f,
l = b.find(".steps > ul"),
m = M(c.titleTemplate, {
index: f + 1,
title: e.html()
}),
n = a('<li role="tab"><a id="' + h + '" href="#' + k + '" aria-controls="' + j + '">' + m + "</a></li>");
n._enableAria(c.enableAllSteps || d.currentIndex > f), d.currentIndex > f && n.addClass("done"), e._id(k).attr("tabindex", "-1").addClass("title"), 0 === f ? l.prepend(n) : l.find("li").eq(f - 1).after(n), 0 === f && l.find("li").removeClass("first").eq(f).addClass("first"), f === d.stepCount - 1 && l.find("li").removeClass("last").eq(f).addClass("last"), n.children("a").bind("click" + i(b), Q)
}
function O(b, c, d) {
c.saveState && a.cookie && a.cookie(U + q(b), d.currentIndex)
}
function P(b, c, d, e, f, g) {
var h = b.find(".content > .body"),
i = r(ab, c.transitionEffect),
j = c.transitionEffectSpeed,
k = h.eq(e),
l = h.eq(f);
switch (i) {
case ab.fade:
case ab.slide:
var m = i === ab.fade ? "fadeOut" : "slideUp",
o = i === ab.fade ? "fadeIn" : "slideDown";
d.transitionElement = k, l[m](j, function() {
var b = a(this)._showAria(!1).parent().parent(),
c = n(b);
c.transitionElement && (c.transitionElement[o](j, function() {
a(this)._showAria()
}).promise().done(g), c.transitionElement = null)
});
break;
case ab.slideLeft:
var p = l.outerWidth(!0),
q = e > f ? -p : p,
s = e > f ? p : -p;
a.when(l.animate({
left: q
}, j, function() {
a(this)._showAria(!1)
}), k.css("left", s + "px")._showAria().animate({
left: 0
}, j)).done(g);
break;
default:
a.when(l._showAria(!1), k._showAria()).done(g)
}
}
function Q(b) {
b.preventDefault();
var c = a(this),
d = c.parent().parent().parent().parent(),
e = m(d),
f = n(d),
g = f.currentIndex;
if (c.parent().is(":not(.disabled):not(.current)")) {
var h = c.attr("href"),
i = parseInt(h.substring(h.lastIndexOf("-") + 1), 0);
u(d, e, f, i)
}
return g === f.currentIndex ? (j(d, g).focus(), !1) : void 0
}
function R(a) {
throw arguments.length > 1 && (a = a.format(Array.prototype.slice.call(arguments, 1))), new Error(a)
}
function S(a, b) {
null == b && R("The argument '{0}' is null or undefined.", a)
}
a.fn.extend({
_aria: function(a, b) {
return this.attr("aria-" + a, b)
},
_removeAria: function(a) {
return this.removeAttr("aria-" + a)
},
_enableAria: function(a) {
return null == a || a ? this.removeClass("disabled")._aria("disabled", "false") : this.addClass("disabled")._aria("disabled", "true")
},
_showAria: function(a) {
return null == a || a ? this.show()._aria("hidden", "false") : this.hide()._aria("hidden", "true")
},
_selectAria: function(a) {
return null == a || a ? this.addClass("current")._aria("selected", "true") : this.removeClass("current")._aria("selected", "false")
},
_id: function(a) {
return a ? this.attr("id", a) : this.attr("id")
}
}), String.prototype.format || (String.prototype.format = function() {
for (var b = 1 === arguments.length && a.isArray(arguments[0]) ? arguments[0] : arguments, c = this, d = 0; d < b.length; d++) {
var e = new RegExp("\{" + d + "\}", "gm");
c = c.replace(e, b[d])
}
return c
});
var T = 0,
U = "jQu3ry_5teps_St@te_",
V = "-t-",
W = "-p-",
X = "-h-",
Y = "Index out of range.",
Z = "One or more corresponding step {0} are missing.";
a.fn.steps = function(b) {
return a.fn.steps[b] ? a.fn.steps[b].apply(this, Array.prototype.slice.call(arguments, 1)) : "object" != typeof b && b ? void a.error("Method " + b + " does not exist on jQuery.steps") : w.apply(this, arguments)
}, a.fn.steps.add = function(a) {
var b = n(this);
return x(this, m(this), b, b.stepCount, a)
}, a.fn.steps.destroy = function() {
return g(this, m(this))
}, a.fn.steps.finish = function() {
h(this, n(this))
}, a.fn.steps.getCurrentIndex = function() {
return n(this).currentIndex
}, a.fn.steps.getCurrentStep = function() {
return p(this, n(this).currentIndex)
}, a.fn.steps.getStep = function(a) {
return p(this, a)
}, a.fn.steps.insert = function(a, b) {
return x(this, m(this), n(this), a, b)
}, a.fn.steps.next = function() {
return s(this, m(this), n(this))
}, a.fn.steps.previous = function() {
return t(this, m(this), n(this))
}, a.fn.steps.remove = function(a) {
return H(this, m(this), n(this), a)
}, a.fn.steps.setStep = function() {
throw new Error("Not yet implemented!")
}, a.fn.steps.skip = function() {
throw new Error("Not yet implemented!")
};
var $ = a.fn.steps.contentMode = {
html: 0,
iframe: 1,
async: 2
},
_ = a.fn.steps.stepsOrientation = {
horizontal: 0,
vertical: 1
},
ab = a.fn.steps.transitionEffect = {
none: 0,
fade: 1,
slide: 2,
slideLeft: 3
},
bb = a.fn.steps.stepModel = {
title: "",
content: "",
contentUrl: "",
contentMode: $.html,
contentLoaded: !1
},
cb = a.fn.steps.defaults = {
headerTag: "h1",
bodyTag: "div",
contentContainerTag: "div",
actionContainerTag: "div",
stepsContainerTag: "div",
cssClass: "wizard",
clearFixCssClass: "clearfix",
stepsOrientation: _.horizontal,
titleTemplate: '<span class="number">#index#.</span> #title#',
loadingTemplate: '<span class="spinner"></span> #text#',
autoFocus: !1,
enableAllSteps: !1,
enableKeyNavigation: !0,
enablePagination: !0,
suppressPaginationOnFocus: !0,
enableContentCache: !0,
enableCancelButton: !1,
enableFinishButton: !0,
preloadContent: !1,
showFinishButtonAlways: !1,
forceMoveForward: !1,
saveState: !1,
startIndex: 0,
transitionEffect: ab.none,
transitionEffectSpeed: 200,
onStepChanging: function() {
return !0
},
onStepChanged: function() {},
onCanceled: function() {},
onFinishing: function() {
return !0
},
onFinished: function() {},
onContentLoaded: function() {},
onInit: function() {},
labels: {
cancel: "Cancel",
current: "current step:",
pagination: "Pagination",
finish: "Finish",
next: "Next",
previous: "Previous",
loading: "Loading ..."
}
}
}(jQuery);
?>