Skip to content

Instantly share code, notes, and snippets.

@mvnp
Created January 12, 2018 15:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mvnp/0a1aa62b46008a22943048f433f1621e to your computer and use it in GitHub Desktop.
Save mvnp/0a1aa62b46008a22943048f433f1621e to your computer and use it in GitHub Desktop.
This file has been truncated, but you can view the full file.
function setCookie(a, b, c) {
var d = new Date;
d.setTime(d.getTime() + 24 * c * 60 * 60 * 1e3);
var e = "expires=" + d.toUTCString();
document.cookie = a + "=" + b + ";" + e + ";path=/"
}
function getCookie(a) {
for (var b = a + "=", c = document.cookie.split(";"), d = 0; d < c.length; d++) {
for (var e = c[d];
" " == e.charAt(0);) e = e.substring(1);
if (0 == e.indexOf(b)) return e.substring(b.length, e.length)
}
return ""
}
if (! function(a, b) {
"object" == typeof module && "object" == typeof module.exports ? module.exports = a.document ? b(a, !0) : function(a) {
if (!a.document) throw new Error("jQuery requires a window with a document");
return b(a)
} : b(a)
}("undefined" != typeof window ? window : this, function(a, b) {
function c(a) {
var b = !!a && "length" in a && a.length,
c = na.type(a);
return "function" !== c && !na.isWindow(a) && ("array" === c || 0 === b || "number" == typeof b && b > 0 && b - 1 in a)
}
function d(a, b, c) {
if (na.isFunction(b)) return na.grep(a, function(a, d) {
return !!b.call(a, d, a) !== c
});
if (b.nodeType) return na.grep(a, function(a) {
return a === b !== c
});
if ("string" == typeof b) {
if (xa.test(b)) return na.filter(b, a, c);
b = na.filter(b, a)
}
return na.grep(a, function(a) {
return na.inArray(a, b) > -1 !== c
})
}
function e(a, b) {
do a = a[b]; while (a && 1 !== a.nodeType);
return a
}
function f(a) {
var b = {};
return na.each(a.match(Da) || [], function(a, c) {
b[c] = !0
}), b
}
function g() {
da.addEventListener ? (da.removeEventListener("DOMContentLoaded", h), a.removeEventListener("load", h)) : (da.detachEvent("onreadystatechange", h), a.detachEvent("onload", h))
}
function h() {
(da.addEventListener || "load" === a.event.type || "complete" === da.readyState) && (g(), na.ready())
}
function i(a, b, c) {
if (void 0 === c && 1 === a.nodeType) {
var d = "data-" + b.replace(Ia, "-$1").toLowerCase();
if (c = a.getAttribute(d), "string" == typeof c) {
try {
c = "true" === c || "false" !== c && ("null" === c ? null : +c + "" === c ? +c : Ha.test(c) ? na.parseJSON(c) : c)
} catch (a) {}
na.data(a, b, c)
} else c = void 0
}
return c
}
function j(a) {
var b;
for (b in a)
if (("data" !== b || !na.isEmptyObject(a[b])) && "toJSON" !== b) return !1;
return !0
}
function k(a, b, c, d) {
if (Ga(a)) {
var e, f, g = na.expando,
h = a.nodeType,
i = h ? na.cache : a,
j = h ? a[g] : a[g] && g;
if (j && i[j] && (d || i[j].data) || void 0 !== c || "string" != typeof b) return j || (j = h ? a[g] = ca.pop() || na.guid++ : g), i[j] || (i[j] = h ? {} : {
toJSON: na.noop
}), "object" != typeof b && "function" != typeof b || (d ? i[j] = na.extend(i[j], b) : i[j].data = na.extend(i[j].data, b)), f = i[j], d || (f.data || (f.data = {}), f = f.data), void 0 !== c && (f[na.camelCase(b)] = c), "string" == typeof b ? (e = f[b], null == e && (e = f[na.camelCase(b)])) : e = f, e
}
}
function l(a, b, c) {
if (Ga(a)) {
var d, e, f = a.nodeType,
g = f ? na.cache : a,
h = f ? a[na.expando] : na.expando;
if (g[h]) {
if (b && (d = c ? g[h] : g[h].data)) {
na.isArray(b) ? b = b.concat(na.map(b, na.camelCase)) : b in d ? b = [b] : (b = na.camelCase(b), b = b in d ? [b] : b.split(" ")), e = b.length;
for (; e--;) delete d[b[e]];
if (c ? !j(d) : !na.isEmptyObject(d)) return
}(c || (delete g[h].data, j(g[h]))) && (f ? na.cleanData([a], !0) : la.deleteExpando || g != g.window ? delete g[h] : g[h] = void 0)
}
}
}
function m(a, b, c, d) {
var e, f = 1,
g = 20,
h = d ? function() {
return d.cur()
} : function() {
return na.css(a, b, "")
},
i = h(),
j = c && c[3] || (na.cssNumber[b] ? "" : "px"),
k = (na.cssNumber[b] || "px" !== j && +i) && Ka.exec(na.css(a, b));
if (k && k[3] !== j) {
j = j || k[3], c = c || [], k = +i || 1;
do f = f || ".5", k /= f, na.style(a, b, k + j); while (f !== (f = h() / i) && 1 !== f && --g)
}
return c && (k = +k || +i || 0, e = c[1] ? k + (c[1] + 1) * c[2] : +c[2], d && (d.unit = j, d.start = k, d.end = e)), e
}
function n(a) {
var b = Sa.split("|"),
c = a.createDocumentFragment();
if (c.createElement)
for (; b.length;) c.createElement(b.pop());
return c
}
function o(a, b) {
var c, d, e = 0,
f = "undefined" != typeof a.getElementsByTagName ? a.getElementsByTagName(b || "*") : "undefined" != typeof a.querySelectorAll ? a.querySelectorAll(b || "*") : void 0;
if (!f)
for (f = [], c = a.childNodes || a; null != (d = c[e]); e++) !b || na.nodeName(d, b) ? f.push(d) : na.merge(f, o(d, b));
return void 0 === b || b && na.nodeName(a, b) ? na.merge([a], f) : f
}
function p(a, b) {
for (var c, d = 0; null != (c = a[d]); d++) na._data(c, "globalEval", !b || na._data(b[d], "globalEval"))
}
function q(a) {
Oa.test(a.type) && (a.defaultChecked = a.checked)
}
function r(a, b, c, d, e) {
for (var f, g, h, i, j, k, l, m = a.length, r = n(b), s = [], t = 0; m > t; t++)
if (g = a[t], g || 0 === g)
if ("object" === na.type(g)) na.merge(s, g.nodeType ? [g] : g);
else if (Ua.test(g)) {
for (i = i || r.appendChild(b.createElement("div")), j = (Pa.exec(g) || ["", ""])[1].toLowerCase(), l = Ta[j] || Ta._default, i.innerHTML = l[1] + na.htmlPrefilter(g) + l[2], f = l[0]; f--;) i = i.lastChild;
if (!la.leadingWhitespace && Ra.test(g) && s.push(b.createTextNode(Ra.exec(g)[0])), !la.tbody)
for (g = "table" !== j || Va.test(g) ? "<table>" !== l[1] || Va.test(g) ? 0 : i : i.firstChild, f = g && g.childNodes.length; f--;) na.nodeName(k = g.childNodes[f], "tbody") && !k.childNodes.length && g.removeChild(k);
for (na.merge(s, i.childNodes), i.textContent = ""; i.firstChild;) i.removeChild(i.firstChild);
i = r.lastChild
} else s.push(b.createTextNode(g));
for (i && r.removeChild(i), la.appendChecked || na.grep(o(s, "input"), q), t = 0; g = s[t++];)
if (d && na.inArray(g, d) > -1) e && e.push(g);
else if (h = na.contains(g.ownerDocument, g), i = o(r.appendChild(g), "script"), h && p(i), c)
for (f = 0; g = i[f++];) Qa.test(g.type || "") && c.push(g);
return i = null, r
}
function s() {
return !0
}
function t() {
return !1
}
function u() {
try {
return da.activeElement
} catch (a) {}
}
function v(a, b, c, d, e, f) {
var g, h;
if ("object" == typeof b) {
"string" != typeof c && (d = d || c, c = void 0);
for (h in b) v(a, h, c, d, b[h], f);
return a
}
if (null == d && null == e ? (e = c, d = c = void 0) : null == e && ("string" == typeof c ? (e = d, d = void 0) : (e = d, d = c, c = void 0)), e === !1) e = t;
else if (!e) return a;
return 1 === f && (g = e, e = function(a) {
return na().off(a), g.apply(this, arguments)
}, e.guid = g.guid || (g.guid = na.guid++)), a.each(function() {
na.event.add(this, b, e, d, c)
})
}
function w(a, b) {
return na.nodeName(a, "table") && na.nodeName(11 !== b.nodeType ? b : b.firstChild, "tr") ? a.getElementsByTagName("tbody")[0] || a.appendChild(a.ownerDocument.createElement("tbody")) : a
}
function x(a) {
return a.type = (null !== na.find.attr(a, "type")) + "/" + a.type, a
}
function y(a) {
var b = eb.exec(a.type);
return b ? a.type = b[1] : a.removeAttribute("type"), a
}
function z(a, b) {
if (1 === b.nodeType && na.hasData(a)) {
var c, d, e, f = na._data(a),
g = na._data(b, f),
h = f.events;
if (h) {
delete g.handle, g.events = {};
for (c in h)
for (d = 0, e = h[c].length; e > d; d++) na.event.add(b, c, h[c][d])
}
g.data && (g.data = na.extend({}, g.data))
}
}
function A(a, b) {
var c, d, e;
if (1 === b.nodeType) {
if (c = b.nodeName.toLowerCase(), !la.noCloneEvent && b[na.expando]) {
e = na._data(b);
for (d in e.events) na.removeEvent(b, d, e.handle);
b.removeAttribute(na.expando)
}
"script" === c && b.text !== a.text ? (x(b).text = a.text, y(b)) : "object" === c ? (b.parentNode && (b.outerHTML = a.outerHTML), la.html5Clone && a.innerHTML && !na.trim(b.innerHTML) && (b.innerHTML = a.innerHTML)) : "input" === c && Oa.test(a.type) ? (b.defaultChecked = b.checked = a.checked, b.value !== a.value && (b.value = a.value)) : "option" === c ? b.defaultSelected = b.selected = a.defaultSelected : "input" !== c && "textarea" !== c || (b.defaultValue = a.defaultValue)
}
}
function B(a, b, c, d) {
b = fa.apply([], b);
var e, f, g, h, i, j, k = 0,
l = a.length,
m = l - 1,
n = b[0],
p = na.isFunction(n);
if (p || l > 1 && "string" == typeof n && !la.checkClone && db.test(n)) return a.each(function(e) {
var f = a.eq(e);
p && (b[0] = n.call(this, e, f.html())), B(f, b, c, d)
});
if (l && (j = r(b, a[0].ownerDocument, !1, a, d), e = j.firstChild, 1 === j.childNodes.length && (j = e), e || d)) {
for (h = na.map(o(j, "script"), x), g = h.length; l > k; k++) f = j, k !== m && (f = na.clone(f, !0, !0), g && na.merge(h, o(f, "script"))), c.call(a[k], f, k);
if (g)
for (i = h[h.length - 1].ownerDocument, na.map(h, y), k = 0; g > k; k++) f = h[k], Qa.test(f.type || "") && !na._data(f, "globalEval") && na.contains(i, f) && (f.src ? na._evalUrl && na._evalUrl(f.src) : na.globalEval((f.text || f.textContent || f.innerHTML || "").replace(fb, "")));
j = e = null
}
return a
}
function C(a, b, c) {
for (var d, e = b ? na.filter(b, a) : a, f = 0; null != (d = e[f]); f++) c || 1 !== d.nodeType || na.cleanData(o(d)), d.parentNode && (c && na.contains(d.ownerDocument, d) && p(o(d, "script")), d.parentNode.removeChild(d));
return a
}
function D(a, b) {
var c = na(b.createElement(a)).appendTo(b.body),
d = na.css(c[0], "display");
return c.detach(), d
}
function E(a) {
var b = da,
c = jb[a];
return c || (c = D(a, b), "none" !== c && c || (ib = (ib || na("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement), b = (ib[0].contentWindow || ib[0].contentDocument).document, b.write(), b.close(), c = D(a, b), ib.detach()), jb[a] = c), c
}
function F(a, b) {
return {
get: function() {
return a() ? void delete this.get : (this.get = b).apply(this, arguments)
}
}
}
function G(a) {
if (a in yb) return a;
for (var b = a.charAt(0).toUpperCase() + a.slice(1), c = xb.length; c--;)
if (a = xb[c] + b, a in yb) return a
}
function H(a, b) {
for (var c, d, e, f = [], g = 0, h = a.length; h > g; g++) d = a[g], d.style && (f[g] = na._data(d, "olddisplay"), c = d.style.display, b ? (f[g] || "none" !== c || (d.style.display = ""), "" === d.style.display && Ma(d) && (f[g] = na._data(d, "olddisplay", E(d.nodeName)))) : (e = Ma(d), (c && "none" !== c || !e) && na._data(d, "olddisplay", e ? c : na.css(d, "display"))));
for (g = 0; h > g; g++) d = a[g], d.style && (b && "none" !== d.style.display && "" !== d.style.display || (d.style.display = b ? f[g] || "" : "none"));
return a
}
function I(a, b, c) {
var d = ub.exec(b);
return d ? Math.max(0, d[1] - (c || 0)) + (d[2] || "px") : b
}
function J(a, b, c, d, e) {
for (var f = c === (d ? "border" : "content") ? 4 : "width" === b ? 1 : 0, g = 0; 4 > f; f += 2) "margin" === c && (g += na.css(a, c + La[f], !0, e)), d ? ("content" === c && (g -= na.css(a, "padding" + La[f], !0, e)), "margin" !== c && (g -= na.css(a, "border" + La[f] + "Width", !0, e))) : (g += na.css(a, "padding" + La[f], !0, e), "padding" !== c && (g += na.css(a, "border" + La[f] + "Width", !0, e)));
return g
}
function K(a, b, c) {
var d = !0,
e = "width" === b ? a.offsetWidth : a.offsetHeight,
f = ob(a),
g = la.boxSizing && "border-box" === na.css(a, "boxSizing", !1, f);
if (0 >= e || null == e) {
if (e = pb(a, b, f), (0 > e || null == e) && (e = a.style[b]), lb.test(e)) return e;
d = g && (la.boxSizingReliable() || e === a.style[b]), e = parseFloat(e) || 0
}
return e + J(a, b, c || (g ? "border" : "content"), d, f) + "px"
}
function L(a, b, c, d, e) {
return new L.prototype.init(a, b, c, d, e)
}
function M() {
return a.setTimeout(function() {
zb = void 0
}), zb = na.now()
}
function N(a, b) {
var c, d = {
height: a
},
e = 0;
for (b = b ? 1 : 0; 4 > e; e += 2 - b) c = La[e], d["margin" + c] = d["padding" + c] = a;
return b && (d.opacity = d.width = a), d
}
function O(a, b, c) {
for (var d, e = (R.tweeners[b] || []).concat(R.tweeners["*"]), f = 0, g = e.length; g > f; f++)
if (d = e[f].call(c, b, a)) return d
}
function P(a, b, c) {
var d, e, f, g, h, i, j, k, l = this,
m = {},
n = a.style,
o = a.nodeType && Ma(a),
p = na._data(a, "fxshow");
c.queue || (h = na._queueHooks(a, "fx"), null == h.unqueued && (h.unqueued = 0, i = h.empty.fire, h.empty.fire = function() {
h.unqueued || i()
}), h.unqueued++, l.always(function() {
l.always(function() {
h.unqueued--, na.queue(a, "fx").length || h.empty.fire()
})
})), 1 === a.nodeType && ("height" in b || "width" in b) && (c.overflow = [n.overflow, n.overflowX, n.overflowY], j = na.css(a, "display"), k = "none" === j ? na._data(a, "olddisplay") || E(a.nodeName) : j, "inline" === k && "none" === na.css(a, "float") && (la.inlineBlockNeedsLayout && "inline" !== E(a.nodeName) ? n.zoom = 1 : n.display = "inline-block")), c.overflow && (n.overflow = "hidden", la.shrinkWrapBlocks() || l.always(function() {
n.overflow = c.overflow[0], n.overflowX = c.overflow[1], n.overflowY = c.overflow[2]
}));
for (d in b)
if (e = b[d], Bb.exec(e)) {
if (delete b[d], f = f || "toggle" === e, e === (o ? "hide" : "show")) {
if ("show" !== e || !p || void 0 === p[d]) continue;
o = !0
}
m[d] = p && p[d] || na.style(a, d)
} else j = void 0;
if (na.isEmptyObject(m)) "inline" === ("none" === j ? E(a.nodeName) : j) && (n.display = j);
else {
p ? "hidden" in p && (o = p.hidden) : p = na._data(a, "fxshow", {}), f && (p.hidden = !o), o ? na(a).show() : l.done(function() {
na(a).hide()
}), l.done(function() {
var b;
na._removeData(a, "fxshow");
for (b in m) na.style(a, b, m[b])
});
for (d in m) g = O(o ? p[d] : 0, d, l), d in p || (p[d] = g.start, o && (g.end = g.start, g.start = "width" === d || "height" === d ? 1 : 0))
}
}
function Q(a, b) {
var c, d, e, f, g;
for (c in a)
if (d = na.camelCase(c), e = b[d], f = a[c], na.isArray(f) && (e = f[1], f = a[c] = f[0]), c !== d && (a[d] = f, delete a[c]), g = na.cssHooks[d], g && "expand" in g) {
f = g.expand(f), delete a[d];
for (c in f) c in a || (a[c] = f[c], b[c] = e)
} else b[d] = e
}
function R(a, b, c) {
var d, e, f = 0,
g = R.prefilters.length,
h = na.Deferred().always(function() {
delete i.elem
}),
i = function() {
if (e) return !1;
for (var b = zb || M(), c = Math.max(0, j.startTime + j.duration - b), d = c / j.duration || 0, f = 1 - d, g = 0, i = j.tweens.length; i > g; g++) j.tweens[g].run(f);
return h.notifyWith(a, [j, f, c]), 1 > f && i ? c : (h.resolveWith(a, [j]), !1)
},
j = h.promise({
elem: a,
props: na.extend({}, b),
opts: na.extend(!0, {
specialEasing: {},
easing: na.easing._default
}, c),
originalProperties: b,
originalOptions: c,
startTime: zb || M(),
duration: c.duration,
tweens: [],
createTween: function(b, c) {
var d = na.Tween(a, j.opts, b, c, j.opts.specialEasing[b] || j.opts.easing);
return j.tweens.push(d), d
},
stop: function(b) {
var c = 0,
d = b ? j.tweens.length : 0;
if (e) return this;
for (e = !0; d > c; c++) j.tweens[c].run(1);
return b ? (h.notifyWith(a, [j, 1, 0]), h.resolveWith(a, [j, b])) : h.rejectWith(a, [j, b]), this
}
}),
k = j.props;
for (Q(k, j.opts.specialEasing); g > f; f++)
if (d = R.prefilters[f].call(j, a, k, j.opts)) return na.isFunction(d.stop) && (na._queueHooks(j.elem, j.opts.queue).stop = na.proxy(d.stop, d)), d;
return na.map(k, O, j), na.isFunction(j.opts.start) && j.opts.start.call(a, j), na.fx.timer(na.extend(i, {
elem: a,
anim: j,
queue: j.opts.queue
})), j.progress(j.opts.progress).done(j.opts.done, j.opts.complete).fail(j.opts.fail).always(j.opts.always)
}
function S(a) {
return na.attr(a, "class") || ""
}
function T(a) {
return function(b, c) {
"string" != typeof b && (c = b, b = "*");
var d, e = 0,
f = b.toLowerCase().match(Da) || [];
if (na.isFunction(c))
for (; d = f[e++];) "+" === d.charAt(0) ? (d = d.slice(1) || "*", (a[d] = a[d] || []).unshift(c)) : (a[d] = a[d] || []).push(c)
}
}
function U(a, b, c, d) {
function e(h) {
var i;
return f[h] = !0, na.each(a[h] || [], function(a, h) {
var j = h(b, c, d);
return "string" != typeof j || g || f[j] ? g ? !(i = j) : void 0 : (b.dataTypes.unshift(j), e(j), !1)
}), i
}
var f = {},
g = a === $b;
return e(b.dataTypes[0]) || !f["*"] && e("*")
}
function V(a, b) {
var c, d, e = na.ajaxSettings.flatOptions || {};
for (d in b) void 0 !== b[d] && ((e[d] ? a : c || (c = {}))[d] = b[d]);
return c && na.extend(!0, a, c), a
}
function W(a, b, c) {
for (var d, e, f, g, h = a.contents, i = a.dataTypes;
"*" === i[0];) i.shift(), void 0 === e && (e = a.mimeType || b.getResponseHeader("Content-Type"));
if (e)
for (g in h)
if (h[g] && h[g].test(e)) {
i.unshift(g);
break
}
if (i[0] in c) f = i[0];
else {
for (g in c) {
if (!i[0] || a.converters[g + " " + i[0]]) {
f = g;
break
}
d || (d = g)
}
f = f || d
}
return f ? (f !== i[0] && i.unshift(f), c[f]) : void 0
}
function X(a, b, c, d) {
var e, f, g, h, i, j = {},
k = a.dataTypes.slice();
if (k[1])
for (g in a.converters) j[g.toLowerCase()] = a.converters[g];
for (f = k.shift(); f;)
if (a.responseFields[f] && (c[a.responseFields[f]] = b), !i && d && a.dataFilter && (b = a.dataFilter(b, a.dataType)), i = f, f = k.shift())
if ("*" === f) f = i;
else if ("*" !== i && i !== f) {
if (g = j[i + " " + f] || j["* " + f], !g)
for (e in j)
if (h = e.split(" "), h[1] === f && (g = j[i + " " + h[0]] || j["* " + h[0]])) {
g === !0 ? g = j[e] : j[e] !== !0 && (f = h[0], k.unshift(h[1]));
break
}
if (g !== !0)
if (g && a.throws) b = g(b);
else try {
b = g(b)
} catch (a) {
return {
state: "parsererror",
error: g ? a : "No conversion from " + i + " to " + f
}
}
}
return {
state: "success",
data: b
}
}
function Y(a) {
return a.style && a.style.display || na.css(a, "display")
}
function Z(a) {
if (!na.contains(a.ownerDocument || da, a)) return !0;
for (; a && 1 === a.nodeType;) {
if ("none" === Y(a) || "hidden" === a.type) return !0;
a = a.parentNode
}
return !1
}
function $(a, b, c, d) {
var e;
if (na.isArray(b)) na.each(b, function(b, e) {
c || dc.test(a) ? d(a, e) : $(a + "[" + ("object" == typeof e && null != e ? b : "") + "]", e, c, d)
});
else if (c || "object" !== na.type(b)) d(a, b);
else
for (e in b) $(a + "[" + e + "]", b[e], c, d)
}
function _() {
try {
return new a.XMLHttpRequest
} catch (a) {}
}
function aa() {
try {
return new a.ActiveXObject("Microsoft.XMLHTTP")
} catch (a) {}
}
function ba(a) {
return na.isWindow(a) ? a : 9 === a.nodeType && (a.defaultView || a.parentWindow)
}
var ca = [],
da = a.document,
ea = ca.slice,
fa = ca.concat,
ga = ca.push,
ha = ca.indexOf,
ia = {},
ja = ia.toString,
ka = ia.hasOwnProperty,
la = {},
ma = "1.12.4",
na = function(a, b) {
return new na.fn.init(a, b)
},
oa = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
pa = /^-ms-/,
qa = /-([\da-z])/gi,
ra = function(a, b) {
return b.toUpperCase()
};
na.fn = na.prototype = {
jquery: ma,
constructor: na,
selector: "",
length: 0,
toArray: function() {
return ea.call(this)
},
get: function(a) {
return null != a ? 0 > a ? this[a + this.length] : this[a] : ea.call(this)
},
pushStack: function(a) {
var b = na.merge(this.constructor(), a);
return b.prevObject = this, b.context = this.context, b
},
each: function(a) {
return na.each(this, a)
},
map: function(a) {
return this.pushStack(na.map(this, function(b, c) {
return a.call(b, c, b)
}))
},
slice: function() {
return this.pushStack(ea.apply(this, arguments))
},
first: function() {
return this.eq(0)
},
last: function() {
return this.eq(-1)
},
eq: function(a) {
var b = this.length,
c = +a + (0 > a ? b : 0);
return this.pushStack(c >= 0 && b > c ? [this[c]] : [])
},
end: function() {
return this.prevObject || this.constructor()
},
push: ga,
sort: ca.sort,
splice: ca.splice
}, na.extend = na.fn.extend = function() {
var a, b, c, d, e, f, g = arguments[0] || {},
h = 1,
i = arguments.length,
j = !1;
for ("boolean" == typeof g && (j = g, g = arguments[h] || {}, h++), "object" == typeof g || na.isFunction(g) || (g = {}), h === i && (g = this, h--); i > h; h++)
if (null != (e = arguments[h]))
for (d in e) a = g[d], c = e[d], g !== c && (j && c && (na.isPlainObject(c) || (b = na.isArray(c))) ? (b ? (b = !1, f = a && na.isArray(a) ? a : []) : f = a && na.isPlainObject(a) ? a : {}, g[d] = na.extend(j, f, c)) : void 0 !== c && (g[d] = c));
return g
}, na.extend({
expando: "jQuery" + (ma + Math.random()).replace(/\D/g, ""),
isReady: !0,
error: function(a) {
throw new Error(a)
},
noop: function() {},
isFunction: function(a) {
return "function" === na.type(a)
},
isArray: Array.isArray || function(a) {
return "array" === na.type(a)
},
isWindow: function(a) {
return null != a && a == a.window
},
isNumeric: function(a) {
var b = a && a.toString();
return !na.isArray(a) && b - parseFloat(b) + 1 >= 0
},
isEmptyObject: function(a) {
var b;
for (b in a) return !1;
return !0
},
isPlainObject: function(a) {
var b;
if (!a || "object" !== na.type(a) || a.nodeType || na.isWindow(a)) return !1;
try {
if (a.constructor && !ka.call(a, "constructor") && !ka.call(a.constructor.prototype, "isPrototypeOf")) return !1
} catch (a) {
return !1
}
if (!la.ownFirst)
for (b in a) return ka.call(a, b);
for (b in a);
return void 0 === b || ka.call(a, b)
},
type: function(a) {
return null == a ? a + "" : "object" == typeof a || "function" == typeof a ? ia[ja.call(a)] || "object" : typeof a
},
globalEval: function(b) {
b && na.trim(b) && (a.execScript || function(b) {
a.eval.call(a, b)
})(b)
},
camelCase: function(a) {
return a.replace(pa, "ms-").replace(qa, ra)
},
nodeName: function(a, b) {
return a.nodeName && a.nodeName.toLowerCase() === b.toLowerCase()
},
each: function(a, b) {
var d, e = 0;
if (c(a))
for (d = a.length; d > e && b.call(a[e], e, a[e]) !== !1; e++);
else
for (e in a)
if (b.call(a[e], e, a[e]) === !1) break;
return a
},
trim: function(a) {
return null == a ? "" : (a + "").replace(oa, "")
},
makeArray: function(a, b) {
var d = b || [];
return null != a && (c(Object(a)) ? na.merge(d, "string" == typeof a ? [a] : a) : ga.call(d, a)), d
},
inArray: function(a, b, c) {
var d;
if (b) {
if (ha) return ha.call(b, a, c);
for (d = b.length, c = c ? 0 > c ? Math.max(0, d + c) : c : 0; d > c; c++)
if (c in b && b[c] === a) return c
}
return -1
},
merge: function(a, b) {
for (var c = +b.length, d = 0, e = a.length; c > d;) a[e++] = b[d++];
if (c !== c)
for (; void 0 !== b[d];) a[e++] = b[d++];
return a.length = e, a
},
grep: function(a, b, c) {
for (var d, e = [], f = 0, g = a.length, h = !c; g > f; f++) d = !b(a[f], f), d !== h && e.push(a[f]);
return e
},
map: function(a, b, d) {
var e, f, g = 0,
h = [];
if (c(a))
for (e = a.length; e > g; g++) f = b(a[g], g, d), null != f && h.push(f);
else
for (g in a) f = b(a[g], g, d), null != f && h.push(f);
return fa.apply([], h)
},
guid: 1,
proxy: function(a, b) {
var c, d, e;
return "string" == typeof b && (e = a[b], b = a, a = e), na.isFunction(a) ? (c = ea.call(arguments, 2), d = function() {
return a.apply(b || this, c.concat(ea.call(arguments)))
}, d.guid = a.guid = a.guid || na.guid++, d) : void 0
},
now: function() {
return +new Date
},
support: la
}), "function" == typeof Symbol && (na.fn[Symbol.iterator] = ca[Symbol.iterator]), na.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), function(a, b) {
ia["[object " + b + "]"] = b.toLowerCase()
});
var sa = function(a) {
function b(a, b, c, d) {
var e, f, g, h, i, j, l, n, o = b && b.ownerDocument,
p = b ? b.nodeType : 9;
if (c = c || [], "string" != typeof a || !a || 1 !== p && 9 !== p && 11 !== p) return c;
if (!d && ((b ? b.ownerDocument || b : O) !== G && F(b), b = b || G, I)) {
if (11 !== p && (j = ra.exec(a)))
if (e = j[1]) {
if (9 === p) {
if (!(g = b.getElementById(e))) return c;
if (g.id === e) return c.push(g), c
} else if (o && (g = o.getElementById(e)) && M(b, g) && g.id === e) return c.push(g), c
} else {
if (j[2]) return $.apply(c, b.getElementsByTagName(a)), c;
if ((e = j[3]) && v.getElementsByClassName && b.getElementsByClassName) return $.apply(c, b.getElementsByClassName(e)), c
}
if (v.qsa && !T[a + " "] && (!J || !J.test(a))) {
if (1 !== p) o = b, n = a;
else if ("object" !== b.nodeName.toLowerCase()) {
for ((h = b.getAttribute("id")) ? h = h.replace(ta, "\\$&") : b.setAttribute("id", h = N), l = z(a), f = l.length, i = ma.test(h) ? "#" + h : "[id='" + h + "']"; f--;) l[f] = i + " " + m(l[f]);
n = l.join(","), o = sa.test(a) && k(b.parentNode) || b
}
if (n) try {
return $.apply(c, o.querySelectorAll(n)), c
} catch (a) {} finally {
h === N && b.removeAttribute("id")
}
}
}
return B(a.replace(ha, "$1"), b, c, d)
}
function c() {
function a(c, d) {
return b.push(c + " ") > w.cacheLength && delete a[b.shift()], a[c + " "] = d
}
var b = [];
return a
}
function d(a) {
return a[N] = !0, a
}
function e(a) {
var b = G.createElement("div");
try {
return !!a(b)
} catch (a) {
return !1
} finally {
b.parentNode && b.parentNode.removeChild(b), b = null
}
}
function f(a, b) {
for (var c = a.split("|"), d = c.length; d--;) w.attrHandle[c[d]] = b
}
function g(a, b) {
var c = b && a,
d = c && 1 === a.nodeType && 1 === b.nodeType && (~b.sourceIndex || V) - (~a.sourceIndex || V);
if (d) return d;
if (c)
for (; c = c.nextSibling;)
if (c === b) return -1;
return a ? 1 : -1
}
function h(a) {
return function(b) {
var c = b.nodeName.toLowerCase();
return "input" === c && b.type === a
}
}
function i(a) {
return function(b) {
var c = b.nodeName.toLowerCase();
return ("input" === c || "button" === c) && b.type === a
}
}
function j(a) {
return d(function(b) {
return b = +b, d(function(c, d) {
for (var e, f = a([], c.length, b), g = f.length; g--;) c[e = f[g]] && (c[e] = !(d[e] = c[e]))
})
})
}
function k(a) {
return a && "undefined" != typeof a.getElementsByTagName && a
}
function l() {}
function m(a) {
for (var b = 0, c = a.length, d = ""; c > b; b++) d += a[b].value;
return d
}
function n(a, b, c) {
var d = b.dir,
e = c && "parentNode" === d,
f = Q++;
return b.first ? function(b, c, f) {
for (; b = b[d];)
if (1 === b.nodeType || e) return a(b, c, f)
} : function(b, c, g) {
var h, i, j, k = [P, f];
if (g) {
for (; b = b[d];)
if ((1 === b.nodeType || e) && a(b, c, g)) return !0
} else
for (; b = b[d];)
if (1 === b.nodeType || e) {
if (j = b[N] || (b[N] = {}), i = j[b.uniqueID] || (j[b.uniqueID] = {}), (h = i[d]) && h[0] === P && h[1] === f) return k[2] = h[2];
if (i[d] = k, k[2] = a(b, c, g)) return !0
}
}
}
function o(a) {
return a.length > 1 ? function(b, c, d) {
for (var e = a.length; e--;)
if (!a[e](b, c, d)) return !1;
return !0
} : a[0]
}
function p(a, c, d) {
for (var e = 0, f = c.length; f > e; e++) b(a, c[e], d);
return d
}
function q(a, b, c, d, e) {
for (var f, g = [], h = 0, i = a.length, j = null != b; i > h; h++)(f = a[h]) && (c && !c(f, d, e) || (g.push(f), j && b.push(h)));
return g
}
function r(a, b, c, e, f, g) {
return e && !e[N] && (e = r(e)), f && !f[N] && (f = r(f, g)), d(function(d, g, h, i) {
var j, k, l, m = [],
n = [],
o = g.length,
r = d || p(b || "*", h.nodeType ? [h] : h, []),
s = !a || !d && b ? r : q(r, m, a, h, i),
t = c ? f || (d ? a : o || e) ? [] : g : s;
if (c && c(s, t, h, i), e)
for (j = q(t, n), e(j, [], h, i), k = j.length; k--;)(l = j[k]) && (t[n[k]] = !(s[n[k]] = l));
if (d) {
if (f || a) {
if (f) {
for (j = [], k = t.length; k--;)(l = t[k]) && j.push(s[k] = l);
f(null, t = [], j, i)
}
for (k = t.length; k--;)(l = t[k]) && (j = f ? aa(d, l) : m[k]) > -1 && (d[j] = !(g[j] = l))
}
} else t = q(t === g ? t.splice(o, t.length) : t), f ? f(null, g, t, i) : $.apply(g, t)
})
}
function s(a) {
for (var b, c, d, e = a.length, f = w.relative[a[0].type], g = f || w.relative[" "], h = f ? 1 : 0, i = n(function(a) {
return a === b
}, g, !0), j = n(function(a) {
return aa(b, a) > -1
}, g, !0), k = [function(a, c, d) {
var e = !f && (d || c !== C) || ((b = c).nodeType ? i(a, c, d) : j(a, c, d));
return b = null, e
}]; e > h; h++)
if (c = w.relative[a[h].type]) k = [n(o(k), c)];
else {
if (c = w.filter[a[h].type].apply(null, a[h].matches), c[N]) {
for (d = ++h; e > d && !w.relative[a[d].type]; d++);
return r(h > 1 && o(k), h > 1 && m(a.slice(0, h - 1).concat({
value: " " === a[h - 2].type ? "*" : ""
})).replace(ha, "$1"), c, d > h && s(a.slice(h, d)), e > d && s(a = a.slice(d)), e > d && m(a))
}
k.push(c)
}
return o(k)
}
function t(a, c) {
var e = c.length > 0,
f = a.length > 0,
g = function(d, g, h, i, j) {
var k, l, m, n = 0,
o = "0",
p = d && [],
r = [],
s = C,
t = d || f && w.find.TAG("*", j),
u = P += null == s ? 1 : Math.random() || .1,
v = t.length;
for (j && (C = g === G || g || j); o !== v && null != (k = t[o]); o++) {
if (f && k) {
for (l = 0, g || k.ownerDocument === G || (F(k), h = !I); m = a[l++];)
if (m(k, g || G, h)) {
i.push(k);
break
}
j && (P = u)
}
e && ((k = !m && k) && n--, d && p.push(k))
}
if (n += o, e && o !== n) {
for (l = 0; m = c[l++];) m(p, r, g, h);
if (d) {
if (n > 0)
for (; o--;) p[o] || r[o] || (r[o] = Y.call(i));
r = q(r)
}
$.apply(i, r), j && !d && r.length > 0 && n + c.length > 1 && b.uniqueSort(i)
}
return j && (P = u, C = s), p
};
return e ? d(g) : g
}
var u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N = "sizzle" + 1 * new Date,
O = a.document,
P = 0,
Q = 0,
R = c(),
S = c(),
T = c(),
U = function(a, b) {
return a === b && (E = !0), 0
},
V = 1 << 31,
W = {}.hasOwnProperty,
X = [],
Y = X.pop,
Z = X.push,
$ = X.push,
_ = X.slice,
aa = function(a, b) {
for (var c = 0, d = a.length; d > c; c++)
if (a[c] === b) return c;
return -1
},
ba = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
ca = "[\\x20\\t\\r\\n\\f]",
da = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",
ea = "\\[" + ca + "*(" + da + ")(?:" + ca + "*([*^$|!~]?=)" + ca + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + da + "))|)" + ca + "*\\]",
fa = ":(" + da + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + ea + ")*)|.*)\\)|)",
ga = new RegExp(ca + "+", "g"),
ha = new RegExp("^" + ca + "+|((?:^|[^\\\\])(?:\\\\.)*)" + ca + "+$", "g"),
ia = new RegExp("^" + ca + "*," + ca + "*"),
ja = new RegExp("^" + ca + "*([>+~]|" + ca + ")" + ca + "*"),
ka = new RegExp("=" + ca + "*([^\\]'\"]*?)" + ca + "*\\]", "g"),
la = new RegExp(fa),
ma = new RegExp("^" + da + "$"),
na = {
ID: new RegExp("^#(" + da + ")"),
CLASS: new RegExp("^\\.(" + da + ")"),
TAG: new RegExp("^(" + da + "|[*])"),
ATTR: new RegExp("^" + ea),
PSEUDO: new RegExp("^" + fa),
CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + ca + "*(even|odd|(([+-]|)(\\d*)n|)" + ca + "*(?:([+-]|)" + ca + "*(\\d+)|))" + ca + "*\\)|)", "i"),
bool: new RegExp("^(?:" + ba + ")$", "i"),
needsContext: new RegExp("^" + ca + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + ca + "*((?:-\\d)?\\d*)" + ca + "*\\)|)(?=[^-]|$)", "i")
},
oa = /^(?:input|select|textarea|button)$/i,
pa = /^h\d$/i,
qa = /^[^{]+\{\s*\[native \w/,
ra = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
sa = /[+~]/,
ta = /'|\\/g,
ua = new RegExp("\\\\([\\da-f]{1,6}" + ca + "?|(" + ca + ")|.)", "ig"),
va = function(a, b, c) {
var d = "0x" + b - 65536;
return d !== d || c ? b : 0 > d ? String.fromCharCode(d + 65536) : String.fromCharCode(d >> 10 | 55296, 1023 & d | 56320)
},
wa = function() {
F()
};
try {
$.apply(X = _.call(O.childNodes), O.childNodes), X[O.childNodes.length].nodeType
} catch (a) {
$ = {
apply: X.length ? function(a, b) {
Z.apply(a, _.call(b))
} : function(a, b) {
for (var c = a.length, d = 0; a[c++] = b[d++];);
a.length = c - 1
}
}
}
v = b.support = {}, y = b.isXML = function(a) {
var b = a && (a.ownerDocument || a).documentElement;
return !!b && "HTML" !== b.nodeName
}, F = b.setDocument = function(a) {
var b, c, d = a ? a.ownerDocument || a : O;
return d !== G && 9 === d.nodeType && d.documentElement ? (G = d, H = G.documentElement, I = !y(G), (c = G.defaultView) && c.top !== c && (c.addEventListener ? c.addEventListener("unload", wa, !1) : c.attachEvent && c.attachEvent("onunload", wa)), v.attributes = e(function(a) {
return a.className = "i", !a.getAttribute("className")
}), v.getElementsByTagName = e(function(a) {
return a.appendChild(G.createComment("")), !a.getElementsByTagName("*").length
}), v.getElementsByClassName = qa.test(G.getElementsByClassName), v.getById = e(function(a) {
return H.appendChild(a).id = N, !G.getElementsByName || !G.getElementsByName(N).length
}), v.getById ? (w.find.ID = function(a, b) {
if ("undefined" != typeof b.getElementById && I) {
var c = b.getElementById(a);
return c ? [c] : []
}
}, w.filter.ID = function(a) {
var b = a.replace(ua, va);
return function(a) {
return a.getAttribute("id") === b
}
}) : (delete w.find.ID, w.filter.ID = function(a) {
var b = a.replace(ua, va);
return function(a) {
var c = "undefined" != typeof a.getAttributeNode && a.getAttributeNode("id");
return c && c.value === b
}
}), w.find.TAG = v.getElementsByTagName ? function(a, b) {
return "undefined" != typeof b.getElementsByTagName ? b.getElementsByTagName(a) : v.qsa ? b.querySelectorAll(a) : void 0
} : function(a, b) {
var c, d = [],
e = 0,
f = b.getElementsByTagName(a);
if ("*" === a) {
for (; c = f[e++];) 1 === c.nodeType && d.push(c);
return d
}
return f
}, w.find.CLASS = v.getElementsByClassName && function(a, b) {
return "undefined" != typeof b.getElementsByClassName && I ? b.getElementsByClassName(a) : void 0
}, K = [], J = [], (v.qsa = qa.test(G.querySelectorAll)) && (e(function(a) {
H.appendChild(a).innerHTML = "<a id='" + N + "'></a><select id='" + N + "-\r\\' msallowcapture=''><option selected=''></option></select>", a.querySelectorAll("[msallowcapture^='']").length && J.push("[*^$]=" + ca + "*(?:''|\"\")"), a.querySelectorAll("[selected]").length || J.push("\\[" + ca + "*(?:value|" + ba + ")"), a.querySelectorAll("[id~=" + N + "-]").length || J.push("~="), a.querySelectorAll(":checked").length || J.push(":checked"), a.querySelectorAll("a#" + N + "+*").length || J.push(".#.+[+~]")
}), e(function(a) {
var b = G.createElement("input");
b.setAttribute("type", "hidden"), a.appendChild(b).setAttribute("name", "D"), a.querySelectorAll("[name=d]").length && J.push("name" + ca + "*[*^$|!~]?="), a.querySelectorAll(":enabled").length || J.push(":enabled", ":disabled"), a.querySelectorAll("*,:x"), J.push(",.*:")
})), (v.matchesSelector = qa.test(L = H.matches || H.webkitMatchesSelector || H.mozMatchesSelector || H.oMatchesSelector || H.msMatchesSelector)) && e(function(a) {
v.disconnectedMatch = L.call(a, "div"), L.call(a, "[s!='']:x"), K.push("!=", fa)
}), J = J.length && new RegExp(J.join("|")), K = K.length && new RegExp(K.join("|")), b = qa.test(H.compareDocumentPosition), M = b || qa.test(H.contains) ? function(a, b) {
var c = 9 === a.nodeType ? a.documentElement : a,
d = b && b.parentNode;
return a === d || !(!d || 1 !== d.nodeType || !(c.contains ? c.contains(d) : a.compareDocumentPosition && 16 & a.compareDocumentPosition(d)))
} : function(a, b) {
if (b)
for (; b = b.parentNode;)
if (b === a) return !0;
return !1
}, U = b ? function(a, b) {
if (a === b) return E = !0, 0;
var c = !a.compareDocumentPosition - !b.compareDocumentPosition;
return c ? c : (c = (a.ownerDocument || a) === (b.ownerDocument || b) ? a.compareDocumentPosition(b) : 1, 1 & c || !v.sortDetached && b.compareDocumentPosition(a) === c ? a === G || a.ownerDocument === O && M(O, a) ? -1 : b === G || b.ownerDocument === O && M(O, b) ? 1 : D ? aa(D, a) - aa(D, b) : 0 : 4 & c ? -1 : 1)
} : function(a, b) {
if (a === b) return E = !0, 0;
var c, d = 0,
e = a.parentNode,
f = b.parentNode,
h = [a],
i = [b];
if (!e || !f) return a === G ? -1 : b === G ? 1 : e ? -1 : f ? 1 : D ? aa(D, a) - aa(D, b) : 0;
if (e === f) return g(a, b);
for (c = a; c = c.parentNode;) h.unshift(c);
for (c = b; c = c.parentNode;) i.unshift(c);
for (; h[d] === i[d];) d++;
return d ? g(h[d], i[d]) : h[d] === O ? -1 : i[d] === O ? 1 : 0
}, G) : G
}, b.matches = function(a, c) {
return b(a, null, null, c)
}, b.matchesSelector = function(a, c) {
if ((a.ownerDocument || a) !== G && F(a), c = c.replace(ka, "='$1']"), v.matchesSelector && I && !T[c + " "] && (!K || !K.test(c)) && (!J || !J.test(c))) try {
var d = L.call(a, c);
if (d || v.disconnectedMatch || a.document && 11 !== a.document.nodeType) return d
} catch (a) {}
return b(c, G, null, [a]).length > 0
}, b.contains = function(a, b) {
return (a.ownerDocument || a) !== G && F(a), M(a, b)
}, b.attr = function(a, b) {
(a.ownerDocument || a) !== G && F(a);
var c = w.attrHandle[b.toLowerCase()],
d = c && W.call(w.attrHandle, b.toLowerCase()) ? c(a, b, !I) : void 0;
return void 0 !== d ? d : v.attributes || !I ? a.getAttribute(b) : (d = a.getAttributeNode(b)) && d.specified ? d.value : null
}, b.error = function(a) {
throw new Error("Syntax error, unrecognized expression: " + a)
}, b.uniqueSort = function(a) {
var b, c = [],
d = 0,
e = 0;
if (E = !v.detectDuplicates, D = !v.sortStable && a.slice(0), a.sort(U), E) {
for (; b = a[e++];) b === a[e] && (d = c.push(e));
for (; d--;) a.splice(c[d], 1)
}
return D = null, a
}, x = b.getText = function(a) {
var b, c = "",
d = 0,
e = a.nodeType;
if (e) {
if (1 === e || 9 === e || 11 === e) {
if ("string" == typeof a.textContent) return a.textContent;
for (a = a.firstChild; a; a = a.nextSibling) c += x(a)
} else if (3 === e || 4 === e) return a.nodeValue
} else
for (; b = a[d++];) c += x(b);
return c
}, w = b.selectors = {
cacheLength: 50,
createPseudo: d,
match: na,
attrHandle: {},
find: {},
relative: {
">": {
dir: "parentNode",
first: !0
},
" ": {
dir: "parentNode"
},
"+": {
dir: "previousSibling",
first: !0
},
"~": {
dir: "previousSibling"
}
},
preFilter: {
ATTR: function(a) {
return a[1] = a[1].replace(ua, va), a[3] = (a[3] || a[4] || a[5] || "").replace(ua, va), "~=" === a[2] && (a[3] = " " + a[3] + " "), a.slice(0, 4)
},
CHILD: function(a) {
return a[1] = a[1].toLowerCase(), "nth" === a[1].slice(0, 3) ? (a[3] || b.error(a[0]), a[4] = +(a[4] ? a[5] + (a[6] || 1) : 2 * ("even" === a[3] || "odd" === a[3])), a[5] = +(a[7] + a[8] || "odd" === a[3])) : a[3] && b.error(a[0]), a
},
PSEUDO: function(a) {
var b, c = !a[6] && a[2];
return na.CHILD.test(a[0]) ? null : (a[3] ? a[2] = a[4] || a[5] || "" : c && la.test(c) && (b = z(c, !0)) && (b = c.indexOf(")", c.length - b) - c.length) && (a[0] = a[0].slice(0, b), a[2] = c.slice(0, b)), a.slice(0, 3))
}
},
filter: {
TAG: function(a) {
var b = a.replace(ua, va).toLowerCase();
return "*" === a ? function() {
return !0
} : function(a) {
return a.nodeName && a.nodeName.toLowerCase() === b
}
},
CLASS: function(a) {
var b = R[a + " "];
return b || (b = new RegExp("(^|" + ca + ")" + a + "(" + ca + "|$)")) && R(a, function(a) {
return b.test("string" == typeof a.className && a.className || "undefined" != typeof a.getAttribute && a.getAttribute("class") || "")
})
},
ATTR: function(a, c, d) {
return function(e) {
var f = b.attr(e, a);
return null == f ? "!=" === c : !c || (f += "", "=" === c ? f === d : "!=" === c ? f !== d : "^=" === c ? d && 0 === f.indexOf(d) : "*=" === c ? d && f.indexOf(d) > -1 : "$=" === c ? d && f.slice(-d.length) === d : "~=" === c ? (" " + f.replace(ga, " ") + " ").indexOf(d) > -1 : "|=" === c && (f === d || f.slice(0, d.length + 1) === d + "-"))
}
},
CHILD: function(a, b, c, d, e) {
var f = "nth" !== a.slice(0, 3),
g = "last" !== a.slice(-4),
h = "of-type" === b;
return 1 === d && 0 === e ? function(a) {
return !!a.parentNode
} : function(b, c, i) {
var j, k, l, m, n, o, p = f !== g ? "nextSibling" : "previousSibling",
q = b.parentNode,
r = h && b.nodeName.toLowerCase(),
s = !i && !h,
t = !1;
if (q) {
if (f) {
for (; p;) {
for (m = b; m = m[p];)
if (h ? m.nodeName.toLowerCase() === r : 1 === m.nodeType) return !1;
o = p = "only" === a && !o && "nextSibling"
}
return !0
}
if (o = [g ? q.firstChild : q.lastChild], g && s) {
for (m = q, l = m[N] || (m[N] = {}), k = l[m.uniqueID] || (l[m.uniqueID] = {}), j = k[a] || [], n = j[0] === P && j[1], t = n && j[2], m = n && q.childNodes[n]; m = ++n && m && m[p] || (t = n = 0) || o.pop();)
if (1 === m.nodeType && ++t && m === b) {
k[a] = [P, n, t];
break
}
} else if (s && (m = b, l = m[N] || (m[N] = {}), k = l[m.uniqueID] || (l[m.uniqueID] = {}), j = k[a] || [], n = j[0] === P && j[1], t = n), t === !1)
for (;
(m = ++n && m && m[p] || (t = n = 0) || o.pop()) && ((h ? m.nodeName.toLowerCase() !== r : 1 !== m.nodeType) || !++t || (s && (l = m[N] || (m[N] = {}), k = l[m.uniqueID] || (l[m.uniqueID] = {}), k[a] = [P, t]), m !== b)););
return t -= e, t === d || t % d === 0 && t / d >= 0
}
}
},
PSEUDO: function(a, c) {
var e, f = w.pseudos[a] || w.setFilters[a.toLowerCase()] || b.error("unsupported pseudo: " + a);
return f[N] ? f(c) : f.length > 1 ? (e = [a, a, "", c], w.setFilters.hasOwnProperty(a.toLowerCase()) ? d(function(a, b) {
for (var d, e = f(a, c), g = e.length; g--;) d = aa(a, e[g]), a[d] = !(b[d] = e[g])
}) : function(a) {
return f(a, 0, e)
}) : f
}
},
pseudos: {
not: d(function(a) {
var b = [],
c = [],
e = A(a.replace(ha, "$1"));
return e[N] ? d(function(a, b, c, d) {
for (var f, g = e(a, null, d, []), h = a.length; h--;)(f = g[h]) && (a[h] = !(b[h] = f))
}) : function(a, d, f) {
return b[0] = a, e(b, null, f, c), b[0] = null, !c.pop()
}
}),
has: d(function(a) {
return function(c) {
return b(a, c).length > 0
}
}),
contains: d(function(a) {
return a = a.replace(ua, va),
function(b) {
return (b.textContent || b.innerText || x(b)).indexOf(a) > -1
}
}),
lang: d(function(a) {
return ma.test(a || "") || b.error("unsupported lang: " + a), a = a.replace(ua, va).toLowerCase(),
function(b) {
var c;
do
if (c = I ? b.lang : b.getAttribute("xml:lang") || b.getAttribute("lang")) return c = c.toLowerCase(), c === a || 0 === c.indexOf(a + "-"); while ((b = b.parentNode) && 1 === b.nodeType);
return !1
}
}),
target: function(b) {
var c = a.location && a.location.hash;
return c && c.slice(1) === b.id
},
root: function(a) {
return a === H
},
focus: function(a) {
return a === G.activeElement && (!G.hasFocus || G.hasFocus()) && !!(a.type || a.href || ~a.tabIndex)
},
enabled: function(a) {
return a.disabled === !1
},
disabled: function(a) {
return a.disabled === !0
},
checked: function(a) {
var b = a.nodeName.toLowerCase();
return "input" === b && !!a.checked || "option" === b && !!a.selected
},
selected: function(a) {
return a.parentNode && a.parentNode.selectedIndex, a.selected === !0
},
empty: function(a) {
for (a = a.firstChild; a; a = a.nextSibling)
if (a.nodeType < 6) return !1;
return !0
},
parent: function(a) {
return !w.pseudos.empty(a)
},
header: function(a) {
return pa.test(a.nodeName)
},
input: function(a) {
return oa.test(a.nodeName)
},
button: function(a) {
var b = a.nodeName.toLowerCase();
return "input" === b && "button" === a.type || "button" === b
},
text: function(a) {
var b;
return "input" === a.nodeName.toLowerCase() && "text" === a.type && (null == (b = a.getAttribute("type")) || "text" === b.toLowerCase())
},
first: j(function() {
return [0]
}),
last: j(function(a, b) {
return [b - 1]
}),
eq: j(function(a, b, c) {
return [0 > c ? c + b : c]
}),
even: j(function(a, b) {
for (var c = 0; b > c; c += 2) a.push(c);
return a
}),
odd: j(function(a, b) {
for (var c = 1; b > c; c += 2) a.push(c);
return a
}),
lt: j(function(a, b, c) {
for (var d = 0 > c ? c + b : c; --d >= 0;) a.push(d);
return a
}),
gt: j(function(a, b, c) {
for (var d = 0 > c ? c + b : c; ++d < b;) a.push(d);
return a
})
}
}, w.pseudos.nth = w.pseudos.eq;
for (u in {
radio: !0,
checkbox: !0,
file: !0,
password: !0,
image: !0
}) w.pseudos[u] = h(u);
for (u in {
submit: !0,
reset: !0
}) w.pseudos[u] = i(u);
return l.prototype = w.filters = w.pseudos, w.setFilters = new l, z = b.tokenize = function(a, c) {
var d, e, f, g, h, i, j, k = S[a + " "];
if (k) return c ? 0 : k.slice(0);
for (h = a, i = [], j = w.preFilter; h;) {
d && !(e = ia.exec(h)) || (e && (h = h.slice(e[0].length) || h), i.push(f = [])), d = !1, (e = ja.exec(h)) && (d = e.shift(), f.push({
value: d,
type: e[0].replace(ha, " ")
}), h = h.slice(d.length));
for (g in w.filter) !(e = na[g].exec(h)) || j[g] && !(e = j[g](e)) || (d = e.shift(), f.push({
value: d,
type: g,
matches: e
}), h = h.slice(d.length));
if (!d) break
}
return c ? h.length : h ? b.error(a) : S(a, i).slice(0)
}, A = b.compile = function(a, b) {
var c, d = [],
e = [],
f = T[a + " "];
if (!f) {
for (b || (b = z(a)), c = b.length; c--;) f = s(b[c]), f[N] ? d.push(f) : e.push(f);
f = T(a, t(e, d)), f.selector = a
}
return f
}, B = b.select = function(a, b, c, d) {
var e, f, g, h, i, j = "function" == typeof a && a,
l = !d && z(a = j.selector || a);
if (c = c || [], 1 === l.length) {
if (f = l[0] = l[0].slice(0), f.length > 2 && "ID" === (g = f[0]).type && v.getById && 9 === b.nodeType && I && w.relative[f[1].type]) {
if (b = (w.find.ID(g.matches[0].replace(ua, va), b) || [])[0], !b) return c;
j && (b = b.parentNode), a = a.slice(f.shift().value.length)
}
for (e = na.needsContext.test(a) ? 0 : f.length; e-- && (g = f[e], !w.relative[h = g.type]);)
if ((i = w.find[h]) && (d = i(g.matches[0].replace(ua, va), sa.test(f[0].type) && k(b.parentNode) || b))) {
if (f.splice(e, 1), a = d.length && m(f), !a) return $.apply(c, d), c;
break
}
}
return (j || A(a, l))(d, b, !I, c, !b || sa.test(a) && k(b.parentNode) || b), c
}, v.sortStable = N.split("").sort(U).join("") === N, v.detectDuplicates = !!E, F(), v.sortDetached = e(function(a) {
return 1 & a.compareDocumentPosition(G.createElement("div"))
}), e(function(a) {
return a.innerHTML = "<a href='#'></a>", "#" === a.firstChild.getAttribute("href")
}) || f("type|href|height|width", function(a, b, c) {
return c ? void 0 : a.getAttribute(b, "type" === b.toLowerCase() ? 1 : 2)
}), v.attributes && e(function(a) {
return a.innerHTML = "<input/>", a.firstChild.setAttribute("value", ""), "" === a.firstChild.getAttribute("value")
}) || f("value", function(a, b, c) {
return c || "input" !== a.nodeName.toLowerCase() ? void 0 : a.defaultValue
}), e(function(a) {
return null == a.getAttribute("disabled")
}) || f(ba, function(a, b, c) {
var d;
return c ? void 0 : a[b] === !0 ? b.toLowerCase() : (d = a.getAttributeNode(b)) && d.specified ? d.value : null
}), b
}(a);
na.find = sa, na.expr = sa.selectors, na.expr[":"] = na.expr.pseudos, na.uniqueSort = na.unique = sa.uniqueSort, na.text = sa.getText, na.isXMLDoc = sa.isXML, na.contains = sa.contains;
var ta = function(a, b, c) {
for (var d = [], e = void 0 !== c;
(a = a[b]) && 9 !== a.nodeType;)
if (1 === a.nodeType) {
if (e && na(a).is(c)) break;
d.push(a)
}
return d
},
ua = function(a, b) {
for (var c = []; a; a = a.nextSibling) 1 === a.nodeType && a !== b && c.push(a);
return c
},
va = na.expr.match.needsContext,
wa = /^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,
xa = /^.[^:#\[\.,]*$/;
na.filter = function(a, b, c) {
var d = b[0];
return c && (a = ":not(" + a + ")"), 1 === b.length && 1 === d.nodeType ? na.find.matchesSelector(d, a) ? [d] : [] : na.find.matches(a, na.grep(b, function(a) {
return 1 === a.nodeType
}))
}, na.fn.extend({
find: function(a) {
var b, c = [],
d = this,
e = d.length;
if ("string" != typeof a) return this.pushStack(na(a).filter(function() {
for (b = 0; e > b; b++)
if (na.contains(d[b], this)) return !0
}));
for (b = 0; e > b; b++) na.find(a, d[b], c);
return c = this.pushStack(e > 1 ? na.unique(c) : c), c.selector = this.selector ? this.selector + " " + a : a, c
},
filter: function(a) {
return this.pushStack(d(this, a || [], !1))
},
not: function(a) {
return this.pushStack(d(this, a || [], !0))
},
is: function(a) {
return !!d(this, "string" == typeof a && va.test(a) ? na(a) : a || [], !1).length
}
});
var ya, za = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,
Aa = na.fn.init = function(a, b, c) {
var d, e;
if (!a) return this;
if (c = c || ya, "string" == typeof a) {
if (d = "<" === a.charAt(0) && ">" === a.charAt(a.length - 1) && a.length >= 3 ? [null, a, null] : za.exec(a), !d || !d[1] && b) return !b || b.jquery ? (b || c).find(a) : this.constructor(b).find(a);
if (d[1]) {
if (b = b instanceof na ? b[0] : b, na.merge(this, na.parseHTML(d[1], b && b.nodeType ? b.ownerDocument || b : da, !0)), wa.test(d[1]) && na.isPlainObject(b))
for (d in b) na.isFunction(this[d]) ? this[d](b[d]) : this.attr(d, b[d]);
return this
}
if (e = da.getElementById(d[2]), e && e.parentNode) {
if (e.id !== d[2]) return ya.find(a);
this.length = 1, this[0] = e
}
return this.context = da, this.selector = a, this
}
return a.nodeType ? (this.context = this[0] = a, this.length = 1, this) : na.isFunction(a) ? "undefined" != typeof c.ready ? c.ready(a) : a(na) : (void 0 !== a.selector && (this.selector = a.selector, this.context = a.context), na.makeArray(a, this))
};
Aa.prototype = na.fn, ya = na(da);
var Ba = /^(?:parents|prev(?:Until|All))/,
Ca = {
children: !0,
contents: !0,
next: !0,
prev: !0
};
na.fn.extend({
has: function(a) {
var b, c = na(a, this),
d = c.length;
return this.filter(function() {
for (b = 0; d > b; b++)
if (na.contains(this, c[b])) return !0
})
},
closest: function(a, b) {
for (var c, d = 0, e = this.length, f = [], g = va.test(a) || "string" != typeof a ? na(a, b || this.context) : 0; e > d; d++)
for (c = this[d]; c && c !== b; c = c.parentNode)
if (c.nodeType < 11 && (g ? g.index(c) > -1 : 1 === c.nodeType && na.find.matchesSelector(c, a))) {
f.push(c);
break
}
return this.pushStack(f.length > 1 ? na.uniqueSort(f) : f)
},
index: function(a) {
return a ? "string" == typeof a ? na.inArray(this[0], na(a)) : na.inArray(a.jquery ? a[0] : a, this) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1
},
add: function(a, b) {
return this.pushStack(na.uniqueSort(na.merge(this.get(), na(a, b))))
},
addBack: function(a) {
return this.add(null == a ? this.prevObject : this.prevObject.filter(a))
}
}), na.each({
parent: function(a) {
var b = a.parentNode;
return b && 11 !== b.nodeType ? b : null
},
parents: function(a) {
return ta(a, "parentNode")
},
parentsUntil: function(a, b, c) {
return ta(a, "parentNode", c)
},
next: function(a) {
return e(a, "nextSibling")
},
prev: function(a) {
return e(a, "previousSibling")
},
nextAll: function(a) {
return ta(a, "nextSibling")
},
prevAll: function(a) {
return ta(a, "previousSibling")
},
nextUntil: function(a, b, c) {
return ta(a, "nextSibling", c)
},
prevUntil: function(a, b, c) {
return ta(a, "previousSibling", c)
},
siblings: function(a) {
return ua((a.parentNode || {}).firstChild, a)
},
children: function(a) {
return ua(a.firstChild)
},
contents: function(a) {
return na.nodeName(a, "iframe") ? a.contentDocument || a.contentWindow.document : na.merge([], a.childNodes)
}
}, function(a, b) {
na.fn[a] = function(c, d) {
var e = na.map(this, b, c);
return "Until" !== a.slice(-5) && (d = c), d && "string" == typeof d && (e = na.filter(d, e)), this.length > 1 && (Ca[a] || (e = na.uniqueSort(e)), Ba.test(a) && (e = e.reverse())), this.pushStack(e)
}
});
var Da = /\S+/g;
na.Callbacks = function(a) {
a = "string" == typeof a ? f(a) : na.extend({}, a);
var b, c, d, e, g = [],
h = [],
i = -1,
j = function() {
for (e = a.once, d = b = !0; h.length; i = -1)
for (c = h.shift(); ++i < g.length;) g[i].apply(c[0], c[1]) === !1 && a.stopOnFalse && (i = g.length, c = !1);
a.memory || (c = !1), b = !1, e && (g = c ? [] : "")
},
k = {
add: function() {
return g && (c && !b && (i = g.length - 1, h.push(c)), function b(c) {
na.each(c, function(c, d) {
na.isFunction(d) ? a.unique && k.has(d) || g.push(d) : d && d.length && "string" !== na.type(d) && b(d)
})
}(arguments), c && !b && j()), this
},
remove: function() {
return na.each(arguments, function(a, b) {
for (var c;
(c = na.inArray(b, g, c)) > -1;) g.splice(c, 1), i >= c && i--
}), this
},
has: function(a) {
return a ? na.inArray(a, g) > -1 : g.length > 0
},
empty: function() {
return g && (g = []), this
},
disable: function() {
return e = h = [], g = c = "", this
},
disabled: function() {
return !g
},
lock: function() {
return e = !0, c || k.disable(), this
},
locked: function() {
return !!e
},
fireWith: function(a, c) {
return e || (c = c || [], c = [a, c.slice ? c.slice() : c], h.push(c), b || j()), this
},
fire: function() {
return k.fireWith(this, arguments), this
},
fired: function() {
return !!d
}
};
return k
}, na.extend({
Deferred: function(a) {
var b = [
["resolve", "done", na.Callbacks("once memory"), "resolved"],
["reject", "fail", na.Callbacks("once memory"), "rejected"],
["notify", "progress", na.Callbacks("memory")]
],
c = "pending",
d = {
state: function() {
return c
},
always: function() {
return e.done(arguments).fail(arguments), this
},
then: function() {
var a = arguments;
return na.Deferred(function(c) {
na.each(b, function(b, f) {
var g = na.isFunction(a[b]) && a[b];
e[f[1]](function() {
var a = g && g.apply(this, arguments);
a && na.isFunction(a.promise) ? a.promise().progress(c.notify).done(c.resolve).fail(c.reject) : c[f[0] + "With"](this === d ? c.promise() : this, g ? [a] : arguments)
})
}), a = null
}).promise()
},
promise: function(a) {
return null != a ? na.extend(a, d) : d
}
},
e = {};
return d.pipe = d.then, na.each(b, function(a, f) {
var g = f[2],
h = f[3];
d[f[1]] = g.add, h && g.add(function() {
c = h
}, b[1 ^ a][2].disable, b[2][2].lock), e[f[0]] = function() {
return e[f[0] + "With"](this === e ? d : this, arguments), this
}, e[f[0] + "With"] = g.fireWith
}), d.promise(e), a && a.call(e, e), e
},
when: function(a) {
var b, c, d, e = 0,
f = ea.call(arguments),
g = f.length,
h = 1 !== g || a && na.isFunction(a.promise) ? g : 0,
i = 1 === h ? a : na.Deferred(),
j = function(a, c, d) {
return function(e) {
c[a] = this, d[a] = arguments.length > 1 ? ea.call(arguments) : e, d === b ? i.notifyWith(c, d) : --h || i.resolveWith(c, d)
}
};
if (g > 1)
for (b = new Array(g), c = new Array(g), d = new Array(g); g > e; e++) f[e] && na.isFunction(f[e].promise) ? f[e].promise().progress(j(e, c, b)).done(j(e, d, f)).fail(i.reject) : --h;
return h || i.resolveWith(d, f), i.promise()
}
});
var Ea;
na.fn.ready = function(a) {
return na.ready.promise().done(a), this
}, na.extend({
isReady: !1,
readyWait: 1,
holdReady: function(a) {
a ? na.readyWait++ : na.ready(!0)
},
ready: function(a) {
(a === !0 ? --na.readyWait : na.isReady) || (na.isReady = !0, a !== !0 && --na.readyWait > 0 || (Ea.resolveWith(da, [na]), na.fn.triggerHandler && (na(da).triggerHandler("ready"), na(da).off("ready"))))
}
}), na.ready.promise = function(b) {
if (!Ea)
if (Ea = na.Deferred(), "complete" === da.readyState || "loading" !== da.readyState && !da.documentElement.doScroll) a.setTimeout(na.ready);
else if (da.addEventListener) da.addEventListener("DOMContentLoaded", h), a.addEventListener("load", h);
else {
da.attachEvent("onreadystatechange", h), a.attachEvent("onload", h);
var c = !1;
try {
c = null == a.frameElement && da.documentElement
} catch (a) {}
c && c.doScroll && ! function b() {
if (!na.isReady) {
try {
c.doScroll("left")
} catch (c) {
return a.setTimeout(b, 50)
}
g(), na.ready()
}
}()
}
return Ea.promise(b)
}, na.ready.promise();
var Fa;
for (Fa in na(la)) break;
la.ownFirst = "0" === Fa, la.inlineBlockNeedsLayout = !1, na(function() {
var a, b, c, d;
c = da.getElementsByTagName("body")[0], c && c.style && (b = da.createElement("div"), d = da.createElement("div"), d.style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px", c.appendChild(d).appendChild(b), "undefined" != typeof b.style.zoom && (b.style.cssText = "display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1", la.inlineBlockNeedsLayout = a = 3 === b.offsetWidth, a && (c.style.zoom = 1)), c.removeChild(d))
}),
function() {
var a = da.createElement("div");
la.deleteExpando = !0;
try {
delete a.test
} catch (a) {
la.deleteExpando = !1
}
a = null
}();
var Ga = function(a) {
var b = na.noData[(a.nodeName + " ").toLowerCase()],
c = +a.nodeType || 1;
return (1 === c || 9 === c) && (!b || b !== !0 && a.getAttribute("classid") === b)
},
Ha = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
Ia = /([A-Z])/g;
na.extend({
cache: {},
noData: {
"applet ": !0,
"embed ": !0,
"object ": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
},
hasData: function(a) {
return a = a.nodeType ? na.cache[a[na.expando]] : a[na.expando], !!a && !j(a)
},
data: function(a, b, c) {
return k(a, b, c)
},
removeData: function(a, b) {
return l(a, b)
},
_data: function(a, b, c) {
return k(a, b, c, !0)
},
_removeData: function(a, b) {
return l(a, b, !0)
}
}), na.fn.extend({
data: function(a, b) {
var c, d, e, f = this[0],
g = f && f.attributes;
if (void 0 === a) {
if (this.length && (e = na.data(f), 1 === f.nodeType && !na._data(f, "parsedAttrs"))) {
for (c = g.length; c--;) g[c] && (d = g[c].name, 0 === d.indexOf("data-") && (d = na.camelCase(d.slice(5)), i(f, d, e[d])));
na._data(f, "parsedAttrs", !0)
}
return e
}
return "object" == typeof a ? this.each(function() {
na.data(this, a)
}) : arguments.length > 1 ? this.each(function() {
na.data(this, a, b)
}) : f ? i(f, a, na.data(f, a)) : void 0
},
removeData: function(a) {
return this.each(function() {
na.removeData(this, a)
})
}
}), na.extend({
queue: function(a, b, c) {
var d;
return a ? (b = (b || "fx") + "queue", d = na._data(a, b), c && (!d || na.isArray(c) ? d = na._data(a, b, na.makeArray(c)) : d.push(c)), d || []) : void 0
},
dequeue: function(a, b) {
b = b || "fx";
var c = na.queue(a, b),
d = c.length,
e = c.shift(),
f = na._queueHooks(a, b),
g = function() {
na.dequeue(a, b)
};
"inprogress" === e && (e = c.shift(), d--), e && ("fx" === b && c.unshift("inprogress"), delete f.stop, e.call(a, g, f)), !d && f && f.empty.fire()
},
_queueHooks: function(a, b) {
var c = b + "queueHooks";
return na._data(a, c) || na._data(a, c, {
empty: na.Callbacks("once memory").add(function() {
na._removeData(a, b + "queue"), na._removeData(a, c)
})
})
}
}), na.fn.extend({
queue: function(a, b) {
var c = 2;
return "string" != typeof a && (b = a, a = "fx", c--), arguments.length < c ? na.queue(this[0], a) : void 0 === b ? this : this.each(function() {
var c = na.queue(this, a, b);
na._queueHooks(this, a), "fx" === a && "inprogress" !== c[0] && na.dequeue(this, a)
})
},
dequeue: function(a) {
return this.each(function() {
na.dequeue(this, a)
})
},
clearQueue: function(a) {
return this.queue(a || "fx", [])
},
promise: function(a, b) {
var c, d = 1,
e = na.Deferred(),
f = this,
g = this.length,
h = function() {
--d || e.resolveWith(f, [f])
};
for ("string" != typeof a && (b = a, a = void 0), a = a || "fx"; g--;) c = na._data(f[g], a + "queueHooks"), c && c.empty && (d++, c.empty.add(h));
return h(), e.promise(b)
}
}),
function() {
var a;
la.shrinkWrapBlocks = function() {
if (null != a) return a;
a = !1;
var b, c, d;
return c = da.getElementsByTagName("body")[0], c && c.style ? (b = da.createElement("div"), d = da.createElement("div"), d.style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px", c.appendChild(d).appendChild(b), "undefined" != typeof b.style.zoom && (b.style.cssText = "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1", b.appendChild(da.createElement("div")).style.width = "5px", a = 3 !== b.offsetWidth), c.removeChild(d), a) : void 0
}
}();
var Ja = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,
Ka = new RegExp("^(?:([+-])=|)(" + Ja + ")([a-z%]*)$", "i"),
La = ["Top", "Right", "Bottom", "Left"],
Ma = function(a, b) {
return a = b || a, "none" === na.css(a, "display") || !na.contains(a.ownerDocument, a)
},
Na = function(a, b, c, d, e, f, g) {
var h = 0,
i = a.length,
j = null == c;
if ("object" === na.type(c)) {
e = !0;
for (h in c) Na(a, b, h, c[h], !0, f, g)
} else if (void 0 !== d && (e = !0, na.isFunction(d) || (g = !0), j && (g ? (b.call(a, d), b = null) : (j = b, b = function(a, b, c) {
return j.call(na(a), c)
})), b))
for (; i > h; h++) b(a[h], c, g ? d : d.call(a[h], h, b(a[h], c)));
return e ? a : j ? b.call(a) : i ? b(a[0], c) : f
},
Oa = /^(?:checkbox|radio)$/i,
Pa = /<([\w:-]+)/,
Qa = /^$|\/(?:java|ecma)script/i,
Ra = /^\s+/,
Sa = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|dialog|figcaption|figure|footer|header|hgroup|main|mark|meter|nav|output|picture|progress|section|summary|template|time|video";
! function() {
var a = da.createElement("div"),
b = da.createDocumentFragment(),
c = da.createElement("input");
a.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>", la.leadingWhitespace = 3 === a.firstChild.nodeType, la.tbody = !a.getElementsByTagName("tbody").length, la.htmlSerialize = !!a.getElementsByTagName("link").length, la.html5Clone = "<:nav></:nav>" !== da.createElement("nav").cloneNode(!0).outerHTML, c.type = "checkbox", c.checked = !0, b.appendChild(c), la.appendChecked = c.checked, a.innerHTML = "<textarea>x</textarea>", la.noCloneChecked = !!a.cloneNode(!0).lastChild.defaultValue, b.appendChild(a), c = da.createElement("input"), c.setAttribute("type", "radio"), c.setAttribute("checked", "checked"), c.setAttribute("name", "t"), a.appendChild(c), la.checkClone = a.cloneNode(!0).cloneNode(!0).lastChild.checked, la.noCloneEvent = !!a.addEventListener, a[na.expando] = 1, la.attributes = !a.getAttribute(na.expando)
}();
var Ta = {
option: [1, "<select multiple='multiple'>", "</select>"],
legend: [1, "<fieldset>", "</fieldset>"],
area: [1, "<map>", "</map>"],
param: [1, "<object>", "</object>"],
thead: [1, "<table>", "</table>"],
tr: [2, "<table><tbody>", "</tbody></table>"],
col: [2, "<table><tbody></tbody><colgroup>", "</colgroup></table>"],
td: [3, "<table><tbody><tr>", "</tr></tbody></table>"],
_default: la.htmlSerialize ? [0, "", ""] : [1, "X<div>", "</div>"]
};
Ta.optgroup = Ta.option, Ta.tbody = Ta.tfoot = Ta.colgroup = Ta.caption = Ta.thead, Ta.th = Ta.td;
var Ua = /<|&#?\w+;/,
Va = /<tbody/i;
! function() {
var b, c, d = da.createElement("div");
for (b in {
submit: !0,
change: !0,
focusin: !0
}) c = "on" + b, (la[b] = c in a) || (d.setAttribute(c, "t"), la[b] = d.attributes[c].expando === !1);
d = null
}();
var Wa = /^(?:input|select|textarea)$/i,
Xa = /^key/,
Ya = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,
Za = /^(?:focusinfocus|focusoutblur)$/,
$a = /^([^.]*)(?:\.(.+)|)/;
na.event = {
global: {},
add: function(a, b, c, d, e) {
var f, g, h, i, j, k, l, m, n, o, p, q = na._data(a);
if (q) {
for (c.handler && (i = c, c = i.handler, e = i.selector), c.guid || (c.guid = na.guid++), (g = q.events) || (g = q.events = {}), (k = q.handle) || (k = q.handle = function(a) {
return "undefined" == typeof na || a && na.event.triggered === a.type ? void 0 : na.event.dispatch.apply(k.elem, arguments)
}, k.elem = a), b = (b || "").match(Da) || [""], h = b.length; h--;) f = $a.exec(b[h]) || [], n = p = f[1], o = (f[2] || "").split(".").sort(), n && (j = na.event.special[n] || {}, n = (e ? j.delegateType : j.bindType) || n, j = na.event.special[n] || {}, l = na.extend({
type: n,
origType: p,
data: d,
handler: c,
guid: c.guid,
selector: e,
needsContext: e && na.expr.match.needsContext.test(e),
namespace: o.join(".")
}, i), (m = g[n]) || (m = g[n] = [], m.delegateCount = 0, j.setup && j.setup.call(a, d, o, k) !== !1 || (a.addEventListener ? a.addEventListener(n, k, !1) : a.attachEvent && a.attachEvent("on" + n, k))), j.add && (j.add.call(a, l), l.handler.guid || (l.handler.guid = c.guid)), e ? m.splice(m.delegateCount++, 0, l) : m.push(l), na.event.global[n] = !0);
a = null
}
},
remove: function(a, b, c, d, e) {
var f, g, h, i, j, k, l, m, n, o, p, q = na.hasData(a) && na._data(a);
if (q && (k = q.events)) {
for (b = (b || "").match(Da) || [""], j = b.length; j--;)
if (h = $a.exec(b[j]) || [], n = p = h[1], o = (h[2] || "").split(".").sort(), n) {
for (l = na.event.special[n] || {}, n = (d ? l.delegateType : l.bindType) || n, m = k[n] || [], h = h[2] && new RegExp("(^|\\.)" + o.join("\\.(?:.*\\.|)") + "(\\.|$)"), i = f = m.length; f--;) g = m[f], !e && p !== g.origType || c && c.guid !== g.guid || h && !h.test(g.namespace) || d && d !== g.selector && ("**" !== d || !g.selector) || (m.splice(f, 1), g.selector && m.delegateCount--, l.remove && l.remove.call(a, g));
i && !m.length && (l.teardown && l.teardown.call(a, o, q.handle) !== !1 || na.removeEvent(a, n, q.handle), delete k[n])
} else
for (n in k) na.event.remove(a, n + b[j], c, d, !0);
na.isEmptyObject(k) && (delete q.handle, na._removeData(a, "events"))
}
},
trigger: function(b, c, d, e) {
var f, g, h, i, j, k, l, m = [d || da],
n = ka.call(b, "type") ? b.type : b,
o = ka.call(b, "namespace") ? b.namespace.split(".") : [];
if (h = k = d = d || da, 3 !== d.nodeType && 8 !== d.nodeType && !Za.test(n + na.event.triggered) && (n.indexOf(".") > -1 && (o = n.split("."), n = o.shift(), o.sort()), g = n.indexOf(":") < 0 && "on" + n, b = b[na.expando] ? b : new na.Event(n, "object" == typeof b && b), b.isTrigger = e ? 2 : 3, b.namespace = o.join("."), b.rnamespace = b.namespace ? new RegExp("(^|\\.)" + o.join("\\.(?:.*\\.|)") + "(\\.|$)") : null, b.result = void 0, b.target || (b.target = d), c = null == c ? [b] : na.makeArray(c, [b]), j = na.event.special[n] || {}, e || !j.trigger || j.trigger.apply(d, c) !== !1)) {
if (!e && !j.noBubble && !na.isWindow(d)) {
for (i = j.delegateType || n, Za.test(i + n) || (h = h.parentNode); h; h = h.parentNode) m.push(h), k = h;
k === (d.ownerDocument || da) && m.push(k.defaultView || k.parentWindow || a)
}
for (l = 0;
(h = m[l++]) && !b.isPropagationStopped();) b.type = l > 1 ? i : j.bindType || n, f = (na._data(h, "events") || {})[b.type] && na._data(h, "handle"), f && f.apply(h, c), f = g && h[g], f && f.apply && Ga(h) && (b.result = f.apply(h, c), b.result === !1 && b.preventDefault());
if (b.type = n, !e && !b.isDefaultPrevented() && (!j._default || j._default.apply(m.pop(), c) === !1) && Ga(d) && g && d[n] && !na.isWindow(d)) {
k = d[g], k && (d[g] = null), na.event.triggered = n;
try {
d[n]()
} catch (a) {}
na.event.triggered = void 0, k && (d[g] = k)
}
return b.result
}
},
dispatch: function(a) {
a = na.event.fix(a);
var b, c, d, e, f, g = [],
h = ea.call(arguments),
i = (na._data(this, "events") || {})[a.type] || [],
j = na.event.special[a.type] || {};
if (h[0] = a, a.delegateTarget = this, !j.preDispatch || j.preDispatch.call(this, a) !== !1) {
for (g = na.event.handlers.call(this, a, i), b = 0;
(e = g[b++]) && !a.isPropagationStopped();)
for (a.currentTarget = e.elem, c = 0;
(f = e.handlers[c++]) && !a.isImmediatePropagationStopped();) a.rnamespace && !a.rnamespace.test(f.namespace) || (a.handleObj = f, a.data = f.data, d = ((na.event.special[f.origType] || {}).handle || f.handler).apply(e.elem, h), void 0 !== d && (a.result = d) === !1 && (a.preventDefault(), a.stopPropagation()));
return j.postDispatch && j.postDispatch.call(this, a), a.result
}
},
handlers: function(a, b) {
var c, d, e, f, g = [],
h = b.delegateCount,
i = a.target;
if (h && i.nodeType && ("click" !== a.type || isNaN(a.button) || a.button < 1))
for (; i != this; i = i.parentNode || this)
if (1 === i.nodeType && (i.disabled !== !0 || "click" !== a.type)) {
for (d = [], c = 0; h > c; c++) f = b[c], e = f.selector + " ", void 0 === d[e] && (d[e] = f.needsContext ? na(e, this).index(i) > -1 : na.find(e, this, null, [i]).length), d[e] && d.push(f);
d.length && g.push({
elem: i,
handlers: d
})
}
return h < b.length && g.push({
elem: this,
handlers: b.slice(h)
}), g
},
fix: function(a) {
if (a[na.expando]) return a;
var b, c, d, e = a.type,
f = a,
g = this.fixHooks[e];
for (g || (this.fixHooks[e] = g = Ya.test(e) ? this.mouseHooks : Xa.test(e) ? this.keyHooks : {}), d = g.props ? this.props.concat(g.props) : this.props, a = new na.Event(f), b = d.length; b--;) c = d[b], a[c] = f[c];
return a.target || (a.target = f.srcElement || da), 3 === a.target.nodeType && (a.target = a.target.parentNode), a.metaKey = !!a.metaKey, g.filter ? g.filter(a, f) : a
},
props: "altKey bubbles cancelable ctrlKey currentTarget detail eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),
fixHooks: {},
keyHooks: {
props: "char charCode key keyCode".split(" "),
filter: function(a, b) {
return null == a.which && (a.which = null != b.charCode ? b.charCode : b.keyCode), a
}
},
mouseHooks: {
props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),
filter: function(a, b) {
var c, d, e, f = b.button,
g = b.fromElement;
return null == a.pageX && null != b.clientX && (d = a.target.ownerDocument || da, e = d.documentElement, c = d.body, a.pageX = b.clientX + (e && e.scrollLeft || c && c.scrollLeft || 0) - (e && e.clientLeft || c && c.clientLeft || 0), a.pageY = b.clientY + (e && e.scrollTop || c && c.scrollTop || 0) - (e && e.clientTop || c && c.clientTop || 0)), !a.relatedTarget && g && (a.relatedTarget = g === a.target ? b.toElement : g), a.which || void 0 === f || (a.which = 1 & f ? 1 : 2 & f ? 3 : 4 & f ? 2 : 0), a
}
},
special: {
load: {
noBubble: !0
},
focus: {
trigger: function() {
if (this !== u() && this.focus) try {
return this.focus(), !1
} catch (a) {}
},
delegateType: "focusin"
},
blur: {
trigger: function() {
return this === u() && this.blur ? (this.blur(), !1) : void 0
},
delegateType: "focusout"
},
click: {
trigger: function() {
return na.nodeName(this, "input") && "checkbox" === this.type && this.click ? (this.click(), !1) : void 0
},
_default: function(a) {
return na.nodeName(a.target, "a")
}
},
beforeunload: {
postDispatch: function(a) {
void 0 !== a.result && a.originalEvent && (a.originalEvent.returnValue = a.result)
}
}
},
simulate: function(a, b, c) {
var d = na.extend(new na.Event, c, {
type: a,
isSimulated: !0
});
na.event.trigger(d, null, b), d.isDefaultPrevented() && c.preventDefault()
}
}, na.removeEvent = da.removeEventListener ? function(a, b, c) {
a.removeEventListener && a.removeEventListener(b, c)
} : function(a, b, c) {
var d = "on" + b;
a.detachEvent && ("undefined" == typeof a[d] && (a[d] = null), a.detachEvent(d, c))
}, na.Event = function(a, b) {
return this instanceof na.Event ? (a && a.type ? (this.originalEvent = a, this.type = a.type, this.isDefaultPrevented = a.defaultPrevented || void 0 === a.defaultPrevented && a.returnValue === !1 ? s : t) : this.type = a, b && na.extend(this, b), this.timeStamp = a && a.timeStamp || na.now(), void(this[na.expando] = !0)) : new na.Event(a, b)
}, na.Event.prototype = {
constructor: na.Event,
isDefaultPrevented: t,
isPropagationStopped: t,
isImmediatePropagationStopped: t,
preventDefault: function() {
var a = this.originalEvent;
this.isDefaultPrevented = s, a && (a.preventDefault ? a.preventDefault() : a.returnValue = !1)
},
stopPropagation: function() {
var a = this.originalEvent;
this.isPropagationStopped = s, a && !this.isSimulated && (a.stopPropagation && a.stopPropagation(), a.cancelBubble = !0)
},
stopImmediatePropagation: function() {
var a = this.originalEvent;
this.isImmediatePropagationStopped = s, a && a.stopImmediatePropagation && a.stopImmediatePropagation(), this.stopPropagation()
}
}, na.each({
mouseenter: "mouseover",
mouseleave: "mouseout",
pointerenter: "pointerover",
pointerleave: "pointerout"
}, function(a, b) {
na.event.special[a] = {
delegateType: b,
bindType: b,
handle: function(a) {
var c, d = this,
e = a.relatedTarget,
f = a.handleObj;
return e && (e === d || na.contains(d, e)) || (a.type = f.origType, c = f.handler.apply(this, arguments), a.type = b), c
}
}
}), la.submit || (na.event.special.submit = {
setup: function() {
return !na.nodeName(this, "form") && void na.event.add(this, "click._submit keypress._submit", function(a) {
var b = a.target,
c = na.nodeName(b, "input") || na.nodeName(b, "button") ? na.prop(b, "form") : void 0;
c && !na._data(c, "submit") && (na.event.add(c, "submit._submit", function(a) {
a._submitBubble = !0
}), na._data(c, "submit", !0))
})
},
postDispatch: function(a) {
a._submitBubble && (delete a._submitBubble, this.parentNode && !a.isTrigger && na.event.simulate("submit", this.parentNode, a))
},
teardown: function() {
return !na.nodeName(this, "form") && void na.event.remove(this, "._submit")
}
}), la.change || (na.event.special.change = {
setup: function() {
return Wa.test(this.nodeName) ? ("checkbox" !== this.type && "radio" !== this.type || (na.event.add(this, "propertychange._change", function(a) {
"checked" === a.originalEvent.propertyName && (this._justChanged = !0)
}), na.event.add(this, "click._change", function(a) {
this._justChanged && !a.isTrigger && (this._justChanged = !1), na.event.simulate("change", this, a)
})), !1) : void na.event.add(this, "beforeactivate._change", function(a) {
var b = a.target;
Wa.test(b.nodeName) && !na._data(b, "change") && (na.event.add(b, "change._change", function(a) {
!this.parentNode || a.isSimulated || a.isTrigger || na.event.simulate("change", this.parentNode, a)
}), na._data(b, "change", !0))
})
},
handle: function(a) {
var b = a.target;
return this !== b || a.isSimulated || a.isTrigger || "radio" !== b.type && "checkbox" !== b.type ? a.handleObj.handler.apply(this, arguments) : void 0
},
teardown: function() {
return na.event.remove(this, "._change"), !Wa.test(this.nodeName)
}
}), la.focusin || na.each({
focus: "focusin",
blur: "focusout"
}, function(a, b) {
var c = function(a) {
na.event.simulate(b, a.target, na.event.fix(a))
};
na.event.special[b] = {
setup: function() {
var d = this.ownerDocument || this,
e = na._data(d, b);
e || d.addEventListener(a, c, !0), na._data(d, b, (e || 0) + 1)
},
teardown: function() {
var d = this.ownerDocument || this,
e = na._data(d, b) - 1;
e ? na._data(d, b, e) : (d.removeEventListener(a, c, !0), na._removeData(d, b))
}
}
}), na.fn.extend({
on: function(a, b, c, d) {
return v(this, a, b, c, d)
},
one: function(a, b, c, d) {
return v(this, a, b, c, d, 1)
},
off: function(a, b, c) {
var d, e;
if (a && a.preventDefault && a.handleObj) return d = a.handleObj, na(a.delegateTarget).off(d.namespace ? d.origType + "." + d.namespace : d.origType, d.selector, d.handler), this;
if ("object" == typeof a) {
for (e in a) this.off(e, b, a[e]);
return this
}
return b !== !1 && "function" != typeof b || (c = b, b = void 0), c === !1 && (c = t), this.each(function() {
na.event.remove(this, a, c, b)
})
},
trigger: function(a, b) {
return this.each(function() {
na.event.trigger(a, b, this)
})
},
triggerHandler: function(a, b) {
var c = this[0];
return c ? na.event.trigger(a, b, c, !0) : void 0
}
});
var _a = / jQuery\d+="(?:null|\d+)"/g,
ab = new RegExp("<(?:" + Sa + ")[\\s/>]", "i"),
bb = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,
cb = /<script|<style|<link/i,
db = /checked\s*(?:[^=]|=\s*.checked.)/i,
eb = /^true\/(.*)/,
fb = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,
gb = n(da),
hb = gb.appendChild(da.createElement("div"));
na.extend({
htmlPrefilter: function(a) {
return a.replace(bb, "<$1></$2>")
},
clone: function(a, b, c) {
var d, e, f, g, h, i = na.contains(a.ownerDocument, a);
if (la.html5Clone || na.isXMLDoc(a) || !ab.test("<" + a.nodeName + ">") ? f = a.cloneNode(!0) : (hb.innerHTML = a.outerHTML, hb.removeChild(f = hb.firstChild)), !(la.noCloneEvent && la.noCloneChecked || 1 !== a.nodeType && 11 !== a.nodeType || na.isXMLDoc(a)))
for (d = o(f), h = o(a), g = 0; null != (e = h[g]); ++g) d[g] && A(e, d[g]);
if (b)
if (c)
for (h = h || o(a), d = d || o(f), g = 0; null != (e = h[g]); g++) z(e, d[g]);
else z(a, f);
return d = o(f, "script"), d.length > 0 && p(d, !i && o(a, "script")), d = h = e = null, f
},
cleanData: function(a, b) {
for (var c, d, e, f, g = 0, h = na.expando, i = na.cache, j = la.attributes, k = na.event.special; null != (c = a[g]); g++)
if ((b || Ga(c)) && (e = c[h], f = e && i[e])) {
if (f.events)
for (d in f.events) k[d] ? na.event.remove(c, d) : na.removeEvent(c, d, f.handle);
i[e] && (delete i[e], j || "undefined" == typeof c.removeAttribute ? c[h] = void 0 : c.removeAttribute(h), ca.push(e))
}
}
}), na.fn.extend({
domManip: B,
detach: function(a) {
return C(this, a, !0)
},
remove: function(a) {
return C(this, a)
},
text: function(a) {
return Na(this, function(a) {
return void 0 === a ? na.text(this) : this.empty().append((this[0] && this[0].ownerDocument || da).createTextNode(a))
}, null, a, arguments.length)
},
append: function() {
return B(this, arguments, function(a) {
if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
var b = w(this, a);
b.appendChild(a)
}
})
},
prepend: function() {
return B(this, arguments, function(a) {
if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
var b = w(this, a);
b.insertBefore(a, b.firstChild)
}
})
},
before: function() {
return B(this, arguments, function(a) {
this.parentNode && this.parentNode.insertBefore(a, this)
})
},
after: function() {
return B(this, arguments, function(a) {
this.parentNode && this.parentNode.insertBefore(a, this.nextSibling)
})
},
empty: function() {
for (var a, b = 0; null != (a = this[b]); b++) {
for (1 === a.nodeType && na.cleanData(o(a, !1)); a.firstChild;) a.removeChild(a.firstChild);
a.options && na.nodeName(a, "select") && (a.options.length = 0)
}
return this
},
clone: function(a, b) {
return a = null != a && a, b = null == b ? a : b, this.map(function() {
return na.clone(this, a, b)
})
},
html: function(a) {
return Na(this, function(a) {
var b = this[0] || {},
c = 0,
d = this.length;
if (void 0 === a) return 1 === b.nodeType ? b.innerHTML.replace(_a, "") : void 0;
if ("string" == typeof a && !cb.test(a) && (la.htmlSerialize || !ab.test(a)) && (la.leadingWhitespace || !Ra.test(a)) && !Ta[(Pa.exec(a) || ["", ""])[1].toLowerCase()]) {
a = na.htmlPrefilter(a);
try {
for (; d > c; c++) b = this[c] || {}, 1 === b.nodeType && (na.cleanData(o(b, !1)), b.innerHTML = a);
b = 0
} catch (a) {}
}
b && this.empty().append(a)
}, null, a, arguments.length)
},
replaceWith: function() {
var a = [];
return B(this, arguments, function(b) {
var c = this.parentNode;
na.inArray(this, a) < 0 && (na.cleanData(o(this)), c && c.replaceChild(b, this))
}, a)
}
}), na.each({
appendTo: "append",
prependTo: "prepend",
insertBefore: "before",
insertAfter: "after",
replaceAll: "replaceWith"
}, function(a, b) {
na.fn[a] = function(a) {
for (var c, d = 0, e = [], f = na(a), g = f.length - 1; g >= d; d++) c = d === g ? this : this.clone(!0), na(f[d])[b](c), ga.apply(e, c.get());
return this.pushStack(e)
}
});
var ib, jb = {
HTML: "block",
BODY: "block"
},
kb = /^margin/,
lb = new RegExp("^(" + Ja + ")(?!px)[a-z%]+$", "i"),
mb = function(a, b, c, d) {
var e, f, g = {};
for (f in b) g[f] = a.style[f], a.style[f] = b[f];
e = c.apply(a, d || []);
for (f in b) a.style[f] = g[f];
return e
},
nb = da.documentElement;
! function() {
function b() {
var b, k, l = da.documentElement;
l.appendChild(i), j.style.cssText = "-webkit-box-sizing:border-box;box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%", c = e = h = !1, d = g = !0, a.getComputedStyle && (k = a.getComputedStyle(j), c = "1%" !== (k || {}).top, h = "2px" === (k || {}).marginLeft, e = "4px" === (k || {
width: "4px"
}).width, j.style.marginRight = "50%", d = "4px" === (k || {
marginRight: "4px"
}).marginRight, b = j.appendChild(da.createElement("div")), b.style.cssText = j.style.cssText = "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0", b.style.marginRight = b.style.width = "0", j.style.width = "1px", g = !parseFloat((a.getComputedStyle(b) || {}).marginRight), j.removeChild(b)), j.style.display = "none", f = 0 === j.getClientRects().length, f && (j.style.display = "", j.innerHTML = "<table><tr><td></td><td>t</td></tr></table>", j.childNodes[0].style.borderCollapse = "separate", b = j.getElementsByTagName("td"), b[0].style.cssText = "margin:0;border:0;padding:0;display:none", f = 0 === b[0].offsetHeight, f && (b[0].style.display = "", b[1].style.display = "none", f = 0 === b[0].offsetHeight)), l.removeChild(i)
}
var c, d, e, f, g, h, i = da.createElement("div"),
j = da.createElement("div");
j.style && (j.style.cssText = "float:left;opacity:.5", la.opacity = "0.5" === j.style.opacity, la.cssFloat = !!j.style.cssFloat, j.style.backgroundClip = "content-box", j.cloneNode(!0).style.backgroundClip = "", la.clearCloneStyle = "content-box" === j.style.backgroundClip, i = da.createElement("div"), i.style.cssText = "border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute", j.innerHTML = "", i.appendChild(j), la.boxSizing = "" === j.style.boxSizing || "" === j.style.MozBoxSizing || "" === j.style.WebkitBoxSizing, na.extend(la, {
reliableHiddenOffsets: function() {
return null == c && b(), f
},
boxSizingReliable: function() {
return null == c && b(), e
},
pixelMarginRight: function() {
return null == c && b(), d
},
pixelPosition: function() {
return null == c && b(), c
},
reliableMarginRight: function() {
return null == c && b(), g
},
reliableMarginLeft: function() {
return null == c && b(), h
}
}))
}();
var ob, pb, qb = /^(top|right|bottom|left)$/;
a.getComputedStyle ? (ob = function(b) {
var c = b.ownerDocument.defaultView;
return c && c.opener || (c = a), c.getComputedStyle(b)
}, pb = function(a, b, c) {
var d, e, f, g, h = a.style;
return c = c || ob(a), g = c ? c.getPropertyValue(b) || c[b] : void 0, "" !== g && void 0 !== g || na.contains(a.ownerDocument, a) || (g = na.style(a, b)), c && !la.pixelMarginRight() && lb.test(g) && kb.test(b) && (d = h.width, e = h.minWidth, f = h.maxWidth, h.minWidth = h.maxWidth = h.width = g, g = c.width, h.width = d, h.minWidth = e, h.maxWidth = f), void 0 === g ? g : g + ""
}) : nb.currentStyle && (ob = function(a) {
return a.currentStyle
}, pb = function(a, b, c) {
var d, e, f, g, h = a.style;
return c = c || ob(a), g = c ? c[b] : void 0, null == g && h && h[b] && (g = h[b]), lb.test(g) && !qb.test(b) && (d = h.left, e = a.runtimeStyle, f = e && e.left, f && (e.left = a.currentStyle.left), h.left = "fontSize" === b ? "1em" : g, g = h.pixelLeft + "px", h.left = d, f && (e.left = f)), void 0 === g ? g : g + "" || "auto"
});
var rb = /alpha\([^)]*\)/i,
sb = /opacity\s*=\s*([^)]*)/i,
tb = /^(none|table(?!-c[ea]).+)/,
ub = new RegExp("^(" + Ja + ")(.*)$", "i"),
vb = {
position: "absolute",
visibility: "hidden",
display: "block"
},
wb = {
letterSpacing: "0",
fontWeight: "400"
},
xb = ["Webkit", "O", "Moz", "ms"],
yb = da.createElement("div").style;
na.extend({
cssHooks: {
opacity: {
get: function(a, b) {
if (b) {
var c = pb(a, "opacity");
return "" === c ? "1" : c
}
}
}
},
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: {
float: la.cssFloat ? "cssFloat" : "styleFloat"
},
style: function(a, b, c, d) {
if (a && 3 !== a.nodeType && 8 !== a.nodeType && a.style) {
var e, f, g, h = na.camelCase(b),
i = a.style;
if (b = na.cssProps[h] || (na.cssProps[h] = G(h) || h), g = na.cssHooks[b] || na.cssHooks[h], void 0 === c) return g && "get" in g && void 0 !== (e = g.get(a, !1, d)) ? e : i[b];
if (f = typeof c, "string" === f && (e = Ka.exec(c)) && e[1] && (c = m(a, b, e), f = "number"), null != c && c === c && ("number" === f && (c += e && e[3] || (na.cssNumber[h] ? "" : "px")), la.clearCloneStyle || "" !== c || 0 !== b.indexOf("background") || (i[b] = "inherit"), !(g && "set" in g && void 0 === (c = g.set(a, c, d))))) try {
i[b] = c
} catch (a) {}
}
},
css: function(a, b, c, d) {
var e, f, g, h = na.camelCase(b);
return b = na.cssProps[h] || (na.cssProps[h] = G(h) || h), g = na.cssHooks[b] || na.cssHooks[h], g && "get" in g && (f = g.get(a, !0, c)), void 0 === f && (f = pb(a, b, d)), "normal" === f && b in wb && (f = wb[b]), "" === c || c ? (e = parseFloat(f), c === !0 || isFinite(e) ? e || 0 : f) : f
}
}), na.each(["height", "width"], function(a, b) {
na.cssHooks[b] = {
get: function(a, c, d) {
return c ? tb.test(na.css(a, "display")) && 0 === a.offsetWidth ? mb(a, vb, function() {
return K(a, b, d)
}) : K(a, b, d) : void 0
},
set: function(a, c, d) {
var e = d && ob(a);
return I(a, c, d ? J(a, b, d, la.boxSizing && "border-box" === na.css(a, "boxSizing", !1, e), e) : 0)
}
}
}), la.opacity || (na.cssHooks.opacity = {
get: function(a, b) {
return sb.test((b && a.currentStyle ? a.currentStyle.filter : a.style.filter) || "") ? .01 * parseFloat(RegExp.$1) + "" : b ? "1" : ""
},
set: function(a, b) {
var c = a.style,
d = a.currentStyle,
e = na.isNumeric(b) ? "alpha(opacity=" + 100 * b + ")" : "",
f = d && d.filter || c.filter || "";
c.zoom = 1, (b >= 1 || "" === b) && "" === na.trim(f.replace(rb, "")) && c.removeAttribute && (c.removeAttribute("filter"), "" === b || d && !d.filter) || (c.filter = rb.test(f) ? f.replace(rb, e) : f + " " + e)
}
}), na.cssHooks.marginRight = F(la.reliableMarginRight, function(a, b) {
return b ? mb(a, {
display: "inline-block"
}, pb, [a, "marginRight"]) : void 0
}), na.cssHooks.marginLeft = F(la.reliableMarginLeft, function(a, b) {
return b ? (parseFloat(pb(a, "marginLeft")) || (na.contains(a.ownerDocument, a) ? a.getBoundingClientRect().left - mb(a, {
marginLeft: 0
}, function() {
return a.getBoundingClientRect().left
}) : 0)) + "px" : void 0
}), na.each({
margin: "",
padding: "",
border: "Width"
}, function(a, b) {
na.cssHooks[a + b] = {
expand: function(c) {
for (var d = 0, e = {}, f = "string" == typeof c ? c.split(" ") : [c]; 4 > d; d++) e[a + La[d] + b] = f[d] || f[d - 2] || f[0];
return e
}
}, kb.test(a) || (na.cssHooks[a + b].set = I)
}), na.fn.extend({
css: function(a, b) {
return Na(this, function(a, b, c) {
var d, e, f = {},
g = 0;
if (na.isArray(b)) {
for (d = ob(a), e = b.length; e > g; g++) f[b[g]] = na.css(a, b[g], !1, d);
return f
}
return void 0 !== c ? na.style(a, b, c) : na.css(a, b)
}, a, b, arguments.length > 1)
},
show: function() {
return H(this, !0)
},
hide: function() {
return H(this)
},
toggle: function(a) {
return "boolean" == typeof a ? a ? this.show() : this.hide() : this.each(function() {
Ma(this) ? na(this).show() : na(this).hide()
})
}
}), na.Tween = L, L.prototype = {
constructor: L,
init: function(a, b, c, d, e, f) {
this.elem = a, this.prop = c, this.easing = e || na.easing._default, this.options = b, this.start = this.now = this.cur(), this.end = d, this.unit = f || (na.cssNumber[c] ? "" : "px")
},
cur: function() {
var a = L.propHooks[this.prop];
return a && a.get ? a.get(this) : L.propHooks._default.get(this)
},
run: function(a) {
var b, c = L.propHooks[this.prop];
return this.options.duration ? this.pos = b = na.easing[this.easing](a, this.options.duration * a, 0, 1, this.options.duration) : this.pos = b = a, this.now = (this.end - this.start) * b + this.start, this.options.step && this.options.step.call(this.elem, this.now, this), c && c.set ? c.set(this) : L.propHooks._default.set(this), this
}
}, L.prototype.init.prototype = L.prototype, L.propHooks = {
_default: {
get: function(a) {
var b;
return 1 !== a.elem.nodeType || null != a.elem[a.prop] && null == a.elem.style[a.prop] ? a.elem[a.prop] : (b = na.css(a.elem, a.prop, ""), b && "auto" !== b ? b : 0)
},
set: function(a) {
na.fx.step[a.prop] ? na.fx.step[a.prop](a) : 1 !== a.elem.nodeType || null == a.elem.style[na.cssProps[a.prop]] && !na.cssHooks[a.prop] ? a.elem[a.prop] = a.now : na.style(a.elem, a.prop, a.now + a.unit)
}
}
}, L.propHooks.scrollTop = L.propHooks.scrollLeft = {
set: function(a) {
a.elem.nodeType && a.elem.parentNode && (a.elem[a.prop] = a.now)
}
}, na.easing = {
linear: function(a) {
return a
},
swing: function(a) {
return .5 - Math.cos(a * Math.PI) / 2
},
_default: "swing"
}, na.fx = L.prototype.init, na.fx.step = {};
var zb, Ab, Bb = /^(?:toggle|show|hide)$/,
Cb = /queueHooks$/;
na.Animation = na.extend(R, {
tweeners: {
"*": [function(a, b) {
var c = this.createTween(a, b);
return m(c.elem, a, Ka.exec(b), c), c
}]
},
tweener: function(a, b) {
na.isFunction(a) ? (b = a, a = ["*"]) : a = a.match(Da);
for (var c, d = 0, e = a.length; e > d; d++) c = a[d], R.tweeners[c] = R.tweeners[c] || [], R.tweeners[c].unshift(b)
},
prefilters: [P],
prefilter: function(a, b) {
b ? R.prefilters.unshift(a) : R.prefilters.push(a)
}
}), na.speed = function(a, b, c) {
var d = a && "object" == typeof a ? na.extend({}, a) : {
complete: c || !c && b || na.isFunction(a) && a,
duration: a,
easing: c && b || b && !na.isFunction(b) && b
};
return d.duration = na.fx.off ? 0 : "number" == typeof d.duration ? d.duration : d.duration in na.fx.speeds ? na.fx.speeds[d.duration] : na.fx.speeds._default, null != d.queue && d.queue !== !0 || (d.queue = "fx"), d.old = d.complete, d.complete = function() {
na.isFunction(d.old) && d.old.call(this), d.queue && na.dequeue(this, d.queue)
}, d
}, na.fn.extend({
fadeTo: function(a, b, c, d) {
return this.filter(Ma).css("opacity", 0).show().end().animate({
opacity: b
}, a, c, d)
},
animate: function(a, b, c, d) {
var e = na.isEmptyObject(a),
f = na.speed(b, c, d),
g = function() {
var b = R(this, na.extend({}, a), f);
(e || na._data(this, "finish")) && b.stop(!0)
};
return g.finish = g, e || f.queue === !1 ? this.each(g) : this.queue(f.queue, g)
},
stop: function(a, b, c) {
var d = function(a) {
var b = a.stop;
delete a.stop, b(c)
};
return "string" != typeof a && (c = b, b = a, a = void 0), b && a !== !1 && this.queue(a || "fx", []), this.each(function() {
var b = !0,
e = null != a && a + "queueHooks",
f = na.timers,
g = na._data(this);
if (e) g[e] && g[e].stop && d(g[e]);
else
for (e in g) g[e] && g[e].stop && Cb.test(e) && d(g[e]);
for (e = f.length; e--;) f[e].elem !== this || null != a && f[e].queue !== a || (f[e].anim.stop(c), b = !1, f.splice(e, 1));
!b && c || na.dequeue(this, a)
})
},
finish: function(a) {
return a !== !1 && (a = a || "fx"), this.each(function() {
var b, c = na._data(this),
d = c[a + "queue"],
e = c[a + "queueHooks"],
f = na.timers,
g = d ? d.length : 0;
for (c.finish = !0, na.queue(this, a, []), e && e.stop && e.stop.call(this, !0), b = f.length; b--;) f[b].elem === this && f[b].queue === a && (f[b].anim.stop(!0), f.splice(b, 1));
for (b = 0; g > b; b++) d[b] && d[b].finish && d[b].finish.call(this);
delete c.finish
})
}
}), na.each(["toggle", "show", "hide"], function(a, b) {
var c = na.fn[b];
na.fn[b] = function(a, d, e) {
return null == a || "boolean" == typeof a ? c.apply(this, arguments) : this.animate(N(b, !0), a, d, e)
}
}), na.each({
slideDown: N("show"),
slideUp: N("hide"),
slideToggle: N("toggle"),
fadeIn: {
opacity: "show"
},
fadeOut: {
opacity: "hide"
},
fadeToggle: {
opacity: "toggle"
}
}, function(a, b) {
na.fn[a] = function(a, c, d) {
return this.animate(b, a, c, d)
}
}), na.timers = [], na.fx.tick = function() {
var a, b = na.timers,
c = 0;
for (zb = na.now(); c < b.length; c++) a = b[c], a() || b[c] !== a || b.splice(c--, 1);
b.length || na.fx.stop(), zb = void 0
}, na.fx.timer = function(a) {
na.timers.push(a), a() ? na.fx.start() : na.timers.pop()
}, na.fx.interval = 13, na.fx.start = function() {
Ab || (Ab = a.setInterval(na.fx.tick, na.fx.interval))
}, na.fx.stop = function() {
a.clearInterval(Ab), Ab = null
}, na.fx.speeds = {
slow: 600,
fast: 200,
_default: 400
}, na.fn.delay = function(b, c) {
return b = na.fx ? na.fx.speeds[b] || b : b, c = c || "fx", this.queue(c, function(c, d) {
var e = a.setTimeout(c, b);
d.stop = function() {
a.clearTimeout(e)
}
})
},
function() {
var a, b = da.createElement("input"),
c = da.createElement("div"),
d = da.createElement("select"),
e = d.appendChild(da.createElement("option"));
c = da.createElement("div"), c.setAttribute("className", "t"), c.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>", a = c.getElementsByTagName("a")[0], b.setAttribute("type", "checkbox"), c.appendChild(b), a = c.getElementsByTagName("a")[0], a.style.cssText = "top:1px", la.getSetAttribute = "t" !== c.className, la.style = /top/.test(a.getAttribute("style")), la.hrefNormalized = "/a" === a.getAttribute("href"), la.checkOn = !!b.value, la.optSelected = e.selected, la.enctype = !!da.createElement("form").enctype, d.disabled = !0, la.optDisabled = !e.disabled, b = da.createElement("input"), b.setAttribute("value", ""), la.input = "" === b.getAttribute("value"), b.value = "t", b.setAttribute("type", "radio"), la.radioValue = "t" === b.value
}();
var Db = /\r/g,
Eb = /[\x20\t\r\n\f]+/g;
na.fn.extend({
val: function(a) {
var b, c, d, e = this[0];
return arguments.length ? (d = na.isFunction(a), this.each(function(c) {
var e;
1 === this.nodeType && (e = d ? a.call(this, c, na(this).val()) : a, null == e ? e = "" : "number" == typeof e ? e += "" : na.isArray(e) && (e = na.map(e, function(a) {
return null == a ? "" : a + ""
})), b = na.valHooks[this.type] || na.valHooks[this.nodeName.toLowerCase()], b && "set" in b && void 0 !== b.set(this, e, "value") || (this.value = e))
})) : e ? (b = na.valHooks[e.type] || na.valHooks[e.nodeName.toLowerCase()], b && "get" in b && void 0 !== (c = b.get(e, "value")) ? c : (c = e.value, "string" == typeof c ? c.replace(Db, "") : null == c ? "" : c)) : void 0
}
}), na.extend({
valHooks: {
option: {
get: function(a) {
var b = na.find.attr(a, "value");
return null != b ? b : na.trim(na.text(a)).replace(Eb, " ")
}
},
select: {
get: function(a) {
for (var b, c, d = a.options, e = a.selectedIndex, f = "select-one" === a.type || 0 > e, g = f ? null : [], h = f ? e + 1 : d.length, i = 0 > e ? h : f ? e : 0; h > i; i++)
if (c = d[i], (c.selected || i === e) && (la.optDisabled ? !c.disabled : null === c.getAttribute("disabled")) && (!c.parentNode.disabled || !na.nodeName(c.parentNode, "optgroup"))) {
if (b = na(c).val(), f) return b;
g.push(b)
}
return g
},
set: function(a, b) {
for (var c, d, e = a.options, f = na.makeArray(b), g = e.length; g--;)
if (d = e[g], na.inArray(na.valHooks.option.get(d), f) > -1) try {
d.selected = c = !0
} catch (a) {
d.scrollHeight
} else d.selected = !1;
return c || (a.selectedIndex = -1), e
}
}
}
}), na.each(["radio", "checkbox"], function() {
na.valHooks[this] = {
set: function(a, b) {
return na.isArray(b) ? a.checked = na.inArray(na(a).val(), b) > -1 : void 0
}
}, la.checkOn || (na.valHooks[this].get = function(a) {
return null === a.getAttribute("value") ? "on" : a.value
})
});
var Fb, Gb, Hb = na.expr.attrHandle,
Ib = /^(?:checked|selected)$/i,
Jb = la.getSetAttribute,
Kb = la.input;
na.fn.extend({
attr: function(a, b) {
return Na(this, na.attr, a, b, arguments.length > 1)
},
removeAttr: function(a) {
return this.each(function() {
na.removeAttr(this, a)
})
}
}), na.extend({
attr: function(a, b, c) {
var d, e, f = a.nodeType;
if (3 !== f && 8 !== f && 2 !== f) return "undefined" == typeof a.getAttribute ? na.prop(a, b, c) : (1 === f && na.isXMLDoc(a) || (b = b.toLowerCase(), e = na.attrHooks[b] || (na.expr.match.bool.test(b) ? Gb : Fb)), void 0 !== c ? null === c ? void na.removeAttr(a, b) : e && "set" in e && void 0 !== (d = e.set(a, c, b)) ? d : (a.setAttribute(b, c + ""), c) : e && "get" in e && null !== (d = e.get(a, b)) ? d : (d = na.find.attr(a, b), null == d ? void 0 : d))
},
attrHooks: {
type: {
set: function(a, b) {
if (!la.radioValue && "radio" === b && na.nodeName(a, "input")) {
var c = a.value;
return a.setAttribute("type", b), c && (a.value = c), b
}
}
}
},
removeAttr: function(a, b) {
var c, d, e = 0,
f = b && b.match(Da);
if (f && 1 === a.nodeType)
for (; c = f[e++];) d = na.propFix[c] || c, na.expr.match.bool.test(c) ? Kb && Jb || !Ib.test(c) ? a[d] = !1 : a[na.camelCase("default-" + c)] = a[d] = !1 : na.attr(a, c, ""), a.removeAttribute(Jb ? c : d)
}
}), Gb = {
set: function(a, b, c) {
return b === !1 ? na.removeAttr(a, c) : Kb && Jb || !Ib.test(c) ? a.setAttribute(!Jb && na.propFix[c] || c, c) : a[na.camelCase("default-" + c)] = a[c] = !0, c
}
}, na.each(na.expr.match.bool.source.match(/\w+/g), function(a, b) {
var c = Hb[b] || na.find.attr;
Kb && Jb || !Ib.test(b) ? Hb[b] = function(a, b, d) {
var e, f;
return d || (f = Hb[b], Hb[b] = e, e = null != c(a, b, d) ? b.toLowerCase() : null, Hb[b] = f), e
} : Hb[b] = function(a, b, c) {
return c ? void 0 : a[na.camelCase("default-" + b)] ? b.toLowerCase() : null
}
}), Kb && Jb || (na.attrHooks.value = {
set: function(a, b, c) {
return na.nodeName(a, "input") ? void(a.defaultValue = b) : Fb && Fb.set(a, b, c)
}
}), Jb || (Fb = {
set: function(a, b, c) {
var d = a.getAttributeNode(c);
return d || a.setAttributeNode(d = a.ownerDocument.createAttribute(c)), d.value = b += "", "value" === c || b === a.getAttribute(c) ? b : void 0
}
}, Hb.id = Hb.name = Hb.coords = function(a, b, c) {
var d;
return c ? void 0 : (d = a.getAttributeNode(b)) && "" !== d.value ? d.value : null
}, na.valHooks.button = {
get: function(a, b) {
var c = a.getAttributeNode(b);
return c && c.specified ? c.value : void 0
},
set: Fb.set
}, na.attrHooks.contenteditable = {
set: function(a, b, c) {
Fb.set(a, "" !== b && b, c)
}
}, na.each(["width", "height"], function(a, b) {
na.attrHooks[b] = {
set: function(a, c) {
return "" === c ? (a.setAttribute(b, "auto"), c) : void 0
}
}
})), la.style || (na.attrHooks.style = {
get: function(a) {
return a.style.cssText || void 0
},
set: function(a, b) {
return a.style.cssText = b + ""
}
});
var Lb = /^(?:input|select|textarea|button|object)$/i,
Mb = /^(?:a|area)$/i;
na.fn.extend({
prop: function(a, b) {
return Na(this, na.prop, a, b, arguments.length > 1)
},
removeProp: function(a) {
return a = na.propFix[a] || a, this.each(function() {
try {
this[a] = void 0, delete this[a]
} catch (a) {}
})
}
}), na.extend({
prop: function(a, b, c) {
var d, e, f = a.nodeType;
if (3 !== f && 8 !== f && 2 !== f) return 1 === f && na.isXMLDoc(a) || (b = na.propFix[b] || b, e = na.propHooks[b]), void 0 !== c ? e && "set" in e && void 0 !== (d = e.set(a, c, b)) ? d : a[b] = c : e && "get" in e && null !== (d = e.get(a, b)) ? d : a[b]
},
propHooks: {
tabIndex: {
get: function(a) {
var b = na.find.attr(a, "tabindex");
return b ? parseInt(b, 10) : Lb.test(a.nodeName) || Mb.test(a.nodeName) && a.href ? 0 : -1
}
}
},
propFix: {
for: "htmlFor",
class: "className"
}
}), la.hrefNormalized || na.each(["href", "src"], function(a, b) {
na.propHooks[b] = {
get: function(a) {
return a.getAttribute(b, 4)
}
}
}), la.optSelected || (na.propHooks.selected = {
get: function(a) {
var b = a.parentNode;
return b && (b.selectedIndex, b.parentNode && b.parentNode.selectedIndex), null
},
set: function(a) {
var b = a.parentNode;
b && (b.selectedIndex, b.parentNode && b.parentNode.selectedIndex)
}
}), na.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], function() {
na.propFix[this.toLowerCase()] = this
}), la.enctype || (na.propFix.enctype = "encoding");
var Nb = /[\t\r\n\f]/g;
na.fn.extend({
addClass: function(a) {
var b, c, d, e, f, g, h, i = 0;
if (na.isFunction(a)) return this.each(function(b) {
na(this).addClass(a.call(this, b, S(this)))
});
if ("string" == typeof a && a)
for (b = a.match(Da) || []; c = this[i++];)
if (e = S(c), d = 1 === c.nodeType && (" " + e + " ").replace(Nb, " ")) {
for (g = 0; f = b[g++];) d.indexOf(" " + f + " ") < 0 && (d += f + " ");
h = na.trim(d), e !== h && na.attr(c, "class", h)
}
return this
},
removeClass: function(a) {
var b, c, d, e, f, g, h, i = 0;
if (na.isFunction(a)) return this.each(function(b) {
na(this).removeClass(a.call(this, b, S(this)))
});
if (!arguments.length) return this.attr("class", "");
if ("string" == typeof a && a)
for (b = a.match(Da) || []; c = this[i++];)
if (e = S(c), d = 1 === c.nodeType && (" " + e + " ").replace(Nb, " ")) {
for (g = 0; f = b[g++];)
for (; d.indexOf(" " + f + " ") > -1;) d = d.replace(" " + f + " ", " ");
h = na.trim(d), e !== h && na.attr(c, "class", h)
}
return this
},
toggleClass: function(a, b) {
var c = typeof a;
return "boolean" == typeof b && "string" === c ? b ? this.addClass(a) : this.removeClass(a) : na.isFunction(a) ? this.each(function(c) {
na(this).toggleClass(a.call(this, c, S(this), b), b)
}) : this.each(function() {
var b, d, e, f;
if ("string" === c)
for (d = 0, e = na(this), f = a.match(Da) || []; b = f[d++];) e.hasClass(b) ? e.removeClass(b) : e.addClass(b);
else void 0 !== a && "boolean" !== c || (b = S(this), b && na._data(this, "__className__", b), na.attr(this, "class", b || a === !1 ? "" : na._data(this, "__className__") || ""))
})
},
hasClass: function(a) {
var b, c, d = 0;
for (b = " " + a + " "; c = this[d++];)
if (1 === c.nodeType && (" " + S(c) + " ").replace(Nb, " ").indexOf(b) > -1) return !0;
return !1
}
}), na.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "), function(a, b) {
na.fn[b] = function(a, c) {
return arguments.length > 0 ? this.on(b, null, a, c) : this.trigger(b)
}
}), na.fn.extend({
hover: function(a, b) {
return this.mouseenter(a).mouseleave(b || a)
}
});
var Ob = a.location,
Pb = na.now(),
Qb = /\?/,
Rb = /(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;
na.parseJSON = function(b) {
if (a.JSON && a.JSON.parse) return a.JSON.parse(b + "");
var c, d = null,
e = na.trim(b + "");
return e && !na.trim(e.replace(Rb, function(a, b, e, f) {
return c && b && (d = 0), 0 === d ? a : (c = e || b, d += !f - !e, "")
})) ? Function("return " + e)() : na.error("Invalid JSON: " + b)
}, na.parseXML = function(b) {
var c, d;
if (!b || "string" != typeof b) return null;
try {
a.DOMParser ? (d = new a.DOMParser, c = d.parseFromString(b, "text/xml")) : (c = new a.ActiveXObject("Microsoft.XMLDOM"), c.async = "false", c.loadXML(b))
} catch (a) {
c = void 0
}
return c && c.documentElement && !c.getElementsByTagName("parsererror").length || na.error("Invalid XML: " + b), c
};
var Sb = /#.*$/,
Tb = /([?&])_=[^&]*/,
Ub = /^(.*?):[ \t]*([^\r\n]*)\r?$/gm,
Vb = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,
Wb = /^(?:GET|HEAD)$/,
Xb = /^\/\//,
Yb = /^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,
Zb = {},
$b = {},
_b = "*/".concat("*"),
ac = Ob.href,
bc = Yb.exec(ac.toLowerCase()) || [];
na.extend({
active: 0,
lastModified: {},
etag: {},
ajaxSettings: {
url: ac,
type: "GET",
isLocal: Vb.test(bc[1]),
global: !0,
processData: !0,
async: !0,
contentType: "application/x-www-form-urlencoded; charset=UTF-8",
accepts: {
"*": _b,
text: "text/plain",
html: "text/html",
xml: "application/xml, text/xml",
json: "application/json, text/javascript"
},
contents: {
xml: /\bxml\b/,
html: /\bhtml/,
json: /\bjson\b/
},
responseFields: {
xml: "responseXML",
text: "responseText",
json: "responseJSON"
},
converters: {
"* text": String,
"text html": !0,
"text json": na.parseJSON,
"text xml": na.parseXML
},
flatOptions: {
url: !0,
context: !0
}
},
ajaxSetup: function(a, b) {
return b ? V(V(a, na.ajaxSettings), b) : V(na.ajaxSettings, a)
},
ajaxPrefilter: T(Zb),
ajaxTransport: T($b),
ajax: function(b, c) {
function d(b, c, d, e) {
var f, l, s, t, v, x = c;
2 !== u && (u = 2, i && a.clearTimeout(i), k = void 0, h = e || "", w.readyState = b > 0 ? 4 : 0, f = b >= 200 && 300 > b || 304 === b, d && (t = W(m, w, d)), t = X(m, t, w, f), f ? (m.ifModified && (v = w.getResponseHeader("Last-Modified"), v && (na.lastModified[g] = v), v = w.getResponseHeader("etag"), v && (na.etag[g] = v)), 204 === b || "HEAD" === m.type ? x = "nocontent" : 304 === b ? x = "notmodified" : (x = t.state, l = t.data, s = t.error, f = !s)) : (s = x, !b && x || (x = "error", 0 > b && (b = 0))), w.status = b, w.statusText = (c || x) + "", f ? p.resolveWith(n, [l, x, w]) : p.rejectWith(n, [w, x, s]), w.statusCode(r), r = void 0, j && o.trigger(f ? "ajaxSuccess" : "ajaxError", [w, m, f ? l : s]), q.fireWith(n, [w, x]), j && (o.trigger("ajaxComplete", [w, m]), --na.active || na.event.trigger("ajaxStop")))
}
"object" == typeof b && (c = b, b = void 0), c = c || {};
var e, f, g, h, i, j, k, l, m = na.ajaxSetup({}, c),
n = m.context || m,
o = m.context && (n.nodeType || n.jquery) ? na(n) : na.event,
p = na.Deferred(),
q = na.Callbacks("once memory"),
r = m.statusCode || {},
s = {},
t = {},
u = 0,
v = "canceled",
w = {
readyState: 0,
getResponseHeader: function(a) {
var b;
if (2 === u) {
if (!l)
for (l = {}; b = Ub.exec(h);) l[b[1].toLowerCase()] = b[2];
b = l[a.toLowerCase()]
}
return null == b ? null : b
},
getAllResponseHeaders: function() {
return 2 === u ? h : null
},
setRequestHeader: function(a, b) {
var c = a.toLowerCase();
return u || (a = t[c] = t[c] || a, s[a] = b), this
},
overrideMimeType: function(a) {
return u || (m.mimeType = a), this
},
statusCode: function(a) {
var b;
if (a)
if (2 > u)
for (b in a) r[b] = [r[b], a[b]];
else w.always(a[w.status]);
return this
},
abort: function(a) {
var b = a || v;
return k && k.abort(b), d(0, b), this
}
};
if (p.promise(w).complete = q.add, w.success = w.done, w.error = w.fail, m.url = ((b || m.url || ac) + "").replace(Sb, "").replace(Xb, bc[1] + "//"), m.type = c.method || c.type || m.method || m.type, m.dataTypes = na.trim(m.dataType || "*").toLowerCase().match(Da) || [""], null == m.crossDomain && (e = Yb.exec(m.url.toLowerCase()), m.crossDomain = !(!e || e[1] === bc[1] && e[2] === bc[2] && (e[3] || ("http:" === e[1] ? "80" : "443")) === (bc[3] || ("http:" === bc[1] ? "80" : "443")))), m.data && m.processData && "string" != typeof m.data && (m.data = na.param(m.data, m.traditional)), U(Zb, m, c, w), 2 === u) return w;
j = na.event && m.global, j && 0 === na.active++ && na.event.trigger("ajaxStart"), m.type = m.type.toUpperCase(), m.hasContent = !Wb.test(m.type), g = m.url, m.hasContent || (m.data && (g = m.url += (Qb.test(g) ? "&" : "?") + m.data, delete m.data), m.cache === !1 && (m.url = Tb.test(g) ? g.replace(Tb, "$1_=" + Pb++) : g + (Qb.test(g) ? "&" : "?") + "_=" + Pb++)), m.ifModified && (na.lastModified[g] && w.setRequestHeader("If-Modified-Since", na.lastModified[g]), na.etag[g] && w.setRequestHeader("If-None-Match", na.etag[g])), (m.data && m.hasContent && m.contentType !== !1 || c.contentType) && w.setRequestHeader("Content-Type", m.contentType), w.setRequestHeader("Accept", m.dataTypes[0] && m.accepts[m.dataTypes[0]] ? m.accepts[m.dataTypes[0]] + ("*" !== m.dataTypes[0] ? ", " + _b + "; q=0.01" : "") : m.accepts["*"]);
for (f in m.headers) w.setRequestHeader(f, m.headers[f]);
if (m.beforeSend && (m.beforeSend.call(n, w, m) === !1 || 2 === u)) return w.abort();
v = "abort";
for (f in {
success: 1,
error: 1,
complete: 1
}) w[f](m[f]);
if (k = U($b, m, c, w)) {
if (w.readyState = 1, j && o.trigger("ajaxSend", [w, m]), 2 === u) return w;
m.async && m.timeout > 0 && (i = a.setTimeout(function() {
w.abort("timeout")
}, m.timeout));
try {
u = 1, k.send(s, d)
} catch (a) {
if (!(2 > u)) throw a;
d(-1, a)
}
} else d(-1, "No Transport");
return w
},
getJSON: function(a, b, c) {
return na.get(a, b, c, "json")
},
getScript: function(a, b) {
return na.get(a, void 0, b, "script")
}
}), na.each(["get", "post"], function(a, b) {
na[b] = function(a, c, d, e) {
return na.isFunction(c) && (e = e || d, d = c, c = void 0), na.ajax(na.extend({
url: a,
type: b,
dataType: e,
data: c,
success: d
}, na.isPlainObject(a) && a))
}
}), na._evalUrl = function(a) {
return na.ajax({
url: a,
type: "GET",
dataType: "script",
cache: !0,
async: !1,
global: !1,
throws: !0
})
}, na.fn.extend({
wrapAll: function(a) {
if (na.isFunction(a)) return this.each(function(b) {
na(this).wrapAll(a.call(this, b))
});
if (this[0]) {
var b = na(a, this[0].ownerDocument).eq(0).clone(!0);
this[0].parentNode && b.insertBefore(this[0]), b.map(function() {
for (var a = this; a.firstChild && 1 === a.firstChild.nodeType;) a = a.firstChild;
return a
}).append(this)
}
return this
},
wrapInner: function(a) {
return na.isFunction(a) ? this.each(function(b) {
na(this).wrapInner(a.call(this, b))
}) : this.each(function() {
var b = na(this),
c = b.contents();
c.length ? c.wrapAll(a) : b.append(a)
})
},
wrap: function(a) {
var b = na.isFunction(a);
return this.each(function(c) {
na(this).wrapAll(b ? a.call(this, c) : a)
})
},
unwrap: function() {
return this.parent().each(function() {
na.nodeName(this, "body") || na(this).replaceWith(this.childNodes)
}).end()
}
}), na.expr.filters.hidden = function(a) {
return la.reliableHiddenOffsets() ? a.offsetWidth <= 0 && a.offsetHeight <= 0 && !a.getClientRects().length : Z(a)
}, na.expr.filters.visible = function(a) {
return !na.expr.filters.hidden(a)
};
var cc = /%20/g,
dc = /\[\]$/,
ec = /\r?\n/g,
fc = /^(?:submit|button|image|reset|file)$/i,
gc = /^(?:input|select|textarea|keygen)/i;
na.param = function(a, b) {
var c, d = [],
e = function(a, b) {
b = na.isFunction(b) ? b() : null == b ? "" : b, d[d.length] = encodeURIComponent(a) + "=" + encodeURIComponent(b)
};
if (void 0 === b && (b = na.ajaxSettings && na.ajaxSettings.traditional), na.isArray(a) || a.jquery && !na.isPlainObject(a)) na.each(a, function() {
e(this.name, this.value)
});
else
for (c in a) $(c, a[c], b, e);
return d.join("&").replace(cc, "+")
}, na.fn.extend({
serialize: function() {
return na.param(this.serializeArray())
},
serializeArray: function() {
return this.map(function() {
var a = na.prop(this, "elements");
return a ? na.makeArray(a) : this
}).filter(function() {
var a = this.type;
return this.name && !na(this).is(":disabled") && gc.test(this.nodeName) && !fc.test(a) && (this.checked || !Oa.test(a))
}).map(function(a, b) {
var c = na(this).val();
return null == c ? null : na.isArray(c) ? na.map(c, function(a) {
return {
name: b.name,
value: a.replace(ec, "\r\n")
}
}) : {
name: b.name,
value: c.replace(ec, "\r\n")
}
}).get()
}
}), na.ajaxSettings.xhr = void 0 !== a.ActiveXObject ? function() {
return this.isLocal ? aa() : da.documentMode > 8 ? _() : /^(get|post|head|put|delete|options)$/i.test(this.type) && _() || aa()
} : _;
var hc = 0,
ic = {},
jc = na.ajaxSettings.xhr();
a.attachEvent && a.attachEvent("onunload", function() {
for (var a in ic) ic[a](void 0, !0)
}), la.cors = !!jc && "withCredentials" in jc, jc = la.ajax = !!jc, jc && na.ajaxTransport(function(b) {
if (!b.crossDomain || la.cors) {
var c;
return {
send: function(d, e) {
var f, g = b.xhr(),
h = ++hc;
if (g.open(b.type, b.url, b.async, b.username, b.password), b.xhrFields)
for (f in b.xhrFields) g[f] = b.xhrFields[f];
b.mimeType && g.overrideMimeType && g.overrideMimeType(b.mimeType), b.crossDomain || d["X-Requested-With"] || (d["X-Requested-With"] = "XMLHttpRequest");
for (f in d) void 0 !== d[f] && g.setRequestHeader(f, d[f] + "");
g.send(b.hasContent && b.data || null), c = function(a, d) {
var f, i, j;
if (c && (d || 4 === g.readyState))
if (delete ic[h], c = void 0, g.onreadystatechange = na.noop, d) 4 !== g.readyState && g.abort();
else {
j = {}, f = g.status, "string" == typeof g.responseText && (j.text = g.responseText);
try {
i = g.statusText
} catch (a) {
i = ""
}
f || !b.isLocal || b.crossDomain ? 1223 === f && (f = 204) : f = j.text ? 200 : 404
}
j && e(f, i, j, g.getAllResponseHeaders())
}, b.async ? 4 === g.readyState ? a.setTimeout(c) : g.onreadystatechange = ic[h] = c : c()
},
abort: function() {
c && c(void 0, !0)
}
}
}
}), na.ajaxSetup({
accepts: {
script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
},
contents: {
script: /\b(?:java|ecma)script\b/
},
converters: {
"text script": function(a) {
return na.globalEval(a), a
}
}
}), na.ajaxPrefilter("script", function(a) {
void 0 === a.cache && (a.cache = !1), a.crossDomain && (a.type = "GET", a.global = !1)
}), na.ajaxTransport("script", function(a) {
if (a.crossDomain) {
var b, c = da.head || na("head")[0] || da.documentElement;
return {
send: function(d, e) {
b = da.createElement("script"), b.async = !0, a.scriptCharset && (b.charset = a.scriptCharset), b.src = a.url, b.onload = b.onreadystatechange = function(a, c) {
(c || !b.readyState || /loaded|complete/.test(b.readyState)) && (b.onload = b.onreadystatechange = null, b.parentNode && b.parentNode.removeChild(b), b = null, c || e(200, "success"))
}, c.insertBefore(b, c.firstChild)
},
abort: function() {
b && b.onload(void 0, !0)
}
}
}
});
var kc = [],
lc = /(=)\?(?=&|$)|\?\?/;
na.ajaxSetup({
jsonp: "callback",
jsonpCallback: function() {
var a = kc.pop() || na.expando + "_" + Pb++;
return this[a] = !0, a
}
}), na.ajaxPrefilter("json jsonp", function(b, c, d) {
var e, f, g, h = b.jsonp !== !1 && (lc.test(b.url) ? "url" : "string" == typeof b.data && 0 === (b.contentType || "").indexOf("application/x-www-form-urlencoded") && lc.test(b.data) && "data");
return h || "jsonp" === b.dataTypes[0] ? (e = b.jsonpCallback = na.isFunction(b.jsonpCallback) ? b.jsonpCallback() : b.jsonpCallback, h ? b[h] = b[h].replace(lc, "$1" + e) : b.jsonp !== !1 && (b.url += (Qb.test(b.url) ? "&" : "?") + b.jsonp + "=" + e), b.converters["script json"] = function() {
return g || na.error(e + " was not called"), g[0]
}, b.dataTypes[0] = "json", f = a[e], a[e] = function() {
g = arguments
}, d.always(function() {
void 0 === f ? na(a).removeProp(e) : a[e] = f, b[e] && (b.jsonpCallback = c.jsonpCallback, kc.push(e)), g && na.isFunction(f) && f(g[0]), g = f = void 0
}), "script") : void 0
}), na.parseHTML = function(a, b, c) {
if (!a || "string" != typeof a) return null;
"boolean" == typeof b && (c = b, b = !1), b = b || da;
var d = wa.exec(a),
e = !c && [];
return d ? [b.createElement(d[1])] : (d = r([a], b, e), e && e.length && na(e).remove(), na.merge([], d.childNodes))
};
var mc = na.fn.load;
na.fn.load = function(a, b, c) {
if ("string" != typeof a && mc) return mc.apply(this, arguments);
var d, e, f, g = this,
h = a.indexOf(" ");
return h > -1 && (d = na.trim(a.slice(h, a.length)), a = a.slice(0, h)), na.isFunction(b) ? (c = b, b = void 0) : b && "object" == typeof b && (e = "POST"), g.length > 0 && na.ajax({
url: a,
type: e || "GET",
dataType: "html",
data: b
}).done(function(a) {
f = arguments, g.html(d ? na("<div>").append(na.parseHTML(a)).find(d) : a)
}).always(c && function(a, b) {
g.each(function() {
c.apply(this, f || [a.responseText, b, a])
})
}), this
}, na.each(["ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], function(a, b) {
na.fn[b] = function(a) {
return this.on(b, a)
}
}), na.expr.filters.animated = function(a) {
return na.grep(na.timers, function(b) {
return a === b.elem
}).length
}, na.offset = {
setOffset: function(a, b, c) {
var d, e, f, g, h, i, j, k = na.css(a, "position"),
l = na(a),
m = {};
"static" === k && (a.style.position = "relative"), h = l.offset(), f = na.css(a, "top"), i = na.css(a, "left"), j = ("absolute" === k || "fixed" === k) && na.inArray("auto", [f, i]) > -1, j ? (d = l.position(), g = d.top, e = d.left) : (g = parseFloat(f) || 0, e = parseFloat(i) || 0), na.isFunction(b) && (b = b.call(a, c, na.extend({}, h))), null != b.top && (m.top = b.top - h.top + g), null != b.left && (m.left = b.left - h.left + e), "using" in b ? b.using.call(a, m) : l.css(m)
}
}, na.fn.extend({
offset: function(a) {
if (arguments.length) return void 0 === a ? this : this.each(function(b) {
na.offset.setOffset(this, a, b)
});
var b, c, d = {
top: 0,
left: 0
},
e = this[0],
f = e && e.ownerDocument;
return f ? (b = f.documentElement, na.contains(b, e) ? ("undefined" != typeof e.getBoundingClientRect && (d = e.getBoundingClientRect()), c = ba(f), {
top: d.top + (c.pageYOffset || b.scrollTop) - (b.clientTop || 0),
left: d.left + (c.pageXOffset || b.scrollLeft) - (b.clientLeft || 0)
}) : d) : void 0
},
position: function() {
if (this[0]) {
var a, b, c = {
top: 0,
left: 0
},
d = this[0];
return "fixed" === na.css(d, "position") ? b = d.getBoundingClientRect() : (a = this.offsetParent(), b = this.offset(), na.nodeName(a[0], "html") || (c = a.offset()), c.top += na.css(a[0], "borderTopWidth", !0), c.left += na.css(a[0], "borderLeftWidth", !0)), {
top: b.top - c.top - na.css(d, "marginTop", !0),
left: b.left - c.left - na.css(d, "marginLeft", !0)
}
}
},
offsetParent: function() {
return this.map(function() {
for (var a = this.offsetParent; a && !na.nodeName(a, "html") && "static" === na.css(a, "position");) a = a.offsetParent;
return a || nb
})
}
}), na.each({
scrollLeft: "pageXOffset",
scrollTop: "pageYOffset"
}, function(a, b) {
var c = /Y/.test(b);
na.fn[a] = function(d) {
return Na(this, function(a, d, e) {
var f = ba(a);
return void 0 === e ? f ? b in f ? f[b] : f.document.documentElement[d] : a[d] : void(f ? f.scrollTo(c ? na(f).scrollLeft() : e, c ? e : na(f).scrollTop()) : a[d] = e)
}, a, d, arguments.length, null)
}
}), na.each(["top", "left"], function(a, b) {
na.cssHooks[b] = F(la.pixelPosition, function(a, c) {
return c ? (c = pb(a, b), lb.test(c) ? na(a).position()[b] + "px" : c) : void 0
})
}), na.each({
Height: "height",
Width: "width"
}, function(a, b) {
na.each({
padding: "inner" + a,
content: b,
"": "outer" + a
}, function(c, d) {
na.fn[d] = function(d, e) {
var f = arguments.length && (c || "boolean" != typeof d),
g = c || (d === !0 || e === !0 ? "margin" : "border");
return Na(this, function(b, c, d) {
var e;
return na.isWindow(b) ? b.document.documentElement["client" + a] : 9 === b.nodeType ? (e = b.documentElement, Math.max(b.body["scroll" + a], e["scroll" + a], b.body["offset" + a], e["offset" + a], e["client" + a])) : void 0 === d ? na.css(b, c, g) : na.style(b, c, d, g)
}, b, f ? d : void 0, f, null)
}
})
}), na.fn.extend({
bind: function(a, b, c) {
return this.on(a, null, b, c)
},
unbind: function(a, b) {
return this.off(a, null, b)
},
delegate: function(a, b, c, d) {
return this.on(b, a, c, d)
},
undelegate: function(a, b, c) {
return 1 === arguments.length ? this.off(a, "**") : this.off(b, a || "**", c)
}
}), na.fn.size = function() {
return this.length
}, na.fn.andSelf = na.fn.addBack, "function" == typeof define && define.amd && define("jquery", [], function() {
return na
});
var nc = a.jQuery,
oc = a.$;
return na.noConflict = function(b) {
return a.$ === na && (a.$ = oc), b && a.jQuery === na && (a.jQuery = nc), na
}, b || (a.jQuery = a.$ = na), na
}), function(a) {
"use strict";
function b(a) {
return function() {
var b, c = arguments[0];
for (b = "[" + (a ? a + ":" : "") + c + "] http://errors.angularjs.org/1.5.7/" + (a ? a + "/" : "") + c, c = 1; c < arguments.length; c++) {
b = b + (1 == c ? "?" : "&") + "p" + (c - 1) + "=";
var d, e = encodeURIComponent;
d = arguments[c], d = "function" == typeof d ? d.toString().replace(/ \{[\s\S]*$/, "") : "undefined" == typeof d ? "undefined" : "string" != typeof d ? JSON.stringify(d) : d, b += e(d)
}
return Error(b)
}
}
function c(a) {
if (null == a || z(a)) return !1;
if (fd(a) || u(a) || Sc && a instanceof Sc) return !0;
var b = "length" in Object(a) && a.length;
return v(b) && (0 <= b && (b - 1 in a || a instanceof Array) || "function" == typeof a.item)
}
function d(a, b, e) {
var f, g;
if (a)
if (x(a))
for (f in a) "prototype" == f || "length" == f || "name" == f || a.hasOwnProperty && !a.hasOwnProperty(f) || b.call(e, a[f], f, a);
else if (fd(a) || c(a)) {
var h = "object" != typeof a;
for (f = 0, g = a.length; f < g; f++)(h || f in a) && b.call(e, a[f], f, a)
} else if (a.forEach && a.forEach !== d) a.forEach(b, e, a);
else if (t(a))
for (f in a) b.call(e, a[f], f, a);
else if ("function" == typeof a.hasOwnProperty)
for (f in a) a.hasOwnProperty(f) && b.call(e, a[f], f, a);
else
for (f in a) Wc.call(a, f) && b.call(e, a[f], f, a);
return a
}
function e(a, b, c) {
for (var d = Object.keys(a).sort(), e = 0; e < d.length; e++) b.call(c, a[d[e]], d[e]);
return d
}
function f(a) {
return function(b, c) {
a(c, b)
}
}
function g() {
return ++ed
}
function h(a, b, c) {
for (var d = a.$$hashKey, e = 0, f = b.length; e < f; ++e) {
var g = b[e];
if (s(g) || x(g))
for (var i = Object.keys(g), j = 0, k = i.length; j < k; j++) {
var l = i[j],
m = g[l];
c && s(m) ? w(m) ? a[l] = new Date(m.valueOf()) : y(m) ? a[l] = new RegExp(m) : m.nodeName ? a[l] = m.cloneNode(!0) : D(m) ? a[l] = m.clone() : (s(a[l]) || (a[l] = fd(m) ? [] : {}), h(a[l], [m], !0)) : a[l] = m
}
}
return d ? a.$$hashKey = d : delete a.$$hashKey, a
}
function i(a) {
return h(a, Zc.call(arguments, 1), !1)
}
function j(a) {
return h(a, Zc.call(arguments, 1), !0)
}
function k(a) {
return parseInt(a, 10)
}
function l(a, b) {
return i(Object.create(a), b)
}
function m() {}
function n(a) {
return a
}
function o(a) {
return function() {
return a
}
}
function p(a) {
return x(a.toString) && a.toString !== ad
}
function q(a) {
return "undefined" == typeof a
}
function r(a) {
return "undefined" != typeof a
}
function s(a) {
return null !== a && "object" == typeof a
}
function t(a) {
return null !== a && "object" == typeof a && !bd(a)
}
function u(a) {
return "string" == typeof a
}
function v(a) {
return "number" == typeof a
}
function w(a) {
return "[object Date]" === ad.call(a)
}
function x(a) {
return "function" == typeof a
}
function y(a) {
return "[object RegExp]" === ad.call(a)
}
function z(a) {
return a && a.window === a
}
function A(a) {
return a && a.$evalAsync && a.$watch
}
function B(a) {
return "boolean" == typeof a
}
function C(a) {
return a && v(a.length) && gd.test(ad.call(a))
}
function D(a) {
return !(!a || !(a.nodeName || a.prop && a.attr && a.find))
}
function E(a) {
var b = {};
a = a.split(",");
var c;
for (c = 0; c < a.length; c++) b[a[c]] = !0;
return b
}
function F(a) {
return Xc(a.nodeName || a[0] && a[0].nodeName)
}
function G(a, b) {
var c = a.indexOf(b);
return 0 <= c && a.splice(c, 1), c
}
function H(a, b) {
function c(a, b) {
var c, d = b.$$hashKey;
if (fd(a)) {
c = 0;
for (var f = a.length; c < f; c++) b.push(e(a[c]))
} else if (t(a))
for (c in a) b[c] = e(a[c]);
else if (a && "function" == typeof a.hasOwnProperty)
for (c in a) a.hasOwnProperty(c) && (b[c] = e(a[c]));
else
for (c in a) Wc.call(a, c) && (b[c] = e(a[c]));
return d ? b.$$hashKey = d : delete b.$$hashKey, b
}
function e(a) {
if (!s(a)) return a;
var b = g.indexOf(a);
if (-1 !== b) return h[b];
if (z(a) || A(a)) throw cd("cpws");
var b = !1,
d = f(a);
return void 0 === d && (d = fd(a) ? [] : Object.create(bd(a)), b = !0), g.push(a), h.push(d), b ? c(a, d) : d
}
function f(a) {
switch (ad.call(a)) {
case "[object Int8Array]":
case "[object Int16Array]":
case "[object Int32Array]":
case "[object Float32Array]":
case "[object Float64Array]":
case "[object Uint8Array]":
case "[object Uint8ClampedArray]":
case "[object Uint16Array]":
case "[object Uint32Array]":
return new a.constructor(e(a.buffer));
case "[object ArrayBuffer]":
if (!a.slice) {
var b = new ArrayBuffer(a.byteLength);
return new Uint8Array(b).set(new Uint8Array(a)), b
}
return a.slice(0);
case "[object Boolean]":
case "[object Number]":
case "[object String]":
case "[object Date]":
return new a.constructor(a.valueOf());
case "[object RegExp]":
return b = new RegExp(a.source, a.toString().match(/[^\/]*$/)[0]), b.lastIndex = a.lastIndex, b;
case "[object Blob]":
return new a.constructor([a], {
type: a.type
})
}
if (x(a.cloneNode)) return a.cloneNode(!0)
}
var g = [],
h = [];
if (b) {
if (C(b) || "[object ArrayBuffer]" === ad.call(b)) throw cd("cpta");
if (a === b) throw cd("cpi");
return fd(b) ? b.length = 0 : d(b, function(a, c) {
"$$hashKey" !== c && delete b[c]
}), g.push(a), h.push(b), c(a, b)
}
return e(a)
}
function I(a, b) {
if (a === b) return !0;
if (null === a || null === b) return !1;
if (a !== a && b !== b) return !0;
var c, d = typeof a;
if (d == typeof b && "object" == d) {
if (!fd(a)) {
if (w(a)) return !!w(b) && I(a.getTime(), b.getTime());
if (y(a)) return !!y(b) && a.toString() == b.toString();
if (A(a) || A(b) || z(a) || z(b) || fd(b) || w(b) || y(b)) return !1;
d = ga();
for (c in a)
if ("$" !== c.charAt(0) && !x(a[c])) {
if (!I(a[c], b[c])) return !1;
d[c] = !0
}
for (c in b)
if (!(c in d) && "$" !== c.charAt(0) && r(b[c]) && !x(b[c])) return !1;
return !0
}
if (!fd(b)) return !1;
if ((d = a.length) == b.length) {
for (c = 0; c < d; c++)
if (!I(a[c], b[c])) return !1;
return !0
}
}
return !1
}
function J(a, b, c) {
return a.concat(Zc.call(b, c))
}
function K(a, b) {
var c = 2 < arguments.length ? Zc.call(arguments, 2) : [];
return !x(b) || b instanceof RegExp ? b : c.length ? function() {
return arguments.length ? b.apply(a, J(c, arguments, 0)) : b.apply(a, c)
} : function() {
return arguments.length ? b.apply(a, arguments) : b.call(a)
}
}
function L(b, c) {
var d = c;
return "string" == typeof b && "$" === b.charAt(0) && "$" === b.charAt(1) ? d = void 0 : z(c) ? d = "$WINDOW" : c && a.document === c ? d = "$DOCUMENT" : A(c) && (d = "$SCOPE"), d
}
function M(a, b) {
if (!q(a)) return v(b) || (b = b ? 2 : null), JSON.stringify(a, L, b)
}
function N(a) {
return u(a) ? JSON.parse(a) : a
}
function O(a, b) {
a = a.replace(ld, "");
var c = Date.parse("Jan 01, 1970 00:00:00 " + a) / 6e4;
return isNaN(c) ? b : c
}
function P(a, b, c) {
c = c ? -1 : 1;
var d = a.getTimezoneOffset();
return b = O(b, d), c *= b - d, a = new Date(a.getTime()), a.setMinutes(a.getMinutes() + c), a
}
function Q(a) {
a = Sc(a).clone();
try {
a.empty()
} catch (a) {}
var b = Sc("<div>").append(a).html();
try {
return a[0].nodeType === pd ? Xc(b) : b.match(/^(<[^>]+>)/)[1].replace(/^<([\w\-]+)/, function(a, b) {
return "<" + Xc(b)
})
} catch (a) {
return Xc(b)
}
}
function R(a) {
try {
return decodeURIComponent(a)
} catch (a) {}
}
function S(a) {
var b = {};
return d((a || "").split("&"), function(a) {
var c, d, e;
a && (d = a = a.replace(/\+/g, "%20"), c = a.indexOf("="), -1 !== c && (d = a.substring(0, c), e = a.substring(c + 1)), d = R(d), r(d) && (e = !r(e) || R(e), Wc.call(b, d) ? fd(b[d]) ? b[d].push(e) : b[d] = [b[d], e] : b[d] = e))
}), b
}
function T(a) {
var b = [];
return d(a, function(a, c) {
fd(a) ? d(a, function(a) {
b.push(V(c, !0) + (!0 === a ? "" : "=" + V(a, !0)))
}) : b.push(V(c, !0) + (!0 === a ? "" : "=" + V(a, !0)))
}), b.length ? b.join("&") : ""
}
function U(a) {
return V(a, !0).replace(/%26/gi, "&").replace(/%3D/gi, "=").replace(/%2B/gi, "+")
}
function V(a, b) {
return encodeURIComponent(a).replace(/%40/gi, "@").replace(/%3A/gi, ":").replace(/%24/g, "$").replace(/%2C/gi, ",").replace(/%3B/gi, ";").replace(/%20/g, b ? "%20" : "+")
}
function W(a, b) {
var c, d, e = md.length;
for (d = 0; d < e; ++d)
if (c = md[d] + b, u(c = a.getAttribute(c))) return c;
return null
}
function X(a, b) {
var c, e, f = {};
d(md, function(b) {
b += "app", !c && a.hasAttribute && a.hasAttribute(b) && (c = a, e = a.getAttribute(b))
}), d(md, function(b) {
b += "app";
var d;
!c && (d = a.querySelector("[" + b.replace(":", "\\:") + "]")) && (c = d, e = d.getAttribute(b))
}), c && (f.strictDi = null !== W(c, "strict-di"), b(c, e ? [e] : [], f))
}
function Y(b, c, e) {
s(e) || (e = {}), e = i({
strictDi: !1
}, e);
var f = function() {
if (b = Sc(b), b.injector()) {
var d = b[0] === a.document ? "document" : Q(b);
throw cd("btstrpd", d.replace(/</, "&lt;").replace(/>/, "&gt;"))
}
return c = c || [], c.unshift(["$provide", function(a) {
a.value("$rootElement", b)
}]), e.debugInfoEnabled && c.push(["$compileProvider", function(a) {
a.debugInfoEnabled(!0)
}]), c.unshift("ng"), d = Na(c, e.strictDi), d.invoke(["$rootScope", "$rootElement", "$compile", "$injector", function(a, b, c, d) {
a.$apply(function() {
b.data("$injector", d), c(b)(a)
})
}]), d
},
g = /^NG_ENABLE_DEBUG_INFO!/,
h = /^NG_DEFER_BOOTSTRAP!/;
return a && g.test(a.name) && (e.debugInfoEnabled = !0, a.name = a.name.replace(g, "")), a && !h.test(a.name) ? f() : (a.name = a.name.replace(h, ""), dd.resumeBootstrap = function(a) {
return d(a, function(a) {
c.push(a)
}), f()
}, void(x(dd.resumeDeferredBootstrap) && dd.resumeDeferredBootstrap()))
}
function Z() {
a.name = "NG_ENABLE_DEBUG_INFO!" + a.name, a.location.reload()
}
function $(a) {
if (a = dd.element(a).injector(), !a) throw cd("test");
return a.get("$$testability")
}
function _(a, b) {
return b = b || "_", a.replace(nd, function(a, c) {
return (c ? b : "") + a.toLowerCase()
})
}
function aa() {
var b;
if (!od) {
var c = kd();
(Tc = q(c) ? a.jQuery : c ? a[c] : void 0) && Tc.fn.on ? (Sc = Tc, i(Tc.fn, {
scope: Dd.scope,
isolateScope: Dd.isolateScope,
controller: Dd.controller,
injector: Dd.injector,
inheritedData: Dd.inheritedData
}), b = Tc.cleanData, Tc.cleanData = function(a) {
for (var c, d, e = 0; null != (d = a[e]); e++)(c = Tc._data(d, "events")) && c.$destroy && Tc(d).triggerHandler("$destroy");
b(a)
}) : Sc = oa, dd.element = Sc, od = !0
}
}
function ba(a, b, c) {
if (!a) throw cd("areq", b || "?", c || "required");
return a
}
function ca(a, b, c) {
return c && fd(a) && (a = a[a.length - 1]), ba(x(a), b, "not a function, got " + (a && "object" == typeof a ? a.constructor.name || "Object" : typeof a)), a
}
function da(a, b) {
if ("hasOwnProperty" === a) throw cd("badname", b)
}
function ea(a, b, c) {
if (!b) return a;
b = b.split(".");
for (var d, e = a, f = b.length, g = 0; g < f; g++) d = b[g], a && (a = (e = a)[d]);
return !c && x(a) ? K(e, a) : a
}
function fa(a) {
for (var b, c = a[0], d = a[a.length - 1], e = 1; c !== d && (c = c.nextSibling); e++)(b || a[e] !== c) && (b || (b = Sc(Zc.call(a, 0, e))), b.push(c));
return b || a
}
function ga() {
return Object.create(null)
}
function ha(a) {
function c(a, b, c) {
return a[b] || (a[b] = c())
}
var d = b("$injector"),
e = b("ng");
return a = c(a, "angular", Object), a.$$minErr = a.$$minErr || b, c(a, "module", function() {
var a = {};
return function(b, f, g) {
if ("hasOwnProperty" === b) throw e("badname", "module");
return f && a.hasOwnProperty(b) && (a[b] = null), c(a, b, function() {
function a(a, b, c, d) {
return d || (d = e),
function() {
return d[c || "push"]([a, b, arguments]), k
}
}
function c(a, c) {
return function(d, f) {
return f && x(f) && (f.$$moduleName = b), e.push([a, c, arguments]), k
}
}
if (!f) throw d("nomod", b);
var e = [],
h = [],
i = [],
j = a("$injector", "invoke", "push", h),
k = {
_invokeQueue: e,
_configBlocks: h,
_runBlocks: i,
requires: f,
name: b,
provider: c("$provide", "provider"),
factory: c("$provide", "factory"),
service: c("$provide", "service"),
value: a("$provide", "value"),
constant: a("$provide", "constant", "unshift"),
decorator: c("$provide", "decorator"),
animation: c("$animateProvider", "register"),
filter: c("$filterProvider", "register"),
controller: c("$controllerProvider", "register"),
directive: c("$compileProvider", "directive"),
component: c("$compileProvider", "component"),
config: j,
run: function(a) {
return i.push(a), this
}
};
return g && j(g), k
})
}
})
}
function ia(a, b) {
if (fd(a)) {
b = b || [];
for (var c = 0, d = a.length; c < d; c++) b[c] = a[c]
} else if (s(a))
for (c in b = b || {}, a) "$" === c.charAt(0) && "$" === c.charAt(1) || (b[c] = a[c]);
return b || a
}
function ja(c) {
i(c, {
bootstrap: Y,
copy: H,
extend: i,
merge: j,
equals: I,
element: Sc,
forEach: d,
injector: Na,
noop: m,
bind: K,
toJson: M,
fromJson: N,
identity: n,
isUndefined: q,
isDefined: r,
isString: u,
isFunction: x,
isObject: s,
isNumber: v,
isElement: D,
isArray: fd,
version: qd,
isDate: w,
lowercase: Xc,
uppercase: Yc,
callbacks: {
counter: 0
},
getTestability: $,
$$minErr: b,
$$csp: jd,
reloadWithDebugInfo: Z
}), (Uc = ha(a))("ng", ["ngLocale"], ["$provide", function(a) {
a.provider({
$$sanitizeUri: Zb
}), a.provider("$compile", Wa).directive({
a: Ie,
input: Ze,
textarea: Ze,
form: Me,
script: Pf,
select: Sf,
style: Uf,
option: Tf,
ngBind: af,
ngBindHtml: cf,
ngBindTemplate: bf,
ngClass: ef,
ngClassEven: gf,
ngClassOdd: ff,
ngCloak: hf,
ngController: jf,
ngForm: Ne,
ngHide: If,
ngIf: mf,
ngInclude: nf,
ngInit: pf,
ngNonBindable: Bf,
ngPluralize: Ff,
ngRepeat: Gf,
ngShow: Hf,
ngStyle: Jf,
ngSwitch: Kf,
ngSwitchWhen: Lf,
ngSwitchDefault: Mf,
ngOptions: Ef,
ngTransclude: Of,
ngModel: yf,
ngList: qf,
ngChange: df,
pattern: Wf,
ngPattern: Wf,
required: Vf,
ngRequired: Vf,
minlength: Yf,
ngMinlength: Yf,
maxlength: Xf,
ngMaxlength: Xf,
ngValue: _e,
ngModelOptions: Af
}).directive({
ngInclude: of
}).directive(Je).directive(kf), a.provider({
$anchorScroll: Oa,
$animate: Rd,
$animateCss: Ud,
$$animateJs: Pd,
$$animateQueue: Qd,
$$AnimateRunner: Td,
$$animateAsyncRun: Sd,
$browser: Ta,
$cacheFactory: Ua,
$controller: ab,
$document: bb,
$exceptionHandler: cb,
$filter: lc,
$$forceReflow: $d,
$interpolate: ob,
$interval: pb,
$http: kb,
$httpParamSerializer: eb,
$httpParamSerializerJQLike: fb,
$httpBackend: mb,
$xhrFactory: lb,
$location: Bb,
$log: Cb,
$parse: Tb,
$rootScope: Yb,
$q: Ub,
$$q: Vb,
$sce: bc,
$sceDelegate: ac,
$sniffer: cc,
$templateCache: Va,
$templateRequest: dc,
$$testability: ec,
$timeout: fc,
$window: ic,
$$rAF: Xb,
$$jqLite: Ia,
$$HashMap: Hd,
$$cookieReader: kc
})
}])
}
function ka(a) {
return a.replace(td, function(a, b, c, d) {
return d ? c.toUpperCase() : c
}).replace(ud, "Moz$1")
}
function la(a) {
return a = a.nodeType, 1 === a || !a || 9 === a
}
function ma(a, b) {
var c, e, f = b.createDocumentFragment(),
g = [];
if (yd.test(a)) {
for (c = c || f.appendChild(b.createElement("div")), e = (zd.exec(a) || ["", ""])[1].toLowerCase(), e = Bd[e] || Bd._default, c.innerHTML = e[1] + a.replace(Ad, "<$1></$2>") + e[2], e = e[0]; e--;) c = c.lastChild;
g = J(g, c.childNodes), c = f.firstChild, c.textContent = ""
} else g.push(b.createTextNode(a));
return f.textContent = "", f.innerHTML = "", d(g, function(a) {
f.appendChild(a)
}), f
}
function na(a, b) {
var c = a.parentNode;
c && c.replaceChild(b, a), b.appendChild(a)
}
function oa(b) {
if (b instanceof oa) return b;
var c;
if (u(b) && (b = hd(b), c = !0), !(this instanceof oa)) {
if (c && "<" != b.charAt(0)) throw wd("nosel");
return new oa(b)
}
if (c) {
c = a.document;
var d;
b = (d = xd.exec(b)) ? [c.createElement(d[1])] : (d = ma(b, c)) ? d.childNodes : []
}
ya(this, b)
}
function pa(a) {
return a.cloneNode(!0)
}
function qa(a, b) {
if (b || sa(a), a.querySelectorAll)
for (var c = a.querySelectorAll("*"), d = 0, e = c.length; d < e; d++) sa(c[d])
}
function ra(a, b, c, e) {
if (r(e)) throw wd("offargs");
var f = (e = ta(a)) && e.events,
g = e && e.handle;
if (g)
if (b) {
var h = function(b) {
var d = f[b];
r(c) && G(d || [], c), r(c) && d && 0 < d.length || (a.removeEventListener(b, g, !1), delete f[b])
};
d(b.split(" "), function(a) {
h(a), vd[a] && h(vd[a])
})
} else
for (b in f) "$destroy" !== b && a.removeEventListener(b, g, !1), delete f[b]
}
function sa(a, b) {
var c = a.ng339,
d = c && rd[c];
d && (b ? delete d.data[b] : (d.handle && (d.events.$destroy && d.handle({}, "$destroy"), ra(a)), delete rd[c], a.ng339 = void 0))
}
function ta(a, b) {
var c = a.ng339,
c = c && rd[c];
return b && !c && (a.ng339 = c = ++sd, c = rd[c] = {
events: {},
data: {},
handle: void 0
}), c
}
function ua(a, b, c) {
if (la(a)) {
var d = r(c),
e = !d && b && !s(b),
f = !b;
if (a = (a = ta(a, !e)) && a.data, d) a[b] = c;
else {
if (f) return a;
if (e) return a && a[b];
i(a, b)
}
}
}
function va(a, b) {
return !!a.getAttribute && -1 < (" " + (a.getAttribute("class") || "") + " ").replace(/[\n\t]/g, " ").indexOf(" " + b + " ")
}
function wa(a, b) {
b && a.setAttribute && d(b.split(" "), function(b) {
a.setAttribute("class", hd((" " + (a.getAttribute("class") || "") + " ").replace(/[\n\t]/g, " ").replace(" " + hd(b) + " ", " ")))
})
}
function xa(a, b) {
if (b && a.setAttribute) {
var c = (" " + (a.getAttribute("class") || "") + " ").replace(/[\n\t]/g, " ");
d(b.split(" "), function(a) {
a = hd(a), -1 === c.indexOf(" " + a + " ") && (c += a + " ")
}), a.setAttribute("class", hd(c))
}
}
function ya(a, b) {
if (b)
if (b.nodeType) a[a.length++] = b;
else {
var c = b.length;
if ("number" == typeof c && b.window !== b) {
if (c)
for (var d = 0; d < c; d++) a[a.length++] = b[d]
} else a[a.length++] = b
}
}
function za(a, b) {
return Aa(a, "$" + (b || "ngController") + "Controller")
}
function Aa(a, b, c) {
for (9 == a.nodeType && (a = a.documentElement), b = fd(b) ? b : [b]; a;) {
for (var d = 0, e = b.length; d < e; d++)
if (r(c = Sc.data(a, b[d]))) return c;
a = a.parentNode || 11 === a.nodeType && a.host
}
}
function Ba(a) {
for (qa(a, !0); a.firstChild;) a.removeChild(a.firstChild)
}
function Ca(a, b) {
b || qa(a);
var c = a.parentNode;
c && c.removeChild(a)
}
function Da(b, c) {
c = c || a, "complete" === c.document.readyState ? c.setTimeout(b) : Sc(c).on("load", b)
}
function Ea(a, b) {
var c = Ed[b.toLowerCase()];
return c && Fd[F(a)] && c
}
function Fa(a, b) {
var c = function(c, d) {
c.isDefaultPrevented = function() {
return c.defaultPrevented
};
var e = b[d || c.type],
f = e ? e.length : 0;
if (f) {
if (q(c.immediatePropagationStopped)) {
var g = c.stopImmediatePropagation;
c.stopImmediatePropagation = function() {
c.immediatePropagationStopped = !0, c.stopPropagation && c.stopPropagation(), g && g.call(c)
}
}
c.isImmediatePropagationStopped = function() {
return !0 === c.immediatePropagationStopped
};
var h = e.specialHandlerWrapper || Ga;
1 < f && (e = ia(e));
for (var i = 0; i < f; i++) c.isImmediatePropagationStopped() || h(a, c, e[i])
}
};
return c.elem = a, c
}
function Ga(a, b, c) {
c.call(a, b)
}
function Ha(a, b, c) {
var d = b.relatedTarget;
d && (d === a || Cd.call(a, d)) || c.call(a, b)
}
function Ia() {
this.$get = function() {
return i(oa, {
hasClass: function(a, b) {
return a.attr && (a = a[0]), va(a, b)
},
addClass: function(a, b) {
return a.attr && (a = a[0]), xa(a, b)
},
removeClass: function(a, b) {
return a.attr && (a = a[0]), wa(a, b)
}
})
}
}
function Ja(a, b) {
var c = a && a.$$hashKey;
return c ? ("function" == typeof c && (c = a.$$hashKey()), c) : (c = typeof a, c = "function" == c || "object" == c && null !== a ? a.$$hashKey = c + ":" + (b || g)() : c + ":" + a)
}
function Ka(a, b) {
if (b) {
var c = 0;
this.nextUid = function() {
return ++c
}
}
d(a, this.put, this)
}
function La(a) {
return a = (Function.prototype.toString.call(a) + " ").replace(Md, ""), a.match(Id) || a.match(Jd)
}
function Ma(a) {
return (a = La(a)) ? "function(" + (a[1] || "").replace(/[\s\r\n]+/, " ") + ")" : "fn"
}
function Na(a, b) {
function c(a) {
return function(b, c) {
return s(b) ? void d(b, f(a)) : a(b, c)
}
}
function e(a, b) {
if (da(a, "service"), (x(b) || fd(b)) && (b = p.instantiate(b)), !b.$get) throw Nd("pget", a);
return n[a + "Provider"] = b
}
function g(a, b) {
return function() {
var c = v.invoke(b, this);
if (q(c)) throw Nd("undef", a);
return c
}
}
function h(a, b, c) {
return e(a, {
$get: !1 !== c ? g(a, b) : b
})
}
function i(a) {
ba(q(a) || fd(a), "modulesToLoad", "not an array");
var b, c = [];
return d(a, function(a) {
function d(a) {
var b, c;
for (b = 0, c = a.length; b < c; b++) {
var d = a[b],
e = p.get(d[0]);
e[d[1]].apply(e, d[2])
}
}
if (!m.get(a)) {
m.put(a, !0);
try {
u(a) ? (b = Uc(a), c = c.concat(i(b.requires)).concat(b._runBlocks), d(b._invokeQueue), d(b._configBlocks)) : x(a) ? c.push(p.invoke(a)) : fd(a) ? c.push(p.invoke(a)) : ca(a, "module")
} catch (b) {
throw fd(a) && (a = a[a.length - 1]), b.message && b.stack && -1 == b.stack.indexOf(b.message) && (b = b.message + "\n" + b.stack), Nd("modulerr", a, b.stack || b.message || b)
}
}
}), c
}
function j(a, c) {
function d(b, d) {
if (a.hasOwnProperty(b)) {
if (a[b] === k) throw Nd("cdep", b + " <- " + l.join(" <- "));
return a[b]
}
try {
return l.unshift(b), a[b] = k, a[b] = c(b, d)
} catch (c) {
throw a[b] === k && delete a[b], c
} finally {
l.shift()
}
}
function e(a, c, e) {
var f = [];
a = Na.$$annotate(a, b, e);
for (var g = 0, h = a.length; g < h; g++) {
var i = a[g];
if ("string" != typeof i) throw Nd("itkn", i);
f.push(c && c.hasOwnProperty(i) ? c[i] : d(i, e))
}
return f
}
return {
invoke: function(a, b, c, d) {
return "string" == typeof c && (d = c, c = null), c = e(a, c, d), fd(a) && (a = a[a.length - 1]), d = !(11 >= Rc) && ("function" == typeof a && /^(?:class\s|constructor\()/.test(Function.prototype.toString.call(a) + " ")), d ? (c.unshift(null), new(Function.prototype.bind.apply(a, c))) : a.apply(b, c)
},
instantiate: function(a, b, c) {
var d = fd(a) ? a[a.length - 1] : a;
return a = e(a, b, c), a.unshift(null), new(Function.prototype.bind.apply(d, a))
},
get: d,
annotate: Na.$$annotate,
has: function(b) {
return n.hasOwnProperty(b + "Provider") || a.hasOwnProperty(b)
}
}
}
b = !0 === b;
var k = {},
l = [],
m = new Ka([], !0),
n = {
$provide: {
provider: c(e),
factory: c(h),
service: c(function(a, b) {
return h(a, ["$injector", function(a) {
return a.instantiate(b)
}])
}),
value: c(function(a, b) {
return h(a, o(b), !1)
}),
constant: c(function(a, b) {
da(a, "constant"), n[a] = b, r[a] = b
}),
decorator: function(a, b) {
var c = p.get(a + "Provider"),
d = c.$get;
c.$get = function() {
var a = v.invoke(d, c);
return v.invoke(b, null, {
$delegate: a
})
}
}
}
},
p = n.$injector = j(n, function(a, b) {
throw dd.isString(b) && l.push(b), Nd("unpr", l.join(" <- "))
}),
r = {},
t = j(r, function(a, b) {
var c = p.get(a + "Provider", b);
return v.invoke(c.$get, c, void 0, a)
}),
v = t;
n.$injectorProvider = {
$get: o(t)
};
var w = i(a),
v = t.get("$injector");
return v.strictDi = b, d(w, function(a) {
a && v.invoke(a)
}), v
}
function Oa() {
var a = !0;
this.disableAutoScrolling = function() {
a = !1
}, this.$get = ["$window", "$location", "$rootScope", function(b, c, d) {
function e(a) {
var b = null;
return Array.prototype.some.call(a, function(a) {
if ("a" === F(a)) return b = a, !0
}), b
}
function f(a) {
if (a) {
a.scrollIntoView();
var c;
c = g.yOffset, x(c) ? c = c() : D(c) ? (c = c[0], c = "fixed" !== b.getComputedStyle(c).position ? 0 : c.getBoundingClientRect().bottom) : v(c) || (c = 0), c && (a = a.getBoundingClientRect().top, b.scrollBy(0, a - c))
} else b.scrollTo(0, 0)
}
function g(a) {
a = u(a) ? a : c.hash();
var b;
a ? (b = h.getElementById(a)) ? f(b) : (b = e(h.getElementsByName(a))) ? f(b) : "top" === a && f(null) : f(null)
}
var h = b.document;
return a && d.$watch(function() {
return c.hash()
}, function(a, b) {
a === b && "" === a || Da(function() {
d.$evalAsync(g)
})
}), g
}]
}
function Pa(a, b) {
return a || b ? a ? b ? (fd(a) && (a = a.join(" ")), fd(b) && (b = b.join(" ")), a + " " + b) : a : b : ""
}
function Qa(a) {
u(a) && (a = a.split(" "));
var b = ga();
return d(a, function(a) {
a.length && (b[a] = !0)
}), b
}
function Ra(a) {
return s(a) ? a : {}
}
function Sa(a, b, c, e) {
function f(a) {
try {
a.apply(null, Zc.call(arguments, 1))
} finally {
if (r--, 0 === r)
for (; s.length;) try {
s.pop()()
} catch (a) {
c.error(a)
}
}
}
function g() {
x = null, h(), i()
}
function h() {
t = y(), t = q(t) ? null : t, I(t, B) && (t = B), B = t
}
function i() {
v === j.url() && u === t || (v = j.url(), u = t, d(z, function(a) {
a(j.url(), t)
}))
}
var j = this,
k = a.location,
l = a.history,
n = a.setTimeout,
o = a.clearTimeout,
p = {};
j.isMock = !1;
var r = 0,
s = [];
j.$$completeOutstandingRequest = f, j.$$incOutstandingRequestCount = function() {
r++
}, j.notifyWhenNoOutstandingRequests = function(a) {
0 === r ? a() : s.push(a)
};
var t, u, v = k.href,
w = b.find("base"),
x = null,
y = e.history ? function() {
try {
return l.state
} catch (a) {}
} : m;
h(), u = t, j.url = function(b, c, d) {
if (q(d) && (d = null), k !== a.location && (k = a.location), l !== a.history && (l = a.history), b) {
var f = u === d;
if (v === b && (!e.history || f)) return j;
var g = v && ub(v) === ub(b);
return v = b, u = d, !e.history || g && f ? (g || (x = b), c ? k.replace(b) : g ? (c = k, d = b.indexOf("#"), d = -1 === d ? "" : b.substr(d), c.hash = d) : k.href = b, k.href !== b && (x = b)) : (l[c ? "replaceState" : "pushState"](d, "", b), h(), u = t), x && (x = b), j
}
return x || k.href.replace(/%27/g, "'")
}, j.state = function() {
return t
};
var z = [],
A = !1,
B = null;
j.onUrlChange = function(b) {
return A || (e.history && Sc(a).on("popstate", g), Sc(a).on("hashchange", g), A = !0), z.push(b), b
}, j.$$applicationDestroyed = function() {
Sc(a).off("hashchange popstate", g)
}, j.$$checkUrlChange = i, j.baseHref = function() {
var a = w.attr("href");
return a ? a.replace(/^(https?\:)?\/\/[^\/]*/, "") : ""
}, j.defer = function(a, b) {
var c;
return r++, c = n(function() {
delete p[c], f(a)
}, b || 0), p[c] = !0, c
}, j.defer.cancel = function(a) {
return !!p[a] && (delete p[a], o(a), f(m), !0)
}
}
function Ta() {
this.$get = ["$window", "$log", "$sniffer", "$document", function(a, b, c, d) {
return new Sa(a, d, b, c)
}]
}
function Ua() {
this.$get = function() {
function a(a, d) {
function e(a) {
a != m && (n ? n == a && (n = a.n) : n = a, f(a.n, a.p), f(a, m), m = a, m.n = null)
}
function f(a, b) {
a != b && (a && (a.p = b), b && (b.n = a))
}
if (a in c) throw b("$cacheFactory")("iid", a);
var g = 0,
h = i({}, d, {
id: a
}),
j = ga(),
k = d && d.capacity || Number.MAX_VALUE,
l = ga(),
m = null,
n = null;
return c[a] = {
put: function(a, b) {
if (!q(b)) {
if (k < Number.MAX_VALUE) {
var c = l[a] || (l[a] = {
key: a
});
e(c)
}
return a in j || g++, j[a] = b, g > k && this.remove(n.key), b
}
},
get: function(a) {
if (k < Number.MAX_VALUE) {
var b = l[a];
if (!b) return;
e(b)
}
return j[a]
},
remove: function(a) {
if (k < Number.MAX_VALUE) {
var b = l[a];
if (!b) return;
b == m && (m = b.p), b == n && (n = b.n), f(b.n, b.p), delete l[a]
}
a in j && (delete j[a], g--)
},
removeAll: function() {
j = ga(), g = 0, l = ga(), m = n = null
},
destroy: function() {
l = h = j = null, delete c[a]
},
info: function() {
return i({}, h, {
size: g
})
}
}
}
var c = {};
return a.info = function() {
var a = {};
return d(c, function(b, c) {
a[c] = b.info()
}), a
}, a.get = function(a) {
return c[a]
}, a
}
}
function Va() {
this.$get = ["$cacheFactory", function(a) {
return a("templates")
}]
}
function Wa(b, c) {
function e(a, b, c) {
var e = /^\s*([@&<]|=(\*?))(\??)\s*(\w*)\s*$/,
f = ga();
return d(a, function(a, d) {
if (a in y) f[d] = y[a];
else {
var g = a.match(e);
if (!g) throw Vd("iscp", b, d, a, c ? "controller bindings definition" : "isolate scope definition");
f[d] = {
mode: g[1][0],
collection: "*" === g[2],
optional: "?" === g[3],
attrName: g[4] || d
}, g[4] && (y[a] = f[d])
}
}), f
}
function g(a) {
var b = a.charAt(0);
if (!b || b !== Xc(b)) throw Vd("baddir", a);
if (a !== a.trim()) throw Vd("baddir", a)
}
function h(a) {
var b = a.require || a.controller && a.name;
return !fd(b) && s(b) && d(b, function(a, c) {
var d = a.match(v);
a.substring(d[0].length) || (b[c] = d[0] + c)
}), b
}
var j = {},
k = /^\s*directive\:\s*([\w\-]+)\s+(.*)$/,
p = /(([\w\-]+)(?:\:([^;]+))?;?)/,
t = E("ngSrc,ngSrcset,src,srcset"),
v = /^(?:(\^\^?)?(\?)?(\^\^?)?)?/,
w = /^(on[a-z]+|formaction)$/,
y = ga();
this.directive = function a(c, e) {
return da(c, "directive"), u(c) ? (g(c), ba(e, "directiveFactory"), j.hasOwnProperty(c) || (j[c] = [], b.factory(c + "Directive", ["$injector", "$exceptionHandler", function(a, b) {
var e = [];
return d(j[c], function(d, f) {
try {
var g = a.invoke(d);
x(g) ? g = {
compile: o(g)
} : !g.compile && g.link && (g.compile = o(g.link)), g.priority = g.priority || 0, g.index = f, g.name = g.name || c, g.require = h(g), g.restrict = g.restrict || "EA", g.$$moduleName = d.$$moduleName, e.push(g)
} catch (a) {
b(a)
}
}), e
}])), j[c].push(e)) : d(c, f(a)), this
}, this.component = function(a, b) {
function c(a) {
function c(b) {
return x(b) || fd(b) ? function(c, d) {
return a.invoke(b, this, {
$element: c,
$attrs: d
})
} : b
}
var f = b.template || b.templateUrl ? b.template : "",
g = {
controller: e,
controllerAs: _a(b.controller) || b.controllerAs || "$ctrl",
template: c(f),
templateUrl: c(b.templateUrl),
transclude: b.transclude,
scope: {},
bindToController: b.bindings || {},
restrict: "E",
require: b.require
};
return d(b, function(a, b) {
"$" === b.charAt(0) && (g[b] = a)
}), g
}
var e = b.controller || function() {};
return d(b, function(a, b) {
"$" === b.charAt(0) && (c[b] = a, x(e) && (e[b] = a))
}), c.$inject = ["$injector"], this.directive(a, c)
}, this.aHrefSanitizationWhitelist = function(a) {
return r(a) ? (c.aHrefSanitizationWhitelist(a), this) : c.aHrefSanitizationWhitelist()
}, this.imgSrcSanitizationWhitelist = function(a) {
return r(a) ? (c.imgSrcSanitizationWhitelist(a), this) : c.imgSrcSanitizationWhitelist()
};
var z = !0;
this.debugInfoEnabled = function(a) {
return r(a) ? (z = a, this) : z
};
var C = 10;
this.onChangesTtl = function(a) {
return arguments.length ? (C = a, this) : C
}, this.$get = ["$injector", "$interpolate", "$exceptionHandler", "$templateRequest", "$parse", "$controller", "$rootScope", "$sce", "$animate", "$$sanitizeUri", function(b, c, f, g, h, o, y, D, E, H) {
function J() {
try {
if (!--ua) throw ra = void 0, Vd("infchng", C);
y.$apply(function() {
for (var a = [], b = 0, c = ra.length; b < c; ++b) try {
ra[b]()
} catch (b) {
a.push(b)
}
if (ra = void 0, a.length) throw a
})
} finally {
ua++
}
}
function L(a, b) {
if (b) {
var c, d, e, f = Object.keys(b);
for (c = 0, d = f.length; c < d; c++) e = f[c], this[e] = b[e]
} else this.$attr = {};
this.$$element = a
}
function M(a, b, c) {
ta.innerHTML = "<span " + b + ">", b = ta.firstChild.attributes;
var d = b[0];
b.removeNamedItem(d.name), d.value = c, a.attributes.setNamedItem(d)
}
function N(a, b) {
try {
a.addClass(b)
} catch (a) {}
}
function O(b, c, d, e, f) {
b instanceof Sc || (b = Sc(b));
for (var g = /\S+/, h = 0, i = b.length; h < i; h++) {
var j = b[h];
j.nodeType === pd && j.nodeValue.match(g) && na(j, b[h] = a.document.createElement("span"))
}
var k = P(b, c, b, d, e, f);
O.$$addScopeClass(b);
var l = null;
return function(a, c, d) {
ba(a, "scope"), f && f.needsNewScope && (a = a.$parent.$new()), d = d || {};
var e = d.parentBoundTranscludeFn,
g = d.transcludeControllers;
if (d = d.futureParentElement, e && e.$$boundTransclude && (e = e.$$boundTransclude), l || (l = (d = d && d[0]) && "foreignobject" !== F(d) && ad.call(d).match(/SVG/) ? "svg" : "html"), d = "html" !== l ? Sc(ia(l, Sc("<div>").append(b).html())) : c ? Dd.clone.call(b) : b, g)
for (var h in g) d.data("$" + h + "Controller", g[h].instance);
return O.$$addScopeInfo(d, a), c && c(d, a), k && k(a, d, d, e), d
}
}
function P(a, b, c, d, e, f) {
function g(a, c, d, e) {
var f, g, h, i, j, k, n;
if (l)
for (n = Array(c.length), i = 0; i < m.length; i += 3) f = m[i], n[f] = c[f];
else n = c;
for (i = 0, j = m.length; i < j;) g = n[m[i++]], c = m[i++], f = m[i++], c ? (c.scope ? (h = a.$new(), O.$$addScopeInfo(Sc(g), h)) : h = a, k = c.transcludeOnThisElement ? R(a, c.transclude, e) : !c.templateOnThisElement && e ? e : !e && b ? R(a, b) : null, c(f, h, g, d, k)) : f && f(a, g.childNodes, void 0, e)
}
for (var h, i, j, k, l, m = [], n = 0; n < a.length; n++) h = new L, i = S(a[n], [], h, 0 === n ? d : void 0, e), (f = i.length ? W(i, a[n], h, b, c, null, [], [], f) : null) && f.scope && O.$$addScopeClass(h.$$element), h = f && f.terminal || !(j = a[n].childNodes) || !j.length ? null : P(j, f ? (f.transcludeOnThisElement || !f.templateOnThisElement) && f.transclude : b), (f || h) && (m.push(n, f, h), k = !0, l = l || f), f = null;
return k ? g : null
}
function R(a, b, c) {
function d(d, e, f, g, h) {
return d || (d = a.$new(!1, h), d.$$transcluded = !0), b(d, e, {
parentBoundTranscludeFn: c,
transcludeControllers: f,
futureParentElement: g
})
}
var e, f = d.$$slots = ga();
for (e in b.$$slots) f[e] = b.$$slots[e] ? R(a, b.$$slots[e], c) : null;
return d
}
function S(a, b, c, d, e) {
var f, g = c.$attr;
switch (a.nodeType) {
case 1:
$(b, Ya(F(a)), "E", d, e);
for (var h, i, j, l = a.attributes, m = 0, n = l && l.length; m < n; m++) {
var o = !1,
q = !1;
h = l[m], f = h.name, i = hd(h.value), h = Ya(f), (j = ya.test(h)) && (f = f.replace(Xd, "").substr(8).replace(/_(.)/g, function(a, b) {
return b.toUpperCase()
})), (h = h.match(za)) && aa(h[1]) && (o = f, q = f.substr(0, f.length - 5) + "end", f = f.substr(0, f.length - 6)), h = Ya(f.toLowerCase()), g[h] = f, !j && c.hasOwnProperty(h) || (c[h] = i, Ea(a, h) && (c[h] = !0)), ka(a, b, i, h, j), $(b, h, "A", d, e, o, q)
}
if (a = a.className, s(a) && (a = a.animVal), u(a) && "" !== a)
for (; f = p.exec(a);) h = Ya(f[2]), $(b, h, "C", d, e) && (c[h] = hd(f[3])), a = a.substr(f.index + f[0].length);
break;
case pd:
if (11 === Rc)
for (; a.parentNode && a.nextSibling && a.nextSibling.nodeType === pd;) a.nodeValue += a.nextSibling.nodeValue, a.parentNode.removeChild(a.nextSibling);
ha(b, a.nodeValue);
break;
case 8:
try {
(f = k.exec(a.nodeValue)) && (h = Ya(f[1]), $(b, h, "M", d, e) && (c[h] = hd(f[2])))
} catch (a) {}
}
return b.sort(ea), b
}
function T(a, b, c) {
var d = [],
e = 0;
if (b && a.hasAttribute && a.hasAttribute(b)) {
do {
if (!a) throw Vd("uterdir", b, c);
1 == a.nodeType && (a.hasAttribute(b) && e++, a.hasAttribute(c) && e--), d.push(a), a = a.nextSibling
} while (0 < e)
} else d.push(a);
return Sc(d)
}
function U(a, b, c) {
return function(d, e, f, g, h) {
return e = T(e[0], b, c), a(d, e, f, g, h)
}
}
function V(a, b, c, d, e, f) {
var g;
return a ? O(b, c, d, e, f) : function() {
return g || (g = O(b, c, d, e, f), b = c = f = null), g.apply(this, arguments)
}
}
function W(a, b, c, e, g, h, j, k, l) {
function m(a, b, c, d) {
a && (c && (a = U(a, c, d)), a.require = o.require, a.directiveName = p, (z === o || o.$$isolateScope) && (a = ma(a, {
isolateScope: !0
})), j.push(a)), b && (c && (b = U(b, c, d)), b.require = o.require, b.directiveName = p, (z === o || o.$$isolateScope) && (b = ma(b, {
isolateScope: !0
})), k.push(b))
}
function n(a, e, g, h, l) {
function m(a, b, c, d) {
var e;
if (A(a) || (d = c, c = b, b = a, a = void 0), G && (e = u), c || (c = G ? C.parent() : C), !d) return l(a, b, e, c, F);
var f = l.$$slots[d];
if (f) return f(a, b, e, c, F);
if (q(f)) throw Vd("noslot", d, Q(C))
}
var n, o, p, r, t, u, v, C;
b === g ? (h = c, C = c.$$element) : (C = Sc(g), h = new L(C, c)), t = e, z ? r = e.$new(!0) : w && (t = e.$parent), l && (v = m, v.$$boundTransclude = l, v.isSlotFilled = function(a) {
return !!l.$$slots[a]
}), y && (u = Y(C, h, v, y, r, e, z)), z && (O.$$addScopeInfo(C, r, !0, !(B && (B === z || B === z.$$originalDirective))), O.$$addScopeClass(C, !0), r.$$isolateBindings = z.$$isolateBindings, o = qa(e, h, r, r.$$isolateBindings, z), o.removeWatches && r.$on("$destroy", o.removeWatches));
for (n in u) {
o = y[n], p = u[n];
var D = o.$$bindings.bindToController;
p.bindingInfo = p.identifier && D ? qa(t, h, p.instance, D, o) : {};
var E = p();
E !== p.instance && (p.instance = E, C.data("$" + o.name + "Controller", E), p.bindingInfo.removeWatches && p.bindingInfo.removeWatches(), p.bindingInfo = qa(t, h, p.instance, D, o))
}
for (d(y, function(a, b) {
var c = a.require;
a.bindToController && !fd(c) && s(c) && i(u[b].instance, X(b, c, C, u))
}), d(u, function(a) {
var b = a.instance;
if (x(b.$onChanges)) try {
b.$onChanges(a.bindingInfo.initialChanges)
} catch (a) {
f(a)
}
if (x(b.$onInit)) try {
b.$onInit()
} catch (a) {
f(a)
}
x(b.$onDestroy) && t.$on("$destroy", function() {
b.$onDestroy()
})
}), n = 0, o = j.length; n < o; n++) p = j[n], oa(p, p.isolateScope ? r : e, C, h, p.require && X(p.directiveName, p.require, C, u), v);
var F = e;
for (z && (z.template || null === z.templateUrl) && (F = r), a && a(F, g.childNodes, void 0, l), n = k.length - 1; 0 <= n; n--) p = k[n], oa(p, p.isolateScope ? r : e, C, h, p.require && X(p.directiveName, p.require, C, u), v);
d(u, function(a) {
a = a.instance, x(a.$postLink) && a.$postLink()
})
}
l = l || {};
for (var o, p, r, t, u, v = -Number.MAX_VALUE, w = l.newScopeDirective, y = l.controllerDirectives, z = l.newIsolateScopeDirective, B = l.templateDirective, C = l.nonTlbTranscludeDirective, D = !1, E = !1, G = l.hasElementTranscludeDirective, H = c.$$element = Sc(b), I = e, J = !1, M = !1, N = 0, P = a.length; N < P; N++) {
o = a[N];
var R = o.$$start,
W = o.$$end;
if (R && (H = T(b, R, W)), r = void 0, v > o.priority) break;
if ((u = o.scope) && (o.templateUrl || (s(u) ? (fa("new/isolated scope", z || w, o, H), z = o) : fa("new/isolated scope", z, o, H)), w = w || o), p = o.name, !J && (o.replace && (o.templateUrl || o.template) || o.transclude && !o.$$tlb)) {
for (u = N + 1; J = a[u++];)
if (J.transclude && !J.$$tlb || J.replace && (J.templateUrl || J.template)) {
M = !0;
break
}
J = !0
}
if (!o.templateUrl && o.controller && (u = o.controller, y = y || ga(), fa("'" + p + "' controller", y[p], o, H), y[p] = o), u = o.transclude)
if (D = !0, o.$$tlb || (fa("transclusion", C, o, H), C = o), "element" == u) G = !0, v = o.priority, r = H, H = c.$$element = Sc(O.$$createComment(p, c[p])), b = H[0], la(g, Zc.call(r, 0), b), r[0].$$parentNode = r[0].parentNode, I = V(M, r, e, v, h && h.name, {
nonTlbTranscludeDirective: C
});
else {
var $ = ga();
if (r = Sc(pa(b)).contents(), s(u)) {
r = [];
var _ = ga(),
aa = ga();
d(u, function(a, b) {
var c = "?" === a.charAt(0);
a = c ? a.substring(1) : a, _[a] = b, $[b] = null, aa[b] = c
}), d(H.contents(), function(a) {
var b = _[Ya(F(a))];
b ? (aa[b] = !0, $[b] = $[b] || [], $[b].push(a)) : r.push(a)
}), d(aa, function(a, b) {
if (!a) throw Vd("reqslot", b)
});
for (var ba in $) $[ba] && ($[ba] = V(M, $[ba], e))
}
H.empty(), I = V(M, r, e, void 0, void 0, {
needsNewScope: o.$$isolateScope || o.$$newScope
}), I.$$slots = $
}
if (o.template)
if (E = !0, fa("template", B, o, H), B = o, u = x(o.template) ? o.template(H, c) : o.template, u = xa(u), o.replace) {
if (h = o, r = yd.test(u) ? $a(ia(o.templateNamespace, hd(u))) : [], b = r[0], 1 != r.length || 1 !== b.nodeType) throw Vd("tplrt", p, "");
la(g, H, b), P = {
$attr: {}
}, u = S(b, [], P);
var ea = a.splice(N + 1, a.length - (N + 1));
(z || w) && Z(u, z, w), a = a.concat(u).concat(ea), ca(c, P), P = a.length
} else H.html(u);
if (o.templateUrl) E = !0, fa("template", B, o, H), B = o, o.replace && (h = o), n = da(a.splice(N, a.length - N), H, c, g, D && I, j, k, {
controllerDirectives: y,
newScopeDirective: w !== o && w,
newIsolateScopeDirective: z,
templateDirective: B,
nonTlbTranscludeDirective: C
}), P = a.length;
else if (o.compile) try {
t = o.compile(H, c, I);
var ha = o.$$originalDirective || o;
x(t) ? m(null, K(ha, t), R, W) : t && m(K(ha, t.pre), K(ha, t.post), R, W)
} catch (a) {
f(a, Q(H))
}
o.terminal && (n.terminal = !0, v = Math.max(v, o.priority))
}
return n.scope = w && !0 === w.scope, n.transcludeOnThisElement = D, n.templateOnThisElement = E, n.transclude = I, l.hasElementTranscludeDirective = G, n
}
function X(a, b, c, e) {
var f;
if (u(b)) {
var g = b.match(v);
b = b.substring(g[0].length);
var h = g[1] || g[3],
g = "?" === g[2];
if ("^^" === h ? c = c.parent() : f = (f = e && e[b]) && f.instance, !f) {
var i = "$" + b + "Controller";
f = h ? c.inheritedData(i) : c.data(i)
}
if (!f && !g) throw Vd("ctreq", b, a)
} else if (fd(b))
for (f = [], h = 0, g = b.length; h < g; h++) f[h] = X(a, b[h], c, e);
else s(b) && (f = {}, d(b, function(b, d) {
f[d] = X(a, b, c, e)
}));
return f || null
}
function Y(a, b, c, d, e, f, g) {
var h, i = ga();
for (h in d) {
var j = d[h],
k = {
$scope: j === g || j.$$isolateScope ? e : f,
$element: a,
$attrs: b,
$transclude: c
},
l = j.controller;
"@" == l && (l = b[j.name]), k = o(l, k, !0, j.controllerAs), i[j.name] = k, a.data("$" + j.name + "Controller", k.instance)
}
return i
}
function Z(a, b, c) {
for (var d = 0, e = a.length; d < e; d++) a[d] = l(a[d], {
$$isolateScope: b,
$$newScope: c
})
}
function $(a, c, d, g, h, i, k) {
if (c === h) return null;
if (h = null, j.hasOwnProperty(c)) {
var m;
c = b.get(c + "Directive");
for (var n = 0, o = c.length; n < o; n++) try {
if (m = c[n], (q(g) || g > m.priority) && -1 != m.restrict.indexOf(d)) {
if (i && (m = l(m, {
$$start: i,
$$end: k
})), !m.$$bindings) {
var p = m,
r = m,
t = m.name,
u = {
isolateScope: null,
bindToController: null
};
if (s(r.scope) && (!0 === r.bindToController ? (u.bindToController = e(r.scope, t, !0), u.isolateScope = {}) : u.isolateScope = e(r.scope, t, !1)), s(r.bindToController) && (u.bindToController = e(r.bindToController, t, !0)), s(u.bindToController)) {
var v = r.controller,
w = r.controllerAs;
if (!v) throw Vd("noctrl", t);
if (!_a(v, w)) throw Vd("noident", t)
}
var x = p.$$bindings = u;
s(x.isolateScope) && (m.$$isolateBindings = x.isolateScope)
}
a.push(m), h = m
}
} catch (a) {
f(a)
}
}
return h
}
function aa(a) {
if (j.hasOwnProperty(a))
for (var c = b.get(a + "Directive"), d = 0, e = c.length; d < e; d++)
if (a = c[d], a.multiElement) return !0;
return !1
}
function ca(a, b) {
var c = b.$attr,
e = a.$attr;
d(a, function(d, e) {
"$" != e.charAt(0) && (b[e] && b[e] !== d && (d += ("style" === e ? ";" : " ") + b[e]), a.$set(e, d, !0, c[e]))
}), d(b, function(b, d) {
a.hasOwnProperty(d) || "$" === d.charAt(0) || (a[d] = b, "class" !== d && "style" !== d && (e[d] = c[d]))
})
}
function da(a, b, c, e, f, h, i, j) {
var k, m, n = [],
o = b[0],
p = a.shift(),
q = l(p, {
templateUrl: null,
transclude: null,
replace: null,
$$originalDirective: p
}),
r = x(p.templateUrl) ? p.templateUrl(b, c) : p.templateUrl,
t = p.templateNamespace;
return b.empty(), g(r).then(function(g) {
var l, u;
if (g = xa(g), p.replace) {
if (g = yd.test(g) ? $a(ia(t, hd(g))) : [], l = g[0], 1 != g.length || 1 !== l.nodeType) throw Vd("tplrt", p.name, r);
g = {
$attr: {}
}, la(e, b, l);
var v = S(l, [], g);
s(p.scope) && Z(v, !0), a = v.concat(a), ca(c, g)
} else l = o, b.html(g);
for (a.unshift(q), k = W(a, l, c, f, b, p, h, i, j), d(e, function(a, c) {
a == l && (e[c] = b[0])
}), m = P(b[0].childNodes, f); n.length;) {
g = n.shift(), u = n.shift();
var w = n.shift(),
x = n.shift(),
v = b[0];
if (!g.$$destroyed) {
if (u !== o) {
var y = u.className;
j.hasElementTranscludeDirective && p.replace || (v = pa(l)), la(w, Sc(u), v), N(Sc(v), y)
}
u = k.transcludeOnThisElement ? R(g, k.transclude, x) : x, k(m, g, v, e, u)
}
}
n = null
}),
function(a, b, c, d, e) {
a = e, b.$$destroyed || (n ? n.push(b, c, d, a) : (k.transcludeOnThisElement && (a = R(b, k.transclude, e)), k(m, b, c, d, a)))
}
}
function ea(a, b) {
var c = b.priority - a.priority;
return 0 !== c ? c : a.name !== b.name ? a.name < b.name ? -1 : 1 : a.index - b.index
}
function fa(a, b, c, d) {
function e(a) {
return a ? " (module: " + a + ")" : ""
}
if (b) throw Vd("multidir", b.name, e(b.$$moduleName), c.name, e(c.$$moduleName), a, Q(d))
}
function ha(a, b) {
var d = c(b, !0);
d && a.push({
priority: 0,
compile: function(a) {
a = a.parent();
var b = !!a.length;
return b && O.$$addBindingClass(a),
function(a, c) {
var e = c.parent();
b || O.$$addBindingClass(e), O.$$addBindingInfo(e, d.expressions), a.$watch(d, function(a) {
c[0].nodeValue = a
})
}
}
})
}
function ia(b, c) {
switch (b = Xc(b || "html")) {
case "svg":
case "math":
var d = a.document.createElement("div");
return d.innerHTML = "<" + b + ">" + c + "</" + b + ">", d.childNodes[0].childNodes;
default:
return c
}
}
function ja(a, b) {
if ("srcdoc" == b) return D.HTML;
var c = F(a);
return "xlinkHref" == b || "form" == c && "action" == b || "img" != c && ("src" == b || "ngSrc" == b) ? D.RESOURCE_URL : void 0
}
function ka(a, b, d, e, f) {
var g = ja(a, e);
f = t[e] || f;
var h = c(d, !0, g, f);
if (h) {
if ("multiple" === e && "select" === F(a)) throw Vd("selmulti", Q(a));
b.push({
priority: 100,
compile: function() {
return {
pre: function(a, b, i) {
if (b = i.$$observers || (i.$$observers = ga()), w.test(e)) throw Vd("nodomevents");
var j = i[e];
j !== d && (h = j && c(j, !0, g, f), d = j), h && (i[e] = h(a), (b[e] || (b[e] = [])).$$inter = !0, (i.$$observers && i.$$observers[e].$$scope || a).$watch(h, function(a, b) {
"class" === e && a != b ? i.$updateClass(a, b) : i.$set(e, a)
}))
}
}
}
})
}
}
function la(b, c, d) {
var e, f, g = c[0],
h = c.length,
i = g.parentNode;
if (b)
for (e = 0, f = b.length; e < f; e++)
if (b[e] == g) {
b[e++] = d, f = e + h - 1;
for (var j = b.length; e < j; e++, f++) f < j ? b[e] = b[f] : delete b[e];
b.length -= h - 1, b.context === g && (b.context = d);
break
}
for (i && i.replaceChild(d, g), b = a.document.createDocumentFragment(), e = 0; e < h; e++) b.appendChild(c[e]);
for (Sc.hasData(g) && (Sc.data(d, Sc.data(g)), Sc(g).off("$destroy")), Sc.cleanData(b.querySelectorAll("*")), e = 1; e < h; e++) delete c[e];
c[0] = d, c.length = 1
}
function ma(a, b) {
return i(function() {
return a.apply(null, arguments)
}, a, b)
}
function oa(a, b, c, d, e, g) {
try {
a(b, c, d, e, g)
} catch (a) {
f(a, Q(c))
}
}
function qa(a, b, e, f, g) {
function i(b, c, d) {
x(e.$onChanges) && c !== d && (ra || (a.$$postDigest(J), ra = []), k || (k = {}, ra.push(j)), k[b] && (d = k[b].previousValue), k[b] = new Xa(d, c))
}
function j() {
e.$onChanges(k), k = void 0
}
var k, l = [],
n = {};
return d(f, function(d, f) {
var j, k, o, p, q = d.attrName,
r = d.optional;
switch (d.mode) {
case "@":
r || Wc.call(b, q) || (e[f] = b[q] = void 0), b.$observe(q, function(a) {
(u(a) || B(a)) && (i(f, a, e[f]), e[f] = a)
}), b.$$observers[q].$$scope = a, j = b[q], u(j) ? e[f] = c(j)(a) : B(j) && (e[f] = j), n[f] = new Xa(Wd, e[f]);
break;
case "=":
if (!Wc.call(b, q)) {
if (r) break;
b[q] = void 0
}
if (r && !b[q]) break;
k = h(b[q]), p = k.literal ? I : function(a, b) {
return a === b || a !== a && b !== b
}, o = k.assign || function() {
throw j = e[f] = k(a), Vd("nonassign", b[q], q, g.name)
}, j = e[f] = k(a), r = function(b) {
return p(b, e[f]) || (p(b, j) ? o(a, b = e[f]) : e[f] = b), j = b
}, r.$stateful = !0, r = d.collection ? a.$watchCollection(b[q], r) : a.$watch(h(b[q], r), null, k.literal), l.push(r);
break;
case "<":
if (!Wc.call(b, q)) {
if (r) break;
b[q] = void 0
}
if (r && !b[q]) break;
k = h(b[q]);
var s = e[f] = k(a);
n[f] = new Xa(Wd, e[f]), r = a.$watch(k, function(a, b) {
if (b === a) {
if (b === s) return;
b = s
}
i(f, a, b), e[f] = a
}, k.literal), l.push(r);
break;
case "&":
if (k = b.hasOwnProperty(q) ? h(b[q]) : m, k === m && r) break;
e[f] = function(b) {
return k(a, b)
}
}
}), {
initialChanges: n,
removeWatches: l.length && function() {
for (var a = 0, b = l.length; a < b; ++a) l[a]()
}
}
}
var ra, sa = /^\w/,
ta = a.document.createElement("div"),
ua = C;
L.prototype = {
$normalize: Ya,
$addClass: function(a) {
a && 0 < a.length && E.addClass(this.$$element, a)
},
$removeClass: function(a) {
a && 0 < a.length && E.removeClass(this.$$element, a)
},
$updateClass: function(a, b) {
var c = Za(a, b);
c && c.length && E.addClass(this.$$element, c), (c = Za(b, a)) && c.length && E.removeClass(this.$$element, c)
},
$set: function(a, b, c, e) {
var g = Ea(this.$$element[0], a),
h = Gd[a],
i = a;
if (g ? (this.$$element.prop(a, b), e = g) : h && (this[h] = b, i = h), this[a] = b, e ? this.$attr[a] = e : (e = this.$attr[a]) || (this.$attr[a] = e = _(a, "-")), g = F(this.$$element), "a" === g && ("href" === a || "xlinkHref" === a) || "img" === g && "src" === a) this[a] = b = H(b, "src" === a);
else if ("img" === g && "srcset" === a && r(b)) {
for (var g = "", h = hd(b), j = /(\s+\d+x\s*,|\s+\d+w\s*,|\s+,|,\s+)/, j = /\s/.test(h) ? j : /(,)/, h = h.split(j), j = Math.floor(h.length / 2), k = 0; k < j; k++) var l = 2 * k,
g = g + H(hd(h[l]), !0),
g = g + (" " + hd(h[l + 1]));
h = hd(h[2 * k]).split(/\s/), g += H(hd(h[0]), !0), 2 === h.length && (g += " " + hd(h[1])), this[a] = b = g
}!1 !== c && (null === b || q(b) ? this.$$element.removeAttr(e) : sa.test(e) ? this.$$element.attr(e, b) : M(this.$$element[0], e, b)), (a = this.$$observers) && d(a[i], function(a) {
try {
a(b)
} catch (a) {
f(a)
}
})
},
$observe: function(a, b) {
var c = this,
d = c.$$observers || (c.$$observers = ga()),
e = d[a] || (d[a] = []);
return e.push(b), y.$evalAsync(function() {
e.$$inter || !c.hasOwnProperty(a) || q(c[a]) || b(c[a])
}),
function() {
G(e, b)
}
}
};
var va = c.startSymbol(),
wa = c.endSymbol(),
xa = "{{" == va && "}}" == wa ? n : function(a) {
return a.replace(/\{\{/g, va).replace(/}}/g, wa)
},
ya = /^ngAttr[A-Z]/,
za = /^(.+)Start$/;
return O.$$addBindingInfo = z ? function(a, b) {
var c = a.data("$binding") || [];
fd(b) ? c = c.concat(b) : c.push(b), a.data("$binding", c)
} : m, O.$$addBindingClass = z ? function(a) {
N(a, "ng-binding")
} : m, O.$$addScopeInfo = z ? function(a, b, c, d) {
a.data(c ? d ? "$isolateScopeNoTemplate" : "$isolateScope" : "$scope", b)
} : m, O.$$addScopeClass = z ? function(a, b) {
N(a, b ? "ng-isolate-scope" : "ng-scope")
} : m, O.$$createComment = function(b, c) {
var d = "";
return z && (d = " " + (b || "") + ": ", c && (d += c + " ")), a.document.createComment(d)
}, O
}]
}
function Xa(a, b) {
this.previousValue = a, this.currentValue = b
}
function Ya(a) {
return ka(a.replace(Xd, ""))
}
function Za(a, b) {
var c = "",
d = a.split(/\s+/),
e = b.split(/\s+/),
f = 0;
a: for (; f < d.length; f++) {
for (var g = d[f], h = 0; h < e.length; h++)
if (g == e[h]) continue a;
c += (0 < c.length ? " " : "") + g
}
return c
}
function $a(a) {
a = Sc(a);
var b = a.length;
if (1 >= b) return a;
for (; b--;) 8 === a[b].nodeType && $c.call(a, b, 1);
return a
}
function _a(a, b) {
if (b && u(b)) return b;
if (u(a)) {
var c = Zd.exec(a);
if (c) return c[3]
}
}
function ab() {
var a = {},
c = !1;
this.has = function(b) {
return a.hasOwnProperty(b)
}, this.register = function(b, c) {
da(b, "controller"), s(b) ? i(a, b) : a[b] = c
}, this.allowGlobals = function() {
c = !0
}, this.$get = ["$injector", "$window", function(d, e) {
function f(a, c, d, e) {
if (!a || !s(a.$scope)) throw b("$controller")("noscp", e, c);
a.$scope[c] = d
}
return function(b, g, h, j) {
var k, l, m;
if (h = !0 === h, j && u(j) && (m = j), u(b)) {
if (j = b.match(Zd), !j) throw Yd("ctrlfmt", b);
l = j[1], m = m || j[3], b = a.hasOwnProperty(l) ? a[l] : ea(g.$scope, l, !0) || (c ? ea(e, l, !0) : void 0), ca(b, l, !0)
}
return h ? (h = (fd(b) ? b[b.length - 1] : b).prototype, k = Object.create(h || null), m && f(g, m, k, l || b.name), i(function() {
var a = d.invoke(b, k, g, l);
return a !== k && (s(a) || x(a)) && (k = a, m && f(g, m, k, l || b.name)), k
}, {
instance: k,
identifier: m
})) : (k = d.instantiate(b, g, l), m && f(g, m, k, l || b.name), k)
}
}]
}
function bb() {
this.$get = ["$window", function(a) {
return Sc(a.document)
}]
}
function cb() {
this.$get = ["$log", function(a) {
return function(b, c) {
a.error.apply(a, arguments)
}
}]
}
function db(a) {
return s(a) ? w(a) ? a.toISOString() : M(a) : a
}
function eb() {
this.$get = function() {
return function(a) {
if (!a) return "";
var b = [];
return e(a, function(a, c) {
null === a || q(a) || (fd(a) ? d(a, function(a) {
b.push(V(c) + "=" + V(db(a)))
}) : b.push(V(c) + "=" + V(db(a))))
}), b.join("&")
}
}
}
function fb() {
this.$get = function() {
return function(a) {
function b(a, f, g) {
null === a || q(a) || (fd(a) ? d(a, function(a, c) {
b(a, f + "[" + (s(a) ? c : "") + "]")
}) : s(a) && !w(a) ? e(a, function(a, c) {
b(a, f + (g ? "" : "[") + c + (g ? "" : "]"))
}) : c.push(V(f) + "=" + V(db(a))))
}
if (!a) return "";
var c = [];
return b(a, "", !0), c.join("&")
}
}
}
function gb(a, b) {
if (u(a)) {
var c = a.replace(de, "").trim();
if (c) {
var d = b("Content-Type");
(d = d && 0 === d.indexOf(_d)) || (d = (d = c.match(be)) && ce[d[0]].test(c)), d && (a = N(c))
}
}
return a
}
function hb(a) {
var b, c = ga();
return u(a) ? d(a.split("\n"), function(a) {
b = a.indexOf(":");
var d = Xc(hd(a.substr(0, b)));
a = hd(a.substr(b + 1)), d && (c[d] = c[d] ? c[d] + ", " + a : a)
}) : s(a) && d(a, function(a, b) {
var d = Xc(b),
e = hd(a);
d && (c[d] = c[d] ? c[d] + ", " + e : e)
}), c
}
function ib(a) {
var b;
return function(c) {
return b || (b = hb(a)), c ? (c = b[Xc(c)], void 0 === c && (c = null), c) : b
}
}
function jb(a, b, c, e) {
return x(e) ? e(a, b, c) : (d(e, function(d) {
a = d(a, b, c)
}), a)
}
function kb() {
var a = this.defaults = {
transformResponse: [gb],
transformRequest: [function(a) {
return s(a) && "[object File]" !== ad.call(a) && "[object Blob]" !== ad.call(a) && "[object FormData]" !== ad.call(a) ? M(a) : a
}],
headers: {
common: {
Accept: "application/json, text/plain, */*"
},
post: ia(ae),
put: ia(ae),
patch: ia(ae)
},
xsrfCookieName: "XSRF-TOKEN",
xsrfHeaderName: "X-XSRF-TOKEN",
paramSerializer: "$httpParamSerializer"
},
c = !1;
this.useApplyAsync = function(a) {
return r(a) ? (c = !!a, this) : c
};
var e = !0;
this.useLegacyPromiseExtensions = function(a) {
return r(a) ? (e = !!a, this) : e
};
var f = this.interceptors = [];
this.$get = ["$httpBackend", "$$cookieReader", "$cacheFactory", "$rootScope", "$q", "$injector", function(g, h, j, k, l, m) {
function n(c) {
function f(a) {
var b = i({}, a);
return b.data = jb(a.data, a.headers, a.status, h.transformResponse), a = a.status, 200 <= a && 300 > a ? b : l.reject(b)
}
function g(a, b) {
var c, e = {};
return d(a, function(a, d) {
x(a) ? (c = a(b), null != c && (e[d] = c)) : e[d] = a
}), e
}
if (!s(c)) throw b("$http")("badreq", c);
if (!u(c.url)) throw b("$http")("badreq", c.url);
var h = i({
method: "get",
transformRequest: a.transformRequest,
transformResponse: a.transformResponse,
paramSerializer: a.paramSerializer
}, c);
h.headers = function(b) {
var c, d, e, f = a.headers,
h = i({}, b.headers),
f = i({}, f.common, f[Xc(b.method)]);
a: for (c in f) {
d = Xc(c);
for (e in h)
if (Xc(e) === d) continue a;
h[c] = f[c]
}
return g(h, ia(b))
}(c), h.method = Yc(h.method), h.paramSerializer = u(h.paramSerializer) ? m.get(h.paramSerializer) : h.paramSerializer;
var j = [function(b) {
var c = b.headers,
e = jb(b.data, ib(c), void 0, b.transformRequest);
return q(e) && d(c, function(a, b) {
"content-type" === Xc(b) && delete c[b]
}), q(b.withCredentials) && !q(a.withCredentials) && (b.withCredentials = a.withCredentials), o(b, e).then(f, f)
}, void 0],
k = l.when(h);
for (d(v, function(a) {
(a.request || a.requestError) && j.unshift(a.request, a.requestError), (a.response || a.responseError) && j.push(a.response, a.responseError)
}); j.length;) {
c = j.shift();
var n = j.shift(),
k = k.then(c, n)
}
return e ? (k.success = function(a) {
return ca(a, "fn"), k.then(function(b) {
a(b.data, b.status, b.headers, h)
}), k
}, k.error = function(a) {
return ca(a, "fn"), k.then(null, function(b) {
a(b.data, b.status, b.headers, h)
}), k
}) : (k.success = fe("success"), k.error = fe("error")), k
}
function o(b, e) {
function f(a) {
if (a) {
var b = {};
return d(a, function(a, d) {
b[d] = function(b) {
function d() {
a(b)
}
c ? k.$applyAsync(d) : k.$$phase ? d() : k.$apply(d)
}
}), b
}
}
function i(a, b, d, e) {
function f() {
j(b, a, d, e)
}
u && (200 <= a && 300 > a ? u.put(A, [a, b, hb(d), e]) : u.remove(A)), c ? k.$applyAsync(f) : (f(), k.$$phase || k.$apply())
}
function j(a, c, d, e) {
c = -1 <= c ? c : 0, (200 <= c && 300 > c ? w.resolve : w.reject)({
data: a,
status: c,
headers: ib(d),
config: b,
statusText: e
})
}
function m(a) {
j(a.data, a.status, ia(a.headers()), a.statusText)
}
function o() {
var a = n.pendingRequests.indexOf(b); - 1 !== a && n.pendingRequests.splice(a, 1)
}
var u, v, w = l.defer(),
y = w.promise,
z = b.headers,
A = p(b.url, b.paramSerializer(b.params));
return n.pendingRequests.push(b), y.then(o, o), !b.cache && !a.cache || !1 === b.cache || "GET" !== b.method && "JSONP" !== b.method || (u = s(b.cache) ? b.cache : s(a.cache) ? a.cache : t), u && (v = u.get(A), r(v) ? v && x(v.then) ? v.then(m, m) : fd(v) ? j(v[1], v[0], ia(v[2]), v[3]) : j(v, 200, {}, "OK") : u.put(A, y)), q(v) && ((v = hc(b.url) ? h()[b.xsrfCookieName || a.xsrfCookieName] : void 0) && (z[b.xsrfHeaderName || a.xsrfHeaderName] = v), g(b.method, A, e, i, z, b.timeout, b.withCredentials, b.responseType, f(b.eventHandlers), f(b.uploadEventHandlers))), y
}
function p(a, b) {
return 0 < b.length && (a += (-1 == a.indexOf("?") ? "?" : "&") + b), a
}
var t = j("$http");
a.paramSerializer = u(a.paramSerializer) ? m.get(a.paramSerializer) : a.paramSerializer;
var v = [];
return d(f, function(a) {
v.unshift(u(a) ? m.get(a) : m.invoke(a))
}), n.pendingRequests = [],
function(a) {
d(arguments, function(a) {
n[a] = function(b, c) {
return n(i({}, c || {}, {
method: a,
url: b
}))
}
})
}("get", "delete", "head", "jsonp"),
function(a) {
d(arguments, function(a) {
n[a] = function(b, c, d) {
return n(i({}, d || {}, {
method: a,
url: b,
data: c
}))
}
})
}("post", "put", "patch"), n.defaults = a, n
}]
}
function lb() {
this.$get = function() {
return function() {
return new a.XMLHttpRequest
}
}
}
function mb() {
this.$get = ["$browser", "$window", "$document", "$xhrFactory", function(a, b, c, d) {
return nb(a, d, a.defer, b.angular.callbacks, c[0])
}]
}
function nb(a, b, c, e, f) {
function g(a, b, c) {
var d = f.createElement("script"),
g = null;
return d.type = "text/javascript", d.src = a, d.async = !0, g = function(a) {
d.removeEventListener("load", g, !1), d.removeEventListener("error", g, !1), f.body.removeChild(d), d = null;
var h = -1,
i = "unknown";
a && ("load" !== a.type || e[b].called || (a = {
type: "error"
}), i = a.type, h = "error" === a.type ? 404 : 200), c && c(h, i)
}, d.addEventListener("load", g, !1), d.addEventListener("error", g, !1), f.body.appendChild(d), g
}
return function(f, h, i, j, k, l, n, o, p, s) {
function t() {
w && w(), y && y.abort()
}
function u(b, d, e, f, g) {
r(z) && c.cancel(z), w = y = null, b(d, e, f, g), a.$$completeOutstandingRequest(m)
}
if (a.$$incOutstandingRequestCount(), h = h || a.url(), "jsonp" == Xc(f)) {
var v = "_" + (e.counter++).toString(36);
e[v] = function(a) {
e[v].data = a, e[v].called = !0
};
var w = g(h.replace("JSON_CALLBACK", "angular.callbacks." + v), v, function(a, b) {
u(j, a, e[v].data, "", b), e[v] = m
})
} else {
var y = b(f, h);
if (y.open(f, h, !0), d(k, function(a, b) {
r(a) && y.setRequestHeader(b, a)
}), y.onload = function() {
var a = y.statusText || "",
b = "response" in y ? y.response : y.responseText,
c = 1223 === y.status ? 204 : y.status;
0 === c && (c = b ? 200 : "file" == gc(h).protocol ? 404 : 0), u(j, c, b, y.getAllResponseHeaders(), a)
}, f = function() {
u(j, -1, null, null, "")
}, y.onerror = f, y.onabort = f, d(p, function(a, b) {
y.addEventListener(b, a)
}), d(s, function(a, b) {
y.upload.addEventListener(b, a)
}), n && (y.withCredentials = !0), o) try {
y.responseType = o
} catch (a) {
if ("json" !== o) throw a
}
y.send(q(i) ? null : i)
}
if (0 < l) var z = c(t, l);
else l && x(l.then) && l.then(t)
}
}
function ob() {
var a = "{{",
b = "}}";
this.startSymbol = function(b) {
return b ? (a = b, this) : a
}, this.endSymbol = function(a) {
return a ? (b = a, this) : b
}, this.$get = ["$parse", "$exceptionHandler", "$sce", function(c, d, e) {
function f(a) {
return "\\\\\\" + a
}
function g(c) {
return c.replace(m, a).replace(n, b)
}
function h(a, b, c, d) {
var e;
return e = a.$watch(function(a) {
return e(), d(a)
}, b, c)
}
function j(f, j, m, n) {
function p(a) {
try {
var b = a;
a = m ? e.getTrusted(m, b) : e.valueOf(b);
var c;
if (n && !r(a)) c = a;
else if (null == a) c = "";
else {
switch (typeof a) {
case "string":
break;
case "number":
a = "" + a;
break;
default:
a = M(a)
}
c = a
}
return c
} catch (a) {
d(ge.interr(f, a))
}
}
if (!f.length || -1 === f.indexOf(a)) {
var s;
return j || (j = g(f), s = o(j), s.exp = f, s.expressions = [], s.$$watchDelegate = h), s
}
n = !!n;
var t, u, v = 0,
w = [],
y = [];
s = f.length;
for (var z = [], A = []; v < s;) {
if (-1 == (t = f.indexOf(a, v)) || -1 == (u = f.indexOf(b, t + k))) {
v !== s && z.push(g(f.substring(v)));
break
}
v !== t && z.push(g(f.substring(v, t))), v = f.substring(t + k, u), w.push(v), y.push(c(v, p)), v = u + l, A.push(z.length), z.push("")
}
if (m && 1 < z.length && ge.throwNoconcat(f), !j || w.length) {
var B = function(a) {
for (var b = 0, c = w.length; b < c; b++) {
if (n && q(a[b])) return;
z[A[b]] = a[b]
}
return z.join("")
};
return i(function(a) {
var b = 0,
c = w.length,
e = Array(c);
try {
for (; b < c; b++) e[b] = y[b](a);
return B(e)
} catch (a) {
d(ge.interr(f, a))
}
}, {
exp: f,
expressions: w,
$$watchDelegate: function(a, b) {
var c;
return a.$watchGroup(y, function(d, e) {
var f = B(d);
x(b) && b.call(this, f, d !== e ? c : f, a), c = f
})
}
})
}
}
var k = a.length,
l = b.length,
m = new RegExp(a.replace(/./g, f), "g"),
n = new RegExp(b.replace(/./g, f), "g");
return j.startSymbol = function() {
return a
}, j.endSymbol = function() {
return b
}, j
}]
}
function pb() {
this.$get = ["$rootScope", "$window", "$q", "$$q", "$browser", function(a, b, c, d, e) {
function f(f, h, i, j) {
function k() {
l ? f.apply(null, m) : f(p)
}
var l = 4 < arguments.length,
m = l ? Zc.call(arguments, 4) : [],
n = b.setInterval,
o = b.clearInterval,
p = 0,
q = r(j) && !j,
s = (q ? d : c).defer(),
t = s.promise;
return i = r(i) ? i : 0, t.$$intervalId = n(function() {
q ? e.defer(k) : a.$evalAsync(k), s.notify(p++), 0 < i && p >= i && (s.resolve(p), o(t.$$intervalId), delete g[t.$$intervalId]), q || a.$apply()
}, h), g[t.$$intervalId] = s, t
}
var g = {};
return f.cancel = function(a) {
return !!(a && a.$$intervalId in g) && (g[a.$$intervalId].reject("canceled"), b.clearInterval(a.$$intervalId), delete g[a.$$intervalId], !0)
}, f
}]
}
function qb(a) {
a = a.split("/");
for (var b = a.length; b--;) a[b] = U(a[b]);
return a.join("/")
}
function rb(a, b) {
var c = gc(a);
b.$$protocol = c.protocol, b.$$host = c.hostname, b.$$port = k(c.port) || ie[c.protocol] || null
}
function sb(a, b) {
var c = "/" !== a.charAt(0);
c && (a = "/" + a);
var d = gc(a);
b.$$path = decodeURIComponent(c && "/" === d.pathname.charAt(0) ? d.pathname.substring(1) : d.pathname), b.$$search = S(d.search), b.$$hash = decodeURIComponent(d.hash), b.$$path && "/" != b.$$path.charAt(0) && (b.$$path = "/" + b.$$path)
}
function tb(a, b) {
if (0 === b.lastIndexOf(a, 0)) return b.substr(a.length)
}
function ub(a) {
var b = a.indexOf("#");
return -1 == b ? a : a.substr(0, b)
}
function vb(a) {
return a.replace(/(#.+)|#$/, "$1")
}
function wb(a, b, c) {
this.$$html5 = !0, c = c || "", rb(a, this), this.$$parse = function(a) {
var c = tb(b, a);
if (!u(c)) throw je("ipthprfx", a, b);
sb(c, this), this.$$path || (this.$$path = "/"), this.$$compose()
}, this.$$compose = function() {
var a = T(this.$$search),
c = this.$$hash ? "#" + U(this.$$hash) : "";
this.$$url = qb(this.$$path) + (a ? "?" + a : "") + c, this.$$absUrl = b + this.$$url.substr(1)
}, this.$$parseLinkUrl = function(d, e) {
if (e && "#" === e[0]) return this.hash(e.slice(1)), !0;
var f, g;
return r(f = tb(a, d)) ? (g = f, g = r(f = tb(c, f)) ? b + (tb("/", f) || f) : a + g) : r(f = tb(b, d)) ? g = b + f : b == d + "/" && (g = b), g && this.$$parse(g), !!g
}
}
function xb(a, b, c) {
rb(a, this), this.$$parse = function(d) {
var e, f = tb(a, d) || tb(b, d);
q(f) || "#" !== f.charAt(0) ? this.$$html5 ? e = f : (e = "", q(f) && (a = d, this.replace())) : (e = tb(c, f), q(e) && (e = f)), sb(e, this), d = this.$$path;
var f = a,
g = /^\/[A-Z]:(\/.*)/;
0 === e.lastIndexOf(f, 0) && (e = e.replace(f, "")), g.exec(e) || (d = (e = g.exec(d)) ? e[1] : d), this.$$path = d, this.$$compose()
}, this.$$compose = function() {
var b = T(this.$$search),
d = this.$$hash ? "#" + U(this.$$hash) : "";
this.$$url = qb(this.$$path) + (b ? "?" + b : "") + d, this.$$absUrl = a + (this.$$url ? c + this.$$url : "")
}, this.$$parseLinkUrl = function(b, c) {
return ub(a) == ub(b) && (this.$$parse(b), !0)
}
}
function yb(a, b, c) {
this.$$html5 = !0, xb.apply(this, arguments), this.$$parseLinkUrl = function(d, e) {
if (e && "#" === e[0]) return this.hash(e.slice(1)), !0;
var f, g;
return a == ub(d) ? f = d : (g = tb(b, d)) ? f = a + c + g : b === d + "/" && (f = b), f && this.$$parse(f), !!f
}, this.$$compose = function() {
var b = T(this.$$search),
d = this.$$hash ? "#" + U(this.$$hash) : "";
this.$$url = qb(this.$$path) + (b ? "?" + b : "") + d, this.$$absUrl = a + c + this.$$url
}
}
function zb(a) {
return function() {
return this[a]
}
}
function Ab(a, b) {
return function(c) {
return q(c) ? this[a] : (this[a] = b(c), this.$$compose(), this)
}
}
function Bb() {
var a = "",
b = {
enabled: !1,
requireBase: !0,
rewriteLinks: !0
};
this.hashPrefix = function(b) {
return r(b) ? (a = b, this) : a
}, this.html5Mode = function(a) {
return B(a) ? (b.enabled = a, this) : s(a) ? (B(a.enabled) && (b.enabled = a.enabled), B(a.requireBase) && (b.requireBase = a.requireBase), B(a.rewriteLinks) && (b.rewriteLinks = a.rewriteLinks), this) : b
}, this.$get = ["$rootScope", "$browser", "$sniffer", "$rootElement", "$window", function(c, d, e, f, g) {
function h(a, b, c) {
var e = j.url(),
f = j.$$state;
try {
d.url(a, b, c), j.$$state = d.state()
} catch (a) {
throw j.url(e), j.$$state = f, a
}
}
function i(a, b) {
c.$broadcast("$locationChangeSuccess", j.absUrl(), a, j.$$state, b)
}
var j, k;
k = d.baseHref();
var l, m = d.url();
if (b.enabled) {
if (!k && b.requireBase) throw je("nobase");
l = m.substring(0, m.indexOf("/", m.indexOf("//") + 2)) + (k || "/"), k = e.history ? wb : yb
} else l = ub(m), k = xb;
var n = l.substr(0, ub(l).lastIndexOf("/") + 1);
j = new k(l, n, "#" + a), j.$$parseLinkUrl(m, m), j.$$state = d.state();
var o = /^\s*(javascript|mailto):/i;
f.on("click", function(a) {
if (b.rewriteLinks && !a.ctrlKey && !a.metaKey && !a.shiftKey && 2 != a.which && 2 != a.button) {
for (var e = Sc(a.target);
"a" !== F(e[0]);)
if (e[0] === f[0] || !(e = e.parent())[0]) return;
var h = e.prop("href"),
i = e.attr("href") || e.attr("xlink:href");
s(h) && "[object SVGAnimatedString]" === h.toString() && (h = gc(h.animVal).href), o.test(h) || !h || e.attr("target") || a.isDefaultPrevented() || !j.$$parseLinkUrl(h, i) || (a.preventDefault(), j.absUrl() != d.url() && (c.$apply(), g.angular["ff-684208-preventDefault"] = !0))
}
}), vb(j.absUrl()) != vb(m) && d.url(j.absUrl(), !0);
var p = !0;
return d.onUrlChange(function(a, b) {
q(tb(n, a)) ? g.location.href = a : (c.$evalAsync(function() {
var d, e = j.absUrl(),
f = j.$$state;
a = vb(a), j.$$parse(a), j.$$state = b, d = c.$broadcast("$locationChangeStart", a, e, b, f).defaultPrevented, j.absUrl() === a && (d ? (j.$$parse(e), j.$$state = f, h(e, !1, f)) : (p = !1, i(e, f)))
}), c.$$phase || c.$digest())
}), c.$watch(function() {
var a = vb(d.url()),
b = vb(j.absUrl()),
f = d.state(),
g = j.$$replace,
k = a !== b || j.$$html5 && e.history && f !== j.$$state;
(p || k) && (p = !1, c.$evalAsync(function() {
var b = j.absUrl(),
d = c.$broadcast("$locationChangeStart", b, a, j.$$state, f).defaultPrevented;
j.absUrl() === b && (d ? (j.$$parse(a), j.$$state = f) : (k && h(b, g, f === j.$$state ? null : j.$$state), i(a, f)))
})), j.$$replace = !1
}), j
}]
}
function Cb() {
var a = !0,
b = this;
this.debugEnabled = function(b) {
return r(b) ? (a = b, this) : a
}, this.$get = ["$window", function(c) {
function e(a) {
return a instanceof Error && (a.stack ? a = a.message && -1 === a.stack.indexOf(a.message) ? "Error: " + a.message + "\n" + a.stack : a.stack : a.sourceURL && (a = a.message + "\n" + a.sourceURL + ":" + a.line)), a
}
function f(a) {
var b = c.console || {},
f = b[a] || b.log || m;
a = !1;
try {
a = !!f.apply
} catch (a) {}
return a ? function() {
var a = [];
return d(arguments, function(b) {
a.push(e(b))
}), f.apply(b, a)
} : function(a, b) {
f(a, null == b ? "" : b)
}
}
return {
log: f("log"),
info: f("info"),
warn: f("warn"),
error: f("error"),
debug: function() {
var c = f("debug");
return function() {
a && c.apply(b, arguments)
}
}()
}
}]
}
function Db(a, b) {
if ("__defineGetter__" === a || "__defineSetter__" === a || "__lookupGetter__" === a || "__lookupSetter__" === a || "__proto__" === a) throw le("isecfld", b);
return a
}
function Eb(a) {
return a + ""
}
function Fb(a, b) {
if (a) {
if (a.constructor === a) throw le("isecfn", b);
if (a.window === a) throw le("isecwindow", b);
if (a.children && (a.nodeName || a.prop && a.attr && a.find)) throw le("isecdom", b);
if (a === Object) throw le("isecobj", b)
}
return a
}
function Gb(a, b) {
if (a) {
if (a.constructor === a) throw le("isecfn", b);
if (a === me || a === ne || a === oe) throw le("isecff", b)
}
}
function Hb(a, b) {
if (a && (a === (0).constructor || a === (!1).constructor || a === "".constructor || a === {}.constructor || a === [].constructor || a === Function.constructor)) throw le("isecaf", b)
}
function Ib(a, b) {
return "undefined" != typeof a ? a : b
}
function Jb(a, b) {
return "undefined" == typeof a ? b : "undefined" == typeof b ? a : a + b
}
function Kb(a, b) {
var c, e;
switch (a.type) {
case se.Program:
c = !0, d(a.body, function(a) {
Kb(a.expression, b), c = c && a.expression.constant
}), a.constant = c;
break;
case se.Literal:
a.constant = !0, a.toWatch = [];
break;
case se.UnaryExpression:
Kb(a.argument, b), a.constant = a.argument.constant, a.toWatch = a.argument.toWatch;
break;
case se.BinaryExpression:
Kb(a.left, b), Kb(a.right, b), a.constant = a.left.constant && a.right.constant, a.toWatch = a.left.toWatch.concat(a.right.toWatch);
break;
case se.LogicalExpression:
Kb(a.left, b), Kb(a.right, b), a.constant = a.left.constant && a.right.constant, a.toWatch = a.constant ? [] : [a];
break;
case se.ConditionalExpression:
Kb(a.test, b), Kb(a.alternate, b), Kb(a.consequent, b), a.constant = a.test.constant && a.alternate.constant && a.consequent.constant, a.toWatch = a.constant ? [] : [a];
break;
case se.Identifier:
a.constant = !1, a.toWatch = [a];
break;
case se.MemberExpression:
Kb(a.object, b), a.computed && Kb(a.property, b), a.constant = a.object.constant && (!a.computed || a.property.constant), a.toWatch = [a];
break;
case se.CallExpression:
c = !!a.filter && !b(a.callee.name).$stateful, e = [], d(a.arguments, function(a) {
Kb(a, b), c = c && a.constant, a.constant || e.push.apply(e, a.toWatch)
}), a.constant = c, a.toWatch = a.filter && !b(a.callee.name).$stateful ? e : [a];
break;
case se.AssignmentExpression:
Kb(a.left, b), Kb(a.right, b), a.constant = a.left.constant && a.right.constant, a.toWatch = [a];
break;
case se.ArrayExpression:
c = !0, e = [], d(a.elements, function(a) {
Kb(a, b), c = c && a.constant, a.constant || e.push.apply(e, a.toWatch)
}), a.constant = c, a.toWatch = e;
break;
case se.ObjectExpression:
c = !0, e = [], d(a.properties, function(a) {
Kb(a.value, b), c = c && a.value.constant && !a.computed, a.value.constant || e.push.apply(e, a.value.toWatch)
}), a.constant = c, a.toWatch = e;
break;
case se.ThisExpression:
a.constant = !1, a.toWatch = [];
break;
case se.LocalsExpression:
a.constant = !1, a.toWatch = []
}
}
function Lb(a) {
if (1 == a.length) {
a = a[0].expression;
var b = a.toWatch;
return 1 !== b.length ? b : b[0] !== a ? b : void 0
}
}
function Mb(a) {
return a.type === se.Identifier || a.type === se.MemberExpression
}
function Nb(a) {
if (1 === a.body.length && Mb(a.body[0].expression)) return {
type: se.AssignmentExpression,
left: a.body[0].expression,
right: {
type: se.NGValueParameter
},
operator: "="
}
}
function Ob(a) {
return 0 === a.body.length || 1 === a.body.length && (a.body[0].expression.type === se.Literal || a.body[0].expression.type === se.ArrayExpression || a.body[0].expression.type === se.ObjectExpression)
}
function Pb(a, b) {
this.astBuilder = a, this.$filter = b
}
function Qb(a, b) {
this.astBuilder = a, this.$filter = b
}
function Rb(a) {
return "constructor" == a
}
function Sb(a) {
return x(a.valueOf) ? a.valueOf() : ue.call(a)
}
function Tb() {
var a, b, c = ga(),
e = ga(),
f = {
true: !0,
false: !1,
null: null,
undefined: void 0
};
this.addLiteral = function(a, b) {
f[a] = b
}, this.setIdentifierFns = function(c, d) {
return a = c, b = d, this
}, this.$get = ["$filter", function(g) {
function h(a, b, d) {
var f, h, j;
switch (d = d || u, typeof a) {
case "string":
j = a = a.trim();
var q = d ? e : c;
if (f = q[j], !f) {
":" === a.charAt(0) && ":" === a.charAt(1) && (h = !0, a = a.substring(2)), f = d ? t : s;
var r = new re(f);
f = new te(r, g, f).parse(a), f.constant ? f.$$watchDelegate = o : h ? f.$$watchDelegate = f.literal ? n : l : f.inputs && (f.$$watchDelegate = k), d && (f = i(f)), q[j] = f
}
return p(f, b);
case "function":
return p(a, b);
default:
return p(m, b)
}
}
function i(a) {
function b(b, c, d, e) {
var f = u;
u = !0;
try {
return a(b, c, d, e)
} finally {
u = f
}
}
if (!a) return a;
b.$$watchDelegate = a.$$watchDelegate, b.assign = i(a.assign), b.constant = a.constant, b.literal = a.literal;
for (var c = 0; a.inputs && c < a.inputs.length; ++c) a.inputs[c] = i(a.inputs[c]);
return b.inputs = a.inputs, b
}
function j(a, b) {
return null == a || null == b ? a === b : ("object" != typeof a || (a = Sb(a), "object" != typeof a)) && (a === b || a !== a && b !== b)
}
function k(a, b, c, d, e) {
var f, g = d.inputs;
if (1 === g.length) {
var h = j,
g = g[0];
return a.$watch(function(a) {
var b = g(a);
return j(b, h) || (f = d(a, void 0, void 0, [b]), h = b && Sb(b)), f
}, b, c, e)
}
for (var i = [], k = [], l = 0, m = g.length; l < m; l++) i[l] = j, k[l] = null;
return a.$watch(function(a) {
for (var b = !1, c = 0, e = g.length; c < e; c++) {
var h = g[c](a);
(b || (b = !j(h, i[c]))) && (k[c] = h, i[c] = h && Sb(h))
}
return b && (f = d(a, void 0, void 0, k)), f
}, b, c, e)
}
function l(a, b, c, d) {
var e, f;
return e = a.$watch(function(a) {
return d(a)
}, function(a, c, d) {
f = a, x(b) && b.apply(this, arguments), r(a) && d.$$postDigest(function() {
r(f) && e()
})
}, c)
}
function n(a, b, c, e) {
function f(a) {
var b = !0;
return d(a, function(a) {
r(a) || (b = !1)
}), b
}
var g, h;
return g = a.$watch(function(a) {
return e(a)
}, function(a, c, d) {
h = a, x(b) && b.call(this, a, c, d), f(a) && d.$$postDigest(function() {
f(h) && g()
})
}, c)
}
function o(a, b, c, d) {
var e;
return e = a.$watch(function(a) {
return e(), d(a)
}, b, c)
}
function p(a, b) {
if (!b) return a;
var c = a.$$watchDelegate,
d = !1,
c = c !== n && c !== l ? function(c, e, f, g) {
return f = d && g ? g[0] : a(c, e, f, g), b(f, c, e)
} : function(c, d, e, f) {
return e = a(c, d, e, f), c = b(e, c, d), r(e) ? c : e
};
return a.$$watchDelegate && a.$$watchDelegate !== k ? c.$$watchDelegate = a.$$watchDelegate : b.$stateful || (c.$$watchDelegate = k, d = !a.inputs, c.inputs = a.inputs ? a.inputs : [a]), c
}
var q = jd().noUnsafeEval,
s = {
csp: q,
expensiveChecks: !1,
literals: H(f),
isIdentifierStart: x(a) && a,
isIdentifierContinue: x(b) && b
},
t = {
csp: q,
expensiveChecks: !0,
literals: H(f),
isIdentifierStart: x(a) && a,
isIdentifierContinue: x(b) && b
},
u = !1;
return h.$$runningExpensiveChecks = function() {
return u
}, h
}]
}
function Ub() {
this.$get = ["$rootScope", "$exceptionHandler", function(a, b) {
return Wb(function(b) {
a.$evalAsync(b)
}, b)
}]
}
function Vb() {
this.$get = ["$browser", "$exceptionHandler", function(a, b) {
return Wb(function(b) {
a.defer(b)
}, b)
}]
}
function Wb(a, c) {
function e() {
this.$$state = {
status: 0
}
}
function f(a, b) {
return function(c) {
b.call(a, c)
}
}
function g(b) {
!b.processScheduled && b.pending && (b.processScheduled = !0, a(function() {
var a, d, e;
e = b.pending, b.processScheduled = !1, b.pending = void 0;
for (var f = 0, g = e.length; f < g; ++f) {
d = e[f][0], a = e[f][b.status];
try {
x(a) ? d.resolve(a(b.value)) : 1 === b.status ? d.resolve(b.value) : d.reject(b.value)
} catch (a) {
d.reject(a), c(a)
}
}
}))
}
function h() {
this.promise = new e
}
var j = b("$q", TypeError);
i(e.prototype, {
then: function(a, b, c) {
if (q(a) && q(b) && q(c)) return this;
var d = new h;
return this.$$state.pending = this.$$state.pending || [], this.$$state.pending.push([d, a, b, c]), 0 < this.$$state.status && g(this.$$state), d.promise
},
catch: function(a) {
return this.then(null, a)
},
finally: function(a, b) {
return this.then(function(b) {
return l(b, !0, a)
}, function(b) {
return l(b, !1, a)
}, b)
}
}), i(h.prototype, {
resolve: function(a) {
this.promise.$$state.status || (a === this.promise ? this.$$reject(j("qcycle", a)) : this.$$resolve(a))
},
$$resolve: function(a) {
function b(a) {
i || (i = !0, h.$$resolve(a))
}
function d(a) {
i || (i = !0, h.$$reject(a))
}
var e, h = this,
i = !1;
try {
(s(a) || x(a)) && (e = a && a.then), x(e) ? (this.promise.$$state.status = -1, e.call(a, b, d, f(this, this.notify))) : (this.promise.$$state.value = a, this.promise.$$state.status = 1, g(this.promise.$$state))
} catch (a) {
d(a), c(a)
}
},
reject: function(a) {
this.promise.$$state.status || this.$$reject(a)
},
$$reject: function(a) {
this.promise.$$state.value = a, this.promise.$$state.status = 2, g(this.promise.$$state)
},
notify: function(b) {
var d = this.promise.$$state.pending;
0 >= this.promise.$$state.status && d && d.length && a(function() {
for (var a, e, f = 0, g = d.length; f < g; f++) {
e = d[f][0], a = d[f][3];
try {
e.notify(x(a) ? a(b) : b)
} catch (a) {
c(a)
}
}
})
}
});
var k = function(a, b) {
var c = new h;
return b ? c.resolve(a) : c.reject(a), c.promise
},
l = function(a, b, c) {
var d = null;
try {
x(c) && (d = c())
} catch (a) {
return k(a, !1)
}
return d && x(d.then) ? d.then(function() {
return k(a, b)
}, function(a) {
return k(a, !1)
}) : k(a, b)
},
m = function(a, b, c, d) {
var e = new h;
return e.resolve(a), e.promise.then(b, c, d)
},
n = function(a) {
if (!x(a)) throw j("norslvr", a);
var b = new h;
return a(function(a) {
b.resolve(a)
}, function(a) {
b.reject(a)
}), b.promise
};
return n.prototype = e.prototype, n.defer = function() {
var a = new h;
return a.resolve = f(a, a.resolve), a.reject = f(a, a.reject), a.notify = f(a, a.notify), a
}, n.reject = function(a) {
var b = new h;
return b.reject(a), b.promise
}, n.when = m, n.resolve = m, n.all = function(a) {
var b = new h,
c = 0,
e = fd(a) ? [] : {};
return d(a, function(a, d) {
c++, m(a).then(function(a) {
e.hasOwnProperty(d) || (e[d] = a, --c || b.resolve(e))
}, function(a) {
e.hasOwnProperty(d) || b.reject(a)
})
}), 0 === c && b.resolve(e), b.promise
}, n
}
function Xb() {
this.$get = ["$window", "$timeout", function(a, b) {
var c = a.requestAnimationFrame || a.webkitRequestAnimationFrame,
d = a.cancelAnimationFrame || a.webkitCancelAnimationFrame || a.webkitCancelRequestAnimationFrame,
e = !!c,
f = e ? function(a) {
var b = c(a);
return function() {
d(b)
}
} : function(a) {
var c = b(a, 16.66, !1);
return function() {
b.cancel(c)
}
};
return f.supported = e, f
}]
}
function Yb() {
function a(a) {
function b() {
this.$$watchers = this.$$nextSibling = this.$$childHead = this.$$childTail = null, this.$$listeners = {}, this.$$listenerCount = {}, this.$$watchersCount = 0, this.$id = ++ed, this.$$ChildScope = null
}
return b.prototype = a, b
}
var e = 10,
f = b("$rootScope"),
g = null,
h = null;
this.digestTtl = function(a) {
return arguments.length && (e = a), e
}, this.$get = ["$exceptionHandler", "$parse", "$browser", function(b, i, j) {
function k(a) {
a.currentScope.$$destroyed = !0
}
function l(a) {
9 === Rc && (a.$$childHead && l(a.$$childHead), a.$$nextSibling && l(a.$$nextSibling)), a.$parent = a.$$nextSibling = a.$$prevSibling = a.$$childHead = a.$$childTail = a.$root = a.$$watchers = null
}
function n() {
this.$id = ++ed, this.$$phase = this.$parent = this.$$watchers = this.$$nextSibling = this.$$prevSibling = this.$$childHead = this.$$childTail = null, this.$root = this, this.$$destroyed = !1, this.$$listeners = {}, this.$$listenerCount = {}, this.$$watchersCount = 0, this.$$isolateBindings = null
}
function o(a) {
if (w.$$phase) throw f("inprog", w.$$phase);
w.$$phase = a
}
function p(a, b) {
do a.$$watchersCount += b; while (a = a.$parent)
}
function r(a, b, c) {
do a.$$listenerCount[c] -= b, 0 === a.$$listenerCount[c] && delete a.$$listenerCount[c]; while (a = a.$parent)
}
function t() {}
function u() {
for (; A.length;) try {
A.shift()()
} catch (a) {
b(a)
}
h = null
}
function v() {
null === h && (h = j.defer(function() {
w.$apply(u)
}))
}
n.prototype = {
constructor: n,
$new: function(b, c) {
var d;
return c = c || this, b ? (d = new n, d.$root = this.$root) : (this.$$ChildScope || (this.$$ChildScope = a(this)), d = new this.$$ChildScope), d.$parent = c, d.$$prevSibling = c.$$childTail, c.$$childHead ? (c.$$childTail.$$nextSibling = d, c.$$childTail = d) : c.$$childHead = c.$$childTail = d, (b || c != this) && d.$on("$destroy", k), d
},
$watch: function(a, b, c, d) {
var e = i(a);
if (e.$$watchDelegate) return e.$$watchDelegate(this, b, c, e, a);
var f = this,
h = f.$$watchers,
j = {
fn: b,
last: t,
get: e,
exp: d || a,
eq: !!c
};
return g = null, x(b) || (j.fn = m), h || (h = f.$$watchers = []), h.unshift(j), p(this, 1),
function() {
0 <= G(h, j) && p(f, -1), g = null
}
},
$watchGroup: function(a, b) {
function c() {
i = !1, j ? (j = !1, b(f, f, h)) : b(f, e, h)
}
var e = Array(a.length),
f = Array(a.length),
g = [],
h = this,
i = !1,
j = !0;
if (!a.length) {
var k = !0;
return h.$evalAsync(function() {
k && b(f, f, h)
}),
function() {
k = !1
}
}
return 1 === a.length ? this.$watch(a[0], function(a, c, d) {
f[0] = a, e[0] = c, b(f, a === c ? f : e, d)
}) : (d(a, function(a, b) {
var d = h.$watch(a, function(a, d) {
f[b] = a, e[b] = d, i || (i = !0, h.$evalAsync(c))
});
g.push(d)
}), function() {
for (; g.length;) g.shift()()
})
},
$watchCollection: function(a, b) {
function d(a) {
e = a;
var b, d, g, h;
if (!q(e)) {
if (s(e))
if (c(e))
for (f !== m && (f = m, p = f.length = 0, k++), a = e.length, p !== a && (k++, f.length = p = a), b = 0; b < a; b++) h = f[b], g = e[b], d = h !== h && g !== g, d || h === g || (k++, f[b] = g);
else {
f !== n && (f = n = {}, p = 0, k++), a = 0;
for (b in e) Wc.call(e, b) && (a++, g = e[b], h = f[b], b in f ? (d = h !== h && g !== g, d || h === g || (k++, f[b] = g)) : (p++, f[b] = g, k++));
if (p > a)
for (b in k++, f) Wc.call(e, b) || (p--, delete f[b])
}
else f !== e && (f = e, k++);
return k
}
}
d.$stateful = !0;
var e, f, g, h = this,
j = 1 < b.length,
k = 0,
l = i(a, d),
m = [],
n = {},
o = !0,
p = 0;
return this.$watch(l, function() {
if (o ? (o = !1, b(e, e, h)) : b(e, g, h), j)
if (s(e))
if (c(e)) {
g = Array(e.length);
for (var a = 0; a < e.length; a++) g[a] = e[a]
} else
for (a in g = {}, e) Wc.call(e, a) && (g[a] = e[a]);
else g = e
})
},
$digest: function() {
var a, c, d, i, k, l, m, n, p, q, r, s = e,
v = [];
o("$digest"), j.$$checkUrlChange(), this === w && null !== h && (j.defer.cancel(h), u()), g = null;
do {
for (n = !1, p = this, l = 0; l < y.length; l++) {
try {
r = y[l], r.scope.$eval(r.expression, r.locals)
} catch (a) {
b(a)
}
g = null
}
y.length = 0;
a: do {
if (l = p.$$watchers)
for (m = l.length; m--;) try {
if (a = l[m])
if (k = a.get, (c = k(p)) === (d = a.last) || (a.eq ? I(c, d) : "number" == typeof c && "number" == typeof d && isNaN(c) && isNaN(d))) {
if (a === g) {
n = !1;
break a
}
} else n = !0, g = a, a.last = a.eq ? H(c, null) : c, i = a.fn, i(c, d === t ? c : d, p), 5 > s && (q = 4 - s, v[q] || (v[q] = []), v[q].push({
msg: x(a.exp) ? "fn: " + (a.exp.name || a.exp.toString()) : a.exp,
newVal: c,
oldVal: d
}))
} catch (a) {
b(a)
}
if (!(l = p.$$watchersCount && p.$$childHead || p !== this && p.$$nextSibling))
for (; p !== this && !(l = p.$$nextSibling);) p = p.$parent
} while (p = l);
if ((n || y.length) && !s--) throw w.$$phase = null, f("infdig", e, v)
} while (n || y.length);
for (w.$$phase = null; B < z.length;) try {
z[B++]()
} catch (a) {
b(a)
}
z.length = B = 0
},
$destroy: function() {
if (!this.$$destroyed) {
var a = this.$parent;
this.$broadcast("$destroy"), this.$$destroyed = !0, this === w && j.$$applicationDestroyed(), p(this, -this.$$watchersCount);
for (var b in this.$$listenerCount) r(this, this.$$listenerCount[b], b);
a && a.$$childHead == this && (a.$$childHead = this.$$nextSibling), a && a.$$childTail == this && (a.$$childTail = this.$$prevSibling), this.$$prevSibling && (this.$$prevSibling.$$nextSibling = this.$$nextSibling), this.$$nextSibling && (this.$$nextSibling.$$prevSibling = this.$$prevSibling), this.$destroy = this.$digest = this.$apply = this.$evalAsync = this.$applyAsync = m, this.$on = this.$watch = this.$watchGroup = function() {
return m
}, this.$$listeners = {}, this.$$nextSibling = null, l(this)
}
},
$eval: function(a, b) {
return i(a)(this, b)
},
$evalAsync: function(a, b) {
w.$$phase || y.length || j.defer(function() {
y.length && w.$digest()
}), y.push({
scope: this,
expression: i(a),
locals: b
})
},
$$postDigest: function(a) {
z.push(a)
},
$apply: function(a) {
try {
o("$apply");
try {
return this.$eval(a)
} finally {
w.$$phase = null
}
} catch (a) {
b(a)
} finally {
try {
w.$digest()
} catch (a) {
throw b(a), a
}
}
},
$applyAsync: function(a) {
function b() {
c.$eval(a)
}
var c = this;
a && A.push(b), a = i(a), v()
},
$on: function(a, b) {
var c = this.$$listeners[a];
c || (this.$$listeners[a] = c = []), c.push(b);
var d = this;
do d.$$listenerCount[a] || (d.$$listenerCount[a] = 0), d.$$listenerCount[a]++; while (d = d.$parent);
var e = this;
return function() {
var d = c.indexOf(b); - 1 !== d && (c[d] = null, r(e, 1, a))
}
},
$emit: function(a, c) {
var d, e, f, g = [],
h = this,
i = !1,
j = {
name: a,
targetScope: h,
stopPropagation: function() {
i = !0
},
preventDefault: function() {
j.defaultPrevented = !0
},
defaultPrevented: !1
},
k = J([j], arguments, 1);
do {
for (d = h.$$listeners[a] || g, j.currentScope = h, e = 0, f = d.length; e < f; e++)
if (d[e]) try {
d[e].apply(null, k)
} catch (a) {
b(a)
} else d.splice(e, 1), e--, f--;
if (i) return j.currentScope = null, j;
h = h.$parent
} while (h);
return j.currentScope = null, j
},
$broadcast: function(a, c) {
var d = this,
e = this,
f = {
name: a,
targetScope: this,
preventDefault: function() {
f.defaultPrevented = !0
},
defaultPrevented: !1
};
if (!this.$$listenerCount[a]) return f;
for (var g, h, i = J([f], arguments, 1); d = e;) {
for (f.currentScope = d, e = d.$$listeners[a] || [], g = 0, h = e.length; g < h; g++)
if (e[g]) try {
e[g].apply(null, i)
} catch (a) {
b(a)
} else e.splice(g, 1), g--, h--;
if (!(e = d.$$listenerCount[a] && d.$$childHead || d !== this && d.$$nextSibling))
for (; d !== this && !(e = d.$$nextSibling);) d = d.$parent
}
return f.currentScope = null, f
}
};
var w = new n,
y = w.$$asyncQueue = [],
z = w.$$postDigestQueue = [],
A = w.$$applyAsyncQueue = [],
B = 0;
return w
}]
}
function Zb() {
var a = /^\s*(https?|ftp|mailto|tel|file):/,
b = /^\s*((https?|ftp|file|blob):|data:image\/)/;
this.aHrefSanitizationWhitelist = function(b) {
return r(b) ? (a = b, this) : a
}, this.imgSrcSanitizationWhitelist = function(a) {
return r(a) ? (b = a, this) : b
}, this.$get = function() {
return function(c, d) {
var e, f = d ? b : a;
return e = gc(c).href, "" === e || e.match(f) ? c : "unsafe:" + e
}
}
}
function $b(a) {
if ("self" === a) return a;
if (u(a)) {
if (-1 < a.indexOf("***")) throw ve("iwcard", a);
return a = id(a).replace("\\*\\*", ".*").replace("\\*", "[^:/.?&;]*"), new RegExp("^" + a + "$")
}
if (y(a)) return new RegExp("^" + a.source + "$");
throw ve("imatcher")
}
function _b(a) {
var b = [];
return r(a) && d(a, function(a) {
b.push($b(a))
}), b
}
function ac() {
this.SCE_CONTEXTS = we;
var a = ["self"],
b = [];
this.resourceUrlWhitelist = function(b) {
return arguments.length && (a = _b(b)), a
}, this.resourceUrlBlacklist = function(a) {
return arguments.length && (b = _b(a)), b
}, this.$get = ["$injector", function(c) {
function d(a, b) {
return "self" === a ? hc(b) : !!a.exec(b.href)
}
function e(a) {
var b = function(a) {
this.$$unwrapTrustedValue = function() {
return a
}
};
return a && (b.prototype = new a), b.prototype.valueOf = function() {
return this.$$unwrapTrustedValue()
}, b.prototype.toString = function() {
return this.$$unwrapTrustedValue().toString()
}, b
}
var f = function(a) {
throw ve("unsafe")
};
c.has("$sanitize") && (f = c.get("$sanitize"));
var g = e(),
h = {};
return h[we.HTML] = e(g), h[we.CSS] = e(g), h[we.URL] = e(g), h[we.JS] = e(g), h[we.RESOURCE_URL] = e(h[we.URL]), {
trustAs: function(a, b) {
var c = h.hasOwnProperty(a) ? h[a] : null;
if (!c) throw ve("icontext", a, b);
if (null === b || q(b) || "" === b) return b;
if ("string" != typeof b) throw ve("itype", a);
return new c(b)
},
getTrusted: function(c, e) {
if (null === e || q(e) || "" === e) return e;
var g = h.hasOwnProperty(c) ? h[c] : null;
if (g && e instanceof g) return e.$$unwrapTrustedValue();
if (c === we.RESOURCE_URL) {
var i, j, g = gc(e.toString()),
k = !1;
for (i = 0, j = a.length; i < j; i++)
if (d(a[i], g)) {
k = !0;
break
}
if (k)
for (i = 0, j = b.length; i < j; i++)
if (d(b[i], g)) {
k = !1;
break
}
if (k) return e;
throw ve("insecurl", e.toString())
}
if (c === we.HTML) return f(e);
throw ve("unsafe")
},
valueOf: function(a) {
return a instanceof g ? a.$$unwrapTrustedValue() : a
}
}
}]
}
function bc() {
var a = !0;
this.enabled = function(b) {
return arguments.length && (a = !!b), a
}, this.$get = ["$parse", "$sceDelegate", function(b, c) {
if (a && 8 > Rc) throw ve("iequirks");
var e = ia(we);
e.isEnabled = function() {
return a
}, e.trustAs = c.trustAs, e.getTrusted = c.getTrusted, e.valueOf = c.valueOf, a || (e.trustAs = e.getTrusted = function(a, b) {
return b
}, e.valueOf = n), e.parseAs = function(a, c) {
var d = b(c);
return d.literal && d.constant ? d : b(c, function(b) {
return e.getTrusted(a, b)
})
};
var f = e.parseAs,
g = e.getTrusted,
h = e.trustAs;
return d(we, function(a, b) {
var c = Xc(b);
e[ka("parse_as_" + c)] = function(b) {
return f(a, b)
}, e[ka("get_trusted_" + c)] = function(b) {
return g(a, b)
}, e[ka("trust_as_" + c)] = function(b) {
return h(a, b)
}
}), e
}]
}
function cc() {
this.$get = ["$window", "$document", function(a, b) {
var c, d = {},
e = !(a.chrome && a.chrome.app && a.chrome.app.runtime) && a.history && a.history.pushState,
f = k((/android (\d+)/.exec(Xc((a.navigator || {}).userAgent)) || [])[1]),
g = /Boxee/i.test((a.navigator || {}).userAgent),
h = b[0] || {},
i = /^(Moz|webkit|ms)(?=[A-Z])/,
j = h.body && h.body.style,
l = !1,
m = !1;
if (j) {
for (var n in j)
if (l = i.exec(n)) {
c = l[0], c = c[0].toUpperCase() + c.substr(1);
break
}
c || (c = "WebkitOpacity" in j && "webkit"), l = !!("transition" in j || c + "Transition" in j), m = !!("animation" in j || c + "Animation" in j), !f || l && m || (l = u(j.webkitTransition), m = u(j.webkitAnimation))
}
return {
history: !(!e || 4 > f || g),
hasEvent: function(a) {
if ("input" === a && 11 >= Rc) return !1;
if (q(d[a])) {
var b = h.createElement("div");
d[a] = "on" + a in b
}
return d[a]
},
csp: jd(),
vendorPrefix: c,
transitions: l,
animations: m,
android: f
}
}]
}
function dc() {
var a;
this.httpOptions = function(b) {
return b ? (a = b, this) : a
}, this.$get = ["$templateCache", "$http", "$q", "$sce", function(b, c, d, e) {
function f(g, h) {
f.totalPendingRequests++, u(g) && !q(b.get(g)) || (g = e.getTrustedResourceUrl(g));
var j = c.defaults && c.defaults.transformResponse;
return fd(j) ? j = j.filter(function(a) {
return a !== gb
}) : j === gb && (j = null), c.get(g, i({
cache: b,
transformResponse: j
}, a)).finally(function() {
f.totalPendingRequests--
}).then(function(a) {
return b.put(g, a.data), a.data
}, function(a) {
if (!h) throw xe("tpload", g, a.status, a.statusText);
return d.reject(a)
})
}
return f.totalPendingRequests = 0, f
}]
}
function ec() {
this.$get = ["$rootScope", "$browser", "$location", function(a, b, c) {
return {
findBindings: function(a, b, c) {
a = a.getElementsByClassName("ng-binding");
var e = [];
return d(a, function(a) {
var f = dd.element(a).data("$binding");
f && d(f, function(d) {
c ? new RegExp("(^|\\s)" + id(b) + "(\\s|\\||$)").test(d) && e.push(a) : -1 != d.indexOf(b) && e.push(a)
})
}), e
},
findModels: function(a, b, c) {
for (var d = ["ng-", "data-ng-", "ng\\:"], e = 0; e < d.length; ++e) {
var f = a.querySelectorAll("[" + d[e] + "model" + (c ? "=" : "*=") + '"' + b + '"]');
if (f.length) return f
}
},
getLocation: function() {
return c.url()
},
setLocation: function(b) {
b !== c.url() && (c.url(b), a.$digest())
},
whenStable: function(a) {
b.notifyWhenNoOutstandingRequests(a)
}
}
}]
}
function fc() {
this.$get = ["$rootScope", "$browser", "$q", "$$q", "$exceptionHandler", function(a, b, c, d, e) {
function f(f, h, i) {
x(f) || (i = h, h = f, f = m);
var j, k = Zc.call(arguments, 3),
l = r(i) && !i,
n = (l ? d : c).defer(),
o = n.promise;
return j = b.defer(function() {
try {
n.resolve(f.apply(null, k))
} catch (a) {
n.reject(a), e(a)
} finally {
delete g[o.$$timeoutId]
}
l || a.$apply()
}, h), o.$$timeoutId = j, g[j] = n, o
}
var g = {};
return f.cancel = function(a) {
return !!(a && a.$$timeoutId in g) && (g[a.$$timeoutId].reject("canceled"), delete g[a.$$timeoutId], b.defer.cancel(a.$$timeoutId))
}, f
}]
}
function gc(a) {
return Rc && (ye.setAttribute("href", a), a = ye.href), ye.setAttribute("href", a), {
href: ye.href,
protocol: ye.protocol ? ye.protocol.replace(/:$/, "") : "",
host: ye.host,
search: ye.search ? ye.search.replace(/^\?/, "") : "",
hash: ye.hash ? ye.hash.replace(/^#/, "") : "",
hostname: ye.hostname,
port: ye.port,
pathname: "/" === ye.pathname.charAt(0) ? ye.pathname : "/" + ye.pathname
}
}
function hc(a) {
return a = u(a) ? gc(a) : a, a.protocol === ze.protocol && a.host === ze.host
}
function ic() {
this.$get = o(a)
}
function jc(a) {
function b(a) {
try {
return decodeURIComponent(a)
} catch (b) {
return a
}
}
var c = a[0] || {},
d = {},
e = "";
return function() {
var a, f, g, h, i;
if (a = c.cookie || "", a !== e)
for (e = a, a = e.split("; "), d = {}, g = 0; g < a.length; g++) f = a[g], h = f.indexOf("="), 0 < h && (i = b(f.substring(0, h)), q(d[i]) && (d[i] = b(f.substring(h + 1))));
return d
}
}
function kc() {
this.$get = jc
}
function lc(a) {
function b(c, e) {
if (s(c)) {
var f = {};
return d(c, function(a, c) {
f[c] = b(c, a)
}), f
}
return a.factory(c + "Filter", e)
}
this.register = b, this.$get = ["$injector", function(a) {
return function(b) {
return a.get(b + "Filter")
}
}], b("currency", qc), b("date", Bc), b("filter", mc), b("json", Cc), b("limitTo", Dc), b("lowercase", Ge), b("number", rc), b("orderBy", Fc), b("uppercase", He)
}
function mc() {
return function(a, d, e) {
if (!c(a)) {
if (null == a) return a;
throw b("filter")("notarray", a)
}
var f;
switch (pc(d)) {
case "function":
break;
case "boolean":
case "null":
case "number":
case "string":
f = !0;
case "object":
d = nc(d, e, f);
break;
default:
return a
}
return Array.prototype.filter.call(a, d)
}
}
function nc(a, b, c) {
var d = s(a) && "$" in a;
return !0 === b ? b = I : x(b) || (b = function(a, b) {
return !q(a) && (null === a || null === b ? a === b : !(s(b) || s(a) && !p(a)) && (a = Xc("" + a), b = Xc("" + b), -1 !== a.indexOf(b)))
}),
function(e) {
return d && !s(e) ? oc(e, a.$, b, !1) : oc(e, a, b, c)
}
}
function oc(a, b, c, d, e) {
var f = pc(a),
g = pc(b);
if ("string" === g && "!" === b.charAt(0)) return !oc(a, b.substring(1), c, d);
if (fd(a)) return a.some(function(a) {
return oc(a, b, c, d)
});
switch (f) {
case "object":
var h;
if (d) {
for (h in a)
if ("$" !== h.charAt(0) && oc(a[h], b, c, !0)) return !0;
return !e && oc(a, b, c, !1)
}
if ("object" === g) {
for (h in b)
if (e = b[h], !x(e) && !q(e) && (f = "$" === h, !oc(f ? a : a[h], e, c, f, f))) return !1;
return !0
}
return c(a, b);
case "function":
return !1;
default:
return c(a, b)
}
}
function pc(a) {
return null === a ? "null" : typeof a
}
function qc(a) {
var b = a.NUMBER_FORMATS;
return function(a, c, d) {
return q(c) && (c = b.CURRENCY_SYM), q(d) && (d = b.PATTERNS[1].maxFrac), null == a ? a : uc(a, b.PATTERNS[1], b.GROUP_SEP, b.DECIMAL_SEP, d).replace(/\u00A4/g, c)
}
}
function rc(a) {
var b = a.NUMBER_FORMATS;
return function(a, c) {
return null == a ? a : uc(a, b.PATTERNS[0], b.GROUP_SEP, b.DECIMAL_SEP, c)
}
}
function sc(a) {
var b, c, d, e, f, g = 0;
for (-1 < (c = a.indexOf(Be)) && (a = a.replace(Be, "")), 0 < (d = a.search(/e/i)) ? (0 > c && (c = d), c += +a.slice(d + 1), a = a.substring(0, d)) : 0 > c && (c = a.length), d = 0; a.charAt(d) == Ce; d++);
if (d == (f = a.length)) b = [0], c = 1;
else {
for (f--; a.charAt(f) == Ce;) f--;
for (c -= d, b = [], e = 0; d <= f; d++, e++) b[e] = +a.charAt(d)
}
return c > Ae && (b = b.splice(0, Ae - 1), g = c - 1, c = 1), {
d: b,
e: g,
i: c
}
}
function tc(a, b, c, d) {
var e = a.d,
f = e.length - a.i;
if (b = q(b) ? Math.min(Math.max(c, f), d) : +b, c = b + a.i, d = e[c], 0 < c) {
e.splice(Math.max(a.i, c));
for (var g = c; g < e.length; g++) e[g] = 0
} else
for (f = Math.max(0, f), a.i = 1, e.length = Math.max(1, c = b + 1), e[0] = 0, g = 1; g < c; g++) e[g] = 0;
if (5 <= d)
if (0 > c - 1) {
for (d = 0; d > c; d--) e.unshift(0), a.i++;
e.unshift(1), a.i++
} else e[c - 1]++;
for (; f < Math.max(0, b); f++) e.push(0);
(b = e.reduceRight(function(a, b, c, d) {
return b += a, d[c] = b % 10, Math.floor(b / 10)
}, 0)) && (e.unshift(b), a.i++)
}
function uc(a, b, c, d, e) {
if (!u(a) && !v(a) || isNaN(a)) return "";
var f = !isFinite(a),
g = !1,
h = Math.abs(a) + "",
i = "";
if (f) i = "∞";
else {
for (g = sc(h), tc(g, e, b.minFrac, b.maxFrac), i = g.d, h = g.i, e = g.e, f = [], g = i.reduce(function(a, b) {
return a && !b
}, !0); 0 > h;) i.unshift(0), h++;
for (0 < h ? f = i.splice(h, i.length) : (f = i, i = [0]), h = [], i.length >= b.lgSize && h.unshift(i.splice(-b.lgSize, i.length).join("")); i.length > b.gSize;) h.unshift(i.splice(-b.gSize, i.length).join(""));
i.length && h.unshift(i.join("")), i = h.join(c), f.length && (i += d + f.join("")), e && (i += "e+" + e)
}
return 0 > a && !g ? b.negPre + i + b.negSuf : b.posPre + i + b.posSuf
}
function vc(a, b, c, d) {
var e = "";
for ((0 > a || d && 0 >= a) && (d ? a = -a + 1 : (a = -a, e = "-")), a = "" + a; a.length < b;) a = Ce + a;
return c && (a = a.substr(a.length - b)), e + a
}
function wc(a, b, c, d, e) {
return c = c || 0,
function(f) {
return f = f["get" + a](), (0 < c || f > -c) && (f += c), 0 === f && -12 == c && (f = 12), vc(f, b, d, e)
}
}
function xc(a, b, c) {
return function(d, e) {
var f = d["get" + a](),
g = Yc((c ? "STANDALONE" : "") + (b ? "SHORT" : "") + a);
return e[g][f]
}
}
function yc(a) {
var b = new Date(a, 0, 1).getDay();
return new Date(a, 0, (4 >= b ? 5 : 12) - b)
}
function zc(a) {
return function(b) {
var c = yc(b.getFullYear());
return b = +new Date(b.getFullYear(), b.getMonth(), b.getDate() + (4 - b.getDay())) - +c, b = 1 + Math.round(b / 6048e5), vc(b, a)
}
}
function Ac(a, b) {
return 0 >= a.getFullYear() ? b.ERAS[0] : b.ERAS[1]
}
function Bc(a) {
function b(a) {
var b;
if (b = a.match(c)) {
a = new Date(0);
var d = 0,
e = 0,
f = b[8] ? a.setUTCFullYear : a.setFullYear,
g = b[8] ? a.setUTCHours : a.setHours;
b[9] && (d = k(b[9] + b[10]), e = k(b[9] + b[11])), f.call(a, k(b[1]), k(b[2]) - 1, k(b[3])), d = k(b[4] || 0) - d, e = k(b[5] || 0) - e, f = k(b[6] || 0), b = Math.round(1e3 * parseFloat("0." + (b[7] || 0))), g.call(a, d, e, f, b)
}
return a
}
var c = /^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;
return function(c, e, f) {
var g, h, i = "",
j = [];
if (e = e || "mediumDate", e = a.DATETIME_FORMATS[e] || e, u(c) && (c = Fe.test(c) ? k(c) : b(c)), v(c) && (c = new Date(c)), !w(c) || !isFinite(c.getTime())) return c;
for (; e;)(h = Ee.exec(e)) ? (j = J(j, h, 1), e = j.pop()) : (j.push(e), e = null);
var l = c.getTimezoneOffset();
return f && (l = O(f, l), c = P(c, f, !0)), d(j, function(b) {
g = De[b], i += g ? g(c, a.DATETIME_FORMATS, l) : "''" === b ? "'" : b.replace(/(^'|'$)/g, "").replace(/''/g, "'")
}), i
}
}
function Cc() {
return function(a, b) {
return q(b) && (b = 2), M(a, b)
}
}
function Dc() {
return function(a, b, d) {
return b = 1 / 0 === Math.abs(Number(b)) ? Number(b) : k(b), isNaN(b) ? a : (v(a) && (a = a.toString()), c(a) ? (d = !d || isNaN(d) ? 0 : k(d), d = 0 > d ? Math.max(0, a.length + d) : d, 0 <= b ? Ec(a, d, d + b) : 0 === d ? Ec(a, b, a.length) : Ec(a, Math.max(0, d + b), d)) : a)
}
}
function Ec(a, b, c) {
return u(a) ? a.slice(b, c) : Zc.call(a, b, c)
}
function Fc(a) {
function d(b) {
return b.map(function(b) {
var c = 1,
d = n;
if (x(b)) d = b;
else if (u(b) && ("+" != b.charAt(0) && "-" != b.charAt(0) || (c = "-" == b.charAt(0) ? -1 : 1, b = b.substring(1)), "" !== b && (d = a(b), d.constant))) var e = d(),
d = function(a) {
return a[e]
};
return {
get: d,
descending: c
}
})
}
function e(a) {
switch (typeof a) {
case "number":
case "boolean":
case "string":
return !0;
default:
return !1
}
}
function f(a, b) {
var c = 0,
d = a.type,
e = b.type;
if (d === e) {
var e = a.value,
f = b.value;
"string" === d ? (e = e.toLowerCase(), f = f.toLowerCase()) : "object" === d && (s(e) && (e = a.index), s(f) && (f = b.index)), e !== f && (c = e < f ? -1 : 1)
} else c = d < e ? -1 : 1;
return c
}
return function(a, g, h, i) {
if (null == a) return a;
if (!c(a)) throw b("orderBy")("notarray", a);
fd(g) || (g = [g]), 0 === g.length && (g = ["+"]);
var j = d(g),
k = h ? -1 : 1,
l = x(i) ? i : f;
return a = Array.prototype.map.call(a, function(a, b) {
return {
value: a,
tieBreaker: {
value: b,
type: "number",
index: b
},
predicateValues: j.map(function(c) {
var d = c.get(a);
return c = typeof d, null === d ? (c = "string", d = "null") : "object" === c && (x(d.valueOf) && (d = d.valueOf(), e(d)) || p(d) && (d = d.toString(), e(d))), {
value: d,
type: c,
index: b
}
})
}
}), a.sort(function(a, b) {
for (var c = 0, d = j.length; c < d; c++) {
var e = l(a.predicateValues[c], b.predicateValues[c]);
if (e) return e * j[c].descending * k
}
return l(a.tieBreaker, b.tieBreaker) * k
}), a = a.map(function(a) {
return a.value
})
}
}
function Gc(a) {
return x(a) && (a = {
link: a
}), a.restrict = a.restrict || "AC", o(a)
}
function Hc(a, b, c, e, f) {
var g = this,
h = [];
g.$error = {}, g.$$success = {}, g.$pending = void 0, g.$name = f(b.name || b.ngForm || "")(c), g.$dirty = !1, g.$pristine = !0, g.$valid = !0, g.$invalid = !1, g.$submitted = !1, g.$$parentForm = Ke, g.$rollbackViewValue = function() {
d(h, function(a) {
a.$rollbackViewValue()
})
}, g.$commitViewValue = function() {
d(h, function(a) {
a.$commitViewValue()
})
}, g.$addControl = function(a) {
da(a.$name, "input"), h.push(a), a.$name && (g[a.$name] = a), a.$$parentForm = g
}, g.$$renameControl = function(a, b) {
var c = a.$name;
g[c] === a && delete g[c], g[b] = a, a.$name = b
}, g.$removeControl = function(a) {
a.$name && g[a.$name] === a && delete g[a.$name], d(g.$pending, function(b, c) {
g.$setValidity(c, null, a)
}), d(g.$error, function(b, c) {
g.$setValidity(c, null, a)
}), d(g.$$success, function(b, c) {
g.$setValidity(c, null, a)
}), G(h, a), a.$$parentForm = Ke
}, Pc({
ctrl: this,
$element: a,
set: function(a, b, c) {
var d = a[b];
d ? -1 === d.indexOf(c) && d.push(c) : a[b] = [c]
},
unset: function(a, b, c) {
var d = a[b];
d && (G(d, c), 0 === d.length && delete a[b])
},
$animate: e
}), g.$setDirty = function() {
e.removeClass(a, tf), e.addClass(a, uf), g.$dirty = !0, g.$pristine = !1, g.$$parentForm.$setDirty()
}, g.$setPristine = function() {
e.setClass(a, tf, uf + " ng-submitted"), g.$dirty = !1, g.$pristine = !0, g.$submitted = !1, d(h, function(a) {
a.$setPristine()
})
}, g.$setUntouched = function() {
d(h, function(a) {
a.$setUntouched()
})
}, g.$setSubmitted = function() {
e.addClass(a, "ng-submitted"), g.$submitted = !0, g.$$parentForm.$setSubmitted()
}
}
function Ic(a) {
a.$formatters.push(function(b) {
return a.$isEmpty(b) ? b : b.toString()
})
}
function Jc(a, b, c, d, e, f) {
var g = Xc(b[0].type);
if (!e.android) {
var h = !1;
b.on("compositionstart", function() {
h = !0
}), b.on("compositionend", function() {
h = !1, j()
})
}
var i, j = function(a) {
if (i && (f.defer.cancel(i), i = null), !h) {
var e = b.val();
a = a && a.type, "password" === g || c.ngTrim && "false" === c.ngTrim || (e = hd(e)), (d.$viewValue !== e || "" === e && d.$$hasNativeValidators) && d.$setViewValue(e, a)
}
};
if (e.hasEvent("input")) b.on("input", j);
else {
var k = function(a, b, c) {
i || (i = f.defer(function() {
i = null, b && b.value === c || j(a)
}))
};
b.on("keydown", function(a) {
var b = a.keyCode;
91 === b || 15 < b && 19 > b || 37 <= b && 40 >= b || k(a, this, this.value)
}), e.hasEvent("paste") && b.on("paste cut", k)
}
b.on("change", j), Xe[g] && d.$$hasNativeValidators && g === c.type && b.on("keydown wheel mousedown", function(a) {
if (!i) {
var b = this.validity,
c = b.badInput,
d = b.typeMismatch;
i = f.defer(function() {
i = null, b.badInput === c && b.typeMismatch === d || j(a)
})
}
}), d.$render = function() {
var a = d.$isEmpty(d.$viewValue) ? "" : d.$viewValue;
b.val() !== a && b.val(a)
}
}
function Kc(a, b) {
return function(c, e) {
var f, g;
if (w(c)) return c;
if (u(c)) {
if ('"' == c.charAt(0) && '"' == c.charAt(c.length - 1) && (c = c.substring(1, c.length - 1)), Oe.test(c)) return new Date(c);
if (a.lastIndex = 0, f = a.exec(c)) return f.shift(), g = e ? {
yyyy: e.getFullYear(),
MM: e.getMonth() + 1,
dd: e.getDate(),
HH: e.getHours(),
mm: e.getMinutes(),
ss: e.getSeconds(),
sss: e.getMilliseconds() / 1e3
} : {
yyyy: 1970,
MM: 1,
dd: 1,
HH: 0,
mm: 0,
ss: 0,
sss: 0
}, d(f, function(a, c) {
c < b.length && (g[b[c]] = +a)
}), new Date(g.yyyy, g.MM - 1, g.dd, g.HH, g.mm, g.ss || 0, 1e3 * g.sss || 0)
}
return NaN
}
}
function Lc(a, b, c, d) {
return function(e, f, g, h, i, j, k) {
function l(a) {
return a && !(a.getTime && a.getTime() !== a.getTime())
}
function m(a) {
return r(a) && !w(a) ? c(a) || void 0 : a
}
Mc(e, f, g, h), Jc(e, f, g, h, i, j);
var n, o = h && h.$options && h.$options.timezone;
if (h.$$parserName = a, h.$parsers.push(function(a) {
return h.$isEmpty(a) ? null : b.test(a) ? (a = c(a, n), o && (a = P(a, o)), a) : void 0
}), h.$formatters.push(function(a) {
if (a && !w(a)) throw wf("datefmt", a);
return l(a) ? ((n = a) && o && (n = P(n, o, !0)), k("date")(a, d, o)) : (n = null, "")
}), r(g.min) || g.ngMin) {
var p;
h.$validators.min = function(a) {
return !l(a) || q(p) || c(a) >= p
}, g.$observe("min", function(a) {
p = m(a), h.$validate()
})
}
if (r(g.max) || g.ngMax) {
var s;
h.$validators.max = function(a) {
return !l(a) || q(s) || c(a) <= s
}, g.$observe("max", function(a) {
s = m(a), h.$validate()
})
}
}
}
function Mc(a, b, c, d) {
(d.$$hasNativeValidators = s(b[0].validity)) && d.$parsers.push(function(a) {
var c = b.prop("validity") || {};
return c.badInput || c.typeMismatch ? void 0 : a
})
}
function Nc(a, b, c, d, e) {
if (r(d)) {
if (a = a(d), !a.constant) throw wf("constexpr", c, d);
return a(b)
}
return e
}
function Oc(a, b) {
return a = "ngClass" + a, ["$animate", function(c) {
function e(a, b) {
var c = [],
d = 0;
a: for (; d < a.length; d++) {
for (var e = a[d], f = 0; f < b.length; f++)
if (e == b[f]) continue a;
c.push(e)
}
return c
}
function f(a) {
var b = [];
return fd(a) ? (d(a, function(a) {
b = b.concat(f(a))
}), b) : u(a) ? a.split(" ") : s(a) ? (d(a, function(a, c) {
a && (b = b.concat(c.split(" ")))
}), b) : a
}
return {
restrict: "AC",
link: function(g, h, i) {
function j(a) {
a = k(a, 1), i.$addClass(a)
}
function k(a, b) {
var c = h.data("$classCounts") || ga(),
e = [];
return d(a, function(a) {
(0 < b || c[a]) && (c[a] = (c[a] || 0) + b, c[a] === +(0 < b) && e.push(a))
}), h.data("$classCounts", c), e.join(" ")
}
function l(a, b) {
var d = e(b, a),
f = e(a, b),
d = k(d, 1),
f = k(f, -1);
d && d.length && c.addClass(h, d), f && f.length && c.removeClass(h, f)
}
function m(a) {
if (!0 === b || (1 & g.$index) === b) {
var c = f(a || []);
if (n) {
if (!I(a, n)) {
var d = f(n);
l(d, c)
}
} else j(c)
}
n = fd(a) ? a.map(function(a) {
return ia(a)
}) : ia(a)
}
var n;
g.$watch(i[a], m, !0), i.$observe("class", function(b) {
m(g.$eval(i[a]))
}), "ngClass" !== a && g.$watch("$index", function(c, d) {
var e = 1 & c;
if (e !== (1 & d)) {
var h = f(g.$eval(i[a]));
e === b ? j(h) : (e = k(h, -1), i.$removeClass(e))
}
})
}
}
}]
}
function Pc(a) {
function b(a, b) {
b && !f[a] ? (i.addClass(e, a), f[a] = !0) : !b && f[a] && (i.removeClass(e, a), f[a] = !1)
}
function c(a, c) {
a = a ? "-" + _(a, "-") : "", b(rf + a, !0 === c), b(sf + a, !1 === c)
}
var d = a.ctrl,
e = a.$element,
f = {},
g = a.set,
h = a.unset,
i = a.$animate;
f[sf] = !(f[rf] = e.hasClass(rf)), d.$setValidity = function(a, e, f) {
q(e) ? (d.$pending || (d.$pending = {}), g(d.$pending, a, f)) : (d.$pending && h(d.$pending, a, f), Qc(d.$pending) && (d.$pending = void 0)), B(e) ? e ? (h(d.$error, a, f), g(d.$$success, a, f)) : (g(d.$error, a, f), h(d.$$success, a, f)) : (h(d.$error, a, f), h(d.$$success, a, f)), d.$pending ? (b(vf, !0), d.$valid = d.$invalid = void 0, c("", null)) : (b(vf, !1), d.$valid = Qc(d.$error), d.$invalid = !d.$valid, c("", d.$valid)), e = d.$pending && d.$pending[a] ? void 0 : !d.$error[a] && (!!d.$$success[a] || null), c(a, e), d.$$parentForm.$setValidity(a, e, d)
}
}
function Qc(a) {
if (a)
for (var b in a)
if (a.hasOwnProperty(b)) return !1;
return !0
}
var Rc, Sc, Tc, Uc, Vc = /^\/(.+)\/([a-z]*)$/,
Wc = Object.prototype.hasOwnProperty,
Xc = function(a) {
return u(a) ? a.toLowerCase() : a
},
Yc = function(a) {
return u(a) ? a.toUpperCase() : a
},
Zc = [].slice,
$c = [].splice,
_c = [].push,
ad = Object.prototype.toString,
bd = Object.getPrototypeOf,
cd = b("ng"),
dd = a.angular || (a.angular = {}),
ed = 0;
Rc = a.document.documentMode, m.$inject = [], n.$inject = [];
var fd = Array.isArray,
gd = /^\[object (?:Uint8|Uint8Clamped|Uint16|Uint32|Int8|Int16|Int32|Float32|Float64)Array\]$/,
hd = function(a) {
return u(a) ? a.trim() : a
},
id = function(a) {
return a.replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g, "\\$1").replace(/\x08/g, "\\x08")
},
jd = function() {
if (!r(jd.rules)) {
var b = a.document.querySelector("[ng-csp]") || a.document.querySelector("[data-ng-csp]");
if (b) {
var c = b.getAttribute("ng-csp") || b.getAttribute("data-ng-csp");
jd.rules = {
noUnsafeEval: !c || -1 !== c.indexOf("no-unsafe-eval"),
noInlineStyle: !c || -1 !== c.indexOf("no-inline-style")
}
} else {
b = jd;
try {
new Function(""), c = !1
} catch (a) {
c = !0
}
b.rules = {
noUnsafeEval: c,
noInlineStyle: !1
}
}
}
return jd.rules
},
kd = function() {
if (r(kd.name_)) return kd.name_;
var b, c, d, e, f = md.length;
for (c = 0; c < f; ++c)
if (d = md[c], b = a.document.querySelector("[" + d.replace(":", "\\:") + "jq]")) {
e = b.getAttribute(d + "jq");
break
}
return kd.name_ = e
},
ld = /:/g,
md = ["ng-", "data-ng-", "ng:", "x-ng-"],
nd = /[A-Z]/g,
od = !1,
pd = 3,
qd = {
full: "1.5.7",
major: 1,
minor: 5,
dot: 7,
codeName: "hexagonal-circumvolution"
};
oa.expando = "ng339";
var rd = oa.cache = {},
sd = 1;
oa._data = function(a) {
return this.cache[a[this.expando]] || {}
};
var td = /([\:\-\_]+(.))/g,
ud = /^moz([A-Z])/,
vd = {
mouseleave: "mouseout",
mouseenter: "mouseover"
},
wd = b("jqLite"),
xd = /^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,
yd = /<|&#?\w+;/,
zd = /<([\w:-]+)/,
Ad = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,
Bd = {
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, "", ""]
};
Bd.optgroup = Bd.option, Bd.tbody = Bd.tfoot = Bd.colgroup = Bd.caption = Bd.thead, Bd.th = Bd.td;
var Cd = a.Node.prototype.contains || function(a) {
return !!(16 & this.compareDocumentPosition(a))
},
Dd = oa.prototype = {
ready: function(b) {
function c() {
d || (d = !0, b())
}
var d = !1;
"complete" === a.document.readyState ? a.setTimeout(c) : (this.on("DOMContentLoaded", c), oa(a).on("load", c))
},
toString: function() {
var a = [];
return d(this, function(b) {
a.push("" + b)
}), "[" + a.join(", ") + "]"
},
eq: function(a) {
return Sc(0 <= a ? this[a] : this[this.length + a])
},
length: 0,
push: _c,
sort: [].sort,
splice: [].splice
},
Ed = {};
d("multiple selected checked disabled readOnly required open".split(" "), function(a) {
Ed[Xc(a)] = a
});
var Fd = {};
d("input select option textarea button form details".split(" "), function(a) {
Fd[a] = !0
});
var Gd = {
ngMinlength: "minlength",
ngMaxlength: "maxlength",
ngMin: "min",
ngMax: "max",
ngPattern: "pattern"
};
d({
data: ua,
removeData: sa,
hasData: function(a) {
for (var b in rd[a.ng339]) return !0;
return !1
},
cleanData: function(a) {
for (var b = 0, c = a.length; b < c; b++) sa(a[b])
}
}, function(a, b) {
oa[b] = a
}), d({
data: ua,
inheritedData: Aa,
scope: function(a) {
return Sc.data(a, "$scope") || Aa(a.parentNode || a, ["$isolateScope", "$scope"])
},
isolateScope: function(a) {
return Sc.data(a, "$isolateScope") || Sc.data(a, "$isolateScopeNoTemplate")
},
controller: za,
injector: function(a) {
return Aa(a, "$injector")
},
removeAttr: function(a, b) {
a.removeAttribute(b)
},
hasClass: va,
css: function(a, b, c) {
return b = ka(b), r(c) ? void(a.style[b] = c) : a.style[b]
},
attr: function(a, b, c) {
var d = a.nodeType;
if (d !== pd && 2 !== d && 8 !== d)
if (d = Xc(b), Ed[d]) {
if (!r(c)) return a[b] || (a.attributes.getNamedItem(b) || m).specified ? d : void 0;
c ? (a[b] = !0, a.setAttribute(b, d)) : (a[b] = !1, a.removeAttribute(d))
} else if (r(c)) a.setAttribute(b, c);
else if (a.getAttribute) return a = a.getAttribute(b, 2), null === a ? void 0 : a
},
prop: function(a, b, c) {
return r(c) ? void(a[b] = c) : a[b]
},
text: function() {
function a(a, b) {
if (q(b)) {
var c = a.nodeType;
return 1 === c || c === pd ? a.textContent : ""
}
a.textContent = b
}
return a.$dv = "", a
}(),
val: function(a, b) {
if (q(b)) {
if (a.multiple && "select" === F(a)) {
var c = [];
return d(a.options, function(a) {
a.selected && c.push(a.value || a.text)
}), 0 === c.length ? null : c
}
return a.value
}
a.value = b
},
html: function(a, b) {
return q(b) ? a.innerHTML : (qa(a, !0), void(a.innerHTML = b))
},
empty: Ba
}, function(a, b) {
oa.prototype[b] = function(b, c) {
var d, e, f = this.length;
if (a !== Ba && q(2 == a.length && a !== va && a !== za ? b : c)) {
if (s(b)) {
for (d = 0; d < f; d++)
if (a === ua) a(this[d], b);
else
for (e in b) a(this[d], e, b[e]);
return this
}
for (d = a.$dv, f = q(d) ? Math.min(f, 1) : f, e = 0; e < f; e++) {
var g = a(this[e], b, c);
d = d ? d + g : g
}
return d
}
for (d = 0; d < f; d++) a(this[d], b, c);
return this
}
}), d({
removeData: sa,
on: function(a, b, c, d) {
if (r(d)) throw wd("onargs");
if (la(a)) {
d = ta(a, !0);
var e = d.events,
f = d.handle;
f || (f = d.handle = Fa(a, e)), d = 0 <= b.indexOf(" ") ? b.split(" ") : [b];
for (var g = d.length, h = function(b, d, g) {
var h = e[b];
h || (h = e[b] = [], h.specialHandlerWrapper = d, "$destroy" === b || g || a.addEventListener(b, f, !1)), h.push(c)
}; g--;) b = d[g], vd[b] ? (h(vd[b], Ha), h(b, void 0, !0)) : h(b)
}
},
off: ra,
one: function(a, b, c) {
a = Sc(a), a.on(b, function d() {
a.off(b, c), a.off(b, d)
}), a.on(b, c)
},
replaceWith: function(a, b) {
var c, e = a.parentNode;
qa(a), d(new oa(b), function(b) {
c ? e.insertBefore(b, c.nextSibling) : e.replaceChild(b, a), c = b
})
},
children: function(a) {
var b = [];
return d(a.childNodes, function(a) {
1 === a.nodeType && b.push(a)
}), b
},
contents: function(a) {
return a.contentDocument || a.childNodes || []
},
append: function(a, b) {
var c = a.nodeType;
if (1 === c || 11 === c) {
b = new oa(b);
for (var c = 0, d = b.length; c < d; c++) a.appendChild(b[c])
}
},
prepend: function(a, b) {
if (1 === a.nodeType) {
var c = a.firstChild;
d(new oa(b), function(b) {
a.insertBefore(b, c)
})
}
},
wrap: function(a, b) {
na(a, Sc(b).eq(0).clone()[0])
},
remove: Ca,
detach: function(a) {
Ca(a, !0)
},
after: function(a, b) {
var c = a,
d = a.parentNode;
b = new oa(b);
for (var e = 0, f = b.length; e < f; e++) {
var g = b[e];
d.insertBefore(g, c.nextSibling), c = g
}
},
addClass: xa,
removeClass: wa,
toggleClass: function(a, b, c) {
b && d(b.split(" "), function(b) {
var d = c;
q(d) && (d = !va(a, b)), (d ? xa : wa)(a, b)
})
},
parent: function(a) {
return (a = a.parentNode) && 11 !== a.nodeType ? a : null
},
next: function(a) {
return a.nextElementSibling
},
find: function(a, b) {
return a.getElementsByTagName ? a.getElementsByTagName(b) : []
},
clone: pa,
triggerHandler: function(a, b, c) {
var e, f, g = b.type || b,
h = ta(a);
(h = (h = h && h.events) && h[g]) && (e = {
preventDefault: function() {
this.defaultPrevented = !0
},
isDefaultPrevented: function() {
return !0 === this.defaultPrevented
},
stopImmediatePropagation: function() {
this.immediatePropagationStopped = !0
},
isImmediatePropagationStopped: function() {
return !0 === this.immediatePropagationStopped
},
stopPropagation: m,
type: g,
target: a
}, b.type && (e = i(e, b)), b = ia(h), f = c ? [e].concat(c) : [e], d(b, function(b) {
e.isImmediatePropagationStopped() || b.apply(a, f)
}))
}
}, function(a, b) {
oa.prototype[b] = function(b, c, d) {
for (var e, f = 0, g = this.length; f < g; f++) q(e) ? (e = a(this[f], b, c, d), r(e) && (e = Sc(e))) : ya(e, a(this[f], b, c, d));
return r(e) ? e : this
}, oa.prototype.bind = oa.prototype.on, oa.prototype.unbind = oa.prototype.off
}), Ka.prototype = {
put: function(a, b) {
this[Ja(a, this.nextUid)] = b
},
get: function(a) {
return this[Ja(a, this.nextUid)]
},
remove: function(a) {
var b = this[a = Ja(a, this.nextUid)];
return delete this[a], b
}
};
var Hd = [function() {
this.$get = [function() {
return Ka
}]
}],
Id = /^([^\(]+?)=>/,
Jd = /^[^\(]*\(\s*([^\)]*)\)/m,
Kd = /,/,
Ld = /^\s*(_?)(\S+?)\1\s*$/,
Md = /((\/\/.*$)|(\/\*[\s\S]*?\*\/))/gm,
Nd = b("$injector");
Na.$$annotate = function(a, b, c) {
var e;
if ("function" == typeof a) {
if (!(e = a.$inject)) {
if (e = [], a.length) {
if (b) throw u(c) && c || (c = a.name || Ma(a)), Nd("strictdi", c);
b = La(a), d(b[1].split(Kd), function(a) {
a.replace(Ld, function(a, b, c) {
e.push(c)
})
})
}
a.$inject = e
}
} else fd(a) ? (b = a.length - 1, ca(a[b], "fn"), e = a.slice(0, b)) : ca(a, "fn", !0);
return e
};
var Od = b("$animate"),
Pd = function() {
this.$get = m
},
Qd = function() {
var a = new Ka,
b = [];
this.$get = ["$$AnimateRunner", "$rootScope", function(c, e) {
function f(a, b, c) {
var e = !1;
return b && (b = u(b) ? b.split(" ") : fd(b) ? b : [], d(b, function(b) {
b && (e = !0, a[b] = c)
})), e
}
function g() {
d(b, function(b) {
var c = a.get(b);
if (c) {
var e = Qa(b.attr("class")),
f = "",
g = "";
d(c, function(a, b) {
a !== !!e[b] && (a ? f += (f.length ? " " : "") + b : g += (g.length ? " " : "") + b)
}), d(b, function(a) {
f && xa(a, f), g && wa(a, g)
}), a.remove(b)
}
}), b.length = 0
}
return {
enabled: m,
on: m,
off: m,
pin: m,
push: function(d, h, i, j) {
return j && j(), i = i || {}, i.from && d.css(i.from), i.to && d.css(i.to), (i.addClass || i.removeClass) && (h = i.addClass, j = i.removeClass, i = a.get(d) || {}, h = f(i, h, !0), j = f(i, j, !1), (h || j) && (a.put(d, i), b.push(d), 1 === b.length && e.$$postDigest(g))), d = new c, d.complete(), d
}
}
}]
},
Rd = ["$provide", function(a) {
var b = this;
this.$$registeredAnimations = Object.create(null), this.register = function(c, d) {
if (c && "." !== c.charAt(0)) throw Od("notcsel", c);
var e = c + "-animation";
b.$$registeredAnimations[c.substr(1)] = e, a.factory(e, d)
}, this.classNameFilter = function(a) {
if (1 === arguments.length && (this.$$classNameFilter = a instanceof RegExp ? a : null) && /(\s+|\/)ng-animate(\s+|\/)/.test(this.$$classNameFilter.toString())) throw Od("nongcls", "ng-animate");
return this.$$classNameFilter
}, this.$get = ["$$animateQueue", function(a) {
function b(a, b, c) {
if (c) {
var d;
a: {
for (d = 0; d < c.length; d++) {
var e = c[d];
if (1 === e.nodeType) {
d = e;
break a
}
}
d = void 0
}!d || d.parentNode || d.previousElementSibling || (c = null)
}
c ? c.after(a) : b.prepend(a)
}
return {
on: a.on,
off: a.off,
pin: a.pin,
enabled: a.enabled,
cancel: function(a) {
a.end && a.end()
},
enter: function(c, d, e, f) {
return d = d && Sc(d), e = e && Sc(e), d = d || e.parent(), b(c, d, e), a.push(c, "enter", Ra(f))
},
move: function(c, d, e, f) {
return d = d && Sc(d), e = e && Sc(e), d = d || e.parent(), b(c, d, e), a.push(c, "move", Ra(f))
},
leave: function(b, c) {
return a.push(b, "leave", Ra(c), function() {
b.remove()
})
},
addClass: function(b, c, d) {
return d = Ra(d), d.addClass = Pa(d.addclass, c), a.push(b, "addClass", d)
},
removeClass: function(b, c, d) {
return d = Ra(d), d.removeClass = Pa(d.removeClass, c), a.push(b, "removeClass", d)
},
setClass: function(b, c, d, e) {
return e = Ra(e), e.addClass = Pa(e.addClass, c), e.removeClass = Pa(e.removeClass, d), a.push(b, "setClass", e)
},
animate: function(b, c, d, e, f) {
return f = Ra(f), f.from = f.from ? i(f.from, c) : c, f.to = f.to ? i(f.to, d) : d, f.tempClasses = Pa(f.tempClasses, e || "ng-inline-animate"), a.push(b, "animate", f)
}
}
}]
}],
Sd = function() {
this.$get = ["$$rAF", function(a) {
function b(b) {
c.push(b), 1 < c.length || a(function() {
for (var a = 0; a < c.length; a++) c[a]();
c = []
})
}
var c = [];
return function() {
var a = !1;
return b(function() {
a = !0
}),
function(c) {
a ? c() : b(c)
}
}
}]
},
Td = function() {
this.$get = ["$q", "$sniffer", "$$animateAsyncRun", "$document", "$timeout", function(a, b, c, e, f) {
function g(a) {
this.setHost(a);
var b = c();
this._doneCallbacks = [], this._tick = function(a) {
var c = e[0];
c && c.hidden ? f(a, 0, !1) : b(a)
}, this._state = 0
}
return g.chain = function(a, b) {
function c() {
d === a.length ? b(!0) : a[d](function(a) {
!1 === a ? b(!1) : (d++, c())
})
}
var d = 0;
c()
}, g.all = function(a, b) {
function c(c) {
f = f && c, ++e === a.length && b(f)
}
var e = 0,
f = !0;
d(a, function(a) {
a.done(c)
})
}, g.prototype = {
setHost: function(a) {
this.host = a || {}
},
done: function(a) {
2 === this._state ? a() : this._doneCallbacks.push(a)
},
progress: m,
getPromise: function() {
if (!this.promise) {
var b = this;
this.promise = a(function(a, c) {
b.done(function(b) {
!1 === b ? c() : a()
})
})
}
return this.promise
},
then: function(a, b) {
return this.getPromise().then(a, b)
},
catch: function(a) {
return this.getPromise().catch(a)
},
finally: function(a) {
return this.getPromise().finally(a)
},
pause: function() {
this.host.pause && this.host.pause()
},
resume: function() {
this.host.resume && this.host.resume()
},
end: function() {
this.host.end && this.host.end(), this._resolve(!0)
},
cancel: function() {
this.host.cancel && this.host.cancel(), this._resolve(!1)
},
complete: function(a) {
var b = this;
0 === b._state && (b._state = 1, b._tick(function() {
b._resolve(a)
}))
},
_resolve: function(a) {
2 !== this._state && (d(this._doneCallbacks, function(b) {
b(a)
}), this._doneCallbacks.length = 0, this._state = 2)
}
}, g
}]
},
Ud = function() {
this.$get = ["$$rAF", "$q", "$$AnimateRunner", function(a, b, c) {
return function(b, d) {
function e() {
return a(function() {
f.addClass && (b.addClass(f.addClass), f.addClass = null), f.removeClass && (b.removeClass(f.removeClass), f.removeClass = null), f.to && (b.css(f.to), f.to = null), g || h.complete(), g = !0
}), h
}
var f = d || {};
f.$$prepared || (f = H(f)), f.cleanupStyles && (f.from = f.to = null), f.from && (b.css(f.from), f.from = null);
var g, h = new c;
return {
start: e,
end: e
}
}
}]
},
Vd = b("$compile"),
Wd = new function() {};
Wa.$inject = ["$provide", "$$sanitizeUriProvider"], Xa.prototype.isFirstChange = function() {
return this.previousValue === Wd
};
var Xd = /^((?:x|data)[\:\-_])/i,
Yd = b("$controller"),
Zd = /^(\S+)(\s+as\s+([\w$]+))?$/,
$d = function() {
this.$get = ["$document", function(a) {
return function(b) {
return b ? !b.nodeType && b instanceof Sc && (b = b[0]) : b = a[0].body, b.offsetWidth + 1
}
}]
},
_d = "application/json",
ae = {
"Content-Type": _d + ";charset=utf-8"
},
be = /^\[|^\{(?!\{)/,
ce = {
"[": /]$/,
"{": /}$/
},
de = /^\)\]\}',?\n/,
ee = b("$http"),
fe = function(a) {
return function() {
throw ee("legacy", a)
}
},
ge = dd.$interpolateMinErr = b("$interpolate");
ge.throwNoconcat = function(a) {
throw ge("noconcat", a)
}, ge.interr = function(a, b) {
return ge("interr", a, b.toString())
};
var he = /^([^\?#]*)(\?([^#]*))?(#(.*))?$/,
ie = {
http: 80,
https: 443,
ftp: 21
},
je = b("$location"),
ke = {
$$absUrl: "",
$$html5: !1,
$$replace: !1,
absUrl: zb("$$absUrl"),
url: function(a) {
if (q(a)) return this.$$url;
var b = he.exec(a);
return (b[1] || "" === a) && this.path(decodeURIComponent(b[1])), (b[2] || b[1] || "" === a) && this.search(b[3] || ""), this.hash(b[5] || ""), this
},
protocol: zb("$$protocol"),
host: zb("$$host"),
port: zb("$$port"),
path: Ab("$$path", function(a) {
return a = null !== a ? a.toString() : "", "/" == a.charAt(0) ? a : "/" + a
}),
search: function(a, b) {
switch (arguments.length) {
case 0:
return this.$$search;
case 1:
if (u(a) || v(a)) a = a.toString(), this.$$search = S(a);
else {
if (!s(a)) throw je("isrcharg");
a = H(a, {}), d(a, function(b, c) {
null == b && delete a[c]
}), this.$$search = a
}
break;
default:
q(b) || null === b ? delete this.$$search[a] : this.$$search[a] = b
}
return this.$$compose(), this
},
hash: Ab("$$hash", function(a) {
return null !== a ? a.toString() : ""
}),
replace: function() {
return this.$$replace = !0, this
}
};
d([yb, xb, wb], function(a) {
a.prototype = Object.create(ke), a.prototype.state = function(b) {
if (!arguments.length) return this.$$state;
if (a !== wb || !this.$$html5) throw je("nostate");
return this.$$state = q(b) ? null : b, this
}
});
var le = b("$parse"),
me = Function.prototype.call,
ne = Function.prototype.apply,
oe = Function.prototype.bind,
pe = ga();
d("+ - * / % === !== == != < > <= >= && || ! = |".split(" "), function(a) {
pe[a] = !0
});
var qe = {
n: "\n",
f: "\f",
r: "\r",
t: "\t",
v: "\v",
"'": "'",
'"': '"'
},
re = function(a) {
this.options = a
};
re.prototype = {
constructor: re,
lex: function(a) {
for (this.text = a, this.index = 0, this.tokens = []; this.index < this.text.length;)
if (a = this.text.charAt(this.index), '"' === a || "'" === a) this.readString(a);
else if (this.isNumber(a) || "." === a && this.isNumber(this.peek())) this.readNumber();
else if (this.isIdentifierStart(this.peekMultichar())) this.readIdent();
else if (this.is(a, "(){}[].,;:?")) this.tokens.push({
index: this.index,
text: a
}), this.index++;
else if (this.isWhitespace(a)) this.index++;
else {
var b = a + this.peek(),
c = b + this.peek(2),
d = pe[b],
e = pe[c];
pe[a] || d || e ? (a = e ? c : d ? b : a, this.tokens.push({
index: this.index,
text: a,
operator: !0
}), this.index += a.length) : this.throwError("Unexpected next character ", this.index, this.index + 1)
}
return this.tokens
},
is: function(a, b) {
return -1 !== b.indexOf(a)
},
peek: function(a) {
return a = a || 1, this.index + a < this.text.length && this.text.charAt(this.index + a)
},
isNumber: function(a) {
return "0" <= a && "9" >= a && "string" == typeof a
},
isWhitespace: function(a) {
return " " === a || "\r" === a || "\t" === a || "\n" === a || "\v" === a || " " === a
},
isIdentifierStart: function(a) {
return this.options.isIdentifierStart ? this.options.isIdentifierStart(a, this.codePointAt(a)) : this.isValidIdentifierStart(a)
},
isValidIdentifierStart: function(a) {
return "a" <= a && "z" >= a || "A" <= a && "Z" >= a || "_" === a || "$" === a
},
isIdentifierContinue: function(a) {
return this.options.isIdentifierContinue ? this.options.isIdentifierContinue(a, this.codePointAt(a)) : this.isValidIdentifierContinue(a)
},
isValidIdentifierContinue: function(a, b) {
return this.isValidIdentifierStart(a, b) || this.isNumber(a)
},
codePointAt: function(a) {
return 1 === a.length ? a.charCodeAt(0) : (a.charCodeAt(0) << 10) + a.charCodeAt(1) - 56613888
},
peekMultichar: function() {
var a = this.text.charAt(this.index),
b = this.peek();
if (!b) return a;
var c = a.charCodeAt(0),
d = b.charCodeAt(0);
return 55296 <= c && 56319 >= c && 56320 <= d && 57343 >= d ? a + b : a
},
isExpOperator: function(a) {
return "-" === a || "+" === a || this.isNumber(a)
},
throwError: function(a, b, c) {
throw c = c || this.index, b = r(b) ? "s " + b + "-" + this.index + " [" + this.text.substring(b, c) + "]" : " " + c, le("lexerr", a, b, this.text)
},
readNumber: function() {
for (var a = "", b = this.index; this.index < this.text.length;) {
var c = Xc(this.text.charAt(this.index));
if ("." == c || this.isNumber(c)) a += c;
else {
var d = this.peek();
if ("e" == c && this.isExpOperator(d)) a += c;
else if (this.isExpOperator(c) && d && this.isNumber(d) && "e" == a.charAt(a.length - 1)) a += c;
else {
if (!this.isExpOperator(c) || d && this.isNumber(d) || "e" != a.charAt(a.length - 1)) break;
this.throwError("Invalid exponent")
}
}
this.index++
}
this.tokens.push({
index: b,
text: a,
constant: !0,
value: Number(a)
})
},
readIdent: function() {
var a = this.index;
for (this.index += this.peekMultichar().length; this.index < this.text.length;) {
var b = this.peekMultichar();
if (!this.isIdentifierContinue(b)) break;
this.index += b.length
}
this.tokens.push({
index: a,
text: this.text.slice(a, this.index),
identifier: !0
})
},
readString: function(a) {
var b = this.index;
this.index++;
for (var c = "", d = a, e = !1; this.index < this.text.length;) {
var f = this.text.charAt(this.index),
d = d + f;
if (e) "u" === f ? (e = this.text.substring(this.index + 1, this.index + 5), e.match(/[\da-f]{4}/i) || this.throwError("Invalid unicode escape [\\u" + e + "]"), this.index += 4, c += String.fromCharCode(parseInt(e, 16))) : c += qe[f] || f, e = !1;
else if ("\\" === f) e = !0;
else {
if (f === a) return this.index++, void this.tokens.push({
index: b,
text: d,
constant: !0,
value: c
});
c += f
}
this.index++
}
this.throwError("Unterminated quote", b)
}
};
var se = function(a, b) {
this.lexer = a, this.options = b
};
se.Program = "Program", se.ExpressionStatement = "ExpressionStatement", se.AssignmentExpression = "AssignmentExpression", se.ConditionalExpression = "ConditionalExpression", se.LogicalExpression = "LogicalExpression", se.BinaryExpression = "BinaryExpression", se.UnaryExpression = "UnaryExpression", se.CallExpression = "CallExpression", se.MemberExpression = "MemberExpression", se.Identifier = "Identifier", se.Literal = "Literal", se.ArrayExpression = "ArrayExpression", se.Property = "Property", se.ObjectExpression = "ObjectExpression", se.ThisExpression = "ThisExpression", se.LocalsExpression = "LocalsExpression", se.NGValueParameter = "NGValueParameter", se.prototype = {
ast: function(a) {
return this.text = a, this.tokens = this.lexer.lex(a), a = this.program(), 0 !== this.tokens.length && this.throwError("is an unexpected token", this.tokens[0]), a
},
program: function() {
for (var a = [];;)
if (0 < this.tokens.length && !this.peek("}", ")", ";", "]") && a.push(this.expressionStatement()), !this.expect(";")) return {
type: se.Program,
body: a
}
},
expressionStatement: function() {
return {
type: se.ExpressionStatement,
expression: this.filterChain()
}
},
filterChain: function() {
for (var a = this.expression(); this.expect("|");) a = this.filter(a);
return a
},
expression: function() {
return this.assignment()
},
assignment: function() {
var a = this.ternary();
return this.expect("=") && (a = {
type: se.AssignmentExpression,
left: a,
right: this.assignment(),
operator: "="
}), a
},
ternary: function() {
var a, b, c = this.logicalOR();
return this.expect("?") && (a = this.expression(), this.consume(":")) ? (b = this.expression(), {
type: se.ConditionalExpression,
test: c,
alternate: a,
consequent: b
}) : c
},
logicalOR: function() {
for (var a = this.logicalAND(); this.expect("||");) a = {
type: se.LogicalExpression,
operator: "||",
left: a,
right: this.logicalAND()
};
return a
},
logicalAND: function() {
for (var a = this.equality(); this.expect("&&");) a = {
type: se.LogicalExpression,
operator: "&&",
left: a,
right: this.equality()
};
return a
},
equality: function() {
for (var a, b = this.relational(); a = this.expect("==", "!=", "===", "!==");) b = {
type: se.BinaryExpression,
operator: a.text,
left: b,
right: this.relational()
};
return b
},
relational: function() {
for (var a, b = this.additive(); a = this.expect("<", ">", "<=", ">=");) b = {
type: se.BinaryExpression,
operator: a.text,
left: b,
right: this.additive()
};
return b
},
additive: function() {
for (var a, b = this.multiplicative(); a = this.expect("+", "-");) b = {
type: se.BinaryExpression,
operator: a.text,
left: b,
right: this.multiplicative()
};
return b
},
multiplicative: function() {
for (var a, b = this.unary(); a = this.expect("*", "/", "%");) b = {
type: se.BinaryExpression,
operator: a.text,
left: b,
right: this.unary()
};
return b
},
unary: function() {
var a;
return (a = this.expect("+", "-", "!")) ? {
type: se.UnaryExpression,
operator: a.text,
prefix: !0,
argument: this.unary()
} : this.primary()
},
primary: function() {
var a;
this.expect("(") ? (a = this.filterChain(), this.consume(")")) : this.expect("[") ? a = this.arrayDeclaration() : this.expect("{") ? a = this.object() : this.selfReferential.hasOwnProperty(this.peek().text) ? a = H(this.selfReferential[this.consume().text]) : this.options.literals.hasOwnProperty(this.peek().text) ? a = {
type: se.Literal,
value: this.options.literals[this.consume().text]
} : this.peek().identifier ? a = this.identifier() : this.peek().constant ? a = this.constant() : this.throwError("not a primary expression", this.peek());
for (var b; b = this.expect("(", "[", ".");) "(" === b.text ? (a = {
type: se.CallExpression,
callee: a,
arguments: this.parseArguments()
}, this.consume(")")) : "[" === b.text ? (a = {
type: se.MemberExpression,
object: a,
property: this.expression(),
computed: !0
}, this.consume("]")) : "." === b.text ? a = {
type: se.MemberExpression,
object: a,
property: this.identifier(),
computed: !1
} : this.throwError("IMPOSSIBLE");
return a
},
filter: function(a) {
a = [a];
for (var b = {
type: se.CallExpression,
callee: this.identifier(),
arguments: a,
filter: !0
}; this.expect(":");) a.push(this.expression());
return b
},
parseArguments: function() {
var a = [];
if (")" !== this.peekToken().text)
do a.push(this.filterChain()); while (this.expect(","));
return a
},
identifier: function() {
var a = this.consume();
return a.identifier || this.throwError("is not a valid identifier", a), {
type: se.Identifier,
name: a.text
}
},
constant: function() {
return {
type: se.Literal,
value: this.consume().value
}
},
arrayDeclaration: function() {
var a = [];
if ("]" !== this.peekToken().text)
do {
if (this.peek("]")) break;
a.push(this.expression())
} while (this.expect(","));
return this.consume("]"), {
type: se.ArrayExpression,
elements: a
}
},
object: function() {
var a, b = [];
if ("}" !== this.peekToken().text)
do {
if (this.peek("}")) break;
a = {
type: se.Property,
kind: "init"
}, this.peek().constant ? (a.key = this.constant(), a.computed = !1, this.consume(":"), a.value = this.expression()) : this.peek().identifier ? (a.key = this.identifier(), a.computed = !1, this.peek(":") ? (this.consume(":"), a.value = this.expression()) : a.value = a.key) : this.peek("[") ? (this.consume("["), a.key = this.expression(), this.consume("]"), a.computed = !0, this.consume(":"), a.value = this.expression()) : this.throwError("invalid key", this.peek()), b.push(a)
} while (this.expect(","));
return this.consume("}"), {
type: se.ObjectExpression,
properties: b
}
},
throwError: function(a, b) {
throw le("syntax", b.text, a, b.index + 1, this.text, this.text.substring(b.index))
},
consume: function(a) {
if (0 === this.tokens.length) throw le("ueoe", this.text);
var b = this.expect(a);
return b || this.throwError("is unexpected, expecting [" + a + "]", this.peek()), b
},
peekToken: function() {
if (0 === this.tokens.length) throw le("ueoe", this.text);
return this.tokens[0]
},
peek: function(a, b, c, d) {
return this.peekAhead(0, a, b, c, d)
},
peekAhead: function(a, b, c, d, e) {
if (this.tokens.length > a) {
a = this.tokens[a];
var f = a.text;
if (f === b || f === c || f === d || f === e || !(b || c || d || e)) return a
}
return !1
},
expect: function(a, b, c, d) {
return !!(a = this.peek(a, b, c, d)) && (this.tokens.shift(), a)
},
selfReferential: {
this: {
type: se.ThisExpression
},
$locals: {
type: se.LocalsExpression
}
}
}, Pb.prototype = {
compile: function(a, b) {
var c = this,
e = this.astBuilder.ast(a);
this.state = {
nextId: 0,
filters: {},
expensiveChecks: b,
fn: {
vars: [],
body: [],
own: {}
},
assign: {
vars: [],
body: [],
own: {}
},
inputs: []
}, Kb(e, c.$filter);
var f, g = "";
return this.stage = "assign", (f = Nb(e)) && (this.state.computing = "assign", g = this.nextId(), this.recurse(f, g), this.return_(g), g = "fn.assign=" + this.generateFunction("assign", "s,v,l")), f = Lb(e.body), c.stage = "inputs", d(f, function(a, b) {
var d = "fn" + b;
c.state[d] = {
vars: [],
body: [],
own: {}
}, c.state.computing = d;
var e = c.nextId();
c.recurse(a, e), c.return_(e), c.state.inputs.push(d), a.watchId = b
}), this.state.computing = "fn", this.stage = "main", this.recurse(e), g = '"' + this.USE + " " + this.STRICT + '";\n' + this.filterPrefix() + "var fn=" + this.generateFunction("fn", "s,l,a,i") + g + this.watchFns() + "return fn;", g = new Function("$filter", "ensureSafeMemberName", "ensureSafeObject", "ensureSafeFunction", "getStringValue", "ensureSafeAssignContext", "ifDefined", "plus", "text", g)(this.$filter, Db, Fb, Gb, Eb, Hb, Ib, Jb, a), this.state = this.stage = void 0, g.literal = Ob(e), g.constant = e.constant, g
},
USE: "use",
STRICT: "strict",
watchFns: function() {
var a = [],
b = this.state.inputs,
c = this;
return d(b, function(b) {
a.push("var " + b + "=" + c.generateFunction(b, "s"))
}), b.length && a.push("fn.inputs=[" + b.join(",") + "];"), a.join("")
},
generateFunction: function(a, b) {
return "function(" + b + "){" + this.varsPrefix(a) + this.body(a) + "};"
},
filterPrefix: function() {
var a = [],
b = this;
return d(this.state.filters, function(c, d) {
a.push(c + "=$filter(" + b.escape(d) + ")")
}), a.length ? "var " + a.join(",") + ";" : ""
},
varsPrefix: function(a) {
return this.state[a].vars.length ? "var " + this.state[a].vars.join(",") + ";" : ""
},
body: function(a) {
return this.state[a].body.join("")
},
recurse: function(a, b, c, e, f, g) {
var h, i, j, k, l, n = this;
if (e = e || m, !g && r(a.watchId)) b = b || this.nextId(), this.if_("i", this.lazyAssign(b, this.computedMember("i", a.watchId)), this.lazyRecurse(a, b, c, e, f, !0));
else switch (a.type) {
case se.Program:
d(a.body, function(b, c) {
n.recurse(b.expression, void 0, void 0, function(a) {
i = a
}), c !== a.body.length - 1 ? n.current().body.push(i, ";") : n.return_(i)
});
break;
case se.Literal:
k = this.escape(a.value), this.assign(b, k), e(k);
break;
case se.UnaryExpression:
this.recurse(a.argument, void 0, void 0, function(a) {
i = a
}), k = a.operator + "(" + this.ifDefined(i, 0) + ")", this.assign(b, k), e(k);
break;
case se.BinaryExpression:
this.recurse(a.left, void 0, void 0, function(a) {
h = a
}), this.recurse(a.right, void 0, void 0, function(a) {
i = a
}), k = "+" === a.operator ? this.plus(h, i) : "-" === a.operator ? this.ifDefined(h, 0) + a.operator + this.ifDefined(i, 0) : "(" + h + ")" + a.operator + "(" + i + ")", this.assign(b, k), e(k);
break;
case se.LogicalExpression:
b = b || this.nextId(), n.recurse(a.left, b), n.if_("&&" === a.operator ? b : n.not(b), n.lazyRecurse(a.right, b)), e(b);
break;
case se.ConditionalExpression:
b = b || this.nextId(), n.recurse(a.test, b), n.if_(b, n.lazyRecurse(a.alternate, b), n.lazyRecurse(a.consequent, b)), e(b);
break;
case se.Identifier:
b = b || this.nextId(), c && (c.context = "inputs" === n.stage ? "s" : this.assign(this.nextId(), this.getHasOwnProperty("l", a.name) + "?l:s"), c.computed = !1, c.name = a.name), Db(a.name), n.if_("inputs" === n.stage || n.not(n.getHasOwnProperty("l", a.name)), function() {
n.if_("inputs" === n.stage || "s", function() {
f && 1 !== f && n.if_(n.not(n.nonComputedMember("s", a.name)), n.lazyAssign(n.nonComputedMember("s", a.name), "{}")), n.assign(b, n.nonComputedMember("s", a.name))
})
}, b && n.lazyAssign(b, n.nonComputedMember("l", a.name))), (n.state.expensiveChecks || Rb(a.name)) && n.addEnsureSafeObject(b), e(b);
break;
case se.MemberExpression:
h = c && (c.context = this.nextId()) || this.nextId(), b = b || this.nextId(), n.recurse(a.object, h, void 0, function() {
n.if_(n.notNull(h), function() {
f && 1 !== f && n.addEnsureSafeAssignContext(h), a.computed ? (i = n.nextId(), n.recurse(a.property, i), n.getStringValue(i), n.addEnsureSafeMemberName(i), f && 1 !== f && n.if_(n.not(n.computedMember(h, i)), n.lazyAssign(n.computedMember(h, i), "{}")), k = n.ensureSafeObject(n.computedMember(h, i)), n.assign(b, k), c && (c.computed = !0, c.name = i)) : (Db(a.property.name), f && 1 !== f && n.if_(n.not(n.nonComputedMember(h, a.property.name)), n.lazyAssign(n.nonComputedMember(h, a.property.name), "{}")), k = n.nonComputedMember(h, a.property.name), (n.state.expensiveChecks || Rb(a.property.name)) && (k = n.ensureSafeObject(k)), n.assign(b, k), c && (c.computed = !1, c.name = a.property.name))
}, function() {
n.assign(b, "undefined")
}), e(b)
}, !!f);
break;
case se.CallExpression:
b = b || this.nextId(), a.filter ? (i = n.filter(a.callee.name), j = [], d(a.arguments, function(a) {
var b = n.nextId();
n.recurse(a, b), j.push(b)
}), k = i + "(" + j.join(",") + ")", n.assign(b, k), e(b)) : (i = n.nextId(), h = {}, j = [], n.recurse(a.callee, i, h, function() {
n.if_(n.notNull(i), function() {
n.addEnsureSafeFunction(i), d(a.arguments, function(a) {
n.recurse(a, n.nextId(), void 0, function(a) {
j.push(n.ensureSafeObject(a))
})
}), h.name ? (n.state.expensiveChecks || n.addEnsureSafeObject(h.context), k = n.member(h.context, h.name, h.computed) + "(" + j.join(",") + ")") : k = i + "(" + j.join(",") + ")", k = n.ensureSafeObject(k), n.assign(b, k)
}, function() {
n.assign(b, "undefined")
}), e(b)
}));
break;
case se.AssignmentExpression:
if (i = this.nextId(), h = {}, !Mb(a.left)) throw le("lval");
this.recurse(a.left, void 0, h, function() {
n.if_(n.notNull(h.context), function() {
n.recurse(a.right, i), n.addEnsureSafeObject(n.member(h.context, h.name, h.computed)), n.addEnsureSafeAssignContext(h.context), k = n.member(h.context, h.name, h.computed) + a.operator + i, n.assign(b, k), e(b || k)
})
}, 1);
break;
case se.ArrayExpression:
j = [], d(a.elements, function(a) {
n.recurse(a, n.nextId(), void 0, function(a) {
j.push(a)
})
}), k = "[" + j.join(",") + "]", this.assign(b, k), e(k);
break;
case se.ObjectExpression:
j = [], l = !1, d(a.properties, function(a) {
a.computed && (l = !0)
}), l ? (b = b || this.nextId(), this.assign(b, "{}"), d(a.properties, function(a) {
a.computed ? (h = n.nextId(), n.recurse(a.key, h)) : h = a.key.type === se.Identifier ? a.key.name : "" + a.key.value, i = n.nextId(), n.recurse(a.value, i), n.assign(n.member(b, h, a.computed), i)
})) : (d(a.properties, function(b) {
n.recurse(b.value, a.constant ? void 0 : n.nextId(), void 0, function(a) {
j.push(n.escape(b.key.type === se.Identifier ? b.key.name : "" + b.key.value) + ":" + a)
})
}), k = "{" + j.join(",") + "}", this.assign(b, k)), e(b || k);
break;
case se.ThisExpression:
this.assign(b, "s"), e("s");
break;
case se.LocalsExpression:
this.assign(b, "l"), e("l");
break;
case se.NGValueParameter:
this.assign(b, "v"), e("v")
}
},
getHasOwnProperty: function(a, b) {
var c = a + "." + b,
d = this.current().own;
return d.hasOwnProperty(c) || (d[c] = this.nextId(!1, a + "&&(" + this.escape(b) + " in " + a + ")")), d[c]
},
assign: function(a, b) {
if (a) return this.current().body.push(a, "=", b, ";"), a
},
filter: function(a) {
return this.state.filters.hasOwnProperty(a) || (this.state.filters[a] = this.nextId(!0)), this.state.filters[a]
},
ifDefined: function(a, b) {
return "ifDefined(" + a + "," + this.escape(b) + ")"
},
plus: function(a, b) {
return "plus(" + a + "," + b + ")"
},
return_: function(a) {
this.current().body.push("return ", a, ";")
},
if_: function(a, b, c) {
if (!0 === a) b();
else {
var d = this.current().body;
d.push("if(", a, "){"), b(), d.push("}"), c && (d.push("else{"), c(), d.push("}"))
}
},
not: function(a) {
return "!(" + a + ")"
},
notNull: function(a) {
return a + "!=null"
},
nonComputedMember: function(a, b) {
var c = /[^$_a-zA-Z0-9]/g;
return /[$_a-zA-Z][$_a-zA-Z0-9]*/.test(b) ? a + "." + b : a + '["' + b.replace(c, this.stringEscapeFn) + '"]'
},
computedMember: function(a, b) {
return a + "[" + b + "]"
},
member: function(a, b, c) {
return c ? this.computedMember(a, b) : this.nonComputedMember(a, b)
},
addEnsureSafeObject: function(a) {
this.current().body.push(this.ensureSafeObject(a), ";")
},
addEnsureSafeMemberName: function(a) {
this.current().body.push(this.ensureSafeMemberName(a), ";")
},
addEnsureSafeFunction: function(a) {
this.current().body.push(this.ensureSafeFunction(a), ";")
},
addEnsureSafeAssignContext: function(a) {
this.current().body.push(this.ensureSafeAssignContext(a), ";")
},
ensureSafeObject: function(a) {
return "ensureSafeObject(" + a + ",text)"
},
ensureSafeMemberName: function(a) {
return "ensureSafeMemberName(" + a + ",text)"
},
ensureSafeFunction: function(a) {
return "ensureSafeFunction(" + a + ",text)"
},
getStringValue: function(a) {
this.assign(a, "getStringValue(" + a + ")")
},
ensureSafeAssignContext: function(a) {
return "ensureSafeAssignContext(" + a + ",text)"
},
lazyRecurse: function(a, b, c, d, e, f) {
var g = this;
return function() {
g.recurse(a, b, c, d, e, f)
}
},
lazyAssign: function(a, b) {
var c = this;
return function() {
c.assign(a, b)
}
},
stringEscapeRegex: /[^ a-zA-Z0-9]/g,
stringEscapeFn: function(a) {
return "\\u" + ("0000" + a.charCodeAt(0).toString(16)).slice(-4)
},
escape: function(a) {
if (u(a)) return "'" + a.replace(this.stringEscapeRegex, this.stringEscapeFn) + "'";
if (v(a)) return a.toString();
if (!0 === a) return "true";
if (!1 === a) return "false";
if (null === a) return "null";
if ("undefined" == typeof a) return "undefined";
throw le("esc")
},
nextId: function(a, b) {
var c = "v" + this.state.nextId++;
return a || this.current().vars.push(c + (b ? "=" + b : "")), c
},
current: function() {
return this.state[this.state.computing]
}
}, Qb.prototype = {
compile: function(a, b) {
var c = this,
e = this.astBuilder.ast(a);
this.expression = a, this.expensiveChecks = b, Kb(e, c.$filter);
var f, g;
(f = Nb(e)) && (g = this.recurse(f)), f = Lb(e.body);
var h;
f && (h = [], d(f, function(a, b) {
var d = c.recurse(a);
a.input = d, h.push(d), a.watchId = b
}));
var i = [];
return d(e.body, function(a) {
i.push(c.recurse(a.expression))
}), f = 0 === e.body.length ? m : 1 === e.body.length ? i[0] : function(a, b) {
var c;
return d(i, function(d) {
c = d(a, b)
}), c
}, g && (f.assign = function(a, b, c) {
return g(a, c, b)
}), h && (f.inputs = h), f.literal = Ob(e), f.constant = e.constant, f
},
recurse: function(a, b, c) {
var e, f, g, h = this;
if (a.input) return this.inputs(a.input, a.watchId);
switch (a.type) {
case se.Literal:
return this.value(a.value, b);
case se.UnaryExpression:
return f = this.recurse(a.argument), this["unary" + a.operator](f, b);
case se.BinaryExpression:
return e = this.recurse(a.left), f = this.recurse(a.right), this["binary" + a.operator](e, f, b);
case se.LogicalExpression:
return e = this.recurse(a.left), f = this.recurse(a.right), this["binary" + a.operator](e, f, b);
case se.ConditionalExpression:
return this["ternary?:"](this.recurse(a.test), this.recurse(a.alternate), this.recurse(a.consequent), b);
case se.Identifier:
return Db(a.name, h.expression), h.identifier(a.name, h.expensiveChecks || Rb(a.name), b, c, h.expression);
case se.MemberExpression:
return e = this.recurse(a.object, !1, !!c), a.computed || (Db(a.property.name, h.expression), f = a.property.name), a.computed && (f = this.recurse(a.property)), a.computed ? this.computedMember(e, f, b, c, h.expression) : this.nonComputedMember(e, f, h.expensiveChecks, b, c, h.expression);
case se.CallExpression:
return g = [], d(a.arguments, function(a) {
g.push(h.recurse(a))
}), a.filter && (f = this.$filter(a.callee.name)), a.filter || (f = this.recurse(a.callee, !0)), a.filter ? function(a, c, d, e) {
for (var h = [], i = 0; i < g.length; ++i) h.push(g[i](a, c, d, e));
return a = f.apply(void 0, h, e), b ? {
context: void 0,
name: void 0,
value: a
} : a
} : function(a, c, d, e) {
var i, j = f(a, c, d, e);
if (null != j.value) {
Fb(j.context, h.expression), Gb(j.value, h.expression), i = [];
for (var k = 0; k < g.length; ++k) i.push(Fb(g[k](a, c, d, e), h.expression));
i = Fb(j.value.apply(j.context, i), h.expression)
}
return b ? {
value: i
} : i
};
case se.AssignmentExpression:
return e = this.recurse(a.left, !0, 1), f = this.recurse(a.right),
function(a, c, d, g) {
var i = e(a, c, d, g);
return a = f(a, c, d, g), Fb(i.value, h.expression), Hb(i.context), i.context[i.name] = a, b ? {
value: a
} : a
};
case se.ArrayExpression:
return g = [], d(a.elements, function(a) {
g.push(h.recurse(a))
}),
function(a, c, d, e) {
for (var f = [], h = 0; h < g.length; ++h) f.push(g[h](a, c, d, e));
return b ? {
value: f
} : f
};
case se.ObjectExpression:
return g = [], d(a.properties, function(a) {
a.computed ? g.push({
key: h.recurse(a.key),
computed: !0,
value: h.recurse(a.value)
}) : g.push({
key: a.key.type === se.Identifier ? a.key.name : "" + a.key.value,
computed: !1,
value: h.recurse(a.value)
})
}),
function(a, c, d, e) {
for (var f = {}, h = 0; h < g.length; ++h) g[h].computed ? f[g[h].key(a, c, d, e)] = g[h].value(a, c, d, e) : f[g[h].key] = g[h].value(a, c, d, e);
return b ? {
value: f
} : f
};
case se.ThisExpression:
return function(a) {
return b ? {
value: a
} : a
};
case se.LocalsExpression:
return function(a, c) {
return b ? {
value: c
} : c
};
case se.NGValueParameter:
return function(a, c, d) {
return b ? {
value: d
} : d
}
}
},
"unary+": function(a, b) {
return function(c, d, e, f) {
return c = a(c, d, e, f), c = r(c) ? +c : 0, b ? {
value: c
} : c
}
},
"unary-": function(a, b) {
return function(c, d, e, f) {
return c = a(c, d, e, f), c = r(c) ? -c : 0, b ? {
value: c
} : c
}
},
"unary!": function(a, b) {
return function(c, d, e, f) {
return c = !a(c, d, e, f), b ? {
value: c
} : c
}
},
"binary+": function(a, b, c) {
return function(d, e, f, g) {
var h = a(d, e, f, g);
return d = b(d, e, f, g), h = Jb(h, d), c ? {
value: h
} : h
}
},
"binary-": function(a, b, c) {
return function(d, e, f, g) {
var h = a(d, e, f, g);
return d = b(d, e, f, g), h = (r(h) ? h : 0) - (r(d) ? d : 0), c ? {
value: h
} : h
}
},
"binary*": function(a, b, c) {
return function(d, e, f, g) {
return d = a(d, e, f, g) * b(d, e, f, g), c ? {
value: d
} : d
}
},
"binary/": function(a, b, c) {
return function(d, e, f, g) {
return d = a(d, e, f, g) / b(d, e, f, g), c ? {
value: d
} : d
}
},
"binary%": function(a, b, c) {
return function(d, e, f, g) {
return d = a(d, e, f, g) % b(d, e, f, g), c ? {
value: d
} : d
}
},
"binary===": function(a, b, c) {
return function(d, e, f, g) {
return d = a(d, e, f, g) === b(d, e, f, g), c ? {
value: d
} : d
}
},
"binary!==": function(a, b, c) {
return function(d, e, f, g) {
return d = a(d, e, f, g) !== b(d, e, f, g), c ? {
value: d
} : d
}
},
"binary==": function(a, b, c) {
return function(d, e, f, g) {
return d = a(d, e, f, g) == b(d, e, f, g), c ? {
value: d
} : d
}
},
"binary!=": function(a, b, c) {
return function(d, e, f, g) {
return d = a(d, e, f, g) != b(d, e, f, g), c ? {
value: d
} : d
}
},
"binary<": function(a, b, c) {
return function(d, e, f, g) {
return d = a(d, e, f, g) < b(d, e, f, g), c ? {
value: d
} : d
}
},
"binary>": function(a, b, c) {
return function(d, e, f, g) {
return d = a(d, e, f, g) > b(d, e, f, g), c ? {
value: d
} : d
}
},
"binary<=": function(a, b, c) {
return function(d, e, f, g) {
return d = a(d, e, f, g) <= b(d, e, f, g), c ? {
value: d
} : d
}
},
"binary>=": function(a, b, c) {
return function(d, e, f, g) {
return d = a(d, e, f, g) >= b(d, e, f, g), c ? {
value: d
} : d
}
},
"binary&&": function(a, b, c) {
return function(d, e, f, g) {
return d = a(d, e, f, g) && b(d, e, f, g), c ? {
value: d
} : d
}
},
"binary||": function(a, b, c) {
return function(d, e, f, g) {
return d = a(d, e, f, g) || b(d, e, f, g), c ? {
value: d
} : d
}
},
"ternary?:": function(a, b, c, d) {
return function(e, f, g, h) {
return e = a(e, f, g, h) ? b(e, f, g, h) : c(e, f, g, h), d ? {
value: e
} : e
}
},
value: function(a, b) {
return function() {
return b ? {
context: void 0,
name: void 0,
value: a
} : a
}
},
identifier: function(a, b, c, d, e) {
return function(f, g, h, i) {
return f = g && a in g ? g : f, d && 1 !== d && f && !f[a] && (f[a] = {}), g = f ? f[a] : void 0, b && Fb(g, e), c ? {
context: f,
name: a,
value: g
} : g
}
},
computedMember: function(a, b, c, d, e) {
return function(f, g, h, i) {
var j, k, l = a(f, g, h, i);
return null != l && (j = b(f, g, h, i), j += "", Db(j, e), d && 1 !== d && (Hb(l), l && !l[j] && (l[j] = {})), k = l[j], Fb(k, e)), c ? {
context: l,
name: j,
value: k
} : k
}
},
nonComputedMember: function(a, b, c, d, e, f) {
return function(g, h, i, j) {
return g = a(g, h, i, j), e && 1 !== e && (Hb(g), g && !g[b] && (g[b] = {})), h = null != g ? g[b] : void 0, (c || Rb(b)) && Fb(h, f), d ? {
context: g,
name: b,
value: h
} : h
}
},
inputs: function(a, b) {
return function(c, d, e, f) {
return f ? f[b] : a(c, d, e)
}
}
};
var te = function(a, b, c) {
this.lexer = a, this.$filter = b, this.options = c, this.ast = new se(a, c), this.astCompiler = c.csp ? new Qb(this.ast, b) : new Pb(this.ast, b)
};
te.prototype = {
constructor: te,
parse: function(a) {
return this.astCompiler.compile(a, this.options.expensiveChecks)
}
};
var ue = Object.prototype.valueOf,
ve = b("$sce"),
we = {
HTML: "html",
CSS: "css",
URL: "url",
RESOURCE_URL: "resourceUrl",
JS: "js"
},
xe = b("$compile"),
ye = a.document.createElement("a"),
ze = gc(a.location.href);
jc.$inject = ["$document"], lc.$inject = ["$provide"];
var Ae = 22,
Be = ".",
Ce = "0";
qc.$inject = ["$locale"], rc.$inject = ["$locale"];
var De = {
yyyy: wc("FullYear", 4, 0, !1, !0),
yy: wc("FullYear", 2, 0, !0, !0),
y: wc("FullYear", 1, 0, !1, !0),
MMMM: xc("Month"),
MMM: xc("Month", !0),
MM: wc("Month", 2, 1),
M: wc("Month", 1, 1),
LLLL: xc("Month", !1, !0),
dd: wc("Date", 2),
d: wc("Date", 1),
HH: wc("Hours", 2),
H: wc("Hours", 1),
hh: wc("Hours", 2, -12),
h: wc("Hours", 1, -12),
mm: wc("Minutes", 2),
m: wc("Minutes", 1),
ss: wc("Seconds", 2),
s: wc("Seconds", 1),
sss: wc("Milliseconds", 3),
EEEE: xc("Day"),
EEE: xc("Day", !0),
a: function(a, b) {
return 12 > a.getHours() ? b.AMPMS[0] : b.AMPMS[1]
},
Z: function(a, b, c) {
return a = -1 * c, a = (0 <= a ? "+" : "") + (vc(Math[0 < a ? "floor" : "ceil"](a / 60), 2) + vc(Math.abs(a % 60), 2))
},
ww: zc(2),
w: zc(1),
G: Ac,
GG: Ac,
GGG: Ac,
GGGG: function(a, b) {
return 0 >= a.getFullYear() ? b.ERANAMES[0] : b.ERANAMES[1]
}
},
Ee = /((?:[^yMLdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|L+|d+|H+|h+|m+|s+|a|Z|G+|w+))(.*)/,
Fe = /^\-?\d+$/;
Bc.$inject = ["$locale"];
var Ge = o(Xc),
He = o(Yc);
Fc.$inject = ["$parse"];
var Ie = o({
restrict: "E",
compile: function(a, b) {
if (!b.href && !b.xlinkHref) return function(a, b) {
if ("a" === b[0].nodeName.toLowerCase()) {
var c = "[object SVGAnimatedString]" === ad.call(b.prop("href")) ? "xlink:href" : "href";
b.on("click", function(a) {
b.attr(c) || a.preventDefault()
})
}
}
}
}),
Je = {};
d(Ed, function(a, b) {
function c(a, c, e) {
a.$watch(e[d], function(a) {
e.$set(b, !!a)
})
}
if ("multiple" != a) {
var d = Ya("ng-" + b),
e = c;
"checked" === a && (e = function(a, b, e) {
e.ngModel !== e[d] && c(a, b, e)
}), Je[d] = function() {
return {
restrict: "A",
priority: 100,
link: e
}
}
}
}), d(Gd, function(a, b) {
Je[b] = function() {
return {
priority: 100,
link: function(a, c, d) {
return "ngPattern" === b && "/" == d.ngPattern.charAt(0) && (c = d.ngPattern.match(Vc)) ? void d.$set("ngPattern", new RegExp(c[1], c[2])) : void a.$watch(d[b], function(a) {
d.$set(b, a)
})
}
}
}
}), d(["src", "srcset", "href"], function(a) {
var b = Ya("ng-" + a);
Je[b] = function() {
return {
priority: 99,
link: function(c, d, e) {
var f = a,
g = a;
"href" === a && "[object SVGAnimatedString]" === ad.call(d.prop("href")) && (g = "xlinkHref", e.$attr[g] = "xlink:href", f = null), e.$observe(b, function(b) {
b ? (e.$set(g, b), Rc && f && d.prop(f, e[g])) : "href" === a && e.$set(g, null)
})
}
}
}
});
var Ke = {
$addControl: m,
$$renameControl: function(a, b) {
a.$name = b
},
$removeControl: m,
$setValidity: m,
$setDirty: m,
$setPristine: m,
$setSubmitted: m
};
Hc.$inject = ["$element", "$attrs", "$scope", "$animate", "$interpolate"];
var Le = function(a) {
return ["$timeout", "$parse", function(b, c) {
function d(a) {
return "" === a ? c('this[""]').assign : c(a).assign || m
}
return {
name: "form",
restrict: a ? "EAC" : "E",
require: ["form", "^^?form"],
controller: Hc,
compile: function(c, e) {
c.addClass(tf).addClass(rf);
var f = e.name ? "name" : !(!a || !e.ngForm) && "ngForm";
return {
pre: function(a, c, e, g) {
var h = g[0];
if (!("action" in e)) {
var j = function(b) {
a.$apply(function() {
h.$commitViewValue(), h.$setSubmitted()
}), b.preventDefault()
};
c[0].addEventListener("submit", j, !1), c.on("$destroy", function() {
b(function() {
c[0].removeEventListener("submit", j, !1)
}, 0, !1)
})
}(g[1] || h.$$parentForm).$addControl(h);
var k = f ? d(h.$name) : m;
f && (k(a, h), e.$observe(f, function(b) {
h.$name !== b && (k(a, void 0), h.$$parentForm.$$renameControl(h, b), (k = d(h.$name))(a, h))
})), c.on("$destroy", function() {
h.$$parentForm.$removeControl(h), k(a, void 0), i(h, Ke)
})
}
}
}
}
}]
},
Me = Le(),
Ne = Le(!0),
Oe = /^\d{4,}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+(?:[+-][0-2]\d:[0-5]\d|Z)$/,
Pe = /^[a-z][a-z\d.+-]*:\/*(?:[^:@]+(?::[^@]+)?@)?(?:[^\s:\/?#]+|\[[a-f\d:]+\])(?::\d+)?(?:\/[^?#]*)?(?:\?[^#]*)?(?:#.*)?$/i,
Qe = /^(?=.{1,254}$)(?=.{1,64}@)[-!#$%&'*+\/0-9=?A-Z^_`a-z{|}~]+(\.[-!#$%&'*+\/0-9=?A-Z^_`a-z{|}~]+)*@[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])?)*$/,
Re = /^\s*(\-|\+)?(\d+|(\d*(\.\d*)))([eE][+-]?\d+)?\s*$/,
Se = /^(\d{4,})-(\d{2})-(\d{2})$/,
Te = /^(\d{4,})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,
Ue = /^(\d{4,})-W(\d\d)$/,
Ve = /^(\d{4,})-(\d\d)$/,
We = /^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,
Xe = ga();
d(["date", "datetime-local", "month", "time", "week"], function(a) {
Xe[a] = !0
});
var Ye = {
text: function(a, b, c, d, e, f) {
Jc(a, b, c, d, e, f), Ic(d)
},
date: Lc("date", Se, Kc(Se, ["yyyy", "MM", "dd"]), "yyyy-MM-dd"),
"datetime-local": Lc("datetimelocal", Te, Kc(Te, "yyyy MM dd HH mm ss sss".split(" ")), "yyyy-MM-ddTHH:mm:ss.sss"),
time: Lc("time", We, Kc(We, ["HH", "mm", "ss", "sss"]), "HH:mm:ss.sss"),
week: Lc("week", Ue, function(a, b) {
if (w(a)) return a;
if (u(a)) {
Ue.lastIndex = 0;
var c = Ue.exec(a);
if (c) {
var d = +c[1],
e = +c[2],
f = c = 0,
g = 0,
h = 0,
i = yc(d),
e = 7 * (e - 1);
return b && (c = b.getHours(), f = b.getMinutes(), g = b.getSeconds(), h = b.getMilliseconds()), new Date(d, 0, i.getDate() + e, c, f, g, h)
}
}
return NaN
}, "yyyy-Www"),
month: Lc("month", Ve, Kc(Ve, ["yyyy", "MM"]), "yyyy-MM"),
number: function(a, b, c, d, e, f) {
if (Mc(a, b, c, d), Jc(a, b, c, d, e, f), d.$$parserName = "number", d.$parsers.push(function(a) {
return d.$isEmpty(a) ? null : Re.test(a) ? parseFloat(a) : void 0
}), d.$formatters.push(function(a) {
if (!d.$isEmpty(a)) {
if (!v(a)) throw wf("numfmt", a);
a = a.toString()
}
return a
}), r(c.min) || c.ngMin) {
var g;
d.$validators.min = function(a) {
return d.$isEmpty(a) || q(g) || a >= g
}, c.$observe("min", function(a) {
r(a) && !v(a) && (a = parseFloat(a, 10)), g = v(a) && !isNaN(a) ? a : void 0, d.$validate()
})
}
if (r(c.max) || c.ngMax) {
var h;
d.$validators.max = function(a) {
return d.$isEmpty(a) || q(h) || a <= h
}, c.$observe("max", function(a) {
r(a) && !v(a) && (a = parseFloat(a, 10)), h = v(a) && !isNaN(a) ? a : void 0, d.$validate()
})
}
},
url: function(a, b, c, d, e, f) {
Jc(a, b, c, d, e, f), Ic(d), d.$$parserName = "url", d.$validators.url = function(a, b) {
var c = a || b;
return d.$isEmpty(c) || Pe.test(c)
}
},
email: function(a, b, c, d, e, f) {
Jc(a, b, c, d, e, f), Ic(d), d.$$parserName = "email", d.$validators.email = function(a, b) {
var c = a || b;
return d.$isEmpty(c) || Qe.test(c)
}
},
radio: function(a, b, c, d) {
q(c.name) && b.attr("name", ++ed), b.on("click", function(a) {
b[0].checked && d.$setViewValue(c.value, a && a.type)
}), d.$render = function() {
b[0].checked = c.value == d.$viewValue
}, c.$observe("value", d.$render)
},
checkbox: function(a, b, c, d, e, f, g, h) {
var i = Nc(h, a, "ngTrueValue", c.ngTrueValue, !0),
j = Nc(h, a, "ngFalseValue", c.ngFalseValue, !1);
b.on("click", function(a) {
d.$setViewValue(b[0].checked, a && a.type)
}), d.$render = function() {
b[0].checked = d.$viewValue
}, d.$isEmpty = function(a) {
return !1 === a
}, d.$formatters.push(function(a) {
return I(a, i)
}), d.$parsers.push(function(a) {
return a ? i : j
})
},
hidden: m,
button: m,
submit: m,
reset: m,
file: m
},
Ze = ["$browser", "$sniffer", "$filter", "$parse", function(a, b, c, d) {
return {
restrict: "E",
require: ["?ngModel"],
link: {
pre: function(e, f, g, h) {
h[0] && (Ye[Xc(g.type)] || Ye.text)(e, f, g, h[0], b, a, c, d)
}
}
}
}],
$e = /^(true|false|\d+)$/,
_e = function() {
return {
restrict: "A",
priority: 100,
compile: function(a, b) {
return $e.test(b.ngValue) ? function(a, b, c) {
c.$set("value", a.$eval(c.ngValue))
} : function(a, b, c) {
a.$watch(c.ngValue, function(a) {
c.$set("value", a)
})
}
}
}
},
af = ["$compile", function(a) {
return {
restrict: "AC",
compile: function(b) {
return a.$$addBindingClass(b),
function(b, c, d) {
a.$$addBindingInfo(c, d.ngBind), c = c[0], b.$watch(d.ngBind, function(a) {
c.textContent = q(a) ? "" : a
})
}
}
}
}],
bf = ["$interpolate", "$compile", function(a, b) {
return {
compile: function(c) {
return b.$$addBindingClass(c),
function(c, d, e) {
c = a(d.attr(e.$attr.ngBindTemplate)), b.$$addBindingInfo(d, c.expressions), d = d[0], e.$observe("ngBindTemplate", function(a) {
d.textContent = q(a) ? "" : a
})
}
}
}
}],
cf = ["$sce", "$parse", "$compile", function(a, b, c) {
return {
restrict: "A",
compile: function(d, e) {
var f = b(e.ngBindHtml),
g = b(e.ngBindHtml, function(b) {
return a.valueOf(b)
});
return c.$$addBindingClass(d),
function(b, d, e) {
c.$$addBindingInfo(d, e.ngBindHtml), b.$watch(g, function() {
var c = f(b);
d.html(a.getTrustedHtml(c) || "")
})
}
}
}
}],
df = o({
restrict: "A",
require: "ngModel",
link: function(a, b, c, d) {
d.$viewChangeListeners.push(function() {
a.$eval(c.ngChange)
})
}
}),
ef = Oc("", !0),
ff = Oc("Odd", 0),
gf = Oc("Even", 1),
hf = Gc({
compile: function(a, b) {
b.$set("ngCloak", void 0), a.removeClass("ng-cloak")
}
}),
jf = [function() {
return {
restrict: "A",
scope: !0,
controller: "@",
priority: 500
}
}],
kf = {},
lf = {
blur: !0,
focus: !0
};
d("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "), function(a) {
var b = Ya("ng-" + a);
kf[b] = ["$parse", "$rootScope", function(c, d) {
return {
restrict: "A",
compile: function(e, f) {
var g = c(f[b], null, !0);
return function(b, c) {
c.on(a, function(c) {
var e = function() {
g(b, {
$event: c
})
};
lf[a] && d.$$phase ? b.$evalAsync(e) : b.$apply(e)
})
}
}
}
}]
});
var mf = ["$animate", "$compile", function(a, b) {
return {
multiElement: !0,
transclude: "element",
priority: 600,
terminal: !0,
restrict: "A",
$$tlb: !0,
link: function(c, d, e, f, g) {
var h, i, j;
c.$watch(e.ngIf, function(c) {
c ? i || g(function(c, f) {
i = f, c[c.length++] = b.$$createComment("end ngIf", e.ngIf), h = {
clone: c
}, a.enter(c, d.parent(), d)
}) : (j && (j.remove(), j = null), i && (i.$destroy(), i = null), h && (j = fa(h.clone), a.leave(j).then(function() {
j = null
}), h = null))
})
}
}
}],
nf = ["$templateRequest", "$anchorScroll", "$animate", function(a, b, c) {
return {
restrict: "ECA",
priority: 400,
terminal: !0,
transclude: "element",
controller: dd.noop,
compile: function(d, e) {
var f = e.ngInclude || e.src,
g = e.onload || "",
h = e.autoscroll;
return function(d, e, i, j, k) {
var l, m, n, o = 0,
p = function() {
m && (m.remove(), m = null), l && (l.$destroy(), l = null), n && (c.leave(n).then(function() {
m = null
}), m = n, n = null)
};
d.$watch(f, function(f) {
var i = function() {
!r(h) || h && !d.$eval(h) || b()
},
m = ++o;
f ? (a(f, !0).then(function(a) {
if (!d.$$destroyed && m === o) {
var b = d.$new();
j.template = a, a = k(b, function(a) {
p(), c.enter(a, null, e).then(i)
}), l = b, n = a, l.$emit("$includeContentLoaded", f), d.$eval(g)
}
}, function() {
d.$$destroyed || m !== o || (p(), d.$emit("$includeContentError", f))
}), d.$emit("$includeContentRequested", f)) : (p(), j.template = null)
})
}
}
}
}],
of = ["$compile", function(b) {
return {
restrict: "ECA",
priority: -400,
require: "ngInclude",
link: function(c, d, e, f) {
ad.call(d[0]).match(/SVG/) ? (d.empty(), b(ma(f.template, a.document).childNodes)(c, function(a) {
d.append(a)
}, {
futureParentElement: d
})) : (d.html(f.template), b(d.contents())(c))
}
}
}],
pf = Gc({
priority: 450,
compile: function() {
return {
pre: function(a, b, c) {
a.$eval(c.ngInit)
}
}
}
}),
qf = function() {
return {
restrict: "A",
priority: 100,
require: "ngModel",
link: function(a, b, c, e) {
var f = b.attr(c.$attr.ngList) || ", ",
g = "false" !== c.ngTrim,
h = g ? hd(f) : f;
e.$parsers.push(function(a) {
if (!q(a)) {
var b = [];
return a && d(a.split(h), function(a) {
a && b.push(g ? hd(a) : a)
}), b
}
}), e.$formatters.push(function(a) {
if (fd(a)) return a.join(f)
}), e.$isEmpty = function(a) {
return !a || !a.length
}
}
}
},
rf = "ng-valid",
sf = "ng-invalid",
tf = "ng-pristine",
uf = "ng-dirty",
vf = "ng-pending",
wf = b("ngModel"),
xf = ["$scope", "$exceptionHandler", "$attrs", "$element", "$parse", "$animate", "$timeout", "$rootScope", "$q", "$interpolate", function(a, b, c, e, f, g, h, i, j, k) {
this.$modelValue = this.$viewValue = Number.NaN, this.$$rawModelValue = void 0, this.$validators = {}, this.$asyncValidators = {}, this.$parsers = [], this.$formatters = [], this.$viewChangeListeners = [], this.$untouched = !0, this.$touched = !1, this.$pristine = !0, this.$dirty = !1, this.$valid = !0, this.$invalid = !1, this.$error = {}, this.$$success = {}, this.$pending = void 0, this.$name = k(c.name || "", !1)(a), this.$$parentForm = Ke;
var l, n = f(c.ngModel),
o = n.assign,
p = n,
s = o,
t = null,
u = this;
this.$$setOptions = function(a) {
if ((u.$options = a) && a.getterSetter) {
var b = f(c.ngModel + "()"),
d = f(c.ngModel + "($$$p)");
p = function(a) {
var c = n(a);
return x(c) && (c = b(a)), c
}, s = function(a, b) {
x(n(a)) ? d(a, {
$$$p: b
}) : o(a, b)
}
} else if (!n.assign) throw wf("nonassign", c.ngModel, Q(e))
}, this.$render = m, this.$isEmpty = function(a) {
return q(a) || "" === a || null === a || a !== a
}, this.$$updateEmptyClasses = function(a) {
u.$isEmpty(a) ? (g.removeClass(e, "ng-not-empty"), g.addClass(e, "ng-empty")) : (g.removeClass(e, "ng-empty"), g.addClass(e, "ng-not-empty"))
};
var w = 0;
Pc({
ctrl: this,
$element: e,
set: function(a, b) {
a[b] = !0
},
unset: function(a, b) {
delete a[b]
},
$animate: g
}), this.$setPristine = function() {
u.$dirty = !1, u.$pristine = !0, g.removeClass(e, uf), g.addClass(e, tf)
}, this.$setDirty = function() {
u.$dirty = !0, u.$pristine = !1, g.removeClass(e, tf), g.addClass(e, uf), u.$$parentForm.$setDirty()
}, this.$setUntouched = function() {
u.$touched = !1, u.$untouched = !0, g.setClass(e, "ng-untouched", "ng-touched")
}, this.$setTouched = function() {
u.$touched = !0, u.$untouched = !1, g.setClass(e, "ng-touched", "ng-untouched")
}, this.$rollbackViewValue = function() {
h.cancel(t), u.$viewValue = u.$$lastCommittedViewValue, u.$render()
}, this.$validate = function() {
if (!v(u.$modelValue) || !isNaN(u.$modelValue)) {
var a = u.$$rawModelValue,
b = u.$valid,
c = u.$modelValue,
d = u.$options && u.$options.allowInvalid;
u.$$runValidators(a, u.$$lastCommittedViewValue, function(e) {
d || b === e || (u.$modelValue = e ? a : void 0, u.$modelValue !== c && u.$$writeModelToScope())
})
}
}, this.$$runValidators = function(a, b, c) {
function e() {
var c = !0;
return d(u.$validators, function(d, e) {
var f = d(a, b);
c = c && f, g(e, f)
}), !!c || (d(u.$asyncValidators, function(a, b) {
g(b, null)
}), !1)
}
function f() {
var c = [],
e = !0;
d(u.$asyncValidators, function(d, f) {
var h = d(a, b);
if (!h || !x(h.then)) throw wf("nopromise", h);
g(f, void 0), c.push(h.then(function() {
g(f, !0)
}, function() {
e = !1, g(f, !1)
}))
}), c.length ? j.all(c).then(function() {
h(e)
}, m) : h(!0)
}
function g(a, b) {
i === w && u.$setValidity(a, b)
}
function h(a) {
i === w && c(a)
}
w++;
var i = w;
(function() {
var a = u.$$parserName || "parse";
return q(l) ? (g(a, null), !0) : (l || (d(u.$validators, function(a, b) {
g(b, null)
}), d(u.$asyncValidators, function(a, b) {
g(b, null)
})), g(a, l), l)
})() && e() ? f() : h(!1)
}, this.$commitViewValue = function() {
var a = u.$viewValue;
h.cancel(t), (u.$$lastCommittedViewValue !== a || "" === a && u.$$hasNativeValidators) && (u.$$updateEmptyClasses(a), u.$$lastCommittedViewValue = a, u.$pristine && this.$setDirty(), this.$$parseAndValidate())
}, this.$$parseAndValidate = function() {
var b = u.$$lastCommittedViewValue;
if (l = !q(b) || void 0)
for (var c = 0; c < u.$parsers.length; c++)
if (b = u.$parsers[c](b), q(b)) {
l = !1;
break
}
v(u.$modelValue) && isNaN(u.$modelValue) && (u.$modelValue = p(a));
var d = u.$modelValue,
e = u.$options && u.$options.allowInvalid;
u.$$rawModelValue = b, e && (u.$modelValue = b, u.$modelValue !== d && u.$$writeModelToScope()), u.$$runValidators(b, u.$$lastCommittedViewValue, function(a) {
e || (u.$modelValue = a ? b : void 0, u.$modelValue !== d && u.$$writeModelToScope())
})
}, this.$$writeModelToScope = function() {
s(a, u.$modelValue), d(u.$viewChangeListeners, function(a) {
try {
a()
} catch (a) {
b(a)
}
})
}, this.$setViewValue = function(a, b) {
u.$viewValue = a, u.$options && !u.$options.updateOnDefault || u.$$debounceViewValueCommit(b)
}, this.$$debounceViewValueCommit = function(b) {
var c = 0,
d = u.$options;
d && r(d.debounce) && (d = d.debounce, v(d) ? c = d : v(d[b]) ? c = d[b] : v(d.default) && (c = d.default)), h.cancel(t), c ? t = h(function() {
u.$commitViewValue()
}, c) : i.$$phase ? u.$commitViewValue() : a.$apply(function() {
u.$commitViewValue()
})
}, a.$watch(function() {
var b = p(a);
if (b !== u.$modelValue && (u.$modelValue === u.$modelValue || b === b)) {
u.$modelValue = u.$$rawModelValue = b, l = void 0;
for (var c = u.$formatters, d = c.length, e = b; d--;) e = c[d](e);
u.$viewValue !== e && (u.$$updateEmptyClasses(e), u.$viewValue = u.$$lastCommittedViewValue = e, u.$render(), u.$$runValidators(b, e, m))
}
return b
})
}],
yf = ["$rootScope", function(a) {
return {
restrict: "A",
require: ["ngModel", "^?form", "^?ngModelOptions"],
controller: xf,
priority: 1,
compile: function(b) {
return b.addClass(tf).addClass("ng-untouched").addClass(rf), {
pre: function(a, b, c, d) {
var e = d[0];
b = d[1] || e.$$parentForm, e.$$setOptions(d[2] && d[2].$options), b.$addControl(e), c.$observe("name", function(a) {
e.$name !== a && e.$$parentForm.$$renameControl(e, a)
}), a.$on("$destroy", function() {
e.$$parentForm.$removeControl(e)
})
},
post: function(b, c, d, e) {
var f = e[0];
f.$options && f.$options.updateOn && c.on(f.$options.updateOn, function(a) {
f.$$debounceViewValueCommit(a && a.type)
}), c.on("blur", function() {
f.$touched || (a.$$phase ? b.$evalAsync(f.$setTouched) : b.$apply(f.$setTouched))
})
}
}
}
}
}],
zf = /(\s+|^)default(\s+|$)/,
Af = function() {
return {
restrict: "A",
controller: ["$scope", "$attrs", function(a, b) {
var c = this;
this.$options = H(a.$eval(b.ngModelOptions)), r(this.$options.updateOn) ? (this.$options.updateOnDefault = !1, this.$options.updateOn = hd(this.$options.updateOn.replace(zf, function() {
return c.$options.updateOnDefault = !0, " "
}))) : this.$options.updateOnDefault = !0
}]
}
},
Bf = Gc({
terminal: !0,
priority: 1e3
}),
Cf = b("ngOptions"),
Df = /^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+group\s+by\s+([\s\S]+?))?(?:\s+disable\s+when\s+([\s\S]+?))?\s+for\s+(?:([\$\w][\$\w]*)|(?:\(\s*([\$\w][\$\w]*)\s*,\s*([\$\w][\$\w]*)\s*\)))\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?$/,
Ef = ["$compile", "$document", "$parse", function(b, e, f) {
function g(a, b, d) {
function e(a, b, c, d, e) {
this.selectValue = a, this.viewValue = b, this.label = c, this.group = d, this.disabled = e
}
function g(a) {
var b;
if (!j && c(a)) b = a;
else {
b = [];
for (var d in a) a.hasOwnProperty(d) && "$" !== d.charAt(0) && b.push(d)
}
return b
}
var h = a.match(Df);
if (!h) throw Cf("iexp", a, Q(b));
var i = h[5] || h[7],
j = h[6];
a = / as /.test(h[0]) && h[1];
var k = h[9];
b = f(h[2] ? h[1] : i);
var l = a && f(a) || b,
m = k && f(k),
n = k ? function(a, b) {
return m(d, b)
} : function(a) {
return Ja(a)
},
o = function(a, b) {
return n(a, u(a, b))
},
p = f(h[2] || h[1]),
q = f(h[3] || ""),
r = f(h[4] || ""),
s = f(h[8]),
t = {},
u = j ? function(a, b) {
return t[j] = b, t[i] = a, t
} : function(a) {
return t[i] = a, t
};
return {
trackBy: k,
getTrackByValue: o,
getWatchables: f(s, function(a) {
var b = [];
a = a || [];
for (var c = g(a), e = c.length, f = 0; f < e; f++) {
var i = a === c ? f : c[f],
j = a[i],
i = u(j, i),
j = n(j, i);
b.push(j), (h[2] || h[1]) && (j = p(d, i), b.push(j)), h[4] && (i = r(d, i), b.push(i))
}
return b
}),
getOptions: function() {
for (var a = [], b = {}, c = s(d) || [], f = g(c), h = f.length, i = 0; i < h; i++) {
var j = c === f ? i : f[i],
m = u(c[j], j),
t = l(d, m),
j = n(t, m),
v = p(d, m),
w = q(d, m),
m = r(d, m),
t = new e(j, t, v, w, m);
a.push(t), b[j] = t
}
return {
items: a,
selectValueMap: b,
getOptionFromViewValue: function(a) {
return b[o(a)]
},
getViewValueFromOption: function(a) {
return k ? dd.copy(a.viewValue) : a.viewValue
}
}
}
}
}
var h = a.document.createElement("option"),
i = a.document.createElement("optgroup");
return {
restrict: "A",
terminal: !0,
require: ["select", "ngModel"],
link: {
pre: function(a, b, c, d) {
d[0].registerOption = m
},
post: function(a, c, f, j) {
function k(a, b) {
a.element = b, b.disabled = a.disabled, a.label !== b.label && (b.label = a.label, b.textContent = a.label), a.value !== b.value && (b.value = a.selectValue)
}
function l() {
var a = v && n.readValue();
if (v)
for (var b = v.items.length - 1; 0 <= b; b--) {
var d = v.items[b];
Ca(d.group ? d.element.parentNode : d.element)
}
v = w.getOptions();
var e = {};
t && c.prepend(m), v.items.forEach(function(a) {
var b;
if (r(a.group)) {
b = e[a.group], b || (b = i.cloneNode(!1), x.appendChild(b), b.label = a.group, e[a.group] = b);
var c = h.cloneNode(!1)
} else b = x, c = h.cloneNode(!1);
b.appendChild(c), k(a, c)
}), c[0].appendChild(x), o.$render(), o.$isEmpty(a) || (b = n.readValue(), (w.trackBy || p ? I(a, b) : a === b) || (o.$setViewValue(b), o.$render()))
}
var m, n = j[0],
o = j[1],
p = f.multiple;
j = 0;
for (var q = c.children(), s = q.length; j < s; j++)
if ("" === q[j].value) {
m = q.eq(j);
break
}
var t = !!m,
u = Sc(h.cloneNode(!1));
u.val("?");
var v, w = g(f.ngOptions, c, a),
x = e[0].createDocumentFragment();
p ? (o.$isEmpty = function(a) {
return !a || 0 === a.length
}, n.writeValue = function(a) {
v.items.forEach(function(a) {
a.element.selected = !1
}), a && a.forEach(function(a) {
(a = v.getOptionFromViewValue(a)) && (a.element.selected = !0)
})
}, n.readValue = function() {
var a = c.val() || [],
b = [];
return d(a, function(a) {
(a = v.selectValueMap[a]) && !a.disabled && b.push(v.getViewValueFromOption(a))
}), b
}, w.trackBy && a.$watchCollection(function() {
if (fd(o.$viewValue)) return o.$viewValue.map(function(a) {
return w.getTrackByValue(a)
})
}, function() {
o.$render()
})) : (n.writeValue = function(a) {
var b = v.getOptionFromViewValue(a);
b ? (c[0].value !== b.selectValue && (u.remove(), t || m.remove(), c[0].value = b.selectValue, b.element.selected = !0), b.element.setAttribute("selected", "selected")) : null === a || t ? (u.remove(), t || c.prepend(m), c.val(""), m.prop("selected", !0), m.attr("selected", !0)) : (t || m.remove(), c.prepend(u), c.val("?"), u.prop("selected", !0), u.attr("selected", !0))
}, n.readValue = function() {
var a = v.selectValueMap[c.val()];
return a && !a.disabled ? (t || m.remove(), u.remove(), v.getViewValueFromOption(a)) : null
}, w.trackBy && a.$watch(function() {
return w.getTrackByValue(o.$viewValue)
}, function() {
o.$render()
})), t ? (m.remove(), b(m)(a), m.removeClass("ng-scope")) : m = Sc(h.cloneNode(!1)), c.empty(), l(), a.$watchCollection(w.getWatchables, l)
}
}
}
}],
Ff = ["$locale", "$interpolate", "$log", function(a, b, c) {
var e = /{}/g,
f = /^when(Minus)?(.+)$/;
return {
link: function(g, h, i) {
function j(a) {
h.text(a || "")
}
var k, l = i.count,
n = i.$attr.when && h.attr(i.$attr.when),
o = i.offset || 0,
p = g.$eval(n) || {},
r = {},
s = b.startSymbol(),
t = b.endSymbol(),
u = s + l + "-" + o + t,
w = dd.noop;
d(i, function(a, b) {
var c = f.exec(b);
c && (c = (c[1] ? "-" : "") + Xc(c[2]), p[c] = h.attr(i.$attr[b]))
}), d(p, function(a, c) {
r[c] = b(a.replace(e, u))
}), g.$watch(l, function(b) {
var d = parseFloat(b),
e = isNaN(d);
e || d in p || (d = a.pluralCat(d - o)), d === k || e && v(k) && isNaN(k) || (w(), e = r[d], q(e) ? (null != b && c.debug("ngPluralize: no rule defined for '" + d + "' in " + n), w = m, j()) : w = g.$watch(e, j), k = d)
})
}
}
}],
Gf = ["$parse", "$animate", "$compile", function(a, e, f) {
var g = b("ngRepeat"),
h = function(a, b, c, d, e, f, g) {
a[c] = d, e && (a[e] = f), a.$index = b, a.$first = 0 === b, a.$last = b === g - 1, a.$middle = !(a.$first || a.$last), a.$odd = !(a.$even = 0 === (1 & b))
};
return {
restrict: "A",
multiElement: !0,
transclude: "element",
priority: 1e3,
terminal: !0,
$$tlb: !0,
compile: function(b, i) {
var j = i.ngRepeat,
k = f.$$createComment("end ngRepeat", j),
l = j.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+track\s+by\s+([\s\S]+?))?\s*$/);
if (!l) throw g("iexp", j);
var m = l[1],
n = l[2],
o = l[3],
p = l[4],
l = m.match(/^(?:(\s*[\$\w]+)|\(\s*([\$\w]+)\s*,\s*([\$\w]+)\s*\))$/);
if (!l) throw g("iidexp", m);
var q = l[3] || l[1],
r = l[2];
if (o && (!/^[$a-zA-Z_][$a-zA-Z0-9_]*$/.test(o) || /^(null|undefined|this|\$index|\$first|\$middle|\$last|\$even|\$odd|\$parent|\$root|\$id)$/.test(o))) throw g("badident", o);
var s, t, u, v, w = {
$id: Ja
};
return p ? s = a(p) : (u = function(a, b) {
return Ja(b)
}, v = function(a) {
return a
}),
function(a, b, f, i, l) {
s && (t = function(b, c, d) {
return r && (w[r] = b), w[q] = c, w.$index = d, s(a, w)
});
var m = ga();
a.$watchCollection(n, function(f) {
var i, n, p, s, w, x, y, z, A, B, C = b[0],
D = ga();
if (o && (a[o] = f), c(f)) z = f, n = t || u;
else
for (B in n = t || v, z = [], f) Wc.call(f, B) && "$" !== B.charAt(0) && z.push(B);
for (s = z.length, B = Array(s), i = 0; i < s; i++)
if (w = f === z ? i : z[i], x = f[w], y = n(w, x, i), m[y]) A = m[y], delete m[y], D[y] = A, B[i] = A;
else {
if (D[y]) throw d(B, function(a) {
a && a.scope && (m[a.id] = a)
}), g("dupes", j, y, x);
B[i] = {
id: y,
scope: void 0,
clone: void 0
}, D[y] = !0
}
for (p in m) {
if (A = m[p], y = fa(A.clone), e.leave(y), y[0].parentNode)
for (i = 0, n = y.length; i < n; i++) y[i].$$NG_REMOVED = !0;
A.scope.$destroy()
}
for (i = 0; i < s; i++)
if (w = f === z ? i : z[i], x = f[w], A = B[i], A.scope) {
p = C;
do p = p.nextSibling; while (p && p.$$NG_REMOVED);
A.clone[0] != p && e.move(fa(A.clone), null, C), C = A.clone[A.clone.length - 1], h(A.scope, i, q, x, r, w, s)
} else l(function(a, b) {
A.scope = b;
var c = k.cloneNode(!1);
a[a.length++] = c, e.enter(a, null, C), C = c, A.clone = a, D[A.id] = A, h(A.scope, i, q, x, r, w, s)
});
m = D
})
}
}
}
}],
Hf = ["$animate", function(a) {
return {
restrict: "A",
multiElement: !0,
link: function(b, c, d) {
b.$watch(d.ngShow, function(b) {
a[b ? "removeClass" : "addClass"](c, "ng-hide", {
tempClasses: "ng-hide-animate"
})
})
}
}
}],
If = ["$animate", function(a) {
return {
restrict: "A",
multiElement: !0,
link: function(b, c, d) {
b.$watch(d.ngHide, function(b) {
a[b ? "addClass" : "removeClass"](c, "ng-hide", {
tempClasses: "ng-hide-animate"
})
})
}
}
}],
Jf = Gc(function(a, b, c) {
a.$watch(c.ngStyle, function(a, c) {
c && a !== c && d(c, function(a, c) {
b.css(c, "")
}), a && b.css(a)
}, !0)
}),
Kf = ["$animate", "$compile", function(a, b) {
return {
require: "ngSwitch",
controller: ["$scope", function() {
this.cases = {}
}],
link: function(c, e, f, g) {
var h = [],
i = [],
j = [],
k = [],
l = function(a, b) {
return function() {
a.splice(b, 1)
}
};
c.$watch(f.ngSwitch || f.on, function(c) {
var e, f;
for (e = 0, f = j.length; e < f; ++e) a.cancel(j[e]);
for (e = j.length = 0, f = k.length; e < f; ++e) {
var m = fa(i[e].clone);
k[e].$destroy(), (j[e] = a.leave(m)).then(l(j, e))
}
i.length = 0, k.length = 0, (h = g.cases["!" + c] || g.cases["?"]) && d(h, function(c) {
c.transclude(function(d, e) {
k.push(e);
var f = c.element;
d[d.length++] = b.$$createComment("end ngSwitchWhen"), i.push({
clone: d
}), a.enter(d, f.parent(), f)
})
})
})
}
}
}],
Lf = Gc({
transclude: "element",
priority: 1200,
require: "^ngSwitch",
multiElement: !0,
link: function(a, b, c, d, e) {
d.cases["!" + c.ngSwitchWhen] = d.cases["!" + c.ngSwitchWhen] || [], d.cases["!" + c.ngSwitchWhen].push({
transclude: e,
element: b
})
}
}),
Mf = Gc({
transclude: "element",
priority: 1200,
require: "^ngSwitch",
multiElement: !0,
link: function(a, b, c, d, e) {
d.cases["?"] = d.cases["?"] || [], d.cases["?"].push({
transclude: e,
element: b
})
}
}),
Nf = b("ngTransclude"),
Of = Gc({
restrict: "EAC",
link: function(a, b, c, d, e) {
if (c.ngTransclude === c.$attr.ngTransclude && (c.ngTransclude = ""), !e) throw Nf("orphan", Q(b));
e(function(a) {
a.length && (b.empty(), b.append(a))
}, null, c.ngTransclude || c.ngTranscludeSlot)
}
}),
Pf = ["$templateCache", function(a) {
return {
restrict: "E",
terminal: !0,
compile: function(b, c) {
"text/ng-template" == c.type && a.put(c.id, b[0].text)
}
}
}],
Qf = {
$setViewValue: m,
$render: m
},
Rf = ["$element", "$scope", function(b, c) {
var d = this,
e = new Ka;
d.ngModelCtrl = Qf, d.unknownOption = Sc(a.document.createElement("option")), d.renderUnknownOption = function(a) {
a = "? " + Ja(a) + " ?", d.unknownOption.val(a), b.prepend(d.unknownOption), b.val(a)
}, c.$on("$destroy", function() {
d.renderUnknownOption = m
}), d.removeUnknownOption = function() {
d.unknownOption.parent() && d.unknownOption.remove()
}, d.readValue = function() {
return d.removeUnknownOption(), b.val()
}, d.writeValue = function(a) {
d.hasOption(a) ? (d.removeUnknownOption(), b.val(a), "" === a && d.emptyOption.prop("selected", !0)) : null == a && d.emptyOption ? (d.removeUnknownOption(), b.val("")) : d.renderUnknownOption(a)
}, d.addOption = function(a, b) {
if (8 !== b[0].nodeType) {
da(a, '"option value"'), "" === a && (d.emptyOption = b);
var c = e.get(a) || 0;
e.put(a, c + 1), d.ngModelCtrl.$render(), b[0].hasAttribute("selected") && (b[0].selected = !0)
}
}, d.removeOption = function(a) {
var b = e.get(a);
b && (1 === b ? (e.remove(a), "" === a && (d.emptyOption = void 0)) : e.put(a, b - 1))
}, d.hasOption = function(a) {
return !!e.get(a)
}, d.registerOption = function(a, b, c, e, f) {
if (e) {
var g;
c.$observe("value", function(a) {
r(g) && d.removeOption(g), g = a, d.addOption(a, b)
})
} else f ? a.$watch(f, function(a, e) {
c.$set("value", a), e !== a && d.removeOption(e), d.addOption(a, b)
}) : d.addOption(c.value, b);
b.on("$destroy", function() {
d.removeOption(c.value), d.ngModelCtrl.$render()
})
}
}],
Sf = function() {
return {
restrict: "E",
require: ["select", "?ngModel"],
controller: Rf,
priority: 1,
link: {
pre: function(a, b, c, e) {
var f = e[1];
if (f) {
var g = e[0];
if (g.ngModelCtrl = f, b.on("change", function() {
a.$apply(function() {
f.$setViewValue(g.readValue())
})
}), c.multiple) {
g.readValue = function() {
var a = [];
return d(b.find("option"), function(b) {
b.selected && a.push(b.value)
}), a
}, g.writeValue = function(a) {
var c = new Ka(a);
d(b.find("option"), function(a) {
a.selected = r(c.get(a.value))
})
};
var h, i = NaN;
a.$watch(function() {
i !== f.$viewValue || I(h, f.$viewValue) || (h = ia(f.$viewValue), f.$render()), i = f.$viewValue
}), f.$isEmpty = function(a) {
return !a || 0 === a.length
}
}
}
},
post: function(a, b, c, d) {
var e = d[1];
if (e) {
var f = d[0];
e.$render = function() {
f.writeValue(e.$viewValue)
}
}
}
}
}
},
Tf = ["$interpolate", function(a) {
return {
restrict: "E",
priority: 100,
compile: function(b, c) {
if (r(c.value)) var d = a(c.value, !0);
else {
var e = a(b.text(), !0);
e || c.$set("value", b.text())
}
return function(a, b, c) {
var f = b.parent();
(f = f.data("$selectController") || f.parent().data("$selectController")) && f.registerOption(a, b, c, d, e)
}
}
}
}],
Uf = o({
restrict: "E",
terminal: !1
}),
Vf = function() {
return {
restrict: "A",
require: "?ngModel",
link: function(a, b, c, d) {
d && (c.required = !0, d.$validators.required = function(a, b) {
return !c.required || !d.$isEmpty(b)
}, c.$observe("required", function() {
d.$validate()
}))
}
}
},
Wf = function() {
return {
restrict: "A",
require: "?ngModel",
link: function(a, c, d, e) {
if (e) {
var f, g = d.ngPattern || d.pattern;
d.$observe("pattern", function(a) {
if (u(a) && 0 < a.length && (a = new RegExp("^" + a + "$")), a && !a.test) throw b("ngPattern")("noregexp", g, a, Q(c));
f = a || void 0, e.$validate()
}), e.$validators.pattern = function(a, b) {
return e.$isEmpty(b) || q(f) || f.test(b)
}
}
}
}
},
Xf = function() {
return {
restrict: "A",
require: "?ngModel",
link: function(a, b, c, d) {
if (d) {
var e = -1;
c.$observe("maxlength", function(a) {
a = k(a), e = isNaN(a) ? -1 : a, d.$validate()
}), d.$validators.maxlength = function(a, b) {
return 0 > e || d.$isEmpty(b) || b.length <= e
}
}
}
}
},
Yf = function() {
return {
restrict: "A",
require: "?ngModel",
link: function(a, b, c, d) {
if (d) {
var e = 0;
c.$observe("minlength", function(a) {
e = k(a) || 0, d.$validate()
}), d.$validators.minlength = function(a, b) {
return d.$isEmpty(b) || b.length >= e
}
}
}
}
};
a.angular.bootstrap ? a.console && console.log("WARNING: Tried to load angular more than once.") : (aa(), ja(dd), dd.module("ngLocale", [], ["$provide", function(a) {
function b(a) {
a += "";
var b = a.indexOf(".");
return -1 == b ? 0 : a.length - b - 1
}
a.value("$locale", {
DATETIME_FORMATS: {
AMPMS: ["AM", "PM"],
DAY: "Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),
ERANAMES: ["Before Christ", "Anno Domini"],
ERAS: ["BC", "AD"],
FIRSTDAYOFWEEK: 6,
MONTH: "January February March April May June July August September October November December".split(" "),
SHORTDAY: "Sun Mon Tue Wed Thu Fri Sat".split(" "),
SHORTMONTH: "Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),
STANDALONEMONTH: "January February March April May June July August September October November December".split(" "),
WEEKENDRANGE: [5, 6],
fullDate: "EEEE, MMMM d, y",
longDate: "MMMM d, y",
medium: "MMM d, y h:mm:ss a",
mediumDate: "MMM d, y",
mediumTime: "h:mm:ss a",
short: "M/d/yy h:mm a",
shortDate: "M/d/yy",
shortTime: "h:mm a"
},
NUMBER_FORMATS: {
CURRENCY_SYM: "$",
DECIMAL_SEP: ".",
GROUP_SEP: ",",
PATTERNS: [{
gSize: 3,
lgSize: 3,
maxFrac: 3,
minFrac: 0,
minInt: 1,
negPre: "-",
negSuf: "",
posPre: "",
posSuf: ""
}, {
gSize: 3,
lgSize: 3,
maxFrac: 2,
minFrac: 2,
minInt: 1,
negPre: "-¤",
negSuf: "",
posPre: "¤",
posSuf: ""
}]
},
id: "en-us",
localeID: "en_US",
pluralCat: function(a, c) {
var d = 0 | a,
e = c;
return void 0 === e && (e = Math.min(b(a), 3)),
Math.pow(10, e), 1 == d && 0 == e ? "one" : "other"
}
})
}]), Sc(a.document).ready(function() {
X(a.document, Y)
}))
}(window), !window.angular.$$csp().noInlineStyle && window.angular.element(document.head).prepend('<style type="text/css">@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide:not(.ng-hide-animate){display:none !important;}ng\\:form{display:block;}.ng-animate-shim{visibility:hidden;}.ng-anchor{position:absolute;}</style>'), "undefined" == typeof jQuery) throw new Error("Bootstrap's JavaScript requires jQuery"); + function(a) {
"use strict";
var b = a.fn.jquery.split(" ")[0].split(".");
if (b[0] < 2 && b[1] < 9 || 1 == b[0] && 9 == b[1] && b[2] < 1 || b[0] > 2) throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 3")
}(jQuery), + function(a) {
"use strict";
function b() {
var a = document.createElement("bootstrap"),
b = {
WebkitTransition: "webkitTransitionEnd",
MozTransition: "transitionend",
OTransition: "oTransitionEnd otransitionend",
transition: "transitionend"
};
for (var c in b)
if (void 0 !== a.style[c]) return {
end: b[c]
};
return !1
}
a.fn.emulateTransitionEnd = function(b) {
var c = !1,
d = this;
a(this).one("bsTransitionEnd", function() {
c = !0
});
var e = function() {
c || a(d).trigger(a.support.transition.end)
};
return setTimeout(e, b), this
}, a(function() {
a.support.transition = b(), a.support.transition && (a.event.special.bsTransitionEnd = {
bindType: a.support.transition.end,
delegateType: a.support.transition.end,
handle: function(b) {
return a(b.target).is(this) ? b.handleObj.handler.apply(this, arguments) : void 0
}
})
})
}(jQuery), + function(a) {
"use strict";
function b(b) {
return this.each(function() {
var c = a(this),
e = c.data("bs.alert");
e || c.data("bs.alert", e = new d(this)), "string" == typeof b && e[b].call(c)
})
}
var c = '[data-dismiss="alert"]',
d = function(b) {
a(b).on("click", c, this.close)
};
d.VERSION = "3.3.6", d.TRANSITION_DURATION = 150, d.prototype.close = function(b) {
function c() {
g.detach().trigger("closed.bs.alert").remove()
}
var e = a(this),
f = e.attr("data-target");
f || (f = e.attr("href"), f = f && f.replace(/.*(?=#[^\s]*$)/, ""));
var g = a(f);
b && b.preventDefault(), g.length || (g = e.closest(".alert")), g.trigger(b = a.Event("close.bs.alert")), b.isDefaultPrevented() || (g.removeClass("in"), a.support.transition && g.hasClass("fade") ? g.one("bsTransitionEnd", c).emulateTransitionEnd(d.TRANSITION_DURATION) : c())
};
var e = a.fn.alert;
a.fn.alert = b, a.fn.alert.Constructor = d, a.fn.alert.noConflict = function() {
return a.fn.alert = e, this
}, a(document).on("click.bs.alert.data-api", c, d.prototype.close)
}(jQuery), + function(a) {
"use strict";
function b(b) {
return this.each(function() {
var d = a(this),
e = d.data("bs.button"),
f = "object" == typeof b && b;
e || d.data("bs.button", e = new c(this, f)), "toggle" == b ? e.toggle() : b && e.setState(b)
})
}
var c = function(b, d) {
this.$element = a(b), this.options = a.extend({}, c.DEFAULTS, d), this.isLoading = !1
};
c.VERSION = "3.3.6", c.DEFAULTS = {
loadingText: "loading..."
}, c.prototype.setState = function(b) {
var c = "disabled",
d = this.$element,
e = d.is("input") ? "val" : "html",
f = d.data();
b += "Text", null == f.resetText && d.data("resetText", d[e]()), setTimeout(a.proxy(function() {
d[e](null == f[b] ? this.options[b] : f[b]), "loadingText" == b ? (this.isLoading = !0, d.addClass(c).attr(c, c)) : this.isLoading && (this.isLoading = !1, d.removeClass(c).removeAttr(c))
}, this), 0)
}, c.prototype.toggle = function() {
var a = !0,
b = this.$element.closest('[data-toggle="buttons"]');
if (b.length) {
var c = this.$element.find("input");
"radio" == c.prop("type") ? (c.prop("checked") && (a = !1), b.find(".active").removeClass("active"), this.$element.addClass("active")) : "checkbox" == c.prop("type") && (c.prop("checked") !== this.$element.hasClass("active") && (a = !1), this.$element.toggleClass("active")), c.prop("checked", this.$element.hasClass("active")), a && c.trigger("change")
} else this.$element.attr("aria-pressed", !this.$element.hasClass("active")), this.$element.toggleClass("active")
};
var d = a.fn.button;
a.fn.button = b, a.fn.button.Constructor = c, a.fn.button.noConflict = function() {
return a.fn.button = d, this
}, a(document).on("click.bs.button.data-api", '[data-toggle^="button"]', function(c) {
var d = a(c.target);
d.hasClass("btn") || (d = d.closest(".btn")), b.call(d, "toggle"), a(c.target).is('input[type="radio"]') || a(c.target).is('input[type="checkbox"]') || c.preventDefault()
}).on("focus.bs.button.data-api blur.bs.button.data-api", '[data-toggle^="button"]', function(b) {
a(b.target).closest(".btn").toggleClass("focus", /^focus(in)?$/.test(b.type))
})
}(jQuery), + function(a) {
"use strict";
function b(b) {
return this.each(function() {
var d = a(this),
e = d.data("bs.carousel"),
f = a.extend({}, c.DEFAULTS, d.data(), "object" == typeof b && b),
g = "string" == typeof b ? b : f.slide;
e || d.data("bs.carousel", e = new c(this, f)), "number" == typeof b ? e.to(b) : g ? e[g]() : f.interval && e.pause().cycle()
})
}
var c = function(b, c) {
this.$element = a(b), this.$indicators = this.$element.find(".carousel-indicators"), this.options = c, this.paused = null, this.sliding = null, this.interval = null, this.$active = null, this.$items = null, this.options.keyboard && this.$element.on("keydown.bs.carousel", a.proxy(this.keydown, this)), "hover" == this.options.pause && !("ontouchstart" in document.documentElement) && this.$element.on("mouseenter.bs.carousel", a.proxy(this.pause, this)).on("mouseleave.bs.carousel", a.proxy(this.cycle, this))
};
c.VERSION = "3.3.6", c.TRANSITION_DURATION = 600, c.DEFAULTS = {
interval: 5e3,
pause: "hover",
wrap: !0,
keyboard: !0
}, c.prototype.keydown = function(a) {
if (!/input|textarea/i.test(a.target.tagName)) {
switch (a.which) {
case 37:
this.prev();
break;
case 39:
this.next();
break;
default:
return
}
a.preventDefault()
}
}, c.prototype.cycle = function(b) {
return b || (this.paused = !1), this.interval && clearInterval(this.interval), this.options.interval && !this.paused && (this.interval = setInterval(a.proxy(this.next, this), this.options.interval)), this
}, c.prototype.getItemIndex = function(a) {
return this.$items = a.parent().children(".item"), this.$items.index(a || this.$active)
}, c.prototype.getItemForDirection = function(a, b) {
var c = this.getItemIndex(b),
d = "prev" == a && 0 === c || "next" == a && c == this.$items.length - 1;
if (d && !this.options.wrap) return b;
var e = "prev" == a ? -1 : 1,
f = (c + e) % this.$items.length;
return this.$items.eq(f)
}, c.prototype.to = function(a) {
var b = this,
c = this.getItemIndex(this.$active = this.$element.find(".item.active"));
return a > this.$items.length - 1 || 0 > a ? void 0 : this.sliding ? this.$element.one("slid.bs.carousel", function() {
b.to(a)
}) : c == a ? this.pause().cycle() : this.slide(a > c ? "next" : "prev", this.$items.eq(a))
}, c.prototype.pause = function(b) {
return b || (this.paused = !0), this.$element.find(".next, .prev").length && a.support.transition && (this.$element.trigger(a.support.transition.end), this.cycle(!0)), this.interval = clearInterval(this.interval), this
}, c.prototype.next = function() {
return this.sliding ? void 0 : this.slide("next")
}, c.prototype.prev = function() {
return this.sliding ? void 0 : this.slide("prev")
}, c.prototype.slide = function(b, d) {
var e = this.$element.find(".item.active"),
f = d || this.getItemForDirection(b, e),
g = this.interval,
h = "next" == b ? "left" : "right",
i = this;
if (f.hasClass("active")) return this.sliding = !1;
var j = f[0],
k = a.Event("slide.bs.carousel", {
relatedTarget: j,
direction: h
});
if (this.$element.trigger(k), !k.isDefaultPrevented()) {
if (this.sliding = !0, g && this.pause(), this.$indicators.length) {
this.$indicators.find(".active").removeClass("active");
var l = a(this.$indicators.children()[this.getItemIndex(f)]);
l && l.addClass("active")
}
var m = a.Event("slid.bs.carousel", {
relatedTarget: j,
direction: h
});
return a.support.transition && this.$element.hasClass("slide") ? (f.addClass(b), f[0].offsetWidth, e.addClass(h), f.addClass(h), e.one("bsTransitionEnd", function() {
f.removeClass([b, h].join(" ")).addClass("active"), e.removeClass(["active", h].join(" ")), i.sliding = !1, setTimeout(function() {
i.$element.trigger(m)
}, 0)
}).emulateTransitionEnd(c.TRANSITION_DURATION)) : (e.removeClass("active"), f.addClass("active"), this.sliding = !1, this.$element.trigger(m)), g && this.cycle(), this
}
};
var d = a.fn.carousel;
a.fn.carousel = b, a.fn.carousel.Constructor = c, a.fn.carousel.noConflict = function() {
return a.fn.carousel = d, this
};
var e = function(c) {
var d, e = a(this),
f = a(e.attr("data-target") || (d = e.attr("href")) && d.replace(/.*(?=#[^\s]+$)/, ""));
if (f.hasClass("carousel")) {
var g = a.extend({}, f.data(), e.data()),
h = e.attr("data-slide-to");
h && (g.interval = !1), b.call(f, g), h && f.data("bs.carousel").to(h), c.preventDefault()
}
};
a(document).on("click.bs.carousel.data-api", "[data-slide]", e).on("click.bs.carousel.data-api", "[data-slide-to]", e), a(window).on("load", function() {
a('[data-ride="carousel"]').each(function() {
var c = a(this);
b.call(c, c.data())
})
})
}(jQuery), + function(a) {
"use strict";
function b(b) {
var c, d = b.attr("data-target") || (c = b.attr("href")) && c.replace(/.*(?=#[^\s]+$)/, "");
return a(d)
}
function c(b) {
return this.each(function() {
var c = a(this),
e = c.data("bs.collapse"),
f = a.extend({}, d.DEFAULTS, c.data(), "object" == typeof b && b);
!e && f.toggle && /show|hide/.test(b) && (f.toggle = !1), e || c.data("bs.collapse", e = new d(this, f)), "string" == typeof b && e[b]()
})
}
var d = function(b, c) {
this.$element = a(b), this.options = a.extend({}, d.DEFAULTS, c), this.$trigger = a('[data-toggle="collapse"][href="#' + b.id + '"],[data-toggle="collapse"][data-target="#' + b.id + '"]'), this.transitioning = null, this.options.parent ? this.$parent = this.getParent() : this.addAriaAndCollapsedClass(this.$element, this.$trigger), this.options.toggle && this.toggle()
};
d.VERSION = "3.3.6", d.TRANSITION_DURATION = 350, d.DEFAULTS = {
toggle: !0
}, d.prototype.dimension = function() {
var a = this.$element.hasClass("width");
return a ? "width" : "height"
}, d.prototype.show = function() {
if (!this.transitioning && !this.$element.hasClass("in")) {
var b, e = this.$parent && this.$parent.children(".panel").children(".in, .collapsing");
if (!(e && e.length && (b = e.data("bs.collapse"), b && b.transitioning))) {
var f = a.Event("show.bs.collapse");
if (this.$element.trigger(f), !f.isDefaultPrevented()) {
e && e.length && (c.call(e, "hide"), b || e.data("bs.collapse", null));
var g = this.dimension();
this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded", !0), this.$trigger.removeClass("collapsed").attr("aria-expanded", !0), this.transitioning = 1;
var h = function() {
this.$element.removeClass("collapsing").addClass("collapse in")[g](""), this.transitioning = 0, this.$element.trigger("shown.bs.collapse")
};
if (!a.support.transition) return h.call(this);
var i = a.camelCase(["scroll", g].join("-"));
this.$element.one("bsTransitionEnd", a.proxy(h, this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])
}
}
}
}, d.prototype.hide = function() {
if (!this.transitioning && this.$element.hasClass("in")) {
var b = a.Event("hide.bs.collapse");
if (this.$element.trigger(b), !b.isDefaultPrevented()) {
var c = this.dimension();
this.$element[c](this.$element[c]())[0].offsetHeight, this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded", !1), this.$trigger.addClass("collapsed").attr("aria-expanded", !1), this.transitioning = 1;
var e = function() {
this.transitioning = 0, this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")
};
return a.support.transition ? void this.$element[c](0).one("bsTransitionEnd", a.proxy(e, this)).emulateTransitionEnd(d.TRANSITION_DURATION) : e.call(this)
}
}
}, d.prototype.toggle = function() {
this[this.$element.hasClass("in") ? "hide" : "show"]()
}, d.prototype.getParent = function() {
return a(this.options.parent).find('[data-toggle="collapse"][data-parent="' + this.options.parent + '"]').each(a.proxy(function(c, d) {
var e = a(d);
this.addAriaAndCollapsedClass(b(e), e)
}, this)).end()
}, d.prototype.addAriaAndCollapsedClass = function(a, b) {
var c = a.hasClass("in");
a.attr("aria-expanded", c), b.toggleClass("collapsed", !c).attr("aria-expanded", c)
};
var e = a.fn.collapse;
a.fn.collapse = c, a.fn.collapse.Constructor = d, a.fn.collapse.noConflict = function() {
return a.fn.collapse = e, this
}, a(document).on("click.bs.collapse.data-api", '[data-toggle="collapse"]', function(d) {
var e = a(this);
e.attr("data-target") || d.preventDefault();
var f = b(e),
g = f.data("bs.collapse"),
h = g ? "toggle" : e.data();
c.call(f, h)
})
}(jQuery), + function(a) {
"use strict";
function b(b) {
var c = b.attr("data-target");
c || (c = b.attr("href"), c = c && /#[A-Za-z]/.test(c) && c.replace(/.*(?=#[^\s]*$)/, ""));
var d = c && a(c);
return d && d.length ? d : b.parent()
}
function c(c) {
c && 3 === c.which || (a(e).remove(), a(f).each(function() {
var d = a(this),
e = b(d),
f = {
relatedTarget: this
};
e.hasClass("open") && (c && "click" == c.type && /input|textarea/i.test(c.target.tagName) && a.contains(e[0], c.target) || (e.trigger(c = a.Event("hide.bs.dropdown", f)), c.isDefaultPrevented() || (d.attr("aria-expanded", "false"), e.removeClass("open").trigger(a.Event("hidden.bs.dropdown", f)))))
}))
}
function d(b) {
return this.each(function() {
var c = a(this),
d = c.data("bs.dropdown");
d || c.data("bs.dropdown", d = new g(this)), "string" == typeof b && d[b].call(c)
})
}
var e = ".dropdown-backdrop",
f = '[data-toggle="dropdown"]',
g = function(b) {
a(b).on("click.bs.dropdown", this.toggle)
};
g.VERSION = "3.3.6", g.prototype.toggle = function(d) {
var e = a(this);
if (!e.is(".disabled, :disabled")) {
var f = b(e),
g = f.hasClass("open");
if (c(), !g) {
"ontouchstart" in document.documentElement && !f.closest(".navbar-nav").length && a(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(a(this)).on("click", c);
var h = {
relatedTarget: this
};
if (f.trigger(d = a.Event("show.bs.dropdown", h)), d.isDefaultPrevented()) return;
e.trigger("focus").attr("aria-expanded", "true"), f.toggleClass("open").trigger(a.Event("shown.bs.dropdown", h))
}
return !1
}
}, g.prototype.keydown = function(c) {
if (/(38|40|27|32)/.test(c.which) && !/input|textarea/i.test(c.target.tagName)) {
var d = a(this);
if (c.preventDefault(), c.stopPropagation(), !d.is(".disabled, :disabled")) {
var e = b(d),
g = e.hasClass("open");
if (!g && 27 != c.which || g && 27 == c.which) return 27 == c.which && e.find(f).trigger("focus"), d.trigger("click");
var h = " li:not(.disabled):visible a",
i = e.find(".dropdown-menu" + h);
if (i.length) {
var j = i.index(c.target);
38 == c.which && j > 0 && j--, 40 == c.which && j < i.length - 1 && j++, ~j || (j = 0), i.eq(j).trigger("focus")
}
}
}
};
var h = a.fn.dropdown;
a.fn.dropdown = d, a.fn.dropdown.Constructor = g, a.fn.dropdown.noConflict = function() {
return a.fn.dropdown = h, this
}, a(document).on("click.bs.dropdown.data-api", c).on("click.bs.dropdown.data-api", ".dropdown form", function(a) {
a.stopPropagation()
}).on("click.bs.dropdown.data-api", f, g.prototype.toggle).on("keydown.bs.dropdown.data-api", f, g.prototype.keydown).on("keydown.bs.dropdown.data-api", ".dropdown-menu", g.prototype.keydown)
}(jQuery), + function(a) {
"use strict";
function b(b, d) {
return this.each(function() {
var e = a(this),
f = e.data("bs.modal"),
g = a.extend({}, c.DEFAULTS, e.data(), "object" == typeof b && b);
f || e.data("bs.modal", f = new c(this, g)), "string" == typeof b ? f[b](d) : g.show && f.show(d)
})
}
var c = function(b, c) {
this.options = c, this.$body = a(document.body), this.$element = a(b), this.$dialog = this.$element.find(".modal-dialog"), this.$backdrop = null, this.isShown = null, this.originalBodyPad = null, this.scrollbarWidth = 0, this.ignoreBackdropClick = !1, this.options.remote && this.$element.find(".modal-content").load(this.options.remote, a.proxy(function() {
this.$element.trigger("loaded.bs.modal")
}, this))
};
c.VERSION = "3.3.6", c.TRANSITION_DURATION = 300, c.BACKDROP_TRANSITION_DURATION = 150, c.DEFAULTS = {
backdrop: !0,
keyboard: !0,
show: !0
}, c.prototype.toggle = function(a) {
return this.isShown ? this.hide() : this.show(a)
}, c.prototype.show = function(b) {
var d = this,
e = a.Event("show.bs.modal", {
relatedTarget: b
});
this.$element.trigger(e), this.isShown || e.isDefaultPrevented() || (this.isShown = !0, this.checkScrollbar(), this.setScrollbar(), this.$body.addClass("modal-open"), this.escape(), this.resize(), this.$element.on("click.dismiss.bs.modal", '[data-dismiss="modal"]', a.proxy(this.hide, this)), this.$dialog.on("mousedown.dismiss.bs.modal", function() {
d.$element.one("mouseup.dismiss.bs.modal", function(b) {
a(b.target).is(d.$element) && (d.ignoreBackdropClick = !0)
})
}), this.backdrop(function() {
var e = a.support.transition && d.$element.hasClass("fade");
d.$element.parent().length || d.$element.appendTo(d.$body), d.$element.show().scrollTop(0), d.adjustDialog(), e && d.$element[0].offsetWidth, d.$element.addClass("in"), d.enforceFocus();
var f = a.Event("shown.bs.modal", {
relatedTarget: b
});
e ? d.$dialog.one("bsTransitionEnd", function() {
d.$element.trigger("focus").trigger(f)
}).emulateTransitionEnd(c.TRANSITION_DURATION) : d.$element.trigger("focus").trigger(f)
}))
}, c.prototype.hide = function(b) {
b && b.preventDefault(), b = a.Event("hide.bs.modal"), this.$element.trigger(b), this.isShown && !b.isDefaultPrevented() && (this.isShown = !1, this.escape(), this.resize(), a(document).off("focusin.bs.modal"), this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"), this.$dialog.off("mousedown.dismiss.bs.modal"), a.support.transition && this.$element.hasClass("fade") ? this.$element.one("bsTransitionEnd", a.proxy(this.hideModal, this)).emulateTransitionEnd(c.TRANSITION_DURATION) : this.hideModal())
}, c.prototype.enforceFocus = function() {
a(document).off("focusin.bs.modal").on("focusin.bs.modal", a.proxy(function(a) {
this.$element[0] === a.target || this.$element.has(a.target).length || this.$element.trigger("focus")
}, this))
}, c.prototype.escape = function() {
this.isShown && this.options.keyboard ? this.$element.on("keydown.dismiss.bs.modal", a.proxy(function(a) {
27 == a.which && this.hide()
}, this)) : this.isShown || this.$element.off("keydown.dismiss.bs.modal")
}, c.prototype.resize = function() {
this.isShown ? a(window).on("resize.bs.modal", a.proxy(this.handleUpdate, this)) : a(window).off("resize.bs.modal")
}, c.prototype.hideModal = function() {
var a = this;
this.$element.hide(), this.backdrop(function() {
a.$body.removeClass("modal-open"), a.resetAdjustments(), a.resetScrollbar(), a.$element.trigger("hidden.bs.modal")
})
}, c.prototype.removeBackdrop = function() {
this.$backdrop && this.$backdrop.remove(), this.$backdrop = null
}, c.prototype.backdrop = function(b) {
var d = this,
e = this.$element.hasClass("fade") ? "fade" : "";
if (this.isShown && this.options.backdrop) {
var f = a.support.transition && e;
if (this.$backdrop = a(document.createElement("div")).addClass("modal-backdrop " + e).appendTo(this.$body), this.$element.on("click.dismiss.bs.modal", a.proxy(function(a) {
return this.ignoreBackdropClick ? void(this.ignoreBackdropClick = !1) : void(a.target === a.currentTarget && ("static" == this.options.backdrop ? this.$element[0].focus() : this.hide()))
}, this)), f && this.$backdrop[0].offsetWidth, this.$backdrop.addClass("in"), !b) return;
f ? this.$backdrop.one("bsTransitionEnd", b).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION) : b()
} else if (!this.isShown && this.$backdrop) {
this.$backdrop.removeClass("in");
var g = function() {
d.removeBackdrop(), b && b()
};
a.support.transition && this.$element.hasClass("fade") ? this.$backdrop.one("bsTransitionEnd", g).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION) : g()
} else b && b()
}, c.prototype.handleUpdate = function() {
this.adjustDialog()
}, c.prototype.adjustDialog = function() {
var a = this.$element[0].scrollHeight > document.documentElement.clientHeight;
this.$element.css({
paddingLeft: !this.bodyIsOverflowing && a ? this.scrollbarWidth : "",
paddingRight: this.bodyIsOverflowing && !a ? this.scrollbarWidth : ""
})
}, c.prototype.resetAdjustments = function() {
this.$element.css({
paddingLeft: "",
paddingRight: ""
})
}, c.prototype.checkScrollbar = function() {
var a = window.innerWidth;
if (!a) {
var b = document.documentElement.getBoundingClientRect();
a = b.right - Math.abs(b.left)
}
this.bodyIsOverflowing = document.body.clientWidth < a, this.scrollbarWidth = this.measureScrollbar()
}, c.prototype.setScrollbar = function() {
var a = parseInt(this.$body.css("padding-right") || 0, 10);
this.originalBodyPad = document.body.style.paddingRight || "", this.bodyIsOverflowing && this.$body.css("padding-right", a + this.scrollbarWidth)
}, c.prototype.resetScrollbar = function() {
this.$body.css("padding-right", this.originalBodyPad)
}, c.prototype.measureScrollbar = function() {
var a = document.createElement("div");
a.className = "modal-scrollbar-measure", this.$body.append(a);
var b = a.offsetWidth - a.clientWidth;
return this.$body[0].removeChild(a), b
};
var d = a.fn.modal;
a.fn.modal = b, a.fn.modal.Constructor = c, a.fn.modal.noConflict = function() {
return a.fn.modal = d, this
}, a(document).on("click.bs.modal.data-api", '[data-toggle="modal"]', function(c) {
var d = a(this),
e = d.attr("href"),
f = a(d.attr("data-target") || e && e.replace(/.*(?=#[^\s]+$)/, "")),
g = f.data("bs.modal") ? "toggle" : a.extend({
remote: !/#/.test(e) && e
}, f.data(), d.data());
d.is("a") && c.preventDefault(), f.one("show.bs.modal", function(a) {
a.isDefaultPrevented() || f.one("hidden.bs.modal", function() {
d.is(":visible") && d.trigger("focus")
})
}), b.call(f, g, this)
})
}(jQuery), + function(a) {
"use strict";
function b(b) {
return this.each(function() {
var d = a(this),
e = d.data("bs.tooltip"),
f = "object" == typeof b && b;
(e || !/destroy|hide/.test(b)) && (e || d.data("bs.tooltip", e = new c(this, f)), "string" == typeof b && e[b]())
})
}
var c = function(a, b) {
this.type = null, this.options = null, this.enabled = null, this.timeout = null, this.hoverState = null, this.$element = null, this.inState = null, this.init("tooltip", a, b)
};
c.VERSION = "3.3.6", c.TRANSITION_DURATION = 150, c.DEFAULTS = {
animation: !0,
placement: "top",
selector: !1,
template: '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',
trigger: "hover focus",
title: "",
delay: 0,
html: !1,
container: !1,
viewport: {
selector: "body",
padding: 0
}
}, c.prototype.init = function(b, c, d) {
if (this.enabled = !0, this.type = b, this.$element = a(c), this.options = this.getOptions(d), this.$viewport = this.options.viewport && a(a.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : this.options.viewport.selector || this.options.viewport), this.inState = {
click: !1,
hover: !1,
focus: !1
}, this.$element[0] instanceof document.constructor && !this.options.selector) throw new Error("`selector` option must be specified when initializing " + this.type + " on the window.document object!");
for (var e = this.options.trigger.split(" "), f = e.length; f--;) {
var g = e[f];
if ("click" == g) this.$element.on("click." + this.type, this.options.selector, a.proxy(this.toggle, this));
else if ("manual" != g) {
var h = "hover" == g ? "mouseenter" : "focusin",
i = "hover" == g ? "mouseleave" : "focusout";
this.$element.on(h + "." + this.type, this.options.selector, a.proxy(this.enter, this)), this.$element.on(i + "." + this.type, this.options.selector, a.proxy(this.leave, this))
}
}
this.options.selector ? this._options = a.extend({}, this.options, {
trigger: "manual",
selector: ""
}) : this.fixTitle()
}, c.prototype.getDefaults = function() {
return c.DEFAULTS
}, c.prototype.getOptions = function(b) {
return b = a.extend({}, this.getDefaults(), this.$element.data(), b), b.delay && "number" == typeof b.delay && (b.delay = {
show: b.delay,
hide: b.delay
}), b
}, c.prototype.getDelegateOptions = function() {
var b = {},
c = this.getDefaults();
return this._options && a.each(this._options, function(a, d) {
c[a] != d && (b[a] = d)
}), b
}, c.prototype.enter = function(b) {
var c = b instanceof this.constructor ? b : a(b.currentTarget).data("bs." + this.type);
return c || (c = new this.constructor(b.currentTarget, this.getDelegateOptions()), a(b.currentTarget).data("bs." + this.type, c)), b instanceof a.Event && (c.inState["focusin" == b.type ? "focus" : "hover"] = !0), c.tip().hasClass("in") || "in" == c.hoverState ? void(c.hoverState = "in") : (clearTimeout(c.timeout), c.hoverState = "in", c.options.delay && c.options.delay.show ? void(c.timeout = setTimeout(function() {
"in" == c.hoverState && c.show()
}, c.options.delay.show)) : c.show())
}, c.prototype.isInStateTrue = function() {
for (var a in this.inState)
if (this.inState[a]) return !0;
return !1
}, c.prototype.leave = function(b) {
var c = b instanceof this.constructor ? b : a(b.currentTarget).data("bs." + this.type);
return c || (c = new this.constructor(b.currentTarget, this.getDelegateOptions()), a(b.currentTarget).data("bs." + this.type, c)), b instanceof a.Event && (c.inState["focusout" == b.type ? "focus" : "hover"] = !1), c.isInStateTrue() ? void 0 : (clearTimeout(c.timeout), c.hoverState = "out", c.options.delay && c.options.delay.hide ? void(c.timeout = setTimeout(function() {
"out" == c.hoverState && c.hide()
}, c.options.delay.hide)) : c.hide())
}, c.prototype.show = function() {
var b = a.Event("show.bs." + this.type);
if (this.hasContent() && this.enabled) {
this.$element.trigger(b);
var d = a.contains(this.$element[0].ownerDocument.documentElement, this.$element[0]);
if (b.isDefaultPrevented() || !d) return;
var e = this,
f = this.tip(),
g = this.getUID(this.type);
this.setContent(), f.attr("id", g), this.$element.attr("aria-describedby", g), this.options.animation && f.addClass("fade");
var h = "function" == typeof this.options.placement ? this.options.placement.call(this, f[0], this.$element[0]) : this.options.placement,
i = /\s?auto?\s?/i,
j = i.test(h);
j && (h = h.replace(i, "") || "top"), f.detach().css({
top: 0,
left: 0,
display: "block"
}).addClass(h).data("bs." + this.type, this), this.options.container ? f.appendTo(this.options.container) : f.insertAfter(this.$element), this.$element.trigger("inserted.bs." + this.type);
var k = this.getPosition(),
l = f[0].offsetWidth,
m = f[0].offsetHeight;
if (j) {
var n = h,
o = this.getPosition(this.$viewport);
h = "bottom" == h && k.bottom + m > o.bottom ? "top" : "top" == h && k.top - m < o.top ? "bottom" : "right" == h && k.right + l > o.width ? "left" : "left" == h && k.left - l < o.left ? "right" : h, f.removeClass(n).addClass(h)
}
var p = this.getCalculatedOffset(h, k, l, m);
this.applyPlacement(p, h);
var q = function() {
var a = e.hoverState;
e.$element.trigger("shown.bs." + e.type), e.hoverState = null, "out" == a && e.leave(e)
};
a.support.transition && this.$tip.hasClass("fade") ? f.one("bsTransitionEnd", q).emulateTransitionEnd(c.TRANSITION_DURATION) : q()
}
}, c.prototype.applyPlacement = function(b, c) {
var d = this.tip(),
e = d[0].offsetWidth,
f = d[0].offsetHeight,
g = parseInt(d.css("margin-top"), 10),
h = parseInt(d.css("margin-left"), 10);
isNaN(g) && (g = 0), isNaN(h) && (h = 0), b.top += g, b.left += h, a.offset.setOffset(d[0], a.extend({
using: function(a) {
d.css({
top: Math.round(a.top),
left: Math.round(a.left)
})
}
}, b), 0), d.addClass("in");
var i = d[0].offsetWidth,
j = d[0].offsetHeight;
"top" == c && j != f && (b.top = b.top + f - j);
var k = this.getViewportAdjustedDelta(c, b, i, j);
k.left ? b.left += k.left : b.top += k.top;
var l = /top|bottom/.test(c),
m = l ? 2 * k.left - e + i : 2 * k.top - f + j,
n = l ? "offsetWidth" : "offsetHeight";
d.offset(b), this.replaceArrow(m, d[0][n], l)
}, c.prototype.replaceArrow = function(a, b, c) {
this.arrow().css(c ? "left" : "top", 50 * (1 - a / b) + "%").css(c ? "top" : "left", "")
}, c.prototype.setContent = function() {
var a = this.tip(),
b = this.getTitle();
a.find(".tooltip-inner")[this.options.html ? "html" : "text"](b), a.removeClass("fade in top bottom left right")
}, c.prototype.hide = function(b) {
function d() {
"in" != e.hoverState && f.detach(), e.$element.removeAttr("aria-describedby").trigger("hidden.bs." + e.type), b && b()
}
var e = this,
f = a(this.$tip),
g = a.Event("hide.bs." + this.type);
return this.$element.trigger(g), g.isDefaultPrevented() ? void 0 : (f.removeClass("in"), a.support.transition && f.hasClass("fade") ? f.one("bsTransitionEnd", d).emulateTransitionEnd(c.TRANSITION_DURATION) : d(), this.hoverState = null, this)
}, c.prototype.fixTitle = function() {
var a = this.$element;
(a.attr("title") || "string" != typeof a.attr("data-original-title")) && a.attr("data-original-title", a.attr("title") || "").attr("title", "")
}, c.prototype.hasContent = function() {
return this.getTitle()
}, c.prototype.getPosition = function(b) {
b = b || this.$element;
var c = b[0],
d = "BODY" == c.tagName,
e = c.getBoundingClientRect();
null == e.width && (e = a.extend({}, e, {
width: e.right - e.left,
height: e.bottom - e.top
}));
var f = d ? {
top: 0,
left: 0
} : b.offset(),
g = {
scroll: d ? document.documentElement.scrollTop || document.body.scrollTop : b.scrollTop()
},
h = d ? {
width: a(window).width(),
height: a(window).height()
} : null;
return a.extend({}, e, g, h, f)
}, c.prototype.getCalculatedOffset = function(a, b, c, d) {
return "bottom" == a ? {
top: b.top + b.height,
left: b.left + b.width / 2 - c / 2
} : "top" == a ? {
top: b.top - d,
left: b.left + b.width / 2 - c / 2
} : "left" == a ? {
top: b.top + b.height / 2 - d / 2,
left: b.left - c
} : {
top: b.top + b.height / 2 - d / 2,
left: b.left + b.width
}
}, c.prototype.getViewportAdjustedDelta = function(a, b, c, d) {
var e = {
top: 0,
left: 0
};
if (!this.$viewport) return e;
var f = this.options.viewport && this.options.viewport.padding || 0,
g = this.getPosition(this.$viewport);
if (/right|left/.test(a)) {
var h = b.top - f - g.scroll,
i = b.top + f - g.scroll + d;
h < g.top ? e.top = g.top - h : i > g.top + g.height && (e.top = g.top + g.height - i)
} else {
var j = b.left - f,
k = b.left + f + c;
j < g.left ? e.left = g.left - j : k > g.right && (e.left = g.left + g.width - k)
}
return e
}, c.prototype.getTitle = function() {
var a, b = this.$element,
c = this.options;
return a = b.attr("data-original-title") || ("function" == typeof c.title ? c.title.call(b[0]) : c.title)
}, c.prototype.getUID = function(a) {
do a += ~~(1e6 * Math.random()); while (document.getElementById(a));
return a
}, c.prototype.tip = function() {
if (!this.$tip && (this.$tip = a(this.options.template), 1 != this.$tip.length)) throw new Error(this.type + " `template` option must consist of exactly 1 top-level element!");
return this.$tip
}, c.prototype.arrow = function() {
return this.$arrow = this.$arrow || this.tip().find(".tooltip-arrow")
}, c.prototype.enable = function() {
this.enabled = !0
}, c.prototype.disable = function() {
this.enabled = !1
}, c.prototype.toggleEnabled = function() {
this.enabled = !this.enabled
}, c.prototype.toggle = function(b) {
var c = this;
b && (c = a(b.currentTarget).data("bs." + this.type), c || (c = new this.constructor(b.currentTarget, this.getDelegateOptions()), a(b.currentTarget).data("bs." + this.type, c))), b ? (c.inState.click = !c.inState.click, c.isInStateTrue() ? c.enter(c) : c.leave(c)) : c.tip().hasClass("in") ? c.leave(c) : c.enter(c)
}, c.prototype.destroy = function() {
var a = this;
clearTimeout(this.timeout), this.hide(function() {
a.$element.off("." + a.type).removeData("bs." + a.type), a.$tip && a.$tip.detach(), a.$tip = null, a.$arrow = null, a.$viewport = null
})
};
var d = a.fn.tooltip;
a.fn.tooltip = b, a.fn.tooltip.Constructor = c, a.fn.tooltip.noConflict = function() {
return a.fn.tooltip = d, this
}
}(jQuery), + function(a) {
"use strict";
function b(b) {
return this.each(function() {
var d = a(this),
e = d.data("bs.popover"),
f = "object" == typeof b && b;
(e || !/destroy|hide/.test(b)) && (e || d.data("bs.popover", e = new c(this, f)), "string" == typeof b && e[b]())
})
}
var c = function(a, b) {
this.init("popover", a, b)
};
if (!a.fn.tooltip) throw new Error("Popover requires tooltip.js");
c.VERSION = "3.3.6", c.DEFAULTS = a.extend({}, a.fn.tooltip.Constructor.DEFAULTS, {
placement: "right",
trigger: "click",
content: "",
template: '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
}), c.prototype = a.extend({}, a.fn.tooltip.Constructor.prototype), c.prototype.constructor = c, c.prototype.getDefaults = function() {
return c.DEFAULTS
}, c.prototype.setContent = function() {
var a = this.tip(),
b = this.getTitle(),
c = this.getContent();
a.find(".popover-title")[this.options.html ? "html" : "text"](b), a.find(".popover-content").children().detach().end()[this.options.html ? "string" == typeof c ? "html" : "append" : "text"](c), a.removeClass("fade top bottom left right in"), a.find(".popover-title").html() || a.find(".popover-title").hide()
}, c.prototype.hasContent = function() {
return this.getTitle() || this.getContent()
}, c.prototype.getContent = function() {
var a = this.$element,
b = this.options;
return a.attr("data-content") || ("function" == typeof b.content ? b.content.call(a[0]) : b.content)
}, c.prototype.arrow = function() {
return this.$arrow = this.$arrow || this.tip().find(".arrow")
};
var d = a.fn.popover;
a.fn.popover = b, a.fn.popover.Constructor = c, a.fn.popover.noConflict = function() {
return a.fn.popover = d, this
}
}(jQuery), + function(a) {
"use strict";
function b(c, d) {
this.$body = a(document.body), this.$scrollElement = a(a(c).is(document.body) ? window : c), this.options = a.extend({}, b.DEFAULTS, d), this.selector = (this.options.target || "") + " .nav li > a", this.offsets = [], this.targets = [], this.activeTarget = null, this.scrollHeight = 0, this.$scrollElement.on("scroll.bs.scrollspy", a.proxy(this.process, this)), this.refresh(), this.process()
}
function c(c) {
return this.each(function() {
var d = a(this),
e = d.data("bs.scrollspy"),
f = "object" == typeof c && c;
e || d.data("bs.scrollspy", e = new b(this, f)), "string" == typeof c && e[c]()
})
}
b.VERSION = "3.3.6", b.DEFAULTS = {
offset: 10
}, b.prototype.getScrollHeight = function() {
return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight)
}, b.prototype.refresh = function() {
var b = this,
c = "offset",
d = 0;
this.offsets = [], this.targets = [], this.scrollHeight = this.getScrollHeight(), a.isWindow(this.$scrollElement[0]) || (c = "position", d = this.$scrollElement.scrollTop()), this.$body.find(this.selector).map(function() {
var b = a(this),
e = b.data("target") || b.attr("href"),
f = /^#./.test(e) && a(e);
return f && f.length && f.is(":visible") && [
[f[c]().top + d, e]
] || null
}).sort(function(a, b) {
return a[0] - b[0]
}).each(function() {
b.offsets.push(this[0]), b.targets.push(this[1])
})
}, b.prototype.process = function() {
var a, b = this.$scrollElement.scrollTop() + this.options.offset,
c = this.getScrollHeight(),
d = this.options.offset + c - this.$scrollElement.height(),
e = this.offsets,
f = this.targets,
g = this.activeTarget;
if (this.scrollHeight != c && this.refresh(), b >= d) return g != (a = f[f.length - 1]) && this.activate(a);
if (g && b < e[0]) return this.activeTarget = null, this.clear();
for (a = e.length; a--;) g != f[a] && b >= e[a] && (void 0 === e[a + 1] || b < e[a + 1]) && this.activate(f[a])
}, b.prototype.activate = function(b) {
this.activeTarget = b, this.clear();
var c = this.selector + '[data-target="' + b + '"],' + this.selector + '[href="' + b + '"]',
d = a(c).parents("li").addClass("active");
d.parent(".dropdown-menu").length && (d = d.closest("li.dropdown").addClass("active")), d.trigger("activate.bs.scrollspy")
}, b.prototype.clear = function() {
a(this.selector).parentsUntil(this.options.target, ".active").removeClass("active")
};
var d = a.fn.scrollspy;
a.fn.scrollspy = c, a.fn.scrollspy.Constructor = b, a.fn.scrollspy.noConflict = function() {
return a.fn.scrollspy = d, this
}, a(window).on("load.bs.scrollspy.data-api", function() {
a('[data-spy="scroll"]').each(function() {
var b = a(this);
c.call(b, b.data())
})
})
}(jQuery), + function(a) {
"use strict";
function b(b) {
return this.each(function() {
var d = a(this),
e = d.data("bs.tab");
e || d.data("bs.tab", e = new c(this)), "string" == typeof b && e[b]()
})
}
var c = function(b) {
this.element = a(b)
};
c.VERSION = "3.3.6", c.TRANSITION_DURATION = 150, c.prototype.show = function() {
var b = this.element,
c = b.closest("ul:not(.dropdown-menu)"),
d = b.data("target");
if (d || (d = b.attr("href"), d = d && d.replace(/.*(?=#[^\s]*$)/, "")), !b.parent("li").hasClass("active")) {
var e = c.find(".active:last a"),
f = a.Event("hide.bs.tab", {
relatedTarget: b[0]
}),
g = a.Event("show.bs.tab", {
relatedTarget: e[0]
});
if (e.trigger(f), b.trigger(g), !g.isDefaultPrevented() && !f.isDefaultPrevented()) {
var h = a(d);
this.activate(b.closest("li"), c), this.activate(h, h.parent(), function() {
e.trigger({
type: "hidden.bs.tab",
relatedTarget: b[0]
}), b.trigger({
type: "shown.bs.tab",
relatedTarget: e[0]
})
})
}
}
}, c.prototype.activate = function(b, d, e) {
function f() {
g.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded", !1), b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded", !0), h ? (b[0].offsetWidth, b.addClass("in")) : b.removeClass("fade"), b.parent(".dropdown-menu").length && b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded", !0), e && e()
}
var g = d.find("> .active"),
h = e && a.support.transition && (g.length && g.hasClass("fade") || !!d.find("> .fade").length);
g.length && h ? g.one("bsTransitionEnd", f).emulateTransitionEnd(c.TRANSITION_DURATION) : f(), g.removeClass("in")
};
var d = a.fn.tab;
a.fn.tab = b, a.fn.tab.Constructor = c, a.fn.tab.noConflict = function() {
return a.fn.tab = d, this
};
var e = function(c) {
c.preventDefault(), b.call(a(this), "show")
};
a(document).on("click.bs.tab.data-api", '[data-toggle="tab"]', e).on("click.bs.tab.data-api", '[data-toggle="pill"]', e)
}(jQuery), + function(a) {
"use strict";
function b(b) {
return this.each(function() {
var d = a(this),
e = d.data("bs.affix"),
f = "object" == typeof b && b;
e || d.data("bs.affix", e = new c(this, f)), "string" == typeof b && e[b]()
})
}
var c = function(b, d) {
this.options = a.extend({}, c.DEFAULTS, d), this.$target = a(this.options.target).on("scroll.bs.affix.data-api", a.proxy(this.checkPosition, this)).on("click.bs.affix.data-api", a.proxy(this.checkPositionWithEventLoop, this)), this.$element = a(b), this.affixed = null, this.unpin = null, this.pinnedOffset = null, this.checkPosition()
};
c.VERSION = "3.3.6", c.RESET = "affix affix-top affix-bottom", c.DEFAULTS = {
offset: 0,
target: window
}, c.prototype.getState = function(a, b, c, d) {
var e = this.$target.scrollTop(),
f = this.$element.offset(),
g = this.$target.height();
if (null != c && "top" == this.affixed) return c > e && "top";
if ("bottom" == this.affixed) return null != c ? !(e + this.unpin <= f.top) && "bottom" : !(a - d >= e + g) && "bottom";
var h = null == this.affixed,
i = h ? e : f.top,
j = h ? g : b;
return null != c && c >= e ? "top" : null != d && i + j >= a - d && "bottom"
}, c.prototype.getPinnedOffset = function() {
if (this.pinnedOffset) return this.pinnedOffset;
this.$element.removeClass(c.RESET).addClass("affix");
var a = this.$target.scrollTop(),
b = this.$element.offset();
return this.pinnedOffset = b.top - a
}, c.prototype.checkPositionWithEventLoop = function() {
setTimeout(a.proxy(this.checkPosition, this), 1)
}, c.prototype.checkPosition = function() {
if (this.$element.is(":visible")) {
var b = this.$element.height(),
d = this.options.offset,
e = d.top,
f = d.bottom,
g = Math.max(a(document).height(), a(document.body).height());
"object" != typeof d && (f = e = d), "function" == typeof e && (e = d.top(this.$element)), "function" == typeof f && (f = d.bottom(this.$element));
var h = this.getState(g, b, e, f);
if (this.affixed != h) {
null != this.unpin && this.$element.css("top", "");
var i = "affix" + (h ? "-" + h : ""),
j = a.Event(i + ".bs.affix");
if (this.$element.trigger(j), j.isDefaultPrevented()) return;
this.affixed = h, this.unpin = "bottom" == h ? this.getPinnedOffset() : null, this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix", "affixed") + ".bs.affix")
}
"bottom" == h && this.$element.offset({
top: g - b - f
})
}
};
var d = a.fn.affix;
a.fn.affix = b, a.fn.affix.Constructor = c, a.fn.affix.noConflict = function() {
return a.fn.affix = d, this
}, a(window).on("load", function() {
a('[data-spy="affix"]').each(function() {
var c = a(this),
d = c.data();
d.offset = d.offset || {}, null != d.offsetBottom && (d.offset.bottom = d.offsetBottom), null != d.offsetTop && (d.offset.top = d.offsetTop), b.call(c, d)
})
})
}(jQuery), ! function(a, b) {
"function" == typeof define && define.amd ? define(["jquery"], b) : b("object" == typeof exports ? require("jquery") : a.jQuery ? a.jQuery : a.Zepto)
}(this, function(a, b) {
a.fn.jPlayer = function(c) {
var d = "jPlayer",
e = "string" == typeof c,
f = Array.prototype.slice.call(arguments, 1),
g = this;
return c = !e && f.length ? a.extend.apply(null, [!0, c].concat(f)) : c, e && "_" === c.charAt(0) ? g : (this.each(e ? function() {
var e = a(this).data(d),
h = e && a.isFunction(e[c]) ? e[c].apply(e, f) : e;
return h !== e && h !== b ? (g = h, !1) : void 0
} : function() {
var b = a(this).data(d);
b ? b.option(c || {}) : a(this).data(d, new a.jPlayer(c, this))
}), g)
}, a.jPlayer = function(b, c) {
if (arguments.length) {
this.element = a(c), this.options = a.extend(!0, {}, this.options, b);
var d = this;
this.element.bind("remove.jPlayer", function() {
d.destroy()
}), this._init()
}
}, "function" != typeof a.fn.stop && (a.fn.stop = function() {}), a.jPlayer.emulateMethods = "load play pause", a.jPlayer.emulateStatus = "src readyState networkState currentTime duration paused ended playbackRate", a.jPlayer.emulateOptions = "muted volume", a.jPlayer.reservedEvent = "ready flashreset resize repeat error warning", a.jPlayer.event = {}, a.each(["ready", "setmedia", "flashreset", "resize", "repeat", "click", "error", "warning", "loadstart", "progress", "suspend", "abort", "emptied", "stalled", "play", "pause", "loadedmetadata", "loadeddata", "waiting", "playing", "canplay", "canplaythrough", "seeking", "seeked", "timeupdate", "ended", "ratechange", "durationchange", "volumechange"], function() {
a.jPlayer.event[this] = "jPlayer_" + this
}), a.jPlayer.htmlEvent = ["loadstart", "abort", "emptied", "stalled", "loadedmetadata", "canplay", "canplaythrough"], a.jPlayer.pause = function() {
a.jPlayer.prototype.destroyRemoved(), a.each(a.jPlayer.prototype.instances, function(a, b) {
b.data("jPlayer").status.srcSet && b.jPlayer("pause")
})
}, a.jPlayer.timeFormat = {
showHour: !1,
showMin: !0,
showSec: !0,
padHour: !1,
padMin: !0,
padSec: !0,
sepHour: ":",
sepMin: ":",
sepSec: ""
};
var c = function() {
this.init()
};
c.prototype = {
init: function() {
this.options = {
timeFormat: a.jPlayer.timeFormat
}
},
time: function(a) {
a = a && "number" == typeof a ? a : 0;
var b = new Date(1e3 * a),
c = b.getUTCHours(),
d = this.options.timeFormat.showHour ? b.getUTCMinutes() : b.getUTCMinutes() + 60 * c,
e = this.options.timeFormat.showMin ? b.getUTCSeconds() : b.getUTCSeconds() + 60 * d,
f = this.options.timeFormat.padHour && 10 > c ? "0" + c : c,
g = this.options.timeFormat.padMin && 10 > d ? "0" + d : d,
h = this.options.timeFormat.padSec && 10 > e ? "0" + e : e,
i = "";
return i += this.options.timeFormat.showHour ? f + this.options.timeFormat.sepHour : "", i += this.options.timeFormat.showMin ? g + this.options.timeFormat.sepMin : "", i += this.options.timeFormat.showSec ? h + this.options.timeFormat.sepSec : ""
}
};
var d = new c;
a.jPlayer.convertTime = function(a) {
return d.time(a)
}, a.jPlayer.uaBrowser = function(a) {
var b = a.toLowerCase(),
c = /(webkit)[ \/]([\w.]+)/,
d = /(opera)(?:.*version)?[ \/]([\w.]+)/,
e = /(msie) ([\w.]+)/,
f = /(mozilla)(?:.*? rv:([\w.]+))?/,
g = c.exec(b) || d.exec(b) || e.exec(b) || b.indexOf("compatible") < 0 && f.exec(b) || [];
return {
browser: g[1] || "",
version: g[2] || "0"
}
}, a.jPlayer.uaPlatform = function(a) {
var b = a.toLowerCase(),
c = /(ipad|iphone|ipod|android|blackberry|playbook|windows ce|webos)/,
d = /(ipad|playbook)/,
e = /(android)/,
f = /(mobile)/,
g = c.exec(b) || [],
h = d.exec(b) || !f.exec(b) && e.exec(b) || [];
return g[1] && (g[1] = g[1].replace(/\s/g, "_")), {
platform: g[1] || "",
tablet: h[1] || ""
}
}, a.jPlayer.browser = {}, a.jPlayer.platform = {};
var e = a.jPlayer.uaBrowser(navigator.userAgent);
e.browser && (a.jPlayer.browser[e.browser] = !0, a.jPlayer.browser.version = e.version);
var f = a.jPlayer.uaPlatform(navigator.userAgent);
f.platform && (a.jPlayer.platform[f.platform] = !0, a.jPlayer.platform.mobile = !f.tablet, a.jPlayer.platform.tablet = !!f.tablet), a.jPlayer.getDocMode = function() {
var b;
return a.jPlayer.browser.msie && (document.documentMode ? b = document.documentMode : (b = 5, document.compatMode && "CSS1Compat" === document.compatMode && (b = 7))), b
}, a.jPlayer.browser.documentMode = a.jPlayer.getDocMode(), a.jPlayer.nativeFeatures = {
init: function() {
var a, b, c, d = document,
e = d.createElement("video"),
f = {
w3c: ["fullscreenEnabled", "fullscreenElement", "requestFullscreen", "exitFullscreen", "fullscreenchange", "fullscreenerror"],
moz: ["mozFullScreenEnabled", "mozFullScreenElement", "mozRequestFullScreen", "mozCancelFullScreen", "mozfullscreenchange", "mozfullscreenerror"],
webkit: ["", "webkitCurrentFullScreenElement", "webkitRequestFullScreen", "webkitCancelFullScreen", "webkitfullscreenchange", ""],
webkitVideo: ["webkitSupportsFullscreen", "webkitDisplayingFullscreen", "webkitEnterFullscreen", "webkitExitFullscreen", "", ""],
ms: ["", "msFullscreenElement", "msRequestFullscreen", "msExitFullscreen", "MSFullscreenChange", "MSFullscreenError"]
},
g = ["w3c", "moz", "webkit", "webkitVideo", "ms"];
for (this.fullscreen = a = {
support: {
w3c: !!d[f.w3c[0]],
moz: !!d[f.moz[0]],
webkit: "function" == typeof d[f.webkit[3]],
webkitVideo: "function" == typeof e[f.webkitVideo[2]],
ms: "function" == typeof e[f.ms[2]]
},
used: {}
}, b = 0, c = g.length; c > b; b++) {
var h = g[b];
if (a.support[h]) {
a.spec = h, a.used[h] = !0;
break
}
}
if (a.spec) {
var i = f[a.spec];
a.api = {
fullscreenEnabled: !0,
fullscreenElement: function(a) {
return a = a ? a : d, a[i[1]]
},
requestFullscreen: function(a) {
return a[i[2]]()
},
exitFullscreen: function(a) {
return a = a ? a : d, a[i[3]]()
}
}, a.event = {
fullscreenchange: i[4],
fullscreenerror: i[5]
}
} else a.api = {
fullscreenEnabled: !1,
fullscreenElement: function() {
return null
},
requestFullscreen: function() {},
exitFullscreen: function() {}
}, a.event = {}
}
}, a.jPlayer.nativeFeatures.init(), a.jPlayer.focus = null, a.jPlayer.keyIgnoreElementNames = "A INPUT TEXTAREA SELECT BUTTON";
var g = function(b) {
var c, d = a.jPlayer.focus;
d && (a.each(a.jPlayer.keyIgnoreElementNames.split(/\s+/g), function(a, d) {
return b.target.nodeName.toUpperCase() === d.toUpperCase() ? (c = !0, !1) : void 0
}), c || a.each(d.options.keyBindings, function(c, e) {
return e && a.isFunction(e.fn) && ("number" == typeof e.key && b.which === e.key || "string" == typeof e.key && b.key === e.key) ? (b.preventDefault(), e.fn(d), !1) : void 0
}))
};
a.jPlayer.keys = function(b) {
var c = "keydown.jPlayer";
a(document.documentElement).unbind(c), b && a(document.documentElement).bind(c, g)
}, a.jPlayer.keys(!0), a.jPlayer.prototype = {
count: 0,
version: {
script: "2.9.2",
needFlash: "2.9.0",
flash: "unknown"
},
options: {
swfPath: "js",
solution: "html, flash",
supplied: "mp3",
auroraFormats: "wav",
preload: "metadata",
volume: .8,
muted: !1,
remainingDuration: !1,
toggleDuration: !1,
captureDuration: !0,
playbackRate: 1,
defaultPlaybackRate: 1,
minPlaybackRate: .5,
maxPlaybackRate: 4,
wmode: "opaque",
backgroundColor: "#000000",
cssSelectorAncestor: "#jp_container_1",
cssSelector: {
videoPlay: ".jp-video-play",
play: ".jp-play",
pause: ".jp-pause",
stop: ".jp-stop",
seekBar: ".jp-seek-bar",
playBar: ".jp-play-bar",
mute: ".jp-mute",
unmute: ".jp-unmute",
volumeBar: ".jp-volume-bar",
volumeBarValue: ".jp-volume-bar-value",
volumeMax: ".jp-volume-max",
playbackRateBar: ".jp-playback-rate-bar",
playbackRateBarValue: ".jp-playback-rate-bar-value",
currentTime: ".jp-current-time",
duration: ".jp-duration",
title: ".jp-title",
fullScreen: ".jp-full-screen",
restoreScreen: ".jp-restore-screen",
repeat: ".jp-repeat",
repeatOff: ".jp-repeat-off",
gui: ".jp-gui",
noSolution: ".jp-no-solution"
},
stateClass: {
playing: "jp-state-playing",
seeking: "jp-state-seeking",
muted: "jp-state-muted",
looped: "jp-state-looped",
fullScreen: "jp-state-full-screen",
noVolume: "jp-state-no-volume"
},
useStateClassSkin: !1,
autoBlur: !0,
smoothPlayBar: !1,
fullScreen: !1,
fullWindow: !1,
autohide: {
restored: !1,
full: !0,
fadeIn: 200,
fadeOut: 600,
hold: 1e3
},
loop: !1,
repeat: function(b) {
b.jPlayer.options.loop ? a(this).unbind(".jPlayerRepeat").bind(a.jPlayer.event.ended + ".jPlayer.jPlayerRepeat", function() {
a(this).jPlayer("play")
}) : a(this).unbind(".jPlayerRepeat")
},
nativeVideoControls: {},
noFullWindow: {
msie: /msie [0-6]\./,
ipad: /ipad.*?os [0-4]\./,
iphone: /iphone/,
ipod: /ipod/,
android_pad: /android [0-3]\.(?!.*?mobile)/,
android_phone: /(?=.*android)(?!.*chrome)(?=.*mobile)/,
blackberry: /blackberry/,
windows_ce: /windows ce/,
iemobile: /iemobile/,
webos: /webos/
},
noVolume: {
ipad: /ipad/,
iphone: /iphone/,
ipod: /ipod/,
android_pad: /android(?!.*?mobile)/,
android_phone: /android.*?mobile/,
blackberry: /blackberry/,
windows_ce: /windows ce/,
iemobile: /iemobile/,
webos: /webos/,
playbook: /playbook/
},
timeFormat: {},
keyEnabled: !1,
audioFullScreen: !1,
keyBindings: {
play: {
key: 80,
fn: function(a) {
a.status.paused ? a.play() : a.pause()
}
},
fullScreen: {
key: 70,
fn: function(a) {
(a.status.video || a.options.audioFullScreen) && a._setOption("fullScreen", !a.options.fullScreen)
}
},
muted: {
key: 77,
fn: function(a) {
a._muted(!a.options.muted)
}
},
volumeUp: {
key: 190,
fn: function(a) {
a.volume(a.options.volume + .1)
}
},
volumeDown: {
key: 188,
fn: function(a) {
a.volume(a.options.volume - .1)
}
},
loop: {
key: 76,
fn: function(a) {
a._loop(!a.options.loop)
}
}
},
verticalVolume: !1,
verticalPlaybackRate: !1,
globalVolume: !1,
idPrefix: "jp",
noConflict: "jQuery",
emulateHtml: !1,
consoleAlerts: !0,
errorAlerts: !1,
warningAlerts: !1
},
optionsAudio: {
size: {
width: "0px",
height: "0px",
cssClass: ""
},
sizeFull: {
width: "0px",
height: "0px",
cssClass: ""
}
},
optionsVideo: {
size: {
width: "480px",
height: "270px",
cssClass: "jp-video-270p"
},
sizeFull: {
width: "100%",
height: "100%",
cssClass: "jp-video-full"
}
},
instances: {},
status: {
src: "",
media: {},
paused: !0,
format: {},
formatType: "",
waitForPlay: !0,
waitForLoad: !0,
srcSet: !1,
video: !1,
seekPercent: 0,
currentPercentRelative: 0,
currentPercentAbsolute: 0,
currentTime: 0,
duration: 0,
remaining: 0,
videoWidth: 0,
videoHeight: 0,
readyState: 0,
networkState: 0,
playbackRate: 1,
ended: 0
},
internal: {
ready: !1
},
solution: {
html: !0,
aurora: !0,
flash: !0
},
format: {
mp3: {
codec: "audio/mpeg",
flashCanPlay: !0,
media: "audio"
},
m4a: {
codec: 'audio/mp4; codecs="mp4a.40.2"',
flashCanPlay: !0,
media: "audio"
},
m3u8a: {
codec: 'application/vnd.apple.mpegurl; codecs="mp4a.40.2"',
flashCanPlay: !1,
media: "audio"
},
m3ua: {
codec: "audio/mpegurl",
flashCanPlay: !1,
media: "audio"
},
oga: {
codec: 'audio/ogg; codecs="vorbis, opus"',
flashCanPlay: !1,
media: "audio"
},
flac: {
codec: "audio/x-flac",
flashCanPlay: !1,
media: "audio"
},
wav: {
codec: 'audio/wav; codecs="1"',
flashCanPlay: !1,
media: "audio"
},
webma: {
codec: 'audio/webm; codecs="vorbis"',
flashCanPlay: !1,
media: "audio"
},
fla: {
codec: "audio/x-flv",
flashCanPlay: !0,
media: "audio"
},
rtmpa: {
codec: 'audio/rtmp; codecs="rtmp"',
flashCanPlay: !0,
media: "audio"
},
m4v: {
codec: 'video/mp4; codecs="avc1.42E01E, mp4a.40.2"',
flashCanPlay: !0,
media: "video"
},
m3u8v: {
codec: 'application/vnd.apple.mpegurl; codecs="avc1.42E01E, mp4a.40.2"',
flashCanPlay: !1,
media: "video"
},
m3uv: {
codec: "audio/mpegurl",
flashCanPlay: !1,
media: "video"
},
ogv: {
codec: 'video/ogg; codecs="theora, vorbis"',
flashCanPlay: !1,
media: "video"
},
webmv: {
codec: 'video/webm; codecs="vorbis, vp8"',
flashCanPlay: !1,
media: "video"
},
flv: {
codec: "video/x-flv",
flashCanPlay: !0,
media: "video"
},
rtmpv: {
codec: 'video/rtmp; codecs="rtmp"',
flashCanPlay: !0,
media: "video"
}
},
_init: function() {
var c = this;
if (this.element.empty(), this.status = a.extend({}, this.status), this.internal = a.extend({}, this.internal), this.options.timeFormat = a.extend({}, a.jPlayer.timeFormat, this.options.timeFormat), this.internal.cmdsIgnored = a.jPlayer.platform.ipad || a.jPlayer.platform.iphone || a.jPlayer.platform.ipod, this.internal.domNode = this.element.get(0), this.options.keyEnabled && !a.jPlayer.focus && (a.jPlayer.focus = this), this.androidFix = {
setMedia: !1,
play: !1,
pause: !1,
time: NaN
}, a.jPlayer.platform.android && (this.options.preload = "auto" !== this.options.preload ? "metadata" : "auto"), this.formats = [], this.solutions = [], this.require = {}, this.htmlElement = {}, this.html = {}, this.html.audio = {}, this.html.video = {}, this.aurora = {}, this.aurora.formats = [], this.aurora.properties = [], this.flash = {}, this.css = {}, this.css.cs = {}, this.css.jq = {}, this.ancestorJq = [], this.options.volume = this._limitValue(this.options.volume, 0, 1), a.each(this.options.supplied.toLowerCase().split(","), function(b, d) {
var e = d.replace(/^\s+|\s+$/g, "");
if (c.format[e]) {
var f = !1;
a.each(c.formats, function(a, b) {
return e === b ? (f = !0, !1) : void 0
}), f || c.formats.push(e)
}
}), a.each(this.options.solution.toLowerCase().split(","), function(b, d) {
var e = d.replace(/^\s+|\s+$/g, "");
if (c.solution[e]) {
var f = !1;
a.each(c.solutions, function(a, b) {
return e === b ? (f = !0, !1) : void 0
}), f || c.solutions.push(e)
}
}), a.each(this.options.auroraFormats.toLowerCase().split(","), function(b, d) {
var e = d.replace(/^\s+|\s+$/g, "");
if (c.format[e]) {
var f = !1;
a.each(c.aurora.formats, function(a, b) {
return e === b ? (f = !0, !1) : void 0
}), f || c.aurora.formats.push(e)
}
}), this.internal.instance = "jp_" + this.count, this.instances[this.internal.instance] = this.element, this.element.attr("id") || this.element.attr("id", this.options.idPrefix + "_jplayer_" + this.count), this.internal.self = a.extend({}, {
id: this.element.attr("id"),
jq: this.element
}), this.internal.audio = a.extend({}, {
id: this.options.idPrefix + "_audio_" + this.count,
jq: b
}), this.internal.video = a.extend({}, {
id: this.options.idPrefix + "_video_" + this.count,
jq: b
}), this.internal.flash = a.extend({}, {
id: this.options.idPrefix + "_flash_" + this.count,
jq: b,
swf: this.options.swfPath + (".swf" !== this.options.swfPath.toLowerCase().slice(-4) ? (this.options.swfPath && "/" !== this.options.swfPath.slice(-1) ? "/" : "") + "jquery.jplayer.swf" : "")
}), this.internal.poster = a.extend({}, {
id: this.options.idPrefix + "_poster_" + this.count,
jq: b
}), a.each(a.jPlayer.event, function(a, d) {
c.options[a] !== b && (c.element.bind(d + ".jPlayer", c.options[a]), c.options[a] = b)
}), this.require.audio = !1, this.require.video = !1, a.each(this.formats, function(a, b) {
c.require[c.format[b].media] = !0
}), this.options = this.require.video ? a.extend(!0, {}, this.optionsVideo, this.options) : a.extend(!0, {}, this.optionsAudio, this.options), this._setSize(), this.status.nativeVideoControls = this._uaBlocklist(this.options.nativeVideoControls), this.status.noFullWindow = this._uaBlocklist(this.options.noFullWindow), this.status.noVolume = this._uaBlocklist(this.options.noVolume), a.jPlayer.nativeFeatures.fullscreen.api.fullscreenEnabled && this._fullscreenAddEventListeners(), this._restrictNativeVideoControls(), this.htmlElement.poster = document.createElement("img"), this.htmlElement.poster.id = this.internal.poster.id, this.htmlElement.poster.onload = function() {
(!c.status.video || c.status.waitForPlay) && c.internal.poster.jq.show()
}, this.element.append(this.htmlElement.poster), this.internal.poster.jq = a("#" + this.internal.poster.id), this.internal.poster.jq.css({
width: this.status.width,
height: this.status.height
}), this.internal.poster.jq.hide(), this.internal.poster.jq.bind("click.jPlayer", function() {
c._trigger(a.jPlayer.event.click)
}), this.html.audio.available = !1, this.require.audio && (this.htmlElement.audio = document.createElement("audio"), this.htmlElement.audio.id = this.internal.audio.id, this.html.audio.available = !!this.htmlElement.audio.canPlayType && this._testCanPlayType(this.htmlElement.audio)), this.html.video.available = !1, this.require.video && (this.htmlElement.video = document.createElement("video"), this.htmlElement.video.id = this.internal.video.id, this.html.video.available = !!this.htmlElement.video.canPlayType && this._testCanPlayType(this.htmlElement.video)), this.flash.available = this._checkForFlash(10.1), this.html.canPlay = {}, this.aurora.canPlay = {}, this.flash.canPlay = {}, a.each(this.formats, function(b, d) {
c.html.canPlay[d] = c.html[c.format[d].media].available && "" !== c.htmlElement[c.format[d].media].canPlayType(c.format[d].codec), c.aurora.canPlay[d] = a.inArray(d, c.aurora.formats) > -1, c.flash.canPlay[d] = c.format[d].flashCanPlay && c.flash.available
}), this.html.desired = !1, this.aurora.desired = !1, this.flash.desired = !1, a.each(this.solutions, function(b, d) {
if (0 === b) c[d].desired = !0;
else {
var e = !1,
f = !1;
a.each(c.formats, function(a, b) {
c[c.solutions[0]].canPlay[b] && ("video" === c.format[b].media ? f = !0 : e = !0)
}), c[d].desired = c.require.audio && !e || c.require.video && !f
}
}), this.html.support = {}, this.aurora.support = {}, this.flash.support = {}, a.each(this.formats, function(a, b) {
c.html.support[b] = c.html.canPlay[b] && c.html.desired, c.aurora.support[b] = c.aurora.canPlay[b] && c.aurora.desired, c.flash.support[b] = c.flash.canPlay[b] && c.flash.desired
}), this.html.used = !1, this.aurora.used = !1, this.flash.used = !1, a.each(this.solutions, function(b, d) {
a.each(c.formats, function(a, b) {
return c[d].support[b] ? (c[d].used = !0, !1) : void 0
})
}), this._resetActive(), this._resetGate(), this._cssSelectorAncestor(this.options.cssSelectorAncestor), this.html.used || this.aurora.used || this.flash.used ? this.css.jq.noSolution.length && this.css.jq.noSolution.hide() : (this._error({
type: a.jPlayer.error.NO_SOLUTION,
context: "{solution:'" + this.options.solution + "', supplied:'" + this.options.supplied + "'}",
message: a.jPlayer.errorMsg.NO_SOLUTION,
hint: a.jPlayer.errorHint.NO_SOLUTION
}), this.css.jq.noSolution.length && this.css.jq.noSolution.show()), this.flash.used) {
var d, e = "jQuery=" + encodeURI(this.options.noConflict) + "&id=" + encodeURI(this.internal.self.id) + "&vol=" + this.options.volume + "&muted=" + this.options.muted;
if (a.jPlayer.browser.msie && (Number(a.jPlayer.browser.version) < 9 || a.jPlayer.browser.documentMode < 9)) {
var f = '<object id="' + this.internal.flash.id + '" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="0" height="0" tabindex="-1"></object>',
g = ['<param name="movie" value="' + this.internal.flash.swf + '" />', '<param name="FlashVars" value="' + e + '" />', '<param name="allowScriptAccess" value="always" />', '<param name="bgcolor" value="' + this.options.backgroundColor + '" />', '<param name="wmode" value="' + this.options.wmode + '" />'];
d = document.createElement(f);
for (var h = 0; h < g.length; h++) d.appendChild(document.createElement(g[h]))
} else {
var i = function(a, b, c) {
var d = document.createElement("param");
d.setAttribute("name", b), d.setAttribute("value", c), a.appendChild(d)
};
d = document.createElement("object"), d.setAttribute("id", this.internal.flash.id), d.setAttribute("name", this.internal.flash.id), d.setAttribute("data", this.internal.flash.swf), d.setAttribute("type", "application/x-shockwave-flash"), d.setAttribute("width", "1"), d.setAttribute("height", "1"), d.setAttribute("tabindex", "-1"), i(d, "flashvars", e), i(d, "allowscriptaccess", "always"), i(d, "bgcolor", this.options.backgroundColor), i(d, "wmode", this.options.wmode)
}
this.element.append(d), this.internal.flash.jq = a(d)
}
this.status.playbackRateEnabled = !(!this.html.used || this.flash.used) && this._testPlaybackRate("audio"), this._updatePlaybackRate(), this.html.used && (this.html.audio.available && (this._addHtmlEventListeners(this.htmlElement.audio, this.html.audio), this.element.append(this.htmlElement.audio), this.internal.audio.jq = a("#" + this.internal.audio.id)), this.html.video.available && (this._addHtmlEventListeners(this.htmlElement.video, this.html.video), this.element.append(this.htmlElement.video), this.internal.video.jq = a("#" + this.internal.video.id), this.internal.video.jq.css(this.status.nativeVideoControls ? {
width: this.status.width,
height: this.status.height
} : {
width: "0px",
height: "0px"
}), this.internal.video.jq.bind("click.jPlayer", function() {
c._trigger(a.jPlayer.event.click)
}))), this.aurora.used, this.options.emulateHtml && this._emulateHtmlBridge(), !this.html.used && !this.aurora.used || this.flash.used || setTimeout(function() {
c.internal.ready = !0, c.version.flash = "n/a", c._trigger(a.jPlayer.event.repeat), c._trigger(a.jPlayer.event.ready)
}, 100), this._updateNativeVideoControls(), this.css.jq.videoPlay.length && this.css.jq.videoPlay.hide(), a.jPlayer.prototype.count++
},
destroy: function() {
this.clearMedia(), this._removeUiClass(), this.css.jq.currentTime.length && this.css.jq.currentTime.text(""), this.css.jq.duration.length && this.css.jq.duration.text(""), a.each(this.css.jq, function(a, b) {
b.length && b.unbind(".jPlayer")
}), this.internal.poster.jq.unbind(".jPlayer"), this.internal.video.jq && this.internal.video.jq.unbind(".jPlayer"), this._fullscreenRemoveEventListeners(), this === a.jPlayer.focus && (a.jPlayer.focus = null), this.options.emulateHtml && this._destroyHtmlBridge(), this.element.removeData("jPlayer"), this.element.unbind(".jPlayer"), this.element.empty(), delete this.instances[this.internal.instance]
},
destroyRemoved: function() {
var b = this;
a.each(this.instances, function(a, c) {
b.element !== c && (c.data("jPlayer") || (c.jPlayer("destroy"), delete b.instances[a]))
})
},
enable: function() {},
disable: function() {},
_testCanPlayType: function(a) {
try {
return a.canPlayType(this.format.mp3.codec), !0
} catch (a) {
return !1
}
},
_testPlaybackRate: function(a) {
var b, c = .5;
a = "string" == typeof a ? a : "audio", b = document.createElement(a);
try {
return "playbackRate" in b && (b.playbackRate = c, b.playbackRate === c)
} catch (a) {
return !1
}
},
_uaBlocklist: function(b) {
var c = navigator.userAgent.toLowerCase(),
d = !1;
return a.each(b, function(a, b) {
return b && b.test(c) ? (d = !0, !1) : void 0
}), d
},
_restrictNativeVideoControls: function() {
this.require.audio && this.status.nativeVideoControls && (this.status.nativeVideoControls = !1, this.status.noFullWindow = !0)
},
_updateNativeVideoControls: function() {
this.html.video.available && this.html.used && (this.htmlElement.video.controls = this.status.nativeVideoControls, this._updateAutohide(), this.status.nativeVideoControls && this.require.video ? (this.internal.poster.jq.hide(), this.internal.video.jq.css({
width: this.status.width,
height: this.status.height
})) : this.status.waitForPlay && this.status.video && (this.internal.poster.jq.show(), this.internal.video.jq.css({
width: "0px",
height: "0px"
})))
},
_addHtmlEventListeners: function(b, c) {
var d = this;
b.preload = this.options.preload, b.muted = this.options.muted, b.volume = this.options.volume, this.status.playbackRateEnabled && (b.defaultPlaybackRate = this.options.defaultPlaybackRate, b.playbackRate = this.options.playbackRate), b.addEventListener("progress", function() {
c.gate && (d.internal.cmdsIgnored && this.readyState > 0 && (d.internal.cmdsIgnored = !1), d._getHtmlStatus(b), d._updateInterface(), d._trigger(a.jPlayer.event.progress))
}, !1), b.addEventListener("loadeddata", function() {
c.gate && (d.androidFix.setMedia = !1, d.androidFix.play && (d.androidFix.play = !1, d.play(d.androidFix.time)), d.androidFix.pause && (d.androidFix.pause = !1, d.pause(d.androidFix.time)), d._trigger(a.jPlayer.event.loadeddata))
}, !1), b.addEventListener("timeupdate", function() {
c.gate && (d._getHtmlStatus(b), d._updateInterface(), d._trigger(a.jPlayer.event.timeupdate))
}, !1), b.addEventListener("durationchange", function() {
c.gate && (d._getHtmlStatus(b), d._updateInterface(), d._trigger(a.jPlayer.event.durationchange))
}, !1), b.addEventListener("play", function() {
c.gate && (d._updateButtons(!0), d._html_checkWaitForPlay(), d._trigger(a.jPlayer.event.play))
}, !1), b.addEventListener("playing", function() {
c.gate && (d._updateButtons(!0), d._seeked(), d._trigger(a.jPlayer.event.playing))
}, !1), b.addEventListener("pause", function() {
c.gate && (d._updateButtons(!1), d._trigger(a.jPlayer.event.pause))
}, !1), b.addEventListener("waiting", function() {
c.gate && (d._seeking(), d._trigger(a.jPlayer.event.waiting))
}, !1), b.addEventListener("seeking", function() {
c.gate && (d._seeking(), d._trigger(a.jPlayer.event.seeking))
}, !1), b.addEventListener("seeked", function() {
c.gate && (d._seeked(), d._trigger(a.jPlayer.event.seeked))
}, !1), b.addEventListener("volumechange", function() {
c.gate && (d.options.volume = b.volume, d.options.muted = b.muted, d._updateMute(), d._updateVolume(), d._trigger(a.jPlayer.event.volumechange))
}, !1), b.addEventListener("ratechange", function() {
c.gate && (d.options.defaultPlaybackRate = b.defaultPlaybackRate, d.options.playbackRate = b.playbackRate, d._updatePlaybackRate(), d._trigger(a.jPlayer.event.ratechange))
}, !1), b.addEventListener("suspend", function() {
c.gate && (d._seeked(), d._trigger(a.jPlayer.event.suspend))
}, !1), b.addEventListener("ended", function() {
c.gate && (a.jPlayer.browser.webkit || (d.htmlElement.media.currentTime = 0), d.htmlElement.media.pause(), d._updateButtons(!1), d._getHtmlStatus(b, !0), d._updateInterface(), d._trigger(a.jPlayer.event.ended))
}, !1), b.addEventListener("error", function() {
c.gate && (d._updateButtons(!1), d._seeked(), d.status.srcSet && (clearTimeout(d.internal.htmlDlyCmdId), d.status.waitForLoad = !0, d.status.waitForPlay = !0, d.status.video && !d.status.nativeVideoControls && d.internal.video.jq.css({
width: "0px",
height: "0px"
}), d._validString(d.status.media.poster) && !d.status.nativeVideoControls && d.internal.poster.jq.show(), d.css.jq.videoPlay.length && d.css.jq.videoPlay.show(), d._error({
type: a.jPlayer.error.URL,
context: d.status.src,
message: a.jPlayer.errorMsg.URL,
hint: a.jPlayer.errorHint.URL
})))
}, !1), a.each(a.jPlayer.htmlEvent, function(e, f) {
b.addEventListener(this, function() {
c.gate && d._trigger(a.jPlayer.event[f])
}, !1)
})
},
_addAuroraEventListeners: function(b, c) {
var d = this;
b.volume = 100 * this.options.volume, b.on("progress", function() {
c.gate && (d.internal.cmdsIgnored && this.readyState > 0 && (d.internal.cmdsIgnored = !1), d._getAuroraStatus(b), d._updateInterface(), d._trigger(a.jPlayer.event.progress), b.duration > 0 && d._trigger(a.jPlayer.event.timeupdate))
}, !1), b.on("ready", function() {
c.gate && d._trigger(a.jPlayer.event.loadeddata)
}, !1), b.on("duration", function() {
c.gate && (d._getAuroraStatus(b), d._updateInterface(), d._trigger(a.jPlayer.event.durationchange))
}, !1), b.on("end", function() {
c.gate && (d._updateButtons(!1), d._getAuroraStatus(b, !0), d._updateInterface(), d._trigger(a.jPlayer.event.ended))
}, !1), b.on("error", function() {
c.gate && (d._updateButtons(!1), d._seeked(), d.status.srcSet && (d.status.waitForLoad = !0, d.status.waitForPlay = !0, d.status.video && !d.status.nativeVideoControls && d.internal.video.jq.css({
width: "0px",
height: "0px"
}), d._validString(d.status.media.poster) && !d.status.nativeVideoControls && d.internal.poster.jq.show(), d.css.jq.videoPlay.length && d.css.jq.videoPlay.show(), d._error({
type: a.jPlayer.error.URL,
context: d.status.src,
message: a.jPlayer.errorMsg.URL,
hint: a.jPlayer.errorHint.URL
})))
}, !1)
},
_getHtmlStatus: function(a, b) {
var c = 0,
d = 0,
e = 0,
f = 0;
isFinite(a.duration) && (this.status.duration = a.duration), c = a.currentTime, d = this.status.duration > 0 ? 100 * c / this.status.duration : 0, "object" == typeof a.seekable && a.seekable.length > 0 ? (e = this.status.duration > 0 ? 100 * a.seekable.end(a.seekable.length - 1) / this.status.duration : 100, f = this.status.duration > 0 ? 100 * a.currentTime / a.seekable.end(a.seekable.length - 1) : 0) : (e = 100, f = d), b && (c = 0, f = 0, d = 0), this.status.seekPercent = e, this.status.currentPercentRelative = f, this.status.currentPercentAbsolute = d, this.status.currentTime = c, this.status.remaining = this.status.duration - this.status.currentTime, this.status.videoWidth = a.videoWidth, this.status.videoHeight = a.videoHeight, this.status.readyState = a.readyState, this.status.networkState = a.networkState, this.status.playbackRate = a.playbackRate, this.status.ended = a.ended
},
_getAuroraStatus: function(a, b) {
var c = 0,
d = 0,
e = 0,
f = 0;
this.status.duration = a.duration / 1e3, c = a.currentTime / 1e3, d = this.status.duration > 0 ? 100 * c / this.status.duration : 0, a.buffered > 0 ? (e = this.status.duration > 0 ? a.buffered * this.status.duration / this.status.duration : 100, f = this.status.duration > 0 ? c / (a.buffered * this.status.duration) : 0) : (e = 100, f = d), b && (c = 0, f = 0, d = 0), this.status.seekPercent = e, this.status.currentPercentRelative = f, this.status.currentPercentAbsolute = d, this.status.currentTime = c, this.status.remaining = this.status.duration - this.status.currentTime, this.status.readyState = 4, this.status.networkState = 0, this.status.playbackRate = 1, this.status.ended = !1
},
_resetStatus: function() {
this.status = a.extend({}, this.status, a.jPlayer.prototype.status)
},
_trigger: function(b, c, d) {
var e = a.Event(b);
e.jPlayer = {}, e.jPlayer.version = a.extend({}, this.version), e.jPlayer.options = a.extend(!0, {}, this.options), e.jPlayer.status = a.extend(!0, {}, this.status), e.jPlayer.html = a.extend(!0, {}, this.html), e.jPlayer.aurora = a.extend(!0, {}, this.aurora), e.jPlayer.flash = a.extend(!0, {}, this.flash),
c && (e.jPlayer.error = a.extend({}, c)), d && (e.jPlayer.warning = a.extend({}, d)), this.element.trigger(e)
},
jPlayerFlashEvent: function(b, c) {
if (b === a.jPlayer.event.ready)
if (this.internal.ready) {
if (this.flash.gate) {
if (this.status.srcSet) {
var d = this.status.currentTime,
e = this.status.paused;
this.setMedia(this.status.media), this.volumeWorker(this.options.volume), d > 0 && (e ? this.pause(d) : this.play(d))
}
this._trigger(a.jPlayer.event.flashreset)
}
} else this.internal.ready = !0, this.internal.flash.jq.css({
width: "0px",
height: "0px"
}), this.version.flash = c.version, this.version.needFlash !== this.version.flash && this._error({
type: a.jPlayer.error.VERSION,
context: this.version.flash,
message: a.jPlayer.errorMsg.VERSION + this.version.flash,
hint: a.jPlayer.errorHint.VERSION
}), this._trigger(a.jPlayer.event.repeat), this._trigger(b);
if (this.flash.gate) switch (b) {
case a.jPlayer.event.progress:
this._getFlashStatus(c), this._updateInterface(), this._trigger(b);
break;
case a.jPlayer.event.timeupdate:
this._getFlashStatus(c), this._updateInterface(), this._trigger(b);
break;
case a.jPlayer.event.play:
this._seeked(), this._updateButtons(!0), this._trigger(b);
break;
case a.jPlayer.event.pause:
this._updateButtons(!1), this._trigger(b);
break;
case a.jPlayer.event.ended:
this._updateButtons(!1), this._trigger(b);
break;
case a.jPlayer.event.click:
this._trigger(b);
break;
case a.jPlayer.event.error:
this.status.waitForLoad = !0, this.status.waitForPlay = !0, this.status.video && this.internal.flash.jq.css({
width: "0px",
height: "0px"
}), this._validString(this.status.media.poster) && this.internal.poster.jq.show(), this.css.jq.videoPlay.length && this.status.video && this.css.jq.videoPlay.show(), this.status.video ? this._flash_setVideo(this.status.media) : this._flash_setAudio(this.status.media), this._updateButtons(!1), this._error({
type: a.jPlayer.error.URL,
context: c.src,
message: a.jPlayer.errorMsg.URL,
hint: a.jPlayer.errorHint.URL
});
break;
case a.jPlayer.event.seeking:
this._seeking(), this._trigger(b);
break;
case a.jPlayer.event.seeked:
this._seeked(), this._trigger(b);
break;
case a.jPlayer.event.ready:
break;
default:
this._trigger(b)
}
return !1
},
_getFlashStatus: function(a) {
this.status.seekPercent = a.seekPercent, this.status.currentPercentRelative = a.currentPercentRelative, this.status.currentPercentAbsolute = a.currentPercentAbsolute, this.status.currentTime = a.currentTime, this.status.duration = a.duration, this.status.remaining = a.duration - a.currentTime, this.status.videoWidth = a.videoWidth, this.status.videoHeight = a.videoHeight, this.status.readyState = 4, this.status.networkState = 0, this.status.playbackRate = 1, this.status.ended = !1
},
_updateButtons: function(a) {
a === b ? a = !this.status.paused : this.status.paused = !a, a ? this.addStateClass("playing") : this.removeStateClass("playing"), !this.status.noFullWindow && this.options.fullWindow ? this.addStateClass("fullScreen") : this.removeStateClass("fullScreen"), this.options.loop ? this.addStateClass("looped") : this.removeStateClass("looped"), this.css.jq.play.length && this.css.jq.pause.length && (a ? (this.css.jq.play.hide(), this.css.jq.pause.show()) : (this.css.jq.play.show(), this.css.jq.pause.hide())), this.css.jq.restoreScreen.length && this.css.jq.fullScreen.length && (this.status.noFullWindow ? (this.css.jq.fullScreen.hide(), this.css.jq.restoreScreen.hide()) : this.options.fullWindow ? (this.css.jq.fullScreen.hide(), this.css.jq.restoreScreen.show()) : (this.css.jq.fullScreen.show(), this.css.jq.restoreScreen.hide())), this.css.jq.repeat.length && this.css.jq.repeatOff.length && (this.options.loop ? (this.css.jq.repeat.hide(), this.css.jq.repeatOff.show()) : (this.css.jq.repeat.show(), this.css.jq.repeatOff.hide()))
},
_updateInterface: function() {
this.css.jq.seekBar.length && this.css.jq.seekBar.width(this.status.seekPercent + "%"), this.css.jq.playBar.length && (this.options.smoothPlayBar ? this.css.jq.playBar.stop().animate({
width: this.status.currentPercentAbsolute + "%"
}, 250, "linear") : this.css.jq.playBar.width(this.status.currentPercentRelative + "%"));
var a = "";
this.css.jq.currentTime.length && (a = this._convertTime(this.status.currentTime), a !== this.css.jq.currentTime.text() && this.css.jq.currentTime.text(this._convertTime(this.status.currentTime)));
var b = "",
c = this.status.duration,
d = this.status.remaining;
this.css.jq.duration.length && ("string" == typeof this.status.media.duration ? b = this.status.media.duration : ("number" == typeof this.status.media.duration && (c = this.status.media.duration, d = c - this.status.currentTime), b = this.options.remainingDuration ? (d > 0 ? "-" : "") + this._convertTime(d) : this._convertTime(c)), b !== this.css.jq.duration.text() && this.css.jq.duration.text(b))
},
_convertTime: c.prototype.time,
_seeking: function() {
this.css.jq.seekBar.length && this.css.jq.seekBar.addClass("jp-seeking-bg"), this.addStateClass("seeking")
},
_seeked: function() {
this.css.jq.seekBar.length && this.css.jq.seekBar.removeClass("jp-seeking-bg"), this.removeStateClass("seeking")
},
_resetGate: function() {
this.html.audio.gate = !1, this.html.video.gate = !1, this.aurora.gate = !1, this.flash.gate = !1
},
_resetActive: function() {
this.html.active = !1, this.aurora.active = !1, this.flash.active = !1
},
_escapeHtml: function(a) {
return a.split("&").join("&amp;").split("<").join("&lt;").split(">").join("&gt;").split('"').join("&quot;")
},
_qualifyURL: function(a) {
var b = document.createElement("div");
return b.innerHTML = '<a href="' + this._escapeHtml(a) + '">x</a>', b.firstChild.href
},
_absoluteMediaUrls: function(b) {
var c = this;
return a.each(b, function(a, d) {
d && c.format[a] && "data:" !== d.substr(0, 5) && (b[a] = c._qualifyURL(d))
}), b
},
addStateClass: function(a) {
this.ancestorJq.length && this.ancestorJq.addClass(this.options.stateClass[a])
},
removeStateClass: function(a) {
this.ancestorJq.length && this.ancestorJq.removeClass(this.options.stateClass[a])
},
setMedia: function(b) {
var c = this,
d = !1,
e = this.status.media.poster !== b.poster;
this._resetMedia(), this._resetGate(), this._resetActive(), this.androidFix.setMedia = !1, this.androidFix.play = !1, this.androidFix.pause = !1, b = this._absoluteMediaUrls(b), a.each(this.formats, function(e, f) {
var g = "video" === c.format[f].media;
return a.each(c.solutions, function(e, h) {
if (c[h].support[f] && c._validString(b[f])) {
var i = "html" === h,
j = "aurora" === h;
return g ? (i ? (c.html.video.gate = !0, c._html_setVideo(b), c.html.active = !0) : (c.flash.gate = !0, c._flash_setVideo(b), c.flash.active = !0), c.css.jq.videoPlay.length && c.css.jq.videoPlay.show(), c.status.video = !0) : (i ? (c.html.audio.gate = !0, c._html_setAudio(b), c.html.active = !0, a.jPlayer.platform.android && (c.androidFix.setMedia = !0)) : j ? (c.aurora.gate = !0, c._aurora_setAudio(b), c.aurora.active = !0) : (c.flash.gate = !0, c._flash_setAudio(b), c.flash.active = !0), c.css.jq.videoPlay.length && c.css.jq.videoPlay.hide(), c.status.video = !1), d = !0, !1
}
}), !d && void 0
}), d ? (this.status.nativeVideoControls && this.html.video.gate || this._validString(b.poster) && (e ? this.htmlElement.poster.src = b.poster : this.internal.poster.jq.show()), "string" == typeof b.title && (this.css.jq.title.length && this.css.jq.title.html(b.title), this.htmlElement.audio && this.htmlElement.audio.setAttribute("title", b.title), this.htmlElement.video && this.htmlElement.video.setAttribute("title", b.title)), this.status.srcSet = !0, this.status.media = a.extend({}, b), this._updateButtons(!1), this._updateInterface(), this._trigger(a.jPlayer.event.setmedia)) : this._error({
type: a.jPlayer.error.NO_SUPPORT,
context: "{supplied:'" + this.options.supplied + "'}",
message: a.jPlayer.errorMsg.NO_SUPPORT,
hint: a.jPlayer.errorHint.NO_SUPPORT
})
},
_resetMedia: function() {
this._resetStatus(), this._updateButtons(!1), this._updateInterface(), this._seeked(), this.internal.poster.jq.hide(), clearTimeout(this.internal.htmlDlyCmdId), this.html.active ? this._html_resetMedia() : this.aurora.active ? this._aurora_resetMedia() : this.flash.active && this._flash_resetMedia()
},
clearMedia: function() {
this._resetMedia(), this.html.active ? this._html_clearMedia() : this.aurora.active ? this._aurora_clearMedia() : this.flash.active && this._flash_clearMedia(), this._resetGate(), this._resetActive()
},
load: function() {
this.status.srcSet ? this.html.active ? this._html_load() : this.aurora.active ? this._aurora_load() : this.flash.active && this._flash_load() : this._urlNotSetError("load")
},
focus: function() {
this.options.keyEnabled && (a.jPlayer.focus = this)
},
play: function(a) {
var b = "object" == typeof a;
b && this.options.useStateClassSkin && !this.status.paused ? this.pause(a) : (a = "number" == typeof a ? a : NaN, this.status.srcSet ? (this.focus(), this.html.active ? this._html_play(a) : this.aurora.active ? this._aurora_play(a) : this.flash.active && this._flash_play(a)) : this._urlNotSetError("play"))
},
videoPlay: function() {
this.play()
},
pause: function(a) {
a = "number" == typeof a ? a : NaN, this.status.srcSet ? this.html.active ? this._html_pause(a) : this.aurora.active ? this._aurora_pause(a) : this.flash.active && this._flash_pause(a) : this._urlNotSetError("pause")
},
tellOthers: function(b, c) {
var d = this,
e = "function" == typeof c,
f = Array.prototype.slice.call(arguments);
"string" == typeof b && (e && f.splice(1, 1), a.jPlayer.prototype.destroyRemoved(), a.each(this.instances, function() {
d.element !== this && (!e || c.call(this.data("jPlayer"), d)) && this.jPlayer.apply(this, f)
}))
},
pauseOthers: function(a) {
this.tellOthers("pause", function() {
return this.status.srcSet
}, a)
},
stop: function() {
this.status.srcSet ? this.html.active ? this._html_pause(0) : this.aurora.active ? this._aurora_pause(0) : this.flash.active && this._flash_pause(0) : this._urlNotSetError("stop")
},
playHead: function(a) {
a = this._limitValue(a, 0, 100), this.status.srcSet ? this.html.active ? this._html_playHead(a) : this.aurora.active ? this._aurora_playHead(a) : this.flash.active && this._flash_playHead(a) : this._urlNotSetError("playHead")
},
_muted: function(a) {
this.mutedWorker(a), this.options.globalVolume && this.tellOthers("mutedWorker", function() {
return this.options.globalVolume
}, a)
},
mutedWorker: function(b) {
this.options.muted = b, this.html.used && this._html_setProperty("muted", b), this.aurora.used && this._aurora_mute(b), this.flash.used && this._flash_mute(b), this.html.video.gate || this.html.audio.gate || (this._updateMute(b), this._updateVolume(this.options.volume), this._trigger(a.jPlayer.event.volumechange))
},
mute: function(a) {
var c = "object" == typeof a;
c && this.options.useStateClassSkin && this.options.muted ? this._muted(!1) : (a = a === b || !!a, this._muted(a))
},
unmute: function(a) {
a = a === b || !!a, this._muted(!a)
},
_updateMute: function(a) {
a === b && (a = this.options.muted), a ? this.addStateClass("muted") : this.removeStateClass("muted"), this.css.jq.mute.length && this.css.jq.unmute.length && (this.status.noVolume ? (this.css.jq.mute.hide(), this.css.jq.unmute.hide()) : a ? (this.css.jq.mute.hide(), this.css.jq.unmute.show()) : (this.css.jq.mute.show(), this.css.jq.unmute.hide()))
},
volume: function(a) {
this.volumeWorker(a), this.options.globalVolume && this.tellOthers("volumeWorker", function() {
return this.options.globalVolume
}, a)
},
volumeWorker: function(b) {
b = this._limitValue(b, 0, 1), this.options.volume = b, this.html.used && this._html_setProperty("volume", b), this.aurora.used && this._aurora_volume(b), this.flash.used && this._flash_volume(b), this.html.video.gate || this.html.audio.gate || (this._updateVolume(b), this._trigger(a.jPlayer.event.volumechange))
},
volumeBar: function(b) {
if (this.css.jq.volumeBar.length) {
var c = a(b.currentTarget),
d = c.offset(),
e = b.pageX - d.left,
f = c.width(),
g = c.height() - b.pageY + d.top,
h = c.height();
this.volume(this.options.verticalVolume ? g / h : e / f)
}
this.options.muted && this._muted(!1)
},
_updateVolume: function(a) {
a === b && (a = this.options.volume), a = this.options.muted ? 0 : a, this.status.noVolume ? (this.addStateClass("noVolume"), this.css.jq.volumeBar.length && this.css.jq.volumeBar.hide(), this.css.jq.volumeBarValue.length && this.css.jq.volumeBarValue.hide(), this.css.jq.volumeMax.length && this.css.jq.volumeMax.hide()) : (this.removeStateClass("noVolume"), this.css.jq.volumeBar.length && this.css.jq.volumeBar.show(), this.css.jq.volumeBarValue.length && (this.css.jq.volumeBarValue.show(), this.css.jq.volumeBarValue[this.options.verticalVolume ? "height" : "width"](100 * a + "%")), this.css.jq.volumeMax.length && this.css.jq.volumeMax.show())
},
volumeMax: function() {
this.volume(1), this.options.muted && this._muted(!1)
},
_cssSelectorAncestor: function(b) {
var c = this;
this.options.cssSelectorAncestor = b, this._removeUiClass(), this.ancestorJq = b ? a(b) : [], b && 1 !== this.ancestorJq.length && this._warning({
type: a.jPlayer.warning.CSS_SELECTOR_COUNT,
context: b,
message: a.jPlayer.warningMsg.CSS_SELECTOR_COUNT + this.ancestorJq.length + " found for cssSelectorAncestor.",
hint: a.jPlayer.warningHint.CSS_SELECTOR_COUNT
}), this._addUiClass(), a.each(this.options.cssSelector, function(a, b) {
c._cssSelector(a, b)
}), this._updateInterface(), this._updateButtons(), this._updateAutohide(), this._updateVolume(), this._updateMute()
},
_cssSelector: function(b, c) {
var d = this;
if ("string" == typeof c)
if (a.jPlayer.prototype.options.cssSelector[b]) {
if (this.css.jq[b] && this.css.jq[b].length && this.css.jq[b].unbind(".jPlayer"), this.options.cssSelector[b] = c, this.css.cs[b] = this.options.cssSelectorAncestor + " " + c, this.css.jq[b] = c ? a(this.css.cs[b]) : [], this.css.jq[b].length && this[b]) {
var e = function(c) {
c.preventDefault(), d[b](c), d.options.autoBlur ? a(this).blur() : a(this).focus()
};
this.css.jq[b].bind("click.jPlayer", e)
}
c && 1 !== this.css.jq[b].length && this._warning({
type: a.jPlayer.warning.CSS_SELECTOR_COUNT,
context: this.css.cs[b],
message: a.jPlayer.warningMsg.CSS_SELECTOR_COUNT + this.css.jq[b].length + " found for " + b + " method.",
hint: a.jPlayer.warningHint.CSS_SELECTOR_COUNT
})
} else this._warning({
type: a.jPlayer.warning.CSS_SELECTOR_METHOD,
context: b,
message: a.jPlayer.warningMsg.CSS_SELECTOR_METHOD,
hint: a.jPlayer.warningHint.CSS_SELECTOR_METHOD
});
else this._warning({
type: a.jPlayer.warning.CSS_SELECTOR_STRING,
context: c,
message: a.jPlayer.warningMsg.CSS_SELECTOR_STRING,
hint: a.jPlayer.warningHint.CSS_SELECTOR_STRING
})
},
duration: function(a) {
this.options.toggleDuration && (this.options.captureDuration && a.stopPropagation(), this._setOption("remainingDuration", !this.options.remainingDuration))
},
seekBar: function(b) {
if (this.css.jq.seekBar.length) {
var c = a(b.currentTarget),
d = c.offset(),
e = b.pageX - d.left,
f = c.width(),
g = 100 * e / f;
this.playHead(g)
}
},
playbackRate: function(a) {
this._setOption("playbackRate", a)
},
playbackRateBar: function(b) {
if (this.css.jq.playbackRateBar.length) {
var c, d, e = a(b.currentTarget),
f = e.offset(),
g = b.pageX - f.left,
h = e.width(),
i = e.height() - b.pageY + f.top,
j = e.height();
c = this.options.verticalPlaybackRate ? i / j : g / h, d = c * (this.options.maxPlaybackRate - this.options.minPlaybackRate) + this.options.minPlaybackRate, this.playbackRate(d)
}
},
_updatePlaybackRate: function() {
var a = this.options.playbackRate,
b = (a - this.options.minPlaybackRate) / (this.options.maxPlaybackRate - this.options.minPlaybackRate);
this.status.playbackRateEnabled ? (this.css.jq.playbackRateBar.length && this.css.jq.playbackRateBar.show(), this.css.jq.playbackRateBarValue.length && (this.css.jq.playbackRateBarValue.show(), this.css.jq.playbackRateBarValue[this.options.verticalPlaybackRate ? "height" : "width"](100 * b + "%"))) : (this.css.jq.playbackRateBar.length && this.css.jq.playbackRateBar.hide(), this.css.jq.playbackRateBarValue.length && this.css.jq.playbackRateBarValue.hide())
},
repeat: function(a) {
var b = "object" == typeof a;
this._loop(!(b && this.options.useStateClassSkin && this.options.loop))
},
repeatOff: function() {
this._loop(!1)
},
_loop: function(b) {
this.options.loop !== b && (this.options.loop = b, this._updateButtons(), this._trigger(a.jPlayer.event.repeat))
},
option: function(c, d) {
var e = c;
if (0 === arguments.length) return a.extend(!0, {}, this.options);
if ("string" == typeof c) {
var f = c.split(".");
if (d === b) {
for (var g = a.extend(!0, {}, this.options), h = 0; h < f.length; h++) {
if (g[f[h]] === b) return this._warning({
type: a.jPlayer.warning.OPTION_KEY,
context: c,
message: a.jPlayer.warningMsg.OPTION_KEY,
hint: a.jPlayer.warningHint.OPTION_KEY
}), b;
g = g[f[h]]
}
return g
}
e = {};
for (var i = e, j = 0; j < f.length; j++) j < f.length - 1 ? (i[f[j]] = {}, i = i[f[j]]) : i[f[j]] = d
}
return this._setOptions(e), this
},
_setOptions: function(b) {
var c = this;
return a.each(b, function(a, b) {
c._setOption(a, b)
}), this
},
_setOption: function(b, c) {
var d = this;
switch (b) {
case "volume":
this.volume(c);
break;
case "muted":
this._muted(c);
break;
case "globalVolume":
this.options[b] = c;
break;
case "cssSelectorAncestor":
this._cssSelectorAncestor(c);
break;
case "cssSelector":
a.each(c, function(a, b) {
d._cssSelector(a, b)
});
break;
case "playbackRate":
this.options[b] = c = this._limitValue(c, this.options.minPlaybackRate, this.options.maxPlaybackRate), this.html.used && this._html_setProperty("playbackRate", c), this._updatePlaybackRate();
break;
case "defaultPlaybackRate":
this.options[b] = c = this._limitValue(c, this.options.minPlaybackRate, this.options.maxPlaybackRate), this.html.used && this._html_setProperty("defaultPlaybackRate", c), this._updatePlaybackRate();
break;
case "minPlaybackRate":
this.options[b] = c = this._limitValue(c, .1, this.options.maxPlaybackRate - .1), this._updatePlaybackRate();
break;
case "maxPlaybackRate":
this.options[b] = c = this._limitValue(c, this.options.minPlaybackRate + .1, 16), this._updatePlaybackRate();
break;
case "fullScreen":
if (this.options[b] !== c) {
var e = a.jPlayer.nativeFeatures.fullscreen.used.webkitVideo;
(!e || e && !this.status.waitForPlay) && (e || (this.options[b] = c), c ? this._requestFullscreen() : this._exitFullscreen(), e || this._setOption("fullWindow", c))
}
break;
case "fullWindow":
this.options[b] !== c && (this._removeUiClass(), this.options[b] = c, this._refreshSize());
break;
case "size":
this.options.fullWindow || this.options[b].cssClass === c.cssClass || this._removeUiClass(), this.options[b] = a.extend({}, this.options[b], c), this._refreshSize();
break;
case "sizeFull":
this.options.fullWindow && this.options[b].cssClass !== c.cssClass && this._removeUiClass(), this.options[b] = a.extend({}, this.options[b], c), this._refreshSize();
break;
case "autohide":
this.options[b] = a.extend({}, this.options[b], c), this._updateAutohide();
break;
case "loop":
this._loop(c);
break;
case "remainingDuration":
this.options[b] = c, this._updateInterface();
break;
case "toggleDuration":
this.options[b] = c;
break;
case "nativeVideoControls":
this.options[b] = a.extend({}, this.options[b], c), this.status.nativeVideoControls = this._uaBlocklist(this.options.nativeVideoControls), this._restrictNativeVideoControls(), this._updateNativeVideoControls();
break;
case "noFullWindow":
this.options[b] = a.extend({}, this.options[b], c), this.status.nativeVideoControls = this._uaBlocklist(this.options.nativeVideoControls), this.status.noFullWindow = this._uaBlocklist(this.options.noFullWindow), this._restrictNativeVideoControls(), this._updateButtons();
break;
case "noVolume":
this.options[b] = a.extend({}, this.options[b], c), this.status.noVolume = this._uaBlocklist(this.options.noVolume), this._updateVolume(), this._updateMute();
break;
case "emulateHtml":
this.options[b] !== c && (this.options[b] = c, c ? this._emulateHtmlBridge() : this._destroyHtmlBridge());
break;
case "timeFormat":
this.options[b] = a.extend({}, this.options[b], c);
break;
case "keyEnabled":
this.options[b] = c, c || this !== a.jPlayer.focus || (a.jPlayer.focus = null);
break;
case "keyBindings":
this.options[b] = a.extend(!0, {}, this.options[b], c);
break;
case "audioFullScreen":
this.options[b] = c;
break;
case "autoBlur":
this.options[b] = c
}
return this
},
_refreshSize: function() {
this._setSize(), this._addUiClass(), this._updateSize(), this._updateButtons(), this._updateAutohide(), this._trigger(a.jPlayer.event.resize)
},
_setSize: function() {
this.options.fullWindow ? (this.status.width = this.options.sizeFull.width, this.status.height = this.options.sizeFull.height, this.status.cssClass = this.options.sizeFull.cssClass) : (this.status.width = this.options.size.width, this.status.height = this.options.size.height, this.status.cssClass = this.options.size.cssClass), this.element.css({
width: this.status.width,
height: this.status.height
})
},
_addUiClass: function() {
this.ancestorJq.length && this.ancestorJq.addClass(this.status.cssClass)
},
_removeUiClass: function() {
this.ancestorJq.length && this.ancestorJq.removeClass(this.status.cssClass)
},
_updateSize: function() {
this.internal.poster.jq.css({
width: this.status.width,
height: this.status.height
}), !this.status.waitForPlay && this.html.active && this.status.video || this.html.video.available && this.html.used && this.status.nativeVideoControls ? this.internal.video.jq.css({
width: this.status.width,
height: this.status.height
}) : !this.status.waitForPlay && this.flash.active && this.status.video && this.internal.flash.jq.css({
width: this.status.width,
height: this.status.height
})
},
_updateAutohide: function() {
var a = this,
b = "mousemove.jPlayer",
c = ".jPlayerAutohide",
d = b + c,
e = function(b) {
var c, d, e = !1;
"undefined" != typeof a.internal.mouse ? (c = a.internal.mouse.x - b.pageX, d = a.internal.mouse.y - b.pageY, e = Math.floor(c) > 0 || Math.floor(d) > 0) : e = !0, a.internal.mouse = {
x: b.pageX,
y: b.pageY
}, e && a.css.jq.gui.fadeIn(a.options.autohide.fadeIn, function() {
clearTimeout(a.internal.autohideId), a.internal.autohideId = setTimeout(function() {
a.css.jq.gui.fadeOut(a.options.autohide.fadeOut)
}, a.options.autohide.hold)
})
};
this.css.jq.gui.length && (this.css.jq.gui.stop(!0, !0), clearTimeout(this.internal.autohideId), delete this.internal.mouse, this.element.unbind(c), this.css.jq.gui.unbind(c), this.status.nativeVideoControls ? this.css.jq.gui.hide() : this.options.fullWindow && this.options.autohide.full || !this.options.fullWindow && this.options.autohide.restored ? (this.element.bind(d, e), this.css.jq.gui.bind(d, e), this.css.jq.gui.hide()) : this.css.jq.gui.show())
},
fullScreen: function(a) {
var b = "object" == typeof a;
b && this.options.useStateClassSkin && this.options.fullScreen ? this._setOption("fullScreen", !1) : this._setOption("fullScreen", !0)
},
restoreScreen: function() {
this._setOption("fullScreen", !1)
},
_fullscreenAddEventListeners: function() {
var b = this,
c = a.jPlayer.nativeFeatures.fullscreen;
c.api.fullscreenEnabled && c.event.fullscreenchange && ("function" != typeof this.internal.fullscreenchangeHandler && (this.internal.fullscreenchangeHandler = function() {
b._fullscreenchange()
}), document.addEventListener(c.event.fullscreenchange, this.internal.fullscreenchangeHandler, !1))
},
_fullscreenRemoveEventListeners: function() {
var b = a.jPlayer.nativeFeatures.fullscreen;
this.internal.fullscreenchangeHandler && document.removeEventListener(b.event.fullscreenchange, this.internal.fullscreenchangeHandler, !1)
},
_fullscreenchange: function() {
this.options.fullScreen && !a.jPlayer.nativeFeatures.fullscreen.api.fullscreenElement() && this._setOption("fullScreen", !1)
},
_requestFullscreen: function() {
var b = this.ancestorJq.length ? this.ancestorJq[0] : this.element[0],
c = a.jPlayer.nativeFeatures.fullscreen;
c.used.webkitVideo && (b = this.htmlElement.video), c.api.fullscreenEnabled && c.api.requestFullscreen(b)
},
_exitFullscreen: function() {
var b, c = a.jPlayer.nativeFeatures.fullscreen;
c.used.webkitVideo && (b = this.htmlElement.video), c.api.fullscreenEnabled && c.api.exitFullscreen(b)
},
_html_initMedia: function(b) {
var c = a(this.htmlElement.media).empty();
a.each(b.track || [], function(a, b) {
var d = document.createElement("track");
d.setAttribute("kind", b.kind ? b.kind : ""), d.setAttribute("src", b.src ? b.src : ""), d.setAttribute("srclang", b.srclang ? b.srclang : ""), d.setAttribute("label", b.label ? b.label : ""), b.def && d.setAttribute("default", b.def), c.append(d)
}), this.htmlElement.media.src = this.status.src, "none" !== this.options.preload && this._html_load(), this._trigger(a.jPlayer.event.timeupdate)
},
_html_setFormat: function(b) {
var c = this;
a.each(this.formats, function(a, d) {
return c.html.support[d] && b[d] ? (c.status.src = b[d], c.status.format[d] = !0, c.status.formatType = d, !1) : void 0
})
},
_html_setAudio: function(a) {
this._html_setFormat(a), this.htmlElement.media = this.htmlElement.audio, this._html_initMedia(a)
},
_html_setVideo: function(a) {
this._html_setFormat(a), this.status.nativeVideoControls && (this.htmlElement.video.poster = this._validString(a.poster) ? a.poster : ""), this.htmlElement.media = this.htmlElement.video, this._html_initMedia(a)
},
_html_resetMedia: function() {
this.htmlElement.media && (this.htmlElement.media.id !== this.internal.video.id || this.status.nativeVideoControls || this.internal.video.jq.css({
width: "0px",
height: "0px"
}), this.htmlElement.media.pause())
},
_html_clearMedia: function() {
this.htmlElement.media && (this.htmlElement.media.src = "about:blank", this.htmlElement.media.load())
},
_html_load: function() {
this.status.waitForLoad && (this.status.waitForLoad = !1, this.htmlElement.media.load()), clearTimeout(this.internal.htmlDlyCmdId)
},
_html_play: function(a) {
var b = this,
c = this.htmlElement.media;
if (this.androidFix.pause = !1, this._html_load(), this.androidFix.setMedia) this.androidFix.play = !0, this.androidFix.time = a;
else if (isNaN(a)) c.play();
else {
this.internal.cmdsIgnored && c.play();
try {
if (c.seekable && !("object" == typeof c.seekable && c.seekable.length > 0)) throw 1;
c.currentTime = a, c.play()
} catch (c) {
return void(this.internal.htmlDlyCmdId = setTimeout(function() {
b.play(a)
}, 250))
}
}
this._html_checkWaitForPlay()
},
_html_pause: function(a) {
var b = this,
c = this.htmlElement.media;
if (this.androidFix.play = !1, a > 0 ? this._html_load() : clearTimeout(this.internal.htmlDlyCmdId), c.pause(), this.androidFix.setMedia) this.androidFix.pause = !0, this.androidFix.time = a;
else if (!isNaN(a)) try {
if (c.seekable && !("object" == typeof c.seekable && c.seekable.length > 0)) throw 1;
c.currentTime = a
} catch (c) {
return void(this.internal.htmlDlyCmdId = setTimeout(function() {
b.pause(a)
}, 250))
}
a > 0 && this._html_checkWaitForPlay()
},
_html_playHead: function(a) {
var b = this,
c = this.htmlElement.media;
this._html_load();
try {
if ("object" == typeof c.seekable && c.seekable.length > 0) c.currentTime = a * c.seekable.end(c.seekable.length - 1) / 100;
else {
if (!(c.duration > 0) || isNaN(c.duration)) throw "e";
c.currentTime = a * c.duration / 100
}
} catch (c) {
return void(this.internal.htmlDlyCmdId = setTimeout(function() {
b.playHead(a)
}, 250))
}
this.status.waitForLoad || this._html_checkWaitForPlay()
},
_html_checkWaitForPlay: function() {
this.status.waitForPlay && (this.status.waitForPlay = !1, this.css.jq.videoPlay.length && this.css.jq.videoPlay.hide(), this.status.video && (this.internal.poster.jq.hide(), this.internal.video.jq.css({
width: this.status.width,
height: this.status.height
})))
},
_html_setProperty: function(a, b) {
this.html.audio.available && (this.htmlElement.audio[a] = b), this.html.video.available && (this.htmlElement.video[a] = b)
},
_aurora_setAudio: function(b) {
var c = this;
a.each(this.formats, function(a, d) {
return c.aurora.support[d] && b[d] ? (c.status.src = b[d], c.status.format[d] = !0, c.status.formatType = d, !1) : void 0
}), this.aurora.player = new AV.Player.fromURL(this.status.src), this._addAuroraEventListeners(this.aurora.player, this.aurora), "auto" === this.options.preload && (this._aurora_load(), this.status.waitForLoad = !1)
},
_aurora_resetMedia: function() {
this.aurora.player && this.aurora.player.stop()
},
_aurora_clearMedia: function() {},
_aurora_load: function() {
this.status.waitForLoad && (this.status.waitForLoad = !1, this.aurora.player.preload())
},
_aurora_play: function(b) {
this.status.waitForLoad || isNaN(b) || this.aurora.player.seek(b), this.aurora.player.playing || this.aurora.player.play(), this.status.waitForLoad = !1, this._aurora_checkWaitForPlay(), this._updateButtons(!0), this._trigger(a.jPlayer.event.play)
},
_aurora_pause: function(b) {
isNaN(b) || this.aurora.player.seek(1e3 * b), this.aurora.player.pause(), b > 0 && this._aurora_checkWaitForPlay(), this._updateButtons(!1), this._trigger(a.jPlayer.event.pause)
},
_aurora_playHead: function(a) {
this.aurora.player.duration > 0 && this.aurora.player.seek(a * this.aurora.player.duration / 100), this.status.waitForLoad || this._aurora_checkWaitForPlay()
},
_aurora_checkWaitForPlay: function() {
this.status.waitForPlay && (this.status.waitForPlay = !1)
},
_aurora_volume: function(a) {
this.aurora.player.volume = 100 * a
},
_aurora_mute: function(a) {
a ? (this.aurora.properties.lastvolume = this.aurora.player.volume, this.aurora.player.volume = 0) : this.aurora.player.volume = this.aurora.properties.lastvolume, this.aurora.properties.muted = a
},
_flash_setAudio: function(b) {
var c = this;
try {
a.each(this.formats, function(a, d) {
if (c.flash.support[d] && b[d]) {
switch (d) {
case "m4a":
case "fla":
c._getMovie().fl_setAudio_m4a(b[d]);
break;
case "mp3":
c._getMovie().fl_setAudio_mp3(b[d]);
break;
case "rtmpa":
c._getMovie().fl_setAudio_rtmp(b[d])
}
return c.status.src = b[d], c.status.format[d] = !0, c.status.formatType = d, !1
}
}), "auto" === this.options.preload && (this._flash_load(), this.status.waitForLoad = !1)
} catch (a) {
this._flashError(a)
}
},
_flash_setVideo: function(b) {
var c = this;
try {
a.each(this.formats, function(a, d) {
if (c.flash.support[d] && b[d]) {
switch (d) {
case "m4v":
case "flv":
c._getMovie().fl_setVideo_m4v(b[d]);
break;
case "rtmpv":
c._getMovie().fl_setVideo_rtmp(b[d])
}
return c.status.src = b[d], c.status.format[d] = !0, c.status.formatType = d, !1
}
}), "auto" === this.options.preload && (this._flash_load(), this.status.waitForLoad = !1)
} catch (a) {
this._flashError(a)
}
},
_flash_resetMedia: function() {
this.internal.flash.jq.css({
width: "0px",
height: "0px"
}), this._flash_pause(NaN)
},
_flash_clearMedia: function() {
try {
this._getMovie().fl_clearMedia()
} catch (a) {
this._flashError(a)
}
},
_flash_load: function() {
try {
this._getMovie().fl_load()
} catch (a) {
this._flashError(a)
}
this.status.waitForLoad = !1
},
_flash_play: function(a) {
try {
this._getMovie().fl_play(a)
} catch (a) {
this._flashError(a)
}
this.status.waitForLoad = !1, this._flash_checkWaitForPlay()
},
_flash_pause: function(a) {
try {
this._getMovie().fl_pause(a)
} catch (a) {
this._flashError(a)
}
a > 0 && (this.status.waitForLoad = !1, this._flash_checkWaitForPlay())
},
_flash_playHead: function(a) {
try {
this._getMovie().fl_play_head(a)
} catch (a) {
this._flashError(a)
}
this.status.waitForLoad || this._flash_checkWaitForPlay()
},
_flash_checkWaitForPlay: function() {
this.status.waitForPlay && (this.status.waitForPlay = !1, this.css.jq.videoPlay.length && this.css.jq.videoPlay.hide(), this.status.video && (this.internal.poster.jq.hide(), this.internal.flash.jq.css({
width: this.status.width,
height: this.status.height
})))
},
_flash_volume: function(a) {
try {
this._getMovie().fl_volume(a)
} catch (a) {
this._flashError(a)
}
},
_flash_mute: function(a) {
try {
this._getMovie().fl_mute(a)
} catch (a) {
this._flashError(a)
}
},
_getMovie: function() {
return document[this.internal.flash.id]
},
_getFlashPluginVersion: function() {
var a, b = 0;
if (window.ActiveXObject) try {
if (a = new ActiveXObject("ShockwaveFlash.ShockwaveFlash")) {
var c = a.GetVariable("$version");
c && (c = c.split(" ")[1].split(","), b = parseInt(c[0], 10) + "." + parseInt(c[1], 10))
}
} catch (a) {} else navigator.plugins && navigator.mimeTypes.length > 0 && (a = navigator.plugins["Shockwave Flash"], a && (b = navigator.plugins["Shockwave Flash"].description.replace(/.*\s(\d+\.\d+).*/, "$1")));
return 1 * b
},
_checkForFlash: function(a) {
var b = !1;
return this._getFlashPluginVersion() >= a && (b = !0), b
},
_validString: function(a) {
return a && "string" == typeof a
},
_limitValue: function(a, b, c) {
return b > a ? b : a > c ? c : a
},
_urlNotSetError: function(b) {
this._error({
type: a.jPlayer.error.URL_NOT_SET,
context: b,
message: a.jPlayer.errorMsg.URL_NOT_SET,
hint: a.jPlayer.errorHint.URL_NOT_SET
})
},
_flashError: function(b) {
var c;
c = this.internal.ready ? "FLASH_DISABLED" : "FLASH", this._error({
type: a.jPlayer.error[c],
context: this.internal.flash.swf,
message: a.jPlayer.errorMsg[c] + b.message,
hint: a.jPlayer.errorHint[c]
}), this.internal.flash.jq.css({
width: "1px",
height: "1px"
})
},
_error: function(b) {
this._trigger(a.jPlayer.event.error, b), this.options.errorAlerts && this._alert("Error!" + (b.message ? "\n" + b.message : "") + (b.hint ? "\n" + b.hint : "") + "\nContext: " + b.context)
},
_warning: function(c) {
this._trigger(a.jPlayer.event.warning, b, c), this.options.warningAlerts && this._alert("Warning!" + (c.message ? "\n" + c.message : "") + (c.hint ? "\n" + c.hint : "") + "\nContext: " + c.context)
},
_alert: function(a) {
var b = "jPlayer " + this.version.script + " : id='" + this.internal.self.id + "' : " + a;
this.options.consoleAlerts ? window.console && window.console.log && window.console.log(b) : alert(b)
},
_emulateHtmlBridge: function() {
var b = this;
a.each(a.jPlayer.emulateMethods.split(/\s+/g), function(a, c) {
b.internal.domNode[c] = function(a) {
b[c](a)
}
}), a.each(a.jPlayer.event, function(c, d) {
var e = !0;
a.each(a.jPlayer.reservedEvent.split(/\s+/g), function(a, b) {
return b === c ? (e = !1, !1) : void 0
}), e && b.element.bind(d + ".jPlayer.jPlayerHtml", function() {
b._emulateHtmlUpdate();
var a = document.createEvent("Event");
a.initEvent(c, !1, !0), b.internal.domNode.dispatchEvent(a)
})
})
},
_emulateHtmlUpdate: function() {
var b = this;
a.each(a.jPlayer.emulateStatus.split(/\s+/g), function(a, c) {
b.internal.domNode[c] = b.status[c]
}), a.each(a.jPlayer.emulateOptions.split(/\s+/g), function(a, c) {
b.internal.domNode[c] = b.options[c]
})
},
_destroyHtmlBridge: function() {
var b = this;
this.element.unbind(".jPlayerHtml");
var c = a.jPlayer.emulateMethods + " " + a.jPlayer.emulateStatus + " " + a.jPlayer.emulateOptions;
a.each(c.split(/\s+/g), function(a, c) {
delete b.internal.domNode[c]
})
}
}, a.jPlayer.error = {
FLASH: "e_flash",
FLASH_DISABLED: "e_flash_disabled",
NO_SOLUTION: "e_no_solution",
NO_SUPPORT: "e_no_support",
URL: "e_url",
URL_NOT_SET: "e_url_not_set",
VERSION: "e_version"
}, a.jPlayer.errorMsg = {
FLASH: "jPlayer's Flash fallback is not configured correctly, or a command was issued before the jPlayer Ready event. Details: ",
FLASH_DISABLED: "jPlayer's Flash fallback has been disabled by the browser due to the CSS rules you have used. Details: ",
NO_SOLUTION: "No solution can be found by jPlayer in this browser. Neither HTML nor Flash can be used.",
NO_SUPPORT: "It is not possible to play any media format provided in setMedia() on this browser using your current options.",
URL: "Media URL could not be loaded.",
URL_NOT_SET: "Attempt to issue media playback commands, while no media url is set.",
VERSION: "jPlayer " + a.jPlayer.prototype.version.script + " needs Jplayer.swf version " + a.jPlayer.prototype.version.needFlash + " but found "
}, a.jPlayer.errorHint = {
FLASH: "Check your swfPath option and that Jplayer.swf is there.",
FLASH_DISABLED: "Check that you have not display:none; the jPlayer entity or any ancestor.",
NO_SOLUTION: "Review the jPlayer options: support and supplied.",
NO_SUPPORT: "Video or audio formats defined in the supplied option are missing.",
URL: "Check media URL is valid.",
URL_NOT_SET: "Use setMedia() to set the media URL.",
VERSION: "Update jPlayer files."
}, a.jPlayer.warning = {
CSS_SELECTOR_COUNT: "e_css_selector_count",
CSS_SELECTOR_METHOD: "e_css_selector_method",
CSS_SELECTOR_STRING: "e_css_selector_string",
OPTION_KEY: "e_option_key"
}, a.jPlayer.warningMsg = {
CSS_SELECTOR_COUNT: "The number of css selectors found did not equal one: ",
CSS_SELECTOR_METHOD: "The methodName given in jPlayer('cssSelector') is not a valid jPlayer method.",
CSS_SELECTOR_STRING: "The methodCssSelector given in jPlayer('cssSelector') is not a String or is empty.",
OPTION_KEY: "The option requested in jPlayer('option') is undefined."
}, a.jPlayer.warningHint = {
CSS_SELECTOR_COUNT: "Check your css selector and the ancestor.",
CSS_SELECTOR_METHOD: "Check your method name.",
CSS_SELECTOR_STRING: "Check your css selector is a string.",
OPTION_KEY: "Check your option name."
}
}),
function(a) {
"function" == typeof define && define.amd ? define(["jquery"], a) : "object" == typeof module && module.exports ? module.exports = a(require("jquery")) : a(jQuery)
}(function(a) {
var b = Array.prototype.slice,
c = Array.prototype.splice,
d = {
topSpacing: 0,
bottomSpacing: 0,
className: "is-sticky",
wrapperClassName: "sticky-wrapper",
center: !1,
getWidthFrom: "",
widthFromWrapper: !0,
responsiveWidth: !1,
zIndex: "auto"
},
e = a(window),
f = a(document),
g = [],
h = e.height(),
i = function() {
for (var b = e.scrollTop(), c = f.height(), d = c - h, i = b > d ? d - b : 0, j = 0, k = g.length; j < k; j++) {
var l = g[j],
m = l.stickyWrapper.offset().top,
n = m - l.topSpacing - i;
if (l.stickyWrapper.css("height", l.stickyElement.outerHeight()), b <= n) null !== l.currentTop && (l.stickyElement.css({
width: "",
position: "",
top: "",
"z-index": ""
}), l.stickyElement.parent().removeClass(l.className), l.stickyElement.trigger("sticky-end", [l]), l.currentTop = null);
else {
var o = c - l.stickyElement.outerHeight() - l.topSpacing - l.bottomSpacing - b - i;
if (o < 0 ? o += l.topSpacing : o = l.topSpacing, l.currentTop !== o) {
var p;
l.getWidthFrom ? p = a(l.getWidthFrom).width() || null : l.widthFromWrapper && (p = l.stickyWrapper.width()), null == p && (p = l.stickyElement.width()), l.stickyElement.css("width", p).css("position", "fixed").css("top", o).css("z-index", l.zIndex), l.stickyElement.parent().addClass(l.className), null === l.currentTop ? l.stickyElement.trigger("sticky-start", [l]) : l.stickyElement.trigger("sticky-update", [l]), l.currentTop === l.topSpacing && l.currentTop > o || null === l.currentTop && o < l.topSpacing ? l.stickyElement.trigger("sticky-bottom-reached", [l]) : null !== l.currentTop && o === l.topSpacing && l.currentTop < o && l.stickyElement.trigger("sticky-bottom-unreached", [l]), l.currentTop = o
}
var q = l.stickyWrapper.parent(),
r = l.stickyElement.offset().top + l.stickyElement.outerHeight() >= q.offset().top + q.outerHeight() && l.stickyElement.offset().top <= l.topSpacing;
r ? l.stickyElement.css("position", "absolute").css("top", "").css("bottom", 0).css("z-index", "") : l.stickyElement.css("position", "fixed").css("top", o).css("bottom", "").css("z-index", l.zIndex)
}
}
},
j = function() {
h = e.height();
for (var b = 0, c = g.length; b < c; b++) {
var d = g[b],
f = null;
d.getWidthFrom ? d.responsiveWidth && (f = a(d.getWidthFrom).width()) : d.widthFromWrapper && (f = d.stickyWrapper.width()), null != f && d.stickyElement.css("width", f)
}
},
k = {
init: function(b) {
return this.each(function() {
var c = a.extend({}, d, b),
e = a(this),
f = e.attr("id"),
h = f ? f + "-" + d.wrapperClassName : d.wrapperClassName,
i = a("<div></div>").attr("id", h).addClass(c.wrapperClassName);
e.wrapAll(function() {
if (0 == a(this).parent("#" + h).length) return i
});
var j = e.parent();
c.center && j.css({
width: e.outerWidth(),
marginLeft: "auto",
marginRight: "auto"
}), "right" === e.css("float") && e.css({
float: "none"
}).parent().css({
float: "right"
}), c.stickyElement = e, c.stickyWrapper = j, c.currentTop = null, g.push(c), k.setWrapperHeight(this), k.setupChangeListeners(this)
})
},
setWrapperHeight: function(b) {
var c = a(b),
d = c.parent();
d && d.css("height", c.outerHeight())
},
setupChangeListeners: function(a) {
if (window.MutationObserver) {
var b = new window.MutationObserver(function(b) {
(b[0].addedNodes.length || b[0].removedNodes.length) && k.setWrapperHeight(a)
});
b.observe(a, {
subtree: !0,
childList: !0
})
} else window.addEventListener ? (a.addEventListener("DOMNodeInserted", function() {
k.setWrapperHeight(a)
}, !1), a.addEventListener("DOMNodeRemoved", function() {
k.setWrapperHeight(a)
}, !1)) : window.attachEvent && (a.attachEvent("onDOMNodeInserted", function() {
k.setWrapperHeight(a)
}), a.attachEvent("onDOMNodeRemoved", function() {
k.setWrapperHeight(a)
}))
},
update: i,
unstick: function(b) {
return this.each(function() {
for (var b = this, d = a(b), e = -1, f = g.length; f-- > 0;) g[f].stickyElement.get(0) === b && (c.call(g, f, 1), e = f);
e !== -1 && (d.unwrap(), d.css({
width: "",
position: "",
top: "",
float: "",
"z-index": ""
}))
})
}
};
window.addEventListener ? (window.addEventListener("scroll", i, !1), window.addEventListener("resize", j, !1)) : window.attachEvent && (window.attachEvent("onscroll", i), window.attachEvent("onresize", j)), a.fn.sticky = function(c) {
return k[c] ? k[c].apply(this, b.call(arguments, 1)) : "object" != typeof c && c ? void a.error("Method " + c + " does not exist on jQuery.sticky") : k.init.apply(this, arguments)
}, a.fn.unstick = function(c) {
return k[c] ? k[c].apply(this, b.call(arguments, 1)) : "object" != typeof c && c ? void a.error("Method " + c + " does not exist on jQuery.sticky") : k.unstick.apply(this, arguments)
}, a(function() {
setTimeout(i, 0)
})
}), jQuery.easing.jswing = jQuery.easing.swing, jQuery.extend(jQuery.easing, {
def: "easeOutQuad",
swing: function(a, b, c, d, e) {
return jQuery.easing[jQuery.easing.def](a, b, c, d, e)
},
easeInQuad: function(a, b, c, d, e) {
return d * (b /= e) * b + c
},
easeOutQuad: function(a, b, c, d, e) {
return -d * (b /= e) * (b - 2) + c
},
easeInOutQuad: function(a, b, c, d, e) {
return (b /= e / 2) < 1 ? d / 2 * b * b + c : -d / 2 * (--b * (b - 2) - 1) + c
},
easeInCubic: function(a, b, c, d, e) {
return d * (b /= e) * b * b + c
},
easeOutCubic: function(a, b, c, d, e) {
return d * ((b = b / e - 1) * b * b + 1) + c
},
easeInOutCubic: function(a, b, c, d, e) {
return (b /= e / 2) < 1 ? d / 2 * b * b * b + c : d / 2 * ((b -= 2) * b * b + 2) + c
},
easeInQuart: function(a, b, c, d, e) {
return d * (b /= e) * b * b * b + c
},
easeOutQuart: function(a, b, c, d, e) {
return -d * ((b = b / e - 1) * b * b * b - 1) + c
},
easeInOutQuart: function(a, b, c, d, e) {
return (b /= e / 2) < 1 ? d / 2 * b * b * b * b + c : -d / 2 * ((b -= 2) * b * b * b - 2) + c
},
easeInQuint: function(a, b, c, d, e) {
return d * (b /= e) * b * b * b * b + c
},
easeOutQuint: function(a, b, c, d, e) {
return d * ((b = b / e - 1) * b * b * b * b + 1) + c
},
easeInOutQuint: function(a, b, c, d, e) {
return (b /= e / 2) < 1 ? d / 2 * b * b * b * b * b + c : d / 2 * ((b -= 2) * b * b * b * b + 2) + c
},
easeInSine: function(a, b, c, d, e) {
return -d * Math.cos(b / e * (Math.PI / 2)) + d + c
},
easeOutSine: function(a, b, c, d, e) {
return d * Math.sin(b / e * (Math.PI / 2)) + c
},
easeInOutSine: function(a, b, c, d, e) {
return -d / 2 * (Math.cos(Math.PI * b / e) - 1) + c
},
easeInExpo: function(a, b, c, d, e) {
return 0 == b ? c : d * Math.pow(2, 10 * (b / e - 1)) + c
},
easeOutExpo: function(a, b, c, d, e) {
return b == e ? c + d : d * (-Math.pow(2, -10 * b / e) + 1) + c
},
easeInOutExpo: function(a, b, c, d, e) {
return 0 == b ? c : b == e ? c + d : (b /= e / 2) < 1 ? d / 2 * Math.pow(2, 10 * (b - 1)) + c : d / 2 * (-Math.pow(2, -10 * --b) + 2) + c
},
easeInCirc: function(a, b, c, d, e) {
return -d * (Math.sqrt(1 - (b /= e) * b) - 1) + c
},
easeOutCirc: function(a, b, c, d, e) {
return d * Math.sqrt(1 - (b = b / e - 1) * b) + c
},
easeInOutCirc: function(a, b, c, d, e) {
return (b /= e / 2) < 1 ? -d / 2 * (Math.sqrt(1 - b * b) - 1) + c : d / 2 * (Math.sqrt(1 - (b -= 2) * b) + 1) + c
},
easeInElastic: function(a, b, c, d, e) {
var f = 1.70158,
g = 0,
h = d;
if (0 == b) return c;
if (1 == (b /= e)) return c + d;
if (g || (g = .3 * e), h < Math.abs(d)) {
h = d;
var f = g / 4
} else var f = g / (2 * Math.PI) * Math.asin(d / h);
return -(h * Math.pow(2, 10 * (b -= 1)) * Math.sin((b * e - f) * (2 * Math.PI) / g)) + c
},
easeOutElastic: function(a, b, c, d, e) {
var f = 1.70158,
g = 0,
h = d;
if (0 == b) return c;
if (1 == (b /= e)) return c + d;
if (g || (g = .3 * e), h < Math.abs(d)) {
h = d;
var f = g / 4
} else var f = g / (2 * Math.PI) * Math.asin(d / h);
return h * Math.pow(2, -10 * b) * Math.sin((b * e - f) * (2 * Math.PI) / g) + d + c
},
easeInOutElastic: function(a, b, c, d, e) {
var f = 1.70158,
g = 0,
h = d;
if (0 == b) return c;
if (2 == (b /= e / 2)) return c + d;
if (g || (g = e * (.3 * 1.5)), h < Math.abs(d)) {
h = d;
var f = g / 4
} else var f = g / (2 * Math.PI) * Math.asin(d / h);
return b < 1 ? -.5 * (h * Math.pow(2, 10 * (b -= 1)) * Math.sin((b * e - f) * (2 * Math.PI) / g)) + c : h * Math.pow(2, -10 * (b -= 1)) * Math.sin((b * e - f) * (2 * Math.PI) / g) * .5 + d + c
},
easeInBack: function(a, b, c, d, e, f) {
return void 0 == f && (f = 1.70158), d * (b /= e) * b * ((f + 1) * b - f) + c
},
easeOutBack: function(a, b, c, d, e, f) {
return void 0 == f && (f = 1.70158), d * ((b = b / e - 1) * b * ((f + 1) * b + f) + 1) + c
},
easeInOutBack: function(a, b, c, d, e, f) {
return void 0 == f && (f = 1.70158), (b /= e / 2) < 1 ? d / 2 * (b * b * (((f *= 1.525) + 1) * b - f)) + c : d / 2 * ((b -= 2) * b * (((f *= 1.525) + 1) * b + f) + 2) + c
},
easeInBounce: function(a, b, c, d, e) {
return d - jQuery.easing.easeOutBounce(a, e - b, 0, d, e) + c
},
easeOutBounce: function(a, b, c, d, e) {
return (b /= e) < 1 / 2.75 ? d * (7.5625 * b * b) + c : b < 2 / 2.75 ? d * (7.5625 * (b -= 1.5 / 2.75) * b + .75) + c : b < 2.5 / 2.75 ? d * (7.5625 * (b -= 2.25 / 2.75) * b + .9375) + c : d * (7.5625 * (b -= 2.625 / 2.75) * b + .984375) + c
},
easeInOutBounce: function(a, b, c, d, e) {
return b < e / 2 ? .5 * jQuery.easing.easeInBounce(a, 2 * b, 0, d, e) + c : .5 * jQuery.easing.easeOutBounce(a, 2 * b - e, 0, d, e) + .5 * d + c
}
}),
function() {
var a, b, c, d, e, f = function(a, b) {
return function() {
return a.apply(b, arguments)
}
},
g = [].indexOf || function(a) {
for (var b = 0, c = this.length; b < c; b++)
if (b in this && this[b] === a) return b;
return -1
};
b = function() {
function a() {}
return a.prototype.extend = function(a, b) {
var c, d;
for (c in b) d = b[c], null == a[c] && (a[c] = d);
return a
}, a.prototype.isMobile = function(a) {
return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(a)
}, a.prototype.createEvent = function(a, b, c, d) {
var e;
return null == b && (b = !1), null == c && (c = !1), null == d && (d = null), null != document.createEvent ? (e = document.createEvent("CustomEvent"), e.initCustomEvent(a, b, c, d)) : null != document.createEventObject ? (e = document.createEventObject(), e.eventType = a) : e.eventName = a, e
}, a.prototype.emitEvent = function(a, b) {
return null != a.dispatchEvent ? a.dispatchEvent(b) : b in (null != a) ? a[b]() : "on" + b in (null != a) ? a["on" + b]() : void 0
}, a.prototype.addEvent = function(a, b, c) {
return null != a.addEventListener ? a.addEventListener(b, c, !1) : null != a.attachEvent ? a.attachEvent("on" + b, c) : a[b] = c
}, a.prototype.removeEvent = function(a, b, c) {
return null != a.removeEventListener ? a.removeEventListener(b, c, !1) : null != a.detachEvent ? a.detachEvent("on" + b, c) : delete a[b]
}, a.prototype.innerHeight = function() {
return "innerHeight" in window ? window.innerHeight : document.documentElement.clientHeight
}, a
}(), c = this.WeakMap || this.MozWeakMap || (c = function() {
function a() {
this.keys = [], this.values = []
}
return a.prototype.get = function(a) {
var b, c, d, e, f;
for (f = this.keys, b = d = 0, e = f.length; d < e; b = ++d)
if (c = f[b], c === a) return this.values[b]
}, a.prototype.set = function(a, b) {
var c, d, e, f, g;
for (g = this.keys, c = e = 0, f = g.length; e < f; c = ++e)
if (d = g[c], d === a) return void(this.values[c] = b);
return this.keys.push(a), this.values.push(b)
}, a
}()), a = this.MutationObserver || this.WebkitMutationObserver || this.MozMutationObserver || (a = function() {
function a() {
"undefined" != typeof console && null !== console && console.warn("MutationObserver is not supported by your browser."), "undefined" != typeof console && null !== console && console.warn("WOW.js cannot detect dom mutations, please call .sync() after loading new content.")
}
return a.notSupported = !0, a.prototype.observe = function() {}, a
}()), d = this.getComputedStyle || function(a, b) {
return this.getPropertyValue = function(b) {
var c;
return "float" === b && (b = "styleFloat"), e.test(b) && b.replace(e, function(a, b) {
return b.toUpperCase()
}), (null != (c = a.currentStyle) ? c[b] : void 0) || null
}, this
}, e = /(\-([a-z]){1})/g, this.WOW = function() {
function e(a) {
null == a && (a = {}), this.scrollCallback = f(this.scrollCallback, this), this.scrollHandler = f(this.scrollHandler, this), this.resetAnimation = f(this.resetAnimation, this), this.start = f(this.start, this), this.scrolled = !0, this.config = this.util().extend(a, this.defaults), this.animationNameCache = new c, this.wowEvent = this.util().createEvent(this.config.boxClass)
}
return e.prototype.defaults = {
boxClass: "wow",
animateClass: "animated",
offset: 0,
mobile: !0,
live: !0,
callback: null
}, e.prototype.init = function() {
var a;
return this.element = window.document.documentElement, "interactive" === (a = document.readyState) || "complete" === a ? this.start() : this.util().addEvent(document, "DOMContentLoaded", this.start), this.finished = []
}, e.prototype.start = function() {
var b, c, d, e;
if (this.stopped = !1, this.boxes = function() {
var a, c, d, e;
for (d = this.element.querySelectorAll("." + this.config.boxClass), e = [], a = 0, c = d.length; a < c; a++) b = d[a], e.push(b);
return e
}.call(this), this.all = function() {
var a, c, d, e;
for (d = this.boxes, e = [], a = 0, c = d.length; a < c; a++) b = d[a], e.push(b);
return e
}.call(this), this.boxes.length)
if (this.disabled()) this.resetStyle();
else
for (e = this.boxes, c = 0, d = e.length; c < d; c++) b = e[c], this.applyStyle(b, !0);
if (this.disabled() || (this.util().addEvent(window, "scroll", this.scrollHandler), this.util().addEvent(window, "resize", this.scrollHandler), this.interval = setInterval(this.scrollCallback, 50)), this.config.live) return new a(function(a) {
return function(b) {
var c, d, e, f, g;
for (g = [], c = 0, d = b.length; c < d; c++) f = b[c], g.push(function() {
var a, b, c, d;
for (c = f.addedNodes || [], d = [], a = 0, b = c.length; a < b; a++) e = c[a], d.push(this.doSync(e));
return d
}.call(a));
return g
}
}(this)).observe(document.body, {
childList: !0,
subtree: !0
})
}, e.prototype.stop = function() {
if (this.stopped = !0, this.util().removeEvent(window, "scroll", this.scrollHandler), this.util().removeEvent(window, "resize", this.scrollHandler), null != this.interval) return clearInterval(this.interval)
}, e.prototype.sync = function(b) {
if (a.notSupported) return this.doSync(this.element)
}, e.prototype.doSync = function(a) {
var b, c, d, e, f;
if (null == a && (a = this.element), 1 === a.nodeType) {
for (a = a.parentNode || a, e = a.querySelectorAll("." + this.config.boxClass), f = [], c = 0, d = e.length; c < d; c++) b = e[c], g.call(this.all, b) < 0 ? (this.boxes.push(b), this.all.push(b), this.stopped || this.disabled() ? this.resetStyle() : this.applyStyle(b, !0), f.push(this.scrolled = !0)) : f.push(void 0);
return f
}
}, e.prototype.show = function(a) {
return this.applyStyle(a), a.className = a.className + " " + this.config.animateClass, null != this.config.callback && this.config.callback(a), this.util().emitEvent(a, this.wowEvent), this.util().addEvent(a, "animationend", this.resetAnimation), this.util().addEvent(a, "oanimationend", this.resetAnimation), this.util().addEvent(a, "webkitAnimationEnd", this.resetAnimation), this.util().addEvent(a, "MSAnimationEnd", this.resetAnimation), a
}, e.prototype.applyStyle = function(a, b) {
var c, d, e;
return d = a.getAttribute("data-wow-duration"), c = a.getAttribute("data-wow-delay"), e = a.getAttribute("data-wow-iteration"), this.animate(function(f) {
return function() {
return f.customStyle(a, b, d, c, e)
}
}(this))
}, e.prototype.animate = function() {
return "requestAnimationFrame" in window ? function(a) {
return window.requestAnimationFrame(a)
} : function(a) {
return a()
}
}(), e.prototype.resetStyle = function() {
var a, b, c, d, e;
for (d = this.boxes, e = [], b = 0, c = d.length; b < c; b++) a = d[b], e.push(a.style.visibility = "visible");
return e
}, e.prototype.resetAnimation = function(a) {
var b;
if (a.type.toLowerCase().indexOf("animationend") >= 0) return b = a.target || a.srcElement, b.className = b.className.replace(this.config.animateClass, "").trim()
}, e.prototype.customStyle = function(a, b, c, d, e) {
return b && this.cacheAnimationName(a), a.style.visibility = b ? "hidden" : "visible", c && this.vendorSet(a.style, {
animationDuration: c
}), d && this.vendorSet(a.style, {
animationDelay: d
}), e && this.vendorSet(a.style, {
animationIterationCount: e
}), this.vendorSet(a.style, {
animationName: b ? "none" : this.cachedAnimationName(a)
}), a
}, e.prototype.vendors = ["moz", "webkit"], e.prototype.vendorSet = function(a, b) {
var c, d, e, f;
d = [];
for (c in b) e = b[c], a["" + c] = e, d.push(function() {
var b, d, g, h;
for (g = this.vendors, h = [], b = 0, d = g.length; b < d; b++) f = g[b], h.push(a["" + f + c.charAt(0).toUpperCase() + c.substr(1)] = e);
return h
}.call(this));
return d
}, e.prototype.vendorCSS = function(a, b) {
var c, e, f, g, h, i;
for (h = d(a), g = h.getPropertyCSSValue(b), f = this.vendors, c = 0, e = f.length; c < e; c++) i = f[c], g = g || h.getPropertyCSSValue("-" + i + "-" + b);
return g
}, e.prototype.animationName = function(a) {
var b;
try {
b = this.vendorCSS(a, "animation-name").cssText
} catch (c) {
b = d(a).getPropertyValue("animation-name")
}
return "none" === b ? "" : b
}, e.prototype.cacheAnimationName = function(a) {
return this.animationNameCache.set(a, this.animationName(a))
}, e.prototype.cachedAnimationName = function(a) {
return this.animationNameCache.get(a)
}, e.prototype.scrollHandler = function() {
return this.scrolled = !0
}, e.prototype.scrollCallback = function() {
var a;
if (this.scrolled && (this.scrolled = !1, this.boxes = function() {
var b, c, d, e;
for (d = this.boxes, e = [], b = 0, c = d.length; b < c; b++) a = d[b], a && (this.isVisible(a) ? this.show(a) : e.push(a));
return e
}.call(this), !this.boxes.length && !this.config.live)) return this.stop()
}, e.prototype.offsetTop = function(a) {
for (var b; void 0 === a.offsetTop;) a = a.parentNode;
for (b = a.offsetTop; a = a.offsetParent;) b += a.offsetTop;
return b
}, e.prototype.isVisible = function(a) {
var b, c, d, e, f;
return c = a.getAttribute("data-wow-offset") || this.config.offset, f = window.pageYOffset, e = f + Math.min(this.element.clientHeight, this.util().innerHeight()) - c, d = this.offsetTop(a), b = d + a.clientHeight, d <= e && b >= f
}, e.prototype.util = function() {
return null != this._util ? this._util : this._util = new b
}, e.prototype.disabled = function() {
return !this.config.mobile && this.util().isMobile(navigator.userAgent)
}, e
}()
}.call(this),
function(a) {
"use strict";
a("body").scrollspy({
target: ".navbar-fixed-top",
offset: 60
}), a("#topNav").affix({
offset: {
top: 200
}
}), (new WOW).init(), a("a.page-scroll").bind("click", function(b) {
var c = a(this);
a("html, body").stop().animate({
scrollTop: a(c.attr("href")).offset().top - 60
}, 1150, "easeInOutExpo"), b.preventDefault()
}), a(".navbar-collapse ul li a").click(function() {
a(".navbar-toggle:visible").click()
}), a("#galleryModal").on("show.bs.modal", function(b) {
a("#galleryImage").attr("src", a(b.relatedTarget).data("src"))
}), a.ajaxSetup({
headers: {
"X-CSRF-TOKEN": a('meta[name="csrf-token"]').attr("content")
}
}), a("#ad1").sticky({
topSpacing: 70
}), a("#ad2").sticky({
topSpacing: 70
})
}(jQuery),
function(a, b) {
"use strict";
function c(a, b, c) {
if (!a) throw pa("areq", "Argument '{0}' is {1}", b || "?", c || "required");
return a
}
function d(a, b) {
return a || b ? a ? b ? (Q(a) && (a = a.join(" ")), Q(b) && (b = b.join(" ")), a + " " + b) : a : b : ""
}
function e(a) {
var b = {};
return a && (a.to || a.from) && (b.to = a.to, b.from = a.from), b
}
function f(a, b, c) {
var d = "";
return a = Q(a) ? a : a && R(a) && a.length ? a.split(/\s+/) : [], P(a, function(a, e) {
a && a.length > 0 && (d += e > 0 ? " " : "", d += c ? b + a : a + b)
}), d
}
function g(a, b) {
var c = a.indexOf(b);
b >= 0 && a.splice(c, 1)
}
function h(a) {
if (a instanceof O) switch (a.length) {
case 0:
return a;
case 1:
if (a[0].nodeType === X) return a;
break;
default:
return O(i(a))
}
if (a.nodeType === X) return O(a)
}
function i(a) {
if (!a[0]) return a;
for (var b = 0; b < a.length; b++) {
var c = a[b];
if (c.nodeType == X) return c
}
}
function j(a, b, c) {
P(b, function(b) {
a.addClass(b, c)
})
}
function k(a, b, c) {
P(b, function(b) {
a.removeClass(b, c)
})
}
function l(a) {
return function(b, c) {
c.addClass && (j(a, b, c.addClass), c.addClass = null), c.removeClass && (k(a, b, c.removeClass), c.removeClass = null)
}
}
function m(a) {
if (a = a || {}, !a.$$prepared) {
var b = a.domOperation || L;
a.domOperation = function() {
a.$$domOperationFired = !0, b(), b = L
}, a.$$prepared = !0
}
return a
}
function n(a, b) {
o(a, b), p(a, b)
}
function o(a, b) {
b.from && (a.css(b.from), b.from = null)
}
function p(a, b) {
b.to && (a.css(b.to), b.to = null)
}
function q(a, b, c) {
var d = b.options || {},
e = c.options || {},
f = (d.addClass || "") + " " + (e.addClass || ""),
g = (d.removeClass || "") + " " + (e.removeClass || ""),
h = r(a.attr("class"), f, g);
e.preparationClasses && (d.preparationClasses = y(e.preparationClasses, d.preparationClasses), delete e.preparationClasses);
var i = d.domOperation !== L ? d.domOperation : null;
return N(d, e), i && (d.domOperation = i), h.addClass ? d.addClass = h.addClass : d.addClass = null, h.removeClass ? d.removeClass = h.removeClass : d.removeClass = null, b.addClass = d.addClass, b.removeClass = d.removeClass, d
}
function r(a, b, c) {
function d(a) {
R(a) && (a = a.split(" "));
var b = {};
return P(a, function(a) {
a.length && (b[a] = !0)
}), b
}
var e = 1,
f = -1,
g = {};
a = d(a), b = d(b), P(b, function(a, b) {
g[b] = e
}), c = d(c), P(c, function(a, b) {
g[b] = g[b] === e ? null : f
});
var h = {
addClass: "",
removeClass: ""
};
return P(g, function(b, c) {
var d, g;
b === e ? (d = "addClass", g = !a[c]) : b === f && (d = "removeClass", g = a[c]), g && (h[d].length && (h[d] += " "), h[d] += c)
}), h
}
function s(a) {
return a instanceof b.element ? a[0] : a
}
function t(a, b, c) {
var d = "";
b && (d = f(b, $, !0)), c.addClass && (d = y(d, f(c.addClass, Y))), c.removeClass && (d = y(d, f(c.removeClass, Z))), d.length && (c.preparationClasses = d, a.addClass(d))
}
function u(a, b) {
b.preparationClasses && (a.removeClass(b.preparationClasses), b.preparationClasses = null), b.activeClasses && (a.removeClass(b.activeClasses), b.activeClasses = null)
}
function v(a, b) {
var c = b ? "-" + b + "s" : "";
return x(a, [na, c]), [na, c]
}
function w(a, b) {
var c = b ? "paused" : "",
d = J + ja;
return x(a, [d, c]), [d, c]
}
function x(a, b) {
var c = b[0],
d = b[1];
a.style[c] = d
}
function y(a, b) {
return a ? b ? a + " " + b : a : b
}
function z(a) {
return [ma, a + "s"]
}
function A(a, b) {
var c = b ? la : na;
return [c, a + "s"]
}
function B(a, b, c) {
var d = Object.create(null),
e = a.getComputedStyle(b) || {};
return P(c, function(a, b) {
var c = e[a];
if (c) {
var f = c.charAt(0);
("-" === f || "+" === f || f >= 0) && (c = C(c)), 0 === c && (c = null), d[b] = c
}
}), d
}
function C(a) {
var b = 0,
c = a.split(/\s*,\s*/);
return P(c, function(a) {
"s" == a.charAt(a.length - 1) && (a = a.substring(0, a.length - 1)), a = parseFloat(a) || 0, b = b ? Math.max(a, b) : a
}), b
}
function D(a) {
return 0 === a || null != a
}
function E(a, b) {
var c = H,
d = a + "s";
return b ? c += ea : d += " linear all", [c, d]
}
function F() {
var a = Object.create(null);
return {
flush: function() {
a = Object.create(null)
},
count: function(b) {
var c = a[b];
return c ? c.total : 0
},
get: function(b) {
var c = a[b];
return c && c.value
},
put: function(b, c) {
a[b] ? a[b].total++ : a[b] = {
total: 1,
value: c
}
}
}
}
function G(a, b, c) {
P(c, function(c) {
a[c] = U(a[c]) ? a[c] : b.style.getPropertyValue(c)
})
}
var H, I, J, K, L = b.noop,
M = b.copy,
N = b.extend,
O = b.element,
P = b.forEach,
Q = b.isArray,
R = b.isString,
S = b.isObject,
T = b.isUndefined,
U = b.isDefined,
V = b.isFunction,
W = b.isElement,
X = 1,
Y = "-add",
Z = "-remove",
$ = "ng-",
_ = "-active",
aa = "-prepare",
ba = "ng-animate",
ca = "$$ngAnimateChildren",
da = "";
T(a.ontransitionend) && U(a.onwebkittransitionend) ? (da = "-webkit-", H = "WebkitTransition", I = "webkitTransitionEnd transitionend") : (H = "transition", I = "transitionend"), T(a.onanimationend) && U(a.onwebkitanimationend) ? (da = "-webkit-", J = "WebkitAnimation", K = "webkitAnimationEnd animationend") : (J = "animation", K = "animationend");
var ea = "Duration",
fa = "Property",
ga = "Delay",
ha = "TimingFunction",
ia = "IterationCount",
ja = "PlayState",
ka = 9999,
la = J + ga,
ma = J + ea,
na = H + ga,
oa = H + ea,
pa = b.$$minErr("ng"),
qa = ["$$rAF", function(a) {
function b(a) {
d = d.concat(a), c()
}
function c() {
if (d.length) {
for (var b = d.shift(), f = 0; f < b.length; f++) b[f]();
e || a(function() {
e || c()
})
}
}
var d, e;
return d = b.queue = [], b.waitUntilQuiet = function(b) {
e && e(), e = a(function() {
e = null, b(), c()
})
}, b
}],
ra = ["$interpolate", function(a) {
return {
link: function(c, d, e) {
function f(a) {
a = "on" === a || "true" === a, d.data(ca, a)
}
var g = e.ngAnimateChildren;
b.isString(g) && 0 === g.length ? d.data(ca, !0) : (f(a(g)(c)), e.$observe("ngAnimateChildren", f))
}
}
}],
sa = "$$animateCss",
ta = 1e3,
ua = 3,
va = 1.5,
wa = {
transitionDuration: oa,
transitionDelay: na,
transitionProperty: H + fa,
animationDuration: ma,
animationDelay: la,
animationIterationCount: J + ia
},
xa = {
transitionDuration: oa,
transitionDelay: na,
animationDuration: ma,
animationDelay: la
},
ya = ["$animateProvider", function(a) {
var b = F(),
c = F();
this.$get = ["$window", "$$jqLite", "$$AnimateRunner", "$timeout", "$$forceReflow", "$sniffer", "$$rAFScheduler", "$$animateQueue", function(a, d, h, i, j, k, q, r) {
function t(a, b) {
var c = "$$ngAnimateParentKey",
d = a.parentNode,
e = d[c] || (d[c] = ++O);
return e + "-" + a.getAttribute("class") + "-" + b
}
function u(c, d, e, f) {
var g = b.get(e);
return g || (g = B(a, c, f), "infinite" === g.animationIterationCount && (g.animationIterationCount = 1)), b.put(e, g), g
}
function y(e, g, h, i) {
var j;
if (b.count(h) > 0 && (j = c.get(h), !j)) {
var k = f(g, "-stagger");
d.addClass(e, k), j = B(a, e, i), j.animationDuration = Math.max(j.animationDuration, 0), j.transitionDuration = Math.max(j.transitionDuration, 0), d.removeClass(e, k), c.put(h, j)
}
return j || {}
}
function C(a) {
R.push(a), q.waitUntilQuiet(function() {
b.flush(), c.flush();
for (var a = j(), d = 0; d < R.length; d++) R[d](a);
R.length = 0
})
}
function F(a, b, c) {
var d = u(a, b, c, wa),
e = d.animationDelay,
f = d.transitionDelay;
return d.maxDelay = e && f ? Math.max(e, f) : e || f, d.maxDuration = Math.max(d.animationDuration * d.animationIterationCount, d.transitionDuration), d
}
var N = l(d),
O = 0,
R = [];
return function(a, c) {
function j() {
q()
}
function l() {
q(!0)
}
function q(b) {
if (!(V || X && W)) {
V = !0, W = !1, S.$$skipPreparationClasses || d.removeClass(a, wa), d.removeClass(a, za), w(U, !1), v(U, !1), P(ja, function(a) {
U.style[a[0]] = ""
}), N(a, S), n(a, S), Object.keys(T).length && P(T, function(a, b) {
a ? U.style.setProperty(b, a) : U.style.removeProperty(b)
}), S.onDone && S.onDone(), na && na.length && a.off(na.join(" "), O);
var c = a.data(sa);
c && (i.cancel(c[0].timer), a.removeData(sa)), aa && aa.complete(!b)
}
}
function u(a) {
Na.blockTransition && v(U, a), Na.blockKeyframeAnimation && w(U, !!a)
}
function B() {
return aa = new h({
end: j,
cancel: l
}), C(L), q(), {
$$willAnimate: !1,
start: function() {
return aa
},
end: j
}
}
function O(a) {
a.stopPropagation();
var b = a.originalEvent || a,
c = b.$manualTimeStamp || Date.now(),
d = parseFloat(b.elapsedTime.toFixed(ua));
Math.max(c - ia, 0) >= da && d >= ea && (X = !0, q())
}
function R() {
function b() {
if (!V) {
if (u(!1), P(ja, function(a) {
var b = a[0],
c = a[1];
U.style[b] = c
}), N(a, S), d.addClass(a, za), Na.recalculateTimingStyles) {
if (ya = U.className + " " + wa, Ca = t(U, ya), La = F(U, ya, Ca), Ma = La.maxDelay, ca = Math.max(Ma, 0), ea = La.maxDuration, 0 === ea) return void q();
Na.hasTransitions = La.transitionDuration > 0, Na.hasAnimations = La.animationDuration > 0
}
if (Na.applyAnimationDelay && (Ma = "boolean" != typeof S.delay && D(S.delay) ? parseFloat(S.delay) : Ma, ca = Math.max(Ma, 0), La.animationDelay = Ma, Oa = A(Ma, !0), ja.push(Oa), U.style[Oa[0]] = Oa[1]), da = ca * ta, ga = ea * ta, S.easing) {
var b, e = S.easing;
Na.hasTransitions && (b = H + ha, ja.push([b, e]), U.style[b] = e), Na.hasAnimations && (b = J + ha, ja.push([b, e]), U.style[b] = e)
}
La.transitionDuration && na.push(I), La.animationDuration && na.push(K), ia = Date.now();
var f = da + va * ga,
g = ia + f,
h = a.data(sa) || [],
j = !0;
if (h.length) {
var k = h[0];
j = g > k.expectedEndTime, j ? i.cancel(k.timer) : h.push(q)
}
if (j) {
var l = i(c, f, !1);
h[0] = {
timer: l,
expectedEndTime: g
}, h.push(q), a.data(sa, h)
}
na.length && a.on(na.join(" "), O), S.to && (S.cleanupStyles && G(T, U, Object.keys(S.to)), p(a, S))
}
}
function c() {
var b = a.data(sa);
if (b) {
for (var c = 1; c < b.length; c++) b[c]();
a.removeData(sa)
}
}
if (!V) {
if (!U.parentNode) return void q();
var e = function(a) {
if (X) W && a && (W = !1, q());
else if (W = !a, La.animationDuration) {
var b = w(U, W);
W ? ja.push(b) : g(ja, b)
}
},
f = Ja > 0 && (La.transitionDuration && 0 === Da.transitionDuration || La.animationDuration && 0 === Da.animationDuration) && Math.max(Da.animationDelay, Da.transitionDelay);
f ? i(b, Math.floor(f * Ja * ta), !1) : b(), ba.resume = function() {
e(!0)
}, ba.pause = function() {
e(!1)
}
}
}
var S = c || {};
S.$$prepared || (S = m(M(S)));
var T = {},
U = s(a);
if (!U || !U.parentNode || !r.enabled()) return B();
var V, W, X, aa, ba, ca, da, ea, ga, ia, ja = [],
la = a.attr("class"),
ma = e(S),
na = [];
if (0 === S.duration || !k.animations && !k.transitions) return B();
var oa = S.event && Q(S.event) ? S.event.join(" ") : S.event,
pa = oa && S.structural,
qa = "",
ra = "";
pa ? qa = f(oa, $, !0) : oa && (qa = oa), S.addClass && (ra += f(S.addClass, Y)), S.removeClass && (ra.length && (ra += " "), ra += f(S.removeClass, Z)), S.applyClassesEarly && ra.length && N(a, S);
var wa = [qa, ra].join(" ").trim(),
ya = la + " " + wa,
za = f(wa, _),
Aa = ma.to && Object.keys(ma.to).length > 0,
Ba = (S.keyframeStyle || "").length > 0;
if (!Ba && !Aa && !wa) return B();
var Ca, Da;
if (S.stagger > 0) {
var Ea = parseFloat(S.stagger);
Da = {
transitionDelay: Ea,
animationDelay: Ea,
transitionDuration: 0,
animationDuration: 0
}
} else Ca = t(U, ya), Da = y(U, wa, Ca, xa);
S.$$skipPreparationClasses || d.addClass(a, wa);
var Fa;
if (S.transitionStyle) {
var Ga = [H, S.transitionStyle];
x(U, Ga), ja.push(Ga)
}
if (S.duration >= 0) {
Fa = U.style[H].length > 0;
var Ha = E(S.duration, Fa);
x(U, Ha), ja.push(Ha)
}
if (S.keyframeStyle) {
var Ia = [J, S.keyframeStyle];
x(U, Ia), ja.push(Ia)
}
var Ja = Da ? S.staggerIndex >= 0 ? S.staggerIndex : b.count(Ca) : 0,
Ka = 0 === Ja;
Ka && !S.skipBlocking && v(U, ka);
var La = F(U, ya, Ca),
Ma = La.maxDelay;
ca = Math.max(Ma, 0), ea = La.maxDuration;
var Na = {};
if (Na.hasTransitions = La.transitionDuration > 0, Na.hasAnimations = La.animationDuration > 0, Na.hasTransitionAll = Na.hasTransitions && "all" == La.transitionProperty, Na.applyTransitionDuration = Aa && (Na.hasTransitions && !Na.hasTransitionAll || Na.hasAnimations && !Na.hasTransitions), Na.applyAnimationDuration = S.duration && Na.hasAnimations, Na.applyTransitionDelay = D(S.delay) && (Na.applyTransitionDuration || Na.hasTransitions), Na.applyAnimationDelay = D(S.delay) && Na.hasAnimations, Na.recalculateTimingStyles = ra.length > 0, (Na.applyTransitionDuration || Na.applyAnimationDuration) && (ea = S.duration ? parseFloat(S.duration) : ea, Na.applyTransitionDuration && (Na.hasTransitions = !0, La.transitionDuration = ea, Fa = U.style[H + fa].length > 0, ja.push(E(ea, Fa))), Na.applyAnimationDuration && (Na.hasAnimations = !0, La.animationDuration = ea, ja.push(z(ea)))), 0 === ea && !Na.recalculateTimingStyles) return B();
if (null != S.delay) {
var Oa;
"boolean" != typeof S.delay && (Oa = parseFloat(S.delay), ca = Math.max(Oa, 0)), Na.applyTransitionDelay && ja.push(A(Oa)), Na.applyAnimationDelay && ja.push(A(Oa, !0))
}
return null == S.duration && La.transitionDuration > 0 && (Na.recalculateTimingStyles = Na.recalculateTimingStyles || Ka), da = ca * ta, ga = ea * ta, S.skipBlocking || (Na.blockTransition = La.transitionDuration > 0, Na.blockKeyframeAnimation = La.animationDuration > 0 && Da.animationDelay > 0 && 0 === Da.animationDuration), S.from && (S.cleanupStyles && G(T, U, Object.keys(S.from)), o(a, S)), Na.blockTransition || Na.blockKeyframeAnimation ? u(ea) : S.skipBlocking || v(U, !1), {
$$willAnimate: !0,
end: j,
start: function() {
if (!V) return ba = {
end: j,
cancel: l,
resume: null,
pause: null
}, aa = new h(ba), C(R), aa
}
}
}
}]
}],
za = ["$$animationProvider", function(a) {
function b(a) {
return a.parentNode && 11 === a.parentNode.nodeType
}
a.drivers.push("$$animateCssDriver");
var c = "ng-animate-shim",
d = "ng-anchor",
e = "ng-anchor-out",
f = "ng-anchor-in";
this.$get = ["$animateCss", "$rootScope", "$$AnimateRunner", "$rootElement", "$sniffer", "$$jqLite", "$document", function(a, g, h, i, j, k, m) {
function n(a) {
return a.replace(/\bng-\S+\b/g, "")
}
function o(a, b) {
return R(a) && (a = a.split(" ")), R(b) && (b = b.split(" ")), a.filter(function(a) {
return b.indexOf(a) === -1
}).join(" ")
}
function p(b, g, i) {
function j(a) {
var b = {},
c = s(a).getBoundingClientRect();
return P(["width", "height", "top", "left"], function(a) {
var d = c[a];
switch (a) {
case "top":
d += t.scrollTop;
break;
case "left":
d += t.scrollLeft
}
b[a] = Math.floor(d) + "px"
}), b
}
function k() {
var b = a(q, {
addClass: e,
delay: !0,
from: j(g)
});
return b.$$willAnimate ? b : null
}
function l(a) {
return a.attr("class") || ""
}
function m() {
var b = n(l(i)),
c = o(b, r),
d = o(r, b),
g = a(q, {
to: j(i),
addClass: f + " " + c,
removeClass: e + " " + d,
delay: !0
});
return g.$$willAnimate ? g : null
}
function p() {
q.remove(), g.removeClass(c), i.removeClass(c)
}
var q = O(s(g).cloneNode(!0)),
r = n(l(q));
g.addClass(c), i.addClass(c), q.addClass(d), v.append(q);
var u, w = k();
if (!w && (u = m(), !u)) return p();
var x = w || u;
return {
start: function() {
function a() {
c && c.end()
}
var b, c = x.start();
return c.done(function() {
return c = null, !u && (u = m()) ? (c = u.start(), c.done(function() {
c = null, p(), b.complete()
}), c) : (p(), void b.complete())
}), b = new h({
end: a,
cancel: a
})
}
}
}
function q(a, b, c, d) {
var e = r(a, L),
f = r(b, L),
g = [];
if (P(d, function(a) {
var b = a.out,
d = a.in,
e = p(c, b, d);
e && g.push(e)
}), e || f || 0 !== g.length) return {
start: function() {
function a() {
P(b, function(a) {
a.end()
})
}
var b = [];
e && b.push(e.start()), f && b.push(f.start()), P(g, function(a) {
b.push(a.start())
});
var c = new h({
end: a,
cancel: a
});
return h.all(b, function(a) {
c.complete(a)
}), c
}
}
}
function r(b) {
var c = b.element,
d = b.options || {};
b.structural && (d.event = b.event, d.structural = !0, d.applyClassesEarly = !0, "leave" === b.event && (d.onDone = d.domOperation)), d.preparationClasses && (d.event = y(d.event, d.preparationClasses));
var e = a(c, d);
return e.$$willAnimate ? e : null
}
if (!j.animations && !j.transitions) return L;
var t = m[0].body,
u = s(i),
v = O(b(u) || t.contains(u) ? u : t);
l(k);
return function(a) {
return a.from && a.to ? q(a.from, a.to, a.classes, a.anchors) : r(a);
}
}]
}],
Aa = ["$animateProvider", function(a) {
this.$get = ["$injector", "$$AnimateRunner", "$$jqLite", function(b, c, d) {
function e(c) {
c = Q(c) ? c : c.split(" ");
for (var d = [], e = {}, f = 0; f < c.length; f++) {
var g = c[f],
h = a.$$registeredAnimations[g];
h && !e[g] && (d.push(b.get(h)), e[g] = !0)
}
return d
}
var f = l(d);
return function(a, b, d, g) {
function h() {
g.domOperation(), f(a, g)
}
function i() {
o = !0, h(), n(a, g)
}
function j(a, b, d, e, f) {
var g;
switch (d) {
case "animate":
g = [b, e.from, e.to, f];
break;
case "setClass":
g = [b, r, s, f];
break;
case "addClass":
g = [b, r, f];
break;
case "removeClass":
g = [b, s, f];
break;
default:
g = [b, f]
}
g.push(e);
var h = a.apply(a, g);
if (h)
if (V(h.start) && (h = h.start()), h instanceof c) h.done(f);
else if (V(h)) return h;
return L
}
function k(a, b, d, e, f) {
var g = [];
return P(e, function(e) {
var h = e[f];
h && g.push(function() {
var e, f, g = !1,
i = function(a) {
g || (g = !0, (f || L)(a), e.complete(!a))
};
return e = new c({
end: function() {
i()
},
cancel: function() {
i(!0)
}
}), f = j(h, a, b, d, function(a) {
var b = a === !1;
i(b)
}), e
})
}), g
}
function l(a, b, d, e, f) {
var g = k(a, b, d, e, f);
if (0 === g.length) {
var h, i;
"beforeSetClass" === f ? (h = k(a, "removeClass", d, e, "beforeRemoveClass"), i = k(a, "addClass", d, e, "beforeAddClass")) : "setClass" === f && (h = k(a, "removeClass", d, e, "removeClass"), i = k(a, "addClass", d, e, "addClass")), h && (g = g.concat(h)), i && (g = g.concat(i))
}
if (0 !== g.length) return function(a) {
var b = [];
return g.length && P(g, function(a) {
b.push(a())
}), b.length ? c.all(b, a) : a(),
function(a) {
P(b, function(b) {
a ? b.cancel() : b.end()
})
}
}
}
var o = !1;
3 === arguments.length && S(d) && (g = d, d = null), g = m(g), d || (d = a.attr("class") || "", g.addClass && (d += " " + g.addClass), g.removeClass && (d += " " + g.removeClass));
var p, q, r = g.addClass,
s = g.removeClass,
t = e(d);
if (t.length) {
var u, v;
"leave" == b ? (v = "leave", u = "afterLeave") : (v = "before" + b.charAt(0).toUpperCase() + b.substr(1), u = b), "enter" !== b && "move" !== b && (p = l(a, b, g, t, v)), q = l(a, b, g, t, u)
}
if (p || q) {
var w;
return {
$$willAnimate: !0,
end: function() {
return w ? w.end() : (i(), w = new c, w.complete(!0)), w
},
start: function() {
function a(a) {
i(a), w.complete(a)
}
function b(b) {
o || ((d || L)(b), a(b))
}
if (w) return w;
w = new c;
var d, e = [];
return p && e.push(function(a) {
d = p(a)
}), e.length ? e.push(function(a) {
h(), a(!0)
}) : h(), q && e.push(function(a) {
d = q(a)
}), w.setHost({
end: function() {
b()
},
cancel: function() {
b(!0)
}
}), c.chain(e, a), w
}
}
}
}
}]
}],
Ba = ["$$animationProvider", function(a) {
a.drivers.push("$$animateJsDriver"), this.$get = ["$$animateJs", "$$AnimateRunner", function(a, b) {
function c(b) {
var c = b.element,
d = b.event,
e = b.options,
f = b.classes;
return a(c, d, f, e)
}
return function(a) {
if (a.from && a.to) {
var d = c(a.from),
e = c(a.to);
if (!d && !e) return;
return {
start: function() {
function a() {
return function() {
P(f, function(a) {
a.end()
})
}
}
function c(a) {
g.complete(a)
}
var f = [];
d && f.push(d.start()), e && f.push(e.start()), b.all(f, c);
var g = new b({
end: a(),
cancel: a()
});
return g
}
}
}
return c(a)
}
}]
}],
Ca = "data-ng-animate",
Da = "$ngAnimatePin",
Ea = ["$animateProvider", function(d) {
function e(a) {
if (!a) return null;
var b = a.split(p),
c = Object.create(null);
return P(b, function(a) {
c[a] = !0
}), c
}
function f(a, b) {
if (a && b) {
var c = e(b);
return a.split(p).some(function(a) {
return c[a]
})
}
}
function g(a, b, c, d) {
return r[a].some(function(a) {
return a(b, c, d)
})
}
function j(a, b) {
var c = (a.addClass || "").length > 0,
d = (a.removeClass || "").length > 0;
return b ? c && d : c || d
}
var k = 1,
o = 2,
p = " ",
r = this.rules = {
skip: [],
cancel: [],
join: []
};
r.join.push(function(a, b, c) {
return !b.structural && j(b)
}), r.skip.push(function(a, b, c) {
return !b.structural && !j(b)
}), r.skip.push(function(a, b, c) {
return "leave" == c.event && b.structural
}), r.skip.push(function(a, b, c) {
return c.structural && c.state === o && !b.structural
}), r.cancel.push(function(a, b, c) {
return c.structural && b.structural
}), r.cancel.push(function(a, b, c) {
return c.state === o && b.structural
}), r.cancel.push(function(a, b, c) {
if (c.structural) return !1;
var d = b.addClass,
e = b.removeClass,
g = c.addClass,
h = c.removeClass;
return !(T(d) && T(e) || T(g) && T(h)) && (f(d, h) || f(e, g))
}), this.$get = ["$$rAF", "$rootScope", "$rootElement", "$document", "$$HashMap", "$$animation", "$$AnimateRunner", "$templateRequest", "$$jqLite", "$$forceReflow", function(e, f, p, r, v, w, x, y, z, A) {
function B() {
var a = !1;
return function(b) {
a ? b() : f.$$postDigest(function() {
a = !0, b()
})
}
}
function C(a, b) {
return q(a, b, {})
}
function D(a, b, c) {
var d = s(b),
e = s(a),
f = [],
g = _[c];
return g && P(g, function(a) {
ea.call(a.node, d) ? f.push(a.callback) : "leave" === c && ea.call(a.node, e) && f.push(a.callback)
}), f
}
function E(a, b, c) {
var d = i(b);
return a.filter(function(a) {
var b = a.node === d && (!c || a.callback === c);
return !b
})
}
function F(a, b) {
"close" !== a || b[0].parentNode || fa.off(b)
}
function G(a, b, c) {
function d(b, c, d, f) {
z(function() {
var b = D(p, a, c);
b.length ? e(function() {
P(b, function(b) {
b(a, d, f)
}), F(d, a)
}) : F(d, a)
}), b.progress(c, d, f)
}
function i(b) {
u(a, v), da(a, v), n(a, v), v.domOperation(), y.complete(!b)
}
var l, p, v = M(c);
a = h(a), a && (l = s(a), p = a.parent()), v = m(v);
var y = new x,
z = B();
if (Q(v.addClass) && (v.addClass = v.addClass.join(" ")), v.addClass && !R(v.addClass) && (v.addClass = null), Q(v.removeClass) && (v.removeClass = v.removeClass.join(" ")), v.removeClass && !R(v.removeClass) && (v.removeClass = null), v.from && !S(v.from) && (v.from = null), v.to && !S(v.to) && (v.to = null), !l) return i(), y;
var A = [l.className, v.addClass, v.removeClass].join(" ");
if (!ba(A)) return i(), y;
var E = ["enter", "move", "leave"].indexOf(b) >= 0,
G = r[0].hidden,
J = !Z || G || Y.get(l),
N = !J && V.get(l) || {},
O = !!N.state;
if (J || O && N.state == k || (J = !K(a, p, b)), J) return G && d(y, b, "start"), i(), G && d(y, b, "close"), y;
E && H(a);
var T = {
structural: E,
element: a,
event: b,
addClass: v.addClass,
removeClass: v.removeClass,
close: i,
options: v,
runner: y
};
if (O) {
var U = g("skip", a, T, N);
if (U) return N.state === o ? (i(), y) : (q(a, N, T), N.runner);
var W = g("cancel", a, T, N);
if (W)
if (N.state === o) N.runner.end();
else {
if (!N.structural) return q(a, N, T), N.runner;
N.close()
}
else {
var X = g("join", a, T, N);
if (X) {
if (N.state !== o) return t(a, E ? b : null, v), b = T.event = N.event, v = q(a, N, T), N.runner;
C(a, T)
}
}
} else C(a, T);
var $ = T.structural;
if ($ || ($ = "animate" === T.event && Object.keys(T.options.to || {}).length > 0 || j(T)), !$) return i(), I(a), y;
var _ = (N.counter || 0) + 1;
return T.counter = _, L(a, k, T), f.$$postDigest(function() {
var c = V.get(l),
e = !c;
c = c || {};
var f = a.parent() || [],
g = f.length > 0 && ("animate" === c.event || c.structural || j(c));
if (e || c.counter !== _ || !g) return e && (da(a, v), n(a, v)), (e || E && c.event !== b) && (v.domOperation(), y.end()), void(g || I(a));
b = !c.structural && j(c, !0) ? "setClass" : c.event, L(a, o);
var h = w(a, b, c.options);
y.setHost(h), d(y, b, "start", {}), h.done(function(c) {
i(!c);
var e = V.get(l);
e && e.counter === _ && I(s(a)), d(y, b, "close", {})
})
}), y
}
function H(a) {
var b = s(a),
c = b.querySelectorAll("[" + Ca + "]");
P(c, function(a) {
var b = parseInt(a.getAttribute(Ca)),
c = V.get(a);
if (c) switch (b) {
case o:
c.runner.end();
case k:
V.remove(a)
}
})
}
function I(a) {
var b = s(a);
b.removeAttribute(Ca), V.remove(b)
}
function J(a, b) {
return s(a) === s(b)
}
function K(a, b, c) {
var d, e = O(r[0].body),
f = J(a, e) || "HTML" === a[0].nodeName,
g = J(a, p),
h = !1,
i = Y.get(s(a)),
j = O.data(a[0], Da);
for (j && (b = j), b = s(b); b && (g || (g = J(b, p)), b.nodeType === X);) {
var k = V.get(b) || {};
if (!h) {
var l = Y.get(b);
if (l === !0 && i !== !1) {
i = !0;
break
}
l === !1 && (i = !1), h = k.structural
}
if (T(d) || d === !0) {
var m = O.data(b, ca);
U(m) && (d = m)
}
if (h && d === !1) break;
if (f || (f = J(b, e)), f && g) break;
b = g || !(j = O.data(b, Da)) ? b.parentNode : s(j)
}
var n = (!h || d) && i !== !0;
return n && g && f
}
function L(a, b, c) {
c = c || {}, c.state = b;
var d = s(a);
d.setAttribute(Ca, b);
var e = V.get(d),
f = e ? N(e, c) : c;
V.put(d, f)
}
var V = new v,
Y = new v,
Z = null,
$ = f.$watch(function() {
return 0 === y.totalPendingRequests
}, function(a) {
a && ($(), f.$$postDigest(function() {
f.$$postDigest(function() {
null === Z && (Z = !0)
})
}))
}),
_ = {},
aa = d.classNameFilter(),
ba = aa ? function(a) {
return aa.test(a)
} : function() {
return !0
},
da = l(z),
ea = a.Node.prototype.contains || function(a) {
return this === a || !!(16 & this.compareDocumentPosition(a))
},
fa = {
on: function(a, b, c) {
var d = i(b);
_[a] = _[a] || [], _[a].push({
node: d,
callback: c
}), O(b).on("$destroy", function() {
var e = V.get(d);
e || fa.off(a, b, c)
})
},
off: function(a, c, d) {
if (1 !== arguments.length || b.isString(arguments[0])) {
var e = _[a];
e && (_[a] = 1 === arguments.length ? null : E(e, c, d))
} else {
c = arguments[0];
for (var f in _) _[f] = E(_[f], c)
}
},
pin: function(a, b) {
c(W(a), "element", "not an element"), c(W(b), "parentElement", "not an element"), a.data(Da, b)
},
push: function(a, b, c, d) {
return c = c || {}, c.domOperation = d, G(a, b, c)
},
enabled: function(a, b) {
var c = arguments.length;
if (0 === c) b = !!Z;
else {
var d = W(a);
if (d) {
var e = s(a),
f = Y.get(e);
1 === c ? b = !f : Y.put(e, !b)
} else b = Z = !!a
}
return b
}
};
return fa
}]
}],
Fa = ["$animateProvider", function(a) {
function b(a, b) {
a.data(h, b)
}
function c(a) {
a.removeData(h)
}
function e(a) {
return a.data(h)
}
var f = "ng-animate-ref",
g = this.drivers = [],
h = "$$animationRunner";
this.$get = ["$$jqLite", "$rootScope", "$injector", "$$AnimateRunner", "$$HashMap", "$$rAFScheduler", function(a, h, i, j, k, o) {
function p(a) {
function b(a) {
if (a.processed) return a;
a.processed = !0;
var c = a.domNode,
d = c.parentNode;
f.put(c, a);
for (var g; d;) {
if (g = f.get(d)) {
g.processed || (g = b(g));
break
}
d = d.parentNode
}
return (g || e).children.push(a), a
}
function c(a) {
var b, c = [],
d = [];
for (b = 0; b < a.children.length; b++) d.push(a.children[b]);
var e = d.length,
f = 0,
g = [];
for (b = 0; b < d.length; b++) {
var h = d[b];
e <= 0 && (e = f, f = 0, c.push(g), g = []), g.push(h.fn), h.children.forEach(function(a) {
f++, d.push(a)
}), e--
}
return g.length && c.push(g), c
}
var d, e = {
children: []
},
f = new k;
for (d = 0; d < a.length; d++) {
var g = a[d];
f.put(g.domNode, a[d] = {
domNode: g.domNode,
fn: g.fn,
children: []
})
}
for (d = 0; d < a.length; d++) b(a[d]);
return c(e)
}
var q = [],
r = l(a);
return function(k, l, t) {
function u(a) {
var b = "[" + f + "]",
c = a.hasAttribute(f) ? [a] : a.querySelectorAll(b),
d = [];
return P(c, function(a) {
var b = a.getAttribute(f);
b && b.length && d.push(a)
}), d
}
function v(a) {
var b = [],
c = {};
P(a, function(a, d) {
var e = a.element,
g = s(e),
h = a.event,
i = ["enter", "move"].indexOf(h) >= 0,
j = a.structural ? u(g) : [];
if (j.length) {
var k = i ? "to" : "from";
P(j, function(a) {
var b = a.getAttribute(f);
c[b] = c[b] || {}, c[b][k] = {
animationID: d,
element: O(a)
}
})
} else b.push(a)
});
var d = {},
e = {};
return P(c, function(c, f) {
var g = c.from,
h = c.to;
if (!g || !h) {
var i = g ? g.animationID : h.animationID,
j = i.toString();
return void(d[j] || (d[j] = !0, b.push(a[i])))
}
var k = a[g.animationID],
l = a[h.animationID],
m = g.animationID.toString();
if (!e[m]) {
var n = e[m] = {
structural: !0,
beforeStart: function() {
k.beforeStart(), l.beforeStart()
},
close: function() {
k.close(), l.close()
},
classes: w(k.classes, l.classes),
from: k,
to: l,
anchors: []
};
n.classes.length ? b.push(n) : (b.push(k), b.push(l))
}
e[m].anchors.push({
out: g.element,
in: h.element
})
}), b
}
function w(a, b) {
a = a.split(" "), b = b.split(" ");
for (var c = [], d = 0; d < a.length; d++) {
var e = a[d];
if ("ng-" !== e.substring(0, 3))
for (var f = 0; f < b.length; f++)
if (e === b[f]) {
c.push(e);
break
}
}
return c.join(" ")
}
function x(a) {
for (var b = g.length - 1; b >= 0; b--) {
var c = g[b],
d = i.get(c),
e = d(a);
if (e) return e
}
}
function y() {
k.addClass(ba), F && a.addClass(k, F), G && (a.removeClass(k, G), G = null)
}
function z(a, b) {
function c(a) {
var c = e(a);
c && c.setHost(b)
}
a.from && a.to ? (c(a.from.element), c(a.to.element)) : c(a.element)
}
function A() {
var a = e(k);
!a || "leave" === l && t.$$domOperationFired || a.end()
}
function B(b) {
k.off("$destroy", A), c(k), r(k, t), n(k, t), t.domOperation(), F && a.removeClass(k, F), k.removeClass(ba), D.complete(!b)
}
t = m(t);
var C = ["enter", "move", "leave"].indexOf(l) >= 0,
D = new j({
end: function() {
B()
},
cancel: function() {
B(!0)
}
});
if (!g.length) return B(), D;
b(k, D);
var E = d(k.attr("class"), d(t.addClass, t.removeClass)),
F = t.tempClasses;
F && (E += " " + F, t.tempClasses = null);
var G;
return C && (G = "ng-" + l + aa, a.addClass(k, G)), q.push({
element: k,
classes: E,
event: l,
structural: C,
options: t,
beforeStart: y,
close: B
}), k.on("$destroy", A), q.length > 1 ? D : (h.$$postDigest(function() {
var a = [];
P(q, function(b) {
e(b.element) ? a.push(b) : b.close()
}), q.length = 0;
var b = v(a),
c = [];
P(b, function(a) {
c.push({
domNode: s(a.from ? a.from.element : a.element),
fn: function() {
a.beforeStart();
var b, c = a.close,
d = a.anchors ? a.from.element || a.to.element : a.element;
if (e(d)) {
var f = x(a);
f && (b = f.start)
}
if (b) {
var g = b();
g.done(function(a) {
c(!a)
}), z(a, g)
} else c()
}
})
}), o(p(c))
}), D)
}
}]
}],
Ga = ["$animate", "$rootScope", function(a, b) {
return {
restrict: "A",
transclude: "element",
terminal: !0,
priority: 600,
link: function(b, c, d, e, f) {
var g, h;
b.$watchCollection(d.ngAnimateSwap || d.for, function(d) {
g && a.leave(g), h && (h.$destroy(), h = null), (d || 0 === d) && (h = b.$new(), f(h, function(b) {
g = b, a.enter(b, null, c)
}))
})
}
}
}];
b.module("ngAnimate", []).directive("ngAnimateSwap", Ga).directive("ngAnimateChildren", ra).factory("$$rAFScheduler", qa).provider("$$animateQueue", Ea).provider("$$animation", Fa).provider("$animateCss", ya).provider("$$animateCssDriver", za).provider("$$animateJs", Aa).provider("$$animateJsDriver", Ba)
}(window, window.angular),
function(a, b) {
"use strict";
function c() {
function a(a, b, d, e) {
return function(g, h, i) {
var j = i.$normalize(b);
!c[j] || f(h, d) || i[j] || g.$watch(i[a], function(a) {
a = e ? !a : !!a, h.attr(b, a)
})
}
}
var c = {
ariaHidden: !0,
ariaChecked: !0,
ariaReadonly: !0,
ariaDisabled: !0,
ariaRequired: !0,
ariaInvalid: !0,
ariaValue: !0,
tabindex: !0,
bindKeypress: !0,
bindRoleForClick: !0
};
this.config = function(a) {
c = b.extend(c, a)
}, this.$get = function() {
return {
config: function(a) {
return c[a]
},
$$watchExpr: a
}
}
}
var d = b.module("ngAria", ["ng"]).provider("$aria", c),
e = ["BUTTON", "A", "INPUT", "TEXTAREA", "SELECT", "DETAILS", "SUMMARY"],
f = function(a, b) {
if (b.indexOf(a[0].nodeName) !== -1) return !0
};
d.directive("ngShow", ["$aria", function(a) {
return a.$$watchExpr("ngShow", "aria-hidden", [], !0)
}]).directive("ngHide", ["$aria", function(a) {
return a.$$watchExpr("ngHide", "aria-hidden", [], !1)
}]).directive("ngValue", ["$aria", function(a) {
return a.$$watchExpr("ngValue", "aria-checked", e, !1)
}]).directive("ngChecked", ["$aria", function(a) {
return a.$$watchExpr("ngChecked", "aria-checked", e, !1)
}]).directive("ngReadonly", ["$aria", function(a) {
return a.$$watchExpr("ngReadonly", "aria-readonly", e, !1)
}]).directive("ngRequired", ["$aria", function(a) {
return a.$$watchExpr("ngRequired", "aria-required", e, !1)
}]).directive("ngModel", ["$aria", function(a) {
function b(b, c, d, g) {
return a.config(c) && !d.attr(b) && (g || !f(d, e))
}
function c(a, b) {
return !b.attr("role") && b.attr("type") === a && "INPUT" !== b[0].nodeName
}
function d(a, b) {
var c = a.type,
d = a.role;
return "checkbox" === (c || d) || "menuitemcheckbox" === d ? "checkbox" : "radio" === (c || d) || "menuitemradio" === d ? "radio" : "range" === c || "progressbar" === d || "slider" === d ? "range" : ""
}
return {
restrict: "A",
require: "ngModel",
priority: 200,
compile: function(e, f) {
var g = d(f, e);
return {
pre: function(a, b, c, d) {
"checkbox" === g && (d.$isEmpty = function(a) {
return a === !1
})
},
post: function(d, e, f, h) {
function i() {
return h.$modelValue
}
function j(a) {
var b = f.value == h.$viewValue;
e.attr("aria-checked", b)
}
function k() {
e.attr("aria-checked", !h.$isEmpty(h.$viewValue))
}
var l = b("tabindex", "tabindex", e, !1);
switch (g) {
case "radio":
case "checkbox":
c(g, e) && e.attr("role", g), b("aria-checked", "ariaChecked", e, !1) && d.$watch(i, "radio" === g ? j : k), l && e.attr("tabindex", 0);
break;
case "range":
if (c(g, e) && e.attr("role", "slider"), a.config("ariaValue")) {
var m = !e.attr("aria-valuemin") && (f.hasOwnProperty("min") || f.hasOwnProperty("ngMin")),
n = !e.attr("aria-valuemax") && (f.hasOwnProperty("max") || f.hasOwnProperty("ngMax")),
o = !e.attr("aria-valuenow");
m && f.$observe("min", function(a) {
e.attr("aria-valuemin", a)
}), n && f.$observe("max", function(a) {
e.attr("aria-valuemax", a)
}), o && d.$watch(i, function(a) {
e.attr("aria-valuenow", a)
})
}
l && e.attr("tabindex", 0)
}!f.hasOwnProperty("ngRequired") && h.$validators.required && b("aria-required", "ariaRequired", e, !1) && f.$observe("required", function() {
e.attr("aria-required", !!f.required)
}), b("aria-invalid", "ariaInvalid", e, !0) && d.$watch(function() {
return h.$invalid
}, function(a) {
e.attr("aria-invalid", !!a)
})
}
}
}
}
}]).directive("ngDisabled", ["$aria", function(a) {
return a.$$watchExpr("ngDisabled", "aria-disabled", e, !1)
}]).directive("ngMessages", function() {
return {
restrict: "A",
require: "?ngMessages",
link: function(a, b, c, d) {
b.attr("aria-live") || b.attr("aria-live", "assertive")
}
}
}).directive("ngClick", ["$aria", "$parse", function(a, b) {
return {
restrict: "A",
compile: function(c, d) {
var g = b(d.ngClick, null, !0);
return function(b, c, d) {
f(c, e) || (a.config("bindRoleForClick") && !c.attr("role") && c.attr("role", "button"), a.config("tabindex") && !c.attr("tabindex") && c.attr("tabindex", 0), a.config("bindKeypress") && !d.ngKeypress && c.on("keypress", function(a) {
function c() {
g(b, {
$event: a
})
}
var d = a.which || a.keyCode;
32 !== d && 13 !== d || b.$apply(c)
}))
}
}
}
}]).directive("ngDblclick", ["$aria", function(a) {
return function(b, c, d) {
!a.config("tabindex") || c.attr("tabindex") || f(c, e) || c.attr("tabindex", 0)
}
}])
}(window, window.angular), ! function(a, b, c, d) {
"use strict";
function e(a, b, c) {
return setTimeout(j(a, c), b)
}
function f(a, b, c) {
return !!Array.isArray(a) && (g(a, c[b], c), !0)
}
function g(a, b, c) {
var e;
if (a)
if (a.forEach) a.forEach(b, c);
else if (a.length !== d)
for (e = 0; e < a.length;) b.call(c, a[e], e, a), e++;
else
for (e in a) a.hasOwnProperty(e) && b.call(c, a[e], e, a)
}
function h(b, c, d) {
var e = "DEPRECATED METHOD: " + c + "\n" + d + " AT \n";
return function() {
var c = new Error("get-stack-trace"),
d = c && c.stack ? c.stack.replace(/^[^\(]+?[\n$]/gm, "").replace(/^\s+at\s+/gm, "").replace(/^Object.<anonymous>\s*\(/gm, "{anonymous}()@") : "Unknown Stack Trace",
f = a.console && (a.console.warn || a.console.log);
return f && f.call(a.console, e, d), b.apply(this, arguments)
}
}
function i(a, b, c) {
var d, e = b.prototype;
d = a.prototype = Object.create(e), d.constructor = a, d._super = e, c && la(d, c)
}
function j(a, b) {
return function() {
return a.apply(b, arguments)
}
}
function k(a, b) {
return typeof a == oa ? a.apply(b ? b[0] || d : d, b) : a
}
function l(a, b) {
return a === d ? b : a
}
function m(a, b, c) {
g(q(b), function(b) {
a.addEventListener(b, c, !1)
})
}
function n(a, b, c) {
g(q(b), function(b) {
a.removeEventListener(b, c, !1)
})
}
function o(a, b) {
for (; a;) {
if (a == b) return !0;
a = a.parentNode
}
return !1
}
function p(a, b) {
return a.indexOf(b) > -1
}
function q(a) {
return a.trim().split(/\s+/g)
}
function r(a, b, c) {
if (a.indexOf && !c) return a.indexOf(b);
for (var d = 0; d < a.length;) {
if (c && a[d][c] == b || !c && a[d] === b) return d;
d++
}
return -1
}
function s(a) {
return Array.prototype.slice.call(a, 0)
}
function t(a, b, c) {
for (var d = [], e = [], f = 0; f < a.length;) {
var g = b ? a[f][b] : a[f];
r(e, g) < 0 && d.push(a[f]), e[f] = g, f++
}
return c && (d = b ? d.sort(function(a, c) {
return a[b] > c[b]
}) : d.sort()), d
}
function u(a, b) {
for (var c, e, f = b[0].toUpperCase() + b.slice(1), g = 0; g < ma.length;) {
if (c = ma[g], e = c ? c + f : b, e in a) return e;
g++
}
return d
}
function v() {
return ua++
}
function w(b) {
var c = b.ownerDocument || b;
return c.defaultView || c.parentWindow || a
}
function x(a, b) {
var c = this;
this.manager = a, this.callback = b, this.element = a.element, this.target = a.options.inputTarget, this.domHandler = function(b) {
k(a.options.enable, [a]) && c.handler(b)
}, this.init()
}
function y(a) {
var b, c = a.options.inputClass;
return new(b = c ? c : xa ? M : ya ? P : wa ? R : L)(a, z)
}
function z(a, b, c) {
var d = c.pointers.length,
e = c.changedPointers.length,
f = b & Ea && d - e === 0,
g = b & (Ga | Ha) && d - e === 0;
c.isFirst = !!f, c.isFinal = !!g, f && (a.session = {}), c.eventType = b, A(a, c), a.emit("hammer.input", c), a.recognize(c), a.session.prevInput = c
}
function A(a, b) {
var c = a.session,
d = b.pointers,
e = d.length;
c.firstInput || (c.firstInput = D(b)), e > 1 && !c.firstMultiple ? c.firstMultiple = D(b) : 1 === e && (c.firstMultiple = !1);
var f = c.firstInput,
g = c.firstMultiple,
h = g ? g.center : f.center,
i = b.center = E(d);
b.timeStamp = ra(), b.deltaTime = b.timeStamp - f.timeStamp, b.angle = I(h, i), b.distance = H(h, i), B(c, b), b.offsetDirection = G(b.deltaX, b.deltaY);
var j = F(b.deltaTime, b.deltaX, b.deltaY);
b.overallVelocityX = j.x, b.overallVelocityY = j.y, b.overallVelocity = qa(j.x) > qa(j.y) ? j.x : j.y, b.scale = g ? K(g.pointers, d) : 1, b.rotation = g ? J(g.pointers, d) : 0, b.maxPointers = c.prevInput ? b.pointers.length > c.prevInput.maxPointers ? b.pointers.length : c.prevInput.maxPointers : b.pointers.length, C(c, b);
var k = a.element;
o(b.srcEvent.target, k) && (k = b.srcEvent.target), b.target = k
}
function B(a, b) {
var c = b.center,
d = a.offsetDelta || {},
e = a.prevDelta || {},
f = a.prevInput || {};
b.eventType !== Ea && f.eventType !== Ga || (e = a.prevDelta = {
x: f.deltaX || 0,
y: f.deltaY || 0
}, d = a.offsetDelta = {
x: c.x,
y: c.y
}), b.deltaX = e.x + (c.x - d.x), b.deltaY = e.y + (c.y - d.y)
}
function C(a, b) {
var c, e, f, g, h = a.lastInterval || b,
i = b.timeStamp - h.timeStamp;
if (b.eventType != Ha && (i > Da || h.velocity === d)) {
var j = b.deltaX - h.deltaX,
k = b.deltaY - h.deltaY,
l = F(i, j, k);
e = l.x, f = l.y, c = qa(l.x) > qa(l.y) ? l.x : l.y, g = G(j, k), a.lastInterval = b
} else c = h.velocity, e = h.velocityX, f = h.velocityY, g = h.direction;
b.velocity = c, b.velocityX = e, b.velocityY = f, b.direction = g
}
function D(a) {
for (var b = [], c = 0; c < a.pointers.length;) b[c] = {
clientX: pa(a.pointers[c].clientX),
clientY: pa(a.pointers[c].clientY)
}, c++;
return {
timeStamp: ra(),
pointers: b,
center: E(b),
deltaX: a.deltaX,
deltaY: a.deltaY
}
}
function E(a) {
var b = a.length;
if (1 === b) return {
x: pa(a[0].clientX),
y: pa(a[0].clientY)
};
for (var c = 0, d = 0, e = 0; b > e;) c += a[e].clientX, d += a[e].clientY, e++;
return {
x: pa(c / b),
y: pa(d / b)
}
}
function F(a, b, c) {
return {
x: b / a || 0,
y: c / a || 0
}
}
function G(a, b) {
return a === b ? Ia : qa(a) >= qa(b) ? 0 > a ? Ja : Ka : 0 > b ? La : Ma
}
function H(a, b, c) {
c || (c = Qa);
var d = b[c[0]] - a[c[0]],
e = b[c[1]] - a[c[1]];
return Math.sqrt(d * d + e * e)
}
function I(a, b, c) {
c || (c = Qa);
var d = b[c[0]] - a[c[0]],
e = b[c[1]] - a[c[1]];
return 180 * Math.atan2(e, d) / Math.PI
}
function J(a, b) {
return I(b[1], b[0], Ra) + I(a[1], a[0], Ra)
}
function K(a, b) {
return H(b[0], b[1], Ra) / H(a[0], a[1], Ra)
}
function L() {
this.evEl = Ta, this.evWin = Ua, this.pressed = !1, x.apply(this, arguments)
}
function M() {
this.evEl = Xa, this.evWin = Ya, x.apply(this, arguments), this.store = this.manager.session.pointerEvents = []
}
function N() {
this.evTarget = $a, this.evWin = _a, this.started = !1, x.apply(this, arguments)
}
function O(a, b) {
var c = s(a.touches),
d = s(a.changedTouches);
return b & (Ga | Ha) && (c = t(c.concat(d), "identifier", !0)), [c, d]
}
function P() {
this.evTarget = bb, this.targetIds = {}, x.apply(this, arguments)
}
function Q(a, b) {
var c = s(a.touches),
d = this.targetIds;
if (b & (Ea | Fa) && 1 === c.length) return d[c[0].identifier] = !0, [c, c];
var e, f, g = s(a.changedTouches),
h = [],
i = this.target;
if (f = c.filter(function(a) {
return o(a.target, i)
}), b === Ea)
for (e = 0; e < f.length;) d[f[e].identifier] = !0, e++;
for (e = 0; e < g.length;) d[g[e].identifier] && h.push(g[e]), b & (Ga | Ha) && delete d[g[e].identifier], e++;
return h.length ? [t(f.concat(h), "identifier", !0), h] : void 0
}
function R() {
x.apply(this, arguments);
var a = j(this.handler, this);
this.touch = new P(this.manager, a), this.mouse = new L(this.manager, a), this.primaryTouch = null, this.lastTouches = []
}
function S(a, b) {
a & Ea ? (this.primaryTouch = b.changedPointers[0].identifier, T.call(this, b)) : a & (Ga | Ha) && T.call(this, b)
}
function T(a) {
var b = a.changedPointers[0];
if (b.identifier === this.primaryTouch) {
var c = {
x: b.clientX,
y: b.clientY
};
this.lastTouches.push(c);
var d = this.lastTouches,
e = function() {
var a = d.indexOf(c);
a > -1 && d.splice(a, 1)
};
setTimeout(e, cb)
}
}
function U(a) {
for (var b = a.srcEvent.clientX, c = a.srcEvent.clientY, d = 0; d < this.lastTouches.length; d++) {
var e = this.lastTouches[d],
f = Math.abs(b - e.x),
g = Math.abs(c - e.y);
if (db >= f && db >= g) return !0
}
return !1
}
function V(a, b) {
this.manager = a, this.set(b)
}
function W(a) {
if (p(a, jb)) return jb;
var b = p(a, kb),
c = p(a, lb);
return b && c ? jb : b || c ? b ? kb : lb : p(a, ib) ? ib : hb
}
function X() {
if (!fb) return !1;
var b = {},
c = a.CSS && a.CSS.supports;
return ["auto", "manipulation", "pan-y", "pan-x", "pan-x pan-y", "none"].forEach(function(d) {
b[d] = !c || a.CSS.supports("touch-action", d)
}), b
}
function Y(a) {
this.options = la({}, this.defaults, a || {}), this.id = v(), this.manager = null, this.options.enable = l(this.options.enable, !0), this.state = nb, this.simultaneous = {}, this.requireFail = []
}
function Z(a) {
return a & sb ? "cancel" : a & qb ? "end" : a & pb ? "move" : a & ob ? "start" : ""
}
function $(a) {
return a == Ma ? "down" : a == La ? "up" : a == Ja ? "left" : a == Ka ? "right" : ""
}
function _(a, b) {
var c = b.manager;
return c ? c.get(a) : a
}
function aa() {
Y.apply(this, arguments)
}
function ba() {
aa.apply(this, arguments), this.pX = null, this.pY = null
}
function ca() {
aa.apply(this, arguments)
}
function da() {
Y.apply(this, arguments), this._timer = null, this._input = null
}
function ea() {
aa.apply(this, arguments)
}
function fa() {
aa.apply(this, arguments)
}
function ga() {
Y.apply(this, arguments), this.pTime = !1, this.pCenter = !1, this._timer = null, this._input = null, this.count = 0
}
function ha(a, b) {
return b = b || {}, b.recognizers = l(b.recognizers, ha.defaults.preset), new ia(a, b)
}
function ia(a, b) {
this.options = la({}, ha.defaults, b || {}), this.options.inputTarget = this.options.inputTarget || a, this.handlers = {}, this.session = {}, this.recognizers = [], this.oldCssProps = {}, this.element = a, this.input = y(this), this.touchAction = new V(this, this.options.touchAction), ja(this, !0), g(this.options.recognizers, function(a) {
var b = this.add(new a[0](a[1]));
a[2] && b.recognizeWith(a[2]), a[3] && b.requireFailure(a[3])
}, this)
}
function ja(a, b) {
var c = a.element;
if (c.style) {
var d;
g(a.options.cssProps, function(e, f) {
d = u(c.style, f), b ? (a.oldCssProps[d] = c.style[d], c.style[d] = e) : c.style[d] = a.oldCssProps[d] || ""
}), b || (a.oldCssProps = {})
}
}
function ka(a, c) {
var d = b.createEvent("Event");
d.initEvent(a, !0, !0), d.gesture = c, c.target.dispatchEvent(d)
}
var la, ma = ["", "webkit", "Moz", "MS", "ms", "o"],
na = b.createElement("div"),
oa = "function",
pa = Math.round,
qa = Math.abs,
ra = Date.now;
la = "function" != typeof Object.assign ? function(a) {
if (a === d || null === a) throw new TypeError("Cannot convert undefined or null to object");
for (var b = Object(a), c = 1; c < arguments.length; c++) {
var e = arguments[c];
if (e !== d && null !== e)
for (var f in e) e.hasOwnProperty(f) && (b[f] = e[f])
}
return b
} : Object.assign;
var sa = h(function(a, b, c) {
for (var e = Object.keys(b), f = 0; f < e.length;)(!c || c && a[e[f]] === d) && (a[e[f]] = b[e[f]]), f++;
return a
}, "extend", "Use `assign`."),
ta = h(function(a, b) {
return sa(a, b, !0)
}, "merge", "Use `assign`."),
ua = 1,
va = /mobile|tablet|ip(ad|hone|od)|android/i,
wa = "ontouchstart" in a,
xa = u(a, "PointerEvent") !== d,
ya = wa && va.test(navigator.userAgent),
za = "touch",
Aa = "pen",
Ba = "mouse",
Ca = "kinect",
Da = 25,
Ea = 1,
Fa = 2,
Ga = 4,
Ha = 8,
Ia = 1,
Ja = 2,
Ka = 4,
La = 8,
Ma = 16,
Na = Ja | Ka,
Oa = La | Ma,
Pa = Na | Oa,
Qa = ["x", "y"],
Ra = ["clientX", "clientY"];
x.prototype = {
handler: function() {},
init: function() {
this.evEl && m(this.element, this.evEl, this.domHandler), this.evTarget && m(this.target, this.evTarget, this.domHandler), this.evWin && m(w(this.element), this.evWin, this.domHandler)
},
destroy: function() {
this.evEl && n(this.element, this.evEl, this.domHandler), this.evTarget && n(this.target, this.evTarget, this.domHandler), this.evWin && n(w(this.element), this.evWin, this.domHandler)
}
};
var Sa = {
mousedown: Ea,
mousemove: Fa,
mouseup: Ga
},
Ta = "mousedown",
Ua = "mousemove mouseup";
i(L, x, {
handler: function(a) {
var b = Sa[a.type];
b & Ea && 0 === a.button && (this.pressed = !0), b & Fa && 1 !== a.which && (b = Ga), this.pressed && (b & Ga && (this.pressed = !1), this.callback(this.manager, b, {
pointers: [a],
changedPointers: [a],
pointerType: Ba,
srcEvent: a
}))
}
});
var Va = {
pointerdown: Ea,
pointermove: Fa,
pointerup: Ga,
pointercancel: Ha,
pointerout: Ha
},
Wa = {
2: za,
3: Aa,
4: Ba,
5: Ca
},
Xa = "pointerdown",
Ya = "pointermove pointerup pointercancel";
a.MSPointerEvent && !a.PointerEvent && (Xa = "MSPointerDown", Ya = "MSPointerMove MSPointerUp MSPointerCancel"), i(M, x, {
handler: function(a) {
var b = this.store,
c = !1,
d = a.type.toLowerCase().replace("ms", ""),
e = Va[d],
f = Wa[a.pointerType] || a.pointerType,
g = f == za,
h = r(b, a.pointerId, "pointerId");
e & Ea && (0 === a.button || g) ? 0 > h && (b.push(a), h = b.length - 1) : e & (Ga | Ha) && (c = !0), 0 > h || (b[h] = a, this.callback(this.manager, e, {
pointers: b,
changedPointers: [a],
pointerType: f,
srcEvent: a
}), c && b.splice(h, 1))
}
});
var Za = {
touchstart: Ea,
touchmove: Fa,
touchend: Ga,
touchcancel: Ha
},
$a = "touchstart",
_a = "touchstart touchmove touchend touchcancel";
i(N, x, {
handler: function(a) {
var b = Za[a.type];
if (b === Ea && (this.started = !0), this.started) {
var c = O.call(this, a, b);
b & (Ga | Ha) && c[0].length - c[1].length === 0 && (this.started = !1), this.callback(this.manager, b, {
pointers: c[0],
changedPointers: c[1],
pointerType: za,
srcEvent: a
})
}
}
});
var ab = {
touchstart: Ea,
touchmove: Fa,
touchend: Ga,
touchcancel: Ha
},
bb = "touchstart touchmove touchend touchcancel";
i(P, x, {
handler: function(a) {
var b = ab[a.type],
c = Q.call(this, a, b);
c && this.callback(this.manager, b, {
pointers: c[0],
changedPointers: c[1],
pointerType: za,
srcEvent: a
})
}
});
var cb = 2500,
db = 25;
i(R, x, {
handler: function(a, b, c) {
var d = c.pointerType == za,
e = c.pointerType == Ba;
if (!(e && c.sourceCapabilities && c.sourceCapabilities.firesTouchEvents)) {
if (d) S.call(this, b, c);
else if (e && U.call(this, c)) return;
this.callback(a, b, c)
}
},
destroy: function() {
this.touch.destroy(), this.mouse.destroy()
}
});
var eb = u(na.style, "touchAction"),
fb = eb !== d,
gb = "compute",
hb = "auto",
ib = "manipulation",
jb = "none",
kb = "pan-x",
lb = "pan-y",
mb = X();
V.prototype = {
set: function(a) {
a == gb && (a = this.compute()), fb && this.manager.element.style && mb[a] && (this.manager.element.style[eb] = a), this.actions = a.toLowerCase().trim()
},
update: function() {
this.set(this.manager.options.touchAction)
},
compute: function() {
var a = [];
return g(this.manager.recognizers, function(b) {
k(b.options.enable, [b]) && (a = a.concat(b.getTouchAction()))
}), W(a.join(" "))
},
preventDefaults: function(a) {
var b = a.srcEvent,
c = a.offsetDirection;
if (this.manager.session.prevented) return void b.preventDefault();
var d = this.actions,
e = p(d, jb) && !mb[jb],
f = p(d, lb) && !mb[lb],
g = p(d, kb) && !mb[kb];
if (e) {
var h = 1 === a.pointers.length,
i = a.distance < 2,
j = a.deltaTime < 250;
if (h && i && j) return
}
return g && f ? void 0 : e || f && c & Na || g && c & Oa ? this.preventSrc(b) : void 0
},
preventSrc: function(a) {
this.manager.session.prevented = !0, a.preventDefault()
}
};
var nb = 1,
ob = 2,
pb = 4,
qb = 8,
rb = qb,
sb = 16,
tb = 32;
Y.prototype = {
defaults: {},
set: function(a) {
return la(this.options, a), this.manager && this.manager.touchAction.update(), this
},
recognizeWith: function(a) {
if (f(a, "recognizeWith", this)) return this;
var b = this.simultaneous;
return a = _(a, this), b[a.id] || (b[a.id] = a, a.recognizeWith(this)), this
},
dropRecognizeWith: function(a) {
return f(a, "dropRecognizeWith", this) ? this : (a = _(a, this), delete this.simultaneous[a.id], this)
},
requireFailure: function(a) {
if (f(a, "requireFailure", this)) return this;
var b = this.requireFail;
return a = _(a, this), -1 === r(b, a) && (b.push(a), a.requireFailure(this)), this
},
dropRequireFailure: function(a) {
if (f(a, "dropRequireFailure", this)) return this;
a = _(a, this);
var b = r(this.requireFail, a);
return b > -1 && this.requireFail.splice(b, 1), this
},
hasRequireFailures: function() {
return this.requireFail.length > 0
},
canRecognizeWith: function(a) {
return !!this.simultaneous[a.id]
},
emit: function(a) {
function b(b) {
c.manager.emit(b, a)
}
var c = this,
d = this.state;
qb > d && b(c.options.event + Z(d)), b(c.options.event), a.additionalEvent && b(a.additionalEvent), d >= qb && b(c.options.event + Z(d))
},
tryEmit: function(a) {
return this.canEmit() ? this.emit(a) : void(this.state = tb)
},
canEmit: function() {
for (var a = 0; a < this.requireFail.length;) {
if (!(this.requireFail[a].state & (tb | nb))) return !1;
a++
}
return !0
},
recognize: function(a) {
var b = la({}, a);
return k(this.options.enable, [this, b]) ? (this.state & (rb | sb | tb) && (this.state = nb), this.state = this.process(b), void(this.state & (ob | pb | qb | sb) && this.tryEmit(b))) : (this.reset(), void(this.state = tb))
},
process: function(a) {},
getTouchAction: function() {},
reset: function() {}
}, i(aa, Y, {
defaults: {
pointers: 1
},
attrTest: function(a) {
var b = this.options.pointers;
return 0 === b || a.pointers.length === b
},
process: function(a) {
var b = this.state,
c = a.eventType,
d = b & (ob | pb),
e = this.attrTest(a);
return d && (c & Ha || !e) ? b | sb : d || e ? c & Ga ? b | qb : b & ob ? b | pb : ob : tb
}
}), i(ba, aa, {
defaults: {
event: "pan",
threshold: 10,
pointers: 1,
direction: Pa
},
getTouchAction: function() {
var a = this.options.direction,
b = [];
return a & Na && b.push(lb), a & Oa && b.push(kb), b
},
directionTest: function(a) {
var b = this.options,
c = !0,
d = a.distance,
e = a.direction,
f = a.deltaX,
g = a.deltaY;
return e & b.direction || (b.direction & Na ? (e = 0 === f ? Ia : 0 > f ? Ja : Ka, c = f != this.pX, d = Math.abs(a.deltaX)) : (e = 0 === g ? Ia : 0 > g ? La : Ma, c = g != this.pY, d = Math.abs(a.deltaY))), a.direction = e, c && d > b.threshold && e & b.direction
},
attrTest: function(a) {
return aa.prototype.attrTest.call(this, a) && (this.state & ob || !(this.state & ob) && this.directionTest(a))
},
emit: function(a) {
this.pX = a.deltaX, this.pY = a.deltaY;
var b = $(a.direction);
b && (a.additionalEvent = this.options.event + b), this._super.emit.call(this, a)
}
}), i(ca, aa, {
defaults: {
event: "pinch",
threshold: 0,
pointers: 2
},
getTouchAction: function() {
return [jb]
},
attrTest: function(a) {
return this._super.attrTest.call(this, a) && (Math.abs(a.scale - 1) > this.options.threshold || this.state & ob)
},
emit: function(a) {
if (1 !== a.scale) {
var b = a.scale < 1 ? "in" : "out";
a.additionalEvent = this.options.event + b
}
this._super.emit.call(this, a)
}
}), i(da, Y, {
defaults: {
event: "press",
pointers: 1,
time: 251,
threshold: 9
},
getTouchAction: function() {
return [hb]
},
process: function(a) {
var b = this.options,
c = a.pointers.length === b.pointers,
d = a.distance < b.threshold,
f = a.deltaTime > b.time;
if (this._input = a, !d || !c || a.eventType & (Ga | Ha) && !f) this.reset();
else if (a.eventType & Ea) this.reset(), this._timer = e(function() {
this.state = rb, this.tryEmit()
}, b.time, this);
else if (a.eventType & Ga) return rb;
return tb
},
reset: function() {
clearTimeout(this._timer)
},
emit: function(a) {
this.state === rb && (a && a.eventType & Ga ? this.manager.emit(this.options.event + "up", a) : (this._input.timeStamp = ra(), this.manager.emit(this.options.event, this._input)))
}
}), i(ea, aa, {
defaults: {
event: "rotate",
threshold: 0,
pointers: 2
},
getTouchAction: function() {
return [jb]
},
attrTest: function(a) {
return this._super.attrTest.call(this, a) && (Math.abs(a.rotation) > this.options.threshold || this.state & ob);
}
}), i(fa, aa, {
defaults: {
event: "swipe",
threshold: 10,
velocity: .3,
direction: Na | Oa,
pointers: 1
},
getTouchAction: function() {
return ba.prototype.getTouchAction.call(this)
},
attrTest: function(a) {
var b, c = this.options.direction;
return c & (Na | Oa) ? b = a.overallVelocity : c & Na ? b = a.overallVelocityX : c & Oa && (b = a.overallVelocityY), this._super.attrTest.call(this, a) && c & a.offsetDirection && a.distance > this.options.threshold && a.maxPointers == this.options.pointers && qa(b) > this.options.velocity && a.eventType & Ga
},
emit: function(a) {
var b = $(a.offsetDirection);
b && this.manager.emit(this.options.event + b, a), this.manager.emit(this.options.event, a)
}
}), i(ga, Y, {
defaults: {
event: "tap",
pointers: 1,
taps: 1,
interval: 300,
time: 250,
threshold: 9,
posThreshold: 10
},
getTouchAction: function() {
return [ib]
},
process: function(a) {
var b = this.options,
c = a.pointers.length === b.pointers,
d = a.distance < b.threshold,
f = a.deltaTime < b.time;
if (this.reset(), a.eventType & Ea && 0 === this.count) return this.failTimeout();
if (d && f && c) {
if (a.eventType != Ga) return this.failTimeout();
var g = !this.pTime || a.timeStamp - this.pTime < b.interval,
h = !this.pCenter || H(this.pCenter, a.center) < b.posThreshold;
this.pTime = a.timeStamp, this.pCenter = a.center, h && g ? this.count += 1 : this.count = 1, this._input = a;
var i = this.count % b.taps;
if (0 === i) return this.hasRequireFailures() ? (this._timer = e(function() {
this.state = rb, this.tryEmit()
}, b.interval, this), ob) : rb
}
return tb
},
failTimeout: function() {
return this._timer = e(function() {
this.state = tb
}, this.options.interval, this), tb
},
reset: function() {
clearTimeout(this._timer)
},
emit: function() {
this.state == rb && (this._input.tapCount = this.count, this.manager.emit(this.options.event, this._input))
}
}), ha.VERSION = "2.0.8", ha.defaults = {
domEvents: !1,
touchAction: gb,
enable: !0,
inputTarget: null,
inputClass: null,
preset: [
[ea, {
enable: !1
}],
[ca, {
enable: !1
},
["rotate"]
],
[fa, {
direction: Na
}],
[ba, {
direction: Na
},
["swipe"]
],
[ga],
[ga, {
event: "doubletap",
taps: 2
},
["tap"]
],
[da]
],
cssProps: {
userSelect: "none",
touchSelect: "none",
touchCallout: "none",
contentZooming: "none",
userDrag: "none",
tapHighlightColor: "rgba(0,0,0,0)"
}
};
var ub = 1,
vb = 2;
ia.prototype = {
set: function(a) {
return la(this.options, a), a.touchAction && this.touchAction.update(), a.inputTarget && (this.input.destroy(), this.input.target = a.inputTarget, this.input.init()), this
},
stop: function(a) {
this.session.stopped = a ? vb : ub
},
recognize: function(a) {
var b = this.session;
if (!b.stopped) {
this.touchAction.preventDefaults(a);
var c, d = this.recognizers,
e = b.curRecognizer;
(!e || e && e.state & rb) && (e = b.curRecognizer = null);
for (var f = 0; f < d.length;) c = d[f], b.stopped === vb || e && c != e && !c.canRecognizeWith(e) ? c.reset() : c.recognize(a), !e && c.state & (ob | pb | qb) && (e = b.curRecognizer = c), f++
}
},
get: function(a) {
if (a instanceof Y) return a;
for (var b = this.recognizers, c = 0; c < b.length; c++)
if (b[c].options.event == a) return b[c];
return null
},
add: function(a) {
if (f(a, "add", this)) return this;
var b = this.get(a.options.event);
return b && this.remove(b), this.recognizers.push(a), a.manager = this, this.touchAction.update(), a
},
remove: function(a) {
if (f(a, "remove", this)) return this;
if (a = this.get(a)) {
var b = this.recognizers,
c = r(b, a); - 1 !== c && (b.splice(c, 1), this.touchAction.update())
}
return this
},
on: function(a, b) {
if (a !== d && b !== d) {
var c = this.handlers;
return g(q(a), function(a) {
c[a] = c[a] || [], c[a].push(b)
}), this
}
},
off: function(a, b) {
if (a !== d) {
var c = this.handlers;
return g(q(a), function(a) {
b ? c[a] && c[a].splice(r(c[a], b), 1) : delete c[a]
}), this
}
},
emit: function(a, b) {
this.options.domEvents && ka(a, b);
var c = this.handlers[a] && this.handlers[a].slice();
if (c && c.length) {
b.type = a, b.preventDefault = function() {
b.srcEvent.preventDefault()
};
for (var d = 0; d < c.length;) c[d](b), d++
}
},
destroy: function() {
this.element && ja(this, !1), this.handlers = {}, this.session = {}, this.input.destroy(), this.element = null
}
}, la(ha, {
INPUT_START: Ea,
INPUT_MOVE: Fa,
INPUT_END: Ga,
INPUT_CANCEL: Ha,
STATE_POSSIBLE: nb,
STATE_BEGAN: ob,
STATE_CHANGED: pb,
STATE_ENDED: qb,
STATE_RECOGNIZED: rb,
STATE_CANCELLED: sb,
STATE_FAILED: tb,
DIRECTION_NONE: Ia,
DIRECTION_LEFT: Ja,
DIRECTION_RIGHT: Ka,
DIRECTION_UP: La,
DIRECTION_DOWN: Ma,
DIRECTION_HORIZONTAL: Na,
DIRECTION_VERTICAL: Oa,
DIRECTION_ALL: Pa,
Manager: ia,
Input: x,
TouchAction: V,
TouchInput: P,
MouseInput: L,
PointerEventInput: M,
TouchMouseInput: R,
SingleTouchInput: N,
Recognizer: Y,
AttrRecognizer: aa,
Tap: ga,
Pan: ba,
Swipe: fa,
Pinch: ca,
Rotate: ea,
Press: da,
on: m,
off: n,
each: g,
merge: ta,
extend: sa,
assign: la,
inherit: i,
bindFn: j,
prefixed: u
});
var wb = "undefined" != typeof a ? a : "undefined" != typeof self ? self : {};
wb.Hammer = ha, "function" == typeof define && define.amd ? define(function() {
return ha
}) : "undefined" != typeof module && module.exports ? module.exports = ha : a[c] = ha
}(window, document, "Hammer"),
function() {
"use strict";
function a(a, b, c, d, e, f, g) {
function h() {
return v.length
}
function i(a) {
if (1 !== arguments.length || a)
if (a) o(a.toastId);
else
for (var b = 0; b < v.length; b++) o(v[b].toastId)
}
function j(a, b, c) {
var d = q().iconClasses.error;
return p(d, a, b, c)
}
function k(a, b, c) {
var d = q().iconClasses.info;
return p(d, a, b, c)
}
function l(a, b, c) {
var d = q().iconClasses.success;
return p(d, a, b, c)
}
function m(a, b, c) {
var d = q().iconClasses.warning;
return p(d, a, b, c)
}
function n(a, b) {
a && a.isOpened && v.indexOf(a) >= 0 && a.scope.refreshTimer(b)
}
function o(b, c) {
function d(a) {
for (var b = 0; b < v.length; b++)
if (v[b].toastId === a) return v[b]
}
function e() {
return !v.length
}
var h = d(b);
h && !h.deleting && (h.deleting = !0, h.isOpened = !1, a.leave(h.el).then(function() {
h.scope.options.onHidden && h.scope.options.onHidden(!!c, h), h.scope.$destroy();
var a = v.indexOf(h);
delete x[h.scope.message], v.splice(a, 1);
var b = f.maxOpened;
b && v.length >= b && v[b - 1].open.resolve(), e() && (t.remove(), t = null, y = g.defer())
}))
}
function p(a, b, c, d) {
return angular.isObject(c) && (d = c, c = null), s({
iconClass: a,
message: b,
optionsOverride: d,
title: c
})
}
function q() {
return angular.extend({}, f)
}
function r(b) {
if (t) return y.promise;
t = angular.element("<div></div>"), t.attr("id", b.containerId), t.addClass(b.positionClass), t.css({
"pointer-events": "auto"
});
var c = angular.element(document.querySelector(b.target));
if (!c || !c.length) throw "Target for toasts doesn't exist";
return a.enter(t, c).then(function() {
y.resolve()
}), y.promise
}
function s(c) {
function f() {
return m.autoDismiss && m.maxOpened && v.length > m.maxOpened
}
function h(a, b, c) {
function d(b) {
if (c[b]) return function() {
c[b](a)
}
}
c.allowHtml ? (a.scope.allowHtml = !0, a.scope.title = e.trustAsHtml(b.title), a.scope.message = e.trustAsHtml(b.message)) : (a.scope.title = b.title, a.scope.message = b.message), a.scope.toastType = a.iconClass, a.scope.toastId = a.toastId, a.scope.extraData = c.extraData, a.scope.options = {
extendedTimeOut: c.extendedTimeOut,
messageClass: c.messageClass,
onHidden: c.onHidden,
onShown: d("onShown"),
onTap: d("onTap"),
progressBar: c.progressBar,
tapToDismiss: c.tapToDismiss,
timeOut: c.timeOut,
titleClass: c.titleClass,
toastClass: c.toastClass
}, c.closeButton && (a.scope.options.closeHtml = c.closeHtml)
}
function i() {
function a(a) {
for (var b = ["containerId", "iconClasses", "maxOpened", "newestOnTop", "positionClass", "preventDuplicates", "preventOpenDuplicates", "templates"], c = 0, d = b.length; c < d; c++) delete a[b[c]];
return a
}
var b = {
toastId: u++,
isOpened: !1,
scope: d.$new(),
open: g.defer()
};
return b.iconClass = c.iconClass, c.optionsOverride && (angular.extend(m, a(c.optionsOverride)), b.iconClass = c.optionsOverride.iconClass || b.iconClass), h(b, c, m), b.el = j(b.scope), b
}
function j(a) {
var c = angular.element("<div toast></div>"),
d = b.get("$compile");
return d(c)(a)
}
function k() {
return m.maxOpened && v.length <= m.maxOpened || !m.maxOpened
}
function l() {
var a = m.preventDuplicates && c.message === w,
b = m.preventOpenDuplicates && x[c.message];
return !(!a && !b) || (w = c.message, x[c.message] = !0, !1)
}
var m = q();
if (!l()) {
var n = i();
if (v.push(n), f())
for (var p = v.slice(0, v.length - m.maxOpened), s = 0, y = p.length; s < y; s++) o(p[s].toastId);
return k() && n.open.resolve(), n.open.promise.then(function() {
r(m).then(function() {
if (n.isOpened = !0, m.newestOnTop) a.enter(n.el, t).then(function() {
n.scope.init()
});
else {
var b = t[0].lastChild ? angular.element(t[0].lastChild) : null;
a.enter(n.el, t, b).then(function() {
n.scope.init()
})
}
})
}), n
}
}
var t, u = 0,
v = [],
w = "",
x = {},
y = g.defer(),
z = {
active: h,
clear: i,
error: j,
info: k,
remove: o,
success: l,
warning: m,
refreshTimer: n
};
return z
}
angular.module("toastr", []).factory("toastr", a), a.$inject = ["$animate", "$injector", "$document", "$rootScope", "$sce", "toastrConfig", "$q"]
}(),
function() {
"use strict";
angular.module("toastr").constant("toastrConfig", {
allowHtml: !1,
autoDismiss: !1,
closeButton: !1,
closeHtml: "<button>&times;</button>",
containerId: "toast-container",
extendedTimeOut: 1e3,
iconClasses: {
error: "toast-error",
info: "toast-info",
success: "toast-success",
warning: "toast-warning"
},
maxOpened: 0,
messageClass: "toast-message",
newestOnTop: !0,
onHidden: null,
onShown: null,
onTap: null,
positionClass: "toast-top-right",
preventDuplicates: !1,
preventOpenDuplicates: !1,
progressBar: !1,
tapToDismiss: !0,
target: "body",
templates: {
toast: "directives/toast/toast.html",
progressbar: "directives/progressbar/progressbar.html"
},
timeOut: 5e3,
titleClass: "toast-title",
toastClass: "toast"
})
}(),
function() {
"use strict";
function a(a) {
function b(a, b, c, d) {
function e() {
var a = (h - (new Date).getTime()) / g * 100;
b.css("width", a + "%")
}
var f, g, h;
d.progressBar = a, a.start = function(a) {
f && clearInterval(f), g = parseFloat(a), h = (new Date).getTime() + g, f = setInterval(e, 10)
}, a.stop = function() {
f && clearInterval(f)
}, a.$on("$destroy", function() {
clearInterval(f)
})
}
return {
require: "^toast",
templateUrl: function() {
return a.templates.progressbar
},
link: b
}
}
angular.module("toastr").directive("progressBar", a), a.$inject = ["toastrConfig"]
}(),
function() {
"use strict";
function a() {
this.progressBar = null, this.startProgressBar = function(a) {
this.progressBar && this.progressBar.start(a)
}, this.stopProgressBar = function() {
this.progressBar && this.progressBar.stop()
}
}
angular.module("toastr").controller("ToastController", a)
}(),
function() {
"use strict";
function a(a, b, c, d) {
function e(c, e, f, g) {
function h(a) {
return g.startProgressBar(a), b(function() {
g.stopProgressBar(), d.remove(c.toastId)
}, a, 1)
}
function i() {
c.progressBar = !1, g.stopProgressBar()
}
function j() {
return c.options.closeHtml
}
var k;
if (c.toastClass = c.options.toastClass, c.titleClass = c.options.titleClass, c.messageClass = c.options.messageClass, c.progressBar = c.options.progressBar, j()) {
var l = angular.element(c.options.closeHtml),
m = a.get("$compile");
l.addClass("toast-close-button"), l.attr("ng-click", "close(true, $event)"), m(l)(c), e.children().prepend(l)
}
c.init = function() {
c.options.timeOut && (k = h(c.options.timeOut)), c.options.onShown && c.options.onShown()
}, e.on("mouseenter", function() {
i(), k && b.cancel(k)
}), c.tapToast = function() {
angular.isFunction(c.options.onTap) && c.options.onTap(), c.options.tapToDismiss && c.close(!0)
}, c.close = function(a, b) {
b && angular.isFunction(b.stopPropagation) && b.stopPropagation(), d.remove(c.toastId, a)
}, c.refreshTimer = function(a) {
k && (b.cancel(k), k = h(a || c.options.timeOut))
}, e.on("mouseleave", function() {
0 === c.options.timeOut && 0 === c.options.extendedTimeOut || (c.$apply(function() {
c.progressBar = c.options.progressBar
}), k = h(c.options.extendedTimeOut))
})
}
return {
templateUrl: function() {
return c.templates.toast
},
controller: "ToastController",
link: e
}
}
angular.module("toastr").directive("toast", a), a.$inject = ["$injector", "$interval", "toastrConfig", "toastr"]
}(), angular.module("toastr").run(["$templateCache", function(a) {
a.put("directives/progressbar/progressbar.html", '<div class="toast-progress"></div>\n'), a.put("directives/toast/toast.html", '<div class="{{toastClass}} {{toastType}}" ng-click="tapToast()">\n <div ng-switch on="allowHtml">\n <div ng-switch-default ng-if="title" class="{{titleClass}}" aria-label="{{title}}">{{title}}</div>\n <div ng-switch-default class="{{messageClass}}" aria-label="{{message}}">{{message}}</div>\n <div ng-switch-when="true" ng-if="title" class="{{titleClass}}" ng-bind-html="title"></div>\n <div ng-switch-when="true" class="{{messageClass}}" ng-bind-html="message"></div>\n </div>\n <progress-bar ng-if="progressBar"></progress-bar>\n</div>\n')
}]),
function(a, b, c) {
"use strict";
! function() {
b.module("ngMaterial", ["ng", "ngAnimate", "ngAria", "material.core", "material.core.gestures", "material.core.layout", "material.core.theming.palette", "material.core.theming", "material.core.animate", "material.components.autocomplete", "material.components.backdrop", "material.components.button", "material.components.bottomSheet", "material.components.card", "material.components.checkbox", "material.components.chips", "material.components.colors", "material.components.content", "material.components.datepicker", "material.components.dialog", "material.components.divider", "material.components.fabActions", "material.components.fabShared", "material.components.fabSpeedDial", "material.components.fabToolbar", "material.components.fabTrigger", "material.components.gridList", "material.components.icon", "material.components.list", "material.components.input", "material.components.menuBar", "material.components.menu", "material.components.navBar", "material.components.panel", "material.components.progressCircular", "material.components.progressLinear", "material.components.radioButton", "material.components.sidenav", "material.components.select", "material.components.slider", "material.components.showHide", "material.components.swipe", "material.components.sticky", "material.components.switch", "material.components.subheader", "material.components.tabs", "material.components.toast", "material.components.toolbar", "material.components.tooltip", "material.components.virtualRepeat", "material.components.whiteframe"])
}(),
function() {
function a(a, b) {
if (b.has("$swipe")) {
var c = "You are using the ngTouch module. \nAngular Material already has mobile click, tap, and swipe support... \nngTouch is not supported with Angular Material!";
a.warn(c)
}
}
function c(a, b) {
a.decorator("$$rAF", ["$delegate", d]), b.theme("default").primaryPalette("indigo").accentPalette("pink").warnPalette("deep-orange").backgroundPalette("grey")
}
function d(a) {
return a.throttle = function(b) {
var c, d, e, f;
return function() {
c = arguments, f = this, e = b, d || (d = !0, a(function() {
e.apply(f, Array.prototype.slice.call(c)), d = !1
}))
}
}, a
}
b.module("material.core", ["ngAnimate", "material.core.animate", "material.core.layout", "material.core.gestures", "material.core.theming"]).config(c).run(a), a.$inject = ["$log", "$injector"], c.$inject = ["$provide", "$mdThemingProvider"], d.$inject = ["$delegate"]
}(),
function() {
function a() {
return {
restrict: "A",
link: c
}
}
function c(a, b, c) {
var d = c.mdAutoFocus || c.mdAutofocus || c.mdSidenavFocus;
a.$watch(d, function(a) {
b.toggleClass("_md-autofocus", a)
})
}
b.module("material.core").directive("mdAutofocus", a).directive("mdAutoFocus", a).directive("mdSidenavFocus", a)
}(),
function() {
function a() {
function a(a) {
var b = "#" === a[0] ? a.substr(1) : a,
c = b.length / 3,
d = b.substr(0, c),
e = b.substr(c, c),
f = b.substr(2 * c);
return 1 === c && (d += d, e += e, f += f), "rgba(" + parseInt(d, 16) + "," + parseInt(e, 16) + "," + parseInt(f, 16) + ",0.1)"
}
function b(a) {
a = a.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i);
var b = a && 4 === a.length ? "#" + ("0" + parseInt(a[1], 10).toString(16)).slice(-2) + ("0" + parseInt(a[2], 10).toString(16)).slice(-2) + ("0" + parseInt(a[3], 10).toString(16)).slice(-2) : "";
return b.toUpperCase()
}
function c(a) {
return a.replace(")", ", 0.1)").replace("(", "a(")
}
function d(a) {
return a ? a.replace("rgba", "rgb").replace(/,[^\),]+\)/, ")") : "rgb(0,0,0)"
}
return {
rgbaToHex: b,
hexToRgba: a,
rgbToRgba: c,
rgbaToRgb: d
}
}
b.module("material.core").factory("$mdColorUtil", a)
}(),
function() {
function a(a) {
function c(a) {
var b = f + "-" + a,
c = e(b),
g = c.charAt(0).toLowerCase() + c.substring(1);
return d(a) ? a : d(c) ? c : d(g) ? g : a
}
function d(a) {
return b.isDefined(i.style[a])
}
function e(a) {
return a.replace(h, function(a, b, c, d) {
return d ? c.toUpperCase() : c
})
}
var f = a.vendorPrefix,
g = /webkit/i.test(f),
h = /([:\-_]+(.))/g,
i = document.createElement("div");
return {
KEY_CODE: {
COMMA: 188,
SEMICOLON: 186,
ENTER: 13,
ESCAPE: 27,
SPACE: 32,
PAGE_UP: 33,
PAGE_DOWN: 34,
END: 35,
HOME: 36,
LEFT_ARROW: 37,
UP_ARROW: 38,
RIGHT_ARROW: 39,
DOWN_ARROW: 40,
TAB: 9,
BACKSPACE: 8,
DELETE: 46
},
CSS: {
TRANSITIONEND: "transitionend" + (g ? " webkitTransitionEnd" : ""),
ANIMATIONEND: "animationend" + (g ? " webkitAnimationEnd" : ""),
TRANSFORM: c("transform"),
TRANSFORM_ORIGIN: c("transformOrigin"),
TRANSITION: c("transition"),
TRANSITION_DURATION: c("transitionDuration"),
ANIMATION_PLAY_STATE: c("animationPlayState"),
ANIMATION_DURATION: c("animationDuration"),
ANIMATION_NAME: c("animationName"),
ANIMATION_TIMING: c("animationTimingFunction"),
ANIMATION_DIRECTION: c("animationDirection")
},
MEDIA: {
xs: "(max-width: 599px)",
"gt-xs": "(min-width: 600px)",
sm: "(min-width: 600px) and (max-width: 959px)",
"gt-sm": "(min-width: 960px)",
md: "(min-width: 960px) and (max-width: 1279px)",
"gt-md": "(min-width: 1280px)",
lg: "(min-width: 1280px) and (max-width: 1919px)",
"gt-lg": "(min-width: 1920px)",
xl: "(min-width: 1920px)",
landscape: "(orientation: landscape)",
portrait: "(orientation: portrait)",
print: "print"
},
MEDIA_PRIORITY: ["xl", "gt-lg", "lg", "gt-md", "md", "gt-sm", "sm", "gt-xs", "xs", "landscape", "portrait", "print"]
}
}
b.module("material.core").factory("$mdConstant", a), a.$inject = ["$sniffer"]
}(),
function() {
function a(a, c) {
function d() {
return [].concat(s)
}
function e() {
return s.length
}
function f(a) {
return s.length && a > -1 && a < s.length
}
function g(a) {
return !!a && f(m(a) + 1)
}
function h(a) {
return !!a && f(m(a) - 1)
}
function i(a) {
return f(a) ? s[a] : null
}
function j(a, b) {
return s.filter(function(c) {
return c[a] === b
})
}
function k(a, c) {
return a ? (b.isNumber(c) || (c = s.length), s.splice(c, 0, a), m(a)) : -1
}
function l(a) {
n(a) && s.splice(m(a), 1)
}
function m(a) {
return s.indexOf(a)
}
function n(a) {
return a && m(a) > -1
}
function o() {
return s.length ? s[0] : null
}
function p() {
return s.length ? s[s.length - 1] : null
}
function q(a, d, e, g) {
e = e || r;
for (var h = m(d);;) {
if (!f(h)) return null;
var i = h + (a ? -1 : 1),
j = null;
if (f(i) ? j = s[i] : c && (j = a ? p() : o(), i = m(j)), null === j || i === g) return null;
if (e(j)) return j;
b.isUndefined(g) && (g = i), h = i
}
}
var r = function() {
return !0
};
a && !b.isArray(a) && (a = Array.prototype.slice.call(a)), c = !!c;
var s = a || [];
return {
items: d,
count: e,
inRange: f,
contains: n,
indexOf: m,
itemAt: i,
findBy: j,
add: k,
remove: l,
first: o,
last: p,
next: b.bind(null, q, !1),
previous: b.bind(null, q, !0),
hasPrevious: h,
hasNext: g
}
}
b.module("material.core").config(["$provide", function(b) {
b.decorator("$mdUtil", ["$delegate", function(b) {
return b.iterator = a, b
}])
}])
}(),
function() {
function a(a, c, d) {
function e(a) {
var c = m[a];
b.isUndefined(c) && (c = m[a] = f(a));
var d = o[c];
return b.isUndefined(d) && (d = g(c)), d
}
function f(b) {
return a.MEDIA[b] || ("(" !== b.charAt(0) ? "(" + b + ")" : b)
}
function g(a) {
var b = n[a];
return b || (b = n[a] = d.matchMedia(a)), b.addListener(h), o[b.media] = !!b.matches
}
function h(a) {
c.$evalAsync(function() {
o[a.media] = !!a.matches
})
}
function i(a) {
return n[a]
}
function j(b, c) {
for (var d = 0; d < a.MEDIA_PRIORITY.length; d++) {
var e = a.MEDIA_PRIORITY[d];
if (n[m[e]].matches) {
var f = l(b, c + "-" + e);
if (b[f]) return b[f]
}
}
return b[l(b, c)]
}
function k(c, d, e) {
var f = [];
return c.forEach(function(c) {
var g = l(d, c);
b.isDefined(d[g]) && f.push(d.$observe(g, b.bind(void 0, e, null)));
for (var h in a.MEDIA) g = l(d, c + "-" + h), b.isDefined(d[g]) && f.push(d.$observe(g, b.bind(void 0, e, h)))
}),
function() {
f.forEach(function(a) {
a()
})
}
}
function l(a, b) {
return p[b] || (p[b] = a.$normalize(b))
}
var m = {},
n = {},
o = {},
p = {};
return e.getResponsiveAttribute = j, e.getQuery = i, e.watchResponsiveAttributes = k, e
}
b.module("material.core").factory("$mdMedia", a), a.$inject = ["$mdConstant", "$rootScope", "$window"]
}(),
function() {
function a(a, c) {
function d(a) {
return a = b.isArray(a) ? a : [a], a.forEach(function(b) {
g.forEach(function(c) {
a.push(c + "-" + b)
})
}), a
}
function e(a) {
return a = b.isArray(a) ? a : [a], d(a).map(function(a) {
return "[" + a + "]"
}).join(",")
}
function f(a, b) {
a = a[0] || a;
for (var c = d(b), e = 0; e < c.length; e++)
if (a.hasAttribute(c[e])) return !0;
return !1
}
var g = ["data", "x"];
return a ? c ? e(a) : d(a) : {
buildList: d,
buildSelector: e,
hasAttribute: f
}
}
b.module("material.core").config(["$provide", function(b) {
b.decorator("$mdUtil", ["$delegate", function(b) {
return b.prefixer = a, b
}])
}])
}(),
function() {
function d(d, f, g, h, i, j, k, l, m) {
function n(a) {
return a[0] || a
}
var o = j.startSymbol(),
p = j.endSymbol(),
q = "{{" === o && "}}" === p,
r = function(a, c, d) {
var e = !1;
if (a && a.length) {
var f = m.getComputedStyle(a[0]);
e = b.isDefined(f[c]) && (!d || f[c] == d)
}
return e
},
s = {
dom: {},
now: a.performance ? b.bind(a.performance, a.performance.now) : Date.now || function() {
return (new Date).getTime()
},
bidi: function(a, c, e, f) {
function g(a) {
return a ? h(a) ? a : a + "px" : "0"
}
function h(a) {
return String(a).indexOf("px") > -1
}
var i = !("rtl" == d[0].dir || "rtl" == d[0].body.dir);
return 0 == arguments.length ? i ? "ltr" : "rtl" : void(i && b.isDefined(e) ? b.element(a).css(c, g(e)) : !i && b.isDefined(f) && b.element(a).css(c, g(f)))
},
clientRect: function(a, b, c) {
var d = n(a);
b = n(b || d.offsetParent || document.body);
var e = d.getBoundingClientRect(),
f = c ? b.getBoundingClientRect() : {
left: 0,
top: 0,
width: 0,
height: 0
};
return {
left: e.left - f.left,
top: e.top - f.top,
width: e.width,
height: e.height
}
},
offsetRect: function(a, b) {
return s.clientRect(a, b, !0)
},
nodesToArray: function(a) {
a = a || [];
for (var b = [], c = 0; c < a.length; ++c) b.push(a.item(c));
return b
},
scrollTop: function(a) {
a = b.element(a || d[0].body);
var e = a[0] == d[0].body ? d[0].body : c,
f = e ? e.scrollTop + e.parentElement.scrollTop : 0;
return f || Math.abs(a[0].getBoundingClientRect().top)
},
findFocusTarget: function(a, c) {
function d(a, c) {
var d, e = a[0].querySelectorAll(c);
return e && e.length && e.length && b.forEach(e, function(a) {
a = b.element(a);
var c = a.hasClass("_md-autofocus");
c && (d = a)
}), d
}
var e, f = this.prefixer("md-autofocus", !0);
return e = d(a, c || f), e || c == f || (e = d(a, this.prefixer("md-auto-focus", !0)), e || (e = d(a, f))), e
},
disableScrollAround: function(a, c) {
function e(a) {
function c(a) {
a.preventDefault()
}
a = b.element(a || h)[0];
var d = b.element('<div class="md-scroll-mask"> <div class="md-scroll-mask-bar"></div></div>');
return a.appendChild(d[0]), d.on("wheel", c), d.on("touchmove", c),
function() {
d.off("wheel"), d.off("touchmove"), d[0].parentNode.removeChild(d[0]), delete s.disableScrollAround._enableScrolling
}
}
function f() {
var a = h.parentNode,
b = a.style.cssText || "",
c = h.style.cssText || "",
d = s.scrollTop(h),
e = h.clientWidth;
return h.scrollHeight > h.clientHeight + 1 && (g(h, {
position: "fixed",
width: "100%",
top: -d + "px"
}), a.style.overflowY = "scroll"), h.clientWidth < e && g(h, {
overflow: "hidden"
}),
function() {
h.style.cssText = c, a.style.cssText = b, h.scrollTop = d, a.scrollTop = d
}
}
function g(a, b) {
for (var c in b) a.style[c] = b[c]
}
if (s.disableScrollAround._count = s.disableScrollAround._count || 0, ++s.disableScrollAround._count, s.disableScrollAround._enableScrolling) return s.disableScrollAround._enableScrolling;
var h = d[0].body,
i = f(),
j = e(c);
return s.disableScrollAround._enableScrolling = function() {
--s.disableScrollAround._count || (i(), j(), delete s.disableScrollAround._enableScrolling)
}
},
enableScrolling: function() {
var a = this.disableScrollAround._enableScrolling;
a && a()
},
floatingScrollbars: function() {
if (this.floatingScrollbars.cached === c) {
var a = b.element("<div><div></div></div>").css({
width: "100%",
"z-index": -1,
position: "absolute",
height: "35px",
"overflow-y": "scroll"
});
a.children().css("height", "60px"), d[0].body.appendChild(a[0]), this.floatingScrollbars.cached = a[0].offsetWidth == a[0].childNodes[0].offsetWidth, a.remove()
}
return this.floatingScrollbars.cached
},
forceFocus: function(b) {
var c = b[0] || b;
document.addEventListener("click", function a(b) {
b.target === c && b.$focus && (c.focus(), b.stopImmediatePropagation(), b.preventDefault(), c.removeEventListener("click", a))
}, !0);
var d = document.createEvent("MouseEvents");
d.initMouseEvent("click", !1, !0, a, {}, 0, 0, 0, 0, !1, !1, !1, !1, 0, null), d.$material = !0, d.$focus = !0, c.dispatchEvent(d)
},
createBackdrop: function(a, b) {
return g(s.supplant('<md-backdrop class="{0}">', [b]))(a)
},
supplant: function(a, b, c) {
return c = c || /\{([^\{\}]*)\}/g, a.replace(c, function(a, c) {
var d = c.split("."),
e = b;
try {
for (var f in d) d.hasOwnProperty(f) && (e = e[d[f]])
} catch (b) {
e = a
}
return "string" == typeof e || "number" == typeof e ? e : a
})
},
fakeNgModel: function() {
return {
$fake: !0,
$setTouched: b.noop,
$setViewValue: function(a) {
this.$viewValue = a, this.$render(a), this.$viewChangeListeners.forEach(function(a) {
a()
})
},
$isEmpty: function(a) {
return 0 === ("" + a).length
},
$parsers: [],
$formatters: [],
$viewChangeListeners: [],
$render: b.noop
}
},
debounce: function(a, b, d, e) {
var g;
return function() {
var h = d,
i = Array.prototype.slice.call(arguments);
f.cancel(g), g = f(function() {
g = c, a.apply(h, i)
}, b || 10, e)
}
},
throttle: function(a, b) {
var c;
return function() {
var d = this,
e = arguments,
f = s.now();
(!c || f - c > b) && (a.apply(d, e), c = f)
}
},
time: function(a) {
var b = s.now();
return a(), s.now() - b
},
valueOnUse: function(a, b, c) {
var d = null,
e = Array.prototype.slice.call(arguments),
f = e.length > 3 ? e.slice(3) : [];
Object.defineProperty(a, b, {
get: function() {
return null === d && (d = c.apply(a, f)), d
}
})
},
nextUid: function() {
return "" + e++
},
disconnectScope: function(a) {
if (a && a.$root !== a && !a.$$destroyed) {
var b = a.$parent;
a.$$disconnected = !0, b.$$childHead === a && (b.$$childHead = a.$$nextSibling), b.$$childTail === a && (b.$$childTail = a.$$prevSibling), a.$$prevSibling && (a.$$prevSibling.$$nextSibling = a.$$nextSibling), a.$$nextSibling && (a.$$nextSibling.$$prevSibling = a.$$prevSibling), a.$$nextSibling = a.$$prevSibling = null
}
},
reconnectScope: function(a) {
if (a && a.$root !== a && a.$$disconnected) {
var b = a,
c = b.$parent;
b.$$disconnected = !1, b.$$prevSibling = c.$$childTail, c.$$childHead ? (c.$$childTail.$$nextSibling = b, c.$$childTail = b) : c.$$childHead = c.$$childTail = b
}
},
getClosest: function(a, c, d) {
if (a instanceof b.element && (a = a[0]), c = c.toUpperCase(), d && (a = a.parentNode), !a) return null;
do
if (a.nodeName === c) return a; while (a = a.parentNode);
return null
},
elementContains: function(c, d) {
var e = a.Node && a.Node.prototype && Node.prototype.contains,
f = e ? b.bind(c, c.contains) : b.bind(c, function(a) {
return c === d || !!(16 & this.compareDocumentPosition(a))
});
return f(d)
},
extractElementByName: function(a, c, d, e) {
function f(a) {
return g(a) || (d ? h(a) : null)
}
function g(a) {
if (a)
for (var b = 0, d = a.length; b < d; b++)
if (a[b].nodeName.toLowerCase() === c) return a[b];
return null
}
function h(a) {
var b;
if (a)
for (var c = 0, d = a.length; c < d; c++) {
var e = a[c];
if (!b)
for (var g = 0, h = e.childNodes.length; g < h; g++) b = b || f([e.childNodes[g]])
}
return b
}
var i = f(a);
return !i && e && k.warn(s.supplant("Unable to find node '{0}' in element '{1}'.", [c, a[0].outerHTML])), b.element(i || a)
},
initOptionalProperties: function(a, c, d) {
d = d || {}, b.forEach(a.$$isolateBindings, function(e, f) {
if (e.optional && b.isUndefined(a[f])) {
var g = b.isDefined(c[e.attrName]);
a[f] = b.isDefined(d[f]) ? d[f] : g
}
})
},
nextTick: function(a, b, c) {
function d() {
var a = e.queue,
b = e.digest;
e.queue = [], e.timeout = null, e.digest = !1, a.forEach(function(a) {
var b = a.scope && a.scope.$$destroyed;
b || a.callback()
}), b && h.$digest()
}
var e = s.nextTick,
g = e.timeout,
i = e.queue || [];
return i.push({
scope: c,
callback: a
}), null == b && (b = !0), e.digest = e.digest || b, e.queue = i, g || (e.timeout = f(d, 0, !1))
},
processTemplate: function(a) {
return q ? a : a && b.isString(a) ? a.replace(/\{\{/g, o).replace(/}}/g, p) : a
},
getParentWithPointerEvents: function(a) {
for (var b = a.parent(); r(b, "pointer-events", "none");) b = b.parent();
return b
},
getNearestContentElement: function(a) {
for (var b = a.parent()[0]; b && b !== l[0] && b !== document.body && "MD-CONTENT" !== b.nodeName.toUpperCase();) b = b.parentNode;
return b
},
parseAttributeBoolean: function(a, b) {
return "" === a || !!a && (b === !1 || "false" !== a && "0" !== a)
},
hasComputedStyle: r
};
return s.dom.animator = i(s), s
}
var e = 0;
b.module("material.core").factory("$mdUtil", d), d.$inject = ["$document", "$timeout", "$compile", "$rootScope", "$$mdAnimate", "$interpolate", "$log", "$rootElement", "$window"], b.element.prototype.focus = b.element.prototype.focus || function() {
return this.length && this[0].focus(), this
}, b.element.prototype.blur = b.element.prototype.blur || function() {
return this.length && this[0].blur(), this
}
}(),
function() {
function a(a, c, d, e) {
function f(a, d, e) {
var f = b.element(a)[0] || a;
!f || f.hasAttribute(d) && 0 !== f.getAttribute(d).length || j(f, d) || (e = b.isString(e) ? e.trim() : "", e.length ? a.attr(d, e) : c.warn('ARIA: Attribute "', d, '", required for accessibility, is missing on node:', f))
}
function g(b, c, d) {
a(function() {
f(b, c, d())
})
}
function h(a, b) {
var c = i(a) || "",
d = c.indexOf(e.startSymbol()) > -1;
d ? g(a, b, function() {
return i(a)
}) : f(a, b, c)
}
function i(a) {
function b(b) {
for (; b.parentNode && (b = b.parentNode) !== a;)
if (b.getAttribute && "true" === b.getAttribute("aria-hidden")) return !0
}
a = a[0] || a;
for (var c, d = document.createTreeWalker(a, NodeFilter.SHOW_TEXT, null, !1), e = ""; c = d.nextNode();) b(c) || (e += c.textContent);
return e.trim() || ""
}
function j(a, b) {
function c(a) {
var b = a.currentStyle ? a.currentStyle : d.getComputedStyle(a);
return "none" === b.display
}
var e = a.hasChildNodes(),
f = !1;
if (e)
for (var g = a.childNodes, h = 0; h < g.length; h++) {
var i = g[h];
1 === i.nodeType && i.hasAttribute(b) && (c(i) || (f = !0))
}
return f
}
return {
expect: f,
expectAsync: g,
expectWithText: h
}
}
b.module("material.core").service("$mdAria", a), a.$inject = ["$$rAF", "$log", "$window", "$interpolate"]
}(),
function() {
function a(a, c, d, e, f) {
this.compile = function(g) {
var h = g.templateUrl,
i = g.template || "",
j = g.controller,
k = g.controllerAs,
l = b.extend({}, g.resolve || {}),
m = b.extend({}, g.locals || {}),
n = g.transformTemplate || b.identity,
o = g.bindToController;
return b.forEach(l, function(a, c) {
b.isString(a) ? l[c] = d.get(a) : l[c] = d.invoke(a)
}), b.extend(l, m), h ? l.$template = c(h).then(function(a) {
return a
}) : l.$template = a.when(i), a.all(l).then(function(a) {
var c, d = n(a.$template, g),
h = g.element || b.element("<div>").html(d.trim()).contents(),
i = e(h);
return c = {
locals: a,
element: h,
link: function(d) {
if (a.$scope = d, j) {
var e = f(j, a, !0);
o && b.extend(e.instance, a);
var g = e();
h.data("$ngControllerController", g), h.children().data("$ngControllerController", g), k && (d[k] = g), c.controller = g
}
return i(d)
}
}
})
}
}
b.module("material.core").service("$mdCompiler", a), a.$inject = ["$q", "$templateRequest", "$injector", "$compile", "$controller"]
}(),
function() {
function c() {}
function d(c, d, e) {
function f(a) {
return function(b, c) {
c.distance < this.state.options.maxDistance && this.dispatchEvent(b, a, c)
}
}
function g(a, b, c) {
var d = o[b.replace(/^\$md./, "")];
if (!d) throw new Error("Failed to register element with handler " + b + ". Available handlers: " + Object.keys(o).join(", "));
return d.registerElement(a, c)
}
function i(a, d) {
var e = new c(a);
return b.extend(e, d), o[a] = e, q
}
var j = navigator.userAgent || navigator.vendor || a.opera,
l = j.match(/ipad|iphone|ipod/i),
m = j.match(/android/i),
n = "undefined" != typeof a.jQuery && b.element === a.jQuery,
q = {
handler: i,
register: g,
isHijackingClicks: (l || m) && !n && !p
};
if (q.isHijackingClicks) {
var r = 6;
q.handler("click", {
options: {
maxDistance: r
},
onEnd: f("click")
}), q.handler("focus", {
options: {
maxDistance: r
},
onEnd: function(a, b) {
function c(a) {
var b = ["INPUT", "SELECT", "BUTTON", "TEXTAREA", "VIDEO", "AUDIO"];
return "-1" != a.getAttribute("tabindex") && !a.hasAttribute("DISABLED") && (a.hasAttribute("tabindex") || a.hasAttribute("href") || b.indexOf(a.nodeName) != -1)
}
b.distance < this.state.options.maxDistance && c(a.target) && (this.dispatchEvent(a, "focus", b), a.target.focus())
}
}), q.handler("mouseup", {
options: {
maxDistance: r
},
onEnd: f("mouseup")
}), q.handler("mousedown", {
onStart: function(a) {
this.dispatchEvent(a, "mousedown")
}
})
}
return q.handler("press", {
onStart: function(a, b) {
this.dispatchEvent(a, "$md.pressdown")
},
onEnd: function(a, b) {
this.dispatchEvent(a, "$md.pressup")
}
}).handler("hold", {
options: {
maxDistance: 6,
delay: 500
},
onCancel: function() {
e.cancel(this.state.timeout)
},
onStart: function(a, c) {
return this.state.registeredParent ? (this.state.pos = {
x: c.x,
y: c.y
}, void(this.state.timeout = e(b.bind(this, function() {
this.dispatchEvent(a, "$md.hold"), this.cancel()
}), this.state.options.delay, !1))) : this.cancel()
},
onMove: function(a, b) {
a.preventDefault();
var c = this.state.pos.x - b.x,
d = this.state.pos.y - b.y;
Math.sqrt(c * c + d * d) > this.options.maxDistance && this.cancel()
},
onEnd: function() {
this.onCancel()
}
}).handler("drag", {
options: {
minDistance: 6,
horizontal: !0,
cancelMultiplier: 1.5
},
onStart: function(a) {
this.state.registeredParent || this.cancel()
},
onMove: function(a, b) {
var c, d;
a.preventDefault(), this.state.dragPointer ? this.dispatchDragMove(a) : (this.state.options.horizontal ? (c = Math.abs(b.distanceX) > this.state.options.minDistance, d = Math.abs(b.distanceY) > this.state.options.minDistance * this.state.options.cancelMultiplier) : (c = Math.abs(b.distanceY) > this.state.options.minDistance, d = Math.abs(b.distanceX) > this.state.options.minDistance * this.state.options.cancelMultiplier), c ? (this.state.dragPointer = h(a), k(a, this.state.dragPointer), this.dispatchEvent(a, "$md.dragstart", this.state.dragPointer)) : d && this.cancel())
},
dispatchDragMove: d.throttle(function(a) {
this.state.isRunning && (k(a, this.state.dragPointer), this.dispatchEvent(a, "$md.drag", this.state.dragPointer))
}),
onEnd: function(a, b) {
this.state.dragPointer && (k(a, this.state.dragPointer), this.dispatchEvent(a, "$md.dragend", this.state.dragPointer))
}
}).handler("swipe", {
options: {
minVelocity: .65,
minDistance: 10
},
onEnd: function(a, b) {
var c;
Math.abs(b.velocityX) > this.state.options.minVelocity && Math.abs(b.distanceX) > this.state.options.minDistance ? (c = "left" == b.directionX ? "$md.swipeleft" : "$md.swiperight", this.dispatchEvent(a, c)) : Math.abs(b.velocityY) > this.state.options.minVelocity && Math.abs(b.distanceY) > this.state.options.minDistance && (c = "up" == b.directionY ? "$md.swipeup" : "$md.swipedown", this.dispatchEvent(a, c))
}
})
}
function e(a) {
this.name = a, this.state = {}
}
function f() {
function c(a, c, d) {
d = d || m;
var e = new b.element.Event(c);
e.$material = !0, e.pointer = d, e.srcEvent = a, b.extend(e, {
clientX: d.x,
clientY: d.y,
screenX: d.x,
screenY: d.y,
pageX: d.x,
pageY: d.y,
ctrlKey: a.ctrlKey,
altKey: a.altKey,
shiftKey: a.shiftKey,
metaKey: a.metaKey
}), b.element(d.target).trigger(e)
}
function d(b, c, d) {
d = d || m;
var e;
"click" === c || "mouseup" == c || "mousedown" == c ? (e = document.createEvent("MouseEvents"), e.initMouseEvent(c, !0, !0, a, b.detail, d.x, d.y, d.x, d.y, b.ctrlKey, b.altKey, b.shiftKey, b.metaKey, b.button, b.relatedTarget || null)) : (e = document.createEvent("CustomEvent"), e.initCustomEvent(c, !0, !0, {})), e.$material = !0, e.pointer = d, e.srcEvent = b, d.target.dispatchEvent(e)
}
var f = "undefined" != typeof a.jQuery && b.element === a.jQuery;
return e.prototype = {
options: {},
dispatchEvent: f ? c : d,
onStart: b.noop,
onMove: b.noop,
onEnd: b.noop,
onCancel: b.noop,
start: function(a, c) {
if (!this.state.isRunning) {
var d = this.getNearestParent(a.target),
e = d && d.$mdGesture[this.name] || {};
this.state = {
isRunning: !0,
options: b.extend({}, this.options, e),
registeredParent: d
}, this.onStart(a, c)
}
},
move: function(a, b) {
this.state.isRunning && this.onMove(a, b)
},
end: function(a, b) {
this.state.isRunning && (this.onEnd(a, b), this.state.isRunning = !1)
},
cancel: function(a, b) {
this.onCancel(a, b), this.state = {}
},
getNearestParent: function(a) {
for (var b = a; b;) {
if ((b.$mdGesture || {})[this.name]) return b;
b = b.parentNode
}
return null
},
registerElement: function(a, b) {
function c() {
delete a[0].$mdGesture[d.name], a.off("$destroy", c)
}
var d = this;
return a[0].$mdGesture = a[0].$mdGesture || {}, a[0].$mdGesture[this.name] = b || {}, a.on("$destroy", c), c
}
}, e
}
function g(a, c) {
function d(a) {
var b = !a.clientX && !a.clientY;
b || a.$material || a.isIonicTap || j(a) || (a.preventDefault(), a.stopPropagation())
}
function e(a) {
var b = 0 === a.clientX && 0 === a.clientY;
b || a.$material || a.isIonicTap || j(a) ? (q = null, "label" == a.target.tagName.toLowerCase() && (q = {
x: a.x,
y: a.y
})) : (a.preventDefault(), a.stopPropagation(), q = null)
}
function f(a, b) {
var d;
for (var e in o) d = o[e], d instanceof c && ("start" === a && d.cancel(), d[a](b, m))
}
function g(a) {
if (!m) {
var b = +Date.now();
n && !i(a, n) && b - n.endTime < 1500 || (m = h(a), f("start", a))
}
}
function l(a) {
m && i(a, m) && (k(a, m), f("move", a))
}
function p(a) {
m && i(a, m) && (k(a, m), m.endTime = +Date.now(), f("end", a), n = m, m = null)
}
document.contains || (document.contains = function(a) {
return document.body.contains(a)
}), !r && a.isHijackingClicks && (document.addEventListener("click", e, !0), document.addEventListener("mouseup", d, !0), document.addEventListener("mousedown", d, !0), document.addEventListener("focus", d, !0), r = !0);
var s = "mousedown touchstart pointerdown",
t = "mousemove touchmove pointermove",
u = "mouseup mouseleave touchend touchcancel pointerup pointercancel";
b.element(document).on(s, g).on(t, l).on(u, p).on("$$mdGestureReset", function() {
n = m = null
})
}
function h(a) {
var b = l(a),
c = {
startTime: +Date.now(),
target: a.target,
type: a.type.charAt(0)
};
return c.startX = c.x = b.pageX, c.startY = c.y = b.pageY, c
}
function i(a, b) {
return a && b && a.type.charAt(0) === b.type
}
function j(a) {
return q && q.x == a.x && q.y == a.y
}
function k(a, b) {
var c = l(a),
d = b.x = c.pageX,
e = b.y = c.pageY;
b.distanceX = d - b.startX, b.distanceY = e - b.startY, b.distance = Math.sqrt(b.distanceX * b.distanceX + b.distanceY * b.distanceY), b.directionX = b.distanceX > 0 ? "right" : b.distanceX < 0 ? "left" : "", b.directionY = b.distanceY > 0 ? "down" : b.distanceY < 0 ? "up" : "", b.duration = +Date.now() - b.startTime, b.velocityX = b.distanceX / b.duration, b.velocityY = b.distanceY / b.duration
}
function l(a) {
return a = a.originalEvent || a, a.touches && a.touches[0] || a.changedTouches && a.changedTouches[0] || a
}
var m, n, o = {},
p = !1,
q = null,
r = !1;
b.module("material.core.gestures", []).provider("$mdGesture", c).factory("$$MdGestureHandler", f).run(g), c.prototype = {
skipClickHijack: function() {
return p = !0
},
$get: ["$$MdGestureHandler", "$$rAF", "$timeout", function(a, b, c) {
return new d(a, b, c)
}]
}, d.$inject = ["$$MdGestureHandler", "$$rAF", "$timeout"], g.$inject = ["$mdGesture", "$$MdGestureHandler"]
}(),
function() {
function a() {
function a(a) {
function c(a) {
return i.optionsFactory = a.options, i.methods = (a.methods || []).concat(g), j
}
function d(a, b) {
return h[a] = b, j
}
function e(b, c) {
if (c = c || {}, c.methods = c.methods || [], c.options = c.options || function() {
return {}
}, /^cancel|hide|show$/.test(b)) throw new Error("Preset '" + b + "' in " + a + " is reserved!");
if (c.methods.indexOf("_options") > -1) throw new Error("Method '_options' in " + a + " is reserved!");
return i.presets[b] = {
methods: c.methods.concat(g),
optionsFactory: c.options,
argOption: c.argOption
}, j
}
function f(c, d) {
function e(a) {
return a = a || {}, a._options && (a = a._options), l.show(b.extend({}, k, a))
}
function f(a) {
return l.destroy(a)
}
function g(b, c) {
var e = {};
return e[a] = m, d.invoke(b || function() {
return c
}, {}, e)
}
var j, k, l = c(),
m = {
hide: l.hide,
cancel: l.cancel,
show: e,
destroy: f
};
return j = i.methods || [], k = g(i.optionsFactory, {}), b.forEach(h, function(a, b) {
m[b] = a
}), b.forEach(i.presets, function(a, c) {
function d(a) {
this._options = b.extend({}, e, a)
}
var e = g(a.optionsFactory, {}),
f = (a.methods || []).concat(j);
if (b.extend(e, {
$type: c
}), b.forEach(f, function(a) {
d.prototype[a] = function(b) {
return this._options[a] = b, this
}
}), a.argOption) {
var h = "show" + c.charAt(0).toUpperCase() + c.slice(1);
m[h] = function(a) {
var b = m[c](a);
return m.show(b)
}
}
m[c] = function(c) {
return arguments.length && a.argOption && !b.isObject(c) && !b.isArray(c) ? (new d)[a.argOption](c) : new d(c)
}
}), m
}
var g = ["onHide", "onShow", "onRemove"],
h = {},
i = {
presets: {}
},
j = {
setDefaults: c,
addPreset: e,
addMethod: d,
$get: f
};
return j.addPreset("build", {
methods: ["controller", "controllerAs", "resolve", "template", "templateUrl", "themable", "transformTemplate", "parent"]
}), f.$inject = ["$$interimElement", "$injector"], j
}
function d(a, d, e, f, g, h, i, j, k, l, m) {
return function() {
function n(a) {
a = a || {};
var b = new r(a || {}),
c = !a.skipHide && u.length ? s.cancel() : d.when(!0);
return c.finally(function() {
u.push(b), b.show().catch(function(a) {
return a
})
}), b.deferred.promise
}
function o(a, b) {
function e(c) {
return c.remove(a, !1, b || {}).catch(function(a) {
return a
}), c.deferred.promise
}
if (!u.length) return d.when(a);
if (b = b || {}, b.closeAll) {
var f = d.all(u.reverse().map(e));
return u = [], f
}
if (b.closeTo !== c) return d.all(u.splice(b.closeTo).map(e));
var g = u.pop();
return e(g)
}
function p(a, c) {
var e = u.pop();
return e ? (e.remove(a, !0, c || {}).catch(function(a) {
return a
}), e.deferred.promise.catch(b.noop)) : d.when(a)
}
function q(a) {
var c = a ? null : u.shift(),
e = b.element(a).length ? b.element(a)[0].parentNode : null;
if (e) {
var f = u.filter(function(a) {
var b = a.options.element[0];
return b === e
});
f.length > 0 && (c = f[0], u.splice(u.indexOf(c), 1))
}
return c ? c.remove(t, !1, {
$destroy: !0
}) : d.when(t)
}
function r(m) {
function n() {
return d(function(a, b) {
function c(a) {
x.deferred.reject(a), b(a)
}
q(m).then(function(b) {
y = r(b, m), z = v(y, m, b.controller).then(a, c)
}, c)
})
}
function o(a, c, e) {
function f(a) {
x.deferred.resolve(a)
}
function g(a) {
x.deferred.reject(a)
}
return y ? (m = b.extend(m || {}, e || {}), m.cancelAutoHide && m.cancelAutoHide(), m.element.triggerHandler("$mdInterimElementRemove"), m.$destroy === !0 ? w(m.element, m).then(function() {
c && g(a) || f(a)
}) : (d.when(z).finally(function() {
w(m.element, m).then(function() {
c && g(a) || f(a)
}, g)
}), x.deferred.promise)) : d.when(!1)
}
function p(a) {
return a = a || {}, a.template && (a.template = j.processTemplate(a.template)), b.extend({
preserveScope: !1,
cancelAutoHide: b.noop,
scope: a.scope || f.$new(a.isolateScope),
onShow: function(a, b, c) {
return i.enter(b, c.parent)
},
onRemove: function(a, b) {
return b && i.leave(b) || d.when()
}
}, a)
}
function q(a) {
var b = a.skipCompile ? null : k.compile(a);
return b || d(function(b) {
b({
locals: {},
link: function() {
return a.element
}
})
})
}
function r(a, c) {
b.extend(a.locals, c);
var d = a.link(c.scope);
return c.element = d, c.parent = t(d, c), c.themable && l(d), d
}
function t(c, d) {
var e = d.parent;
if (e = b.isFunction(e) ? e(d.scope, c, d) : b.isString(e) ? b.element(a[0].querySelector(e)) : b.element(e), !(e || {}).length) {
var f;
return h[0] && h[0].querySelector && (f = h[0].querySelector(":not(svg) > body")), f || (f = h[0]), "#comment" == f.nodeName && (f = a[0].body), b.element(f)
}
return e
}
function u() {
var a, d = b.noop;
m.hideDelay && (a = g(s.hide, m.hideDelay), d = function() {
g.cancel(a)
}), m.cancelAutoHide = function() {
d(), m.cancelAutoHide = c
}
}
function v(a, c, e) {
var f = c.onShowing || b.noop,
g = c.onComplete || b.noop;
return f(c.scope, a, c, e), d(function(b, f) {
try {
d.when(c.onShow(c.scope, a, c, e)).then(function() {
g(c.scope, a, c), u(), b(a)
}, f)
} catch (a) {
f(a.message)
}
})
}
function w(a, c) {
var d = c.onRemoving || b.noop;
return e(function(b, f) {
try {
var g = e.when(c.onRemove(c.scope, a, c) || !0);
d(a, g), 1 == c.$destroy ? b(a) : g.then(function() {
!c.preserveScope && c.scope && c.scope.$destroy(), b(a)
}, f)
} catch (a) {
f(a)
}
})
}
var x, y, z = d.when(!0);
return m = p(m), x = {
options: m,
deferred: d.defer(),
show: n,
remove: o
}
}
var s, t = !1,
u = [];
return s = {
show: n,
hide: o,
cancel: p,
destroy: q,
$injector_: m
}
}
}
return a.$get = d, d.$inject = ["$document", "$q", "$$q", "$rootScope", "$timeout", "$rootElement", "$animate", "$mdUtil", "$mdCompiler", "$mdTheming", "$injector"], a
}
b.module("material.core").provider("$$interimElement", a)
}(),
function() {
! function() {
function a(a) {
function g(a) {
return a.replace(i, "").replace(j, function(a, b, c, d) {
return d ? c.toUpperCase() : c
})
}
var i = /^((?:x|data)[\:\-_])/i,
j = /([\:\-\_]+(.))/g,
k = ["", "xs", "gt-xs", "sm", "gt-sm", "md", "gt-md", "lg", "gt-lg", "xl", "print"],
l = ["layout", "flex", "flex-order", "flex-offset", "layout-align"],
m = ["show", "hide", "layout-padding", "layout-margin"];
b.forEach(k, function(c) {
b.forEach(l, function(b) {
var d = c ? b + "-" + c : b;
a.directive(g(d), e(d))
}), b.forEach(m, function(b) {
var d = c ? b + "-" + c : b;
a.directive(g(d), f(d))
})
}), a.directive("mdLayoutCss", c).directive("ngCloak", d("ng-cloak")).directive("layoutWrap", f("layout-wrap")).directive("layoutNowrap", f("layout-nowrap")).directive("layoutNoWrap", f("layout-no-wrap")).directive("layoutFill", f("layout-fill")).directive("layoutLtMd", h("layout-lt-md", !0)).directive("layoutLtLg", h("layout-lt-lg", !0)).directive("flexLtMd", h("flex-lt-md", !0)).directive("flexLtLg", h("flex-lt-lg", !0)).directive("layoutAlignLtMd", h("layout-align-lt-md")).directive("layoutAlignLtLg", h("layout-align-lt-lg")).directive("flexOrderLtMd", h("flex-order-lt-md")).directive("flexOrderLtLg", h("flex-order-lt-lg")).directive("offsetLtMd", h("flex-offset-lt-md")).directive("offsetLtLg", h("flex-offset-lt-lg")).directive("hideLtMd", h("hide-lt-md")).directive("hideLtLg", h("hide-lt-lg")).directive("showLtMd", h("show-lt-md")).directive("showLtLg", h("show-lt-lg"))
}
function c() {
return {
restrict: "A",
priority: "900",
compile: function(a, c) {
return y.enabled = !1, b.noop
}
}
}
function d(a) {
return ["$timeout", function(c) {
return {
restrict: "A",
priority: -10,
compile: function(d) {
return y.enabled ? (d.addClass(a), function(b, d) {
c(function() {
d.removeClass(a)
}, 10, !1)
}) : b.noop
}
}
}]
}
function e(a) {
function c(b, c, d) {
var e = g(c, a, d),
f = d.$observe(d.$normalize(a), e);
e(m(a, d, "")), b.$on("$destroy", function() {
f()
})
}
return ["$mdUtil", "$interpolate", "$log", function(d, e, f) {
return p = d, q = e, r = f, {
restrict: "A",
compile: function(d, e) {
var f;
return y.enabled && (i(a, e, d, r), j(a, m(a, e, ""), k(d, a, e)), f = c), f || b.noop
}
}
}]
}
function f(a) {
function c(b, c) {
c.addClass(a)
}
return ["$mdUtil", "$interpolate", "$log", function(d, e, f) {
return p = d, q = e, r = f, {
restrict: "A",
compile: function(d, e) {
var f;
return y.enabled && (j(a, m(a, e, ""), k(d, a, e)), c(null, d), f = c), f || b.noop
}
}
}]
}
function g(a, c) {
var d;
return function(e) {
var f = j(c, e || "");
b.isDefined(f) && (d && a.removeClass(d), d = f ? c + "-" + f.replace(t, "-") : c, a.addClass(d))
}
}
function h(a) {
var c = a.split("-");
return ["$log", function(d) {
return d.warn(a + "has been deprecated. Please use a `" + c[0] + "-gt-<xxx>` variant."), b.noop
}]
}
function i(a, b, c, d) {
var e, f, g, h = c[0].nodeName.toLowerCase();
switch (a.replace(s, "")) {
case "flex":
"md-button" != h && "fieldset" != h || (f = "<" + h + " " + a + "></" + h + ">", g = "https://github.com/philipwalton/flexbugs#9-some-html-elements-cant-be-flex-containers", e = "Markup '{0}' may not work as expected in IE Browsers. Consult '{1}' for details.", d.warn(p.supplant(e, [f, g])))
}
}
function j(a, c, d) {
var e = c;
if (!l(c)) {
switch (a.replace(s, "")) {
case "layout":
n(c, v) || (c = v[0]);
break;
case "flex":
n(c, u) || isNaN(c) && (c = "");
break;
case "flex-offset":
case "flex-order":
c && !isNaN(+c) || (c = "0");
break;
case "layout-align":
var f = o(c);
c = p.supplant("{main}-{cross}", f);
break;
case "layout-padding":
case "layout-margin":
case "layout-fill":
case "layout-wrap":
case "layout-nowrap":
case "layout-nowrap":
c = ""
}
c != e && (d || b.noop)(c)
}
return c
}
function k(a, b, c) {
return function(a) {
l(a) || (c[c.$normalize(b)] = a)
}
}
function l(a) {
return (a || "").indexOf(q.startSymbol()) > -1
}
function m(a, b, c) {
var d = b.$normalize(a);
return b[d] ? b[d].replace(t, "-") : c || null
}
function n(a, b, c) {
a = c && a ? a.replace(t, c) : a;
var d = !1;
return a && b.forEach(function(b) {
b = c ? b.replace(t, c) : b, d = d || b === a
}), d
}
function o(a) {
var b, c = {
main: "start",
cross: "stretch"
};
return a = a || "", 0 != a.indexOf("-") && 0 != a.indexOf(" ") || (a = "none" + a), b = a.toLowerCase().trim().replace(t, "-").split("-"), b.length && "space" === b[0] && (b = [b[0] + "-" + b[1], b[2]]), b.length > 0 && (c.main = b[0] || c.main), b.length > 1 && (c.cross = b[1] || c.cross), w.indexOf(c.main) < 0 && (c.main = "start"), x.indexOf(c.cross) < 0 && (c.cross = "stretch"), c
}
var p, q, r, s = /(-gt)?-(sm|md|lg|print)/g,
t = /\s+/g,
u = ["grow", "initial", "auto", "none", "noshrink", "nogrow"],
v = ["row", "column"],
w = ["", "start", "center", "end", "stretch", "space-around", "space-between"],
x = ["", "start", "center", "end", "stretch"],
y = {
enabled: !0,
breakpoints: []
};
a(b.module("material.core.layout", ["ng"]))
}()
}(),
function() {
function a(a, d) {
function e(a) {
return a && "" !== a
}
var f, g = [],
h = {};
return f = {
notFoundError: function(b, c) {
a.error((c || "") + "No instance found for handle", b)
},
getInstances: function() {
return g
},
get: function(a) {
if (!e(a)) return null;
var b, c, d;
for (b = 0, c = g.length; b < c; b++)
if (d = g[b], d.$$mdHandle === a) return d;
return null
},
register: function(a, c) {
function d() {
var b = g.indexOf(a);
b !== -1 && g.splice(b, 1)
}
function e() {
var b = h[c];
b && (b.forEach(function(b) {
b.resolve(a)
}), delete h[c])
}
return c ? (a.$$mdHandle = c, g.push(a), e(), d) : b.noop
},
when: function(a) {
if (e(a)) {
var b = d.defer(),
g = f.get(a);
return g ? b.resolve(g) : (h[a] === c && (h[a] = []), h[a].push(b)), b.promise
}
return d.reject("Invalid `md-component-id` value.")
}
}
}
b.module("material.core").factory("$mdComponentRegistry", a), a.$inject = ["$log", "$q"]
}(),
function() {
! function() {
function a(a) {
function c(a) {
return a.hasClass("md-icon-button") ? {
isMenuItem: a.hasClass("md-menu-item"),
fitRipple: !0,
center: !0
} : {
isMenuItem: a.hasClass("md-menu-item"),
dimBackground: !0
}
}
return {
attach: function(d, e, f) {
return f = b.extend(c(e), f), a.attach(d, e, f)
}
}
}
b.module("material.core").factory("$mdButtonInkRipple", a), a.$inject = ["$mdInkRipple"]
}()
}(),
function() {
! function() {
function a(a) {
function c(c, d, e) {
return a.attach(c, d, b.extend({
center: !0,
dimBackground: !1,
fitRipple: !0
}, e))
}
return {
attach: c
}
}
b.module("material.core").factory("$mdCheckboxInkRipple", a), a.$inject = ["$mdInkRipple"]
}()
}(),
function() {
! function() {
function a(a) {
function c(c, d, e) {
return a.attach(c, d, b.extend({
center: !1,
dimBackground: !0,
outline: !1,
rippleSize: "full"
}, e))
}
return {
attach: c
}
}
b.module("material.core").factory("$mdListInkRipple", a), a.$inject = ["$mdInkRipple"]
}()
}(),
function() {
function a(a, c) {
return {
controller: b.noop,
link: function(b, d, e) {
e.hasOwnProperty("mdInkRippleCheckbox") ? c.attach(b, d) : a.attach(b, d)
}
}
}
function c() {
function a() {
c = !0
}
var c = !1;
return {
disableInkRipple: a,
$get: ["$injector", function(a) {
function e(e, f, g) {
return c || f.controller("mdNoInk") ? b.noop : a.instantiate(d, {
$scope: e,
$element: f,
rippleOptions: g
})
}
return {
attach: e
}
}]
}
}
function d(a, c, d, e, f, g, h) {
this.$window = e, this.$timeout = f, this.$mdUtil = g, this.$mdColorUtil = h, this.$scope = a, this.$element = c, this.options = d, this.mousedown = !1, this.ripples = [], this.timeout = null, this.lastRipple = null, g.valueOnUse(this, "container", this.createContainer), this.$element.addClass("md-ink-ripple"), (c.controller("mdInkRipple") || {}).createRipple = b.bind(this, this.createRipple), (c.controller("mdInkRipple") || {}).setColor = b.bind(this, this.color), this.bindEvents()
}
function e(a, c) {
(a.mousedown || a.lastRipple) && (a.mousedown = !1, a.$mdUtil.nextTick(b.bind(a, c), !1))
}
function f() {
return {
controller: b.noop
}
}
b.module("material.core").provider("$mdInkRipple", c).directive("mdInkRipple", a).directive("mdNoInk", f).directive("mdNoBar", f).directive("mdNoStretch", f);
var g = 450;
a.$inject = ["$mdButtonInkRipple", "$mdCheckboxInkRipple"], d.$inject = ["$scope", "$element", "rippleOptions", "$window", "$timeout", "$mdUtil", "$mdColorUtil"], d.prototype.color = function(a) {
function c() {
var a = d.options && d.options.colorElement ? d.options.colorElement : [],
b = a.length ? a[0] : d.$element[0];
return b ? d.$window.getComputedStyle(b).color : "rgb(0,0,0)"
}
var d = this;
return b.isDefined(a) && (d._color = d._parseColor(a)), d._color || d._parseColor(d.inkRipple()) || d._parseColor(c())
}, d.prototype.calculateColor = function() {
return this.color()
}, d.prototype._parseColor = function(a, b) {
b = b || 1;
var c = this.$mdColorUtil;
if (a) return 0 === a.indexOf("rgba") ? a.replace(/\d?\.?\d*\s*\)\s*$/, (.1 * b).toString() + ")") : 0 === a.indexOf("rgb") ? c.rgbToRgba(a) : 0 === a.indexOf("#") ? c.hexToRgba(a) : void 0
}, d.prototype.bindEvents = function() {
this.$element.on("mousedown", b.bind(this, this.handleMousedown)), this.$element.on("mouseup touchend", b.bind(this, this.handleMouseup)), this.$element.on("mouseleave", b.bind(this, this.handleMouseup)), this.$element.on("touchmove", b.bind(this, this.handleTouchmove))
}, d.prototype.handleMousedown = function(a) {
if (!this.mousedown)
if (a.hasOwnProperty("originalEvent") && (a = a.originalEvent), this.mousedown = !0, this.options.center) this.createRipple(this.container.prop("clientWidth") / 2, this.container.prop("clientWidth") / 2);
else if (a.srcElement !== this.$element[0]) {
var b = this.$element[0].getBoundingClientRect(),
c = a.clientX - b.left,
d = a.clientY - b.top;
this.createRipple(c, d)
} else this.createRipple(a.offsetX, a.offsetY)
}, d.prototype.handleMouseup = function() {
e(this, this.clearRipples)
}, d.prototype.handleTouchmove = function() {
e(this, this.deleteRipples)
}, d.prototype.deleteRipples = function() {
for (var a = 0; a < this.ripples.length; a++) this.ripples[a].remove()
}, d.prototype.clearRipples = function() {
for (var a = 0; a < this.ripples.length; a++) this.fadeInComplete(this.ripples[a])
}, d.prototype.createContainer = function() {
var a = b.element('<div class="md-ripple-container"></div>');
return this.$element.append(a), a
}, d.prototype.clearTimeout = function() {
this.timeout && (this.$timeout.cancel(this.timeout), this.timeout = null)
}, d.prototype.isRippleAllowed = function() {
var a = this.$element[0];
do {
if (!a.tagName || "BODY" === a.tagName) break;
if (a && b.isFunction(a.hasAttribute)) {
if (a.hasAttribute("disabled")) return !1;
if ("false" === this.inkRipple() || "0" === this.inkRipple()) return !1
}
} while (a = a.parentNode);
return !0
}, d.prototype.inkRipple = function() {
return this.$element.attr("md-ink-ripple")
}, d.prototype.createRipple = function(a, c) {
function d(a, b, c) {
return a ? Math.max(b, c) : Math.sqrt(Math.pow(b, 2) + Math.pow(c, 2))
}
if (this.isRippleAllowed()) {
var e = this,
f = e.$mdColorUtil,
h = b.element('<div class="md-ripple"></div>'),
i = this.$element.prop("clientWidth"),
j = this.$element.prop("clientHeight"),
k = 2 * Math.max(Math.abs(i - a), a),
l = 2 * Math.max(Math.abs(j - c), c),
m = d(this.options.fitRipple, k, l),
n = this.calculateColor();
h.css({
left: a + "px",
top: c + "px",
background: "black",
width: m + "px",
height: m + "px",
backgroundColor: f.rgbaToRgb(n),
borderColor: f.rgbaToRgb(n)
}), this.lastRipple = h, this.clearTimeout(), this.timeout = this.$timeout(function() {
e.clearTimeout(), e.mousedown || e.fadeInComplete(h)
}, .35 * g, !1), this.options.dimBackground && this.container.css({
backgroundColor: n
}), this.container.append(h), this.ripples.push(h), h.addClass("md-ripple-placed"), this.$mdUtil.nextTick(function() {
h.addClass("md-ripple-scaled md-ripple-active"), e.$timeout(function() {
e.clearRipples()
}, g, !1)
}, !1)
}
}, d.prototype.fadeInComplete = function(a) {
this.lastRipple === a ? this.timeout || this.mousedown || this.removeRipple(a) : this.removeRipple(a)
}, d.prototype.removeRipple = function(a) {
var b = this,
c = this.ripples.indexOf(a);
c < 0 || (this.ripples.splice(this.ripples.indexOf(a), 1), a.removeClass("md-ripple-active"), 0 === this.ripples.length && this.container.css({
backgroundColor: ""
}), this.$timeout(function() {
b.fadeOutComplete(a)
}, g, !1))
}, d.prototype.fadeOutComplete = function(a) {
a.remove(), this.lastRipple = null
}
}(),
function() {
! function() {
function a(a) {
function c(c, d, e) {
return a.attach(c, d, b.extend({
center: !1,
dimBackground: !0,
outline: !1,
rippleSize: "full"
}, e))
}
return {
attach: c
}
}
b.module("material.core").factory("$mdTabInkRipple", a), a.$inject = ["$mdInkRipple"]
}()
}(),
function() {
b.module("material.core.theming.palette", []).constant("$mdColorPalette", {
red: {
50: "#ffebee",
100: "#ffcdd2",
200: "#ef9a9a",
300: "#e57373",
400: "#ef5350",
500: "#f44336",
600: "#e53935",
700: "#d32f2f",
800: "#c62828",
900: "#b71c1c",
A100: "#ff8a80",
A200: "#ff5252",
A400: "#ff1744",
A700: "#d50000",
contrastDefaultColor: "light",
contrastDarkColors: "50 100 200 300 A100",
contrastStrongLightColors: "400 500 600 700 A200 A400 A700"
},
pink: {
50: "#fce4ec",
100: "#f8bbd0",
200: "#f48fb1",
300: "#f06292",
400: "#ec407a",
500: "#e91e63",
600: "#d81b60",
700: "#c2185b",
800: "#ad1457",
900: "#880e4f",
A100: "#ff80ab",
A200: "#ff4081",
A400: "#f50057",
A700: "#c51162",
contrastDefaultColor: "light",
contrastDarkColors: "50 100 200 A100",
contrastStrongLightColors: "500 600 A200 A400 A700"
},
purple: {
50: "#f3e5f5",
100: "#e1bee7",
200: "#ce93d8",
300: "#ba68c8",
400: "#ab47bc",
500: "#9c27b0",
600: "#8e24aa",
700: "#7b1fa2",
800: "#6a1b9a",
900: "#4a148c",
A100: "#ea80fc",
A200: "#e040fb",
A400: "#d500f9",
A700: "#aa00ff",
contrastDefaultColor: "light",
contrastDarkColors: "50 100 200 A100",
contrastStrongLightColors: "300 400 A200 A400 A700"
},
"deep-purple": {
50: "#ede7f6",
100: "#d1c4e9",
200: "#b39ddb",
300: "#9575cd",
400: "#7e57c2",
500: "#673ab7",
600: "#5e35b1",
700: "#512da8",
800: "#4527a0",
900: "#311b92",
A100: "#b388ff",
A200: "#7c4dff",
A400: "#651fff",
A700: "#6200ea",
contrastDefaultColor: "light",
contrastDarkColors: "50 100 200 A100",
contrastStrongLightColors: "300 400 A200"
},
indigo: {
50: "#e8eaf6",
100: "#c5cae9",
200: "#9fa8da",
300: "#7986cb",
400: "#5c6bc0",
500: "#3f51b5",
600: "#3949ab",
700: "#303f9f",
800: "#283593",
900: "#1a237e",
A100: "#8c9eff",
A200: "#536dfe",
A400: "#3d5afe",
A700: "#304ffe",
contrastDefaultColor: "light",
contrastDarkColors: "50 100 200 A100",
contrastStrongLightColors: "300 400 A200 A400"
},
blue: {
50: "#e3f2fd",
100: "#bbdefb",
200: "#90caf9",
300: "#64b5f6",
400: "#42a5f5",
500: "#2196f3",
600: "#1e88e5",
700: "#1976d2",
800: "#1565c0",
900: "#0d47a1",
A100: "#82b1ff",
A200: "#448aff",
A400: "#2979ff",
A700: "#2962ff",
contrastDefaultColor: "light",
contrastDarkColors: "50 100 200 300 400 A100",
contrastStrongLightColors: "500 600 700 A200 A400 A700"
},
"light-blue": {
50: "#e1f5fe",
100: "#b3e5fc",
200: "#81d4fa",
300: "#4fc3f7",
400: "#29b6f6",
500: "#03a9f4",
600: "#039be5",
700: "#0288d1",
800: "#0277bd",
900: "#01579b",
A100: "#80d8ff",
A200: "#40c4ff",
A400: "#00b0ff",
A700: "#0091ea",
contrastDefaultColor: "dark",
contrastLightColors: "600 700 800 900 A700",
contrastStrongLightColors: "600 700 800 A700"
},
cyan: {
50: "#e0f7fa",
100: "#b2ebf2",
200: "#80deea",
300: "#4dd0e1",
400: "#26c6da",
500: "#00bcd4",
600: "#00acc1",
700: "#0097a7",
800: "#00838f",
900: "#006064",
A100: "#84ffff",
A200: "#18ffff",
A400: "#00e5ff",
A700: "#00b8d4",
contrastDefaultColor: "dark",
contrastLightColors: "700 800 900",
contrastStrongLightColors: "700 800 900"
},
teal: {
50: "#e0f2f1",
100: "#b2dfdb",
200: "#80cbc4",
300: "#4db6ac",
400: "#26a69a",
500: "#009688",
600: "#00897b",
700: "#00796b",
800: "#00695c",
900: "#004d40",
A100: "#a7ffeb",
A200: "#64ffda",
A400: "#1de9b6",
A700: "#00bfa5",
contrastDefaultColor: "dark",
contrastLightColors: "500 600 700 800 900",
contrastStrongLightColors: "500 600 700"
},
green: {
50: "#e8f5e9",
100: "#c8e6c9",
200: "#a5d6a7",
300: "#81c784",
400: "#66bb6a",
500: "#4caf50",
600: "#43a047",
700: "#388e3c",
800: "#2e7d32",
900: "#1b5e20",
A100: "#b9f6ca",
A200: "#69f0ae",
A400: "#00e676",
A700: "#00c853",
contrastDefaultColor: "dark",
contrastLightColors: "500 600 700 800 900",
contrastStrongLightColors: "500 600 700"
},
"light-green": {
50: "#f1f8e9",
100: "#dcedc8",
200: "#c5e1a5",
300: "#aed581",
400: "#9ccc65",
500: "#8bc34a",
600: "#7cb342",
700: "#689f38",
800: "#558b2f",
900: "#33691e",
A100: "#ccff90",
A200: "#b2ff59",
A400: "#76ff03",
A700: "#64dd17",
contrastDefaultColor: "dark",
contrastLightColors: "700 800 900",
contrastStrongLightColors: "700 800 900"
},
lime: {
50: "#f9fbe7",
100: "#f0f4c3",
200: "#e6ee9c",
300: "#dce775",
400: "#d4e157",
500: "#cddc39",
600: "#c0ca33",
700: "#afb42b",
800: "#9e9d24",
900: "#827717",
A100: "#f4ff81",
A200: "#eeff41",
A400: "#c6ff00",
A700: "#aeea00",
contrastDefaultColor: "dark",
contrastLightColors: "900",
contrastStrongLightColors: "900"
},
yellow: {
50: "#fffde7",
100: "#fff9c4",
200: "#fff59d",
300: "#fff176",
400: "#ffee58",
500: "#ffeb3b",
600: "#fdd835",
700: "#fbc02d",
800: "#f9a825",
900: "#f57f17",
A100: "#ffff8d",
A200: "#ffff00",
A400: "#ffea00",
A700: "#ffd600",
contrastDefaultColor: "dark"
},
amber: {
50: "#fff8e1",
100: "#ffecb3",
200: "#ffe082",
300: "#ffd54f",
400: "#ffca28",
500: "#ffc107",
600: "#ffb300",
700: "#ffa000",
800: "#ff8f00",
900: "#ff6f00",
A100: "#ffe57f",
A200: "#ffd740",
A400: "#ffc400",
A700: "#ffab00",
contrastDefaultColor: "dark"
},
orange: {
50: "#fff3e0",
100: "#ffe0b2",
200: "#ffcc80",
300: "#ffb74d",
400: "#ffa726",
500: "#ff9800",
600: "#fb8c00",
700: "#f57c00",
800: "#ef6c00",
900: "#e65100",
A100: "#ffd180",
A200: "#ffab40",
A400: "#ff9100",
A700: "#ff6d00",
contrastDefaultColor: "dark",
contrastLightColors: "800 900",
contrastStrongLightColors: "800 900"
},
"deep-orange": {
50: "#fbe9e7",
100: "#ffccbc",
200: "#ffab91",
300: "#ff8a65",
400: "#ff7043",
500: "#ff5722",
600: "#f4511e",
700: "#e64a19",
800: "#d84315",
900: "#bf360c",
A100: "#ff9e80",
A200: "#ff6e40",
A400: "#ff3d00",
A700: "#dd2c00",
contrastDefaultColor: "light",
contrastDarkColors: "50 100 200 300 400 A100 A200",
contrastStrongLightColors: "500 600 700 800 900 A400 A700"
},
brown: {
50: "#efebe9",
100: "#d7ccc8",
200: "#bcaaa4",
300: "#a1887f",
400: "#8d6e63",
500: "#795548",
600: "#6d4c41",
700: "#5d4037",
800: "#4e342e",
900: "#3e2723",
A100: "#d7ccc8",
A200: "#bcaaa4",
A400: "#8d6e63",
A700: "#5d4037",
contrastDefaultColor: "light",
contrastDarkColors: "50 100 200 A100 A200",
contrastStrongLightColors: "300 400"
},
grey: {
50: "#fafafa",
100: "#f5f5f5",
200: "#eeeeee",
300: "#e0e0e0",
400: "#bdbdbd",
500: "#9e9e9e",
600: "#757575",
700: "#616161",
800: "#424242",
900: "#212121",
A100: "#ffffff",
A200: "#000000",
A400: "#303030",
A700: "#616161",
contrastDefaultColor: "dark",
contrastLightColors: "600 700 800 900 A200 A400 A700"
},
"blue-grey": {
50: "#eceff1",
100: "#cfd8dc",
200: "#b0bec5",
300: "#90a4ae",
400: "#78909c",
500: "#607d8b",
600: "#546e7a",
700: "#455a64",
800: "#37474f",
900: "#263238",
A100: "#cfd8dc",
A200: "#b0bec5",
A400: "#78909c",
A700: "#455a64",
contrastDefaultColor: "light",
contrastDarkColors: "50 100 200 300 A100 A200",
contrastStrongLightColors: "400 500 700"
}
})
}(),
function() {
function a(a) {
function d(a, b) {
return b = b || {}, l[a] = g(a, b), r
}
function e(a, c) {
return g(a, b.extend({}, l[a] || {}, c))
}
function g(a, b) {
var c = y.filter(function(a) {
return !b[a]
});
if (c.length) throw new Error("Missing colors %1 in palette %2!".replace("%1", c.join(", ")).replace("%2", a));
return b
}
function i(a, c) {
if (s[a]) return s[a];
c = c || "default";
var d = "string" == typeof c ? s[c] : c,
e = new j(a);
return d && b.forEach(d.colors, function(a, c) {
e.colors[c] = {
name: a.name,
hues: b.extend({}, a.hues)
}
}), s[a] = e, e
}
function j(a) {
function c(a) {
if (a = 0 === arguments.length || !!a, a !== d.isDark) {
d.isDark = a, d.foregroundPalette = d.isDark ? o : n, d.foregroundShadow = d.isDark ? p : q;
var c = d.isDark ? x : w,
e = d.isDark ? w : x;
return b.forEach(c, function(a, b) {
var c = d.colors[b],
f = e[b];
if (c)
for (var g in c.hues) c.hues[g] === f[g] && (c.hues[g] = a[g])
}), d
}
}
var d = this;
d.name = a, d.colors = {}, d.dark = c, c(!1), u.forEach(function(a) {
var c = (d.isDark ? x : w)[a];
d[a + "Palette"] = function(e, f) {
var g = d.colors[a] = {
name: e,
hues: b.extend({}, c, f)
};
return Object.keys(g.hues).forEach(function(a) {
if (!c[a]) throw new Error("Invalid hue name '%1' in theme %2's %3 color %4. Available hue names: %4".replace("%1", a).replace("%2", d.name).replace("%3", e).replace("%4", Object.keys(c).join(", ")))
}), Object.keys(g.hues).map(function(a) {
return g.hues[a]
}).forEach(function(b) {
if (y.indexOf(b) == -1) throw new Error("Invalid hue value '%1' in theme %2's %3 color %4. Available hue values: %5".replace("%1", b).replace("%2", d.name).replace("%3", a).replace("%4", e).replace("%5", y.join(", ")))
}), d
}, d[a + "Color"] = function() {
var b = Array.prototype.slice.call(arguments);
return console.warn("$mdThemingProviderTheme." + a + "Color() has been deprecated. Use $mdThemingProviderTheme." + a + "Palette() instead."), d[a + "Palette"].apply(d, b)
}
})
}
function m(a, d) {
function e(a) {
return a === c || "" === a || g.THEMES[a] !== c
}
function f(c, f) {
function g() {
return i = f.controller("mdTheme") || c.data("$mdThemeController"), i && i.$mdTheme || ("default" == t ? "" : t)
}
function h(a) {
if (a) {
e(a) || d.warn("Attempted to use unregistered theme '" + a + "'. Register it with $mdThemingProvider.theme().");
var b = c.data("$mdThemeName");
b && c.removeClass("md-" + b + "-theme"), c.addClass("md-" + a + "-theme"), c.data("$mdThemeName", a), i && c.data("$mdThemeController", i)
}
}
var i = f.controller("mdTheme"),
j = c.attr("md-theme-watch"),
k = (v || b.isDefined(j)) && "false" != j;
h(g()), c.on("$destroy", k ? a.$watch(g, h) : b.noop)
}
var g = function(b, d) {
d === c && (d = b, b = c), b === c && (b = a), g.inherit(d, d)
};
return g.THEMES = b.extend({}, s), g.PALETTES = b.extend({}, l), g.inherit = f, g.registered = e, g.defaultTheme = function() {
return t
}, g.generateTheme = function(a) {
h(s[a], a, A)
}, g
}
l = {};
var r, s = {},
t = "default",
v = !1;
return b.extend(l, a), m.$inject = ["$rootScope", "$log"], r = {
definePalette: d,
extendPalette: e,
theme: i,
disableTheming: function() {
B = !0
},
setNonce: function(a) {
A = a
},
setDefaultTheme: function(a) {
t = a
},
alwaysWatchTheme: function(a) {
v = a
},
generateThemesOnDemand: function(a) {
z = a
},
$get: m,
_LIGHT_DEFAULT_HUES: w,
_DARK_DEFAULT_HUES: x,
_PALETTES: l,
_THEMES: s,
_parseRules: f,
_rgba: k
}
}
function d(a, c, d) {
return {
priority: 100,
link: {
pre: function(e, f, g) {
var h = [],
i = {
registerChanges: function(a, c) {
return c && (a = b.bind(c, a)), h.push(a),
function() {
var b = h.indexOf(a);
b > -1 && h.splice(b, 1)
}
},
$setTheme: function(b) {
a.registered(b) || d.warn("attempted to use unregistered theme '" + b + "'"), i.$mdTheme = b, h.forEach(function(a) {
a()
})
}
};
f.data("$mdThemeController", i), i.$setTheme(c(g.mdTheme)(e)), g.$observe("mdTheme", i.$setTheme)
}
}
}
}
function e(a) {
return a
}
function f(a, c, d) {
i(a, c), d = d.replace(/THEME_NAME/g, a.name);
var e = [],
f = a.colors[c],
g = new RegExp(".md-" + a.name + "-theme", "g"),
h = new RegExp("('|\")?{{\\s*(" + c + ")-(color|contrast)-?(\\d\\.?\\d*)?\\s*}}(\"|')?", "g"),
j = /'?"?\{\{\s*([a-zA-Z]+)-(A?\d+|hue\-[0-3]|shadow|default)-?(\d\.?\d*)?(contrast)?\s*\}\}'?"?/g,
m = l[f.name];
return d = d.replace(j, function(b, c, d, e, f) {
return "foreground" === c ? "shadow" == d ? a.foregroundShadow : a.foregroundPalette[d] || a.foregroundPalette[1] : (0 !== d.indexOf("hue") && "default" !== d || (d = a.colors[c].hues[d]), k((l[a.colors[c].name][d] || "")[f ? "contrast" : "value"], e))
}), b.forEach(f.hues, function(b, c) {
var f = d.replace(h, function(a, c, d, e, f) {
return k(m[b]["color" === e ? "value" : "contrast"], f)
});
if ("default" !== c && (f = f.replace(g, ".md-" + a.name + "-theme.md-" + c)), "default" == a.name) {
var i = /((?:(?:(?: |>|\.|\w|-|:|\(|\)|\[|\]|"|'|=)+) )?)((?:(?:\w|\.|-)+)?)\.md-default-theme((?: |>|\.|\w|-|:|\(|\)|\[|\]|"|'|=)*)/g;
f = f.replace(i, function(a, b, c, d) {
return a + ", " + b + c + d
})
}
e.push(f)
}), e
}
function g(a, c) {
function d(a, c) {
var d = a.contrastDefaultColor,
e = a.contrastLightColors || [],
f = a.contrastStrongLightColors || [],
g = a.contrastDarkColors || [];
"string" == typeof e && (e = e.split(" ")), "string" == typeof f && (f = f.split(" ")), "string" == typeof g && (g = g.split(" ")), delete a.contrastDefaultColor, delete a.contrastLightColors, delete a.contrastStrongLightColors, delete a.contrastDarkColors, b.forEach(a, function(c, h) {
function i() {
return "light" === d ? g.indexOf(h) > -1 ? r : f.indexOf(h) > -1 ? t : s : e.indexOf(h) > -1 ? f.indexOf(h) > -1 ? t : s : r
}
if (!b.isObject(c)) {
var k = j(c);
if (!k) throw new Error("Color %1, in palette %2's hue %3, is invalid. Hex or rgb(a) color expected.".replace("%1", c).replace("%2", a.name).replace("%3", h));
a[h] = {
value: k,
contrast: i()
}
}
})
}
var e = document.head,
f = e ? e.firstElementChild : null,
g = !B && a.has("$MD_THEME_CSS") ? a.get("$MD_THEME_CSS") : "";
if (f && 0 !== g.length) {
b.forEach(l, d);
var i = g.split(/\}(?!(\}|'|"|;))/).filter(function(a) {
return a && a.length
}).map(function(a) {
return a.trim() + "}"
}),
k = new RegExp("md-(" + u.join("|") + ")", "g");
u.forEach(function(a) {
C[a] = ""
}), i.forEach(function(a) {
for (var b, c = (a.match(k), 0); b = u[c]; c++)
if (a.indexOf(".md-" + b) > -1) return C[b] += a;
for (c = 0; b = u[c]; c++)
if (a.indexOf(b) > -1) return C[b] += a;
return C[v] += a
}), z || b.forEach(c.THEMES, function(a) {
m[a.name] || "default" !== c.defaultTheme() && "default" === a.name || h(a, a.name, A)
})
}
}
function h(a, b, c) {
var d = document.head,
e = d ? d.firstElementChild : null;
m[b] || (u.forEach(function(b) {
for (var g = f(a, b, C[b]); g.length;) {
var h = g.shift();
if (h) {
var i = document.createElement("style");
i.setAttribute("md-theme-style", ""), c && i.setAttribute("nonce", c), i.appendChild(document.createTextNode(h)), d.insertBefore(i, e)
}
}
}), m[a.name] = !0)
}
function i(a, b) {
if (!l[(a.colors[b] || {}).name]) throw new Error("You supplied an invalid color palette for theme %1's %2 palette. Available palettes: %3".replace("%1", a.name).replace("%2", b).replace("%3", Object.keys(l).join(", ")))
}
function j(a) {
if (b.isArray(a) && 3 == a.length) return a;
if (/^rgb/.test(a)) return a.replace(/(^\s*rgba?\(|\)\s*$)/g, "").split(",").map(function(a, b) {
return 3 == b ? parseFloat(a, 10) : parseInt(a, 10)
});
if ("#" == a.charAt(0) && (a = a.substring(1)), /^([a-fA-F0-9]{3}){1,2}$/g.test(a)) {
var c = a.length / 3,
d = a.substr(0, c),
e = a.substr(c, c),
f = a.substr(2 * c);
return 1 === c && (d += d, e += e, f += f), [parseInt(d, 16), parseInt(e, 16), parseInt(f, 16)]
}
}
function k(a, c) {
return a ? (4 == a.length && (a = b.copy(a), c ? a.pop() : c = a.pop()), c && ("number" == typeof c || "string" == typeof c && c.length) ? "rgba(" + a.join(",") + "," + c + ")" : "rgb(" + a.join(",") + ")") : "rgb('0,0,0')"
}
b.module("material.core.theming", ["material.core.theming.palette"]).directive("mdTheme", d).directive("mdThemable", e).provider("$mdTheming", a).run(g);
var l, m = {},
n = {
name: "dark",
1: "rgba(0,0,0,0.87)",
2: "rgba(0,0,0,0.54)",
3: "rgba(0,0,0,0.38)",
4: "rgba(0,0,0,0.12)"
},
o = {
name: "light",
1: "rgba(255,255,255,1.0)",
2: "rgba(255,255,255,0.7)",
3: "rgba(255,255,255,0.5)",
4: "rgba(255,255,255,0.12)"
},
p = "1px 1px 0px rgba(0,0,0,0.4), -1px -1px 0px rgba(0,0,0,0.4)",
q = "",
r = j("rgba(0,0,0,0.87)"),
s = j("rgba(255,255,255,0.87)"),
t = j("rgb(255,255,255)"),
u = ["primary", "accent", "warn", "background"],
v = "primary",
w = {
accent: {
default: "A200",
"hue-1": "A100",
"hue-2": "A400",
"hue-3": "A700"
},
background: {
default: "50",
"hue-1": "A100",
"hue-2": "100",
"hue-3": "300"
}
},
x = {
background: {
default: "A400",
"hue-1": "800",
"hue-2": "900",
"hue-3": "A200"
}
};
u.forEach(function(a) {
var b = {
default: "500",
"hue-1": "300",
"hue-2": "800",
"hue-3": "A100"
};
w[a] || (w[a] = b), x[a] || (x[a] = b)
});
var y = ["50", "100", "200", "300", "400", "500", "600", "700", "800", "900", "A100", "A200", "A400", "A700"],
z = !1,
A = null,
B = !1;
a.$inject = ["$mdColorPalette"], d.$inject = ["$mdTheming", "$interpolate", "$log"], e.$inject = ["$mdTheming"];
var C = {};
g.$inject = ["$injector", "$mdTheming"]
}(),
function() {
function c(c, d, e, f, g) {
var h;
return h = {
translate3d: function(a, b, c, d) {
function e(c) {
return g(a, {
to: c || b,
addClass: d.transitionOutClass,
removeClass: d.transitionInClass
}).start()
}
return g(a, {
from: b,
to: c,
addClass: d.transitionInClass,
removeClass: d.transitionOutClass
}).start().then(function() {
return e
})
},
waitTransitionEnd: function(b, c) {
var g = 3e3;
return d(function(d, h) {
function i(a) {
a && a.target !== b[0] || (a && e.cancel(k), b.off(f.CSS.TRANSITIONEND, i), d())
}
function j(c) {
return c = c || a.getComputedStyle(b[0]), "0s" == c.transitionDuration || !c.transition && !c.transitionProperty
}
c = c || {}, j(c.cachedTransitionStyles) && (g = 0);
var k = e(i, c.timeout || g);
b.on(f.CSS.TRANSITIONEND, i)
})
},
calculateTransformValues: function(a, b) {
function c() {
var b = a ? a.parent() : null,
c = b ? b.parent() : null;
return c ? h.clientRect(c) : null
}
var d = b.element,
e = b.bounds;
if (d || e) {
var f = d ? h.clientRect(d) || c() : h.copyRect(e),
g = h.copyRect(a[0].getBoundingClientRect()),
i = h.centerPointFor(g),
j = h.centerPointFor(f);
return {
centerX: j.x - i.x,
centerY: j.y - i.y,
scaleX: Math.round(100 * Math.min(.5, f.width / g.width)) / 100,
scaleY: Math.round(100 * Math.min(.5, f.height / g.height)) / 100
}
}
return {
centerX: 0,
centerY: 0,
scaleX: .5,
scaleY: .5
}
},
calculateZoomToOrigin: function(a, d) {
var e = "translate3d( {centerX}px, {centerY}px, 0 ) scale( {scaleX}, {scaleY} )",
f = b.bind(null, c.supplant, e);
return f(h.calculateTransformValues(a, d))
},
calculateSlideToOrigin: function(a, d) {
var e = "translate3d( {centerX}px, {centerY}px, 0 )",
f = b.bind(null, c.supplant, e);
return f(h.calculateTransformValues(a, d))
},
toCss: function(a) {
function c(a, c, e) {
b.forEach(c.split(" "), function(a) {
d[a] = e
})
}
var d = {},
e = "left top right bottom width height x y min-width min-height max-width max-height";
return b.forEach(a, function(a, g) {
if (!b.isUndefined(a))
if (e.indexOf(g) >= 0) d[g] = a + "px";
else switch (g) {
case "transition":
c(g, f.CSS.TRANSITION, a);
break;
case "transform":
c(g, f.CSS.TRANSFORM, a);
break;
case "transformOrigin":
c(g, f.CSS.TRANSFORM_ORIGIN, a)
}
}), d
},
toTransformCss: function(a, c, d) {
var e = {};
return b.forEach(f.CSS.TRANSFORM.split(" "), function(b) {
e[b] = a
}), c && (d = d || "all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1) !important", e.transition = d), e
},
copyRect: function(a, c) {
return a ? (c = c || {}, b.forEach("left top right bottom width height".split(" "), function(b) {
c[b] = Math.round(a[b])
}), c.width = c.width || c.right - c.left, c.height = c.height || c.bottom - c.top, c) : null
},
clientRect: function(a) {
var c = b.element(a)[0].getBoundingClientRect(),
d = function(a) {
return a && a.width > 0 && a.height > 0
};
return d(c) ? h.copyRect(c) : null
},
centerPointFor: function(a) {
return a ? {
x: Math.round(a.left + a.width / 2),
y: Math.round(a.top + a.height / 2)
} : {
x: 0,
y: 0
}
}
}
}
b.module("material.core").factory("$$mdAnimate", ["$q", "$timeout", "$mdConstant", "$animateCss", function(a, b, d, e) {
return function(f) {
return c(f, a, b, d, e)
}
}])
}(),
function() {
b.version.minor >= 4 ? b.module("material.core.animate", []) : ! function() {
function a(a) {
return a.replace(/-[a-z]/g, function(a) {
return a.charAt(1).toUpperCase()
})
}
var c = b.forEach,
d = b.isDefined(document.documentElement.style.WebkitAppearance),
e = d ? "-webkit-" : "",
f = (d ? "webkitTransitionEnd " : "") + "transitionend",
g = (d ? "webkitAnimationEnd " : "") + "animationend",
h = ["$document", function(a) {
return function() {
return a[0].body.clientWidth + 1
}
}],
i = ["$$rAF", function(a) {
return function() {
var b = !1;
return a(function() {
b = !0
}),
function(c) {
b ? c() : a(c)
}
}
}],
j = ["$q", "$$rAFMutex", function(a, d) {
function e(a) {
this.setHost(a), this._doneCallbacks = [], this._runInAnimationFrame = d(), this._state = 0
}
var f = 0,
g = 1,
h = 2;
return e.prototype = {
setHost: function(a) {
this.host = a || {}
},
done: function(a) {
this._state === h ? a() : this._doneCallbacks.push(a)
},
progress: b.noop,
getPromise: function() {
if (!this.promise) {
var b = this;
this.promise = a(function(a, c) {
b.done(function(b) {
b === !1 ? c() : a()
})
})
}
return this.promise
},
then: function(a, b) {
return this.getPromise().then(a, b)
},
catch: function(a) {
return this.getPromise().catch(a)
},
finally: function(a) {
return this.getPromise().finally(a)
},
pause: function() {
this.host.pause && this.host.pause()
},
resume: function() {
this.host.resume && this.host.resume()
},
end: function() {
this.host.end && this.host.end(), this._resolve(!0)
},
cancel: function() {
this.host.cancel && this.host.cancel(), this._resolve(!1)
},
complete: function(a) {
var b = this;
b._state === f && (b._state = g, b._runInAnimationFrame(function() {
b._resolve(a)
}))
},
_resolve: function(a) {
this._state !== h && (c(this._doneCallbacks, function(b) {
b(a)
}), this._doneCallbacks.length = 0, this._state = h)
}
}, e
}];
b.module("material.core.animate", []).factory("$$forceReflow", h).factory("$$AnimateRunner", j).factory("$$rAFMutex", i).factory("$animateCss", ["$window", "$$rAF", "$$AnimateRunner", "$$forceReflow", "$$jqLite", "$timeout", "$animate", function(b, h, i, j, k, l, m) {
function n(d, h) {
var j = [],
k = v(d),
n = k && m.enabled(),
q = !1,
x = !1;
n && (h.transitionStyle && j.push([e + "transition", h.transitionStyle]), h.keyframeStyle && j.push([e + "animation", h.keyframeStyle]), h.delay && j.push([e + "transition-delay", h.delay + "s"]), h.duration && j.push([e + "transition-duration", h.duration + "s"]), q = h.keyframeStyle || h.to && (h.duration > 0 || h.transitionStyle), x = !!h.addClass || !!h.removeClass, w(d, !0));
var y = n && (q || x);
t(d, h);
var z, A, B = !1;
return {
close: b.close,
start: function() {
function b() {
if (!B) return B = !0, z && A && d.off(z, A), o(d, h), s(d, h), c(j, function(b) {
k.style[a(b[0])] = ""
}), m.complete(!0), m
}
var m = new i;
return r(function() {
if (w(d, !1), !y) return b();
c(j, function(b) {
var c = b[0],
d = b[1];
k.style[a(c)] = d
}), o(d, h);
var i = p(d);
if (0 === i.duration) return b();
var m = [];
h.easing && (i.transitionDuration && m.push([e + "transition-timing-function", h.easing]), i.animationDuration && m.push([e + "animation-timing-function", h.easing])), h.delay && i.animationDelay && m.push([e + "animation-delay", h.delay + "s"]), h.duration && i.animationDuration && m.push([e + "animation-duration", h.duration + "s"]), c(m, function(b) {
var c = b[0],
d = b[1];
k.style[a(c)] = d, j.push(b)
});
var n = i.delay,
q = 1e3 * n,
r = i.duration,
s = 1e3 * r,
t = Date.now();
z = [], i.transitionDuration && z.push(f), i.animationDuration && z.push(g), z = z.join(" "), A = function(a) {
a.stopPropagation();
var c = a.originalEvent || a,
d = c.timeStamp || Date.now(),
e = parseFloat(c.elapsedTime.toFixed(3));
Math.max(d - t, 0) >= q && e >= r && b()
}, d.on(z, A), u(d, h), l(b, q + 1.5 * s, !1)
}), m
}
}
}
function o(a, b) {
b.addClass && (k.addClass(a, b.addClass), b.addClass = null), b.removeClass && (k.removeClass(a, b.removeClass), b.removeClass = null)
}
function p(a) {
function c(a) {
return d ? "Webkit" + a.charAt(0).toUpperCase() + a.substr(1) : a
}
var e = v(a),
f = b.getComputedStyle(e),
g = q(f[c("transitionDuration")]),
h = q(f[c("animationDuration")]),
i = q(f[c("transitionDelay")]),
j = q(f[c("animationDelay")]);
h *= parseInt(f[c("animationIterationCount")], 10) || 1;
var k = Math.max(h, g),
l = Math.max(j, i);
return {
duration: k,
delay: l,
animationDuration: h,
transitionDuration: g,
animationDelay: j,
transitionDelay: i
}
}
function q(a) {
var b = 0,
d = (a || "").split(/\s*,\s*/);
return c(d, function(a) {
"s" == a.charAt(a.length - 1) && (a = a.substring(0, a.length - 1)), a = parseFloat(a) || 0, b = b ? Math.max(a, b) : a
}), b
}
function r(a) {
x && x(), y.push(a), x = h(function() {
x = null;
for (var a = j(), b = 0; b < y.length; b++) y[b](a);
y.length = 0
})
}
function s(a, b) {
t(a, b), u(a, b)
}
function t(a, b) {
b.from && (a.css(b.from), b.from = null)
}
function u(a, b) {
b.to && (a.css(b.to), b.to = null)
}
function v(a) {
for (var b = 0; b < a.length; b++)
if (1 === a[b].nodeType) return a[b]
}
function w(b, c) {
var d = v(b),
f = a(e + "transition-delay");
d.style[f] = c ? "-9999s" : ""
}
var x, y = [];
return n
}])
}()
}(),
function() {
b.module("material.components.autocomplete", ["material.core", "material.components.icon", "material.components.virtualRepeat"])
}(),
function() {
b.module("material.components.backdrop", ["material.core"]).directive("mdBackdrop", ["$mdTheming", "$mdUtil", "$animate", "$rootElement", "$window", "$log", "$$rAF", "$document", function(a, b, c, d, e, f, g, h) {
function i(b, i, k) {
c.pin && c.pin(i, d), g(function() {
var b = e.getComputedStyle(h[0].body);
if ("fixed" == b.position) {
var c = parseInt(b.height, 10) + Math.abs(parseInt(b.top, 10));
i.css({
height: c + "px"
})
}
var d = i.parent()[0];
if (d) {
"BODY" == d.nodeName && i.css({
position: "fixed"
});
var g = e.getComputedStyle(d);
"static" == g.position && f.warn(j)
}
i.parent().length && a.inherit(i, i.parent())
})
}
var j = "<md-backdrop> may not work properly in a scrolled, static-positioned parent container.";
return {
restrict: "E",
link: i
}
}])
}(),
function() {
function a(a) {
return {
restrict: "E",
link: function(b, c) {
a(c)
}
}
}
function c(a, c, d, e) {
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment