Skip to content

Instantly share code, notes, and snippets.

@younata
Created April 20, 2014 01:46
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 younata/11102763 to your computer and use it in GitHub Desktop.
Save younata/11102763 to your computer and use it in GitHub Desktop.
lektur
function CSSScanner(e) {
this.init(e)
}
function CSSParser(e) {
this.mToken = null, this.mLookAhead = null, this.mScanner = new CSSScanner(e), this.mPreserveWS = !0, this.mPreserveComments = !0, this.mPreservedTokens = [], this.mError = null
}
function jscsspToken(e, t, n) {
this.type = e, this.value = t, this.unit = n
}
function jscsspStylesheet() {
this.cssRules = [], this.variables = {}
}
function jscsspCharsetRule() {
this.type = kJscsspCHARSET_RULE, this.encoding = null, this.parsedCssText = null, this.parentStyleSheet = null, this.parentRule = null
}
function jscsspErrorRule(e) {
this.error = e ? e : "INVALID", this.type = kJscsspUNKNOWN_RULE, this.parsedCssText = null, this.parentStyleSheet = null, this.parentRule = null
}
function jscsspComment() {
this.type = kJscsspCOMMENT, this.parsedCssText = null, this.parentStyleSheet = null, this.parentRule = null
}
function jscsspWhitespace() {
this.type = kJscsspWHITE_SPACE, this.parsedCssText = null, this.parentStyleSheet = null, this.parentRule = null
}
function jscsspImportRule() {
this.type = kJscsspIMPORT_RULE, this.parsedCssText = null, this.href = null, this.media = [], this.parentStyleSheet = null, this.parentRule = null
}
function jscsspNamespaceRule() {
this.type = kJscsspNAMESPACE_RULE, this.parsedCssText = null, this.prefix = null, this.url = null, this.parentStyleSheet = null, this.parentRule = null
}
function jscsspDeclaration() {
this.type = kJscsspSTYLE_DECLARATION, this.property = null, this.values = [], this.valueText = null, this.priority = null, this.parsedCssText = null, this.parentStyleSheet = null, this.parentRule = null
}
function jscsspFontFaceRule() {
this.type = kJscsspFONT_FACE_RULE, this.parsedCssText = null, this.descriptors = [], this.parentStyleSheet = null, this.parentRule = null
}
function jscsspKeyframesRule() {
this.type = kJscsspKEYFRAMES_RULE, this.parsedCssText = null, this.cssRules = [], this.name = null, this.parentStyleSheet = null, this.parentRule = null
}
function jscsspKeyframeRule() {
this.type = kJscsspKEYFRAME_RULE, this.parsedCssText = null, this.declarations = [], this.keyText = null, this.parentStyleSheet = null, this.parentRule = null
}
function jscsspMediaRule() {
this.type = kJscsspMEDIA_RULE, this.parsedCssText = null, this.cssRules = [], this.media = [], this.parentStyleSheet = null, this.parentRule = null
}
function jscsspStyleRule() {
this.type = kJscsspSTYLE_RULE, this.parsedCssText = null, this.declarations = [], this.mSelectorText = null, this.parentStyleSheet = null, this.parentRule = null
}
function jscsspPageRule() {
this.type = kJscsspPAGE_RULE, this.parsedCssText = null, this.pageSelector = null, this.declarations = [], this.parentStyleSheet = null, this.parentRule = null
}
function jscsspVariablesRule() {
this.type = kJscsspVARIABLES_RULE, this.parsedCssText = null, this.declarations = [], this.parentStyleSheet = null, this.parentRule = null, this.media = null
}
function jscsspVariable(e, t) {
this.value = "", this.type = e, this.name = null, this.parentRule = null, this.parentStyleSheet = t
}
function ParseURL(e) {
var t = {};
t.protocol = "", t.user = "", t.password = "", t.host = "", t.port = "", t.path = "", t.query = "";
for (var n = "PROTOCOL", i = 0, r = !1; i < e.length;)
if ("PROTOCOL" == n) ":" == e.charAt(i) ? (n = "AFTER_PROTOCOL", i++) : "/" == e.charAt(i) && 0 == t.protocol.length() ? n = PATH : t.protocol += e.charAt(i++);
else if ("AFTER_PROTOCOL" == n) {
if ("/" != e.charAt(i)) throw new ParseException("Protocol shell be separated with 2 slashes");
r ? (r = !1, n = "USER") : r = !0, i++
} else "USER" == n ? "/" == e.charAt(i) ? (t.host = t.user, t.user = "", n = "PATH") : "?" == e.charAt(i) ? (t.host = t.user, t.user = "", n = "QUERY", i++) : ":" == e.charAt(i) ? (n = "PASSWORD", i++) : "@" == e.charAt(i) ? (n = "HOST", i++) : t.user += e.charAt(i++) : "PASSWORD" == n ? "/" == e.charAt(i) ? (t.host = t.user, t.port = t.password, t.user = "", t.password = "", n = "PATH") : "?" == e.charAt(i) ? (t.host = t.user, t.port = t.password, t.user = "", t.password = "", n = "QUERY", i++) : "@" == e.charAt(i) ? (n = "HOST", i++) : t.password += e.charAt(i++) : "HOST" == n ? "/" == e.charAt(i) ? n = "PATH" : ":" == e.charAt(i) ? (n = "PORT", i++) : "?" == e.charAt(i) ? (n = "QUERY", i++) : t.host += e.charAt(i++) : "PORT" == n ? "/" == e.charAt(i) ? n = "PATH" : "?" == e.charAt(i) ? (n = "QUERY", i++) : t.port += e.charAt(i++) : "PATH" == n ? "?" == e.charAt(i) ? (n = "QUERY", i++) : t.path += e.charAt(i++) : "QUERY" == n && (t.query += e.charAt(i++)); if ("PROTOCOL" == n) t.host = t.protocol, t.protocol = "http";
else {
if ("AFTER_PROTOCOL" == n) throw new ParseException("Invalid url");
"USER" == n ? (t.host = t.user, t.user = "") : "PASSWORD" == n && (t.host = t.user, t.port = t.password, t.user = "", t.password = "")
}
return t
}
function ParseException(e) {
this.description = e
}
function CountLF(e) {
var t = e.match(/\n/g);
return t ? t.length + 1 : 1
}
function FilterLinearGradientForOutput(e, t) {
if ("generic" == t) return e.substr(5);
if ("webkit" == t) return e.replace(/\-moz\-/g, "-webkit-");
if ("webkit20110101" != t) return "";
var n = CssInspector.parseBackgroundImages(e)[0],
i = !1,
r = "-webkit-gradient(linear, ",
s = "position" in n.value ? n.value.position.toLowerCase() : "",
o = "angle" in n.value ? n.value.angle.toLowerCase() : "";
if (o) {
var a = o.match(/^([0-9\-\.\\+]+)([a-z]*)/),
o = parseFloat(a[1]),
l = a[2];
switch (l) {
case "grad":
o = 90 * o / 100;
break;
case "rad":
o = 180 * o / Math.PI
}
for (; 0 > o;) o += 360;
for (; o >= 360;) o -= 360
}
var u = [],
c = [];
if ("" != s)
if ("center" == s && (s = "center center"), u = s.split(" "), "" == o && 0 != o) {
switch (u[0]) {
case "left":
c.push("right");
break;
case "center":
c.push("center");
break;
case "right":
c.push("left");
break;
default:
var a = u[0].match(/^([0-9\-\.\\+]+)([a-z]*)/),
d = parseFloat(a[0]),
l = a[1];
"%" == l ? c.push(100 - d + "%") : i = !0
}
if (!i) switch (u[1]) {
case "top":
c.push("bottom");
break;
case "center":
c.push("center");
break;
case "bottom":
c.push("top");
break;
default:
var a = u[1].match(/^([0-9\-\.\\+]+)([a-z]*)/),
d = parseFloat(a[0]),
l = a[1];
"%" == l ? c.push(100 - d + "%") : i = !0
}
} else switch (o) {
case 0:
c.push("right"), c.push(u[1]);
break;
case 90:
c.push(u[0]), c.push("top");
break;
case 180:
c.push("left"), c.push(u[1]);
break;
case 270:
c.push(u[0]), c.push("bottom");
break;
default:
i = !0
} else switch ("" == o && (o = 270), o) {
case 0:
u = ["left", "center"], c = ["right", "center"];
break;
case 90:
u = ["center", "bottom"], c = ["center", "top"];
break;
case 180:
u = ["right", "center"], c = ["left", "center"];
break;
case 270:
u = ["center", "top"], c = ["center", "bottom"];
break;
default:
i = !0
}
if (i) return "";
r += u.join(" ") + ", " + c.join(" "), n.value.stops[0].position || (n.value.stops[0].position = "0%"), n.value.stops[n.value.stops.length - 1].position || (n.value.stops[n.value.stops.length - 1].position = "100%");
for (var p = 0, f = 0; f < n.value.stops.length && !i; f++) {
var h = n.value.stops[f];
if (h.position) {
if (-1 == h.position.indexOf("%")) {
i = !0;
break
}
} else {
for (var m = f + 1; m < n.value.stops.length && !n.value.stops[m].position;) m++;
for (var g = parseFloat(n.value.stops[m].position) - p, v = f; m > v; v++) n.value.stops[v].position = p + g * (v - f + 1) / (m - f + 1) + "%"
}
p = parseFloat(h.position), r += ", color-stop(" + parseFloat(p) / 100 + ", " + h.color + ")"
}
return i ? "" : r + ")"
}
function FilterRadialGradientForOutput(e, t) {
if ("generic" == t) return e.substr(5);
if ("webkit" == t) return e.replace(/\-moz\-/g, "-webkit-");
if ("webkit20110101" != t) return "";
var n = CssInspector.parseBackgroundImages(e)[0],
i = "shape" in n.value ? n.value.shape : "",
r = "size" in n.value ? n.value.size : "";
if ("circle" != i || "farthest-corner" != r && "cover" != r) return "";
if (!(!(n.value.stops.length < 2) && "position" in n.value.stops[0] && n.value.stops[n.value.stops.length - 1].position && "position" in n.value.stops[0] && n.value.stops[n.value.stops.length - 1].position)) return "";
for (var s = 0; s < n.value.stops.length; s++) {
var o = n.value.stops[s];
if ("position" in o && o.position && -1 == o.position.indexOf("px")) return ""
}
var a = "-webkit-gradient(radial, ",
l = "position" in n.value ? n.value.position : "center center";
a += l + ", " + parseFloat(n.value.stops[0].position) + ", ", a += l + ", " + parseFloat(n.value.stops[n.value.stops.length - 1].position);
for (var u = parseFloat(n.value.stops[0].position), s = 0; s < n.value.stops.length; s++) {
var o = n.value.stops[s];
if (!("position" in o && o.position)) {
for (var c = s + 1; c < n.value.stops.length && !n.value.stops[c].position;) c++;
for (var d = parseFloat(n.value.stops[c].position) - u, p = s; c > p; p++) n.value.stops[p].position = u + d * (p - s + 1) / (c - s + 1) + "px"
}
u = parseFloat(o.position);
var f = (u - parseFloat(n.value.stops[0].position)) / (parseFloat(n.value.stops[n.value.stops.length - 1].position) - parseFloat(n.value.stops[0].position));
a += ", color-stop(" + f + ", " + o.color + ")"
}
return a += ")"
}
function FilterRepeatingGradientForOutput(e, t) {
return "generic" == t ? e.substr(5) : "webkit" == t ? e.replace(/\-moz\-/g, "-webkit-") : ""
}
function updateCountry() {
for (var e = select_dialect.options.length - 1; e >= 0; e--) select_dialect.remove(e);
for (var t = langs[select_language.selectedIndex], e = 1; e < t.length; e++) select_dialect.options.add(new Option(t[e][1], t[e][0]));
select_dialect.style.visibility = 1 == t[1].length ? "hidden" : "visible"
}
function trim1(e) {
return e.replace(/^\s\s*/, "").replace(/\s\s*$/, "")
}
function parseParagraph() {
output = "", sentences = $("#final_span li");
for (var e = 0; e < sentences.length; e++) sentence = $(sentences[e]), output += "floatleft" == sentence.attr("class") ? "- " + trim1(sentence.text()) + "\n" : " - " + trim1(sentence.text()) + "\n";
sentences = $("#final_temp li");
for (var e = 0; e < sentences.length; e++) sentence = $(sentences[e]), output += "floatleft" == sentence.attr("class") ? "- " + trim1(sentence.text()) + "\n" : " - " + trim1(sentence.text()) + "\n";
return output
}
function upgrade() {
start_button.style.visibility = "hidden", showInfo("info_upgrade")
}
function linebreak(e) {
return e.replace(two_line, "<p></p>").replace(one_line, "<br>")
}
function capitalize(e) {
return e.replace(first_char, function (e) {
return e.toUpperCase()
})
}
function createEmail() {
var e = final_transcript.indexOf("\n");
(0 > e || e >= 80) && (e = 40 + final_transcript.substring(40).indexOf(" "));
var t = encodeURI(final_transcript.substring(0, e)),
n = encodeURI(final_transcript.substring(e + 1));
window.location.href = "mailto:?subject=" + t + "&body=" + n
}
function copyButton() {
recognizing && (recognizing = !1, recognition.stop()), copy_info.style.display = "inline-block", showInfo("")
}
function emailButton() {
recognizing ? (create_email = !0, recognizing = !1, recognition.stop()) : createEmail(), email_button.style.display = "none", email_info.style.display = "inline-block", showInfo("")
}
function importButton() {
filepicker.pick({
mimetype: "text/plain"
}, function (e) {
inkblob = e, filepicker.read(inkblob, function (e) {
final_span.innerHTML = e, all_text = e
}), fileselected = !0
})
}
function exportButton() {
inkblob ? filepicker.export(inkblob, {
service: "DROPBOX"
}, function () {
showInfo("info_saved")
}) : filepicker.store(parseParagraph(), {
filename: "lecture_notes",
location: "S3"
}, function (e) {
filepicker.export(e, {
service: "DROPBOX"
}, function (e) {
$("#filename-title").text(e.filename), inkblob = e
})
})
}
function startButton(e) {
return recognizing ? void recognition.stop() : (final_transcript = "", recognition.lang = select_dialect.value, recognition.start(), ignore_onend = !1, interim_span.innerHTML = "", start_img.src = "https://www.google.com/intl/en/chrome/assets/common/images/content/mic-slash.gif", showInfo("info_allow"), showButtons("none"), void(start_timestamp = e.timeStamp))
}
function showInfo(e) {
if (e) {
for (var t = info.firstChild; t; t = t.nextSibling) t.style && (t.style.display = t.id == e ? "inline" : "none");
info.style.visibility = "visible"
} else info.style.visibility = "hidden"
}
function showButtons(e) {
e != current_style && (current_style = e, email_button.style.display = e, copy_info.style.display = "none", email_info.style.display = "none")
}! function (e, t) {
"object" == typeof module && "object" == typeof module.exports ? module.exports = e.document ? t(e, !0) : function (e) {
if (!e.document) throw new Error("jQuery requires a window with a document");
return t(e)
} : t(e)
}("undefined" != typeof window ? window : this, function (e, t) {
function n(e) {
var t = e.length,
n = st.type(e);
return "function" === n || st.isWindow(e) ? !1 : 1 === e.nodeType && t ? !0 : "array" === n || 0 === t || "number" == typeof t && t > 0 && t - 1 in e
}
function i(e, t, n) {
if (st.isFunction(t)) return st.grep(e, function (e, i) {
return !!t.call(e, i, e) !== n
});
if (t.nodeType) return st.grep(e, function (e) {
return e === t !== n
});
if ("string" == typeof t) {
if (ft.test(t)) return st.filter(t, e, n);
t = st.filter(t, e)
}
return st.grep(e, function (e) {
return st.inArray(e, t) >= 0 !== n
})
}
function r(e, t) {
do e = e[t]; while (e && 1 !== e.nodeType);
return e
}
function s(e) {
var t = wt[e] = {};
return st.each(e.match(yt) || [], function (e, n) {
t[n] = !0
}), t
}
function o() {
mt.addEventListener ? (mt.removeEventListener("DOMContentLoaded", a, !1), e.removeEventListener("load", a, !1)) : (mt.detachEvent("onreadystatechange", a), e.detachEvent("onload", a))
}
function a() {
(mt.addEventListener || "load" === event.type || "complete" === mt.readyState) && (o(), st.ready())
}
function l(e, t, n) {
if (void 0 === n && 1 === e.nodeType) {
var i = "data-" + t.replace(It, "-$1").toLowerCase();
if (n = e.getAttribute(i), "string" == typeof n) {
try {
n = "true" === n ? !0 : "false" === n ? !1 : "null" === n ? null : +n + "" === n ? +n : Et.test(n) ? st.parseJSON(n) : n
} catch (r) {}
st.data(e, t, n)
} else n = void 0
}
return n
}
function u(e) {
var t;
for (t in e)
if (("data" !== t || !st.isEmptyObject(e[t])) && "toJSON" !== t) return !1;
return !0
}
function c(e, t, n, i) {
if (st.acceptData(e)) {
var r, s, o = st.expando,
a = e.nodeType,
l = a ? st.cache : e,
u = a ? e[o] : e[o] && o;
if (u && l[u] && (i || l[u].data) || void 0 !== n || "string" != typeof t) return u || (u = a ? e[o] = $.pop() || st.guid++ : o), l[u] || (l[u] = a ? {} : {
toJSON: st.noop
}), ("object" == typeof t || "function" == typeof t) && (i ? l[u] = st.extend(l[u], t) : l[u].data = st.extend(l[u].data, t)), s = l[u], i || (s.data || (s.data = {}), s = s.data), void 0 !== n && (s[st.camelCase(t)] = n), "string" == typeof t ? (r = s[t], null == r && (r = s[st.camelCase(t)])) : r = s, r
}
}
function d(e, t, n) {
if (st.acceptData(e)) {
var i, r, s = e.nodeType,
o = s ? st.cache : e,
a = s ? e[st.expando] : st.expando;
if (o[a]) {
if (t && (i = n ? o[a] : o[a].data)) {
st.isArray(t) ? t = t.concat(st.map(t, st.camelCase)) : t in i ? t = [t] : (t = st.camelCase(t), t = t in i ? [t] : t.split(" ")), r = t.length;
for (; r--;) delete i[t[r]];
if (n ? !u(i) : !st.isEmptyObject(i)) return
}(n || (delete o[a].data, u(o[a]))) && (s ? st.cleanData([e], !0) : it.deleteExpando || o != o.window ? delete o[a] : o[a] = null)
}
}
}
function p() {
return !0
}
function f() {
return !1
}
function h() {
try {
return mt.activeElement
} catch (e) {}
}
function m(e) {
var t = Ft.split("|"),
n = e.createDocumentFragment();
if (n.createElement)
for (; t.length;) n.createElement(t.pop());
return n
}
function g(e, t) {
var n, i, r = 0,
s = typeof e.getElementsByTagName !== xt ? e.getElementsByTagName(t || "*") : typeof e.querySelectorAll !== xt ? e.querySelectorAll(t || "*") : void 0;
if (!s)
for (s = [], n = e.childNodes || e; null != (i = n[r]); r++)!t || st.nodeName(i, t) ? s.push(i) : st.merge(s, g(i, t));
return void 0 === t || t && st.nodeName(e, t) ? st.merge([e], s) : s
}
function v(e) {
Dt.test(e.type) && (e.defaultChecked = e.checked)
}
function b(e, t) {
return st.nodeName(e, "table") && st.nodeName(11 !== t.nodeType ? t : t.firstChild, "tr") ? e.getElementsByTagName("tbody")[0] || e.appendChild(e.ownerDocument.createElement("tbody")) : e
}
function k(e) {
return e.type = (null !== st.find.attr(e, "type")) + "/" + e.type, e
}
function y(e) {
var t = $t.exec(e.type);
return t ? e.type = t[1] : e.removeAttribute("type"), e
}
function w(e, t) {
for (var n, i = 0; null != (n = e[i]); i++) st._data(n, "globalEval", !t || st._data(t[i], "globalEval"))
}
function T(e, t) {
if (1 === t.nodeType && st.hasData(e)) {
var n, i, r, s = st._data(e),
o = st._data(t, s),
a = s.events;
if (a) {
delete o.handle, o.events = {};
for (n in a)
for (i = 0, r = a[n].length; r > i; i++) st.event.add(t, n, a[n][i])
}
o.data && (o.data = st.extend({}, o.data))
}
}
function S(e, t) {
var n, i, r;
if (1 === t.nodeType) {
if (n = t.nodeName.toLowerCase(), !it.noCloneEvent && t[st.expando]) {
r = st._data(t);
for (i in r.events) st.removeEvent(t, i, r.handle);
t.removeAttribute(st.expando)
}
"script" === n && t.text !== e.text ? (k(t).text = e.text, y(t)) : "object" === n ? (t.parentNode && (t.outerHTML = e.outerHTML), it.html5Clone && e.innerHTML && !st.trim(t.innerHTML) && (t.innerHTML = e.innerHTML)) : "input" === n && Dt.test(e.type) ? (t.defaultChecked = t.checked = e.checked, t.value !== e.value && (t.value = e.value)) : "option" === n ? t.defaultSelected = t.selected = e.defaultSelected : ("input" === n || "textarea" === n) && (t.defaultValue = e.defaultValue)
}
}
function x(t, n) {
var i = st(n.createElement(t)).appendTo(n.body),
r = e.getDefaultComputedStyle ? e.getDefaultComputedStyle(i[0]).display : st.css(i[0], "display");
return i.detach(), r
}
function E(e) {
var t = mt,
n = en[e];
return n || (n = x(e, t), "none" !== n && n || (Zt = (Zt || st("<iframe frameborder='0' width='0' height='0'/>")).appendTo(t.documentElement), t = (Zt[0].contentWindow || Zt[0].contentDocument).document, t.write(), t.close(), n = x(e, t), Zt.detach()), en[e] = n), n
}
function I(e, t) {
return {
get: function () {
var n = e();
if (null != n) return n ? void delete this.get : (this.get = t).apply(this, arguments)
}
}
}
function C(e, t) {
if (t in e) return t;
for (var n = t.charAt(0).toUpperCase() + t.slice(1), i = t, r = hn.length; r--;)
if (t = hn[r] + n, t in e) return t;
return i
}
function R(e, t) {
for (var n, i, r, s = [], o = 0, a = e.length; a > o; o++) i = e[o], i.style && (s[o] = st._data(i, "olddisplay"), n = i.style.display, t ? (s[o] || "none" !== n || (i.style.display = ""), "" === i.style.display && Nt(i) && (s[o] = st._data(i, "olddisplay", E(i.nodeName)))) : s[o] || (r = Nt(i), (n && "none" !== n || !r) && st._data(i, "olddisplay", r ? n : st.css(i, "display"))));
for (o = 0; a > o; o++) i = e[o], i.style && (t && "none" !== i.style.display && "" !== i.style.display || (i.style.display = t ? s[o] || "" : "none"));
return e
}
function N(e, t, n) {
var i = cn.exec(t);
return i ? Math.max(0, i[1] - (n || 0)) + (i[2] || "px") : t
}
function _(e, t, n, i, r) {
for (var s = n === (i ? "border" : "content") ? 4 : "width" === t ? 1 : 0, o = 0; 4 > s; s += 2) "margin" === n && (o += st.css(e, n + Rt[s], !0, r)), i ? ("content" === n && (o -= st.css(e, "padding" + Rt[s], !0, r)), "margin" !== n && (o -= st.css(e, "border" + Rt[s] + "Width", !0, r))) : (o += st.css(e, "padding" + Rt[s], !0, r), "padding" !== n && (o += st.css(e, "border" + Rt[s] + "Width", !0, r)));
return o
}
function D(e, t, n) {
var i = !0,
r = "width" === t ? e.offsetWidth : e.offsetHeight,
s = tn(e),
o = it.boxSizing() && "border-box" === st.css(e, "boxSizing", !1, s);
if (0 >= r || null == r) {
if (r = nn(e, t, s), (0 > r || null == r) && (r = e.style[t]), sn.test(r)) return r;
i = o && (it.boxSizingReliable() || r === e.style[t]), r = parseFloat(r) || 0
}
return r + _(e, t, n || (o ? "border" : "content"), i, s) + "px"
}
function A(e, t, n, i, r) {
return new A.prototype.init(e, t, n, i, r)
}
function P() {
return setTimeout(function () {
mn = void 0
}), mn = st.now()
}
function L(e, t) {
var n, i = {
height: e
}, r = 0;
for (t = t ? 1 : 0; 4 > r; r += 2 - t) n = Rt[r], i["margin" + n] = i["padding" + n] = e;
return t && (i.opacity = i.width = e), i
}
function O(e, t, n) {
for (var i, r = (wn[t] || []).concat(wn["*"]), s = 0, o = r.length; o > s; s++)
if (i = r[s].call(n, t, e)) return i
}
function j(e, t, n) {
var i, r, s, o, a, l, u, c, d = this,
p = {}, f = e.style,
h = e.nodeType && Nt(e),
m = st._data(e, "fxshow");
n.queue || (a = st._queueHooks(e, "fx"), null == a.unqueued && (a.unqueued = 0, l = a.empty.fire, a.empty.fire = function () {
a.unqueued || l()
}), a.unqueued++, d.always(function () {
d.always(function () {
a.unqueued--, st.queue(e, "fx").length || a.empty.fire()
})
})), 1 === e.nodeType && ("height" in t || "width" in t) && (n.overflow = [f.overflow, f.overflowX, f.overflowY], u = st.css(e, "display"), c = E(e.nodeName), "none" === u && (u = c), "inline" === u && "none" === st.css(e, "float") && (it.inlineBlockNeedsLayout && "inline" !== c ? f.zoom = 1 : f.display = "inline-block")), n.overflow && (f.overflow = "hidden", it.shrinkWrapBlocks() || d.always(function () {
f.overflow = n.overflow[0], f.overflowX = n.overflow[1], f.overflowY = n.overflow[2]
}));
for (i in t)
if (r = t[i], vn.exec(r)) {
if (delete t[i], s = s || "toggle" === r, r === (h ? "hide" : "show")) {
if ("show" !== r || !m || void 0 === m[i]) continue;
h = !0
}
p[i] = m && m[i] || st.style(e, i)
}
if (!st.isEmptyObject(p)) {
m ? "hidden" in m && (h = m.hidden) : m = st._data(e, "fxshow", {}), s && (m.hidden = !h), h ? st(e).show() : d.done(function () {
st(e).hide()
}), d.done(function () {
var t;
st._removeData(e, "fxshow");
for (t in p) st.style(e, t, p[t])
});
for (i in p) o = O(h ? m[i] : 0, i, d), i in m || (m[i] = o.start, h && (o.end = o.start, o.start = "width" === i || "height" === i ? 1 : 0))
}
}
function F(e, t) {
var n, i, r, s, o;
for (n in e)
if (i = st.camelCase(n), r = t[i], s = e[n], st.isArray(s) && (r = s[1], s = e[n] = s[0]), n !== i && (e[i] = s, delete e[n]), o = st.cssHooks[i], o && "expand" in o) {
s = o.expand(s), delete e[i];
for (n in s) n in e || (e[n] = s[n], t[n] = r)
} else t[i] = r
}
function M(e, t, n) {
var i, r, s = 0,
o = yn.length,
a = st.Deferred().always(function () {
delete l.elem
}),
l = function () {
if (r) return !1;
for (var t = mn || P(), n = Math.max(0, u.startTime + u.duration - t), i = n / u.duration || 0, s = 1 - i, o = 0, l = u.tweens.length; l > o; o++) u.tweens[o].run(s);
return a.notifyWith(e, [u, s, n]), 1 > s && l ? n : (a.resolveWith(e, [u]), !1)
}, u = a.promise({
elem: e,
props: st.extend({}, t),
opts: st.extend(!0, {
specialEasing: {}
}, n),
originalProperties: t,
originalOptions: n,
startTime: mn || P(),
duration: n.duration,
tweens: [],
createTween: function (t, n) {
var i = st.Tween(e, u.opts, t, n, u.opts.specialEasing[t] || u.opts.easing);
return u.tweens.push(i), i
},
stop: function (t) {
var n = 0,
i = t ? u.tweens.length : 0;
if (r) return this;
for (r = !0; i > n; n++) u.tweens[n].run(1);
return t ? a.resolveWith(e, [u, t]) : a.rejectWith(e, [u, t]), this
}
}),
c = u.props;
for (F(c, u.opts.specialEasing); o > s; s++)
if (i = yn[s].call(u, e, c, u.opts)) return i;
return st.map(c, O, u), st.isFunction(u.opts.start) && u.opts.start.call(e, u), st.fx.timer(st.extend(l, {
elem: e,
anim: u,
queue: u.opts.queue
})), u.progress(u.opts.progress).done(u.opts.done, u.opts.complete).fail(u.opts.fail).always(u.opts.always)
}
function z(e) {
return function (t, n) {
"string" != typeof t && (n = t, t = "*");
var i, r = 0,
s = t.toLowerCase().match(yt) || [];
if (st.isFunction(n))
for (; i = s[r++];) "+" === i.charAt(0) ? (i = i.slice(1) || "*", (e[i] = e[i] || []).unshift(n)) : (e[i] = e[i] || []).push(n)
}
}
function H(e, t, n, i) {
function r(a) {
var l;
return s[a] = !0, st.each(e[a] || [], function (e, a) {
var u = a(t, n, i);
return "string" != typeof u || o || s[u] ? o ? !(l = u) : void 0 : (t.dataTypes.unshift(u), r(u), !1)
}), l
}
var s = {}, o = e === Xn;
return r(t.dataTypes[0]) || !s["*"] && r("*")
}
function U(e, t) {
var n, i, r = st.ajaxSettings.flatOptions || {};
for (i in t) void 0 !== t[i] && ((r[i] ? e : n || (n = {}))[i] = t[i]);
return n && st.extend(!0, e, n), e
}
function W(e, t, n) {
for (var i, r, s, o, a = e.contents, l = e.dataTypes;
"*" === l[0];) l.shift(), void 0 === r && (r = e.mimeType || t.getResponseHeader("Content-Type"));
if (r)
for (o in a)
if (a[o] && a[o].test(r)) {
l.unshift(o);
break
}
if (l[0] in n) s = l[0];
else {
for (o in n) {
if (!l[0] || e.converters[o + " " + l[0]]) {
s = o;
break
}
i || (i = o)
}
s = s || i
}
return s ? (s !== l[0] && l.unshift(s), n[s]) : void 0
}
function B(e, t, n, i) {
var r, s, o, a, l, u = {}, c = e.dataTypes.slice();
if (c[1])
for (o in e.converters) u[o.toLowerCase()] = e.converters[o];
for (s = c.shift(); s;)
if (e.responseFields[s] && (n[e.responseFields[s]] = t), !l && i && e.dataFilter && (t = e.dataFilter(t, e.dataType)), l = s, s = c.shift())
if ("*" === s) s = l;
else if ("*" !== l && l !== s) {
if (o = u[l + " " + s] || u["* " + s], !o)
for (r in u)
if (a = r.split(" "), a[1] === s && (o = u[l + " " + a[0]] || u["* " + a[0]])) {
o === !0 ? o = u[r] : u[r] !== !0 && (s = a[0], c.unshift(a[1]));
break
}
if (o !== !0)
if (o && e["throws"]) t = o(t);
else try {
t = o(t)
} catch (d) {
return {
state: "parsererror",
error: o ? d : "No conversion from " + l + " to " + s
}
}
}
return {
state: "success",
data: t
}
}
function q(e, t, n, i) {
var r;
if (st.isArray(t)) st.each(t, function (t, r) {
n || Jn.test(e) ? i(e, r) : q(e + "[" + ("object" == typeof r ? t : "") + "]", r, n, i)
});
else if (n || "object" !== st.type(t)) i(e, t);
else
for (r in t) q(e + "[" + r + "]", t[r], n, i)
}
function X() {
try {
return new e.XMLHttpRequest
} catch (t) {}
}
function V() {
try {
return new e.ActiveXObject("Microsoft.XMLHTTP")
} catch (t) {}
}
function Y(e) {
return st.isWindow(e) ? e : 9 === e.nodeType ? e.defaultView || e.parentWindow : !1
}
var $ = [],
J = $.slice,
G = $.concat,
K = $.push,
Q = $.indexOf,
Z = {}, et = Z.toString,
tt = Z.hasOwnProperty,
nt = "".trim,
it = {}, rt = "1.11.0",
st = function (e, t) {
return new st.fn.init(e, t)
}, ot = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
at = /^-ms-/,
lt = /-([\da-z])/gi,
ut = function (e, t) {
return t.toUpperCase()
};
st.fn = st.prototype = {
jquery: rt,
constructor: st,
selector: "",
length: 0,
toArray: function () {
return J.call(this)
},
get: function (e) {
return null != e ? 0 > e ? this[e + this.length] : this[e] : J.call(this)
},
pushStack: function (e) {
var t = st.merge(this.constructor(), e);
return t.prevObject = this, t.context = this.context, t
},
each: function (e, t) {
return st.each(this, e, t)
},
map: function (e) {
return this.pushStack(st.map(this, function (t, n) {
return e.call(t, n, t)
}))
},
slice: function () {
return this.pushStack(J.apply(this, arguments))
},
first: function () {
return this.eq(0)
},
last: function () {
return this.eq(-1)
},
eq: function (e) {
var t = this.length,
n = +e + (0 > e ? t : 0);
return this.pushStack(n >= 0 && t > n ? [this[n]] : [])
},
end: function () {
return this.prevObject || this.constructor(null)
},
push: K,
sort: $.sort,
splice: $.splice
}, st.extend = st.fn.extend = function () {
var e, t, n, i, r, s, o = arguments[0] || {}, a = 1,
l = arguments.length,
u = !1;
for ("boolean" == typeof o && (u = o, o = arguments[a] || {}, a++), "object" == typeof o || st.isFunction(o) || (o = {}), a === l && (o = this, a--); l > a; a++)
if (null != (r = arguments[a]))
for (i in r) e = o[i], n = r[i], o !== n && (u && n && (st.isPlainObject(n) || (t = st.isArray(n))) ? (t ? (t = !1, s = e && st.isArray(e) ? e : []) : s = e && st.isPlainObject(e) ? e : {}, o[i] = st.extend(u, s, n)) : void 0 !== n && (o[i] = n));
return o
}, st.extend({
expando: "jQuery" + (rt + Math.random()).replace(/\D/g, ""),
isReady: !0,
error: function (e) {
throw new Error(e)
},
noop: function () {},
isFunction: function (e) {
return "function" === st.type(e)
},
isArray: Array.isArray || function (e) {
return "array" === st.type(e)
},
isWindow: function (e) {
return null != e && e == e.window
},
isNumeric: function (e) {
return e - parseFloat(e) >= 0
},
isEmptyObject: function (e) {
var t;
for (t in e) return !1;
return !0
},
isPlainObject: function (e) {
var t;
if (!e || "object" !== st.type(e) || e.nodeType || st.isWindow(e)) return !1;
try {
if (e.constructor && !tt.call(e, "constructor") && !tt.call(e.constructor.prototype, "isPrototypeOf")) return !1
} catch (n) {
return !1
}
if (it.ownLast)
for (t in e) return tt.call(e, t);
for (t in e);
return void 0 === t || tt.call(e, t)
},
type: function (e) {
return null == e ? e + "" : "object" == typeof e || "function" == typeof e ? Z[et.call(e)] || "object" : typeof e
},
globalEval: function (t) {
t && st.trim(t) && (e.execScript || function (t) {
e.eval.call(e, t)
})(t)
},
camelCase: function (e) {
return e.replace(at, "ms-").replace(lt, ut)
},
nodeName: function (e, t) {
return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase()
},
each: function (e, t, i) {
var r, s = 0,
o = e.length,
a = n(e);
if (i) {
if (a)
for (; o > s && (r = t.apply(e[s], i), r !== !1); s++);
else
for (s in e)
if (r = t.apply(e[s], i), r === !1) break
} else if (a)
for (; o > s && (r = t.call(e[s], s, e[s]), r !== !1); s++);
else
for (s in e)
if (r = t.call(e[s], s, e[s]), r === !1) break; return e
},
trim: nt && !nt.call("\ufeff\xa0") ? function (e) {
return null == e ? "" : nt.call(e)
} : function (e) {
return null == e ? "" : (e + "").replace(ot, "")
},
makeArray: function (e, t) {
var i = t || [];
return null != e && (n(Object(e)) ? st.merge(i, "string" == typeof e ? [e] : e) : K.call(i, e)), i
},
inArray: function (e, t, n) {
var i;
if (t) {
if (Q) return Q.call(t, e, n);
for (i = t.length, n = n ? 0 > n ? Math.max(0, i + n) : n : 0; i > n; n++)
if (n in t && t[n] === e) return n
}
return -1
},
merge: function (e, t) {
for (var n = +t.length, i = 0, r = e.length; n > i;) e[r++] = t[i++];
if (n !== n)
for (; void 0 !== t[i];) e[r++] = t[i++];
return e.length = r, e
},
grep: function (e, t, n) {
for (var i, r = [], s = 0, o = e.length, a = !n; o > s; s++) i = !t(e[s], s), i !== a && r.push(e[s]);
return r
},
map: function (e, t, i) {
var r, s = 0,
o = e.length,
a = n(e),
l = [];
if (a)
for (; o > s; s++) r = t(e[s], s, i), null != r && l.push(r);
else
for (s in e) r = t(e[s], s, i), null != r && l.push(r);
return G.apply([], l)
},
guid: 1,
proxy: function (e, t) {
var n, i, r;
return "string" == typeof t && (r = e[t], t = e, e = r), st.isFunction(e) ? (n = J.call(arguments, 2), i = function () {
return e.apply(t || this, n.concat(J.call(arguments)))
}, i.guid = e.guid = e.guid || st.guid++, i) : void 0
},
now: function () {
return +new Date
},
support: it
}), st.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function (e, t) {
Z["[object " + t + "]"] = t.toLowerCase()
});
var ct = function (e) {
function t(e, t, n, i) {
var r, s, o, a, l, u, d, h, m, g;
if ((t ? t.ownerDocument || t : H) !== A && D(t), t = t || A, n = n || [], !e || "string" != typeof e) return n;
if (1 !== (a = t.nodeType) && 9 !== a) return [];
if (L && !i) {
if (r = bt.exec(e))
if (o = r[1]) {
if (9 === a) {
if (s = t.getElementById(o), !s || !s.parentNode) return n;
if (s.id === o) return n.push(s), n
} else if (t.ownerDocument && (s = t.ownerDocument.getElementById(o)) && M(t, s) && s.id === o) return n.push(s), n
} else {
if (r[2]) return Z.apply(n, t.getElementsByTagName(e)), n;
if ((o = r[3]) && S.getElementsByClassName && t.getElementsByClassName) return Z.apply(n, t.getElementsByClassName(o)), n
}
if (S.qsa && (!O || !O.test(e))) {
if (h = d = z, m = t, g = 9 === a && e, 1 === a && "object" !== t.nodeName.toLowerCase()) {
for (u = p(e), (d = t.getAttribute("id")) ? h = d.replace(yt, "\\$&") : t.setAttribute("id", h), h = "[id='" + h + "'] ", l = u.length; l--;) u[l] = h + f(u[l]);
m = kt.test(e) && c(t.parentNode) || t, g = u.join(",")
}
if (g) try {
return Z.apply(n, m.querySelectorAll(g)), n
} catch (v) {} finally {
d || t.removeAttribute("id")
}
}
}
return w(e.replace(lt, "$1"), t, n, i)
}
function n() {
function e(n, i) {
return t.push(n + " ") > x.cacheLength && delete e[t.shift()], e[n + " "] = i
}
var t = [];
return e
}
function i(e) {
return e[z] = !0, e
}
function r(e) {
var t = A.createElement("div");
try {
return !!e(t)
} catch (n) {
return !1
} finally {
t.parentNode && t.parentNode.removeChild(t), t = null
}
}
function s(e, t) {
for (var n = e.split("|"), i = e.length; i--;) x.attrHandle[n[i]] = t
}
function o(e, t) {
var n = t && e,
i = n && 1 === e.nodeType && 1 === t.nodeType && (~t.sourceIndex || $) - (~e.sourceIndex || $);
if (i) return i;
if (n)
for (; n = n.nextSibling;)
if (n === t) return -1;
return e ? 1 : -1
}
function a(e) {
return function (t) {
var n = t.nodeName.toLowerCase();
return "input" === n && t.type === e
}
}
function l(e) {
return function (t) {
var n = t.nodeName.toLowerCase();
return ("input" === n || "button" === n) && t.type === e
}
}
function u(e) {
return i(function (t) {
return t = +t, i(function (n, i) {
for (var r, s = e([], n.length, t), o = s.length; o--;) n[r = s[o]] && (n[r] = !(i[r] = n[r]))
})
})
}
function c(e) {
return e && typeof e.getElementsByTagName !== Y && e
}
function d() {}
function p(e, n) {
var i, r, s, o, a, l, u, c = q[e + " "];
if (c) return n ? 0 : c.slice(0);
for (a = e, l = [], u = x.preFilter; a;) {
(!i || (r = ut.exec(a))) && (r && (a = a.slice(r[0].length) || a), l.push(s = [])), i = !1, (r = ct.exec(a)) && (i = r.shift(), s.push({
value: i,
type: r[0].replace(lt, " ")
}), a = a.slice(i.length));
for (o in x.filter)!(r = ht[o].exec(a)) || u[o] && !(r = u[o](r)) || (i = r.shift(), s.push({
value: i,
type: o,
matches: r
}), a = a.slice(i.length));
if (!i) break
}
return n ? a.length : a ? t.error(e) : q(e, l).slice(0)
}
function f(e) {
for (var t = 0, n = e.length, i = ""; n > t; t++) i += e[t].value;
return i
}
function h(e, t, n) {
var i = t.dir,
r = n && "parentNode" === i,
s = W++;
return t.first ? function (t, n, s) {
for (; t = t[i];)
if (1 === t.nodeType || r) return e(t, n, s)
} : function (t, n, o) {
var a, l, u = [U, s];
if (o) {
for (; t = t[i];)
if ((1 === t.nodeType || r) && e(t, n, o)) return !0
} else
for (; t = t[i];)
if (1 === t.nodeType || r) {
if (l = t[z] || (t[z] = {}), (a = l[i]) && a[0] === U && a[1] === s) return u[2] = a[2];
if (l[i] = u, u[2] = e(t, n, o)) return !0
}
}
}
function m(e) {
return e.length > 1 ? function (t, n, i) {
for (var r = e.length; r--;)
if (!e[r](t, n, i)) return !1;
return !0
} : e[0]
}
function g(e, t, n, i, r) {
for (var s, o = [], a = 0, l = e.length, u = null != t; l > a; a++)(s = e[a]) && (!n || n(s, i, r)) && (o.push(s), u && t.push(a));
return o
}
function v(e, t, n, r, s, o) {
return r && !r[z] && (r = v(r)), s && !s[z] && (s = v(s, o)), i(function (i, o, a, l) {
var u, c, d, p = [],
f = [],
h = o.length,
m = i || y(t || "*", a.nodeType ? [a] : a, []),
v = !e || !i && t ? m : g(m, p, e, a, l),
b = n ? s || (i ? e : h || r) ? [] : o : v;
if (n && n(v, b, a, l), r)
for (u = g(b, f), r(u, [], a, l), c = u.length; c--;)(d = u[c]) && (b[f[c]] = !(v[f[c]] = d));
if (i) {
if (s || e) {
if (s) {
for (u = [], c = b.length; c--;)(d = b[c]) && u.push(v[c] = d);
s(null, b = [], u, l)
}
for (c = b.length; c--;)(d = b[c]) && (u = s ? tt.call(i, d) : p[c]) > -1 && (i[u] = !(o[u] = d))
}
} else b = g(b === o ? b.splice(h, b.length) : b), s ? s(null, o, b, l) : Z.apply(o, b)
})
}
function b(e) {
for (var t, n, i, r = e.length, s = x.relative[e[0].type], o = s || x.relative[" "], a = s ? 1 : 0, l = h(function (e) {
return e === t
}, o, !0), u = h(function (e) {
return tt.call(t, e) > -1
}, o, !0), c = [
function (e, n, i) {
return !s && (i || n !== R) || ((t = n).nodeType ? l(e, n, i) : u(e, n, i))
}
]; r > a; a++)
if (n = x.relative[e[a].type]) c = [h(m(c), n)];
else {
if (n = x.filter[e[a].type].apply(null, e[a].matches), n[z]) {
for (i = ++a; r > i && !x.relative[e[i].type]; i++);
return v(a > 1 && m(c), a > 1 && f(e.slice(0, a - 1).concat({
value: " " === e[a - 2].type ? "*" : ""
})).replace(lt, "$1"), n, i > a && b(e.slice(a, i)), r > i && b(e = e.slice(i)), r > i && f(e))
}
c.push(n)
}
return m(c)
}
function k(e, n) {
var r = n.length > 0,
s = e.length > 0,
o = function (i, o, a, l, u) {
var c, d, p, f = 0,
h = "0",
m = i && [],
v = [],
b = R,
k = i || s && x.find.TAG("*", u),
y = U += null == b ? 1 : Math.random() || .1,
w = k.length;
for (u && (R = o !== A && o); h !== w && null != (c = k[h]); h++) {
if (s && c) {
for (d = 0; p = e[d++];)
if (p(c, o, a)) {
l.push(c);
break
}
u && (U = y)
}
r && ((c = !p && c) && f--, i && m.push(c))
}
if (f += h, r && h !== f) {
for (d = 0; p = n[d++];) p(m, v, o, a);
if (i) {
if (f > 0)
for (; h--;) m[h] || v[h] || (v[h] = K.call(l));
v = g(v)
}
Z.apply(l, v), u && !i && v.length > 0 && f + n.length > 1 && t.uniqueSort(l)
}
return u && (U = y, R = b), m
};
return r ? i(o) : o
}
function y(e, n, i) {
for (var r = 0, s = n.length; s > r; r++) t(e, n[r], i);
return i
}
function w(e, t, n, i) {
var r, s, o, a, l, u = p(e);
if (!i && 1 === u.length) {
if (s = u[0] = u[0].slice(0), s.length > 2 && "ID" === (o = s[0]).type && S.getById && 9 === t.nodeType && L && x.relative[s[1].type]) {
if (t = (x.find.ID(o.matches[0].replace(wt, Tt), t) || [])[0], !t) return n;
e = e.slice(s.shift().value.length)
}
for (r = ht.needsContext.test(e) ? 0 : s.length; r-- && (o = s[r], !x.relative[a = o.type]);)
if ((l = x.find[a]) && (i = l(o.matches[0].replace(wt, Tt), kt.test(s[0].type) && c(t.parentNode) || t))) {
if (s.splice(r, 1), e = i.length && f(s), !e) return Z.apply(n, i), n;
break
}
}
return C(e, u)(i, t, !L, n, kt.test(e) && c(t.parentNode) || t), n
}
var T, S, x, E, I, C, R, N, _, D, A, P, L, O, j, F, M, z = "sizzle" + -new Date,
H = e.document,
U = 0,
W = 0,
B = n(),
q = n(),
X = n(),
V = function (e, t) {
return e === t && (_ = !0), 0
}, Y = "undefined",
$ = 1 << 31,
J = {}.hasOwnProperty,
G = [],
K = G.pop,
Q = G.push,
Z = G.push,
et = G.slice,
tt = G.indexOf || function (e) {
for (var t = 0, n = this.length; n > t; t++)
if (this[t] === e) return t;
return -1
}, nt = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
it = "[\\x20\\t\\r\\n\\f]",
rt = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",
st = rt.replace("w", "w#"),
ot = "\\[" + it + "*(" + rt + ")" + it + "*(?:([*^$|!~]?=)" + it + "*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" + st + ")|)|)" + it + "*\\]",
at = ":(" + rt + ")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|" + ot.replace(3, 8) + ")*)|.*)\\)|)",
lt = new RegExp("^" + it + "+|((?:^|[^\\\\])(?:\\\\.)*)" + it + "+$", "g"),
ut = new RegExp("^" + it + "*," + it + "*"),
ct = new RegExp("^" + it + "*([>+~]|" + it + ")" + it + "*"),
dt = new RegExp("=" + it + "*([^\\]'\"]*?)" + it + "*\\]", "g"),
pt = new RegExp(at),
ft = new RegExp("^" + st + "$"),
ht = {
ID: new RegExp("^#(" + rt + ")"),
CLASS: new RegExp("^\\.(" + rt + ")"),
TAG: new RegExp("^(" + rt.replace("w", "w*") + ")"),
ATTR: new RegExp("^" + ot),
PSEUDO: new RegExp("^" + at),
CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + it + "*(even|odd|(([+-]|)(\\d*)n|)" + it + "*(?:([+-]|)" + it + "*(\\d+)|))" + it + "*\\)|)", "i"),
bool: new RegExp("^(?:" + nt + ")$", "i"),
needsContext: new RegExp("^" + it + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + it + "*((?:-\\d)?\\d*)" + it + "*\\)|)(?=[^-]|$)", "i")
}, mt = /^(?:input|select|textarea|button)$/i,
gt = /^h\d$/i,
vt = /^[^{]+\{\s*\[native \w/,
bt = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
kt = /[+~]/,
yt = /'|\\/g,
wt = new RegExp("\\\\([\\da-f]{1,6}" + it + "?|(" + it + ")|.)", "ig"),
Tt = function (e, t, n) {
var i = "0x" + t - 65536;
return i !== i || n ? t : 0 > i ? String.fromCharCode(i + 65536) : String.fromCharCode(i >> 10 | 55296, 1023 & i | 56320)
};
try {
Z.apply(G = et.call(H.childNodes), H.childNodes), G[H.childNodes.length].nodeType
} catch (St) {
Z = {
apply: G.length ? function (e, t) {
Q.apply(e, et.call(t))
} : function (e, t) {
for (var n = e.length, i = 0; e[n++] = t[i++];);
e.length = n - 1
}
}
}
S = t.support = {}, I = t.isXML = function (e) {
var t = e && (e.ownerDocument || e).documentElement;
return t ? "HTML" !== t.nodeName : !1
}, D = t.setDocument = function (e) {
var t, n = e ? e.ownerDocument || e : H,
i = n.defaultView;
return n !== A && 9 === n.nodeType && n.documentElement ? (A = n, P = n.documentElement, L = !I(n), i && i !== i.top && (i.addEventListener ? i.addEventListener("unload", function () {
D()
}, !1) : i.attachEvent && i.attachEvent("onunload", function () {
D()
})), S.attributes = r(function (e) {
return e.className = "i", !e.getAttribute("className")
}), S.getElementsByTagName = r(function (e) {
return e.appendChild(n.createComment("")), !e.getElementsByTagName("*").length
}), S.getElementsByClassName = vt.test(n.getElementsByClassName) && r(function (e) {
return e.innerHTML = "<div class='a'></div><div class='a i'></div>", e.firstChild.className = "i", 2 === e.getElementsByClassName("i").length
}), S.getById = r(function (e) {
return P.appendChild(e).id = z, !n.getElementsByName || !n.getElementsByName(z).length
}), S.getById ? (x.find.ID = function (e, t) {
if (typeof t.getElementById !== Y && L) {
var n = t.getElementById(e);
return n && n.parentNode ? [n] : []
}
}, x.filter.ID = function (e) {
var t = e.replace(wt, Tt);
return function (e) {
return e.getAttribute("id") === t
}
}) : (delete x.find.ID, x.filter.ID = function (e) {
var t = e.replace(wt, Tt);
return function (e) {
var n = typeof e.getAttributeNode !== Y && e.getAttributeNode("id");
return n && n.value === t
}
}), x.find.TAG = S.getElementsByTagName ? function (e, t) {
return typeof t.getElementsByTagName !== Y ? t.getElementsByTagName(e) : void 0
} : function (e, t) {
var n, i = [],
r = 0,
s = t.getElementsByTagName(e);
if ("*" === e) {
for (; n = s[r++];) 1 === n.nodeType && i.push(n);
return i
}
return s
}, x.find.CLASS = S.getElementsByClassName && function (e, t) {
return typeof t.getElementsByClassName !== Y && L ? t.getElementsByClassName(e) : void 0
}, j = [], O = [], (S.qsa = vt.test(n.querySelectorAll)) && (r(function (e) {
e.innerHTML = "<select t=''><option selected=''></option></select>", e.querySelectorAll("[t^='']").length && O.push("[*^$]=" + it + "*(?:''|\"\")"), e.querySelectorAll("[selected]").length || O.push("\\[" + it + "*(?:value|" + nt + ")"), e.querySelectorAll(":checked").length || O.push(":checked")
}), r(function (e) {
var t = n.createElement("input");
t.setAttribute("type", "hidden"), e.appendChild(t).setAttribute("name", "D"), e.querySelectorAll("[name=d]").length && O.push("name" + it + "*[*^$|!~]?="), e.querySelectorAll(":enabled").length || O.push(":enabled", ":disabled"), e.querySelectorAll("*,:x"), O.push(",.*:")
})), (S.matchesSelector = vt.test(F = P.webkitMatchesSelector || P.mozMatchesSelector || P.oMatchesSelector || P.msMatchesSelector)) && r(function (e) {
S.disconnectedMatch = F.call(e, "div"), F.call(e, "[s!='']:x"), j.push("!=", at)
}), O = O.length && new RegExp(O.join("|")), j = j.length && new RegExp(j.join("|")), t = vt.test(P.compareDocumentPosition), M = t || vt.test(P.contains) ? function (e, t) {
var n = 9 === e.nodeType ? e.documentElement : e,
i = t && t.parentNode;
return e === i || !(!i || 1 !== i.nodeType || !(n.contains ? n.contains(i) : e.compareDocumentPosition && 16 & e.compareDocumentPosition(i)))
} : function (e, t) {
if (t)
for (; t = t.parentNode;)
if (t === e) return !0;
return !1
}, V = t ? function (e, t) {
if (e === t) return _ = !0, 0;
var i = !e.compareDocumentPosition - !t.compareDocumentPosition;
return i ? i : (i = (e.ownerDocument || e) === (t.ownerDocument || t) ? e.compareDocumentPosition(t) : 1, 1 & i || !S.sortDetached && t.compareDocumentPosition(e) === i ? e === n || e.ownerDocument === H && M(H, e) ? -1 : t === n || t.ownerDocument === H && M(H, t) ? 1 : N ? tt.call(N, e) - tt.call(N, t) : 0 : 4 & i ? -1 : 1)
} : function (e, t) {
if (e === t) return _ = !0, 0;
var i, r = 0,
s = e.parentNode,
a = t.parentNode,
l = [e],
u = [t];
if (!s || !a) return e === n ? -1 : t === n ? 1 : s ? -1 : a ? 1 : N ? tt.call(N, e) - tt.call(N, t) : 0;
if (s === a) return o(e, t);
for (i = e; i = i.parentNode;) l.unshift(i);
for (i = t; i = i.parentNode;) u.unshift(i);
for (; l[r] === u[r];) r++;
return r ? o(l[r], u[r]) : l[r] === H ? -1 : u[r] === H ? 1 : 0
}, n) : A
}, t.matches = function (e, n) {
return t(e, null, null, n)
}, t.matchesSelector = function (e, n) {
if ((e.ownerDocument || e) !== A && D(e), n = n.replace(dt, "='$1']"), !(!S.matchesSelector || !L || j && j.test(n) || O && O.test(n))) try {
var i = F.call(e, n);
if (i || S.disconnectedMatch || e.document && 11 !== e.document.nodeType) return i
} catch (r) {}
return t(n, A, null, [e]).length > 0
}, t.contains = function (e, t) {
return (e.ownerDocument || e) !== A && D(e), M(e, t)
}, t.attr = function (e, t) {
(e.ownerDocument || e) !== A && D(e);
var n = x.attrHandle[t.toLowerCase()],
i = n && J.call(x.attrHandle, t.toLowerCase()) ? n(e, t, !L) : void 0;
return void 0 !== i ? i : S.attributes || !L ? e.getAttribute(t) : (i = e.getAttributeNode(t)) && i.specified ? i.value : null
}, t.error = function (e) {
throw new Error("Syntax error, unrecognized expression: " + e)
}, t.uniqueSort = function (e) {
var t, n = [],
i = 0,
r = 0;
if (_ = !S.detectDuplicates, N = !S.sortStable && e.slice(0), e.sort(V), _) {
for (; t = e[r++];) t === e[r] && (i = n.push(r));
for (; i--;) e.splice(n[i], 1)
}
return N = null, e
}, E = t.getText = function (e) {
var t, n = "",
i = 0,
r = e.nodeType;
if (r) {
if (1 === r || 9 === r || 11 === r) {
if ("string" == typeof e.textContent) return e.textContent;
for (e = e.firstChild; e; e = e.nextSibling) n += E(e)
} else if (3 === r || 4 === r) return e.nodeValue
} else
for (; t = e[i++];) n += E(t);
return n
}, x = t.selectors = {
cacheLength: 50,
createPseudo: i,
match: ht,
attrHandle: {},
find: {},
relative: {
">": {
dir: "parentNode",
first: !0
},
" ": {
dir: "parentNode"
},
"+": {
dir: "previousSibling",
first: !0
},
"~": {
dir: "previousSibling"
}
},
preFilter: {
ATTR: function (e) {
return e[1] = e[1].replace(wt, Tt), e[3] = (e[4] || e[5] || "").replace(wt, Tt), "~=" === e[2] && (e[3] = " " + e[3] + " "), e.slice(0, 4)
},
CHILD: function (e) {
return e[1] = e[1].toLowerCase(), "nth" === e[1].slice(0, 3) ? (e[3] || t.error(e[0]), e[4] = +(e[4] ? e[5] + (e[6] || 1) : 2 * ("even" === e[3] || "odd" === e[3])), e[5] = +(e[7] + e[8] || "odd" === e[3])) : e[3] && t.error(e[0]), e
},
PSEUDO: function (e) {
var t, n = !e[5] && e[2];
return ht.CHILD.test(e[0]) ? null : (e[3] && void 0 !== e[4] ? e[2] = e[4] : n && pt.test(n) && (t = p(n, !0)) && (t = n.indexOf(")", n.length - t) - n.length) && (e[0] = e[0].slice(0, t), e[2] = n.slice(0, t)), e.slice(0, 3))
}
},
filter: {
TAG: function (e) {
var t = e.replace(wt, Tt).toLowerCase();
return "*" === e ? function () {
return !0
} : function (e) {
return e.nodeName && e.nodeName.toLowerCase() === t
}
},
CLASS: function (e) {
var t = B[e + " "];
return t || (t = new RegExp("(^|" + it + ")" + e + "(" + it + "|$)")) && B(e, function (e) {
return t.test("string" == typeof e.className && e.className || typeof e.getAttribute !== Y && e.getAttribute("class") || "")
})
},
ATTR: function (e, n, i) {
return function (r) {
var s = t.attr(r, e);
return null == s ? "!=" === n : n ? (s += "", "=" === n ? s === i : "!=" === n ? s !== i : "^=" === n ? i && 0 === s.indexOf(i) : "*=" === n ? i && s.indexOf(i) > -1 : "$=" === n ? i && s.slice(-i.length) === i : "~=" === n ? (" " + s + " ").indexOf(i) > -1 : "|=" === n ? s === i || s.slice(0, i.length + 1) === i + "-" : !1) : !0
}
},
CHILD: function (e, t, n, i, r) {
var s = "nth" !== e.slice(0, 3),
o = "last" !== e.slice(-4),
a = "of-type" === t;
return 1 === i && 0 === r ? function (e) {
return !!e.parentNode
} : function (t, n, l) {
var u, c, d, p, f, h, m = s !== o ? "nextSibling" : "previousSibling",
g = t.parentNode,
v = a && t.nodeName.toLowerCase(),
b = !l && !a;
if (g) {
if (s) {
for (; m;) {
for (d = t; d = d[m];)
if (a ? d.nodeName.toLowerCase() === v : 1 === d.nodeType) return !1;
h = m = "only" === e && !h && "nextSibling"
}
return !0
}
if (h = [o ? g.firstChild : g.lastChild], o && b) {
for (c = g[z] || (g[z] = {}), u = c[e] || [], f = u[0] === U && u[1], p = u[0] === U && u[2], d = f && g.childNodes[f]; d = ++f && d && d[m] || (p = f = 0) || h.pop();)
if (1 === d.nodeType && ++p && d === t) {
c[e] = [U, f, p];
break
}
} else if (b && (u = (t[z] || (t[z] = {}))[e]) && u[0] === U) p = u[1];
else
for (;
(d = ++f && d && d[m] || (p = f = 0) || h.pop()) && ((a ? d.nodeName.toLowerCase() !== v : 1 !== d.nodeType) || !++p || (b && ((d[z] || (d[z] = {}))[e] = [U, p]), d !== t)););
return p -= r, p === i || p % i === 0 && p / i >= 0
}
}
},
PSEUDO: function (e, n) {
var r, s = x.pseudos[e] || x.setFilters[e.toLowerCase()] || t.error("unsupported pseudo: " + e);
return s[z] ? s(n) : s.length > 1 ? (r = [e, e, "", n], x.setFilters.hasOwnProperty(e.toLowerCase()) ? i(function (e, t) {
for (var i, r = s(e, n), o = r.length; o--;) i = tt.call(e, r[o]), e[i] = !(t[i] = r[o])
}) : function (e) {
return s(e, 0, r)
}) : s
}
},
pseudos: {
not: i(function (e) {
var t = [],
n = [],
r = C(e.replace(lt, "$1"));
return r[z] ? i(function (e, t, n, i) {
for (var s, o = r(e, null, i, []), a = e.length; a--;)(s = o[a]) && (e[a] = !(t[a] = s))
}) : function (e, i, s) {
return t[0] = e, r(t, null, s, n), !n.pop()
}
}),
has: i(function (e) {
return function (n) {
return t(e, n).length > 0
}
}),
contains: i(function (e) {
return function (t) {
return (t.textContent || t.innerText || E(t)).indexOf(e) > -1
}
}),
lang: i(function (e) {
return ft.test(e || "") || t.error("unsupported lang: " + e), e = e.replace(wt, Tt).toLowerCase(),
function (t) {
var n;
do
if (n = L ? t.lang : t.getAttribute("xml:lang") || t.getAttribute("lang")) return n = n.toLowerCase(), n === e || 0 === n.indexOf(e + "-"); while ((t = t.parentNode) && 1 === t.nodeType);
return !1
}
}),
target: function (t) {
var n = e.location && e.location.hash;
return n && n.slice(1) === t.id
},
root: function (e) {
return e === P
},
focus: function (e) {
return e === A.activeElement && (!A.hasFocus || A.hasFocus()) && !! (e.type || e.href || ~e.tabIndex)
},
enabled: function (e) {
return e.disabled === !1
},
disabled: function (e) {
return e.disabled === !0
},
checked: function (e) {
var t = e.nodeName.toLowerCase();
return "input" === t && !! e.checked || "option" === t && !! e.selected
},
selected: function (e) {
return e.parentNode && e.parentNode.selectedIndex, e.selected === !0
},
empty: function (e) {
for (e = e.firstChild; e; e = e.nextSibling)
if (e.nodeType < 6) return !1;
return !0
},
parent: function (e) {
return !x.pseudos.empty(e)
},
header: function (e) {
return gt.test(e.nodeName)
},
input: function (e) {
return mt.test(e.nodeName)
},
button: function (e) {
var t = e.nodeName.toLowerCase();
return "input" === t && "button" === e.type || "button" === t
},
text: function (e) {
var t;
return "input" === e.nodeName.toLowerCase() && "text" === e.type && (null == (t = e.getAttribute("type")) || "text" === t.toLowerCase())
},
first: u(function () {
return [0]
}),
last: u(function (e, t) {
return [t - 1]
}),
eq: u(function (e, t, n) {
return [0 > n ? n + t : n]
}),
even: u(function (e, t) {
for (var n = 0; t > n; n += 2) e.push(n);
return e
}),
odd: u(function (e, t) {
for (var n = 1; t > n; n += 2) e.push(n);
return e
}),
lt: u(function (e, t, n) {
for (var i = 0 > n ? n + t : n; --i >= 0;) e.push(i);
return e
}),
gt: u(function (e, t, n) {
for (var i = 0 > n ? n + t : n; ++i < t;) e.push(i);
return e
})
}
}, x.pseudos.nth = x.pseudos.eq;
for (T in {
radio: !0,
checkbox: !0,
file: !0,
password: !0,
image: !0
}) x.pseudos[T] = a(T);
for (T in {
submit: !0,
reset: !0
}) x.pseudos[T] = l(T);
return d.prototype = x.filters = x.pseudos, x.setFilters = new d, C = t.compile = function (e, t) {
var n, i = [],
r = [],
s = X[e + " "];
if (!s) {
for (t || (t = p(e)), n = t.length; n--;) s = b(t[n]), s[z] ? i.push(s) : r.push(s);
s = X(e, k(r, i))
}
return s
}, S.sortStable = z.split("").sort(V).join("") === z, S.detectDuplicates = !! _, D(), S.sortDetached = r(function (e) {
return 1 & e.compareDocumentPosition(A.createElement("div"))
}), r(function (e) {
return e.innerHTML = "<a href='#'></a>", "#" === e.firstChild.getAttribute("href")
}) || s("type|href|height|width", function (e, t, n) {
return n ? void 0 : e.getAttribute(t, "type" === t.toLowerCase() ? 1 : 2)
}), S.attributes && r(function (e) {
return e.innerHTML = "<input/>", e.firstChild.setAttribute("value", ""), "" === e.firstChild.getAttribute("value")
}) || s("value", function (e, t, n) {
return n || "input" !== e.nodeName.toLowerCase() ? void 0 : e.defaultValue
}), r(function (e) {
return null == e.getAttribute("disabled")
}) || s(nt, function (e, t, n) {
var i;
return n ? void 0 : e[t] === !0 ? t.toLowerCase() : (i = e.getAttributeNode(t)) && i.specified ? i.value : null
}), t
}(e);
st.find = ct, st.expr = ct.selectors, st.expr[":"] = st.expr.pseudos, st.unique = ct.uniqueSort, st.text = ct.getText, st.isXMLDoc = ct.isXML, st.contains = ct.contains;
var dt = st.expr.match.needsContext,
pt = /^<(\w+)\s*\/?>(?:<\/\1>|)$/,
ft = /^.[^:#\[\.,]*$/;
st.filter = function (e, t, n) {
var i = t[0];
return n && (e = ":not(" + e + ")"), 1 === t.length && 1 === i.nodeType ? st.find.matchesSelector(i, e) ? [i] : [] : st.find.matches(e, st.grep(t, function (e) {
return 1 === e.nodeType
}))
}, st.fn.extend({
find: function (e) {
var t, n = [],
i = this,
r = i.length;
if ("string" != typeof e) return this.pushStack(st(e).filter(function () {
for (t = 0; r > t; t++)
if (st.contains(i[t], this)) return !0
}));
for (t = 0; r > t; t++) st.find(e, i[t], n);
return n = this.pushStack(r > 1 ? st.unique(n) : n), n.selector = this.selector ? this.selector + " " + e : e, n
},
filter: function (e) {
return this.pushStack(i(this, e || [], !1))
},
not: function (e) {
return this.pushStack(i(this, e || [], !0))
},
is: function (e) {
return !!i(this, "string" == typeof e && dt.test(e) ? st(e) : e || [], !1).length
}
});
var ht, mt = e.document,
gt = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,
vt = st.fn.init = function (e, t) {
var n, i;
if (!e) return this;
if ("string" == typeof e) {
if (n = "<" === e.charAt(0) && ">" === e.charAt(e.length - 1) && e.length >= 3 ? [null, e, null] : gt.exec(e), !n || !n[1] && t) return !t || t.jquery ? (t || ht).find(e) : this.constructor(t).find(e);
if (n[1]) {
if (t = t instanceof st ? t[0] : t, st.merge(this, st.parseHTML(n[1], t && t.nodeType ? t.ownerDocument || t : mt, !0)), pt.test(n[1]) && st.isPlainObject(t))
for (n in t) st.isFunction(this[n]) ? this[n](t[n]) : this.attr(n, t[n]);
return this
}
if (i = mt.getElementById(n[2]), i && i.parentNode) {
if (i.id !== n[2]) return ht.find(e);
this.length = 1, this[0] = i
}
return this.context = mt, this.selector = e, this
}
return e.nodeType ? (this.context = this[0] = e, this.length = 1, this) : st.isFunction(e) ? "undefined" != typeof ht.ready ? ht.ready(e) : e(st) : (void 0 !== e.selector && (this.selector = e.selector, this.context = e.context), st.makeArray(e, this))
};
vt.prototype = st.fn, ht = st(mt);
var bt = /^(?:parents|prev(?:Until|All))/,
kt = {
children: !0,
contents: !0,
next: !0,
prev: !0
};
st.extend({
dir: function (e, t, n) {
for (var i = [], r = e[t]; r && 9 !== r.nodeType && (void 0 === n || 1 !== r.nodeType || !st(r).is(n));) 1 === r.nodeType && i.push(r), r = r[t];
return i
},
sibling: function (e, t) {
for (var n = []; e; e = e.nextSibling) 1 === e.nodeType && e !== t && n.push(e);
return n
}
}), st.fn.extend({
has: function (e) {
var t, n = st(e, this),
i = n.length;
return this.filter(function () {
for (t = 0; i > t; t++)
if (st.contains(this, n[t])) return !0
})
},
closest: function (e, t) {
for (var n, i = 0, r = this.length, s = [], o = dt.test(e) || "string" != typeof e ? st(e, t || this.context) : 0; r > i; i++)
for (n = this[i]; n && n !== t; n = n.parentNode)
if (n.nodeType < 11 && (o ? o.index(n) > -1 : 1 === n.nodeType && st.find.matchesSelector(n, e))) {
s.push(n);
break
}
return this.pushStack(s.length > 1 ? st.unique(s) : s)
},
index: function (e) {
return e ? "string" == typeof e ? st.inArray(this[0], st(e)) : st.inArray(e.jquery ? e[0] : e, this) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1
},
add: function (e, t) {
return this.pushStack(st.unique(st.merge(this.get(), st(e, t))))
},
addBack: function (e) {
return this.add(null == e ? this.prevObject : this.prevObject.filter(e))
}
}), st.each({
parent: function (e) {
var t = e.parentNode;
return t && 11 !== t.nodeType ? t : null
},
parents: function (e) {
return st.dir(e, "parentNode")
},
parentsUntil: function (e, t, n) {
return st.dir(e, "parentNode", n)
},
next: function (e) {
return r(e, "nextSibling")
},
prev: function (e) {
return r(e, "previousSibling")
},
nextAll: function (e) {
return st.dir(e, "nextSibling")
},
prevAll: function (e) {
return st.dir(e, "previousSibling")
},
nextUntil: function (e, t, n) {
return st.dir(e, "nextSibling", n)
},
prevUntil: function (e, t, n) {
return st.dir(e, "previousSibling", n)
},
siblings: function (e) {
return st.sibling((e.parentNode || {}).firstChild, e)
},
children: function (e) {
return st.sibling(e.firstChild)
},
contents: function (e) {
return st.nodeName(e, "iframe") ? e.contentDocument || e.contentWindow.document : st.merge([], e.childNodes)
}
}, function (e, t) {
st.fn[e] = function (n, i) {
var r = st.map(this, t, n);
return "Until" !== e.slice(-5) && (i = n), i && "string" == typeof i && (r = st.filter(i, r)), this.length > 1 && (kt[e] || (r = st.unique(r)), bt.test(e) && (r = r.reverse())), this.pushStack(r)
}
});
var yt = /\S+/g,
wt = {};
st.Callbacks = function (e) {
e = "string" == typeof e ? wt[e] || s(e) : st.extend({}, e);
var t, n, i, r, o, a, l = [],
u = !e.once && [],
c = function (s) {
for (n = e.memory && s, i = !0, o = a || 0, a = 0, r = l.length, t = !0; l && r > o; o++)
if (l[o].apply(s[0], s[1]) === !1 && e.stopOnFalse) {
n = !1;
break
}
t = !1, l && (u ? u.length && c(u.shift()) : n ? l = [] : d.disable())
}, d = {
add: function () {
if (l) {
var i = l.length;
! function s(t) {
st.each(t, function (t, n) {
var i = st.type(n);
"function" === i ? e.unique && d.has(n) || l.push(n) : n && n.length && "string" !== i && s(n)
})
}(arguments), t ? r = l.length : n && (a = i, c(n))
}
return this
},
remove: function () {
return l && st.each(arguments, function (e, n) {
for (var i;
(i = st.inArray(n, l, i)) > -1;) l.splice(i, 1), t && (r >= i && r--, o >= i && o--)
}), this
},
has: function (e) {
return e ? st.inArray(e, l) > -1 : !(!l || !l.length)
},
empty: function () {
return l = [], r = 0, this
},
disable: function () {
return l = u = n = void 0, this
},
disabled: function () {
return !l
},
lock: function () {
return u = void 0, n || d.disable(), this
},
locked: function () {
return !u
},
fireWith: function (e, n) {
return !l || i && !u || (n = n || [], n = [e, n.slice ? n.slice() : n], t ? u.push(n) : c(n)), this
},
fire: function () {
return d.fireWith(this, arguments), this
},
fired: function () {
return !!i
}
};
return d
}, st.extend({
Deferred: function (e) {
var t = [
["resolve", "done", st.Callbacks("once memory"), "resolved"],
["reject", "fail", st.Callbacks("once memory"), "rejected"],
["notify", "progress", st.Callbacks("memory")]
],
n = "pending",
i = {
state: function () {
return n
},
always: function () {
return r.done(arguments).fail(arguments), this
},
then: function () {
var e = arguments;
return st.Deferred(function (n) {
st.each(t, function (t, s) {
var o = st.isFunction(e[t]) && e[t];
r[s[1]](function () {
var e = o && o.apply(this, arguments);
e && st.isFunction(e.promise) ? e.promise().done(n.resolve).fail(n.reject).progress(n.notify) : n[s[0] + "With"](this === i ? n.promise() : this, o ? [e] : arguments)
})
}), e = null
}).promise()
},
promise: function (e) {
return null != e ? st.extend(e, i) : i
}
}, r = {};
return i.pipe = i.then, st.each(t, function (e, s) {
var o = s[2],
a = s[3];
i[s[1]] = o.add, a && o.add(function () {
n = a
}, t[1 ^ e][2].disable, t[2][2].lock), r[s[0]] = function () {
return r[s[0] + "With"](this === r ? i : this, arguments), this
}, r[s[0] + "With"] = o.fireWith
}), i.promise(r), e && e.call(r, r), r
},
when: function (e) {
var t, n, i, r = 0,
s = J.call(arguments),
o = s.length,
a = 1 !== o || e && st.isFunction(e.promise) ? o : 0,
l = 1 === a ? e : st.Deferred(),
u = function (e, n, i) {
return function (r) {
n[e] = this, i[e] = arguments.length > 1 ? J.call(arguments) : r, i === t ? l.notifyWith(n, i) : --a || l.resolveWith(n, i)
}
};
if (o > 1)
for (t = new Array(o), n = new Array(o), i = new Array(o); o > r; r++) s[r] && st.isFunction(s[r].promise) ? s[r].promise().done(u(r, i, s)).fail(l.reject).progress(u(r, n, t)) : --a;
return a || l.resolveWith(i, s), l.promise()
}
});
var Tt;
st.fn.ready = function (e) {
return st.ready.promise().done(e), this
}, st.extend({
isReady: !1,
readyWait: 1,
holdReady: function (e) {
e ? st.readyWait++ : st.ready(!0)
},
ready: function (e) {
if (e === !0 ? !--st.readyWait : !st.isReady) {
if (!mt.body) return setTimeout(st.ready);
st.isReady = !0, e !== !0 && --st.readyWait > 0 || (Tt.resolveWith(mt, [st]), st.fn.trigger && st(mt).trigger("ready").off("ready"))
}
}
}), st.ready.promise = function (t) {
if (!Tt)
if (Tt = st.Deferred(), "complete" === mt.readyState) setTimeout(st.ready);
else if (mt.addEventListener) mt.addEventListener("DOMContentLoaded", a, !1), e.addEventListener("load", a, !1);
else {
mt.attachEvent("onreadystatechange", a), e.attachEvent("onload", a);
var n = !1;
try {
n = null == e.frameElement && mt.documentElement
} catch (i) {}
n && n.doScroll && ! function r() {
if (!st.isReady) {
try {
n.doScroll("left")
} catch (e) {
return setTimeout(r, 50)
}
o(), st.ready()
}
}()
}
return Tt.promise(t)
};
var St, xt = "undefined";
for (St in st(it)) break;
it.ownLast = "0" !== St, it.inlineBlockNeedsLayout = !1, st(function () {
var e, t, n = mt.getElementsByTagName("body")[0];
n && (e = mt.createElement("div"), e.style.cssText = "border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px", t = mt.createElement("div"), n.appendChild(e).appendChild(t), typeof t.style.zoom !== xt && (t.style.cssText = "border:0;margin:0;width:1px;padding:1px;display:inline;zoom:1", (it.inlineBlockNeedsLayout = 3 === t.offsetWidth) && (n.style.zoom = 1)), n.removeChild(e), e = t = null)
}),
function () {
var e = mt.createElement("div");
if (null == it.deleteExpando) {
it.deleteExpando = !0;
try {
delete e.test
} catch (t) {
it.deleteExpando = !1
}
}
e = null
}(), st.acceptData = function (e) {
var t = st.noData[(e.nodeName + " ").toLowerCase()],
n = +e.nodeType || 1;
return 1 !== n && 9 !== n ? !1 : !t || t !== !0 && e.getAttribute("classid") === t
};
var Et = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
It = /([A-Z])/g;
st.extend({
cache: {},
noData: {
"applet ": !0,
"embed ": !0,
"object ": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
},
hasData: function (e) {
return e = e.nodeType ? st.cache[e[st.expando]] : e[st.expando], !! e && !u(e)
},
data: function (e, t, n) {
return c(e, t, n)
},
removeData: function (e, t) {
return d(e, t)
},
_data: function (e, t, n) {
return c(e, t, n, !0)
},
_removeData: function (e, t) {
return d(e, t, !0)
}
}), st.fn.extend({
data: function (e, t) {
var n, i, r, s = this[0],
o = s && s.attributes;
if (void 0 === e) {
if (this.length && (r = st.data(s), 1 === s.nodeType && !st._data(s, "parsedAttrs"))) {
for (n = o.length; n--;) i = o[n].name, 0 === i.indexOf("data-") && (i = st.camelCase(i.slice(5)), l(s, i, r[i]));
st._data(s, "parsedAttrs", !0)
}
return r
}
return "object" == typeof e ? this.each(function () {
st.data(this, e)
}) : arguments.length > 1 ? this.each(function () {
st.data(this, e, t)
}) : s ? l(s, e, st.data(s, e)) : void 0
},
removeData: function (e) {
return this.each(function () {
st.removeData(this, e)
})
}
}), st.extend({
queue: function (e, t, n) {
var i;
return e ? (t = (t || "fx") + "queue", i = st._data(e, t), n && (!i || st.isArray(n) ? i = st._data(e, t, st.makeArray(n)) : i.push(n)), i || []) : void 0
},
dequeue: function (e, t) {
t = t || "fx";
var n = st.queue(e, t),
i = n.length,
r = n.shift(),
s = st._queueHooks(e, t),
o = function () {
st.dequeue(e, t)
};
"inprogress" === r && (r = n.shift(), i--), r && ("fx" === t && n.unshift("inprogress"), delete s.stop, r.call(e, o, s)), !i && s && s.empty.fire()
},
_queueHooks: function (e, t) {
var n = t + "queueHooks";
return st._data(e, n) || st._data(e, n, {
empty: st.Callbacks("once memory").add(function () {
st._removeData(e, t + "queue"), st._removeData(e, n)
})
})
}
}), st.fn.extend({
queue: function (e, t) {
var n = 2;
return "string" != typeof e && (t = e, e = "fx", n--), arguments.length < n ? st.queue(this[0], e) : void 0 === t ? this : this.each(function () {
var n = st.queue(this, e, t);
st._queueHooks(this, e), "fx" === e && "inprogress" !== n[0] && st.dequeue(this, e)
})
},
dequeue: function (e) {
return this.each(function () {
st.dequeue(this, e)
})
},
clearQueue: function (e) {
return this.queue(e || "fx", [])
},
promise: function (e, t) {
var n, i = 1,
r = st.Deferred(),
s = this,
o = this.length,
a = function () {
--i || r.resolveWith(s, [s])
};
for ("string" != typeof e && (t = e, e = void 0), e = e || "fx"; o--;) n = st._data(s[o], e + "queueHooks"), n && n.empty && (i++, n.empty.add(a));
return a(), r.promise(t)
}
});
var Ct = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,
Rt = ["Top", "Right", "Bottom", "Left"],
Nt = function (e, t) {
return e = t || e, "none" === st.css(e, "display") || !st.contains(e.ownerDocument, e)
}, _t = st.access = function (e, t, n, i, r, s, o) {
var a = 0,
l = e.length,
u = null == n;
if ("object" === st.type(n)) {
r = !0;
for (a in n) st.access(e, t, a, n[a], !0, s, o)
} else if (void 0 !== i && (r = !0, st.isFunction(i) || (o = !0), u && (o ? (t.call(e, i), t = null) : (u = t, t = function (e, t, n) {
return u.call(st(e), n)
})), t))
for (; l > a; a++) t(e[a], n, o ? i : i.call(e[a], a, t(e[a], n)));
return r ? e : u ? t.call(e) : l ? t(e[0], n) : s
}, Dt = /^(?:checkbox|radio)$/i;
! function () {
var e = mt.createDocumentFragment(),
t = mt.createElement("div"),
n = mt.createElement("input");
if (t.setAttribute("className", "t"), t.innerHTML = " <link/><table></table><a href='/a'>a</a>", it.leadingWhitespace = 3 === t.firstChild.nodeType, it.tbody = !t.getElementsByTagName("tbody").length, it.htmlSerialize = !! t.getElementsByTagName("link").length, it.html5Clone = "<:nav></:nav>" !== mt.createElement("nav").cloneNode(!0).outerHTML, n.type = "checkbox", n.checked = !0, e.appendChild(n), it.appendChecked = n.checked, t.innerHTML = "<textarea>x</textarea>", it.noCloneChecked = !! t.cloneNode(!0).lastChild.defaultValue, e.appendChild(t), t.innerHTML = "<input type='radio' checked='checked' name='t'/>", it.checkClone = t.cloneNode(!0).cloneNode(!0).lastChild.checked, it.noCloneEvent = !0, t.attachEvent && (t.attachEvent("onclick", function () {
it.noCloneEvent = !1
}), t.cloneNode(!0).click()), null == it.deleteExpando) {
it.deleteExpando = !0;
try {
delete t.test
} catch (i) {
it.deleteExpando = !1
}
}
e = t = n = null
}(),
function () {
var t, n, i = mt.createElement("div");
for (t in {
submit: !0,
change: !0,
focusin: !0
}) n = "on" + t, (it[t + "Bubbles"] = n in e) || (i.setAttribute(n, "t"), it[t + "Bubbles"] = i.attributes[n].expando === !1);
i = null
}();
var At = /^(?:input|select|textarea)$/i,
Pt = /^key/,
Lt = /^(?:mouse|contextmenu)|click/,
Ot = /^(?:focusinfocus|focusoutblur)$/,
jt = /^([^.]*)(?:\.(.+)|)$/;
st.event = {
global: {},
add: function (e, t, n, i, r) {
var s, o, a, l, u, c, d, p, f, h, m, g = st._data(e);
if (g) {
for (n.handler && (l = n, n = l.handler, r = l.selector), n.guid || (n.guid = st.guid++), (o = g.events) || (o = g.events = {}), (c = g.handle) || (c = g.handle = function (e) {
return typeof st === xt || e && st.event.triggered === e.type ? void 0 : st.event.dispatch.apply(c.elem, arguments)
}, c.elem = e), t = (t || "").match(yt) || [""], a = t.length; a--;) s = jt.exec(t[a]) || [], f = m = s[1], h = (s[2] || "").split(".").sort(), f && (u = st.event.special[f] || {}, f = (r ? u.delegateType : u.bindType) || f, u = st.event.special[f] || {}, d = st.extend({
type: f,
origType: m,
data: i,
handler: n,
guid: n.guid,
selector: r,
needsContext: r && st.expr.match.needsContext.test(r),
namespace: h.join(".")
}, l), (p = o[f]) || (p = o[f] = [], p.delegateCount = 0, u.setup && u.setup.call(e, i, h, c) !== !1 || (e.addEventListener ? e.addEventListener(f, c, !1) : e.attachEvent && e.attachEvent("on" + f, c))), u.add && (u.add.call(e, d), d.handler.guid || (d.handler.guid = n.guid)), r ? p.splice(p.delegateCount++, 0, d) : p.push(d), st.event.global[f] = !0);
e = null
}
},
remove: function (e, t, n, i, r) {
var s, o, a, l, u, c, d, p, f, h, m, g = st.hasData(e) && st._data(e);
if (g && (c = g.events)) {
for (t = (t || "").match(yt) || [""], u = t.length; u--;)
if (a = jt.exec(t[u]) || [], f = m = a[1], h = (a[2] || "").split(".").sort(), f) {
for (d = st.event.special[f] || {}, f = (i ? d.delegateType : d.bindType) || f, p = c[f] || [], a = a[2] && new RegExp("(^|\\.)" + h.join("\\.(?:.*\\.|)") + "(\\.|$)"), l = s = p.length; s--;) o = p[s], !r && m !== o.origType || n && n.guid !== o.guid || a && !a.test(o.namespace) || i && i !== o.selector && ("**" !== i || !o.selector) || (p.splice(s, 1), o.selector && p.delegateCount--, d.remove && d.remove.call(e, o));
l && !p.length && (d.teardown && d.teardown.call(e, h, g.handle) !== !1 || st.removeEvent(e, f, g.handle), delete c[f])
} else
for (f in c) st.event.remove(e, f + t[u], n, i, !0);
st.isEmptyObject(c) && (delete g.handle, st._removeData(e, "events"))
}
},
trigger: function (t, n, i, r) {
var s, o, a, l, u, c, d, p = [i || mt],
f = tt.call(t, "type") ? t.type : t,
h = tt.call(t, "namespace") ? t.namespace.split(".") : [];
if (a = c = i = i || mt, 3 !== i.nodeType && 8 !== i.nodeType && !Ot.test(f + st.event.triggered) && (f.indexOf(".") >= 0 && (h = f.split("."), f = h.shift(), h.sort()), o = f.indexOf(":") < 0 && "on" + f, t = t[st.expando] ? t : new st.Event(f, "object" == typeof t && t), t.isTrigger = r ? 2 : 3, t.namespace = h.join("."), t.namespace_re = t.namespace ? new RegExp("(^|\\.)" + h.join("\\.(?:.*\\.|)") + "(\\.|$)") : null, t.result = void 0, t.target || (t.target = i), n = null == n ? [t] : st.makeArray(n, [t]), u = st.event.special[f] || {}, r || !u.trigger || u.trigger.apply(i, n) !== !1)) {
if (!r && !u.noBubble && !st.isWindow(i)) {
for (l = u.delegateType || f, Ot.test(l + f) || (a = a.parentNode); a; a = a.parentNode) p.push(a), c = a;
c === (i.ownerDocument || mt) && p.push(c.defaultView || c.parentWindow || e)
}
for (d = 0;
(a = p[d++]) && !t.isPropagationStopped();) t.type = d > 1 ? l : u.bindType || f, s = (st._data(a, "events") || {})[t.type] && st._data(a, "handle"), s && s.apply(a, n), s = o && a[o], s && s.apply && st.acceptData(a) && (t.result = s.apply(a, n), t.result === !1 && t.preventDefault());
if (t.type = f, !r && !t.isDefaultPrevented() && (!u._default || u._default.apply(p.pop(), n) === !1) && st.acceptData(i) && o && i[f] && !st.isWindow(i)) {
c = i[o], c && (i[o] = null), st.event.triggered = f;
try {
i[f]()
} catch (m) {}
st.event.triggered = void 0, c && (i[o] = c)
}
return t.result
}
},
dispatch: function (e) {
e = st.event.fix(e);
var t, n, i, r, s, o = [],
a = J.call(arguments),
l = (st._data(this, "events") || {})[e.type] || [],
u = st.event.special[e.type] || {};
if (a[0] = e, e.delegateTarget = this, !u.preDispatch || u.preDispatch.call(this, e) !== !1) {
for (o = st.event.handlers.call(this, e, l), t = 0;
(r = o[t++]) && !e.isPropagationStopped();)
for (e.currentTarget = r.elem, s = 0;
(i = r.handlers[s++]) && !e.isImmediatePropagationStopped();)(!e.namespace_re || e.namespace_re.test(i.namespace)) && (e.handleObj = i, e.data = i.data, n = ((st.event.special[i.origType] || {}).handle || i.handler).apply(r.elem, a), void 0 !== n && (e.result = n) === !1 && (e.preventDefault(), e.stopPropagation()));
return u.postDispatch && u.postDispatch.call(this, e), e.result
}
},
handlers: function (e, t) {
var n, i, r, s, o = [],
a = t.delegateCount,
l = e.target;
if (a && l.nodeType && (!e.button || "click" !== e.type))
for (; l != this; l = l.parentNode || this)
if (1 === l.nodeType && (l.disabled !== !0 || "click" !== e.type)) {
for (r = [], s = 0; a > s; s++) i = t[s], n = i.selector + " ", void 0 === r[n] && (r[n] = i.needsContext ? st(n, this).index(l) >= 0 : st.find(n, this, null, [l]).length), r[n] && r.push(i);
r.length && o.push({
elem: l,
handlers: r
})
}
return a < t.length && o.push({
elem: this,
handlers: t.slice(a)
}), o
},
fix: function (e) {
if (e[st.expando]) return e;
var t, n, i, r = e.type,
s = e,
o = this.fixHooks[r];
for (o || (this.fixHooks[r] = o = Lt.test(r) ? this.mouseHooks : Pt.test(r) ? this.keyHooks : {}), i = o.props ? this.props.concat(o.props) : this.props, e = new st.Event(s), t = i.length; t--;) n = i[t], e[n] = s[n];
return e.target || (e.target = s.srcElement || mt), 3 === e.target.nodeType && (e.target = e.target.parentNode), e.metaKey = !! e.metaKey, o.filter ? o.filter(e, s) : e
},
props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),
fixHooks: {},
keyHooks: {
props: "char charCode key keyCode".split(" "),
filter: function (e, t) {
return null == e.which && (e.which = null != t.charCode ? t.charCode : t.keyCode), e
}
},
mouseHooks: {
props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),
filter: function (e, t) {
var n, i, r, s = t.button,
o = t.fromElement;
return null == e.pageX && null != t.clientX && (i = e.target.ownerDocument || mt, r = i.documentElement, n = i.body, e.pageX = t.clientX + (r && r.scrollLeft || n && n.scrollLeft || 0) - (r && r.clientLeft || n && n.clientLeft || 0), e.pageY = t.clientY + (r && r.scrollTop || n && n.scrollTop || 0) - (r && r.clientTop || n && n.clientTop || 0)), !e.relatedTarget && o && (e.relatedTarget = o === e.target ? t.toElement : o), e.which || void 0 === s || (e.which = 1 & s ? 1 : 2 & s ? 3 : 4 & s ? 2 : 0), e
}
},
special: {
load: {
noBubble: !0
},
focus: {
trigger: function () {
if (this !== h() && this.focus) try {
return this.focus(), !1
} catch (e) {}
},
delegateType: "focusin"
},
blur: {
trigger: function () {
return this === h() && this.blur ? (this.blur(), !1) : void 0
},
delegateType: "focusout"
},
click: {
trigger: function () {
return st.nodeName(this, "input") && "checkbox" === this.type && this.click ? (this.click(), !1) : void 0
},
_default: function (e) {
return st.nodeName(e.target, "a")
}
},
beforeunload: {
postDispatch: function (e) {
void 0 !== e.result && (e.originalEvent.returnValue = e.result)
}
}
},
simulate: function (e, t, n, i) {
var r = st.extend(new st.Event, n, {
type: e,
isSimulated: !0,
originalEvent: {}
});
i ? st.event.trigger(r, null, t) : st.event.dispatch.call(t, r), r.isDefaultPrevented() && n.preventDefault()
}
}, st.removeEvent = mt.removeEventListener ? function (e, t, n) {
e.removeEventListener && e.removeEventListener(t, n, !1)
} : function (e, t, n) {
var i = "on" + t;
e.detachEvent && (typeof e[i] === xt && (e[i] = null), e.detachEvent(i, n))
}, st.Event = function (e, t) {
return this instanceof st.Event ? (e && e.type ? (this.originalEvent = e, this.type = e.type, this.isDefaultPrevented = e.defaultPrevented || void 0 === e.defaultPrevented && (e.returnValue === !1 || e.getPreventDefault && e.getPreventDefault()) ? p : f) : this.type = e, t && st.extend(this, t), this.timeStamp = e && e.timeStamp || st.now(), void(this[st.expando] = !0)) : new st.Event(e, t)
}, st.Event.prototype = {
isDefaultPrevented: f,
isPropagationStopped: f,
isImmediatePropagationStopped: f,
preventDefault: function () {
var e = this.originalEvent;
this.isDefaultPrevented = p, e && (e.preventDefault ? e.preventDefault() : e.returnValue = !1)
},
stopPropagation: function () {
var e = this.originalEvent;
this.isPropagationStopped = p, e && (e.stopPropagation && e.stopPropagation(), e.cancelBubble = !0)
},
stopImmediatePropagation: function () {
this.isImmediatePropagationStopped = p, this.stopPropagation()
}
}, st.each({
mouseenter: "mouseover",
mouseleave: "mouseout"
}, function (e, t) {
st.event.special[e] = {
delegateType: t,
bindType: t,
handle: function (e) {
var n, i = this,
r = e.relatedTarget,
s = e.handleObj;
return (!r || r !== i && !st.contains(i, r)) && (e.type = s.origType, n = s.handler.apply(this, arguments), e.type = t), n
}
}
}), it.submitBubbles || (st.event.special.submit = {
setup: function () {
return st.nodeName(this, "form") ? !1 : void st.event.add(this, "click._submit keypress._submit", function (e) {
var t = e.target,
n = st.nodeName(t, "input") || st.nodeName(t, "button") ? t.form : void 0;
n && !st._data(n, "submitBubbles") && (st.event.add(n, "submit._submit", function (e) {
e._submit_bubble = !0
}), st._data(n, "submitBubbles", !0))
})
},
postDispatch: function (e) {
e._submit_bubble && (delete e._submit_bubble, this.parentNode && !e.isTrigger && st.event.simulate("submit", this.parentNode, e, !0))
},
teardown: function () {
return st.nodeName(this, "form") ? !1 : void st.event.remove(this, "._submit")
}
}), it.changeBubbles || (st.event.special.change = {
setup: function () {
return At.test(this.nodeName) ? (("checkbox" === this.type || "radio" === this.type) && (st.event.add(this, "propertychange._change", function (e) {
"checked" === e.originalEvent.propertyName && (this._just_changed = !0)
}), st.event.add(this, "click._change", function (e) {
this._just_changed && !e.isTrigger && (this._just_changed = !1), st.event.simulate("change", this, e, !0)
})), !1) : void st.event.add(this, "beforeactivate._change", function (e) {
var t = e.target;
At.test(t.nodeName) && !st._data(t, "changeBubbles") && (st.event.add(t, "change._change", function (e) {
!this.parentNode || e.isSimulated || e.isTrigger || st.event.simulate("change", this.parentNode, e, !0)
}), st._data(t, "changeBubbles", !0))
})
},
handle: function (e) {
var t = e.target;
return this !== t || e.isSimulated || e.isTrigger || "radio" !== t.type && "checkbox" !== t.type ? e.handleObj.handler.apply(this, arguments) : void 0
},
teardown: function () {
return st.event.remove(this, "._change"), !At.test(this.nodeName)
}
}), it.focusinBubbles || st.each({
focus: "focusin",
blur: "focusout"
}, function (e, t) {
var n = function (e) {
st.event.simulate(t, e.target, st.event.fix(e), !0)
};
st.event.special[t] = {
setup: function () {
var i = this.ownerDocument || this,
r = st._data(i, t);
r || i.addEventListener(e, n, !0), st._data(i, t, (r || 0) + 1)
},
teardown: function () {
var i = this.ownerDocument || this,
r = st._data(i, t) - 1;
r ? st._data(i, t, r) : (i.removeEventListener(e, n, !0), st._removeData(i, t))
}
}
}), st.fn.extend({
on: function (e, t, n, i, r) {
var s, o;
if ("object" == typeof e) {
"string" != typeof t && (n = n || t, t = void 0);
for (s in e) this.on(s, t, n, e[s], r);
return this
}
if (null == n && null == i ? (i = t, n = t = void 0) : null == i && ("string" == typeof t ? (i = n, n = void 0) : (i = n, n = t, t = void 0)), i === !1) i = f;
else if (!i) return this;
return 1 === r && (o = i, i = function (e) {
return st().off(e), o.apply(this, arguments)
}, i.guid = o.guid || (o.guid = st.guid++)), this.each(function () {
st.event.add(this, e, i, n, t)
})
},
one: function (e, t, n, i) {
return this.on(e, t, n, i, 1)
},
off: function (e, t, n) {
var i, r;
if (e && e.preventDefault && e.handleObj) return i = e.handleObj, st(e.delegateTarget).off(i.namespace ? i.origType + "." + i.namespace : i.origType, i.selector, i.handler), this;
if ("object" == typeof e) {
for (r in e) this.off(r, t, e[r]);
return this
}
return (t === !1 || "function" == typeof t) && (n = t, t = void 0), n === !1 && (n = f), this.each(function () {
st.event.remove(this, e, n, t)
})
},
trigger: function (e, t) {
return this.each(function () {
st.event.trigger(e, t, this)
})
},
triggerHandler: function (e, t) {
var n = this[0];
return n ? st.event.trigger(e, t, n, !0) : void 0
}
});
var Ft = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",
Mt = / jQuery\d+="(?:null|\d+)"/g,
zt = new RegExp("<(?:" + Ft + ")[\\s/>]", "i"),
Ht = /^\s+/,
Ut = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,
Wt = /<([\w:]+)/,
Bt = /<tbody/i,
qt = /<|&#?\w+;/,
Xt = /<(?:script|style|link)/i,
Vt = /checked\s*(?:[^=]|=\s*.checked.)/i,
Yt = /^$|\/(?:java|ecma)script/i,
$t = /^true\/(.*)/,
Jt = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,
Gt = {
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: it.htmlSerialize ? [0, "", ""] : [1, "X<div>", "</div>"]
}, Kt = m(mt),
Qt = Kt.appendChild(mt.createElement("div"));
Gt.optgroup = Gt.option, Gt.tbody = Gt.tfoot = Gt.colgroup = Gt.caption = Gt.thead, Gt.th = Gt.td, st.extend({
clone: function (e, t, n) {
var i, r, s, o, a, l = st.contains(e.ownerDocument, e);
if (it.html5Clone || st.isXMLDoc(e) || !zt.test("<" + e.nodeName + ">") ? s = e.cloneNode(!0) : (Qt.innerHTML = e.outerHTML, Qt.removeChild(s = Qt.firstChild)), !(it.noCloneEvent && it.noCloneChecked || 1 !== e.nodeType && 11 !== e.nodeType || st.isXMLDoc(e)))
for (i = g(s), a = g(e), o = 0; null != (r = a[o]); ++o) i[o] && S(r, i[o]);
if (t)
if (n)
for (a = a || g(e), i = i || g(s), o = 0; null != (r = a[o]); o++) T(r, i[o]);
else T(e, s);
return i = g(s, "script"), i.length > 0 && w(i, !l && g(e, "script")), i = a = r = null, s
},
buildFragment: function (e, t, n, i) {
for (var r, s, o, a, l, u, c, d = e.length, p = m(t), f = [], h = 0; d > h; h++)
if (s = e[h], s || 0 === s)
if ("object" === st.type(s)) st.merge(f, s.nodeType ? [s] : s);
else if (qt.test(s)) {
for (a = a || p.appendChild(t.createElement("div")), l = (Wt.exec(s) || ["", ""])[1].toLowerCase(), c = Gt[l] || Gt._default, a.innerHTML = c[1] + s.replace(Ut, "<$1></$2>") + c[2], r = c[0]; r--;) a = a.lastChild;
if (!it.leadingWhitespace && Ht.test(s) && f.push(t.createTextNode(Ht.exec(s)[0])), !it.tbody)
for (s = "table" !== l || Bt.test(s) ? "<table>" !== c[1] || Bt.test(s) ? 0 : a : a.firstChild, r = s && s.childNodes.length; r--;) st.nodeName(u = s.childNodes[r], "tbody") && !u.childNodes.length && s.removeChild(u);
for (st.merge(f, a.childNodes), a.textContent = ""; a.firstChild;) a.removeChild(a.firstChild);
a = p.lastChild
} else f.push(t.createTextNode(s));
for (a && p.removeChild(a), it.appendChecked || st.grep(g(f, "input"), v), h = 0; s = f[h++];)
if ((!i || -1 === st.inArray(s, i)) && (o = st.contains(s.ownerDocument, s), a = g(p.appendChild(s), "script"), o && w(a), n))
for (r = 0; s = a[r++];) Yt.test(s.type || "") && n.push(s);
return a = null, p
},
cleanData: function (e, t) {
for (var n, i, r, s, o = 0, a = st.expando, l = st.cache, u = it.deleteExpando, c = st.event.special; null != (n = e[o]); o++)
if ((t || st.acceptData(n)) && (r = n[a], s = r && l[r])) {
if (s.events)
for (i in s.events) c[i] ? st.event.remove(n, i) : st.removeEvent(n, i, s.handle);
l[r] && (delete l[r], u ? delete n[a] : typeof n.removeAttribute !== xt ? n.removeAttribute(a) : n[a] = null, $.push(r))
}
}
}), st.fn.extend({
text: function (e) {
return _t(this, function (e) {
return void 0 === e ? st.text(this) : this.empty().append((this[0] && this[0].ownerDocument || mt).createTextNode(e))
}, null, e, arguments.length)
},
append: function () {
return this.domManip(arguments, function (e) {
if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
var t = b(this, e);
t.appendChild(e)
}
})
},
prepend: function () {
return this.domManip(arguments, function (e) {
if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
var t = b(this, e);
t.insertBefore(e, t.firstChild)
}
})
},
before: function () {
return this.domManip(arguments, function (e) {
this.parentNode && this.parentNode.insertBefore(e, this)
})
},
after: function () {
return this.domManip(arguments, function (e) {
this.parentNode && this.parentNode.insertBefore(e, this.nextSibling)
})
},
remove: function (e, t) {
for (var n, i = e ? st.filter(e, this) : this, r = 0; null != (n = i[r]); r++) t || 1 !== n.nodeType || st.cleanData(g(n)), n.parentNode && (t && st.contains(n.ownerDocument, n) && w(g(n, "script")), n.parentNode.removeChild(n));
return this
},
empty: function () {
for (var e, t = 0; null != (e = this[t]); t++) {
for (1 === e.nodeType && st.cleanData(g(e, !1)); e.firstChild;) e.removeChild(e.firstChild);
e.options && st.nodeName(e, "select") && (e.options.length = 0)
}
return this
},
clone: function (e, t) {
return e = null == e ? !1 : e, t = null == t ? e : t, this.map(function () {
return st.clone(this, e, t)
})
},
html: function (e) {
return _t(this, function (e) {
var t = this[0] || {}, n = 0,
i = this.length;
if (void 0 === e) return 1 === t.nodeType ? t.innerHTML.replace(Mt, "") : void 0;
if (!("string" != typeof e || Xt.test(e) || !it.htmlSerialize && zt.test(e) || !it.leadingWhitespace && Ht.test(e) || Gt[(Wt.exec(e) || ["", ""])[1].toLowerCase()])) {
e = e.replace(Ut, "<$1></$2>");
try {
for (; i > n; n++) t = this[n] || {}, 1 === t.nodeType && (st.cleanData(g(t, !1)), t.innerHTML = e);
t = 0
} catch (r) {}
}
t && this.empty().append(e)
}, null, e, arguments.length)
},
replaceWith: function () {
var e = arguments[0];
return this.domManip(arguments, function (t) {
e = this.parentNode, st.cleanData(g(this)), e && e.replaceChild(t, this)
}), e && (e.length || e.nodeType) ? this : this.remove()
},
detach: function (e) {
return this.remove(e, !0)
},
domManip: function (e, t) {
e = G.apply([], e);
var n, i, r, s, o, a, l = 0,
u = this.length,
c = this,
d = u - 1,
p = e[0],
f = st.isFunction(p);
if (f || u > 1 && "string" == typeof p && !it.checkClone && Vt.test(p)) return this.each(function (n) {
var i = c.eq(n);
f && (e[0] = p.call(this, n, i.html())), i.domManip(e, t)
});
if (u && (a = st.buildFragment(e, this[0].ownerDocument, !1, this), n = a.firstChild, 1 === a.childNodes.length && (a = n), n)) {
for (s = st.map(g(a, "script"), k), r = s.length; u > l; l++) i = a, l !== d && (i = st.clone(i, !0, !0), r && st.merge(s, g(i, "script"))), t.call(this[l], i, l);
if (r)
for (o = s[s.length - 1].ownerDocument, st.map(s, y), l = 0; r > l; l++) i = s[l], Yt.test(i.type || "") && !st._data(i, "globalEval") && st.contains(o, i) && (i.src ? st._evalUrl && st._evalUrl(i.src) : st.globalEval((i.text || i.textContent || i.innerHTML || "").replace(Jt, "")));
a = n = null
}
return this
}
}), st.each({
appendTo: "append",
prependTo: "prepend",
insertBefore: "before",
insertAfter: "after",
replaceAll: "replaceWith"
}, function (e, t) {
st.fn[e] = function (e) {
for (var n, i = 0, r = [], s = st(e), o = s.length - 1; o >= i; i++) n = i === o ? this : this.clone(!0), st(s[i])[t](n), K.apply(r, n.get());
return this.pushStack(r)
}
});
var Zt, en = {};
! function () {
var e, t, n = mt.createElement("div"),
i = "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;padding:0;margin:0;border:0";
n.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>", e = n.getElementsByTagName("a")[0], e.style.cssText = "float:left;opacity:.5", it.opacity = /^0.5/.test(e.style.opacity), it.cssFloat = !! e.style.cssFloat, n.style.backgroundClip = "content-box", n.cloneNode(!0).style.backgroundClip = "", it.clearCloneStyle = "content-box" === n.style.backgroundClip, e = n = null, it.shrinkWrapBlocks = function () {
var e, n, r, s;
if (null == t) {
if (e = mt.getElementsByTagName("body")[0], !e) return;
s = "border:0;width:0;height:0;position:absolute;top:0;left:-9999px", n = mt.createElement("div"), r = mt.createElement("div"), e.appendChild(n).appendChild(r), t = !1, typeof r.style.zoom !== xt && (r.style.cssText = i + ";width:1px;padding:1px;zoom:1", r.innerHTML = "<div></div>", r.firstChild.style.width = "5px", t = 3 !== r.offsetWidth), e.removeChild(n), e = n = r = null
}
return t
}
}();
var tn, nn, rn = /^margin/,
sn = new RegExp("^(" + Ct + ")(?!px)[a-z%]+$", "i"),
on = /^(top|right|bottom|left)$/;
e.getComputedStyle ? (tn = function (e) {
return e.ownerDocument.defaultView.getComputedStyle(e, null)
}, nn = function (e, t, n) {
var i, r, s, o, a = e.style;
return n = n || tn(e), o = n ? n.getPropertyValue(t) || n[t] : void 0, n && ("" !== o || st.contains(e.ownerDocument, e) || (o = st.style(e, t)), sn.test(o) && rn.test(t) && (i = a.width, r = a.minWidth, s = a.maxWidth, a.minWidth = a.maxWidth = a.width = o, o = n.width, a.width = i, a.minWidth = r, a.maxWidth = s)), void 0 === o ? o : o + ""
}) : mt.documentElement.currentStyle && (tn = function (e) {
return e.currentStyle
}, nn = function (e, t, n) {
var i, r, s, o, a = e.style;
return n = n || tn(e), o = n ? n[t] : void 0, null == o && a && a[t] && (o = a[t]), sn.test(o) && !on.test(t) && (i = a.left, r = e.runtimeStyle, s = r && r.left, s && (r.left = e.currentStyle.left), a.left = "fontSize" === t ? "1em" : o, o = a.pixelLeft + "px", a.left = i, s && (r.left = s)), void 0 === o ? o : o + "" || "auto"
}),
function () {
function t() {
var t, n, i = mt.getElementsByTagName("body")[0];
i && (t = mt.createElement("div"), n = mt.createElement("div"), t.style.cssText = u, i.appendChild(t).appendChild(n), n.style.cssText = "-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;position:absolute;display:block;padding:1px;border:1px;width:4px;margin-top:1%;top:1%", st.swap(i, null != i.style.zoom ? {
zoom: 1
} : {}, function () {
r = 4 === n.offsetWidth
}), s = !0, o = !1, a = !0, e.getComputedStyle && (o = "1%" !== (e.getComputedStyle(n, null) || {}).top, s = "4px" === (e.getComputedStyle(n, null) || {
width: "4px"
}).width), i.removeChild(t), n = i = null)
}
var n, i, r, s, o, a, l = mt.createElement("div"),
u = "border:0;width:0;height:0;position:absolute;top:0;left:-9999px",
c = "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;padding:0;margin:0;border:0";
l.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>", n = l.getElementsByTagName("a")[0], n.style.cssText = "float:left;opacity:.5", it.opacity = /^0.5/.test(n.style.opacity), it.cssFloat = !! n.style.cssFloat, l.style.backgroundClip = "content-box", l.cloneNode(!0).style.backgroundClip = "", it.clearCloneStyle = "content-box" === l.style.backgroundClip, n = l = null, st.extend(it, {
reliableHiddenOffsets: function () {
if (null != i) return i;
var e, t, n, r = mt.createElement("div"),
s = mt.getElementsByTagName("body")[0];
if (s) return r.setAttribute("className", "t"), r.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>", e = mt.createElement("div"), e.style.cssText = u, s.appendChild(e).appendChild(r), r.innerHTML = "<table><tr><td></td><td>t</td></tr></table>", t = r.getElementsByTagName("td"), t[0].style.cssText = "padding:0;margin:0;border:0;display:none", n = 0 === t[0].offsetHeight, t[0].style.display = "", t[1].style.display = "none", i = n && 0 === t[0].offsetHeight, s.removeChild(e), r = s = null, i
},
boxSizing: function () {
return null == r && t(), r
},
boxSizingReliable: function () {
return null == s && t(), s
},
pixelPosition: function () {
return null == o && t(), o
},
reliableMarginRight: function () {
var t, n, i, r;
if (null == a && e.getComputedStyle) {
if (t = mt.getElementsByTagName("body")[0], !t) return;
n = mt.createElement("div"), i = mt.createElement("div"), n.style.cssText = u, t.appendChild(n).appendChild(i), r = i.appendChild(mt.createElement("div")), r.style.cssText = i.style.cssText = c, r.style.marginRight = r.style.width = "0", i.style.width = "1px", a = !parseFloat((e.getComputedStyle(r, null) || {}).marginRight), t.removeChild(n)
}
return a
}
})
}(), st.swap = function (e, t, n, i) {
var r, s, o = {};
for (s in t) o[s] = e.style[s], e.style[s] = t[s];
r = n.apply(e, i || []);
for (s in t) e.style[s] = o[s];
return r
};
var an = /alpha\([^)]*\)/i,
ln = /opacity\s*=\s*([^)]*)/,
un = /^(none|table(?!-c[ea]).+)/,
cn = new RegExp("^(" + Ct + ")(.*)$", "i"),
dn = new RegExp("^([+-])=(" + Ct + ")", "i"),
pn = {
position: "absolute",
visibility: "hidden",
display: "block"
}, fn = {
letterSpacing: 0,
fontWeight: 400
}, hn = ["Webkit", "O", "Moz", "ms"];
st.extend({
cssHooks: {
opacity: {
get: function (e, t) {
if (t) {
var n = nn(e, "opacity");
return "" === n ? "1" : n
}
}
}
},
cssNumber: {
columnCount: !0,
fillOpacity: !0,
fontWeight: !0,
lineHeight: !0,
opacity: !0,
order: !0,
orphans: !0,
widows: !0,
zIndex: !0,
zoom: !0
},
cssProps: {
"float": it.cssFloat ? "cssFloat" : "styleFloat"
},
style: function (e, t, n, i) {
if (e && 3 !== e.nodeType && 8 !== e.nodeType && e.style) {
var r, s, o, a = st.camelCase(t),
l = e.style;
if (t = st.cssProps[a] || (st.cssProps[a] = C(l, a)), o = st.cssHooks[t] || st.cssHooks[a], void 0 === n) return o && "get" in o && void 0 !== (r = o.get(e, !1, i)) ? r : l[t];
if (s = typeof n, "string" === s && (r = dn.exec(n)) && (n = (r[1] + 1) * r[2] + parseFloat(st.css(e, t)), s = "number"), null != n && n === n && ("number" !== s || st.cssNumber[a] || (n += "px"), it.clearCloneStyle || "" !== n || 0 !== t.indexOf("background") || (l[t] = "inherit"), !(o && "set" in o && void 0 === (n = o.set(e, n, i))))) try {
l[t] = "", l[t] = n
} catch (u) {}
}
},
css: function (e, t, n, i) {
var r, s, o, a = st.camelCase(t);
return t = st.cssProps[a] || (st.cssProps[a] = C(e.style, a)), o = st.cssHooks[t] || st.cssHooks[a], o && "get" in o && (s = o.get(e, !0, n)), void 0 === s && (s = nn(e, t, i)), "normal" === s && t in fn && (s = fn[t]), "" === n || n ? (r = parseFloat(s), n === !0 || st.isNumeric(r) ? r || 0 : s) : s
}
}), st.each(["height", "width"], function (e, t) {
st.cssHooks[t] = {
get: function (e, n, i) {
return n ? 0 === e.offsetWidth && un.test(st.css(e, "display")) ? st.swap(e, pn, function () {
return D(e, t, i)
}) : D(e, t, i) : void 0
},
set: function (e, n, i) {
var r = i && tn(e);
return N(e, n, i ? _(e, t, i, it.boxSizing() && "border-box" === st.css(e, "boxSizing", !1, r), r) : 0)
}
}
}), it.opacity || (st.cssHooks.opacity = {
get: function (e, t) {
return ln.test((t && e.currentStyle ? e.currentStyle.filter : e.style.filter) || "") ? .01 * parseFloat(RegExp.$1) + "" : t ? "1" : ""
},
set: function (e, t) {
var n = e.style,
i = e.currentStyle,
r = st.isNumeric(t) ? "alpha(opacity=" + 100 * t + ")" : "",
s = i && i.filter || n.filter || "";
n.zoom = 1, (t >= 1 || "" === t) && "" === st.trim(s.replace(an, "")) && n.removeAttribute && (n.removeAttribute("filter"), "" === t || i && !i.filter) || (n.filter = an.test(s) ? s.replace(an, r) : s + " " + r)
}
}), st.cssHooks.marginRight = I(it.reliableMarginRight, function (e, t) {
return t ? st.swap(e, {
display: "inline-block"
}, nn, [e, "marginRight"]) : void 0
}), st.each({
margin: "",
padding: "",
border: "Width"
}, function (e, t) {
st.cssHooks[e + t] = {
expand: function (n) {
for (var i = 0, r = {}, s = "string" == typeof n ? n.split(" ") : [n]; 4 > i; i++) r[e + Rt[i] + t] = s[i] || s[i - 2] || s[0];
return r
}
}, rn.test(e) || (st.cssHooks[e + t].set = N)
}), st.fn.extend({
css: function (e, t) {
return _t(this, function (e, t, n) {
var i, r, s = {}, o = 0;
if (st.isArray(t)) {
for (i = tn(e), r = t.length; r > o; o++) s[t[o]] = st.css(e, t[o], !1, i);
return s
}
return void 0 !== n ? st.style(e, t, n) : st.css(e, t)
}, e, t, arguments.length > 1)
},
show: function () {
return R(this, !0)
},
hide: function () {
return R(this)
},
toggle: function (e) {
return "boolean" == typeof e ? e ? this.show() : this.hide() : this.each(function () {
Nt(this) ? st(this).show() : st(this).hide()
})
}
}), st.Tween = A, A.prototype = {
constructor: A,
init: function (e, t, n, i, r, s) {
this.elem = e, this.prop = n, this.easing = r || "swing", this.options = t, this.start = this.now = this.cur(), this.end = i, this.unit = s || (st.cssNumber[n] ? "" : "px")
},
cur: function () {
var e = A.propHooks[this.prop];
return e && e.get ? e.get(this) : A.propHooks._default.get(this)
},
run: function (e) {
var t, n = A.propHooks[this.prop];
return this.pos = t = this.options.duration ? st.easing[this.easing](e, this.options.duration * e, 0, 1, this.options.duration) : e, this.now = (this.end - this.start) * t + this.start, this.options.step && this.options.step.call(this.elem, this.now, this), n && n.set ? n.set(this) : A.propHooks._default.set(this), this
}
}, A.prototype.init.prototype = A.prototype, A.propHooks = {
_default: {
get: function (e) {
var t;
return null == e.elem[e.prop] || e.elem.style && null != e.elem.style[e.prop] ? (t = st.css(e.elem, e.prop, ""), t && "auto" !== t ? t : 0) : e.elem[e.prop]
},
set: function (e) {
st.fx.step[e.prop] ? st.fx.step[e.prop](e) : e.elem.style && (null != e.elem.style[st.cssProps[e.prop]] || st.cssHooks[e.prop]) ? st.style(e.elem, e.prop, e.now + e.unit) : e.elem[e.prop] = e.now
}
}
}, A.propHooks.scrollTop = A.propHooks.scrollLeft = {
set: function (e) {
e.elem.nodeType && e.elem.parentNode && (e.elem[e.prop] = e.now)
}
}, st.easing = {
linear: function (e) {
return e
},
swing: function (e) {
return .5 - Math.cos(e * Math.PI) / 2
}
}, st.fx = A.prototype.init, st.fx.step = {};
var mn, gn, vn = /^(?:toggle|show|hide)$/,
bn = new RegExp("^(?:([+-])=|)(" + Ct + ")([a-z%]*)$", "i"),
kn = /queueHooks$/,
yn = [j],
wn = {
"*": [
function (e, t) {
var n = this.createTween(e, t),
i = n.cur(),
r = bn.exec(t),
s = r && r[3] || (st.cssNumber[e] ? "" : "px"),
o = (st.cssNumber[e] || "px" !== s && +i) && bn.exec(st.css(n.elem, e)),
a = 1,
l = 20;
if (o && o[3] !== s) {
s = s || o[3], r = r || [], o = +i || 1;
do a = a || ".5", o /= a, st.style(n.elem, e, o + s); while (a !== (a = n.cur() / i) && 1 !== a && --l)
}
return r && (o = n.start = +o || +i || 0, n.unit = s, n.end = r[1] ? o + (r[1] + 1) * r[2] : +r[2]), n
}
]
};
st.Animation = st.extend(M, {
tweener: function (e, t) {
st.isFunction(e) ? (t = e, e = ["*"]) : e = e.split(" ");
for (var n, i = 0, r = e.length; r > i; i++) n = e[i], wn[n] = wn[n] || [], wn[n].unshift(t)
},
prefilter: function (e, t) {
t ? yn.unshift(e) : yn.push(e)
}
}), st.speed = function (e, t, n) {
var i = e && "object" == typeof e ? st.extend({}, e) : {
complete: n || !n && t || st.isFunction(e) && e,
duration: e,
easing: n && t || t && !st.isFunction(t) && t
};
return i.duration = st.fx.off ? 0 : "number" == typeof i.duration ? i.duration : i.duration in st.fx.speeds ? st.fx.speeds[i.duration] : st.fx.speeds._default, (null == i.queue || i.queue === !0) && (i.queue = "fx"), i.old = i.complete, i.complete = function () {
st.isFunction(i.old) && i.old.call(this), i.queue && st.dequeue(this, i.queue)
}, i
}, st.fn.extend({
fadeTo: function (e, t, n, i) {
return this.filter(Nt).css("opacity", 0).show().end().animate({
opacity: t
}, e, n, i)
},
animate: function (e, t, n, i) {
var r = st.isEmptyObject(e),
s = st.speed(t, n, i),
o = function () {
var t = M(this, st.extend({}, e), s);
(r || st._data(this, "finish")) && t.stop(!0)
};
return o.finish = o, r || s.queue === !1 ? this.each(o) : this.queue(s.queue, o)
},
stop: function (e, t, n) {
var i = function (e) {
var t = e.stop;
delete e.stop, t(n)
};
return "string" != typeof e && (n = t, t = e, e = void 0), t && e !== !1 && this.queue(e || "fx", []), this.each(function () {
var t = !0,
r = null != e && e + "queueHooks",
s = st.timers,
o = st._data(this);
if (r) o[r] && o[r].stop && i(o[r]);
else
for (r in o) o[r] && o[r].stop && kn.test(r) && i(o[r]);
for (r = s.length; r--;) s[r].elem !== this || null != e && s[r].queue !== e || (s[r].anim.stop(n), t = !1, s.splice(r, 1));
(t || !n) && st.dequeue(this, e)
})
},
finish: function (e) {
return e !== !1 && (e = e || "fx"), this.each(function () {
var t, n = st._data(this),
i = n[e + "queue"],
r = n[e + "queueHooks"],
s = st.timers,
o = i ? i.length : 0;
for (n.finish = !0, st.queue(this, e, []), r && r.stop && r.stop.call(this, !0), t = s.length; t--;) s[t].elem === this && s[t].queue === e && (s[t].anim.stop(!0), s.splice(t, 1));
for (t = 0; o > t; t++) i[t] && i[t].finish && i[t].finish.call(this);
delete n.finish
})
}
}), st.each(["toggle", "show", "hide"], function (e, t) {
var n = st.fn[t];
st.fn[t] = function (e, i, r) {
return null == e || "boolean" == typeof e ? n.apply(this, arguments) : this.animate(L(t, !0), e, i, r)
}
}), st.each({
slideDown: L("show"),
slideUp: L("hide"),
slideToggle: L("toggle"),
fadeIn: {
opacity: "show"
},
fadeOut: {
opacity: "hide"
},
fadeToggle: {
opacity: "toggle"
}
}, function (e, t) {
st.fn[e] = function (e, n, i) {
return this.animate(t, e, n, i)
}
}), st.timers = [], st.fx.tick = function () {
var e, t = st.timers,
n = 0;
for (mn = st.now(); n < t.length; n++) e = t[n], e() || t[n] !== e || t.splice(n--, 1);
t.length || st.fx.stop(), mn = void 0
}, st.fx.timer = function (e) {
st.timers.push(e), e() ? st.fx.start() : st.timers.pop()
}, st.fx.interval = 13, st.fx.start = function () {
gn || (gn = setInterval(st.fx.tick, st.fx.interval))
}, st.fx.stop = function () {
clearInterval(gn), gn = null
}, st.fx.speeds = {
slow: 600,
fast: 200,
_default: 400
}, st.fn.delay = function (e, t) {
return e = st.fx ? st.fx.speeds[e] || e : e, t = t || "fx", this.queue(t, function (t, n) {
var i = setTimeout(t, e);
n.stop = function () {
clearTimeout(i)
}
})
},
function () {
var e, t, n, i, r = mt.createElement("div");
r.setAttribute("className", "t"), r.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>", e = r.getElementsByTagName("a")[0], n = mt.createElement("select"), i = n.appendChild(mt.createElement("option")), t = r.getElementsByTagName("input")[0], e.style.cssText = "top:1px", it.getSetAttribute = "t" !== r.className, it.style = /top/.test(e.getAttribute("style")), it.hrefNormalized = "/a" === e.getAttribute("href"), it.checkOn = !! t.value, it.optSelected = i.selected, it.enctype = !! mt.createElement("form").enctype, n.disabled = !0, it.optDisabled = !i.disabled, t = mt.createElement("input"), t.setAttribute("value", ""), it.input = "" === t.getAttribute("value"), t.value = "t", t.setAttribute("type", "radio"), it.radioValue = "t" === t.value, e = t = n = i = r = null
}();
var Tn = /\r/g;
st.fn.extend({
val: function (e) {
var t, n, i, r = this[0]; {
if (arguments.length) return i = st.isFunction(e), this.each(function (n) {
var r;
1 === this.nodeType && (r = i ? e.call(this, n, st(this).val()) : e, null == r ? r = "" : "number" == typeof r ? r += "" : st.isArray(r) && (r = st.map(r, function (e) {
return null == e ? "" : e + ""
})), t = st.valHooks[this.type] || st.valHooks[this.nodeName.toLowerCase()], t && "set" in t && void 0 !== t.set(this, r, "value") || (this.value = r))
});
if (r) return t = st.valHooks[r.type] || st.valHooks[r.nodeName.toLowerCase()], t && "get" in t && void 0 !== (n = t.get(r, "value")) ? n : (n = r.value, "string" == typeof n ? n.replace(Tn, "") : null == n ? "" : n)
}
}
}), st.extend({
valHooks: {
option: {
get: function (e) {
var t = st.find.attr(e, "value");
return null != t ? t : st.text(e)
}
},
select: {
get: function (e) {
for (var t, n, i = e.options, r = e.selectedIndex, s = "select-one" === e.type || 0 > r, o = s ? null : [], a = s ? r + 1 : i.length, l = 0 > r ? a : s ? r : 0; a > l; l++)
if (n = i[l], !(!n.selected && l !== r || (it.optDisabled ? n.disabled : null !== n.getAttribute("disabled")) || n.parentNode.disabled && st.nodeName(n.parentNode, "optgroup"))) {
if (t = st(n).val(), s) return t;
o.push(t)
}
return o
},
set: function (e, t) {
for (var n, i, r = e.options, s = st.makeArray(t), o = r.length; o--;)
if (i = r[o], st.inArray(st.valHooks.option.get(i), s) >= 0) try {
i.selected = n = !0
} catch (a) {
i.scrollHeight
} else i.selected = !1;
return n || (e.selectedIndex = -1), r
}
}
}
}), st.each(["radio", "checkbox"], function () {
st.valHooks[this] = {
set: function (e, t) {
return st.isArray(t) ? e.checked = st.inArray(st(e).val(), t) >= 0 : void 0
}
}, it.checkOn || (st.valHooks[this].get = function (e) {
return null === e.getAttribute("value") ? "on" : e.value
})
});
var Sn, xn, En = st.expr.attrHandle,
In = /^(?:checked|selected)$/i,
Cn = it.getSetAttribute,
Rn = it.input;
st.fn.extend({
attr: function (e, t) {
return _t(this, st.attr, e, t, arguments.length > 1)
},
removeAttr: function (e) {
return this.each(function () {
st.removeAttr(this, e)
})
}
}), st.extend({
attr: function (e, t, n) {
var i, r, s = e.nodeType;
if (e && 3 !== s && 8 !== s && 2 !== s) return typeof e.getAttribute === xt ? st.prop(e, t, n) : (1 === s && st.isXMLDoc(e) || (t = t.toLowerCase(), i = st.attrHooks[t] || (st.expr.match.bool.test(t) ? xn : Sn)), void 0 === n ? i && "get" in i && null !== (r = i.get(e, t)) ? r : (r = st.find.attr(e, t), null == r ? void 0 : r) : null !== n ? i && "set" in i && void 0 !== (r = i.set(e, n, t)) ? r : (e.setAttribute(t, n + ""), n) : void st.removeAttr(e, t))
},
removeAttr: function (e, t) {
var n, i, r = 0,
s = t && t.match(yt);
if (s && 1 === e.nodeType)
for (; n = s[r++];) i = st.propFix[n] || n, st.expr.match.bool.test(n) ? Rn && Cn || !In.test(n) ? e[i] = !1 : e[st.camelCase("default-" + n)] = e[i] = !1 : st.attr(e, n, ""), e.removeAttribute(Cn ? n : i)
},
attrHooks: {
type: {
set: function (e, t) {
if (!it.radioValue && "radio" === t && st.nodeName(e, "input")) {
var n = e.value;
return e.setAttribute("type", t), n && (e.value = n), t
}
}
}
}
}), xn = {
set: function (e, t, n) {
return t === !1 ? st.removeAttr(e, n) : Rn && Cn || !In.test(n) ? e.setAttribute(!Cn && st.propFix[n] || n, n) : e[st.camelCase("default-" + n)] = e[n] = !0, n
}
}, st.each(st.expr.match.bool.source.match(/\w+/g), function (e, t) {
var n = En[t] || st.find.attr;
En[t] = Rn && Cn || !In.test(t) ? function (e, t, i) {
var r, s;
return i || (s = En[t], En[t] = r, r = null != n(e, t, i) ? t.toLowerCase() : null, En[t] = s), r
} : function (e, t, n) {
return n ? void 0 : e[st.camelCase("default-" + t)] ? t.toLowerCase() : null
}
}), Rn && Cn || (st.attrHooks.value = {
set: function (e, t, n) {
return st.nodeName(e, "input") ? void(e.defaultValue = t) : Sn && Sn.set(e, t, n)
}
}), Cn || (Sn = {
set: function (e, t, n) {
var i = e.getAttributeNode(n);
return i || e.setAttributeNode(i = e.ownerDocument.createAttribute(n)), i.value = t += "", "value" === n || t === e.getAttribute(n) ? t : void 0
}
}, En.id = En.name = En.coords = function (e, t, n) {
var i;
return n ? void 0 : (i = e.getAttributeNode(t)) && "" !== i.value ? i.value : null
}, st.valHooks.button = {
get: function (e, t) {
var n = e.getAttributeNode(t);
return n && n.specified ? n.value : void 0
},
set: Sn.set
}, st.attrHooks.contenteditable = {
set: function (e, t, n) {
Sn.set(e, "" === t ? !1 : t, n)
}
}, st.each(["width", "height"], function (e, t) {
st.attrHooks[t] = {
set: function (e, n) {
return "" === n ? (e.setAttribute(t, "auto"), n) : void 0
}
}
})), it.style || (st.attrHooks.style = {
get: function (e) {
return e.style.cssText || void 0
},
set: function (e, t) {
return e.style.cssText = t + ""
}
});
var Nn = /^(?:input|select|textarea|button|object)$/i,
_n = /^(?:a|area)$/i;
st.fn.extend({
prop: function (e, t) {
return _t(this, st.prop, e, t, arguments.length > 1)
},
removeProp: function (e) {
return e = st.propFix[e] || e, this.each(function () {
try {
this[e] = void 0, delete this[e]
} catch (t) {}
})
}
}), st.extend({
propFix: {
"for": "htmlFor",
"class": "className"
},
prop: function (e, t, n) {
var i, r, s, o = e.nodeType;
if (e && 3 !== o && 8 !== o && 2 !== o) return s = 1 !== o || !st.isXMLDoc(e), s && (t = st.propFix[t] || t, r = st.propHooks[t]), void 0 !== n ? r && "set" in r && void 0 !== (i = r.set(e, n, t)) ? i : e[t] = n : r && "get" in r && null !== (i = r.get(e, t)) ? i : e[t]
},
propHooks: {
tabIndex: {
get: function (e) {
var t = st.find.attr(e, "tabindex");
return t ? parseInt(t, 10) : Nn.test(e.nodeName) || _n.test(e.nodeName) && e.href ? 0 : -1
}
}
}
}), it.hrefNormalized || st.each(["href", "src"], function (e, t) {
st.propHooks[t] = {
get: function (e) {
return e.getAttribute(t, 4)
}
}
}), it.optSelected || (st.propHooks.selected = {
get: function (e) {
var t = e.parentNode;
return t && (t.selectedIndex, t.parentNode && t.parentNode.selectedIndex), null
}
}), st.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], function () {
st.propFix[this.toLowerCase()] = this
}), it.enctype || (st.propFix.enctype = "encoding");
var Dn = /[\t\r\n\f]/g;
st.fn.extend({
addClass: function (e) {
var t, n, i, r, s, o, a = 0,
l = this.length,
u = "string" == typeof e && e;
if (st.isFunction(e)) return this.each(function (t) {
st(this).addClass(e.call(this, t, this.className))
});
if (u)
for (t = (e || "").match(yt) || []; l > a; a++)
if (n = this[a], i = 1 === n.nodeType && (n.className ? (" " + n.className + " ").replace(Dn, " ") : " ")) {
for (s = 0; r = t[s++];) i.indexOf(" " + r + " ") < 0 && (i += r + " ");
o = st.trim(i), n.className !== o && (n.className = o)
}
return this
},
removeClass: function (e) {
var t, n, i, r, s, o, a = 0,
l = this.length,
u = 0 === arguments.length || "string" == typeof e && e;
if (st.isFunction(e)) return this.each(function (t) {
st(this).removeClass(e.call(this, t, this.className))
});
if (u)
for (t = (e || "").match(yt) || []; l > a; a++)
if (n = this[a], i = 1 === n.nodeType && (n.className ? (" " + n.className + " ").replace(Dn, " ") : "")) {
for (s = 0; r = t[s++];)
for (; i.indexOf(" " + r + " ") >= 0;) i = i.replace(" " + r + " ", " ");
o = e ? st.trim(i) : "", n.className !== o && (n.className = o)
}
return this
},
toggleClass: function (e, t) {
var n = typeof e;
return "boolean" == typeof t && "string" === n ? t ? this.addClass(e) : this.removeClass(e) : this.each(st.isFunction(e) ? function (n) {
st(this).toggleClass(e.call(this, n, this.className, t), t)
} : function () {
if ("string" === n)
for (var t, i = 0, r = st(this), s = e.match(yt) || []; t = s[i++];) r.hasClass(t) ? r.removeClass(t) : r.addClass(t);
else(n === xt || "boolean" === n) && (this.className && st._data(this, "__className__", this.className), this.className = this.className || e === !1 ? "" : st._data(this, "__className__") || "")
})
},
hasClass: function (e) {
for (var t = " " + e + " ", n = 0, i = this.length; i > n; n++)
if (1 === this[n].nodeType && (" " + this[n].className + " ").replace(Dn, " ").indexOf(t) >= 0) return !0;
return !1
}
}), st.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "), function (e, t) {
st.fn[t] = function (e, n) {
return arguments.length > 0 ? this.on(t, null, e, n) : this.trigger(t)
}
}), st.fn.extend({
hover: function (e, t) {
return this.mouseenter(e).mouseleave(t || e)
},
bind: function (e, t, n) {
return this.on(e, null, t, n)
},
unbind: function (e, t) {
return this.off(e, null, t)
},
delegate: function (e, t, n, i) {
return this.on(t, e, n, i)
},
undelegate: function (e, t, n) {
return 1 === arguments.length ? this.off(e, "**") : this.off(t, e || "**", n)
}
});
var An = st.now(),
Pn = /\?/,
Ln = /(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;
st.parseJSON = function (t) {
if (e.JSON && e.JSON.parse) return e.JSON.parse(t + "");
var n, i = null,
r = st.trim(t + "");
return r && !st.trim(r.replace(Ln, function (e, t, r, s) {
return n && t && (i = 0), 0 === i ? e : (n = r || t, i += !s - !r, "")
})) ? Function("return " + r)() : st.error("Invalid JSON: " + t)
}, st.parseXML = function (t) {
var n, i;
if (!t || "string" != typeof t) return null;
try {
e.DOMParser ? (i = new DOMParser, n = i.parseFromString(t, "text/xml")) : (n = new ActiveXObject("Microsoft.XMLDOM"), n.async = "false", n.loadXML(t))
} catch (r) {
n = void 0
}
return n && n.documentElement && !n.getElementsByTagName("parsererror").length || st.error("Invalid XML: " + t), n
};
var On, jn, Fn = /#.*$/,
Mn = /([?&])_=[^&]*/,
zn = /^(.*?):[ \t]*([^\r\n]*)\r?$/gm,
Hn = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,
Un = /^(?:GET|HEAD)$/,
Wn = /^\/\//,
Bn = /^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,
qn = {}, Xn = {}, Vn = "*/".concat("*");
try {
jn = location.href
} catch (Yn) {
jn = mt.createElement("a"), jn.href = "", jn = jn.href
}
On = Bn.exec(jn.toLowerCase()) || [], st.extend({
active: 0,
lastModified: {},
etag: {},
ajaxSettings: {
url: jn,
type: "GET",
isLocal: Hn.test(On[1]),
global: !0,
processData: !0,
async: !0,
contentType: "application/x-www-form-urlencoded; charset=UTF-8",
accepts: {
"*": Vn,
text: "text/plain",
html: "text/html",
xml: "application/xml, text/xml",
json: "application/json, text/javascript"
},
contents: {
xml: /xml/,
html: /html/,
json: /json/
},
responseFields: {
xml: "responseXML",
text: "responseText",
json: "responseJSON"
},
converters: {
"* text": String,
"text html": !0,
"text json": st.parseJSON,
"text xml": st.parseXML
},
flatOptions: {
url: !0,
context: !0
}
},
ajaxSetup: function (e, t) {
return t ? U(U(e, st.ajaxSettings), t) : U(st.ajaxSettings, e)
},
ajaxPrefilter: z(qn),
ajaxTransport: z(Xn),
ajax: function (e, t) {
function n(e, t, n, i) {
var r, c, v, b, y, T = t;
2 !== k && (k = 2, a && clearTimeout(a), u = void 0, o = i || "", w.readyState = e > 0 ? 4 : 0, r = e >= 200 && 300 > e || 304 === e, n && (b = W(d, w, n)), b = B(d, b, w, r), r ? (d.ifModified && (y = w.getResponseHeader("Last-Modified"), y && (st.lastModified[s] = y), y = w.getResponseHeader("etag"), y && (st.etag[s] = y)), 204 === e || "HEAD" === d.type ? T = "nocontent" : 304 === e ? T = "notmodified" : (T = b.state, c = b.data, v = b.error, r = !v)) : (v = T, (e || !T) && (T = "error", 0 > e && (e = 0))), w.status = e, w.statusText = (t || T) + "", r ? h.resolveWith(p, [c, T, w]) : h.rejectWith(p, [w, T, v]), w.statusCode(g), g = void 0, l && f.trigger(r ? "ajaxSuccess" : "ajaxError", [w, d, r ? c : v]), m.fireWith(p, [w, T]), l && (f.trigger("ajaxComplete", [w, d]), --st.active || st.event.trigger("ajaxStop")))
}
"object" == typeof e && (t = e, e = void 0), t = t || {};
var i, r, s, o, a, l, u, c, d = st.ajaxSetup({}, t),
p = d.context || d,
f = d.context && (p.nodeType || p.jquery) ? st(p) : st.event,
h = st.Deferred(),
m = st.Callbacks("once memory"),
g = d.statusCode || {}, v = {}, b = {}, k = 0,
y = "canceled",
w = {
readyState: 0,
getResponseHeader: function (e) {
var t;
if (2 === k) {
if (!c)
for (c = {}; t = zn.exec(o);) c[t[1].toLowerCase()] = t[2];
t = c[e.toLowerCase()]
}
return null == t ? null : t
},
getAllResponseHeaders: function () {
return 2 === k ? o : null
},
setRequestHeader: function (e, t) {
var n = e.toLowerCase();
return k || (e = b[n] = b[n] || e, v[e] = t), this
},
overrideMimeType: function (e) {
return k || (d.mimeType = e), this
},
statusCode: function (e) {
var t;
if (e)
if (2 > k)
for (t in e) g[t] = [g[t], e[t]];
else w.always(e[w.status]);
return this
},
abort: function (e) {
var t = e || y;
return u && u.abort(t), n(0, t), this
}
};
if (h.promise(w).complete = m.add, w.success = w.done, w.error = w.fail, d.url = ((e || d.url || jn) + "").replace(Fn, "").replace(Wn, On[1] + "//"), d.type = t.method || t.type || d.method || d.type, d.dataTypes = st.trim(d.dataType || "*").toLowerCase().match(yt) || [""], null == d.crossDomain && (i = Bn.exec(d.url.toLowerCase()), d.crossDomain = !(!i || i[1] === On[1] && i[2] === On[2] && (i[3] || ("http:" === i[1] ? "80" : "443")) === (On[3] || ("http:" === On[1] ? "80" : "443")))), d.data && d.processData && "string" != typeof d.data && (d.data = st.param(d.data, d.traditional)), H(qn, d, t, w), 2 === k) return w;
l = d.global, l && 0 === st.active++ && st.event.trigger("ajaxStart"), d.type = d.type.toUpperCase(), d.hasContent = !Un.test(d.type), s = d.url, d.hasContent || (d.data && (s = d.url += (Pn.test(s) ? "&" : "?") + d.data, delete d.data), d.cache === !1 && (d.url = Mn.test(s) ? s.replace(Mn, "$1_=" + An++) : s + (Pn.test(s) ? "&" : "?") + "_=" + An++)), d.ifModified && (st.lastModified[s] && w.setRequestHeader("If-Modified-Since", st.lastModified[s]), st.etag[s] && w.setRequestHeader("If-None-Match", st.etag[s])), (d.data && d.hasContent && d.contentType !== !1 || t.contentType) && w.setRequestHeader("Content-Type", d.contentType), w.setRequestHeader("Accept", d.dataTypes[0] && d.accepts[d.dataTypes[0]] ? d.accepts[d.dataTypes[0]] + ("*" !== d.dataTypes[0] ? ", " + Vn + "; q=0.01" : "") : d.accepts["*"]);
for (r in d.headers) w.setRequestHeader(r, d.headers[r]);
if (d.beforeSend && (d.beforeSend.call(p, w, d) === !1 || 2 === k)) return w.abort();
y = "abort";
for (r in {
success: 1,
error: 1,
complete: 1
}) w[r](d[r]);
if (u = H(Xn, d, t, w)) {
w.readyState = 1, l && f.trigger("ajaxSend", [w, d]), d.async && d.timeout > 0 && (a = setTimeout(function () {
w.abort("timeout")
}, d.timeout));
try {
k = 1, u.send(v, n)
} catch (T) {
if (!(2 > k)) throw T;
n(-1, T)
}
} else n(-1, "No Transport");
return w
},
getJSON: function (e, t, n) {
return st.get(e, t, n, "json")
},
getScript: function (e, t) {
return st.get(e, void 0, t, "script")
}
}), st.each(["get", "post"], function (e, t) {
st[t] = function (e, n, i, r) {
return st.isFunction(n) && (r = r || i, i = n, n = void 0), st.ajax({
url: e,
type: t,
dataType: r,
data: n,
success: i
})
}
}), st.each(["ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], function (e, t) {
st.fn[t] = function (e) {
return this.on(t, e)
}
}), st._evalUrl = function (e) {
return st.ajax({
url: e,
type: "GET",
dataType: "script",
async: !1,
global: !1,
"throws": !0
})
}, st.fn.extend({
wrapAll: function (e) {
if (st.isFunction(e)) return this.each(function (t) {
st(this).wrapAll(e.call(this, t))
});
if (this[0]) {
var t = st(e, this[0].ownerDocument).eq(0).clone(!0);
this[0].parentNode && t.insertBefore(this[0]), t.map(function () {
for (var e = this; e.firstChild && 1 === e.firstChild.nodeType;) e = e.firstChild;
return e
}).append(this)
}
return this
},
wrapInner: function (e) {
return this.each(st.isFunction(e) ? function (t) {
st(this).wrapInner(e.call(this, t))
} : function () {
var t = st(this),
n = t.contents();
n.length ? n.wrapAll(e) : t.append(e)
})
},
wrap: function (e) {
var t = st.isFunction(e);
return this.each(function (n) {
st(this).wrapAll(t ? e.call(this, n) : e)
})
},
unwrap: function () {
return this.parent().each(function () {
st.nodeName(this, "body") || st(this).replaceWith(this.childNodes)
}).end()
}
}), st.expr.filters.hidden = function (e) {
return e.offsetWidth <= 0 && e.offsetHeight <= 0 || !it.reliableHiddenOffsets() && "none" === (e.style && e.style.display || st.css(e, "display"))
}, st.expr.filters.visible = function (e) {
return !st.expr.filters.hidden(e)
};
var $n = /%20/g,
Jn = /\[\]$/,
Gn = /\r?\n/g,
Kn = /^(?:submit|button|image|reset|file)$/i,
Qn = /^(?:input|select|textarea|keygen)/i;
st.param = function (e, t) {
var n, i = [],
r = function (e, t) {
t = st.isFunction(t) ? t() : null == t ? "" : t, i[i.length] = encodeURIComponent(e) + "=" + encodeURIComponent(t)
};
if (void 0 === t && (t = st.ajaxSettings && st.ajaxSettings.traditional), st.isArray(e) || e.jquery && !st.isPlainObject(e)) st.each(e, function () {
r(this.name, this.value)
});
else
for (n in e) q(n, e[n], t, r);
return i.join("&").replace($n, "+")
}, st.fn.extend({
serialize: function () {
return st.param(this.serializeArray())
},
serializeArray: function () {
return this.map(function () {
var e = st.prop(this, "elements");
return e ? st.makeArray(e) : this
}).filter(function () {
var e = this.type;
return this.name && !st(this).is(":disabled") && Qn.test(this.nodeName) && !Kn.test(e) && (this.checked || !Dt.test(e))
}).map(function (e, t) {
var n = st(this).val();
return null == n ? null : st.isArray(n) ? st.map(n, function (e) {
return {
name: t.name,
value: e.replace(Gn, "\r\n")
}
}) : {
name: t.name,
value: n.replace(Gn, "\r\n")
}
}).get()
}
}), st.ajaxSettings.xhr = void 0 !== e.ActiveXObject ? function () {
return !this.isLocal && /^(get|post|head|put|delete|options)$/i.test(this.type) && X() || V()
} : X;
var Zn = 0,
ei = {}, ti = st.ajaxSettings.xhr();
e.ActiveXObject && st(e).on("unload", function () {
for (var e in ei) ei[e](void 0, !0)
}), it.cors = !! ti && "withCredentials" in ti, ti = it.ajax = !! ti, ti && st.ajaxTransport(function (e) {
if (!e.crossDomain || it.cors) {
var t;
return {
send: function (n, i) {
var r, s = e.xhr(),
o = ++Zn;
if (s.open(e.type, e.url, e.async, e.username, e.password), e.xhrFields)
for (r in e.xhrFields) s[r] = e.xhrFields[r];
e.mimeType && s.overrideMimeType && s.overrideMimeType(e.mimeType), e.crossDomain || n["X-Requested-With"] || (n["X-Requested-With"] = "XMLHttpRequest");
for (r in n) void 0 !== n[r] && s.setRequestHeader(r, n[r] + "");
s.send(e.hasContent && e.data || null), t = function (n, r) {
var a, l, u;
if (t && (r || 4 === s.readyState))
if (delete ei[o], t = void 0, s.onreadystatechange = st.noop, r) 4 !== s.readyState && s.abort();
else {
u = {}, a = s.status, "string" == typeof s.responseText && (u.text = s.responseText);
try {
l = s.statusText
} catch (c) {
l = ""
}
a || !e.isLocal || e.crossDomain ? 1223 === a && (a = 204) : a = u.text ? 200 : 404
}
u && i(a, l, u, s.getAllResponseHeaders())
}, e.async ? 4 === s.readyState ? setTimeout(t) : s.onreadystatechange = ei[o] = t : t()
},
abort: function () {
t && t(void 0, !0)
}
}
}
}), st.ajaxSetup({
accepts: {
script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
},
contents: {
script: /(?:java|ecma)script/
},
converters: {
"text script": function (e) {
return st.globalEval(e), e
}
}
}), st.ajaxPrefilter("script", function (e) {
void 0 === e.cache && (e.cache = !1), e.crossDomain && (e.type = "GET", e.global = !1)
}), st.ajaxTransport("script", function (e) {
if (e.crossDomain) {
var t, n = mt.head || st("head")[0] || mt.documentElement;
return {
send: function (i, r) {
t = mt.createElement("script"), t.async = !0, e.scriptCharset && (t.charset = e.scriptCharset), t.src = e.url, t.onload = t.onreadystatechange = function (e, n) {
(n || !t.readyState || /loaded|complete/.test(t.readyState)) && (t.onload = t.onreadystatechange = null, t.parentNode && t.parentNode.removeChild(t), t = null, n || r(200, "success"))
}, n.insertBefore(t, n.firstChild)
},
abort: function () {
t && t.onload(void 0, !0)
}
}
}
});
var ni = [],
ii = /(=)\?(?=&|$)|\?\?/;
st.ajaxSetup({
jsonp: "callback",
jsonpCallback: function () {
var e = ni.pop() || st.expando + "_" + An++;
return this[e] = !0, e
}
}), st.ajaxPrefilter("json jsonp", function (t, n, i) {
var r, s, o, a = t.jsonp !== !1 && (ii.test(t.url) ? "url" : "string" == typeof t.data && !(t.contentType || "").indexOf("application/x-www-form-urlencoded") && ii.test(t.data) && "data");
return a || "jsonp" === t.dataTypes[0] ? (r = t.jsonpCallback = st.isFunction(t.jsonpCallback) ? t.jsonpCallback() : t.jsonpCallback, a ? t[a] = t[a].replace(ii, "$1" + r) : t.jsonp !== !1 && (t.url += (Pn.test(t.url) ? "&" : "?") + t.jsonp + "=" + r), t.converters["script json"] = function () {
return o || st.error(r + " was not called"), o[0]
}, t.dataTypes[0] = "json", s = e[r], e[r] = function () {
o = arguments
}, i.always(function () {
e[r] = s, t[r] && (t.jsonpCallback = n.jsonpCallback, ni.push(r)), o && st.isFunction(s) && s(o[0]), o = s = void 0
}), "script") : void 0
}), st.parseHTML = function (e, t, n) {
if (!e || "string" != typeof e) return null;
"boolean" == typeof t && (n = t, t = !1), t = t || mt;
var i = pt.exec(e),
r = !n && [];
return i ? [t.createElement(i[1])] : (i = st.buildFragment([e], t, r), r && r.length && st(r).remove(), st.merge([], i.childNodes))
};
var ri = st.fn.load;
st.fn.load = function (e, t, n) {
if ("string" != typeof e && ri) return ri.apply(this, arguments);
var i, r, s, o = this,
a = e.indexOf(" ");
return a >= 0 && (i = e.slice(a, e.length), e = e.slice(0, a)), st.isFunction(t) ? (n = t, t = void 0) : t && "object" == typeof t && (s = "POST"), o.length > 0 && st.ajax({
url: e,
type: s,
dataType: "html",
data: t
}).done(function (e) {
r = arguments, o.html(i ? st("<div>").append(st.parseHTML(e)).find(i) : e)
}).complete(n && function (e, t) {
o.each(n, r || [e.responseText, t, e])
}), this
}, st.expr.filters.animated = function (e) {
return st.grep(st.timers, function (t) {
return e === t.elem
}).length
};
var si = e.document.documentElement;
st.offset = {
setOffset: function (e, t, n) {
var i, r, s, o, a, l, u, c = st.css(e, "position"),
d = st(e),
p = {};
"static" === c && (e.style.position = "relative"), a = d.offset(), s = st.css(e, "top"), l = st.css(e, "left"), u = ("absolute" === c || "fixed" === c) && st.inArray("auto", [s, l]) > -1, u ? (i = d.position(), o = i.top, r = i.left) : (o = parseFloat(s) || 0, r = parseFloat(l) || 0), st.isFunction(t) && (t = t.call(e, n, a)), null != t.top && (p.top = t.top - a.top + o), null != t.left && (p.left = t.left - a.left + r), "using" in t ? t.using.call(e, p) : d.css(p)
}
}, st.fn.extend({
offset: function (e) {
if (arguments.length) return void 0 === e ? this : this.each(function (t) {
st.offset.setOffset(this, e, t)
});
var t, n, i = {
top: 0,
left: 0
}, r = this[0],
s = r && r.ownerDocument;
if (s) return t = s.documentElement, st.contains(t, r) ? (typeof r.getBoundingClientRect !== xt && (i = r.getBoundingClientRect()), n = Y(s), {
top: i.top + (n.pageYOffset || t.scrollTop) - (t.clientTop || 0),
left: i.left + (n.pageXOffset || t.scrollLeft) - (t.clientLeft || 0)
}) : i
},
position: function () {
if (this[0]) {
var e, t, n = {
top: 0,
left: 0
}, i = this[0];
return "fixed" === st.css(i, "position") ? t = i.getBoundingClientRect() : (e = this.offsetParent(), t = this.offset(), st.nodeName(e[0], "html") || (n = e.offset()), n.top += st.css(e[0], "borderTopWidth", !0), n.left += st.css(e[0], "borderLeftWidth", !0)), {
top: t.top - n.top - st.css(i, "marginTop", !0),
left: t.left - n.left - st.css(i, "marginLeft", !0)
}
}
},
offsetParent: function () {
return this.map(function () {
for (var e = this.offsetParent || si; e && !st.nodeName(e, "html") && "static" === st.css(e, "position");) e = e.offsetParent;
return e || si
})
}
}), st.each({
scrollLeft: "pageXOffset",
scrollTop: "pageYOffset"
}, function (e, t) {
var n = /Y/.test(t);
st.fn[e] = function (i) {
return _t(this, function (e, i, r) {
var s = Y(e);
return void 0 === r ? s ? t in s ? s[t] : s.document.documentElement[i] : e[i] : void(s ? s.scrollTo(n ? st(s).scrollLeft() : r, n ? r : st(s).scrollTop()) : e[i] = r)
}, e, i, arguments.length, null)
}
}), st.each(["top", "left"], function (e, t) {
st.cssHooks[t] = I(it.pixelPosition, function (e, n) {
return n ? (n = nn(e, t), sn.test(n) ? st(e).position()[t] + "px" : n) : void 0
})
}), st.each({
Height: "height",
Width: "width"
}, function (e, t) {
st.each({
padding: "inner" + e,
content: t,
"": "outer" + e
}, function (n, i) {
st.fn[i] = function (i, r) {
var s = arguments.length && (n || "boolean" != typeof i),
o = n || (i === !0 || r === !0 ? "margin" : "border");
return _t(this, function (t, n, i) {
var r;
return st.isWindow(t) ? t.document.documentElement["client" + e] : 9 === t.nodeType ? (r = t.documentElement, Math.max(t.body["scroll" + e], r["scroll" + e], t.body["offset" + e], r["offset" + e], r["client" + e])) : void 0 === i ? st.css(t, n, o) : st.style(t, n, i, o)
}, t, s ? i : void 0, s, null)
}
})
}), st.fn.size = function () {
return this.length
}, st.fn.andSelf = st.fn.addBack, "function" == typeof define && define.amd && define("jquery", [], function () {
return st
});
var oi = e.jQuery,
ai = e.$;
return st.noConflict = function (t) {
return e.$ === st && (e.$ = ai), t && e.jQuery === st && (e.jQuery = oi), st
}, typeof t === xt && (e.jQuery = e.$ = st), st
}),
function (e, t) {
e.rails !== t && e.error("jquery-ujs has already been loaded!");
var n, i = e(document);
e.rails = n = {
linkClickSelector: "a[data-confirm], a[data-method], a[data-remote], a[data-disable-with]",
buttonClickSelector: "button[data-remote]",
inputChangeSelector: "select[data-remote], input[data-remote], textarea[data-remote]",
formSubmitSelector: "form",
formInputClickSelector: "form input[type=submit], form input[type=image], form button[type=submit], form button:not([type])",
disableSelector: "input[data-disable-with], button[data-disable-with], textarea[data-disable-with]",
enableSelector: "input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled",
requiredInputSelector: "input[name][required]:not([disabled]),textarea[name][required]:not([disabled])",
fileInputSelector: "input[type=file]",
linkDisableSelector: "a[data-disable-with]",
CSRFProtection: function (t) {
var n = e('meta[name="csrf-token"]').attr("content");
n && t.setRequestHeader("X-CSRF-Token", n)
},
refreshCSRFTokens: function () {
var t = e("meta[name=csrf-token]").attr("content"),
n = e("meta[name=csrf-param]").attr("content");
e('form input[name="' + n + '"]').val(t)
},
fire: function (t, n, i) {
var r = e.Event(n);
return t.trigger(r, i), r.result !== !1
},
confirm: function (e) {
return confirm(e)
},
ajax: function (t) {
return e.ajax(t)
},
href: function (e) {
return e.attr("href")
},
handleRemote: function (i) {
var r, s, o, a, l, u, c, d;
if (n.fire(i, "ajax:before")) {
if (a = i.data("cross-domain"), l = a === t ? null : a, u = i.data("with-credentials") || null, c = i.data("type") || e.ajaxSettings && e.ajaxSettings.dataType, i.is("form")) {
r = i.attr("method"), s = i.attr("action"), o = i.serializeArray();
var p = i.data("ujs:submit-button");
p && (o.push(p), i.data("ujs:submit-button", null))
} else i.is(n.inputChangeSelector) ? (r = i.data("method"), s = i.data("url"), o = i.serialize(), i.data("params") && (o = o + "&" + i.data("params"))) : i.is(n.buttonClickSelector) ? (r = i.data("method") || "get", s = i.data("url"), o = i.serialize(), i.data("params") && (o = o + "&" + i.data("params"))) : (r = i.data("method"), s = n.href(i), o = i.data("params") || null);
d = {
type: r || "GET",
data: o,
dataType: c,
beforeSend: function (e, r) {
return r.dataType === t && e.setRequestHeader("accept", "*/*;q=0.5, " + r.accepts.script), n.fire(i, "ajax:beforeSend", [e, r])
},
success: function (e, t, n) {
i.trigger("ajax:success", [e, t, n])
},
complete: function (e, t) {
i.trigger("ajax:complete", [e, t])
},
error: function (e, t, n) {
i.trigger("ajax:error", [e, t, n])
},
crossDomain: l
}, u && (d.xhrFields = {
withCredentials: u
}), s && (d.url = s);
var f = n.ajax(d);
return i.trigger("ajax:send", f), f
}
return !1
},
handleMethod: function (i) {
var r = n.href(i),
s = i.data("method"),
o = i.attr("target"),
a = e("meta[name=csrf-token]").attr("content"),
l = e("meta[name=csrf-param]").attr("content"),
u = e('<form method="post" action="' + r + '"></form>'),
c = '<input name="_method" value="' + s + '" type="hidden" />';
l !== t && a !== t && (c += '<input name="' + l + '" value="' + a + '" type="hidden" />'), o && u.attr("target", o), u.hide().append(c).appendTo("body"), u.submit()
},
disableFormElements: function (t) {
t.find(n.disableSelector).each(function () {
var t = e(this),
n = t.is("button") ? "html" : "val";
t.data("ujs:enable-with", t[n]()), t[n](t.data("disable-with")), t.prop("disabled", !0)
})
},
enableFormElements: function (t) {
t.find(n.enableSelector).each(function () {
var t = e(this),
n = t.is("button") ? "html" : "val";
t.data("ujs:enable-with") && t[n](t.data("ujs:enable-with")), t.prop("disabled", !1)
})
},
allowAction: function (e) {
var t, i = e.data("confirm"),
r = !1;
return i ? (n.fire(e, "confirm") && (r = n.confirm(i), t = n.fire(e, "confirm:complete", [r])), r && t) : !0
},
blankInputs: function (t, n, i) {
var r, s, o = e(),
a = n || "input,textarea",
l = t.find(a);
return l.each(function () {
if (r = e(this), s = r.is("input[type=checkbox],input[type=radio]") ? r.is(":checked") : r.val(), !s == !i) {
if (r.is("input[type=radio]") && l.filter('input[type=radio]:checked[name="' + r.attr("name") + '"]').length) return !0;
o = o.add(r)
}
}), o.length ? o : !1
},
nonBlankInputs: function (e, t) {
return n.blankInputs(e, t, !0)
},
stopEverything: function (t) {
return e(t.target).trigger("ujs:everythingStopped"), t.stopImmediatePropagation(), !1
},
disableElement: function (e) {
e.data("ujs:enable-with", e.html()), e.html(e.data("disable-with")), e.bind("click.railsDisable", function (e) {
return n.stopEverything(e)
})
},
enableElement: function (e) {
e.data("ujs:enable-with") !== t && (e.html(e.data("ujs:enable-with")), e.removeData("ujs:enable-with")), e.unbind("click.railsDisable")
}
}, n.fire(i, "rails:attachBindings") && (e.ajaxPrefilter(function (e, t, i) {
e.crossDomain || n.CSRFProtection(i)
}), i.delegate(n.linkDisableSelector, "ajax:complete", function () {
n.enableElement(e(this))
}), i.delegate(n.linkClickSelector, "click.rails", function (i) {
var r = e(this),
s = r.data("method"),
o = r.data("params"),
a = i.metaKey || i.ctrlKey;
if (!n.allowAction(r)) return n.stopEverything(i);
if (!a && r.is(n.linkDisableSelector) && n.disableElement(r), r.data("remote") !== t) {
if (a && (!s || "GET" === s) && !o) return !0;
var l = n.handleRemote(r);
return l === !1 ? n.enableElement(r) : l.error(function () {
n.enableElement(r)
}), !1
}
return r.data("method") ? (n.handleMethod(r), !1) : void 0
}), i.delegate(n.buttonClickSelector, "click.rails", function (t) {
var i = e(this);
return n.allowAction(i) ? (n.handleRemote(i), !1) : n.stopEverything(t)
}), i.delegate(n.inputChangeSelector, "change.rails", function (t) {
var i = e(this);
return n.allowAction(i) ? (n.handleRemote(i), !1) : n.stopEverything(t)
}), i.delegate(n.formSubmitSelector, "submit.rails", function (i) {
var r = e(this),
s = r.data("remote") !== t,
o = n.blankInputs(r, n.requiredInputSelector),
a = n.nonBlankInputs(r, n.fileInputSelector);
if (!n.allowAction(r)) return n.stopEverything(i);
if (o && r.attr("novalidate") == t && n.fire(r, "ajax:aborted:required", [o])) return n.stopEverything(i);
if (s) {
if (a) {
setTimeout(function () {
n.disableFormElements(r)
}, 13);
var l = n.fire(r, "ajax:aborted:file", [a]);
return l || setTimeout(function () {
n.enableFormElements(r)
}, 13), l
}
return n.handleRemote(r), !1
}
setTimeout(function () {
n.disableFormElements(r)
}, 13)
}), i.delegate(n.formInputClickSelector, "click.rails", function (t) {
var i = e(this);
if (!n.allowAction(i)) return n.stopEverything(t);
var r = i.attr("name"),
s = r ? {
name: r,
value: i.val()
} : null;
i.closest("form").data("ujs:submit-button", s)
}), i.delegate(n.formSubmitSelector, "ajax:beforeSend.rails", function (t) {
this == t.target && n.disableFormElements(e(this))
}), i.delegate(n.formSubmitSelector, "ajax:complete.rails", function (t) {
this == t.target && n.enableFormElements(e(this))
}), e(function () {
n.refreshCSRFTokens()
}))
}(jQuery),
function () {
var e, t, n, i, r, s, o, a, l, u, c, d, p, f, h, m, g, v, b, k, y, w, T, S, x, E, I, C, R, N, _, D, A, P, L, O, j, F, M, z, H, U, W, B, q, X, V, Y, $, J, G, K, Q, Z, et, tt, nt, it, rt, st, ot = [].indexOf || function (e) {
for (var t = 0, n = this.length; n > t; t++)
if (t in this && this[t] === e) return t;
return -1
}, at = [].slice;
j = {}, c = 10, et = !1, m = null, A = null, E = ["html"], W = null, f = null, rt = null, y = function (e) {
var t;
return Y(), u(), B(e), et && (t = tt(e)) ? (w(t), T(e)) : T(e, Q)
}, tt = function (e) {
var t;
return t = j[e], t && !t.transitionCacheDisabled ? t : void 0
}, g = function (e) {
return null == e && (e = !0), et = e
}, T = function (e, t) {
return null == t && (t = function () {
return function () {}
}(this)), nt("page:fetch", {
url: e
}), null != rt && rt.abort(), rt = new XMLHttpRequest, rt.open("GET", J(e), !0), rt.setRequestHeader("Accept", "text/html, application/xhtml+xml, application/xml"), rt.setRequestHeader("X-XHR-Referer", W), rt.onload = function () {
var n;
return nt("page:receive"), (n = H()) ? (d.apply(null, k(n)), q(), t(), nt("page:load")) : document.location.href = e
}, rt.onloadend = function () {
return rt = null
}, rt.onerror = function () {
return document.location.href = e
}, rt.send()
}, w = function (e) {
return null != rt && rt.abort(), d(e.title, e.body), U(e), nt("page:restore")
}, u = function () {
return j[m.url] = {
url: document.location.href,
body: document.body,
title: document.title,
positionY: window.pageYOffset,
positionX: window.pageXOffset,
cachedAt: (new Date).getTime(),
transitionCacheDisabled: null != document.querySelector("[data-no-transition-cache]")
}, p(c)
}, M = function (e) {
return null == e && (e = c), /^[\d]+$/.test(e) ? c = parseInt(e) : void 0
}, p = function (e) {
var t, n, i, r, s, o;
for (i = Object.keys(j), t = i.map(function (e) {
return j[e].cachedAt
}).sort(function (e, t) {
return t - e
}), o = [], r = 0, s = i.length; s > r; r++) n = i[r], j[n].cachedAt <= t[e] && (nt("page:expire", j[n]), o.push(delete j[n]));
return o
}, d = function (t, n, i, r) {
return document.title = t, document.documentElement.replaceChild(n, document.body), null != i && e.update(i), r && v(), m = window.history.state, nt("page:change"), nt("page:update")
}, v = function () {
var e, t, n, i, r, s, o, a, l, u, c, d;
for (s = Array.prototype.slice.call(document.body.querySelectorAll('script:not([data-turbolinks-eval="false"])')), o = 0, l = s.length; l > o; o++)
if (r = s[o], "" === (c = r.type) || "text/javascript" === c) {
for (t = document.createElement("script"), d = r.attributes, a = 0, u = d.length; u > a; a++) e = d[a], t.setAttribute(e.name, e.value);
t.appendChild(document.createTextNode(r.innerHTML)), i = r.parentNode, n = r.nextSibling, i.removeChild(r), i.insertBefore(t, n)
}
}, G = function (e) {
return e.innerHTML = e.innerHTML.replace(/<noscript[\S\s]*?<\/noscript>/gi, ""), e
}, B = function (e) {
return e !== W ? window.history.pushState({
turbolinks: !0,
url: e
}, "", e) : void 0
}, q = function () {
var e, t;
return (e = rt.getResponseHeader("X-XHR-Redirected-To")) ? (t = $(e) === e ? document.location.hash : "", window.history.replaceState(m, "", e + t)) : void 0
}, Y = function () {
return W = document.location.href
}, V = function () {
return window.history.replaceState({
turbolinks: !0,
url: document.location.href
}, "", document.location.href)
}, X = function () {
return m = window.history.state
}, U = function (e) {
return window.scrollTo(e.positionX, e.positionY)
}, Q = function () {
return document.location.hash ? document.location.href = document.location.href : window.scrollTo(0, 0)
}, J = function (e) {
return $(e)
}, $ = function (e) {
var t;
return t = e, null == e.href && (t = document.createElement("A"), t.href = e), t.href.replace(t.hash, "")
}, z = function (e) {
var t, n;
return t = (null != (n = document.cookie.match(new RegExp(e + "=(\\w+)"))) ? n[1].toUpperCase() : void 0) || "", document.cookie = e + "=; expires=Thu, 01-Jan-70 00:00:01 GMT; path=/", t
}, nt = function (e, t) {
var n;
return n = document.createEvent("Events"), t && (n.data = t), n.initEvent(e, !0, !0), document.dispatchEvent(n)
}, F = function () {
return !nt("page:before-change")
}, H = function () {
var e, t, n, i, r, s;
return t = function () {
var e;
return 400 <= (e = rt.status) && 600 > e
}, s = function () {
return rt.getResponseHeader("Content-Type").match(/^(?:text\/html|application\/xhtml\+xml|application\/xml)(?:;|$)/)
}, i = function (e) {
var t, n, i, r, s;
for (r = e.head.childNodes, s = [], n = 0, i = r.length; i > n; n++) t = r[n], null != ("function" == typeof t.getAttribute ? t.getAttribute("data-turbolinks-track") : void 0) && s.push(t.getAttribute("src") || t.getAttribute("href"));
return s
}, e = function (e) {
var t;
return A || (A = i(document)), t = i(e), t.length !== A.length || r(t, A).length !== A.length
}, r = function (e, t) {
var n, i, r, s, o;
for (e.length > t.length && (s = [t, e], e = s[0], t = s[1]), o = [], i = 0, r = e.length; r > i; i++) n = e[i], ot.call(t, n) >= 0 && o.push(n);
return o
}, !t() && s() && (n = f(rt.responseText), n && !e(n)) ? n : void 0
}, k = function (t) {
var n;
return n = t.querySelector("title"), [null != n ? n.textContent : void 0, G(t.body), e.get(t).token, "runScripts"]
}, e = {
get: function (e) {
var t;
return null == e && (e = document), {
node: t = e.querySelector('meta[name="csrf-token"]'),
token: null != t && "function" == typeof t.getAttribute ? t.getAttribute("content") : void 0
}
},
update: function (e) {
var t;
return t = this.get(), null != t.token && null != e && t.token !== e ? t.node.setAttribute("content", e) : void 0
}
}, i = function () {
var e, t, n, i, r, s;
t = function (e) {
return (new DOMParser).parseFromString(e, "text/html")
}, e = function (e) {
var t;
return t = document.implementation.createHTMLDocument(""), t.documentElement.innerHTML = e, t
}, n = function (e) {
var t;
return t = document.implementation.createHTMLDocument(""), t.open("replace"), t.write(e), t.close(), t
};
try {
if (window.DOMParser) return r = t("<html><body><p>test"), t
} catch (o) {
return i = o, r = e("<html><body><p>test"), e
} finally {
if (1 !== (null != r && null != (s = r.body) ? s.childNodes.length : void 0)) return n
}
}, R = function (e) {
return e.defaultPrevented ? void 0 : (document.removeEventListener("click", S, !1), document.addEventListener("click", S, !1))
}, S = function (e) {
var t;
return e.defaultPrevented || (t = b(e), "A" !== t.nodeName || I(e, t)) ? void 0 : (F() || it(t.href), e.preventDefault())
}, b = function (e) {
var t;
for (t = e.target; t.parentNode && "A" !== t.nodeName;) t = t.parentNode;
return t
}, h = function (e) {
return location.protocol !== e.protocol || location.host !== e.host
}, n = function (e) {
return (e.hash && $(e)) === $(location) || e.href === location.href + "#"
}, L = function (e) {
var t;
return t = $(e), t.match(/\.[a-z]+(\?.*)?$/g) && !t.match(new RegExp("\\.(?:" + E.join("|") + ")?(\\?.*)?$", "g"))
}, P = function (e) {
for (var t; !t && e !== document;) t = null != e.getAttribute("data-no-turbolink"), e = e.parentNode;
return t
}, Z = function (e) {
return 0 !== e.target.length
}, O = function (e) {
return e.which > 1 || e.metaKey || e.ctrlKey || e.shiftKey || e.altKey
}, I = function (e, t) {
return h(t) || n(t) || L(t) || P(t) || Z(t) || O(e)
}, t = function () {
var e, t, n, i;
for (t = 1 <= arguments.length ? at.call(arguments, 0) : [], n = 0, i = t.length; i > n; n++) e = t[n], E.push(e);
return E
}, l = function (e) {
return setTimeout(e, 500)
}, N = function () {
return document.addEventListener("DOMContentLoaded", function () {
return nt("page:change"), nt("page:update")
}, !0)
}, D = function () {
return "undefined" != typeof jQuery ? jQuery(document).on("ajaxSuccess", function (e, t) {
return jQuery.trim(t.responseText) ? nt("page:update") : void 0
}) : void 0
}, _ = function (e) {
var t, n;
return (null != (n = e.state) ? n.turbolinks : void 0) ? (t = j[e.state.url]) ? (u(), w(t)) : it(e.target.location.href) : void 0
}, C = function () {
return V(), X(), f = i(), document.addEventListener("click", R, !0), l(function () {
return window.addEventListener("popstate", _, !1)
})
}, x = void 0 !== window.history.state || navigator.userAgent.match(/Firefox\/2[6|7]/), o = window.history && window.history.pushState && window.history.replaceState && x, r = !navigator.userAgent.match(/CriOS\//), K = "GET" === (st = z("request_method")) || "" === st, a = o && r && K, s = document.addEventListener && document.createEvent, s && (N(), D()), a ? (it = y, C()) : it = function (e) {
return document.location.href = e
}, this.Turbolinks = {
visit: it,
pagesCached: M,
enableTransitionCache: g,
allowLinkExtensions: t,
supported: a
}
}.call(this),
function (e) {
"use strict";
function t(e) {
return new RegExp("(^|\\s+)" + e + "(\\s+|$)")
}
function n(e, t) {
var n = i(e, t) ? s : r;
n(e, t)
}
var i, r, s;
"classList" in document.documentElement ? (i = function (e, t) {
return e.classList.contains(t)
}, r = function (e, t) {
e.classList.add(t)
}, s = function (e, t) {
e.classList.remove(t)
}) : (i = function (e, n) {
return t(n).test(e.className)
}, r = function (e, t) {
i(e, t) || (e.className = e.className + " " + t)
}, s = function (e, n) {
e.className = e.className.replace(t(n), " ")
});
var o = {
hasClass: i,
addClass: r,
removeClass: s,
toggleClass: n,
has: i,
add: r,
remove: s,
toggle: n
};
"function" == typeof define && define.amd ? define(o) : e.classie = o
}(window);
var kCHARSET_RULE_MISSING_SEMICOLON = "Missing semicolon at the end of @charset rule",
kCHARSET_RULE_CHARSET_IS_STRING = "The charset in the @charset rule should be a string",
kCHARSET_RULE_MISSING_WS = "Missing mandatory whitespace after @charset",
kIMPORT_RULE_MISSING_URL = "Missing URL in @import rule",
kURL_EOF = "Unexpected end of stylesheet",
kURL_WS_INSIDE = "Multiple tokens inside a url() notation",
kVARIABLES_RULE_POSITION = "@variables rule invalid at this position in the stylesheet",
kIMPORT_RULE_POSITION = "@import rule invalid at this position in the stylesheet",
kNAMESPACE_RULE_POSITION = "@namespace rule invalid at this position in the stylesheet",
kCHARSET_RULE_CHARSET_SOF = "@charset rule invalid at this position in the stylesheet",
kUNKNOWN_AT_RULE = "Unknow @-rule",
kENGINES = ["webkit", "presto", "trident", "generic"],
kCSS_VENDOR_VALUES = {
"-moz-box": {
webkit: "-webkit-box",
presto: "",
trident: "",
generic: "box"
},
"-moz-inline-box": {
webkit: "-webkit-inline-box",
presto: "",
trident: "",
generic: "inline-box"
},
"-moz-initial": {
webkit: "",
presto: "",
trident: "",
generic: "initial"
},
"-moz-linear-gradient": {
webkit20110101: FilterLinearGradientForOutput,
webkit: FilterLinearGradientForOutput,
presto: "",
trident: "",
generic: FilterLinearGradientForOutput
},
"-moz-radial-gradient": {
webkit20110101: FilterRadialGradientForOutput,
webkit: FilterRadialGradientForOutput,
presto: "",
trident: "",
generic: FilterRadialGradientForOutput
},
"-moz-repeating-linear-gradient": {
webkit20110101: "",
webkit: FilterRepeatingGradientForOutput,
presto: "",
trident: "",
generic: FilterRepeatingGradientForOutput
},
"-moz-repeating-radial-gradient": {
webkit20110101: "",
webkit: FilterRepeatingGradientForOutput,
presto: "",
trident: "",
generic: FilterRepeatingGradientForOutput
}
}, kCSS_VENDOR_PREFIXES = {
lastUpdate: 1304175007,
properties: [{
gecko: "",
webkit: "",
presto: "",
trident: "-ms-accelerator",
status: "P"
}, {
gecko: "",
webkit: "",
presto: "-wap-accesskey",
trident: "",
status: ""
}, {
gecko: "-moz-animation",
webkit: "-webkit-animation",
presto: "",
trident: "",
status: "WD"
}, {
gecko: "-moz-animation-delay",
webkit: "-webkit-animation-delay",
presto: "",
trident: "",
status: "WD"
}, {
gecko: "-moz-animation-direction",
webkit: "-webkit-animation-direction",
presto: "",
trident: "",
status: "WD"
}, {
gecko: "-moz-animation-duration",
webkit: "-webkit-animation-duration",
presto: "",
trident: "",
status: "WD"
}, {
gecko: "-moz-animation-fill-mode",
webkit: "-webkit-animation-fill-mode",
presto: "",
trident: "",
status: "ED"
}, {
gecko: "-moz-animation-iteration-count",
webkit: "-webkit-animation-iteration-count",
presto: "",
trident: "",
status: "WD"
}, {
gecko: "-moz-animation-name",
webkit: "-webkit-animation-name",
presto: "",
trident: "",
status: "WD"
}, {
gecko: "-moz-animation-play-state",
webkit: "-webkit-animation-play-state",
presto: "",
trident: "",
status: "WD"
}, {
gecko: "-moz-animation-timing-function",
webkit: "-webkit-animation-timing-function",
presto: "",
trident: "",
status: "WD"
}, {
gecko: "-moz-appearance",
webkit: "-webkit-appearance",
presto: "",
trident: "",
status: "CR"
}, {
gecko: "",
webkit: "-webkit-backface-visibility",
presto: "",
trident: "",
status: "WD"
}, {
gecko: "background-clip",
webkit: "-webkit-background-clip",
presto: "background-clip",
trident: "background-clip",
status: "WD"
}, {
gecko: "",
webkit: "-webkit-background-composite",
presto: "",
trident: "",
status: ""
}, {
gecko: "-moz-background-inline-policy",
webkit: "",
presto: "",
trident: "",
status: "P"
}, {
gecko: "background-origin",
webkit: "-webkit-background-origin",
presto: "background-origin",
trident: "background-origin",
status: "WD"
}, {
gecko: "",
webkit: "background-position-x",
presto: "",
trident: "-ms-background-position-x",
status: ""
}, {
gecko: "",
webkit: "background-position-y",
presto: "",
trident: "-ms-background-position-y",
status: ""
}, {
gecko: "background-size",
webkit: "-webkit-background-size",
presto: "background-size",
trident: "background-size",
status: "WD"
}, {
gecko: "",
webkit: "",
presto: "",
trident: "-ms-behavior",
status: ""
}, {
gecko: "-moz-binding",
webkit: "",
presto: "",
trident: "",
status: "P"
}, {
gecko: "",
webkit: "",
presto: "",
trident: "-ms-block-progression",
status: ""
}, {
gecko: "",
webkit: "-webkit-border-after",
presto: "",
trident: "",
status: "ED"
}, {
gecko: "",
webkit: "-webkit-border-after-color",
presto: "",
trident: "",
status: "ED"
}, {
gecko: "",
webkit: "-webkit-border-after-style",
presto: "",
trident: "",
status: "ED"
}, {
gecko: "",
webkit: "-webkit-border-after-width",
presto: "",
trident: "",
status: "ED"
}, {
gecko: "",
webkit: "-webkit-border-before",
presto: "",
trident: "",
status: "ED"
}, {
gecko: "",
webkit: "-webkit-border-before-color",
presto: "",
trident: "",
status: "ED"
}, {
gecko: "",
webkit: "-webkit-border-before-style",
presto: "",
trident: "",
status: "ED"
}, {
gecko: "",
webkit: "-webkit-border-before-width",
presto: "",
trident: "",
status: "ED"
}, {
gecko: "-moz-border-bottom-colors",
webkit: "",
presto: "",
trident: "",
status: "P"
}, {
gecko: "border-bottom-left-radius",
webkit: "-webkit-border-bottom-left-radius",
presto: "border-bottom-left-radius",
trident: "border-bottom-left-radius",
status: "WD"
}, {
gecko: "",
webkit: "-webkit-border-bottom-left-radius = border-bottom-left-radius",
presto: "",
trident: "",
status: ""
}, {
gecko: "border-bottom-right-radius",
webkit: "-webkit-border-bottom-right-radius",
presto: "border-bottom-right-radius",
trident: "border-bottom-right-radius",
status: "WD"
}, {
gecko: "",
webkit: "-webkit-border-bottom-right-radius = border-bottom-right-radius",
presto: "",
trident: "",
status: ""
}, {
gecko: "-moz-border-end",
webkit: "-webkit-border-end",
presto: "",
trident: "",
status: "ED"
}, {
gecko: "-moz-border-end-color",
webkit: "-webkit-border-end-color",
presto: "",
trident: "",
status: "ED"
}, {
gecko: "-moz-border-end-style",
webkit: "-webkit-border-end-style",
presto: "",
trident: "",
status: "ED"
}, {
gecko: "-moz-border-end-width",
webkit: "-webkit-border-end-width",
presto: "",
trident: "",
status: "ED"
}, {
gecko: "",
webkit: "-webkit-border-fit",
presto: "",
trident: "",
status: ""
}, {
gecko: "",
webkit: "-webkit-border-horizontal-spacing",
presto: "",
trident: "",
status: ""
}, {
gecko: "-moz-border-image",
webkit: "-webkit-border-image",
presto: "-o-border-image",
trident: "",
status: "WD"
}, {
gecko: "-moz-border-left-colors",
webkit: "",
presto: "",
trident: "",
status: "P"
}, {
gecko: "border-radius",
webkit: "-webkit-border-radius",
presto: "border-radius",
trident: "border-radius",
status: "WD"
}, {
gecko: "-moz-border-right-colors",
webkit: "",
presto: "",
trident: "",
status: "P"
}, {
gecko: "-moz-border-start",
webkit: "-webkit-border-start",
presto: "",
trident: "",
status: "ED"
}, {
gecko: "-moz-border-start-color",
webkit: "-webkit-border-start-color",
presto: "",
trident: "",
status: "ED"
}, {
gecko: "-moz-border-start-style",
webkit: "-webkit-border-start-style",
presto: "",
trident: "",
status: "ED"
}, {
gecko: "-moz-border-start-width",
webkit: "-webkit-border-start-width",
presto: "",
trident: "",
status: "ED"
}, {
gecko: "-moz-border-top-colors",
webkit: "",
presto: "",
trident: "",
status: "P"
}, {
gecko: "border-top-left-radius",
webkit: "-webkit-border-top-left-radius",
presto: "border-top-left-radius",
trident: "border-top-left-radius",
status: "WD"
}, {
gecko: "",
webkit: "-webkit-border-top-left-radius = border-top-left-radius",
presto: "",
trident: "",
status: ""
}, {
gecko: "border-top-right-radius",
webkit: "-webkit-border-top-right-radius",
presto: "border-top-right-radius",
trident: "border-top-right-radius",
status: "WD"
}, {
gecko: "",
webkit: "-webkit-border-top-right-radius = border-top-right-radius",
presto: "",
trident: "",
status: ""
}, {
gecko: "",
webkit: "-webkit-border-vertical-spacing",
presto: "",
trident: "",
status: ""
}, {
gecko: "-moz-box-align",
webkit: "-webkit-box-align",
presto: "",
trident: "-ms-box-align",
status: "WD"
}, {
gecko: "-moz-box-direction",
webkit: "-webkit-box-direction",
presto: "",
trident: "-ms-box-direction",
status: "WD"
}, {
gecko: "-moz-box-flex",
webkit: "-webkit-box-flex",
presto: "",
trident: "-ms-box-flex",
status: "WD"
}, {
gecko: "",
webkit: "-webkit-box-flex-group",
presto: "",
trident: "",
status: "WD"
}, {
gecko: "",
webkit: "",
presto: "",
trident: "-ms-box-line-progression",
status: ""
}, {
gecko: "",
webkit: "-webkit-box-lines",
presto: "",
trident: "-ms-box-lines",
status: "WD"
}, {
gecko: "-moz-box-ordinal-group",
webkit: "-webkit-box-ordinal-group",
presto: "",
trident: "-ms-box-ordinal-group",
status: "WD"
}, {
gecko: "-moz-box-orient",
webkit: "-webkit-box-orient",
presto: "",
trident: "-ms-box-orient",
status: "WD"
}, {
gecko: "-moz-box-pack",
webkit: "-webkit-box-pack",
presto: "",
trident: "-ms-box-pack",
status: "WD"
}, {
gecko: "",
webkit: "-webkit-box-reflect",
presto: "",
trident: "",
status: ""
}, {
gecko: "box-shadow",
webkit: "-webkit-box-shadow",
presto: "box-shadow",
trident: "box-shadow",
status: "WD"
}, {
gecko: "-moz-box-sizing",
webkit: "box-sizing",
presto: "box-sizing",
trident: "",
status: "CR"
}, {
gecko: "",
webkit: "-webkit-box-sizing = box-sizing",
presto: "",
trident: "",
status: ""
}, {
gecko: "",
webkit: "-epub-caption-side = caption-side",
presto: "",
trident: "",
status: ""
}, {
gecko: "",
webkit: "-webkit-color-correction",
presto: "",
trident: "",
status: ""
}, {
gecko: "",
webkit: "-webkit-column-break-after",
presto: "",
trident: "",
status: ""
}, {
gecko: "",
webkit: "-webkit-column-break-before",
presto: "",
trident: "",
status: ""
}, {
gecko: "",
webkit: "-webkit-column-break-inside",
presto: "",
trident: "",
status: ""
}, {
gecko: "-moz-column-count",
webkit: "-webkit-column-count",
presto: "column-count",
trident: "column-count",
status: "CR"
}, {
gecko: "-moz-column-gap",
webkit: "-webkit-column-gap",
presto: "column-gap",
trident: "column-gap",
status: "CR"
}, {
gecko: "-moz-column-rule",
webkit: "-webkit-column-rule",
presto: "column-rule",
trident: "column-rule",
status: "CR"
}, {
gecko: "-moz-column-rule-color",
webkit: "-webkit-column-rule-color",
presto: "column-rule-color",
trident: "column-rule-color",
status: "CR"
}, {
gecko: "-moz-column-rule-style",
webkit: "-webkit-column-rule-style",
presto: "column-rule-style",
trident: "column-rule-style",
status: "CR"
}, {
gecko: "-moz-column-rule-width",
webkit: "-webkit-column-rule-width",
presto: "column-rule-width",
trident: "column-rule-width",
status: "CR"
}, {
gecko: "",
webkit: "-webkit-column-span",
presto: "column-span",
trident: "column-span",
status: "CR"
}, {
gecko: "-moz-column-width",
webkit: "-webkit-column-width",
presto: "column-width",
trident: "column-width",
status: "CR"
}, {
gecko: "",
webkit: "-webkit-columns",
presto: "columns",
trident: "columns",
status: "CR"
}, {
gecko: "",
webkit: "-webkit-dashboard-region",
presto: "-apple-dashboard-region",
trident: "",
status: ""
}, {
gecko: "filter",
webkit: "",
presto: "filter",
trident: "-ms-filter",
status: ""
}, {
gecko: "-moz-float-edge",
webkit: "",
presto: "",
trident: "",
status: "P"
}, {
gecko: "",
webkit: "",
presto: "-o-focus-opacity",
trident: "",
status: ""
}, {
gecko: "-moz-font-feature-settings",
webkit: "",
presto: "",
trident: "",
status: ""
}, {
gecko: "-moz-font-language-override",
webkit: "",
presto: "",
trident: "",
status: ""
}, {
gecko: "",
webkit: "-webkit-font-size-delta",
presto: "",
trident: "",
status: ""
}, {
gecko: "",
webkit: "-webkit-font-smoothing",
presto: "",
trident: "",
status: ""
}, {
gecko: "-moz-force-broken-image-icon",
webkit: "",
presto: "",
trident: "",
status: ""
}, {
gecko: "",
webkit: "",
presto: "",
trident: "-ms-grid-column",
status: "WD"
}, {
gecko: "",
webkit: "",
presto: "",
trident: "-ms-grid-column-align",
status: "WD"
}, {
gecko: "",
webkit: "",
presto: "",
trident: "-ms-grid-column-span",
status: "WD"
}, {
gecko: "",
webkit: "",
presto: "",
trident: "-ms-grid-columns",
status: "WD"
}, {
gecko: "",
webkit: "",
presto: "",
trident: "-ms-grid-layer",
status: "WD"
}, {
gecko: "",
webkit: "",
presto: "",
trident: "-ms-grid-row",
status: "WD"
}, {
gecko: "",
webkit: "",
presto: "",
trident: "-ms-grid-row-align",
status: "WD"
}, {
gecko: "",
webkit: "",
presto: "",
trident: "-ms-grid-row-span",
status: "WD"
}, {
gecko: "",
webkit: "",
presto: "",
trident: "-ms-grid-rows",
status: "WD"
}, {
gecko: "",
webkit: "-webkit-highlight",
presto: "",
trident: "",
status: ""
}, {
gecko: "",
webkit: "-webkit-hyphenate-character",
presto: "",
trident: "",
status: "WD"
}, {
gecko: "",
webkit: "-webkit-hyphenate-limit-after",
presto: "",
trident: "",
status: ""
}, {
gecko: "",
webkit: "-webkit-hyphenate-limit-before",
presto: "",
trident: "",
status: ""
}, {
gecko: "",
webkit: "-webkit-hyphens",
presto: "",
trident: "",
status: "WD"
}, {
gecko: "",
webkit: "-epub-hyphens = -webkit-hyphens",
presto: "",
trident: "",
status: ""
}, {
gecko: "-moz-image-region",
webkit: "",
presto: "",
trident: "",
status: "P"
}, {
gecko: "ime-mode",
webkit: "",
presto: "",
trident: "-ms-ime-mode",
status: ""
}, {
gecko: "",
webkit: "",
presto: "-wap-input-format",
trident: "",
status: ""
}, {
gecko: "",
webkit: "",
presto: "-wap-input-required",
trident: "",
status: ""
}, {
gecko: "",
webkit: "",
presto: "",
trident: "-ms-interpolation-mode",
status: ""
}, {
gecko: "",
webkit: "",
presto: "-xv-interpret-as",
trident: "",
status: ""
}, {
gecko: "",
webkit: "",
presto: "",
trident: "-ms-layout-flow",
status: ""
}, {
gecko: "",
webkit: "",
presto: "",
trident: "-ms-layout-grid",
status: ""
}, {
gecko: "",
webkit: "",
presto: "",
trident: "-ms-layout-grid-char",
status: ""
}, {
gecko: "",
webkit: "",
presto: "",
trident: "-ms-layout-grid-line",
status: ""
}, {
gecko: "",
webkit: "",
presto: "",
trident: "-ms-layout-grid-mode",
status: ""
}, {
gecko: "",
webkit: "",
presto: "",
trident: "-ms-layout-grid-type",
status: ""
}, {
gecko: "",
webkit: "-webkit-line-box-contain",
presto: "",
trident: "",
status: ""
}, {
gecko: "",
webkit: "-webkit-line-break",
presto: "",
trident: "-ms-line-break",
status: ""
}, {
gecko: "",
webkit: "-webkit-line-clamp",
presto: "",
trident: "",
status: ""
}, {
gecko: "",
webkit: "",
presto: "",
trident: "-ms-line-grid-mode",
status: ""
}, {
gecko: "",
webkit: "",
presto: "-o-link",
trident: "",
status: ""
}, {
gecko: "",
webkit: "",
presto: "-o-link-source",
trident: "",
status: ""
}, {
gecko: "",
webkit: "-webkit-locale",
presto: "",
trident: "",
status: ""
}, {
gecko: "",
webkit: "-webkit-logical-height",
presto: "",
trident: "",
status: "ED"
}, {
gecko: "",
webkit: "-webkit-logical-width",
presto: "",
trident: "",
status: "ED"
}, {
gecko: "",
webkit: "-webkit-margin-after",
presto: "",
trident: "",
status: "ED"
}, {
gecko: "",
webkit: "-webkit-margin-after-collapse",
presto: "",
trident: "",
status: ""
}, {
gecko: "",
webkit: "-webkit-margin-before",
presto: "",
trident: "",
status: "ED"
}, {
gecko: "",
webkit: "-webkit-margin-before-collapse",
presto: "",
trident: "",
status: ""
}, {
gecko: "",
webkit: "-webkit-margin-bottom-collapse",
presto: "",
trident: "",
status: ""
}, {
gecko: "",
webkit: "-webkit-margin-collapse",
presto: "",
trident: "",
status: ""
}, {
gecko: "-moz-margin-end",
webkit: "-webkit-margin-end",
presto: "",
trident: "",
status: "ED"
}, {
gecko: "-moz-margin-start",
webkit: "-webkit-margin-start",
presto: "",
trident: "",
status: "ED"
}, {
gecko: "",
webkit: "-webkit-margin-top-collapse",
presto: "",
trident: "",
status: ""
}, {
gecko: "",
webkit: "-webkit-marquee",
presto: "",
trident: "",
status: ""
}, {
gecko: "",
webkit: "",
presto: "-wap-marquee-dir",
trident: "",
status: ""
}, {
gecko: "",
webkit: "-webkit-marquee-direction",
presto: "",
trident: "",
status: "WD"
}, {
gecko: "",
webkit: "-webkit-marquee-increment",
presto: "",
trident: "",
status: ""
}, {
gecko: "",
webkit: "",
presto: "-wap-marquee-loop",
trident: "",
status: "WD"
}, {
gecko: "",
webkit: "-webkit-marquee-repetition",
presto: "",
trident: "",
status: ""
}, {
gecko: "",
webkit: "-webkit-marquee-speed",
presto: "-wap-marquee-speed",
trident: "",
status: "WD"
}, {
gecko: "",
webkit: "-webkit-marquee-style",
presto: "-wap-marquee-style",
trident: "",
status: "WD"
}, {
gecko: "mask",
webkit: "-webkit-mask",
presto: "mask",
trident: "",
status: ""
}, {
gecko: "",
webkit: "-webkit-mask-attachment",
presto: "",
trident: "",
status: ""
}, {
gecko: "",
webkit: "-webkit-mask-box-image",
presto: "",
trident: "",
status: ""
}, {
gecko: "",
webkit: "-webkit-mask-clip",
presto: "",
trident: "",
status: ""
}, {
gecko: "",
webkit: "-webkit-mask-composite",
presto: "",
trident: "",
status: ""
}, {
gecko: "",
webkit: "-webkit-mask-image",
presto: "",
trident: "",
status: ""
}, {
gecko: "",
webkit: "-webkit-mask-origin",
presto: "",
trident: "",
status: ""
}, {
gecko: "",
webkit: "-webkit-mask-position",
presto: "",
trident: "",
status: ""
}, {
gecko: "",
webkit: "-webkit-mask-position-x",
presto: "",
trident: "",
status: ""
}, {
gecko: "",
webkit: "-webkit-mask-position-y",
presto: "",
trident: "",
status: ""
}, {
gecko: "",
webkit: "-webkit-mask-repeat",
presto: "",
trident: "",
status: ""
}, {
gecko: "",
webkit: "-webkit-mask-repeat-x",
presto: "",
trident: "",
status: ""
}, {
gecko: "",
webkit: "-webkit-mask-repeat-y",
presto: "",
trident: "",
status: ""
}, {
gecko: "",
webkit: "-webkit-mask-size",
presto: "",
trident: "",
status: ""
}, {
gecko: "",
webkit: "-webkit-match-nearest-mail-blockquote-color",
presto: "",
trident: "",
status: ""
}, {
gecko: "",
webkit: "-webkit-max-logical-height",
presto: "",
trident: "",
status: ""
}, {
gecko: "",
webkit: "-webkit-max-logical-width",
presto: "",
trident: "",
status: "ED"
}, {
gecko: "",
webkit: "-webkit-min-logical-height",
presto: "",
trident: "",
status: "ED"
}, {
gecko: "",
webkit: "-webkit-min-logical-width",
presto: "",
trident: "",
status: "ED"
}, {
gecko: "",
webkit: "",
presto: "-o-mini-fold",
trident: "",
status: ""
}, {
gecko: "",
webkit: "-webkit-nbsp-mode",
presto: "",
trident: "",
status: "P"
}, {
gecko: "",
webkit: "",
presto: "-o-object-fit",
trident: "",
status: "ED"
}, {
gecko: "",
webkit: "",
presto: "-o-object-position",
trident: "",
status: "ED"
}, {
gecko: "opacity",
webkit: "-webkit-opacity",
presto: "opacity",
trident: "opacity",
status: "WD"
}, {
gecko: "",
webkit: "-webkit-opacity = opacity",
presto: "",
trident: "",
status: ""
}, {
gecko: "-moz-outline-radius",
webkit: "",
presto: "",
trident: "",
status: "P"
}, {
gecko: "-moz-outline-radius-bottomleft",
webkit: "",
presto: "",
trident: "",
status: "P"
}, {
gecko: "-moz-outline-radius-bottomright",
webkit: "",
presto: "",
trident: "",
status: "P"
}, {
gecko: "-moz-outline-radius-topleft",
webkit: "",
presto: "",
trident: "",
status: "P"
}, {
gecko: "-moz-outline-radius-topright",
webkit: "",
presto: "",
trident: "",
status: "P"
}, {
gecko: "overflow-x",
webkit: "overflow-x",
presto: "overflow-x",
trident: "-ms-overflow-x",
status: "WD"
}, {
gecko: "overflow-y",
webkit: "overflow-y",
presto: "overflow-y",
trident: "-ms-overflow-y",
status: "WD"
}, {
gecko: "",
webkit: "-webkit-padding-after",
presto: "",
trident: "",
status: "ED"
}, {
gecko: "",
webkit: "-webkit-padding-before",
presto: "",
trident: "",
status: "ED"
}, {
gecko: "-moz-padding-end",
webkit: "-webkit-padding-end",
presto: "",
trident: "",
status: "ED"
}, {
gecko: "-moz-padding-start",
webkit: "-webkit-padding-start",
presto: "",
trident: "",
status: "ED"
}, {
gecko: "",
webkit: "-webkit-perspective",
presto: "",
trident: "",
status: "WD"
}, {
gecko: "",
webkit: "-webkit-perspective-origin",
presto: "",
trident: "",
status: "WD"
}, {
gecko: "",
webkit: "-webkit-perspective-origin-x",
presto: "",
trident: "",
status: ""
}, {
gecko: "",
webkit: "-webkit-perspective-origin-y",
presto: "",
trident: "",
status: ""
}, {
gecko: "",
webkit: "",
presto: "-xv-phonemes",
trident: "",
status: ""
}, {
gecko: "",
webkit: "-webkit-rtl-ordering",
presto: "",
trident: "",
status: "P"
}, {
gecko: "-moz-script-level",
webkit: "",
presto: "",
trident: "",
status: ""
}, {
gecko: "-moz-script-min-size",
webkit: "",
presto: "",
trident: "",
status: ""
}, {
gecko: "-moz-script-size-multiplier",
webkit: "",
presto: "",
trident: "",
status: ""
}, {
gecko: "",
webkit: "",
presto: "scrollbar-3dlight-color",
trident: "-ms-scrollbar-3dlight-color",
status: "P"
}, {
gecko: "",
webkit: "",
presto: "scrollbar-arrow-color",
trident: "-ms-scrollbar-arrow-color",
status: "P"
}, {
gecko: "",
webkit: "",
presto: "scrollbar-base-color",
trident: "-ms-scrollbar-base-color",
status: "P"
}, {
gecko: "",
webkit: "",
presto: "scrollbar-darkshadow-color",
trident: "-ms-scrollbar-darkshadow-color",
status: "P"
}, {
gecko: "",
webkit: "",
presto: "scrollbar-face-color",
trident: "-ms-scrollbar-face-color",
status: "P"
}, {
gecko: "",
webkit: "",
presto: "scrollbar-highlight-color",
trident: "-ms-scrollbar-highlight-color",
status: "P"
}, {
gecko: "",
webkit: "",
presto: "scrollbar-shadow-color",
trident: "-ms-scrollbar-shadow-color",
status: "P"
}, {
gecko: "",
webkit: "",
presto: "scrollbar-track-color",
trident: "-ms-scrollbar-track-color",
status: "P"
}, {
gecko: "-moz-stack-sizing",
webkit: "",
presto: "",
trident: "",
status: "P"
}, {
gecko: "",
webkit: "-webkit-svg-shadow",
presto: "",
trident: "",
status: ""
}, {
gecko: "-moz-tab-size",
webkit: "",
presto: "-o-tab-size",
trident: "",
status: ""
}, {
gecko: "",
webkit: "",
presto: "-o-table-baseline",
trident: "",
status: ""
}, {
gecko: "",
webkit: "-webkit-tap-highlight-color",
presto: "",
trident: "",
status: "P"
}, {
gecko: "",
webkit: "",
presto: "",
trident: "-ms-text-align-last",
status: "WD"
}, {
gecko: "",
webkit: "",
presto: "",
trident: "-ms-text-autospace",
status: "WD"
}, {
gecko: "-moz-text-blink",
webkit: "",
presto: "",
trident: "",
status: ""
}, {
gecko: "",
webkit: "-webkit-text-combine",
presto: "",
trident: "",
status: ""
}, {
gecko: "",
webkit: "-epub-text-combine = -webkit-text-combine",
presto: "",
trident: "",
status: ""
}, {
gecko: "-moz-text-decoration-color",
webkit: "",
presto: "",
trident: "",
status: ""
}, {
gecko: "-moz-text-decoration-line",
webkit: "",
presto: "",
trident: "",
status: ""
}, {
gecko: "-moz-text-decoration-style",
webkit: "",
presto: "",
trident: "",
status: ""
}, {
gecko: "",
webkit: "-webkit-text-decorations-in-effect",
presto: "",
trident: "",
status: ""
}, {
gecko: "",
webkit: "-webkit-text-emphasis",
presto: "",
trident: "",
status: ""
}, {
gecko: "",
webkit: "-epub-text-emphasis = -webkit-text-emphasis",
presto: "",
trident: "",
status: ""
}, {
gecko: "",
webkit: "-webkit-text-emphasis-color",
presto: "",
trident: "",
status: ""
}, {
gecko: "",
webkit: "-epub-text-emphasis-color = -webkit-text-emphasis-color",
presto: "",
trident: "",
status: ""
}, {
gecko: "",
webkit: "-webkit-text-emphasis-position",
presto: "",
trident: "",
status: ""
}, {
gecko: "",
webkit: "-webkit-text-emphasis-style",
presto: "",
trident: "",
status: ""
}, {
gecko: "",
webkit: "-epub-text-emphasis-style = -webkit-text-emphasis-style",
presto: "",
trident: "",
status: ""
}, {
gecko: "",
webkit: "-webkit-text-fill-color",
presto: "",
trident: "",
status: "P"
}, {
gecko: "",
webkit: "",
presto: "",
trident: "-ms-text-justify",
status: "WD"
}, {
gecko: "",
webkit: "",
presto: "",
trident: "-ms-text-kashida-space",
status: "P"
}, {
gecko: "",
webkit: "-webkit-text-orientation",
presto: "",
trident: "",
status: ""
}, {
gecko: "",
webkit: "-epub-text-orientation = -webkit-text-orientation",
presto: "",
trident: "",
status: ""
}, {
gecko: "",
webkit: "text-overflow",
presto: "text-overflow",
trident: "-ms-text-overflow",
status: "WD"
}, {
gecko: "",
webkit: "-webkit-text-security",
presto: "",
trident: "",
status: "P"
}, {
gecko: "",
webkit: "-webkit-text-size-adjust",
presto: "",
trident: "-ms-text-size-adjust",
status: ""
}, {
gecko: "",
webkit: "-webkit-text-stroke",
presto: "",
trident: "",
status: "P"
}, {
gecko: "",
webkit: "-webkit-text-stroke-color",
presto: "",
trident: "",
status: "P"
}, {
gecko: "",
webkit: "-webkit-text-stroke-width",
presto: "",
trident: "",
status: "P"
}, {
gecko: "",
webkit: "-epub-text-transform = text-transform",
presto: "",
trident: "",
status: ""
}, {
gecko: "",
webkit: "",
presto: "",
trident: "-ms-text-underline-position",
status: "P"
}, {
gecko: "",
webkit: "-webkit-touch-callout",
presto: "",
trident: "",
status: "P"
}, {
gecko: "-moz-transform",
webkit: "-webkit-transform",
presto: "-o-transform",
trident: "-ms-transform",
status: "WD"
}, {
gecko: "-moz-transform-origin",
webkit: "-webkit-transform-origin",
presto: "-o-transform-origin",
trident: "-ms-transform-origin",
status: "WD"
}, {
gecko: "",
webkit: "-webkit-transform-origin-x",
presto: "",
trident: "",
status: "P"
}, {
gecko: "",
webkit: "-webkit-transform-origin-y",
presto: "",
trident: "",
status: "P"
}, {
gecko: "",
webkit: "-webkit-transform-origin-z",
presto: "",
trident: "",
status: "P"
}, {
gecko: "",
webkit: "-webkit-transform-style",
presto: "",
trident: "",
status: "WD"
}, {
gecko: "-moz-transition",
webkit: "-webkit-transition",
presto: "-o-transition",
trident: "",
status: "WD"
}, {
gecko: "-moz-transition-delay",
webkit: "-webkit-transition-delay",
presto: "-o-transition-delay",
trident: "",
status: "WD"
}, {
gecko: "-moz-transition-duration",
webkit: "-webkit-transition-duration",
presto: "-o-transition-duration",
trident: "",
status: "WD"
}, {
gecko: "-moz-transition-property",
webkit: "-webkit-transition-property",
presto: "-o-transition-property",
trident: "",
status: "WD"
}, {
gecko: "-moz-transition-timing-function",
webkit: "-webkit-transition-timing-function",
presto: "-o-transition-timing-function",
trident: "",
status: "WD"
}, {
gecko: "",
webkit: "-webkit-user-drag",
presto: "",
trident: "",
status: "P"
}, {
gecko: "-moz-user-focus",
webkit: "",
presto: "",
trident: "",
status: "P"
}, {
gecko: "-moz-user-input",
webkit: "",
presto: "",
trident: "",
status: "P"
}, {
gecko: "-moz-user-modify",
webkit: "-webkit-user-modify",
presto: "",
trident: "",
status: "P"
}, {
gecko: "-moz-user-select",
webkit: "-webkit-user-select",
presto: "",
trident: "",
status: "P"
}, {
gecko: "",
webkit: "",
presto: "-xv-voice-balance",
trident: "",
status: ""
}, {
gecko: "",
webkit: "",
presto: "-xv-voice-duration",
trident: "",
status: ""
}, {
gecko: "",
webkit: "",
presto: "-xv-voice-pitch",
trident: "",
status: ""
}, {
gecko: "",
webkit: "",
presto: "-xv-voice-pitch-range",
trident: "",
status: ""
}, {
gecko: "",
webkit: "",
presto: "-xv-voice-rate",
trident: "",
status: ""
}, {
gecko: "",
webkit: "",
presto: "-xv-voice-stress",
trident: "",
status: ""
}, {
gecko: "",
webkit: "",
presto: "-xv-voice-volume",
trident: "",
status: ""
}, {
gecko: "-moz-window-shadow",
webkit: "",
presto: "",
trident: "",
status: "P"
}, {
gecko: "",
webkit: "word-break",
presto: "",
trident: "-ms-word-break",
status: "WD"
}, {
gecko: "",
webkit: "-epub-word-break = word-break",
presto: "",
trident: "",
status: ""
}, {
gecko: "word-wrap",
webkit: "word-wrap",
presto: "word-wrap",
trident: "-ms-word-wrap",
status: "WD"
}, {
gecko: "",
webkit: "-webkit-writing-mode",
presto: "writing-mode",
trident: "-ms-writing-mode",
status: "ED"
}, {
gecko: "",
webkit: "-epub-writing-mode = -webkit-writing-mode",
presto: "",
trident: "",
status: ""
}, {
gecko: "",
webkit: "zoom",
presto: "",
trident: "-ms-zoom",
status: ""
}]
}, kCSS_PREFIXED_VALUE = [{
gecko: "-moz-box",
webkit: "-moz-box",
presto: "",
trident: "",
generic: "box"
}],
CssInspector = {
mVENDOR_PREFIXES: null,
kEXPORTS_FOR_GECKO: !0,
kEXPORTS_FOR_WEBKIT: !0,
kEXPORTS_FOR_PRESTO: !0,
kEXPORTS_FOR_TRIDENT: !0,
cleanPrefixes: function () {
this.mVENDOR_PREFIXES = null
},
prefixesForProperty: function (e) {
if (!this.mVENDOR_PREFIXES) {
this.mVENDOR_PREFIXES = {};
for (var t = 0; t < kCSS_VENDOR_PREFIXES.properties.length; t++) {
var n = kCSS_VENDOR_PREFIXES.properties[t];
if (n.gecko && (n.webkit || n.presto || n.trident)) {
var i = {};
this.kEXPORTS_FOR_GECKO && (i[n.gecko] = !0), this.kEXPORTS_FOR_WEBKIT && n.webkit && (i[n.webkit] = !0), this.kEXPORTS_FOR_PRESTO && n.presto && (i[n.presto] = !0), this.kEXPORTS_FOR_TRIDENT && n.trident && (i[n.trident] = !0), this.mVENDOR_PREFIXES[n.gecko] = [];
for (var r in i) this.mVENDOR_PREFIXES[n.gecko].push(r)
}
}
}
return e in this.mVENDOR_PREFIXES ? this.mVENDOR_PREFIXES[e].sort() : null
},
parseColorStop: function (e, t) {
var n = e.parseColor(t),
i = "";
return n ? (t = e.getToken(!0, !0), (t.isPercentage() || t.isDimensionOfUnit("cm") || t.isDimensionOfUnit("mm") || t.isDimensionOfUnit("in") || t.isDimensionOfUnit("pc") || t.isDimensionOfUnit("px") || t.isDimensionOfUnit("em") || t.isDimensionOfUnit("ex") || t.isDimensionOfUnit("pt")) && (i = t.value, t = e.getToken(!0, !0)), {
color: n,
position: i
}) : null
},
parseGradient: function (e, t) {
var n = {
isRepeating: !1
};
if (t.isNotNull() && (t.isFunction("-moz-linear-gradient(") || t.isFunction("-moz-radial-gradient(") || t.isFunction("-moz-repeating-linear-gradient(") || t.isFunction("-moz-repeating-radial-gradient("))) {
(t.isFunction("-moz-radial-gradient(") || t.isFunction("-moz-repeating-radial-gradient(")) && (n.isRadial = !0), (t.isFunction("-moz-repeating-linear-gradient(") || t.isFunction("-moz-repeating-radial-gradient(")) && (n.isRepeating = !0), t = e.getToken(!0, !0);
var i = !1,
r = !1,
s = !1;
if (t.isAngle() && (n.angle = t.value, i = !0, s = !0, t = e.getToken(!0, !0)), (t.isLength() || t.isIdent("top") || t.isIdent("center") || t.isIdent("bottom") || t.isIdent("left") || t.isIdent("right")) && (i = !0, (t.isLength() || t.isIdent("left") || t.isIdent("right")) && (r = !0), n.position = t.value, t = e.getToken(!0, !0)), i) {
if (!s && t.isAngle() ? (n.angle = t.value, s = !0, t = e.getToken(!0, !0)) : (t.isLength() || r && (t.isIdent("top") || t.isIdent("center") || t.isIdent("bottom")) || !r && (t.isLength() || t.isIdent("top") || t.isIdent("center") || t.isIdent("bottom") || t.isIdent("left") || t.isIdent("right"))) && (n.position = "position" in n ? n.position + " " : "", n.position += t.value, t = e.getToken(!0, !0)), !s && t.isAngle() && (n.angle = t.value, s = !0, t = e.getToken(!0, !0)), !t.isSymbol(",")) return null;
t = e.getToken(!0, !0)
}
if (n.isRadial) {
if ((t.isIdent("circle") || t.isIdent("ellipse")) && (n.shape = t.value, t = e.getToken(!0, !0)), (t.isIdent("closest-side") || t.isIdent("closest-corner") || t.isIdent("farthest-side") || t.isIdent("farthest-corner") || t.isIdent("contain") || t.isIdent("cover")) && (n.size = t.value, t = e.getToken(!0, !0)), "shape" in n || !t.isIdent("circle") && !t.isIdent("ellipse") || (n.shape = t.value, t = e.getToken(!0, !0)), ("shape" in n || "size" in n) && !t.isSymbol(",")) return null;
("shape" in n || "size" in n) && (t = e.getToken(!0, !0))
}
var o = this.parseColorStop(e, t);
if (!o) return null;
if (t = e.currentToken(), !t.isSymbol(",")) return null;
t = e.getToken(!0, !0);
var a = this.parseColorStop(e, t);
if (!a) return null;
for (t = e.currentToken(), t.isSymbol(",") && (t = e.getToken(!0, !0)), n.stops = [o, a]; !t.isSymbol(")");) {
var l = this.parseColorStop(e, t);
if (!l) return null;
if (t = e.currentToken(), !t.isSymbol(")") && !t.isSymbol(",")) return null;
t.isSymbol(",") && (t = e.getToken(!0, !0)), n.stops.push(l)
}
return n
}
return null
},
parseBoxShadows: function (e) {
var t = new CSSParser;
t._init(), t.mPreserveWS = !1, t.mPreserveComments = !1, t.mPreservedTokens = [], t.mScanner.init(e);
for (var n = [], i = t.getToken(!0, !0), r = "", s = "0px", o = "0px", a = "0px", l = "0px", u = !1; i.isNotNull();)
if (i.isIdent("none")) n.push({
none: !0
}), i = t.getToken(!0, !0);
else {
if (i.isIdent("inset") && (u = !0, i = t.getToken(!0, !0)), !(i.isPercentage() || i.isDimensionOfUnit("cm") || i.isDimensionOfUnit("mm") || i.isDimensionOfUnit("in") || i.isDimensionOfUnit("pc") || i.isDimensionOfUnit("px") || i.isDimensionOfUnit("em") || i.isDimensionOfUnit("ex") || i.isDimensionOfUnit("pt"))) return [];
var o = i.value;
if (i = t.getToken(!0, !0), !u && i.isIdent("inset") && (u = !0, i = t.getToken(!0, !0)), !(i.isPercentage() || i.isDimensionOfUnit("cm") || i.isDimensionOfUnit("mm") || i.isDimensionOfUnit("in") || i.isDimensionOfUnit("pc") || i.isDimensionOfUnit("px") || i.isDimensionOfUnit("em") || i.isDimensionOfUnit("ex") || i.isDimensionOfUnit("pt"))) return [];
var o = i.value;
if (i = t.getToken(!0, !0), !u && i.isIdent("inset") && (u = !0, i = t.getToken(!0, !0)), i.isPercentage() || i.isDimensionOfUnit("cm") || i.isDimensionOfUnit("mm") || i.isDimensionOfUnit("in") || i.isDimensionOfUnit("pc") || i.isDimensionOfUnit("px") || i.isDimensionOfUnit("em") || i.isDimensionOfUnit("ex") || i.isDimensionOfUnit("pt")) {
var s = i.value;
i = t.getToken(!0, !0)
}
if (!u && i.isIdent("inset") && (u = !0, i = t.getToken(!0, !0)), i.isPercentage() || i.isDimensionOfUnit("cm") || i.isDimensionOfUnit("mm") || i.isDimensionOfUnit("in") || i.isDimensionOfUnit("pc") || i.isDimensionOfUnit("px") || i.isDimensionOfUnit("em") || i.isDimensionOfUnit("ex") || i.isDimensionOfUnit("pt")) {
var l = i.value;
i = t.getToken(!0, !0)
}
if (!u && i.isIdent("inset") && (u = !0, i = t.getToken(!0, !0)), i.isFunction("rgb(") || i.isFunction("rgba(") || i.isFunction("hsl(") || i.isFunction("hsla(") || i.isSymbol("#") || i.isIdent()) {
var r = t.parseColor(i);
i = t.getToken(!0, !0)
}
if (!u && i.isIdent("inset") && (u = !0, i = t.getToken(!0, !0)), n.push({
none: !1,
color: r,
offsetX: o,
offsetY: a,
blurRadius: s,
spreadRadius: l
}), !i.isSymbol(",")) return i.isNotNull() ? [] : n;
u = !1, r = "", s = "0px", l = "0px", o = "0px", a = "0px", i = t.getToken(!0, !0)
}
return n
},
parseTextShadows: function (e) {
var t = new CSSParser;
t._init(), t.mPreserveWS = !1, t.mPreserveComments = !1, t.mPreservedTokens = [], t.mScanner.init(e);
for (var n = [], i = t.getToken(!0, !0), r = "", s = "0px", o = "0px", a = "0px"; i.isNotNull();)
if (i.isIdent("none")) n.push({
none: !0
}), i = t.getToken(!0, !0);
else {
if (i.isFunction("rgb(") || i.isFunction("rgba(") || i.isFunction("hsl(") || i.isFunction("hsla(") || i.isSymbol("#") || i.isIdent()) {
var r = t.parseColor(i);
i = t.getToken(!0, !0)
}
if (!(i.isPercentage() || i.isDimensionOfUnit("cm") || i.isDimensionOfUnit("mm") || i.isDimensionOfUnit("in") || i.isDimensionOfUnit("pc") || i.isDimensionOfUnit("px") || i.isDimensionOfUnit("em") || i.isDimensionOfUnit("ex") || i.isDimensionOfUnit("pt"))) return [];
var o = i.value;
if (i = t.getToken(!0, !0), !(i.isPercentage() || i.isDimensionOfUnit("cm") || i.isDimensionOfUnit("mm") || i.isDimensionOfUnit("in") || i.isDimensionOfUnit("pc") || i.isDimensionOfUnit("px") || i.isDimensionOfUnit("em") || i.isDimensionOfUnit("ex") || i.isDimensionOfUnit("pt"))) return [];
var a = i.value;
if (i = t.getToken(!0, !0), i.isPercentage() || i.isDimensionOfUnit("cm") || i.isDimensionOfUnit("mm") || i.isDimensionOfUnit("in") || i.isDimensionOfUnit("pc") || i.isDimensionOfUnit("px") || i.isDimensionOfUnit("em") || i.isDimensionOfUnit("ex") || i.isDimensionOfUnit("pt")) {
var s = i.value;
i = t.getToken(!0, !0)
}
if (!r && (i.isFunction("rgb(") || i.isFunction("rgba(") || i.isFunction("hsl(") || i.isFunction("hsla(") || i.isSymbol("#") || i.isIdent())) {
var r = t.parseColor(i);
i = t.getToken(!0, !0)
}
if (n.push({
none: !1,
color: r,
offsetX: o,
offsetY: a,
blurRadius: s
}), !i.isSymbol(",")) return i.isNotNull() ? [] : n;
r = "", s = "0px", o = "0px", a = "0px", i = t.getToken(!0, !0)
}
return n
},
parseBackgroundImages: function (e) {
var t = new CSSParser;
t._init(), t.mPreserveWS = !1, t.mPreserveComments = !1, t.mPreservedTokens = [], t.mScanner.init(e);
for (var n = [], i = t.getToken(!0, !0); i.isNotNull();) {
if (i.isFunction("url(")) {
i = t.getToken(!0, !0);
var r = t.parseURL(i);
n.push({
type: "image",
value: "url(" + r
}), i = t.getToken(!0, !0)
} else {
if (!(i.isFunction("-moz-linear-gradient(") || i.isFunction("-moz-radial-gradient(") || i.isFunction("-moz-repeating-linear-gradient(") || i.isFunction("-moz-repeating-radial-gradient("))) return null;
var s = this.parseGradient(t, i);
n.push({
type: s.isRadial ? "radial-gradient" : "linear-gradient",
value: s
}), i = t.getToken(!0, !0)
} if (i.isSymbol(",") && (i = t.getToken(!0, !0), !i.isNotNull())) return null
}
return n
},
serializeGradient: function (e) {
var t = e.isRadial ? e.isRepeating ? "-moz-repeating-radial-gradient(" : "-moz-radial-gradient(" : e.isRepeating ? "-moz-repeating-linear-gradient(" : "-moz-linear-gradient(";
(e.angle || e.position) && (t += (e.angle ? e.angle + " " : "") + (e.position ? e.position : "") + ", "), e.isRadial && (e.shape || e.size) && (t += (e.shape ? e.shape : "") + " " + (e.size ? e.size : "") + ", ");
for (var n = 0; n < e.stops.length; n++) {
var i = e.stops[n];
t += i.color + (i.position ? " " + i.position : ""), n != e.stops.length - 1 && (t += ", ")
}
return t += ")"
},
parseBorderImage: function (e) {
var t = new CSSParser;
t._init(), t.mPreserveWS = !1, t.mPreserveComments = !1, t.mPreservedTokens = [], t.mScanner.init(e);
var n = {
url: "",
offsets: [],
widths: [],
sizes: []
}, i = t.getToken(!0, !0);
if (!i.isFunction("url(")) return null;
i = t.getToken(!0, !0);
var r = t.parseURL(i);
if (!r) return null;
if (n.url = r.substr(0, r.length - 1).trim(), ('"' == n.url[0] && '"' == n.url[n.url.length - 1] || "'" == n.url[0] && "'" == n.url[n.url.length - 1]) && (n.url = n.url.substr(1, n.url.length - 2)), i = t.getToken(!0, !0), !i.isNumber() && !i.isPercentage()) return null;
n.offsets.push(i.value);
var s;
for (s = 0; 3 > s && (i = t.getToken(!0, !0), i.isNumber() || i.isPercentage()); s++) n.offsets.push(i.value);
if (3 == s && (i = t.getToken(!0, !0)), i.isSymbol("/")) {
if (i = t.getToken(!0, !0), !(i.isDimension() || i.isNumber("0") || i.isIdent() && i.value in t.kBORDER_WIDTH_NAMES)) return null;
n.widths.push(i.value);
for (var s = 0; 3 > s && (i = t.getToken(!0, !0), i.isDimension() || i.isNumber("0") || i.isIdent() && i.value in t.kBORDER_WIDTH_NAMES); s++) n.widths.push(i.value);
3 == s && (i = t.getToken(!0, !0))
}
for (var s = 0; 2 > s; s++) {
if (!(i.isIdent("stretch") || i.isIdent("repeat") || i.isIdent("round"))) return i.isNotNull() ? null : n;
n.sizes.push(i.value), i = t.getToken(!0, !0)
}
return i.isNotNull() ? null : n
},
parseMediaQuery: function (e) {
var t = {
width: !0,
"min-width": !0,
"max-width": !0,
height: !0,
"min-height": !0,
"max-height": !0,
"device-width": !0,
"min-device-width": !0,
"max-device-width": !0,
"device-height": !0,
"min-device-height": !0,
"max-device-height": !0,
orientation: !0,
"aspect-ratio": !0,
"min-aspect-ratio": !0,
"max-aspect-ratio": !0,
"device-aspect-ratio": !0,
"min-device-aspect-ratio": !0,
"max-device-aspect-ratio": !0,
color: !0,
"min-color": !0,
"max-color": !0,
"color-index": !0,
"min-color-index": !0,
"max-color-index": !0,
monochrome: !0,
"min-monochrome": !0,
"max-monochrome": !0,
resolution: !0,
"min-resolution": !0,
"max-resolution": !0,
scan: !0,
grid: !0
}, n = new CSSParser;
n._init(), n.mPreserveWS = !1, n.mPreserveComments = !1, n.mPreservedTokens = [], n.mScanner.init(e);
var i = {
amplifier: "",
medium: "",
constraints: []
}, r = n.getToken(!0, !0);
if (r.isIdent("all") || r.isIdent("aural") || r.isIdent("braille") || r.isIdent("handheld") || r.isIdent("print") || r.isIdent("projection") || r.isIdent("screen") || r.isIdent("tty") || r.isIdent("tv")) i.medium = r.value, r = n.getToken(!0, !0);
else if (r.isIdent("not") || r.isIdent("only")) {
if (i.amplifier = r.value, r = n.getToken(!0, !0), !(r.isIdent("all") || r.isIdent("aural") || r.isIdent("braille") || r.isIdent("handheld") || r.isIdent("print") || r.isIdent("projection") || r.isIdent("screen") || r.isIdent("tty") || r.isIdent("tv"))) return null;
i.medium = r.value, r = n.getToken(!0, !0)
}
if (i.medium) {
if (!r.isNotNull()) return i;
if (!r.isIdent("and")) return null;
r = n.getToken(!0, !0)
}
for (; r.isSymbol("(");) {
if (r = n.getToken(!0, !0), !(r.isIdent() && r.value in t)) return null;
var s = r.value;
if (r = n.getToken(!0, !0), r.isSymbol(":")) {
r = n.getToken(!0, !0);
for (var o = []; !r.isSymbol(")");) o.push(r.value), r = n.getToken(!0, !0);
if (!r.isSymbol(")")) return null;
if (i.constraints.push({
constraint: s,
value: o
}), r = n.getToken(!0, !0), !r.isNotNull()) return i;
if (!r.isIdent("and")) return null;
r = n.getToken(!0, !0)
} else {
if (!r.isSymbol(")")) return null;
if (i.constraints.push({
constraint: s,
value: null
}), r = n.getToken(!0, !0), !r.isNotNull()) return i;
if (!r.isIdent("and")) return null;
r = n.getToken(!0, !0)
}
}
return i
}
}, CSS_ESCAPE = "\\",
IS_HEX_DIGIT = 1,
START_IDENT = 2,
IS_IDENT = 4,
IS_WHITESPACE = 8,
W = IS_WHITESPACE,
I = IS_IDENT,
S = START_IDENT,
SI = IS_IDENT | START_IDENT,
XI = IS_IDENT | IS_HEX_DIGIT,
XSI = IS_IDENT | START_IDENT | IS_HEX_DIGIT;
CSSScanner.prototype = {
kLexTable: [0, 0, 0, 0, 0, 0, 0, 0, 0, W, W, 0, W, W, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, W, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, I, 0, 0, XI, XI, XI, XI, XI, XI, XI, XI, XI, XI, 0, 0, 0, 0, 0, 0, 0, XSI, XSI, XSI, XSI, XSI, XSI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, 0, S, 0, 0, SI, 0, XSI, XSI, XSI, XSI, XSI, XSI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI],
kHexValues: {
0: 0,
1: 1,
2: 2,
3: 3,
4: 4,
5: 5,
6: 6,
7: 7,
8: 8,
9: 9,
a: 10,
b: 11,
c: 12,
d: 13,
e: 14,
f: 15
},
mString: "",
mPos: 0,
mPreservedPos: [],
init: function (e) {
this.mString = e, this.mPos = 0, this.mPreservedPos = []
},
getCurrentPos: function () {
return this.mPos
},
getAlreadyScanned: function () {
return this.mString.substr(0, this.mPos)
},
preserveState: function () {
this.mPreservedPos.push(this.mPos)
},
restoreState: function () {
this.mPreservedPos.length && (this.mPos = this.mPreservedPos.pop())
},
forgetState: function () {
this.mPreservedPos.length && this.mPreservedPos.pop()
},
read: function () {
return this.mPos < this.mString.length ? this.mString.charAt(this.mPos++) : -1
},
peek: function () {
return this.mPos < this.mString.length ? this.mString.charAt(this.mPos) : -1
},
isHexDigit: function (e) {
var t = e.charCodeAt(0);
return 256 > t && 0 != (this.kLexTable[t] & IS_HEX_DIGIT)
},
isIdentStart: function (e) {
var t = e.charCodeAt(0);
return t >= 256 || 0 != (this.kLexTable[t] & START_IDENT)
},
startsWithIdent: function (e, t) {
e.charCodeAt(0);
return this.isIdentStart(e) || "-" == e && this.isIdentStart(t)
},
isIdent: function (e) {
var t = e.charCodeAt(0);
return t >= 256 || 0 != (this.kLexTable[t] & IS_IDENT)
},
isSymbol: function (e) {
var t = e.charCodeAt(0);
return 1 != (this.kLexTable[t] & IS_IDENT)
},
pushback: function () {
this.mPos--
},
nextHexValue: function () {
var e = this.read();
if (-1 == e || !this.isHexDigit(e)) return new jscsspToken(jscsspToken.NULL_TYPE, null);
var t = e;
for (e = this.read(); - 1 != e && this.isHexDigit(e);) t += e, e = this.read();
return -1 != e && this.pushback(), new jscsspToken(jscsspToken.HEX_TYPE, t)
},
gatherEscape: function () {
var e = this.peek();
if (-1 == e) return "";
if (this.isHexDigit(e)) {
for (var t = 0, n = 0; 6 > n; n++) {
if (e = this.read(), !this.isHexDigit(e)) {
if (this.isHexDigit(e) || this.isWhiteSpace(e)) break;
this.pushback();
break
}
t = 16 * t + this.kHexValues[e.toLowerCase()]
}
return 6 == n && (e = this.peek(), this.isWhiteSpace(e) && this.read()), String.fromCharCode(t)
}
return e = this.read(), "\n" != e ? e : ""
},
gatherIdent: function (e) {
var t = "";
if (t += e == CSS_ESCAPE ? this.gatherEscape() : e, e = this.read(), this.mMediaQueryMode)
for (; - 1 != e && "{" != e && "," != e;) t += e, e = this.read();
else
for (; - 1 != e && (this.isIdent(e) || e == CSS_ESCAPE);) t += e == CSS_ESCAPE ? this.gatherEscape() : e, e = this.read();
return -1 != e && this.pushback(), this.mMediaQueryMode = !1, t
},
parseIdent: function (e) {
var t = this.gatherIdent(e),
n = this.peek();
return "(" == n ? (t += this.read(), new jscsspToken(jscsspToken.FUNCTION_TYPE, t)) : new jscsspToken(jscsspToken.IDENT_TYPE, t)
},
isDigit: function (e) {
return e >= "0" && "9" >= e
},
parseComment: function (e) {
for (var t = e; - 1 != (e = this.read());)
if (t += e, "*" == e) {
if (e = this.read(), -1 == e) break;
if ("/" == e) {
t += e;
break
}
this.pushback()
}
return new jscsspToken(jscsspToken.COMMENT_TYPE, t)
},
parseNumber: function (e) {
for (var t = e, n = !1; - 1 != (e = this.read());)
if ("." == e) {
if (n) break;
t += e, n = !0
} else {
if (!this.isDigit(e)) break;
t += e
}
if (-1 != e && this.startsWithIdent(e, this.peek())) {
var i = this.gatherIdent(e);
return t += i, new jscsspToken(jscsspToken.DIMENSION_TYPE, t, i)
}
return "%" == e ? (t += "%", new jscsspToken(jscsspToken.PERCENTAGE_TYPE, t)) : (-1 != e && this.pushback(), new jscsspToken(jscsspToken.NUMBER_TYPE, t))
},
parseString: function (e) {
for (var t, n = e, i = e; - 1 != (t = this.read());) {
if (t == e && i != CSS_ESCAPE) {
n += t;
break
}
if (t == CSS_ESCAPE) {
if (t = this.peek(), -1 == t) break;
"\n" == t || "\r" == t || "\f" == t ? (d = t, t = this.read(), "\r" == d && (t = this.peek(), "\n" == t && (t = this.read()))) : (n += this.gatherEscape(), t = this.peek())
} else {
if ("\n" == t || "\r" == t || "\f" == t) break;
n += t
}
i = t
}
return new jscsspToken(jscsspToken.STRING_TYPE, n)
},
isWhiteSpace: function (e) {
var t = e.charCodeAt(0);
return 256 > t && 0 != (this.kLexTable[t] & IS_WHITESPACE)
},
eatWhiteSpace: function (e) {
for (var t = e; - 1 != (e = this.read()) && this.isWhiteSpace(e);) t += e;
return -1 != e && this.pushback(), t
},
parseAtKeyword: function (e) {
return new jscsspToken(jscsspToken.ATRULE_TYPE, this.gatherIdent(e))
},
nextToken: function () {
var e = this.read();
if (-1 == e) return new jscsspToken(jscsspToken.NULL_TYPE, null);
if (this.startsWithIdent(e, this.peek())) return this.parseIdent(e);
if ("@" == e) {
var t = this.read();
if (-1 != t) {
var n = this.peek();
if (this.pushback(), this.startsWithIdent(t, n)) return this.parseAtKeyword(e)
}
}
if ("." == e || "+" == e || "-" == e) {
var t = this.peek();
if (this.isDigit(t)) return this.parseNumber(e);
if ("." == t && "." != e) {
firstChar = this.read();
var i = this.peek();
if (this.pushback(), this.isDigit(i)) return this.parseNumber(e)
}
}
if (this.isDigit(e)) return this.parseNumber(e);
if ("'" == e || '"' == e) return this.parseString(e);
if (this.isWhiteSpace(e)) {
var r = this.eatWhiteSpace(e);
return new jscsspToken(jscsspToken.WHITESPACE_TYPE, r)
}
if ("|" == e || "~" == e || "^" == e || "$" == e || "*" == e) {
var t = this.read();
if ("=" == t) switch (e) {
case "~":
return new jscsspToken(jscsspToken.INCLUDES_TYPE, "~=");
case "|":
return new jscsspToken(jscsspToken.DASHMATCH_TYPE, "|=");
case "^":
return new jscsspToken(jscsspToken.BEGINSMATCH_TYPE, "^=");
case "$":
return new jscsspToken(jscsspToken.ENDSMATCH_TYPE, "$=");
case "*":
return new jscsspToken(jscsspToken.CONTAINSMATCH_TYPE, "*=")
} else -1 != t && this.pushback()
}
return "/" == e && "*" == this.peek() ? this.parseComment(e) : new jscsspToken(jscsspToken.SYMBOL_TYPE, e)
}
}, CSSParser.prototype = {
_init: function () {
this.mToken = null, this.mLookAhead = null, this.mMediaQueryMode = !1
},
kINHERIT: "inherit",
kBORDER_WIDTH_NAMES: {
thin: !0,
medium: !0,
thick: !0
},
kBORDER_STYLE_NAMES: {
none: !0,
hidden: !0,
dotted: !0,
dashed: !0,
solid: !0,
"double": !0,
groove: !0,
ridge: !0,
inset: !0,
outset: !0
},
kCOLOR_NAMES: {
transparent: !0,
black: !0,
silver: !0,
gray: !0,
white: !0,
maroon: !0,
red: !0,
purple: !0,
fuchsia: !0,
green: !0,
lime: !0,
olive: !0,
yellow: !0,
navy: !0,
blue: !0,
teal: !0,
aqua: !0,
aliceblue: !0,
antiquewhite: !0,
aqua: !0,
aquamarine: !0,
azure: !0,
beige: !0,
bisque: !0,
black: !0,
blanchedalmond: !0,
blue: !0,
blueviolet: !0,
brown: !0,
burlywood: !0,
cadetblue: !0,
chartreuse: !0,
chocolate: !0,
coral: !0,
cornflowerblue: !0,
cornsilk: !0,
crimson: !0,
cyan: !0,
darkblue: !0,
darkcyan: !0,
darkgoldenrod: !0,
darkgray: !0,
darkgreen: !0,
darkgrey: !0,
darkkhaki: !0,
darkmagenta: !0,
darkolivegreen: !0,
darkorange: !0,
darkorchid: !0,
darkred: !0,
darksalmon: !0,
darkseagreen: !0,
darkslateblue: !0,
darkslategray: !0,
darkslategrey: !0,
darkturquoise: !0,
darkviolet: !0,
deeppink: !0,
deepskyblue: !0,
dimgray: !0,
dimgrey: !0,
dodgerblue: !0,
firebrick: !0,
floralwhite: !0,
forestgreen: !0,
fuchsia: !0,
gainsboro: !0,
ghostwhite: !0,
gold: !0,
goldenrod: !0,
gray: !0,
green: !0,
greenyellow: !0,
grey: !0,
honeydew: !0,
hotpink: !0,
indianred: !0,
indigo: !0,
ivory: !0,
khaki: !0,
lavender: !0,
lavenderblush: !0,
lawngreen: !0,
lemonchiffon: !0,
lightblue: !0,
lightcoral: !0,
lightcyan: !0,
lightgoldenrodyellow: !0,
lightgray: !0,
lightgreen: !0,
lightgrey: !0,
lightpink: !0,
lightsalmon: !0,
lightseagreen: !0,
lightskyblue: !0,
lightslategray: !0,
lightslategrey: !0,
lightsteelblue: !0,
lightyellow: !0,
lime: !0,
limegreen: !0,
linen: !0,
magenta: !0,
maroon: !0,
mediumaquamarine: !0,
mediumblue: !0,
mediumorchid: !0,
mediumpurple: !0,
mediumseagreen: !0,
mediumslateblue: !0,
mediumspringgreen: !0,
mediumturquoise: !0,
mediumvioletred: !0,
midnightblue: !0,
mintcream: !0,
mistyrose: !0,
moccasin: !0,
navajowhite: !0,
navy: !0,
oldlace: !0,
olive: !0,
olivedrab: !0,
orange: !0,
orangered: !0,
orchid: !0,
palegoldenrod: !0,
palegreen: !0,
paleturquoise: !0,
palevioletred: !0,
papayawhip: !0,
peachpuff: !0,
peru: !0,
pink: !0,
plum: !0,
powderblue: !0,
purple: !0,
red: !0,
rosybrown: !0,
royalblue: !0,
saddlebrown: !0,
salmon: !0,
sandybrown: !0,
seagreen: !0,
seashell: !0,
sienna: !0,
silver: !0,
skyblue: !0,
slateblue: !0,
slategray: !0,
slategrey: !0,
snow: !0,
springgreen: !0,
steelblue: !0,
tan: !0,
teal: !0,
thistle: !0,
tomato: !0,
turquoise: !0,
violet: !0,
wheat: !0,
white: !0,
whitesmoke: !0,
yellow: !0,
yellowgreen: !0,
activeborder: !0,
activecaption: !0,
appworkspace: !0,
background: !0,
buttonface: !0,
buttonhighlight: !0,
buttonshadow: !0,
buttontext: !0,
captiontext: !0,
graytext: !0,
highlight: !0,
highlighttext: !0,
inactiveborder: !0,
inactivecaption: !0,
inactivecaptiontext: !0,
infobackground: !0,
infotext: !0,
menu: !0,
menutext: !0,
scrollbar: !0,
threeddarkshadow: !0,
threedface: !0,
threedhighlight: !0,
threedlightshadow: !0,
threedshadow: !0,
window: !0,
windowframe: !0,
windowtext: !0
},
kLIST_STYLE_TYPE_NAMES: {
decimal: !0,
"decimal-leading-zero": !0,
"lower-roman": !0,
"upper-roman": !0,
georgian: !0,
armenian: !0,
"lower-latin": !0,
"lower-alpha": !0,
"upper-latin": !0,
"upper-alpha": !0,
"lower-greek": !0,
disc: !0,
circle: !0,
square: !0,
none: !0,
box: !0,
check: !0,
diamond: !0,
hyphen: !0,
"lower-armenian": !0,
"cjk-ideographic": !0,
"ethiopic-numeric": !0,
hebrew: !0,
"japanese-formal": !0,
"japanese-informal": !0,
"simp-chinese-formal": !0,
"simp-chinese-informal": !0,
syriac: !0,
tamil: !0,
"trad-chinese-formal": !0,
"trad-chinese-informal": !0,
"upper-armenian": !0,
"arabic-indic": !0,
binary: !0,
bengali: !0,
cambodian: !0,
khmer: !0,
devanagari: !0,
gujarati: !0,
gurmukhi: !0,
kannada: !0,
"lower-hexadecimal": !0,
lao: !0,
malayalam: !0,
mongolian: !0,
myanmar: !0,
octal: !0,
oriya: !0,
persian: !0,
urdu: !0,
telugu: !0,
tibetan: !0,
"upper-hexadecimal": !0,
afar: !0,
"ethiopic-halehame-aa-et": !0,
"ethiopic-halehame-am-et": !0,
"amharic-abegede": !0,
"ehiopic-abegede-am-et": !0,
"cjk-earthly-branch": !0,
"cjk-heavenly-stem": !0,
ethiopic: !0,
"ethiopic-abegede": !0,
"ethiopic-abegede-gez": !0,
"hangul-consonant": !0,
hangul: !0,
"hiragana-iroha": !0,
hiragana: !0,
"katakana-iroha": !0,
katakana: !0,
"lower-norwegian": !0,
oromo: !0,
"ethiopic-halehame-om-et": !0,
sidama: !0,
"ethiopic-halehame-sid-et": !0,
somali: !0,
"ethiopic-halehame-so-et": !0,
tigre: !0,
"ethiopic-halehame-tig": !0,
"tigrinya-er-abegede": !0,
"ethiopic-abegede-ti-er": !0,
"tigrinya-et": !0,
"ethiopic-halehame-ti-et": !0,
"upper-greek": !0,
asterisks: !0,
footnotes: !0,
"circled-decimal": !0,
"circled-lower-latin": !0,
"circled-upper-latin": !0,
"dotted-decimal": !0,
"double-circled-decimal": !0,
"filled-circled-decimal": !0,
"parenthesised-decimal": !0,
"parenthesised-lower-latin": !0
},
reportError: function (e) {
this.mError = e
},
consumeError: function () {
var e = this.mError;
return this.mError = null, e
},
currentToken: function () {
return this.mToken
},
getHexValue: function () {
return this.mToken = this.mScanner.nextHexValue(), this.mToken
},
getToken: function (e, t) {
if (this.mLookAhead) return this.mToken = this.mLookAhead, this.mLookAhead = null, this.mToken;
for (this.mToken = this.mScanner.nextToken(); this.mToken && (e && this.mToken.isWhiteSpace() || t && this.mToken.isComment());) this.mToken = this.mScanner.nextToken();
return this.mToken
},
lookAhead: function (e, t) {
var n = this.mToken;
this.mScanner.preserveState();
var i = this.getToken(e, t);
return this.mScanner.restoreState(), this.mToken = n, i
},
ungetToken: function () {
this.mLookAhead = this.mToken
},
addUnknownAtRule: function (e, t) {
for (var n = CountLF(this.mScanner.getAlreadyScanned()), i = [], r = this.getToken(!1, !1); r.isNotNull() && (t += r.value, !r.isSymbol(";") || i.length);) {
if (r.isSymbol("{") || r.isSymbol("(") || r.isSymbol("[") || "function" == r.type) i.push(r.isFunction() ? "(" : r.value);
else if ((r.isSymbol("}") || r.isSymbol(")") || r.isSymbol("]")) && i.length) {
var s = i[i.length - 1];
if ((r.isSymbol("}") && "{" == s || r.isSymbol(")") && "(" == s || r.isSymbol("]") && "[" == s) && (i.pop(), !i.length && r.isSymbol("}"))) break
}
r = this.getToken(!1, !1)
}
this.addUnknownRule(e, t, n)
},
addUnknownRule: function (e, t, n) {
var i = this.consumeError(),
r = new jscsspErrorRule(i);
r.currentLine = n, r.parsedCssText = t, r.parentStyleSheet = e, e.cssRules.push(r)
},
addWhitespace: function (e, t) {
var n = new jscsspWhitespace;
n.parsedCssText = t, n.parentStyleSheet = e, e.cssRules.push(n)
},
addComment: function (e, t) {
var n = new jscsspComment;
n.parsedCssText = t, n.parentStyleSheet = e, e.cssRules.push(n)
},
parseCharsetRule: function (e, t) {
var n = e.value,
i = this.getToken(!1, !1);
if (n += i.value, i.isWhiteSpace(" "))
if (i = this.getToken(!1, !1), n += i.value, i.isString()) {
var r = i.value;
if (i = this.getToken(!1, !1), n += i.value, i.isSymbol(";")) {
var s = new jscsspCharsetRule;
return s.encoding = r, s.parsedCssText = n, s.parentStyleSheet = t, t.cssRules.push(s), !0
}
this.reportError(kCHARSET_RULE_MISSING_SEMICOLON)
} else this.reportError(kCHARSET_RULE_CHARSET_IS_STRING);
else this.reportError(kCHARSET_RULE_MISSING_WS);
return this.addUnknownAtRule(t, n), !1
},
parseImportRule: function (e, t) {
var n = CountLF(this.mScanner.getAlreadyScanned()),
i = e.value;
this.preserveState();
var r = this.getToken(!0, !0),
s = [],
o = "";
if (r.isString()) o = r.value, i += " " + o;
else if (r.isFunction("url(")) {
r = this.getToken(!0, !0);
var a = this.parseURL(r);
a && (o = "url(" + a, i += " " + o)
} else this.reportError(kIMPORT_RULE_MISSING_URL); if (o) {
for (r = this.getToken(!0, !0); r.isIdent() && (i += " " + r.value, s.push(r.value), r = this.getToken(!0, !0));) {
if (!r.isSymbol(",")) {
if (r.isSymbol(";")) break;
break
}
i += ",", r = this.getToken(!0, !0)
}
if (s.length || s.push("all"), r.isSymbol(";")) {
i += ";", this.forgetState();
var l = new jscsspImportRule;
return l.currentLine = n, l.parsedCssText = i, l.href = o, l.media = s, l.parentStyleSheet = t, t.cssRules.push(l), !0
}
}
return this.restoreState(), this.addUnknownAtRule(t, "@import"), !1
},
parseVariablesRule: function (e, t) {
var n = CountLF(this.mScanner.getAlreadyScanned()),
i = e.value,
r = [],
s = !1;
this.preserveState(), e = this.getToken(!0, !0);
for (var o = [], a = !1; e.isNotNull();) {
if (e.isIdent())
if (a = !0, i += " " + e.value, o.push(e.value), e = this.getToken(!0, !0), e.isSymbol(",")) i += ",";
else {
if (!e.isSymbol("{")) {
e.type = jscsspToken.NULL_TYPE;
break
}
this.ungetToken()
} else {
if (e.isSymbol("{")) break;
if (a) {
e.type = jscsspToken.NULL_TYPE;
break
}
}
e = this.getToken(!0, !0)
}
if (e.isSymbol("{"))
for (i += " {", e = this.getToken(!0, !0);;) {
if (!e.isNotNull()) {
s = !0;
break
}
if (e.isSymbol("}")) {
i += "}", s = !0;
break
}
var l = this.parseDeclaration(e, r, !0, !1, t);
i += (l && r.length ? " " : "") + l, e = this.getToken(!0, !1)
}
if (s) {
this.forgetState();
var u = new jscsspVariablesRule;
return u.currentLine = n, u.parsedCssText = i, u.declarations = r, u.media = o, u.parentStyleSheet = t, t.cssRules.push(u), !0
}
return this.restoreState(), !1
},
parseNamespaceRule: function (e, t) {
var n = CountLF(this.mScanner.getAlreadyScanned()),
i = e.value;
this.preserveState();
var r = this.getToken(!0, !0);
if (r.isNotNull()) {
var s = "",
o = "";
if (r.isIdent() && (s = r.value, i += " " + s, r = this.getToken(!0, !0)), r) {
var a = !1;
if (r.isString()) a = !0, o = r.value, i += " " + o;
else if (r.isFunction("url(")) {
r = this.getToken(!0, !0);
var l = this.parseURL(r);
l && (o += "url(" + l, a = !0, i += " " + l)
}
}
if (a && (r = this.getToken(!0, !0), r.isSymbol(";"))) {
i += ";", this.forgetState();
var u = new jscsspNamespaceRule;
return u.currentLine = n, u.parsedCssText = i, u.prefix = s, u.url = o, u.parentStyleSheet = t, t.cssRules.push(u), !0
}
}
return this.restoreState(), this.addUnknownAtRule(t, "@namespace"), !1
},
parseFontFaceRule: function (e, t) {
var n = CountLF(this.mScanner.getAlreadyScanned()),
i = e.value,
r = !1,
s = [];
this.preserveState();
var o = this.getToken(!0, !0);
if (o.isNotNull() && o.isSymbol("{")) {
i += " " + o.value;
for (var o = this.getToken(!0, !1);;) {
if (o.isSymbol("}")) {
i += "}", r = !0;
break
}
var a = this.parseDeclaration(o, s, !1, !1, t);
i += (a && s.length ? " " : "") + a, o = this.getToken(!0, !1)
}
}
if (r) {
this.forgetState();
var l = new jscsspFontFaceRule;
return l.currentLine = n, l.parsedCssText = i, l.descriptors = s, l.parentStyleSheet = t, t.cssRules.push(l), !0
}
return this.restoreState(), !1
},
parsePageRule: function (e, t) {
var n = CountLF(this.mScanner.getAlreadyScanned()),
i = e.value,
r = !1,
s = [];
this.preserveState();
var o = this.getToken(!0, !0),
a = "";
if ((o.isSymbol(":") || o.isIdent()) && (o.isSymbol(":") && (a = ":", o = this.getToken(!1, !1)), o.isIdent() && (a += o.value, i += " " + a, o = this.getToken(!0, !0))), o.isNotNull() && o.isSymbol("{")) {
i += " " + o.value;
for (var o = this.getToken(!0, !1);;) {
if (o.isSymbol("}")) {
i += "}", r = !0;
break
}
var l = this.parseDeclaration(o, s, !0, !0, t);
i += (l && s.length ? " " : "") + l, o = this.getToken(!0, !1)
}
}
if (r) {
this.forgetState();
var u = new jscsspPageRule;
return u.currentLine = n, u.parsedCssText = i, u.pageSelector = a, u.declarations = s, u.parentStyleSheet = t, t.cssRules.push(u), !0
}
return this.restoreState(), !1
},
parseDefaultPropertyValue: function (e, t, n, i, r) {
for (var s = "", o = [], a = []; e.isNotNull();) {
if ((e.isSymbol(";") || e.isSymbol("}") || e.isSymbol("!")) && !o.length) {
e.isSymbol("}") && this.ungetToken();
break
}
if (e.isIdent(this.kINHERIT)) {
if (a.length) return "";
s = this.kINHERIT;
var l = new jscsspVariable(kJscsspINHERIT_VALUE, r);
a.push(l), e = this.getToken(!0, !0);
break
}
if (e.isSymbol("{") || e.isSymbol("(") || e.isSymbol("[")) o.push(e.value);
else if ((e.isSymbol("}") || e.isSymbol("]")) && o.length) {
var u = o[o.length - 1];
(e.isSymbol("}") && "{" == u || e.isSymbol(")") && "(" == u || e.isSymbol("]") && "[" == u) && o.pop()
}
if (e.isFunction())
if (e.isFunction("var(")) {
if (e = this.getToken(!0, !0), !e.isIdent()) return "";
var c = e.value;
if (e = this.getToken(!0, !0), !e.isSymbol(")")) return "";
var l = new jscsspVariable(kJscsspVARIABLE_VALUE, r);
s += "var(" + c + ")", l.name = c, a.push(l)
} else {
var d = e.value;
e = this.getToken(!1, !0);
var p = this.parseFunctionArgument(e);
if (!p) return "";
s += d + p;
var l = new jscsspVariable(kJscsspPRIMITIVE_VALUE, r);
l.value = d + p, a.push(l)
} else if (e.isSymbol("#")) {
var f = this.parseColor(e);
if (!f) return "";
s += f;
var l = new jscsspVariable(kJscsspPRIMITIVE_VALUE, r);
l.value = f, a.push(l)
} else if (e.isWhiteSpace() || e.isSymbol(",")) s += e.value;
else {
var l = new jscsspVariable(kJscsspPRIMITIVE_VALUE, r);
l.value = e.value, a.push(l), s += e.value
}
e = this.getToken(!1, !0)
}
return a.length && s ? (this.forgetState(), t.push(this._createJscsspDeclarationFromValuesArray(i, a, s)), s) : ""
},
parseMarginOrPaddingShorthand: function (e, t, n, i) {
for (var r = null, s = null, o = null, a = null, l = [];;) {
if (!e.isNotNull()) break;
if (e.isSymbol(";") || n && e.isSymbol("!") || e.isSymbol("}")) {
e.isSymbol("}") && this.ungetToken();
break
}
if (!l.length && e.isIdent(this.kINHERIT)) {
l.push(e.value), e = this.getToken(!0, !0);
break
}
if (!(e.isDimension() || e.isNumber("0") || e.isPercentage() || e.isIdent("auto"))) return "";
l.push(e.value), e = this.getToken(!0, !0)
}
var u = l.length;
switch (u) {
case 1:
r = l[0], s = r, o = r, a = r;
break;
case 2:
r = l[0], s = r, o = l[1], a = o;
break;
case 3:
r = l[0], o = l[1], a = o, s = l[2];
break;
case 4:
r = l[0], a = l[1], s = l[2], o = l[3];
break;
default:
return ""
}
return this.forgetState(), t.push(this._createJscsspDeclarationFromValue(i + "-top", r)), t.push(this._createJscsspDeclarationFromValue(i + "-right", a)), t.push(this._createJscsspDeclarationFromValue(i + "-bottom", s)), t.push(this._createJscsspDeclarationFromValue(i + "-left", o)), r + " " + a + " " + s + " " + o
},
parseBorderColorShorthand: function (e, t, n) {
for (var i = null, r = null, s = null, o = null, a = [];;) {
if (!e.isNotNull()) break;
if (e.isSymbol(";") || n && e.isSymbol("!") || e.isSymbol("}")) {
e.isSymbol("}") && this.ungetToken();
break
}
if (!a.length && e.isIdent(this.kINHERIT)) {
a.push(e.value), e = this.getToken(!0, !0);
break
}
var l = this.parseColor(e);
if (!l) return "";
a.push(l), e = this.getToken(!0, !0)
}
var u = a.length;
switch (u) {
case 1:
i = a[0], r = i, s = i, o = i;
break;
case 2:
i = a[0], r = i, s = a[1], o = s;
break;
case 3:
i = a[0], s = a[1], o = s, r = a[2];
break;
case 4:
i = a[0], o = a[1], r = a[2], s = a[3];
break;
default:
return ""
}
return this.forgetState(), t.push(this._createJscsspDeclarationFromValue("border-top-color", i)), t.push(this._createJscsspDeclarationFromValue("border-right-color", o)), t.push(this._createJscsspDeclarationFromValue("border-bottom-color", r)), t.push(this._createJscsspDeclarationFromValue("border-left-color", s)), i + " " + o + " " + r + " " + s
},
parseCueShorthand: function (e, t, n) {
for (var i = "", r = "", s = [], s = [];;) {
if (!e.isNotNull()) break;
if (e.isSymbol(";") || n && e.isSymbol("!") || e.isSymbol("}")) {
e.isSymbol("}") && this.ungetToken();
break
}
if (!s.length && e.isIdent(this.kINHERIT)) s.push(e.value);
else if (e.isIdent("none")) s.push(e.value);
else {
if (!e.isFunction("url(")) return "";
var e = this.getToken(!0, !0),
o = this.parseURL(e);
if (!o) return "";
s.push("url(" + o)
}
e = this.getToken(!0, !0)
}
var a = s.length;
switch (a) {
case 1:
i = s[0], r = i;
break;
case 2:
i = s[0], r = s[1];
break;
default:
return ""
}
return this.forgetState(), aDecl.push(this._createJscsspDeclarationFromValue("cue-before", i)), aDecl.push(this._createJscsspDeclarationFromValue("cue-after", r)), i + " " + r
},
parsePauseShorthand: function (e, t, n) {
for (var i = "", r = "", s = [], s = [];;) {
if (!e.isNotNull()) break;
if (e.isSymbol(";") || n && e.isSymbol("!") || e.isSymbol("}")) {
e.isSymbol("}") && this.ungetToken();
break
}
if (!s.length && e.isIdent(this.kINHERIT)) s.push(e.value);
else {
if (!(e.isDimensionOfUnit("ms") || e.isDimensionOfUnit("s") || e.isPercentage() || e.isNumber("0"))) return "";
s.push(e.value)
}
e = this.getToken(!0, !0)
}
var o = s.length;
switch (o) {
case 1:
i = s[0], r = i;
break;
case 2:
i = s[0], r = s[1];
break;
default:
return ""
}
return this.forgetState(), aDecl.push(this._createJscsspDeclarationFromValue("pause-before", i)), aDecl.push(this._createJscsspDeclarationFromValue("pause-after", r)), i + " " + r
},
parseBorderWidthShorthand: function (e, t, n) {
for (var i = null, r = null, s = null, o = null, a = [];;) {
if (!e.isNotNull()) break;
if (e.isSymbol(";") || n && e.isSymbol("!") || e.isSymbol("}")) {
e.isSymbol("}") && this.ungetToken();
break
}
if (!a.length && e.isIdent(this.kINHERIT)) a.push(e.value);
else {
if (!(e.isDimension() || e.isNumber("0") || e.isIdent() && e.value in this.kBORDER_WIDTH_NAMES)) return "";
a.push(e.value)
}
e = this.getToken(!0, !0)
}
var l = a.length;
switch (l) {
case 1:
i = a[0], r = i, s = i, o = i;
break;
case 2:
i = a[0], r = i, s = a[1], o = s;
break;
case 3:
i = a[0], s = a[1], o = s, r = a[2];
break;
case 4:
i = a[0], o = a[1], r = a[2], s = a[3];
break;
default:
return ""
}
return this.forgetState(), t.push(this._createJscsspDeclarationFromValue("border-top-width", i)), t.push(this._createJscsspDeclarationFromValue("border-right-width", o)), t.push(this._createJscsspDeclarationFromValue("border-bottom-width", r)), t.push(this._createJscsspDeclarationFromValue("border-left-width", s)), i + " " + o + " " + r + " " + s
},
parseBorderStyleShorthand: function (e, t, n) {
for (var i = null, r = null, s = null, o = null, a = [];;) {
if (!e.isNotNull()) break;
if (e.isSymbol(";") || n && e.isSymbol("!") || e.isSymbol("}")) {
e.isSymbol("}") && this.ungetToken();
break
}
if (!a.length && e.isIdent(this.kINHERIT)) a.push(e.value);
else {
if (!(e.isIdent() && e.value in this.kBORDER_STYLE_NAMES)) return "";
a.push(e.value)
}
e = this.getToken(!0, !0)
}
var l = a.length;
switch (l) {
case 1:
i = a[0], r = i, s = i, o = i;
break;
case 2:
i = a[0], r = i, s = a[1], o = s;
break;
case 3:
i = a[0], s = a[1], o = s, r = a[2];
break;
case 4:
i = a[0], o = a[1], r = a[2], s = a[3];
break;
default:
return ""
}
return this.forgetState(), t.push(this._createJscsspDeclarationFromValue("border-top-style", i)), t.push(this._createJscsspDeclarationFromValue("border-right-style", o)), t.push(this._createJscsspDeclarationFromValue("border-bottom-style", r)), t.push(this._createJscsspDeclarationFromValue("border-left-style", s)), i + " " + o + " " + r + " " + s
},
parseBorderEdgeOrOutlineShorthand: function (e, t, n, i) {
function r(e, t, n, i, r, s) {
t.push(e._createJscsspDeclarationFromValue(n + "-width", i)), t.push(e._createJscsspDeclarationFromValue(n + "-style", r)), t.push(e._createJscsspDeclarationFromValue(n + "-color", s))
}
for (var s = null, o = null, a = null;;) {
if (!e.isNotNull()) break;
if (e.isSymbol(";") || n && e.isSymbol("!") || e.isSymbol("}")) {
e.isSymbol("}") && this.ungetToken();
break
}
if (s || o || a || !e.isIdent(this.kINHERIT))
if (!s && (e.isDimension() || e.isIdent() && e.value in this.kBORDER_WIDTH_NAMES || e.isNumber("0"))) s = e.value;
else if (!o && e.isIdent() && e.value in this.kBORDER_STYLE_NAMES) o = e.value;
else {
var l = "outline" == i && e.isIdent("invert") ? "invert" : this.parseColor(e);
if (a || !l) return "";
a = l
} else s = this.kINHERIT, o = this.kINHERIT, a = this.kINHERIT;
e = this.getToken(!0, !0)
}
return this.forgetState(), s = s ? s : "medium", o = o ? o : "none", a = a ? a : "-moz-initial", "border" == i ? (r(this, t, "border-top", s, o, a), r(this, t, "border-right", s, o, a), r(this, t, "border-bottom", s, o, a), r(this, t, "border-left", s, o, a)) : r(this, t, i, s, o, a), s + " " + o + " " + a
},
parseBackgroundShorthand: function (e, t, n) {
for (var i = {
left: !0,
right: !0
}, r = {
top: !0,
bottom: !0
}, s = {
left: !0,
right: !0,
top: !0,
bottom: !0,
center: !0
}, o = null, a = null, l = null, u = null, c = null;;) {
if (!e.isNotNull()) break;
if (e.isSymbol(";") || n && e.isSymbol("!") || e.isSymbol("}")) {
e.isSymbol("}") && this.ungetToken();
break
}
if (o || a || l || u || c || !e.isIdent(this.kINHERIT))
if (l || !e.isIdent("scroll") && !e.isIdent("fixed")) {
if (!c && (e.isIdent() && e.value in s || e.isDimension() || e.isNumber("0") || e.isPercentage()))
if (c = e.value, e = this.getToken(!0, !0), e.isDimension() || e.isNumber("0") || e.isPercentage()) c += " " + e.value;
else if (e.isIdent() && e.value in s) {
if (c in i && e.value in i || c in r && e.value in r) return "";
c += " " + e.value
} else this.ungetToken(), c += " center";
else if (!a && (e.isIdent("repeat") || e.isIdent("repeat-x") || e.isIdent("repeat-y") || e.isIdent("no-repeat"))) a = e.value;
else if (u || !e.isFunction("url(") && !e.isIdent("none"))
if (!u && (e.isFunction("-moz-linear-gradient(") || e.isFunction("-moz-radial-gradient(") || e.isFunction("-moz-repeating-linear-gradient(") || e.isFunction("-moz-repeating-radial-gradient("))) {
var d = CssInspector.parseGradient(this, e);
if (!d) return "";
u = CssInspector.serializeGradient(d)
} else {
var p = this.parseColor(e);
if (o || !p) return "";
o = p
} else if (u = e.value, e.isFunction("url(")) {
e = this.getToken(!0, !0);
var f = this.parseURL(e);
if (!f) return "";
u += f
}
} else l = e.value;
else o = this.kINHERIT, a = this.kINHERIT, l = this.kINHERIT, u = this.kINHERIT, c = this.kINHERIT;
e = this.getToken(!0, !0)
}
return this.forgetState(), o = o ? o : "transparent", u = u ? u : "none", a = a ? a : "repeat", l = l ? l : "scroll", c = c ? c : "top left", t.push(this._createJscsspDeclarationFromValue("background-color", o)), t.push(this._createJscsspDeclarationFromValue("background-image", u)), t.push(this._createJscsspDeclarationFromValue("background-repeat", a)), t.push(this._createJscsspDeclarationFromValue("background-attachment", l)), t.push(this._createJscsspDeclarationFromValue("background-position", c)), o + " " + u + " " + a + " " + l + " " + c
},
parseListStyleShorthand: function (e, t, n) {
for (var i = {
inside: !0,
outside: !0
}, r = null, s = null, o = null;;) {
if (!e.isNotNull()) break;
if (e.isSymbol(";") || n && e.isSymbol("!") || e.isSymbol("}")) {
e.isSymbol("}") && this.ungetToken();
break
}
if (r || s || o || !e.isIdent(this.kINHERIT)) {
if (!r && e.isIdent() && e.value in this.kLIST_STYLE_TYPE_NAMES) r = e.value;
else if (!s && e.isIdent() && e.value in i) s = e.value;
else if (!o && e.isFunction("url")) {
e = this.getToken(!0, !0);
var a = this.parseURL(e);
if (!a) return "";
o = "url(" + a
} else if (!e.isIdent("none")) return ""
} else r = this.kINHERIT, s = this.kINHERIT, o = this.kINHERIT;
e = this.getToken(!0, !0)
}
return this.forgetState(), r = r ? r : "none", o = o ? o : "none", s = s ? s : "outside", t.push(this._createJscsspDeclarationFromValue("list-style-type", r)), t.push(this._createJscsspDeclarationFromValue("list-style-position", s)), t.push(this._createJscsspDeclarationFromValue("list-style-image", o)), r + " " + s + " " + o
},
parseFontShorthand: function (e, t, n) {
for (var i = {
italic: !0,
oblique: !0
}, r = {
"small-caps": !0
}, s = {
bold: !0,
bolder: !0,
lighter: !0,
100: !0,
200: !0,
300: !0,
400: !0,
500: !0,
600: !0,
700: !0,
800: !0,
900: !0
}, o = {
"xx-small": !0,
"x-small": !0,
small: !0,
medium: !0,
large: !0,
"x-large": !0,
"xx-large": !0,
larger: !0,
smaller: !0
}, a = {
caption: !0,
icon: !0,
menu: !0,
"message-box": !0,
"small-caption": !0,
"status-bar": !0
}, l = {
serif: !0,
"sans-serif": !0,
cursive: !0,
fantasy: !0,
monospace: !0
}, u = null, c = null, d = null, p = null, f = null, h = "", m = null, g = [], v = 0;;) {
if (!e.isNotNull()) break;
if (e.isSymbol(";") || n && e.isSymbol("!") || e.isSymbol("}")) {
e.isSymbol("}") && this.ungetToken();
break
}
if (u || c || d || p || f || h || m || !e.isIdent(this.kINHERIT)) {
if (!m && e.isIdent() && e.value in a) {
m = e.value;
break
}
if (!u && e.isIdent() && e.value in i) u = e.value;
else if (!c && e.isIdent() && e.value in r) c = e.value;
else if (!d && (e.isIdent() || e.isNumber()) && e.value in s) d = e.value;
else if (!p && (e.isIdent() && e.value in o || e.isDimension() || e.isPercentage())) {
p = e.value;
var e = this.getToken(!1, !1);
if (e.isSymbol("/")) {
if (e = this.getToken(!1, !1), f || !(e.isDimension() || e.isNumber() || e.isPercentage())) return "";
f = e.value
} else this.ungetToken()
} else if (e.isIdent("normal")) {
if (v++, v > 3) return ""
} else {
if (h || !e.isString() && !e.isIdent()) return "";
for (var b = !1;;) {
if (!e.isNotNull()) break;
if (e.isSymbol(";") || n && e.isSymbol("!") || e.isSymbol("}")) {
this.ungetToken();
break
}
if (e.isIdent() && e.value in l) {
var k = new jscsspVariable(kJscsspPRIMITIVE_VALUE, null);
k.value = e.value, g.push(k), h += e.value;
break
}
if (e.isString() || e.isIdent()) {
var k = new jscsspVariable(kJscsspPRIMITIVE_VALUE, null);
k.value = e.value, g.push(k), h += e.value, b = !1
} else {
if (b || !e.isSymbol(",")) return "";
h += ", ", b = !0
}
e = this.getToken(!0, !0)
}
}
} else u = this.kINHERIT, c = this.kINHERIT, d = this.kINHERIT, p = this.kINHERIT, f = this.kINHERIT, h = this.kINHERIT, m = this.kINHERIT;
e = this.getToken(!0, !0)
}
return this.forgetState(), m ? (t.push(this._createJscsspDeclarationFromValue("font", m)), m) : (u = u ? u : "normal", c = c ? c : "normal", d = d ? d : "normal", p = p ? p : "medium", f = f ? f : "normal", h = h ? h : "-moz-initial", t.push(this._createJscsspDeclarationFromValue("font-style", u)), t.push(this._createJscsspDeclarationFromValue("font-variant", c)), t.push(this._createJscsspDeclarationFromValue("font-weight", d)), t.push(this._createJscsspDeclarationFromValue("font-size", p)), t.push(this._createJscsspDeclarationFromValue("line-height", f)), t.push(this._createJscsspDeclarationFromValuesArray("font-family", g, h)), u + " " + c + " " + d + " " + p + "/" + f + " " + h)
},
_createJscsspDeclaration: function (e, t) {
var n = new jscsspDeclaration;
return n.property = e, n.value = this.trim11(t), n.parsedCssText = e + ": " + t + ";", n
},
_createJscsspDeclarationFromValue: function (e, t) {
var n = new jscsspDeclaration;
n.property = e;
var i = new jscsspVariable(kJscsspPRIMITIVE_VALUE, null);
return i.value = t, n.values = [i], n.valueText = t, n.parsedCssText = e + ": " + t + ";", n
},
_createJscsspDeclarationFromValuesArray: function (e, t, n) {
var i = new jscsspDeclaration;
return i.property = e, i.values = t, i.valueText = n, i.parsedCssText = e + ": " + n + ";", i
},
parseURL: function (e) {
var t = "";
if (e.isString()) t += e.value, e = this.getToken(!0, !0);
else
for (;;) {
if (!e.isNotNull()) return this.reportError(kURL_EOF), "";
if (e.isWhiteSpace() && (nextToken = this.lookAhead(!0, !0), !nextToken.isSymbol(")"))) {
this.reportError(kURL_WS_INSIDE), e = this.currentToken();
break
}
if (e.isSymbol(")")) break;
t += e.value, e = this.getToken(!1, !1)
}
return e.isSymbol(")") ? t + ")" : ""
},
parseFunctionArgument: function (e) {
var t = "";
if (e.isString()) t += e.value, e = this.getToken(!0, !0);
else
for (var n = 1;;) {
if (!e.isNotNull()) return "";
if ((e.isFunction() || e.isSymbol("(")) && n++, e.isSymbol(")") && (n--, !n)) break;
t += e.value, e = this.getToken(!1, !1)
}
return e.isSymbol(")") ? t + ")" : ""
},
parseColor: function (e) {
var t = "";
if (e.isFunction("rgb(") || e.isFunction("rgba(")) {
t = e.value;
var n = e.isFunction("rgba(");
if (e = this.getToken(!0, !0), !e.isNumber() && !e.isPercentage()) return "";
if (t += e.value, e = this.getToken(!0, !0), !e.isSymbol(",")) return "";
if (t += ", ", e = this.getToken(!0, !0), !e.isNumber() && !e.isPercentage()) return "";
if (t += e.value, e = this.getToken(!0, !0), !e.isSymbol(",")) return "";
if (t += ", ", e = this.getToken(!0, !0), !e.isNumber() && !e.isPercentage()) return "";
if (t += e.value, n) {
if (e = this.getToken(!0, !0), !e.isSymbol(",")) return "";
if (t += ", ", e = this.getToken(!0, !0), !e.isNumber()) return "";
t += e.value
}
if (e = this.getToken(!0, !0), !e.isSymbol(")")) return "";
t += e.value
} else if (e.isFunction("hsl(") || e.isFunction("hsla(")) {
t = e.value;
var i = e.isFunction("hsla(");
if (e = this.getToken(!0, !0), !e.isNumber()) return "";
if (t += e.value, e = this.getToken(!0, !0), !e.isSymbol(",")) return "";
if (t += ", ", e = this.getToken(!0, !0), !e.isPercentage()) return "";
if (t += e.value, e = this.getToken(!0, !0), !e.isSymbol(",")) return "";
if (t += ", ", e = this.getToken(!0, !0), !e.isPercentage()) return "";
if (t += e.value, i) {
if (e = this.getToken(!0, !0), !e.isSymbol(",")) return "";
if (t += ", ", e = this.getToken(!0, !0), !e.isNumber()) return "";
t += e.value
}
if (e = this.getToken(!0, !0), !e.isSymbol(")")) return "";
t += e.value
} else if (e.isIdent() && e.value in this.kCOLOR_NAMES) t = e.value;
else if (e.isSymbol("#")) {
if (e = this.getHexValue(), !e.isHex()) return "";
var r = e.value.length;
if (3 != r && 6 != r) return "";
if (e.value.match(/[a-fA-F0-9]/g).length != r) return "";
t = "#" + e.value
}
return t
},
parseDeclaration: function (e, t, n, i, r) {
this.preserveState();
var s = [];
if (e.isIdent()) {
var o = e.value.toLowerCase(),
a = this.getToken(!0, !0);
if (a.isSymbol(":")) {
var a = this.getToken(!0, !0),
l = "",
u = [];
if (i) switch (o) {
case "background":
l = this.parseBackgroundShorthand(a, u, n);
break;
case "margin":
case "padding":
l = this.parseMarginOrPaddingShorthand(a, u, n, o);
break;
case "border-color":
l = this.parseBorderColorShorthand(a, u, n);
break;
case "border-style":
l = this.parseBorderStyleShorthand(a, u, n);
break;
case "border-width":
l = this.parseBorderWidthShorthand(a, u, n);
break;
case "border-top":
case "border-right":
case "border-bottom":
case "border-left":
case "border":
case "outline":
l = this.parseBorderEdgeOrOutlineShorthand(a, u, n, o);
break;
case "cue":
l = this.parseCueShorthand(a, u, n);
break;
case "pause":
l = this.parsePauseShorthand(a, u, n);
break;
case "font":
l = this.parseFontShorthand(a, u, n);
break;
case "list-style":
l = this.parseListStyleShorthand(a, u, n);
break;
default:
l = this.parseDefaultPropertyValue(a, u, n, o, r)
} else l = this.parseDefaultPropertyValue(a, u, n, o, r);
if (a = this.currentToken(), l) {
var c = !1;
if (a.isSymbol("!")) {
if (a = this.getToken(!0, !0), !a.isIdent("important")) return "";
if (c = !0, a = this.getToken(!0, !0), !a.isSymbol(";") && !a.isSymbol("}")) return "";
a.isSymbol("}") && this.ungetToken()
} else if (a.isNotNull() && !a.isSymbol(";") && !a.isSymbol("}")) return "";
for (var d = 0; d < u.length; d++) u[d].priority = c, t.push(u[d]);
return o + ": " + l + ";"
}
}
} else if (e.isComment()) {
if (this.mPreserveComments) {
this.forgetState();
var p = new jscsspComment;
p.parsedCssText = e.value, t.push(p)
}
return e.value
}
this.restoreState();
var f = e.value;
s = [];
for (var a = this.getToken(!1, !1); a.isNotNull();) {
if (f += a.value, (a.isSymbol(";") || a.isSymbol("}")) && !s.length) {
a.isSymbol("}") && this.ungetToken();
break
}
if (a.isSymbol("{") || a.isSymbol("(") || a.isSymbol("[") || a.isFunction()) s.push(a.isFunction() ? "(" : a.value);
else if ((a.isSymbol("}") || a.isSymbol(")") || a.isSymbol("]")) && s.length) {
var h = s[s.length - 1];
(a.isSymbol("}") && "{" == h || a.isSymbol(")") && "(" == h || a.isSymbol("]") && "[" == h) && s.pop()
}
a = this.getToken(!1, !1)
}
return ""
},
parseKeyframesRule: function (e, t) {
var n = CountLF(this.mScanner.getAlreadyScanned()),
i = e.value,
r = !1,
s = new jscsspKeyframesRule;
s.currentLine = n, this.preserveState();
for (var o = this.getToken(!0, !0), a = !1; o.isNotNull();) {
if (!o.isIdent()) {
if (o.isSymbol("{")) {
a || (o.type = jscsspToken.NULL_TYPE);
break
}
o.type = jscsspToken.NULL_TYPE;
break
}
if (a = !0, i += " " + o.value, s.name = o.value, o = this.getToken(!0, !0), !o.isSymbol("{")) {
o.type = jscsspToken.NULL_TYPE;
break
}
this.ungetToken(), o = this.getToken(!0, !0)
}
if (o.isSymbol("{") && s.name)
for (i += " { ", o = this.getToken(!0, !1); o.isNotNull();) {
if (o.isComment() && this.mPreserveComments) {
i += " " + o.value;
var l = new jscsspComment;
l.parsedCssText = o.value, s.cssRules.push(l)
} else {
if (o.isSymbol("}")) {
r = !0;
break
}
var u = this.parseKeyframeRule(o, s, !0);
u && (i += u)
}
o = this.getToken(!0, !1)
}
return r ? (this.forgetState(), s.currentLine = n, s.parsedCssText = i, t.cssRules.push(s), !0) : (this.restoreState(), !1)
},
parseKeyframeRule: function (e, t) {
var n = CountLF(this.mScanner.getAlreadyScanned());
this.preserveState();
for (var i = e, r = ""; i.isNotNull();) {
if (!i.isIdent() && !i.isPercentage()) {
r = "";
break
}
if (i.isIdent() && !i.isIdent("from") && !i.isIdent("to")) {
r = "";
break
}
if (r += i.value, i = this.getToken(!0, !0), i.isSymbol("{")) {
this.ungetToken();
break
}
if (!i.isSymbol(",")) {
r = "";
break
}
r += ", ", i = this.getToken(!0, !0)
}
var s = !1,
o = [];
if (r) {
var a = r;
if (i = this.getToken(!0, !0), i.isSymbol("{"))
for (a += " { ", i = this.getToken(!0, !1);;) {
if (!i.isNotNull()) {
s = !0;
break
}
if (i.isSymbol("}")) {
a += "}", s = !0;
break
}
var l = this.parseDeclaration(i, o, !0, !0, t);
a += (l && o.length ? " " : "") + l, i = this.getToken(!0, !1)
}
}
if (s) {
var u = new jscsspKeyframeRule;
return u.currentLine = n, u.parsedCssText = a, u.declarations = o, u.keyText = r, u.parentRule = t, t.cssRules.push(u), a
}
return this.restoreState(), a = this.currentToken().value, this.addUnknownAtRule(t, a), ""
},
parseMediaRule: function (e, t) {
this.mScanner.mMediaQueryMode = !0;
var n = CountLF(this.mScanner.getAlreadyScanned()),
i = e.value,
r = !1,
s = new jscsspMediaRule;
s.currentLine = n, this.preserveState();
for (var o = this.getToken(!0, !0), a = !1; o.isNotNull();) {
if (o.isIdent())
if (a = !0, i += " " + o.value, s.media.push(o.value), o = this.getToken(!0, !0), o.isSymbol(",")) i += ",";
else {
if (!o.isSymbol("{")) {
o.type = jscsspToken.NULL_TYPE;
break
}
this.ungetToken()
} else {
if (o.isSymbol("{")) break;
if (a) {
o.type = jscsspToken.NULL_TYPE;
break
}
}
o = this.getToken(!0, !0)
}
if (o.isSymbol("{") && s.media.length)
for (i += " { ", o = this.getToken(!0, !1); o.isNotNull();) {
if (o.isComment() && this.mPreserveComments) {
i += " " + o.value;
var l = new jscsspComment;
l.parsedCssText = o.value, s.cssRules.push(l)
} else {
if (o.isSymbol("}")) {
r = !0;
break
}
var u = this.parseStyleRule(o, s, !0);
u && (i += u)
}
o = this.getToken(!0, !1)
}
return r ? (this.forgetState(), s.parsedCssText = i, t.cssRules.push(s), !0) : (this.restoreState(), !1)
},
trim11: function (e) {
e = e.replace(/^\s+/, "");
for (var t = e.length - 1; t >= 0; t--)
if (/\S/.test(e.charAt(t))) {
e = e.substring(0, t + 1);
break
}
return e
},
parseStyleRule: function (e, t, n) {
var i = CountLF(this.mScanner.getAlreadyScanned());
this.preserveState();
var r = this.parseSelector(e, !1),
s = !1,
o = [];
if (r) {
r = this.trim11(r.selector);
var a = r,
l = this.getToken(!0, !0);
if (l.isSymbol("{")) {
a += " { ";
for (var l = this.getToken(!0, !1);;) {
if (!l.isNotNull()) {
s = !0;
break
}
if (l.isSymbol("}")) {
a += "}", s = !0;
break
}
var u = this.parseDeclaration(l, o, !0, !0, t);
a += (u && o.length ? " " : "") + u, l = this.getToken(!0, !1)
}
}
}
if (s) {
var c = new jscsspStyleRule;
return c.currentLine = i, c.parsedCssText = a, c.declarations = o, c.mSelectorText = r, n ? c.parentRule = t : c.parentStyleSheet = t, t.cssRules.push(c), a
}
return this.restoreState(), a = this.currentToken().value, this.addUnknownAtRule(t, a), ""
},
parseSelector: function (e, t) {
for (var n = "", i = {
a: 0,
b: 0,
c: 0,
d: 0
}, r = !0, s = e, o = !1, a = !1;;) {
if (!s.isNotNull()) return t ? {
selector: n,
specificity: i
} : "";
if (!t && s.isSymbol("{")) {
o = !a, o && this.ungetToken();
break
}
if (s.isSymbol(",")) n += s.value, r = !0, a = !1, s = this.getToken(!1, !0);
else if (a || !(s.isWhiteSpace() || s.isSymbol(">") || s.isSymbol("+") || s.isSymbol("~"))) {
var l = this.parseSimpleSelector(s, r, !0);
if (!l) break;
n += l.selector, i.b += l.specificity.b, i.c += l.specificity.c, i.d += l.specificity.d, r = !1, a = !1, s = this.getToken(!1, !0)
} else {
if (s.isWhiteSpace()) {
n += " ";
var u = this.lookAhead(!0, !0);
if (!u.isNotNull()) return t ? {
selector: n,
specificity: i
} : "";
(u.isSymbol(">") || u.isSymbol("+") || u.isSymbol("~")) && (s = this.getToken(!0, !0), n += s.value + " ", a = !0)
} else n += s.value, a = !0;
r = !0, s = this.getToken(!0, !0)
}
}
return o ? {
selector: n,
specificity: i
} : ""
},
isPseudoElement: function (e) {
switch (e) {
case "first-letter":
case "first-line":
case "before":
case "after":
case "marker":
return !0;
default:
return !1
}
},
parseSimpleSelector: function (e, t, n) {
var i = "",
r = {
a: 0,
b: 0,
c: 0,
d: 0
};
if (t && (e.isSymbol("*") || e.isSymbol("|") || e.isIdent())) {
if (e.isSymbol("*") || e.isIdent()) {
i += e.value;
var s = e.isIdent();
if (e = this.getToken(!1, !0), e.isSymbol("|")) {
if (i += e.value, e = this.getToken(!1, !0), !e.isIdent() && !e.isSymbol("*")) return null;
i += e.value, e.isIdent() && r.d++
} else this.ungetToken(), s && r.d++
} else if (e.isSymbol("|")) {
if (i += e.value, e = this.getToken(!1, !0), !e.isIdent() && !e.isSymbol("*")) return null;
i += e.value, e.isIdent() && r.d++
}
} else if (e.isSymbol(".") || e.isSymbol("#")) {
var o = e.isSymbol(".");
if (i += e.value, e = this.getToken(!1, !0), !e.isIdent()) return null;
i += e.value, o ? r.c++ : r.b++
} else if (e.isSymbol(":"))
if (i += e.value, e = this.getToken(!1, !0), e.isSymbol(":") && (i += e.value, e = this.getToken(!1, !0)), e.isIdent()) i += e.value, this.isPseudoElement(e.value) ? r.d++ : r.c++;
else {
if (!e.isFunction()) return null;
if (i += e.value, e.isFunction(":not(")) {
if (!n) return null;
e = this.getToken(!0, !0);
var a = this.parseSimpleSelector(e, t, !1);
if (!a) return null;
if (i += a.selector, e = this.getToken(!0, !0), !e.isSymbol(")")) return null;
i += ")", r.c++
} else {
for (;;) {
if (e = this.getToken(!1, !0), e.isSymbol(")")) {
i += ")";
break
}
i += e.value
}
r.c++
}
} else if (e.isSymbol("[")) {
if (i += "[", e = this.getToken(!0, !0), e.isIdent() || e.isSymbol("*")) {
i += e.value; {
this.getToken(!0, !0)
}
if (e.isSymbol("|")) {
if (i += "|", e = this.getToken(!0, !0), !e.isIdent()) return null;
i += e.value
} else this.ungetToken()
} else {
if (!e.isSymbol("|")) return null;
if (i += "|", e = this.getToken(!0, !0), !e.isIdent()) return null;
i += e.value
} if (e = this.getToken(!0, !0), e.isIncludes() || e.isDashmatch() || e.isBeginsmatch() || e.isEndsmatch() || e.isContainsmatch() || e.isSymbol("=")) {
if (i += e.value, e = this.getToken(!0, !0), !e.isString() && !e.isIdent()) return null;
if (i += e.value, e = this.getToken(!0, !0), !e.isSymbol("]")) return null;
i += e.value, r.c++
} else {
if (!e.isSymbol("]")) return null;
i += e.value, r.c++
}
} else if (e.isWhiteSpace()) {
var l = this.lookAhead(!0, !0);
if (l.isSymbol("{")) return ""
}
return i ? {
selector: i,
specificity: r
} : null
},
preserveState: function () {
this.mPreservedTokens.push(this.currentToken()), this.mScanner.preserveState()
},
restoreState: function () {
this.mPreservedTokens.length && (this.mScanner.restoreState(), this.mToken = this.mPreservedTokens.pop())
},
forgetState: function () {
this.mPreservedTokens.length && (this.mScanner.forgetState(), this.mPreservedTokens.pop())
},
parse: function (e, t, n) {
if (!e) return null;
this.mPreserveWS = t, this.mPreserveComments = n, this.mPreservedTokens = [], this.mScanner.init(e);
var i = new jscsspStylesheet,
r = this.getToken(!1, !1);
if (r.isNotNull()) {
r.isAtRule("@charset") && (this.parseCharsetRule(r, i), r = this.getToken(!1, !1));
for (var s = !1, o = !1, a = !1;;) {
if (!r.isNotNull()) break;
if (r.isWhiteSpace()) t && this.addWhitespace(i, r.value);
else if (r.isComment()) this.mPreserveComments && this.addComment(i, r.value);
else if (r.isAtRule()) r.isAtRule("@variables") ? o || s ? (this.reportError(kVARIABLES_RULE_POSITION), this.addUnknownAtRule(i, r.value)) : this.parseVariablesRule(r, i) : r.isAtRule("@import") ? s || a ? (this.reportError(kIMPORT_RULE_POSITION), this.addUnknownAtRule(i, r.value)) : o = this.parseImportRule(r, i) : r.isAtRule("@namespace") ? s ? (this.reportError(kNAMESPACE_RULE_POSITION), this.addUnknownAtRule(i, r.value)) : a = this.parseNamespaceRule(r, i) : r.isAtRule("@font-face") ? this.parseFontFaceRule(r, i) ? s = !0 : this.addUnknownAtRule(i, r.value) : r.isAtRule("@page") ? this.parsePageRule(r, i) ? s = !0 : this.addUnknownAtRule(i, r.value) : r.isAtRule("@media") ? this.parseMediaRule(r, i) ? s = !0 : this.addUnknownAtRule(i, r.value) : r.isAtRule("@keyframes") ? this.parseKeyframesRule(r, i) || this.addUnknownAtRule(i, r.value) : r.isAtRule("@charset") ? (this.reportError(kCHARSET_RULE_CHARSET_SOF), this.addUnknownAtRule(i, r.value)) : (this.reportError(kUNKNOWN_AT_RULE), this.addUnknownAtRule(i, r.value));
else {
var l = this.parseStyleRule(r, i, !1);
l && (s = !0)
}
r = this.getToken(!1)
}
return i
}
}
}, jscsspToken.NULL_TYPE = 0, jscsspToken.WHITESPACE_TYPE = 1, jscsspToken.STRING_TYPE = 2, jscsspToken.COMMENT_TYPE = 3, jscsspToken.NUMBER_TYPE = 4, jscsspToken.IDENT_TYPE = 5, jscsspToken.FUNCTION_TYPE = 6, jscsspToken.ATRULE_TYPE = 7, jscsspToken.INCLUDES_TYPE = 8, jscsspToken.DASHMATCH_TYPE = 9, jscsspToken.BEGINSMATCH_TYPE = 10, jscsspToken.ENDSMATCH_TYPE = 11, jscsspToken.CONTAINSMATCH_TYPE = 12, jscsspToken.SYMBOL_TYPE = 13, jscsspToken.DIMENSION_TYPE = 14, jscsspToken.PERCENTAGE_TYPE = 15, jscsspToken.HEX_TYPE = 16, jscsspToken.prototype = {
isNotNull: function () {
return this.type
},
_isOfType: function (e, t) {
return this.type == e && (!t || this.value.toLowerCase() == t)
},
isWhiteSpace: function (e) {
return this._isOfType(jscsspToken.WHITESPACE_TYPE, e)
},
isString: function () {
return this._isOfType(jscsspToken.STRING_TYPE)
},
isComment: function () {
return this._isOfType(jscsspToken.COMMENT_TYPE)
},
isNumber: function (e) {
return this._isOfType(jscsspToken.NUMBER_TYPE, e)
},
isSymbol: function (e) {
return this._isOfType(jscsspToken.SYMBOL_TYPE, e)
},
isIdent: function (e) {
return this._isOfType(jscsspToken.IDENT_TYPE, e)
},
isFunction: function (e) {
return this._isOfType(jscsspToken.FUNCTION_TYPE, e)
},
isAtRule: function (e) {
return this._isOfType(jscsspToken.ATRULE_TYPE, e)
},
isIncludes: function () {
return this._isOfType(jscsspToken.INCLUDES_TYPE)
},
isDashmatch: function () {
return this._isOfType(jscsspToken.DASHMATCH_TYPE)
},
isBeginsmatch: function () {
return this._isOfType(jscsspToken.BEGINSMATCH_TYPE)
},
isEndsmatch: function () {
return this._isOfType(jscsspToken.ENDSMATCH_TYPE)
},
isContainsmatch: function () {
return this._isOfType(jscsspToken.CONTAINSMATCH_TYPE)
},
isSymbol: function (e) {
return this._isOfType(jscsspToken.SYMBOL_TYPE, e)
},
isDimension: function () {
return this._isOfType(jscsspToken.DIMENSION_TYPE)
},
isPercentage: function () {
return this._isOfType(jscsspToken.PERCENTAGE_TYPE)
},
isHex: function () {
return this._isOfType(jscsspToken.HEX_TYPE)
},
isDimensionOfUnit: function (e) {
return this.isDimension() && this.unit == e
},
isLength: function () {
return this.isPercentage() || this.isDimensionOfUnit("cm") || this.isDimensionOfUnit("mm") || this.isDimensionOfUnit("in") || this.isDimensionOfUnit("pc") || this.isDimensionOfUnit("px") || this.isDimensionOfUnit("em") || this.isDimensionOfUnit("ex") || this.isDimensionOfUnit("pt")
},
isAngle: function () {
return this.isDimensionOfUnit("deg") || this.isDimensionOfUnit("rad") || this.isDimensionOfUnit("grad")
}
};
var kJscsspUNKNOWN_RULE = 0,
kJscsspSTYLE_RULE = 1,
kJscsspCHARSET_RULE = 2,
kJscsspIMPORT_RULE = 3,
kJscsspMEDIA_RULE = 4,
kJscsspFONT_FACE_RULE = 5,
kJscsspPAGE_RULE = 6,
kJscsspKEYFRAMES_RULE = 7,
kJscsspKEYFRAME_RULE = 8,
kJscsspNAMESPACE_RULE = 100,
kJscsspCOMMENT = 101,
kJscsspWHITE_SPACE = 102,
kJscsspVARIABLES_RULE = 200,
kJscsspSTYLE_DECLARATION = 1e3,
gTABS = "";
jscsspStylesheet.prototype = {
insertRule: function (e, t) {
try {
this.cssRules.splice(t, 1, e)
} catch (n) {}
},
deleteRule: function (e) {
try {
this.cssRules.splice(e)
} catch (t) {}
},
cssText: function () {
for (var e = "", t = 0; t < this.cssRules.length; t++) e += this.cssRules[t].cssText() + "\n";
return e
},
resolveVariables: function (e) {
function t(e, t) {
for (var n = 0; n < e.length; n++)
if (t == e[n]) return !0;
return !1
}
for (var n = 0; n < this.cssRules.length; n++) {
var i = this.cssRules[n];
if (i.type == kJscsspSTYLE_RULE || i.type == kJscsspIMPORT_RULE) break;
if (i.type == kJscsspVARIABLES_RULE && (!i.media.length || t(i.media, e)))
for (var r = 0; r < i.declarations.length; r++) {
for (var s = "", o = 0; o < i.declarations[r].values.length; o++) s += (o ? " " : "") + i.declarations[r].values[o].value;
this.variables[i.declarations[r].property] = s
}
}
}
}, jscsspCharsetRule.prototype = {
cssText: function () {
return "@charset " + this.encoding + ";"
},
setCssText: function (e) {
var t = {
cssRules: []
}, n = new CSSParser(e),
i = n.getToken(!1, !1);
if (i.isAtRule("@charset") && n.parseCharsetRule(i, t)) {
var r = t.cssRules[0];
return this.encoding = r.encoding, void(this.parsedCssText = r.parsedCssText)
}
throw DOMException.SYNTAX_ERR
}
}, jscsspErrorRule.prototype = {
cssText: function () {
return this.parsedCssText
}
}, jscsspComment.prototype = {
cssText: function () {
return this.parsedCssText
},
setCssText: function (e) {
var t = new CSSParser(e),
n = t.getToken(!0, !1);
if (!n.isComment()) throw DOMException.SYNTAX_ERR;
this.parsedCssText = n.value
}
}, jscsspWhitespace.prototype = {
cssText: function () {
return this.parsedCssText
}
}, jscsspImportRule.prototype = {
cssText: function () {
var e = this.media.join(", ");
return "@import " + this.href + (e && "all" != e ? e + " " : "") + ";"
},
setCssText: function (e) {
var t = {
cssRules: []
}, n = new CSSParser(e),
i = n.getToken(!0, !0);
if (i.isAtRule("@import") && n.parseImportRule(i, t)) {
var r = t.cssRules[0];
return this.href = r.href, this.media = r.media, void(this.parsedCssText = r.parsedCssText)
}
throw DOMException.SYNTAX_ERR
}
}, jscsspNamespaceRule.prototype = {
cssText: function () {
return "@namespace " + (this.prefix ? this.prefix + " " : "") + this.url + ";"
},
setCssText: function (e) {
var t = {
cssRules: []
}, n = new CSSParser(e),
i = n.getToken(!0, !0);
if (i.isAtRule("@namespace") && n.parseNamespaceRule(i, t)) {
var r = t.cssRules[0];
return this.url = r.url, this.prefix = r.prefix, void(this.parsedCssText = r.parsedCssText)
}
throw DOMException.SYNTAX_ERR
}
}, jscsspDeclaration.prototype = {
kCOMMA_SEPARATED: {
cursor: !0,
"font-family": !0,
"voice-family": !0,
"background-image": !0
},
kUNMODIFIED_COMMA_SEPARATED_PROPERTIES: {
"text-shadow": !0,
"box-shadow": !0,
"-moz-transition": !0,
"-moz-transition-property": !0,
"-moz-transition-duration": !0,
"-moz-transition-timing-function": !0,
"-moz-transition-delay": !0
},
cssText: function () {
var e = CssInspector.prefixesForProperty(this.property);
if (this.property in this.kUNMODIFIED_COMMA_SEPARATED_PROPERTIES) {
if (e) {
for (var t = "", n = 0; n < e.length; n++) {
var i = e[n];
t += (n ? gTABS : "") + i + ": ", t += this.valueText + (this.priority ? " !important" : "") + ";", t += e.length > 1 && n != e.length - 1 ? "\n" : ""
}
return t
}
return this.property + ": " + this.valueText + (this.priority ? " !important" : "") + ";"
}
if (e) {
for (var t = "", n = 0; n < e.length; n++) {
var i = e[n];
t += (n ? gTABS : "") + i + ": ";
for (var r = (i in this.kCOMMA_SEPARATED ? ", " : " "), s = 0; s < this.values.length; s++) {
if (null == this.values[s].cssText()) return null;
t += (s ? r : "") + this.values[s].cssText()
}
t += (this.priority ? " !important" : "") + ";" + (e.length > 1 && n != e.length - 1 ? "\n" : "")
}
return t
}
for (var t = this.property + ": ", r = (this.property in this.kCOMMA_SEPARATED ? ", " : " "), o = {
webkit: !1,
presto: !1,
trident: !1,
generic: !1
}, s = 0; s < this.values.length; s++) {
var a = this.values[s].cssText();
if (null == a) return null;
var l = a.indexOf("("),
u = a;
if (-1 != l && (u = a.substr(0, l)), u in kCSS_VENDOR_VALUES)
for (var c in kCSS_VENDOR_VALUES[u]) o[c] = o[c] || "" != kCSS_VENDOR_VALUES[u][c];
t += (s ? r : "") + a
}
t += (this.priority ? " !important" : "") + ";";
for (var c in o)
if (o[c]) {
for (var d = "\n" + gTABS + this.property + ": ", s = 0; s < this.values.length; s++) {
var a = this.values[s].cssText();
if (null == a) return null;
var l = a.indexOf("("),
u = a;
if (-1 != l && (u = a.substr(0, l)), u in kCSS_VENDOR_VALUES && (functor = kCSS_VENDOR_VALUES[u][c], functor && (a = "string" == typeof functor ? functor : functor(a, c), !a))) {
d = null;
break
}
d += (s ? r : "") + a
}
t += d ? d + ";" : "\n" + gTABS + "/* Impossible to translate property " + this.property + " for " + c + " */"
}
return t
},
setCssText: function (e) {
var t = [],
n = new CSSParser(e),
i = n.getToken(!0, !0);
if (n.parseDeclaration(i, t, !0, !0, null) && t.length && t[0].type == kJscsspSTYLE_DECLARATION) {
var r = t.cssRules[0];
return this.property = r.property, this.value = r.value, this.priority = r.priority, void(this.parsedCssText = newRule.parsedCssText)
}
throw DOMException.SYNTAX_ERR
}
}, jscsspFontFaceRule.prototype = {
cssText: function () {
var e = gTABS + "@font-face {\n",
t = gTABS;
gTABS += " ";
for (var n = 0; n < this.descriptors.length; n++) e += gTABS + this.descriptors[n].cssText() + "\n";
return gTABS = t, e + gTABS + "}"
},
setCssText: function (e) {
var t = {
cssRules: []
}, n = new CSSParser(e),
i = n.getToken(!0, !0);
if (i.isAtRule("@font-face") && n.parseFontFaceRule(i, t)) {
var r = t.cssRules[0];
return this.descriptors = r.descriptors, void(this.parsedCssText = r.parsedCssText)
}
throw DOMException.SYNTAX_ERR
}
}, jscsspKeyframesRule.prototype = {
cssText: function () {
var e = gTABS + "@keyframes " + this.name + " {\n",
t = gTABS;
gTABS += " ";
for (var n = 0; n < this.cssRules.length; n++) e += gTABS + this.cssRules[n].cssText() + "\n";
return gTABS = t, e += gTABS + "}\n"
},
setCssText: function (e) {
var t = {
cssRules: []
}, n = new CSSParser(e),
i = n.getToken(!0, !0);
if (i.isAtRule("@keyframes") && n.parseKeyframesRule(i, t)) {
var r = t.cssRules[0];
return this.cssRules = r.cssRules, this.name = r.name, void(this.parsedCssText = r.parsedCssText)
}
throw DOMException.SYNTAX_ERR
}
}, jscsspKeyframeRule.prototype = {
cssText: function () {
var e = this.keyText + " {\n",
t = gTABS;
gTABS += " ";
for (var n = 0; n < this.declarations.length; n++) {
var i = this.declarations[n].cssText();
i && (e += gTABS + this.declarations[n].cssText() + "\n")
}
return gTABS = t, e + gTABS + "}"
},
setCssText: function (e) {
var t = {
cssRules: []
}, n = new CSSParser(e),
i = n.getToken(!0, !0);
if (!i.isNotNull() && n.parseKeyframeRule(i, t, !1)) {
var r = t.cssRules[0];
return this.keyText = r.keyText, this.declarations = r.declarations, void(this.parsedCssText = r.parsedCssText)
}
throw DOMException.SYNTAX_ERR
}
}, jscsspMediaRule.prototype = {
cssText: function () {
var e = gTABS + "@media " + this.media.join(", ") + " {\n",
t = gTABS;
gTABS += " ";
for (var n = 0; n < this.cssRules.length; n++) e += gTABS + this.cssRules[n].cssText() + "\n";
return gTABS = t, e + gTABS + "}"
},
setCssText: function (e) {
var t = {
cssRules: []
}, n = new CSSParser(e),
i = n.getToken(!0, !0);
if (i.isAtRule("@media") && n.parseMediaRule(i, t)) {
var r = t.cssRules[0];
return this.cssRules = r.cssRules, this.media = r.media, void(this.parsedCssText = r.parsedCssText)
}
throw DOMException.SYNTAX_ERR
}
}, jscsspStyleRule.prototype = {
cssText: function () {
var e = this.mSelectorText + " {\n",
t = gTABS;
gTABS += " ";
for (var n = 0; n < this.declarations.length; n++) {
var i = this.declarations[n].cssText();
i && (e += gTABS + this.declarations[n].cssText() + "\n")
}
return gTABS = t, e + gTABS + "}"
},
setCssText: function (e) {
var t = {
cssRules: []
}, n = new CSSParser(e),
i = n.getToken(!0, !0);
if (!i.isNotNull() && n.parseStyleRule(i, t, !1)) {
var r = t.cssRules[0];
return this.mSelectorText = r.mSelectorText, this.declarations = r.declarations, void(this.parsedCssText = r.parsedCssText)
}
throw DOMException.SYNTAX_ERR
},
selectorText: function () {
return this.mSelectorText
},
setSelectorText: function (e) {
var t = new CSSParser(e),
n = t.getToken(!0, !0);
if (!n.isNotNull()) {
var i = t.parseSelector(n, !0);
if (i) return void(this.mSelectorText = i.selector)
}
throw DOMException.SYNTAX_ERR
}
}, jscsspPageRule.prototype = {
cssText: function () {
var e = gTABS + "@page " + (this.pageSelector ? this.pageSelector + " " : "") + "{\n",
t = gTABS;
gTABS += " ";
for (var n = 0; n < this.declarations.length; n++) e += gTABS + this.declarations[n].cssText() + "\n";
return gTABS = t, e + gTABS + "}"
},
setCssText: function (e) {
var t = {
cssRules: []
}, n = new CSSParser(e),
i = n.getToken(!0, !0);
if (i.isAtRule("@page") && n.parsePageRule(i, t)) {
var r = t.cssRules[0];
return this.pageSelector = r.pageSelector, this.declarations = r.declarations, void(this.parsedCssText = r.parsedCssText)
}
throw DOMException.SYNTAX_ERR
}
}, jscsspVariablesRule.prototype = {
cssText: function () {
var e = gTABS + "@variables " + (this.media.length ? this.media.join(", ") + " " : "") + "{\n",
t = gTABS;
gTABS += " ";
for (var n = 0; n < this.declarations.length; n++) e += gTABS + this.declarations[n].cssText() + "\n";
return gTABS = t, e + gTABS + "}"
},
setCssText: function (e) {
var t = {
cssRules: []
}, n = new CSSParser(e),
i = n.getToken(!0, !0);
if (i.isAtRule("@variables") && n.parseVariablesRule(i, t)) {
var r = t.cssRules[0];
return this.declarations = r.declarations, void(this.parsedCssText = r.parsedCssText)
}
throw DOMException.SYNTAX_ERR
}
};
var kJscsspINHERIT_VALUE = 0,
kJscsspPRIMITIVE_VALUE = 1,
kJscsspVARIABLE_VALUE = 4;
jscsspVariable.prototype = {
cssText: function () {
return this.type == kJscsspVARIABLE_VALUE ? this.resolveVariable(this.name, this.parentRule, this.parentStyleSheet) : this.value
},
setCssText: function (e) {
if (this.type == kJscsspVARIABLE_VALUE) throw DOMException.SYNTAX_ERR;
this.value = e
},
resolveVariable: function (e, t, n) {
return e.toLowerCase() in n.variables ? n.variables[e.toLowerCase()] : null
}
};
var inkblob;
writefile = function () {
stuff = parseParagraph(), console.log("Writing to " + inkblob.filename + "..."), filepicker.write(inkblob, stuff, function () {
console.log("write success")
}, function (e) {
console.log(e.toString())
})
}, filepicker.setKey("A3UKsLvhQj6x7lvSjJGWQz");
var ModalEffects = function () {
function e() {
var e = document.querySelector(".md-overlay");
[].slice.call(document.querySelectorAll(".md-trigger")).forEach(function (t) {
function n(e) {
classie.remove(r, "md-show"), e && classie.remove(document.documentElement, "md-perspective")
}
function i() {
n(classie.has(t, "md-setperspective"))
}
var r = document.querySelector("#" + t.getAttribute("data-modal")),
s = r.querySelector(".md-close");
t.addEventListener("click", function () {
classie.add(r, "md-show"), e.removeEventListener("click", i), e.addEventListener("click", i), classie.has(t, "md-setperspective") && setTimeout(function () {
classie.add(document.documentElement, "md-perspective")
}, 25)
}), s.addEventListener("click", function (e) {
e.stopPropagation(), i()
})
})
}
e()
}();
window.Modernizr = function (e, t, n) {
function i(e) {
h.cssText = e
}
function r(e, t) {
return typeof e === t
}
var s, o, a, l = "2.6.2",
u = {}, c = !0,
d = t.documentElement,
p = "modernizr",
f = t.createElement(p),
h = f.style,
m = ({}.toString, " -webkit- -moz- -o- -ms- ".split(" ")),
g = {}, v = [],
b = v.slice,
k = function (e, n, i, r) {
var s, o, a, l, u = t.createElement("div"),
c = t.body,
f = c || t.createElement("body");
if (parseInt(i, 10))
for (; i--;) a = t.createElement("div"), a.id = r ? r[i] : p + (i + 1), u.appendChild(a);
return s = ["&#173;", '<style id="s', p, '">', e, "</style>"].join(""), u.id = p, (c ? u : f).innerHTML += s, f.appendChild(u), c || (f.style.background = "", f.style.overflow = "hidden", l = d.style.overflow, d.style.overflow = "hidden", d.appendChild(f)), o = n(u, e), c ? u.parentNode.removeChild(u) : (f.parentNode.removeChild(f), d.style.overflow = l), !! o
}, y = {}.hasOwnProperty;
a = r(y, "undefined") || r(y.call, "undefined") ? function (e, t) {
return t in e && r(e.constructor.prototype[t], "undefined")
} : function (e, t) {
return y.call(e, t)
}, Function.prototype.bind || (Function.prototype.bind = function (e) {
var t = this;
if ("function" != typeof t) throw new TypeError;
var n = b.call(arguments, 1),
i = function () {
if (this instanceof i) {
var r = function () {};
r.prototype = t.prototype;
var s = new r,
o = t.apply(s, n.concat(b.call(arguments)));
return Object(o) === o ? o : s
}
return t.apply(e, n.concat(b.call(arguments)))
};
return i
}), g.touch = function () {
var n;
return "ontouchstart" in e || e.DocumentTouch && t instanceof DocumentTouch ? n = !0 : k(["@media (", m.join("touch-enabled),("), p, ")", "{#modernizr{top:9px;position:absolute}}"].join(""), function (e) {
n = 9 === e.offsetTop
}), n
};
for (var w in g) a(g, w) && (o = w.toLowerCase(), u[o] = g[w](), v.push((u[o] ? "" : "no-") + o));
return u.addTest = function (e, t) {
if ("object" == typeof e)
for (var i in e) a(e, i) && u.addTest(i, e[i]);
else {
if (e = e.toLowerCase(), u[e] !== n) return u;
t = "function" == typeof t ? t() : t, "undefined" != typeof c && c && (d.className += " " + (t ? "" : "no-") + e), u[e] = t
}
return u
}, i(""), f = s = null,
function (e, t) {
function n(e, t) {
var n = e.createElement("p"),
i = e.getElementsByTagName("head")[0] || e.documentElement;
return n.innerHTML = "x<style>" + t + "</style>", i.insertBefore(n.lastChild, i.firstChild)
}
function i() {
var e = v.elements;
return "string" == typeof e ? e.split(" ") : e
}
function r(e) {
var t = g[e[h]];
return t || (t = {}, m++, e[h] = m, g[m] = t), t
}
function s(e, n, i) {
if (n || (n = t), c) return n.createElement(e);
i || (i = r(n));
var s;
return s = i.cache[e] ? i.cache[e].cloneNode() : f.test(e) ? (i.cache[e] = i.createElem(e)).cloneNode() : i.createElem(e), s.canHaveChildren && !p.test(e) ? i.frag.appendChild(s) : s
}
function o(e, n) {
if (e || (e = t), c) return e.createDocumentFragment();
n = n || r(e);
for (var s = n.frag.cloneNode(), o = 0, a = i(), l = a.length; l > o; o++) s.createElement(a[o]);
return s
}
function a(e, t) {
t.cache || (t.cache = {}, t.createElem = e.createElement, t.createFrag = e.createDocumentFragment, t.frag = t.createFrag()), e.createElement = function (n) {
return v.shivMethods ? s(n, e, t) : t.createElem(n)
}, e.createDocumentFragment = Function("h,f", "return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&(" + i().join().replace(/\w+/g, function (e) {
return t.createElem(e), t.frag.createElement(e), 'c("' + e + '")'
}) + ");return n}")(v, t.frag)
}
function l(e) {
e || (e = t);
var i = r(e);
return v.shivCSS && !u && !i.hasCSS && (i.hasCSS = !! n(e, "article,aside,figcaption,figure,footer,header,hgroup,nav,section{display:block}mark{background:#FF0;color:#000}")), c || a(e, i), e
}
var u, c, d = e.html5 || {}, p = /^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,
f = /^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,
h = "_html5shiv",
m = 0,
g = {};
! function () {
try {
var e = t.createElement("a");
e.innerHTML = "<xyz></xyz>", u = "hidden" in e, c = 1 == e.childNodes.length || function () {
t.createElement("a");
var e = t.createDocumentFragment();
return "undefined" == typeof e.cloneNode || "undefined" == typeof e.createDocumentFragment || "undefined" == typeof e.createElement
}()
} catch (n) {
u = !0, c = !0
}
}();
var v = {
elements: d.elements || "abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",
shivCSS: d.shivCSS !== !1,
supportsUnknownElements: c,
shivMethods: d.shivMethods !== !1,
type: "default",
shivDocument: l,
createElement: s,
createDocumentFragment: o
};
e.html5 = v, l(t)
}(this, t), u._version = l, u._prefixes = m, u.testStyles = k, d.className = d.className.replace(/(^|\s)no-js(\s|$)/, "$1$2") + (c ? " js " + v.join(" ") : ""), u
}(this, this.document),
function (e, t, n) {
function i(e) {
return "[object Function]" == g.call(e)
}
function r(e) {
return "string" == typeof e
}
function s() {}
function o(e) {
return !e || "loaded" == e || "complete" == e || "uninitialized" == e
}
function a() {
var e = v.shift();
b = 1, e ? e.t ? h(function () {
("c" == e.t ? p.injectCss : p.injectJs)(e.s, 0, e.a, e.x, e.e, 1)
}, 0) : (e(), a()) : b = 0
}
function l(e, n, i, r, s, l, u) {
function c(t) {
if (!f && o(d.readyState) && (k.r = f = 1, !b && a(), d.onload = d.onreadystatechange = null, t)) {
"img" != e && h(function () {
w.removeChild(d)
}, 50);
for (var i in I[n]) I[n].hasOwnProperty(i) && I[n][i].onload()
}
}
var u = u || p.errorTimeout,
d = t.createElement(e),
f = 0,
g = 0,
k = {
t: i,
s: n,
e: s,
a: l,
x: u
};
1 === I[n] && (g = 1, I[n] = []), "object" == e ? d.data = n : (d.src = n, d.type = e), d.width = d.height = "0", d.onerror = d.onload = d.onreadystatechange = function () {
c.call(this, g)
}, v.splice(r, 0, k), "img" != e && (g || 2 === I[n] ? (w.insertBefore(d, y ? null : m), h(c, u)) : I[n].push(d))
}
function u(e, t, n, i, s) {
return b = 0, t = t || "j", r(e) ? l("c" == t ? S : T, e, t, this.i++, n, i, s) : (v.splice(this.i++, 0, e), 1 == v.length && a()), this
}
function c() {
var e = p;
return e.loader = {
load: u,
i: 0
}, e
}
var d, p, f = t.documentElement,
h = e.setTimeout,
m = t.getElementsByTagName("script")[0],
g = {}.toString,
v = [],
b = 0,
k = "MozAppearance" in f.style,
y = k && !! t.createRange().compareNode,
w = y ? f : m.parentNode,
f = e.opera && "[object Opera]" == g.call(e.opera),
f = !! t.attachEvent && !f,
T = k ? "object" : f ? "script" : "img",
S = f ? "script" : T,
x = Array.isArray || function (e) {
return "[object Array]" == g.call(e)
}, E = [],
I = {}, C = {
timeout: function (e, t) {
return t.length && (e.timeout = t[0]), e
}
};
p = function (e) {
function t(e) {
var t, n, i, e = e.split("!"),
r = E.length,
s = e.pop(),
o = e.length,
s = {
url: s,
origUrl: s,
prefixes: e
};
for (n = 0; o > n; n++) i = e[n].split("="), (t = C[i.shift()]) && (s = t(s, i));
for (n = 0; r > n; n++) s = E[n](s);
return s
}
function o(e, r, s, o, a) {
var l = t(e),
u = l.autoCallback;
l.url.split(".").pop().split("?").shift(), l.bypass || (r && (r = i(r) ? r : r[e] || r[o] || r[e.split("/").pop().split("?")[0]]), l.instead ? l.instead(e, r, s, o, a) : (I[l.url] ? l.noexec = !0 : I[l.url] = 1, s.load(l.url, l.forceCSS || !l.forceJS && "css" == l.url.split(".").pop().split("?").shift() ? "c" : n, l.noexec, l.attrs, l.timeout), (i(r) || i(u)) && s.load(function () {
c(), r && r(l.origUrl, a, o), u && u(l.origUrl, a, o), I[l.url] = 2
})))
}
function a(e, t) {
function n(e, n) {
if (e) {
if (r(e)) n || (d = function () {
var e = [].slice.call(arguments);
p.apply(this, e), f()
}), o(e, d, t, 0, u);
else if (Object(e) === e)
for (l in a = function () {
var t, n = 0;
for (t in e) e.hasOwnProperty(t) && n++;
return n
}(), e) e.hasOwnProperty(l) && (!n && !--a && (i(d) ? d = function () {
var e = [].slice.call(arguments);
p.apply(this, e), f()
} : d[l] = function (e) {
return function () {
var t = [].slice.call(arguments);
e && e.apply(this, t), f()
}
}(p[l])), o(e[l], d, t, l, u))
} else !n && f()
}
var a, l, u = !! e.test,
c = e.load || e.both,
d = e.callback || s,
p = d,
f = e.complete || s;
n(u ? e.yep : e.nope, !! c), c && n(c)
}
var l, u, d = this.yepnope.loader;
if (r(e)) o(e, 0, d, 0);
else if (x(e))
for (l = 0; l < e.length; l++) u = e[l], r(u) ? o(u, 0, d, 0) : x(u) ? p(u) : Object(u) === u && a(u, d);
else Object(e) === e && a(e, d)
}, p.addPrefix = function (e, t) {
C[e] = t
}, p.addFilter = function (e) {
E.push(e)
}, p.errorTimeout = 1e4, null == t.readyState && t.addEventListener && (t.readyState = "loading", t.addEventListener("DOMContentLoaded", d = function () {
t.removeEventListener("DOMContentLoaded", d, 0), t.readyState = "complete"
}, 0)), e.yepnope = c(), e.yepnope.executeStack = a, e.yepnope.injectJs = function (e, n, i, r, l, u) {
var c, d, f = t.createElement("script"),
r = r || p.errorTimeout;
f.src = e;
for (d in i) f.setAttribute(d, i[d]);
n = u ? a : n || s, f.onreadystatechange = f.onload = function () {
!c && o(f.readyState) && (c = 1, n(), f.onload = f.onreadystatechange = null)
}, h(function () {
c || (c = 1, n(1))
}, r), l ? f.onload() : m.parentNode.insertBefore(f, m)
}, e.yepnope.injectCss = function (e, n, i, r, o, l) {
var u, r = t.createElement("link"),
n = l ? a : n || s;
r.href = e, r.rel = "stylesheet", r.type = "text/css";
for (u in i) r.setAttribute(u, i[u]);
o || (m.parentNode.insertBefore(r, m), h(n, 0))
}
}(this, document), Modernizr.load = function () {
yepnope.apply(window, [].slice.call(arguments, 0))
}, window.Modernizr = function (e, t, n) {
function i(e) {
h.cssText = e
}
function r(e, t) {
return typeof e === t
}
var s, o, a, l = "2.7.1",
u = {}, c = !0,
d = t.documentElement,
p = "modernizr",
f = t.createElement(p),
h = f.style,
m = ({}.toString, " -webkit- -moz- -o- -ms- ".split(" ")),
g = {}, v = [],
b = v.slice,
k = function (e, n, i, r) {
var s, o, a, l, u = t.createElement("div"),
c = t.body,
f = c || t.createElement("body");
if (parseInt(i, 10))
for (; i--;) a = t.createElement("div"), a.id = r ? r[i] : p + (i + 1), u.appendChild(a);
return s = ["&#173;", '<style id="s', p, '">', e, "</style>"].join(""), u.id = p, (c ? u : f).innerHTML += s, f.appendChild(u), c || (f.style.background = "", f.style.overflow = "hidden", l = d.style.overflow, d.style.overflow = "hidden", d.appendChild(f)), o = n(u, e), c ? u.parentNode.removeChild(u) : (f.parentNode.removeChild(f), d.style.overflow = l), !! o
}, y = {}.hasOwnProperty;
a = r(y, "undefined") || r(y.call, "undefined") ? function (e, t) {
return t in e && r(e.constructor.prototype[t], "undefined")
} : function (e, t) {
return y.call(e, t)
}, Function.prototype.bind || (Function.prototype.bind = function (e) {
var t = this;
if ("function" != typeof t) throw new TypeError;
var n = b.call(arguments, 1),
i = function () {
if (this instanceof i) {
var r = function () {};
r.prototype = t.prototype;
var s = new r,
o = t.apply(s, n.concat(b.call(arguments)));
return Object(o) === o ? o : s
}
return t.apply(e, n.concat(b.call(arguments)))
};
return i
}), g.touch = function () {
var n;
return "ontouchstart" in e || e.DocumentTouch && t instanceof DocumentTouch ? n = !0 : k(["@media (", m.join("touch-enabled),("), p, ")", "{#modernizr{top:9px;position:absolute}}"].join(""), function (e) {
n = 9 === e.offsetTop
}), n
}, g.video = function () {
var e = t.createElement("video"),
n = !1;
try {
(n = !! e.canPlayType) && (n = new Boolean(n), n.ogg = e.canPlayType('video/ogg; codecs="theora"').replace(/^no$/, ""), n.h264 = e.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/, ""), n.webm = e.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/, ""))
} catch (i) {}
return n
};
for (var w in g) a(g, w) && (o = w.toLowerCase(), u[o] = g[w](), v.push((u[o] ? "" : "no-") + o));
return u.addTest = function (e, t) {
if ("object" == typeof e)
for (var i in e) a(e, i) && u.addTest(i, e[i]);
else {
if (e = e.toLowerCase(), u[e] !== n) return u;
t = "function" == typeof t ? t() : t, "undefined" != typeof c && c && (d.className += " w-mod-" + (t ? "" : "no-") + e), u[e] = t
}
return u
}, i(""), f = s = null,
function (e, t) {
function n(e, t) {
var n = e.createElement("p"),
i = e.getElementsByTagName("head")[0] || e.documentElement;
return n.innerHTML = "x<style>" + t + "</style>", i.insertBefore(n.lastChild, i.firstChild)
}
function i() {
var e = b.elements;
return "string" == typeof e ? e.split(" ") : e
}
function r(e) {
var t = v[e[m]];
return t || (t = {}, g++, e[m] = g, v[g] = t), t
}
function s(e, n, i) {
if (n || (n = t), c) return n.createElement(e);
i || (i = r(n));
var s;
return s = i.cache[e] ? i.cache[e].cloneNode() : h.test(e) ? (i.cache[e] = i.createElem(e)).cloneNode() : i.createElem(e), !s.canHaveChildren || f.test(e) || s.tagUrn ? s : i.frag.appendChild(s)
}
function o(e, n) {
if (e || (e = t), c) return e.createDocumentFragment();
n = n || r(e);
for (var s = n.frag.cloneNode(), o = 0, a = i(), l = a.length; l > o; o++) s.createElement(a[o]);
return s
}
function a(e, t) {
t.cache || (t.cache = {}, t.createElem = e.createElement, t.createFrag = e.createDocumentFragment, t.frag = t.createFrag()), e.createElement = function (n) {
return b.shivMethods ? s(n, e, t) : t.createElem(n)
}, e.createDocumentFragment = Function("h,f", "return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&(" + i().join().replace(/[\w\-]+/g, function (e) {
return t.createElem(e), t.frag.createElement(e), 'c("' + e + '")'
}) + ");return n}")(b, t.frag)
}
function l(e) {
e || (e = t);
var i = r(e);
return b.shivCSS && !u && !i.hasCSS && (i.hasCSS = !! n(e, "article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")), c || a(e, i), e
}
var u, c, d = "3.7.0",
p = e.html5 || {}, f = /^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,
h = /^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,
m = "_html5shiv",
g = 0,
v = {};
! function () {
try {
var e = t.createElement("a");
e.innerHTML = "<xyz></xyz>", u = "hidden" in e, c = 1 == e.childNodes.length || function () {
t.createElement("a");
var e = t.createDocumentFragment();
return "undefined" == typeof e.cloneNode || "undefined" == typeof e.createDocumentFragment || "undefined" == typeof e.createElement
}()
} catch (n) {
u = !0, c = !0
}
}();
var b = {
elements: p.elements || "abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video",
version: d,
shivCSS: p.shivCSS !== !1,
supportsUnknownElements: c,
shivMethods: p.shivMethods !== !1,
type: "default",
shivDocument: l,
createElement: s,
createDocumentFragment: o
};
e.html5 = b, l(t)
}(this, t), u._version = l, u._prefixes = m, u.testStyles = k, d.className = d.className.replace(/(^|\s)no-js(\s|$)/, "$1$2") + (c ? " w-mod-js w-mod-" + v.join(" w-mod-") : ""), u
}(this, this.document);
for (var langs = [
["Afrikaans", ["af-ZA"]],
["Bahasa Indonesia", ["id-ID"]],
["Bahasa Melayu", ["ms-MY"]],
["Catal\xe0", ["ca-ES"]],
["\u010ce\u0161tina", ["cs-CZ"]],
["Deutsch", ["de-DE"]],
["English", ["en-AU", "Australia"],
["en-CA", "Canada"],
["en-IN", "India"],
["en-NZ", "New Zealand"],
["en-ZA", "South Africa"],
["en-GB", "United Kingdom"],
["en-US", "United States"]
],
["Espa\xf1ol", ["es-AR", "Argentina"],
["es-BO", "Bolivia"],
["es-CL", "Chile"],
["es-CO", "Colombia"],
["es-CR", "Costa Rica"],
["es-EC", "Ecuador"],
["es-SV", "El Salvador"],
["es-ES", "Espa\xf1a"],
["es-US", "Estados Unidos"],
["es-GT", "Guatemala"],
["es-HN", "Honduras"],
["es-MX", "M\xe9xico"],
["es-NI", "Nicaragua"],
["es-PA", "Panam\xe1"],
["es-PY", "Paraguay"],
["es-PE", "Per\xfa"],
["es-PR", "Puerto Rico"],
["es-DO", "Rep\xfablica Dominicana"],
["es-UY", "Uruguay"],
["es-VE", "Venezuela"]
],
["Euskara", ["eu-ES"]],
["Fran\xe7ais", ["fr-FR"]],
["Galego", ["gl-ES"]],
["Hrvatski", ["hr_HR"]],
["IsiZulu", ["zu-ZA"]],
["\xcdslenska", ["is-IS"]],
["Italiano", ["it-IT", "Italia"],
["it-CH", "Svizzera"]
],
["Magyar", ["hu-HU"]],
["Nederlands", ["nl-NL"]],
["Norsk bokm\xe5l", ["nb-NO"]],
["Polski", ["pl-PL"]],
["Portugu\xeas", ["pt-BR", "Brasil"],
["pt-PT", "Portugal"]
],
["Rom\xe2n\u0103", ["ro-RO"]],
["Sloven\u010dina", ["sk-SK"]],
["Suomi", ["fi-FI"]],
["Svenska", ["sv-SE"]],
["T\xfcrk\xe7e", ["tr-TR"]],
["\u0431\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438", ["bg-BG"]],
["P\u0443\u0441\u0441\u043a\u0438\u0439", ["ru-RU"]],
["\u0421\u0440\u043f\u0441\u043a\u0438", ["sr-RS"]],
["\ud55c\uad6d\uc5b4", ["ko-KR"]],
["\u4e2d\u6587", ["cmn-Hans-CN", "\u666e\u901a\u8bdd (\u4e2d\u56fd\u5927\u9646)"],
["cmn-Hans-HK", "\u666e\u901a\u8bdd (\u9999\u6e2f)"],
["cmn-Hant-TW", "\u4e2d\u6587 (\u53f0\u7063)"],
["yue-Hant-HK", "\u7cb5\u8a9e (\u9999\u6e2f)"]
],
["\u65e5\u672c\u8a9e", ["ja-JP"]],
["Lingua lat\u012bna", ["la"]]
], i = 0; i < langs.length; i++) select_language.options[i] = new Option(langs[i][0], i);
select_language.selectedIndex = 6, updateCountry(), select_dialect.selectedIndex = 6, showInfo("info_start");
var create_email = !1,
final_transcript = "",
counter = 0,
all_text = "",
four_sentences = "",
recognizing = !1,
fileselected = !1,
ignore_onend, start_timestamp, prevTopics = [];
if ("webkitSpeechRecognition" in window) {
start_button.style.display = "inline-block";
var recognition = new webkitSpeechRecognition;
recognition.continuous = !0, recognition.interimResults = !0, recognition.onstart = function () {
recognizing = !0, showInfo("info_speak_now"), start_img.src = "https://www.google.com/intl/en/chrome/assets/common/images/content/mic-animate.gif"
}, recognition.onerror = function (e) {
"no-speech" == e.error && (start_img.src = "https://www.google.com/intl/en/chrome/assets/common/images/content/mic.gif", showInfo("info_no_speech"), ignore_onend = !0), "audio-capture" == e.error && (start_img.src = "https://www.google.com/intl/en/chrome/assets/common/images/content/mic.gif", showInfo("info_no_microphone"), ignore_onend = !0), "not-allowed" == e.error && (showInfo(e.timeStamp - start_timestamp < 100 ? "info_blocked" : "info_denied"), ignore_onend = !0)
}, recognition.onend = function () {
if (recognizing = !1, !ignore_onend) {
if (start_img.src = "https://www.google.com/intl/en/chrome/assets/common/images/content/mic.gif", !final_transcript) return void showInfo("info_start");
if (showInfo(""), window.getSelection) {
window.getSelection().removeAllRanges();
var e = document.createRange();
e.selectNode(document.getElementById("final_span")), window.getSelection().addRange(e)
}
create_email && (create_email = !1, createEmail())
}
}, recognition.onresult = function (e) {
var t = "";
final_transcript = "";
var n;
if ("undefined" == typeof e.results) return recognition.onend = null, recognition.stop(), void upgrade();
for (var i = e.resultIndex; i < e.results.length; ++i) e.results[i].isFinal ? (console.log(e.results[i][0].confidence + "for : " + e.results[i][0]), n = e.results[i][0].confidence > .75 ? "rgb(" + Math.round(150 - 600 * (e.results[i][0].confidence - .75)) + ",255," + Math.round(150 - 600 * (e.results[i][0].confidence - .75)) + ")" : "rgb(255, " + Math.round(200 * e.results[i][0].confidence) + "," + Math.round(200 * e.results[i][0].confidence) + ")", final_transcript += e.results[i][0].transcript) : t += e.results[i][0].transcript;
final_transcript = capitalize(final_transcript), final_transcript && (counter++, four_sentences += final_transcript, all_text += final_transcript, counter % 4 == 0 && (counter = 0, $.ajax({
type: "GET",
crossDomain: !0,
dataType: "jsonp",
jsonp: "jsonp",
url: "http://access.alchemyapi.com/calls/text/TextGetRankedConcepts",
success: function (e) {
console.log(e), e.concepts.length > 0 && e.concepts[0].relevance > .75 && (final_span.innerHTML += "<li class='floatleft' style='color:blue;'>" + e.concepts[0].text + "</li>", inkblob && writefile(all_text)), four_sentences = "", temp = $("#final_temp"), final_span.innerHTML += temp[0].innerHTML, inkblob && writefile(all_text), temp[0].innerHTML = ""
},
data: {
outputMode: "json",
text: four_sentences,
apikey: "12c03efad5071dc17762332480c35cf703a3315b"
}
})), final_temp.innerHTML += "<li style='color:" + n + ";' class='bullet-point'>" + linebreak(final_transcript) + "</li>", $(".bullet-point").hover(function () {
$(this).css("color", "black")
})), interim_span.innerHTML = linebreak(t), (final_transcript || t) && showButtons("inline-block")
}
} else upgrade();
var two_line = /\n\n/g,
one_line = /\n/g,
first_char = /\S/,
current_style;
(function () {}).call(this);
var Webflow = {
w: Webflow
};
Webflow.init = function () {
"use strict";
function e(e, t) {
var n = [],
i = {};
return i.up = l.throttle(function (e) {
l.each(n, function (t) {
t(e)
})
}), e.on(t, i.up), i.on = function (e) {
"function" == typeof e && (l.contains(n, e) || n.push(e))
}, i.off = function (e) {
n = l.filter(n, function (t) {
return t !== e
})
}, i
}
function t() {
var e = {};
e.VERSION = "1.5.2-Webflow";
var t = {}, n = Array.prototype,
i = Object.prototype,
r = Function.prototype,
s = (n.push, n.slice),
o = (n.concat, i.toString, i.hasOwnProperty),
a = n.forEach,
l = n.map,
u = (n.reduce, n.reduceRight, n.filter),
c = (n.every, n.some),
d = n.indexOf,
p = (n.lastIndexOf, Array.isArray, Object.keys),
f = (r.bind, e.each = e.forEach = function (n, i, r) {
if (null != n)
if (a && n.forEach === a) n.forEach(i, r);
else if (n.length === +n.length) {
for (var s = 0, o = n.length; o > s; s++)
if (i.call(r, n[s], s, n) === t) return
} else
for (var l = e.keys(n), s = 0, o = l.length; o > s; s++)
if (i.call(r, n[l[s]], l[s], n) === t) return
});
e.map = e.collect = function (e, t, n) {
var i = [];
return null == e ? i : l && e.map === l ? e.map(t, n) : (f(e, function (e, r, s) {
i.push(t.call(n, e, r, s))
}), i)
}, e.filter = e.select = function (e, t, n) {
var i = [];
return null == e ? i : u && e.filter === u ? e.filter(t, n) : (f(e, function (e, r, s) {
t.call(n, e, r, s) && i.push(e)
}), i)
};
var h = e.some = e.any = function (n, i, r) {
i || (i = e.identity);
var s = !1;
return null == n ? s : c && n.some === c ? n.some(i, r) : (f(n, function (e, n, o) {
return s || (s = i.call(r, e, n, o)) ? t : void 0
}), !! s)
};
return e.contains = e.include = function (e, t) {
return null == e ? !1 : d && e.indexOf === d ? -1 != e.indexOf(t) : h(e, function (e) {
return e === t
})
}, e.delay = function (e, t) {
var n = s.call(arguments, 2);
return setTimeout(function () {
return e.apply(null, n)
}, t)
}, e.defer = function (t) {
return e.delay.apply(e, [t, 1].concat(s.call(arguments, 1)))
}, e.throttle = function (e) {
var t, n, i;
return function () {
t || (t = !0, n = arguments, i = this, window.tram.frame(function () {
t = !1, e.apply(i, n)
}))
}
}, e.debounce = function (e, t, n) {
var i, r, s, o, a;
return function () {
s = this, r = arguments, o = new Date;
var l = function () {
var u = new Date - o;
t > u ? i = setTimeout(l, t - u) : (i = null, n || (a = e.apply(s, r)))
}, u = n && !i;
return i || (i = setTimeout(l, t)), u && (a = e.apply(s, r)), a
}
}, e.keys = p || function (t) {
if (t !== Object(t)) throw new TypeError("Invalid object");
var n = [];
for (var i in t) e.has(t, i) && n.push(i);
return n
}, e.has = function (e, t) {
return o.call(e, t)
}, e
}
var n = window.$,
i = {}, r = {}, s = [],
o = this.w || [],
a = n(window),
l = i._ = t(),
u = !1;
i.define = function (e, t) {
var o = r[e] = t(n, l);
o && (i.env() && (n.isFunction(o.design) && window.addEventListener("__wf_design", o.design), n.isFunction(o.preview) && window.addEventListener("__wf_preview", o.preview)), o.ready && n.isFunction(o.ready) && (u ? o.ready() : s.push(o.ready)))
}, i.require = function (e) {
return r[e]
}, i.push = function (e) {
return u ? void(n.isFunction(e) && e()) : void o.push(e)
}, i.env = function (e) {
var t = window.__wf_design,
n = "undefined" != typeof t;
return e ? "design" == e ? n && t : "preview" == e ? n && !t : "slug" == e ? n && window.__wf_slug : void 0 : n
};
var c = navigator.userAgent;
i.env.touch = "ontouchstart" in window || window.DocumentTouch && document instanceof window.DocumentTouch, i.env.chrome = /chrome|crios/i.test(c), i.script = function (e) {
var t = document,
n = t.createElement("script");
n.type = "text/javascript", n.src = e, t.getElementsByTagName("head")[0].appendChild(n)
};
var d = "resize.webflow orientationchange.webflow load.webflow",
p = "scroll.webflow " + d;
if (i.resize = e(a, d), i.scroll = e(a, p), i.location = function (e) {
window.location = e
}, i.env()) {
var f = window.Event,
h = new f("__wf_redraw");
n.fn.redraw = function () {
return this.each(function () {
this.dispatchEvent(h)
})
}, i.location = function (e) {
window.dispatchEvent(new CustomEvent("__wf_location", {
detail: e
}))
}
}
n(function () {
u = !0, n.each(s.concat(o), function (e, t) {
n.isFunction(t) && t()
}), i.resize.up()
}), Webflow = i
}, window.tram = function (e) {
function t(e, t) {
var n = new O.Bare;
return n.init(e, t)
}
function n(e) {
return e.replace(/[A-Z]/g, function (e) {
return "-" + e.toLowerCase()
})
}
function i(e) {
var t = parseInt(e.slice(1), 16),
n = 255 & t >> 16,
i = 255 & t >> 8,
r = 255 & t;
return [n, i, r]
}
function r(e, t, n) {
return "#" + (1 << 24 | e << 16 | t << 8 | n).toString(16).slice(1)
}
function s() {}
function o(e, t) {
K("Type warning: Expected: [" + e + "] Got: [" + typeof t + "] " + t)
}
function a(e, t, n) {
K("Units do not match [" + e + "]: " + t + ", " + n)
}
function l(e, t, n) {
if (void 0 !== t && (n = t), void 0 === e) return n;
var i = n;
return J.test(e) || !G.test(e) ? i = parseInt(e, 10) : G.test(e) && (i = 1e3 * parseFloat(e)), 0 > i && (i = 0), i === i ? i : n
}
function u(e) {
for (var t = -1, n = e ? e.length : 0, i = []; n > ++t;) {
var r = e[t];
r && i.push(r)
}
return i
}
var c = function (e, t, n) {
function i(e) {
return "object" == typeof e
}
function r(e) {
return "function" == typeof e
}
function s() {}
function o(a, l) {
function u() {
var e = new c;
return r(e.init) && e.init.apply(e, arguments), e
}
function c() {}
l === n && (l = a, a = Object), u.Bare = c;
var d, p = s[e] = a[e],
f = c[e] = u[e] = new s;
return f.constructor = u, u.mixin = function (t) {
return c[e] = u[e] = o(u, t)[e], u
}, u.open = function (e) {
if (d = {}, r(e) ? d = e.call(u, f, p, u, a) : i(e) && (d = e), i(d))
for (var n in d) t.call(d, n) && (f[n] = d[n]);
return r(f.init) || (f.init = a), u
}, u.open(l)
}
return o
}("prototype", {}.hasOwnProperty),
d = {
ease: ["ease",
function (e, t, n, i) {
var r = (e /= i) * e,
s = r * e;
return t + n * (-2.75 * s * r + 11 * r * r + -15.5 * s + 8 * r + .25 * e)
}
],
"ease-in": ["ease-in",
function (e, t, n, i) {
var r = (e /= i) * e,
s = r * e;
return t + n * (-1 * s * r + 3 * r * r + -3 * s + 2 * r)
}
],
"ease-out": ["ease-out",
function (e, t, n, i) {
var r = (e /= i) * e,
s = r * e;
return t + n * (.3 * s * r + -1.6 * r * r + 2.2 * s + -1.8 * r + 1.9 * e)
}
],
"ease-in-out": ["ease-in-out",
function (e, t, n, i) {
var r = (e /= i) * e,
s = r * e;
return t + n * (2 * s * r + -5 * r * r + 2 * s + 2 * r)
}
],
linear: ["linear",
function (e, t, n, i) {
return n * e / i + t
}
],
"ease-in-quad": ["cubic-bezier(0.550, 0.085, 0.680, 0.530)",
function (e, t, n, i) {
return n * (e /= i) * e + t
}
],
"ease-out-quad": ["cubic-bezier(0.250, 0.460, 0.450, 0.940)",
function (e, t, n, i) {
return -n * (e /= i) * (e - 2) + t
}
],
"ease-in-out-quad": ["cubic-bezier(0.455, 0.030, 0.515, 0.955)",
function (e, t, n, i) {
return 1 > (e /= i / 2) ? n / 2 * e * e + t : -n / 2 * (--e * (e - 2) - 1) + t
}
],
"ease-in-cubic": ["cubic-bezier(0.550, 0.055, 0.675, 0.190)",
function (e, t, n, i) {
return n * (e /= i) * e * e + t
}
],
"ease-out-cubic": ["cubic-bezier(0.215, 0.610, 0.355, 1)",
function (e, t, n, i) {
return n * ((e = e / i - 1) * e * e + 1) + t
}
],
"ease-in-out-cubic": ["cubic-bezier(0.645, 0.045, 0.355, 1)",
function (e, t, n, i) {
return 1 > (e /= i / 2) ? n / 2 * e * e * e + t : n / 2 * ((e -= 2) * e * e + 2) + t
}
],
"ease-in-quart": ["cubic-bezier(0.895, 0.030, 0.685, 0.220)",
function (e, t, n, i) {
return n * (e /= i) * e * e * e + t
}
],
"ease-out-quart": ["cubic-bezier(0.165, 0.840, 0.440, 1)",
function (e, t, n, i) {
return -n * ((e = e / i - 1) * e * e * e - 1) + t
}
],
"ease-in-out-quart": ["cubic-bezier(0.770, 0, 0.175, 1)",
function (e, t, n, i) {
return 1 > (e /= i / 2) ? n / 2 * e * e * e * e + t : -n / 2 * ((e -= 2) * e * e * e - 2) + t
}
],
"ease-in-quint": ["cubic-bezier(0.755, 0.050, 0.855, 0.060)",
function (e, t, n, i) {
return n * (e /= i) * e * e * e * e + t
}
],
"ease-out-quint": ["cubic-bezier(0.230, 1, 0.320, 1)",
function (e, t, n, i) {
return n * ((e = e / i - 1) * e * e * e * e + 1) + t
}
],
"ease-in-out-quint": ["cubic-bezier(0.860, 0, 0.070, 1)",
function (e, t, n, i) {
return 1 > (e /= i / 2) ? n / 2 * e * e * e * e * e + t : n / 2 * ((e -= 2) * e * e * e * e + 2) + t
}
],
"ease-in-sine": ["cubic-bezier(0.470, 0, 0.745, 0.715)",
function (e, t, n, i) {
return -n * Math.cos(e / i * (Math.PI / 2)) + n + t
}
],
"ease-out-sine": ["cubic-bezier(0.390, 0.575, 0.565, 1)",
function (e, t, n, i) {
return n * Math.sin(e / i * (Math.PI / 2)) + t
}
],
"ease-in-out-sine": ["cubic-bezier(0.445, 0.050, 0.550, 0.950)",
function (e, t, n, i) {
return -n / 2 * (Math.cos(Math.PI * e / i) - 1) + t
}
],
"ease-in-expo": ["cubic-bezier(0.950, 0.050, 0.795, 0.035)",
function (e, t, n, i) {
return 0 === e ? t : n * Math.pow(2, 10 * (e / i - 1)) + t
}
],
"ease-out-expo": ["cubic-bezier(0.190, 1, 0.220, 1)",
function (e, t, n, i) {
return e === i ? t + n : n * (-Math.pow(2, -10 * e / i) + 1) + t
}
],
"ease-in-out-expo": ["cubic-bezier(1, 0, 0, 1)",
function (e, t, n, i) {
return 0 === e ? t : e === i ? t + n : 1 > (e /= i / 2) ? n / 2 * Math.pow(2, 10 * (e - 1)) + t : n / 2 * (-Math.pow(2, -10 * --e) + 2) + t
}
],
"ease-in-circ": ["cubic-bezier(0.600, 0.040, 0.980, 0.335)",
function (e, t, n, i) {
return -n * (Math.sqrt(1 - (e /= i) * e) - 1) + t
}
],
"ease-out-circ": ["cubic-bezier(0.075, 0.820, 0.165, 1)",
function (e, t, n, i) {
return n * Math.sqrt(1 - (e = e / i - 1) * e) + t
}
],
"ease-in-out-circ": ["cubic-bezier(0.785, 0.135, 0.150, 0.860)",
function (e, t, n, i) {
return 1 > (e /= i / 2) ? -n / 2 * (Math.sqrt(1 - e * e) - 1) + t : n / 2 * (Math.sqrt(1 - (e -= 2) * e) + 1) + t
}
],
"ease-in-back": ["cubic-bezier(0.600, -0.280, 0.735, 0.045)",
function (e, t, n, i, r) {
return void 0 === r && (r = 1.70158), n * (e /= i) * e * ((r + 1) * e - r) + t
}
],
"ease-out-back": ["cubic-bezier(0.175, 0.885, 0.320, 1.275)",
function (e, t, n, i, r) {
return void 0 === r && (r = 1.70158), n * ((e = e / i - 1) * e * ((r + 1) * e + r) + 1) + t
}
],
"ease-in-out-back": ["cubic-bezier(0.680, -0.550, 0.265, 1.550)",
function (e, t, n, i, r) {
return void 0 === r && (r = 1.70158), 1 > (e /= i / 2) ? n / 2 * e * e * (((r *= 1.525) + 1) * e - r) + t : n / 2 * ((e -= 2) * e * (((r *= 1.525) + 1) * e + r) + 2) + t
}
]
}, p = {
"ease-in-back": "cubic-bezier(0.600, 0, 0.735, 0.045)",
"ease-out-back": "cubic-bezier(0.175, 0.885, 0.320, 1)",
"ease-in-out-back": "cubic-bezier(0.680, 0, 0.265, 1)"
}, f = document,
h = window,
m = "bkwld-tram",
g = /[\-\.0-9]/g,
v = /[A-Z]/,
b = "number",
k = /^(rgb|#)/,
y = /(em|cm|mm|in|pt|pc|px)$/,
w = /(em|cm|mm|in|pt|pc|px|%)$/,
T = /(deg|rad|turn)$/,
S = "unitless",
x = " ",
E = f.createElement("a"),
I = ["Webkit", "Moz", "O", "ms"],
C = ["-webkit-", "-moz-", "-o-", "-ms-"],
R = function (e) {
if (e in E.style) return {
dom: e,
css: e
};
var t, n, i = "",
r = e.split("-");
for (t = 0; r.length > t; t++) i += r[t].charAt(0).toUpperCase() + r[t].slice(1);
for (t = 0; I.length > t; t++)
if (n = I[t] + i, n in E.style) return {
dom: n,
css: C[t] + e
}
}, N = t.support = {
bind: Function.prototype.bind,
transform: R("transform"),
transition: R("transition"),
backface: R("backface-visibility"),
timing: R("transition-timing-function")
};
if (N.transition) {
var _ = N.timing.dom;
if (E.style[_] = d["ease-in-back"][0], !E.style[_])
for (var D in p) d[D][0] = p[D]
}
var A = t.frame = function () {
var e = h.requestAnimationFrame || h.webkitRequestAnimationFrame || h.mozRequestAnimationFrame || h.oRequestAnimationFrame || h.msRequestAnimationFrame;
return e && N.bind ? e.bind(h) : function (e) {
h.setTimeout(e, 16)
}
}(),
P = t.now = function () {
var e = h.performance,
t = e && (e.now || e.webkitNow || e.msNow || e.mozNow);
return t && N.bind ? t.bind(e) : Date.now || function () {
return +new Date
}
}(),
L = c(function (t) {
function i(e, t) {
var n = u(("" + e).split(x)),
i = n[0];
t = t || {};
var r = Y[i];
if (!r) return K("Unsupported property: " + i);
if (!t.weak || !this.props[i]) {
var s = r[0],
o = this.props[i];
return o || (o = this.props[i] = new s.Bare), o.init(this.$el, n, r, t), o
}
}
function r(e, t, n) {
if (e) {
var r = typeof e;
if (t || (this.timer && this.timer.destroy(), this.queue = [], this.active = !1), "number" == r && t) return this.timer = new U({
duration: e,
context: this,
complete: a
}), void(this.active = !0);
if ("string" == r && t) {
switch (e) {
case "hide":
f.call(this);
break;
case "stop":
c.call(this);
break;
case "redraw":
h.call(this);
break;
default:
i.call(this, e, n && n[1])
}
return a.call(this)
}
if ("function" == r) return void e.call(this, this);
if ("object" == r) {
var s = 0;
g.call(this, e, function (e, t) {
e.span > s && (s = e.span), e.stop(), e.animate(t)
}, function (e) {
"wait" in e && (s = l(e.wait, 0))
}), m.call(this), s > 0 && (this.timer = new U({
duration: s,
context: this
}), this.active = !0, t && (this.timer.complete = a));
var o = this,
u = !1,
d = {};
A(function () {
g.call(o, e, function (e) {
e.active && (u = !0, d[e.name] = e.nextStyle)
}), u && o.$el.css(d)
})
}
}
}
function s(e) {
e = l(e, 0), this.active ? this.queue.push({
options: e
}) : (this.timer = new U({
duration: e,
context: this,
complete: a
}), this.active = !0)
}
function o(e) {
return this.active ? (this.queue.push({
options: e,
args: arguments
}), void(this.timer.complete = a)) : K("No active transition timer. Use start() or wait() before then().")
}
function a() {
if (this.timer && this.timer.destroy(), this.active = !1, this.queue.length) {
var e = this.queue.shift();
r.call(this, e.options, !0, e.args)
}
}
function c(e, t) {
this.timer && this.timer.destroy(), this.queue = [], this.active = !1;
var n;
"string" == typeof e ? (n = {}, n[e] = 1) : n = "object" == typeof e && null != e ? e : this.props, t ? (g.call(this, n, k), m.call(this), g.call(this, n, y)) : (g.call(this, n, b), m.call(this))
}
function d(e) {
c.call(this, e), g.call(this, e, w, T)
}
function p(e) {
"string" != typeof e && (e = "block"), this.el.style.display = e
}
function f() {
c.call(this), this.el.style.display = "none"
}
function h() {
this.el.offsetHeight
}
function m() {
var e, t, n = [];
for (e in this.props) t = this.props[e], t.active && n.push(t.string);
n = n.join(","), this.style !== n && (this.style = n, this.el.style[N.transition.dom] = n)
}
function g(e, t, r) {
var s, o, a, l, u = t !== b && t !== k && t !== y,
c = {};
for (s in e) a = e[s], s in $ ? (c.transform || (c.transform = {}), c.transform[s] = a) : (v.test(s) && (s = n(s)), s in Y ? c[s] = a : (l || (l = {}), l[s] = a));
for (s in c) {
if (a = c[s], o = this.props[s], !o) {
if (!u) continue;
o = i.call(this, s)
}
t.call(this, o, a)
}
r && l && r.call(this, l)
}
function b(e) {
e.stop()
}
function k(e) {
e.pause()
}
function y(e) {
e.stop(!0)
}
function w(e, t) {
e.set(t)
}
function T(e) {
this.$el.css(e)
}
function S(e, n) {
t[e] = function () {
return this.children ? E.call(this, n, arguments) : (this.el && n.apply(this, arguments), this)
}
}
function E(e, t) {
var n, i = this.children.length;
for (n = 0; i > n; n++) e.apply(this.children[n], t);
return this
}
t.init = function (t) {
this.$el = e(t), this.el = this.$el[0], this.props = {}, this.queue = [], this.style = "", this.active = !1, N.backface && B.hideBackface && q(this.el, N.backface.css, "hidden")
}, S("add", i), S("start", r), S("wait", s), S("then", o), S("next", a), S("stop", c), S("set", d), S("show", p), S("hide", f), S("redraw", h)
}),
O = c(L, function (t) {
function n(t, n) {
var i = e.data(t, m) || e.data(t, m, new L.Bare);
return i.el || i.init(t), n ? i.start(n) : i
}
t.init = function (t, i) {
var r = e(t);
if (!r.length) return this;
if (1 === r.length) return n(r[0], i);
var s = [];
return r.each(function (e, t) {
s.push(n(t, i))
}), this.children = s, this
}
}),
j = c(function (e) {
function t(e, t, n) {
return void 0 !== t && (n = t), e in d ? e : n
}
function n(e) {
var t = /rgba?\((\d+),\s*(\d+),\s*(\d+)/.exec(e);
return (t ? r(t[1], t[2], t[3]) : e).replace(/#(\w)(\w)(\w)$/, "#$1$1$2$2$3$3")
}
var i = {
duration: 500,
ease: "ease",
delay: 0
};
e.init = function (e, n, r, s) {
this.$el = e, this.el = e[0];
var o = n[0];
r[2] && (o = r[2]), V[o] && (o = V[o]), this.name = o, this.type = r[1], this.duration = l(n[1], this.duration, i.duration), this.ease = t(n[2], this.ease, i.ease), this.delay = l(n[3], this.delay, i.delay), this.span = this.duration + this.delay, this.active = !1, this.nextStyle = null, this.unit = s.unit || this.unit || B.defaultUnit, this.angle = s.angle || this.angle || B.defaultAngle, B.fallback || s.fallback ? this.animate = this.fallback : (this.animate = this.transition, this.string = this.name + x + this.duration + "ms" + ("ease" != this.ease ? x + d[this.ease][0] : "") + (this.delay ? x + this.delay + "ms" : ""))
}, e.set = function (e) {
e = this.convert(e, this.type), this.update(e), this.redraw()
}, e.transition = function (e) {
this.active = !0, this.nextStyle = this.convert(e, this.type)
}, e.fallback = function (e) {
this.tween = new H({
from: this.convert(this.get(), this.type),
to: this.convert(e, this.type),
duration: this.duration,
delay: this.delay,
ease: this.ease,
update: this.update,
context: this
})
}, e.get = function () {
return X(this.el, this.name)
}, e.update = function (e) {
q(this.el, this.name, e)
}, e.pause = function () {
this.active && (this.active = !1, this.update(this.get()), this.redraw())
}, e.stop = function (e) {
var t = this.nextStyle;
(this.active || t) && (this.active = !1, this.nextStyle = null, this.update(e ? t : this.get()));
var n = this.tween;
n && n.active && (e && n.render(n.start + n.delay + n.duration), n.destroy())
}, e.convert = function (e, t) {
var i, r = "number" == typeof e,
s = "string" == typeof e;
switch (t) {
case b:
if (r) return e;
if (s && "" === e.replace(g, "")) return +e;
i = "number(unitless)";
break;
case k:
if (s) {
if ("" === e && this.original) return this.original;
if (t.test(e)) return "#" == e.charAt(0) && 7 == e.length ? e : n(e)
}
i = "hex or rgb string";
break;
case y:
if (r) return e + this.unit;
if (s && t.test(e)) return e;
i = "number(px) or string(unit)";
break;
case w:
if (r) return e + this.unit;
if (s && t.test(e)) return e;
i = "number(px) or string(unit or %)";
break;
case T:
if (r) return e + this.angle;
if (s && t.test(e)) return e;
i = "number(deg) or string(angle)";
break;
case S:
if (r) return e;
if (s && w.test(e)) return e;
i = "number(unitless) or string(unit or %)"
}
return o(i, e), e
}, e.redraw = function () {
this.el.offsetHeight
}
}),
F = c(j, function (e, t) {
e.init = function () {
t.init.apply(this, arguments), this.original || (this.original = this.convert(this.get(), k))
}
}),
M = c(j, function (e, t) {
e.init = function () {
t.init.apply(this, arguments), this.animate = this.fallback
}, e.get = function () {
return this.$el[this.name]()
}, e.update = function (e) {
this.$el[this.name](e)
}
}),
z = c(j, function (e, t) {
function n(e, t) {
var n, i, r, s, o;
for (n in e) s = $[n], r = s[0], i = s[1] || n, o = this.convert(e[n], r), t.call(this, i, o, r)
}
e.init = function () {
t.init.apply(this, arguments), this.current || (this.current = {}, $.perspective && B.perspective && (this.current.perspective = B.perspective, q(this.el, this.name, this.style(this.current)), this.redraw()))
}, e.set = function (e) {
n.call(this, e, function (e, t) {
this.current[e] = t
}), q(this.el, this.name, this.style(this.current)), this.redraw()
}, e.transition = function (e) {
var t = this.values(e);
this.tween = new W({
current: this.current,
values: t,
duration: this.duration,
delay: this.delay,
ease: this.ease
});
var n, i = {};
for (n in this.current) i[n] = n in t ? t[n] : this.current[n];
this.active = !0, this.nextStyle = this.style(i)
}, e.fallback = function (e) {
var t = this.values(e);
this.tween = new W({
current: this.current,
values: t,
duration: this.duration,
delay: this.delay,
ease: this.ease,
update: this.update,
context: this
})
}, e.update = function () {
q(this.el, this.name, this.style(this.current))
}, e.style = function (e) {
var t, n = "";
for (t in e) n += t + "(" + e[t] + ") ";
return n
}, e.values = function (e) {
var t, i = {};
return n.call(this, e, function (e, n, r) {
i[e] = n, void 0 === this.current[e] && (t = 0, ~e.indexOf("scale") && (t = 1), this.current[e] = this.convert(t, r))
}), i
}
}),
H = c(function (t) {
function n(e) {
1 === f.push(e) && A(o)
}
function o() {
var e, t, n, i = f.length;
if (i)
for (A(o), t = P(), e = i; e--;) n = f[e], n && n.render(t)
}
function l(t) {
var n, i = e.inArray(t, f);
i >= 0 && (n = f.slice(i + 1), f.length = i, n.length && (f = f.concat(n)))
}
function u(e) {
return Math.round(e * h) / h
}
function c(e, t, n) {
return r(e[0] + n * (t[0] - e[0]), e[1] + n * (t[1] - e[1]), e[2] + n * (t[2] - e[2]))
}
var p = {
ease: d.ease[1],
from: 0,
to: 1
};
t.init = function (e) {
this.duration = e.duration || 0, this.delay = e.delay || 0;
var t = e.ease || p.ease;
d[t] && (t = d[t][1]), "function" != typeof t && (t = p.ease), this.ease = t, this.update = e.update || s, this.complete = e.complete || s, this.context = e.context || this, this.name = e.name;
var n = e.from,
i = e.to;
void 0 === n && (n = p.from), void 0 === i && (i = p.to), this.unit = e.unit || "", "number" == typeof n && "number" == typeof i ? (this.begin = n, this.change = i - n) : this.format(i, n), this.value = this.begin + this.unit, this.start = P(), e.autoplay !== !1 && this.play()
}, t.play = function () {
this.active || (this.start || (this.start = P()), this.active = !0, n(this))
}, t.stop = function () {
this.active && (this.active = !1, l(this))
}, t.render = function (e) {
var t, n = e - this.start;
if (this.delay) {
if (this.delay >= n) return;
n -= this.delay
}
if (this.duration > n) {
var i = this.ease(n, 0, 1, this.duration);
return t = this.startRGB ? c(this.startRGB, this.endRGB, i) : u(this.begin + i * this.change), this.value = t + this.unit, void this.update.call(this.context, t)
}
t = this.endHex || this.begin + this.change, this.value = t + this.unit, this.update.call(this.context, t), this.complete.call(this.context), this.destroy()
}, t.format = function (e, t) {
if (t += "", e += "", "#" == e.charAt(0)) return this.startRGB = i(t), this.endRGB = i(e), this.endHex = e, this.begin = 0, void(this.change = 1);
if (!this.unit) {
var n = t.replace(g, ""),
r = e.replace(g, "");
n !== r && a("tween", t, e), this.unit = n
}
t = parseFloat(t), e = parseFloat(e), this.begin = this.value = t, this.change = e - t
}, t.destroy = function () {
this.stop(), this.context = null, this.ease = this.update = this.complete = s
};
var f = [],
h = 1e3
}),
U = c(H, function (e) {
e.init = function (e) {
this.duration = e.duration || 0, this.complete = e.complete || s, this.context = e.context, this.play()
}, e.render = function (e) {
var t = e - this.start;
this.duration > t || (this.complete.call(this.context), this.destroy())
}
}),
W = c(H, function (e, t) {
e.init = function (e) {
this.context = e.context, this.update = e.update, this.tweens = [], this.current = e.current;
var t, n;
for (t in e.values) n = e.values[t], this.current[t] !== n && this.tweens.push(new H({
name: t,
from: this.current[t],
to: n,
duration: e.duration,
delay: e.delay,
ease: e.ease,
autoplay: !1
}));
this.play()
}, e.render = function (e) {
var t, n, i = this.tweens.length,
r = !1;
for (t = i; t--;) n = this.tweens[t], n.ease && (n.render(e), this.current[n.name] = n.value, r = !0);
return r ? void(this.update && this.update.call(this.context)) : this.destroy()
}, e.destroy = function () {
if (t.destroy.call(this), this.tweens) {
var e, n = this.tweens.length;
for (e = n; e--;) this.tweens[e].destroy();
this.tweens = null, this.current = null
}
}
}),
B = t.config = {
defaultUnit: "px",
defaultAngle: "deg",
hideBackface: !0,
perspective: "",
fallback: !N.transition,
agentTests: []
};
t.fallback = function (e) {
if (!N.transition) return B.fallback = !0;
B.agentTests.push("(" + e + ")");
var t = RegExp(B.agentTests.join("|"), "i");
B.fallback = t.test(navigator.userAgent)
}, t.fallback("6.0.[2-5] Safari"), t.tween = function (e) {
return new H(e)
}, t.delay = function (e, t, n) {
return new U({
complete: t,
duration: e,
context: n
})
}, e.fn.tram = function (e) {
return t.call(null, this, e)
};
var q = e.style,
X = e.css,
V = {
transform: N.transform && N.transform.css
}, Y = {
color: [F, k],
background: [F, k, "background-color"],
"outline-color": [F, k],
"border-color": [F, k],
"border-top-color": [F, k],
"border-right-color": [F, k],
"border-bottom-color": [F, k],
"border-left-color": [F, k],
"border-width": [j, y],
"border-top-width": [j, y],
"border-right-width": [j, y],
"border-bottom-width": [j, y],
"border-left-width": [j, y],
"border-spacing": [j, y],
"letter-spacing": [j, y],
margin: [j, y],
"margin-top": [j, y],
"margin-right": [j, y],
"margin-bottom": [j, y],
"margin-left": [j, y],
padding: [j, y],
"padding-top": [j, y],
"padding-right": [j, y],
"padding-bottom": [j, y],
"padding-left": [j, y],
"outline-width": [j, y],
opacity: [j, b],
top: [j, w],
right: [j, w],
bottom: [j, w],
left: [j, w],
"font-size": [j, w],
"text-indent": [j, w],
"word-spacing": [j, w],
width: [j, w],
"min-width": [j, w],
"max-width": [j, w],
height: [j, w],
"min-height": [j, w],
"max-height": [j, w],
"line-height": [j, S],
"scroll-top": [M, b, "scrollTop"],
"scroll-left": [M, b, "scrollLeft"]
}, $ = {};
N.transform && (Y.transform = [z], $ = {
x: [w, "translateX"],
y: [w, "translateY"],
rotate: [T],
rotateX: [T],
rotateY: [T],
scale: [b],
scaleX: [b],
scaleY: [b],
skew: [T],
skewX: [T],
skewY: [T]
}), N.transform && N.backface && ($.z = [w, "translateZ"], $.rotateZ = [T], $.scaleZ = [b], $.perspective = [y]);
var J = /ms/,
G = /s|\./,
K = function () {
var e = "warn",
t = window.console;
return t && t[e] ? function (n) {
t[e](n)
} : s
}();
return e.tram = t
}(window.jQuery),
function (e) {
if (!e.support.cors && e.ajaxTransport && window.XDomainRequest) {
var t = /^https?:\/\//i,
n = /^get|post$/i,
i = new RegExp("^" + location.protocol, "i"),
r = /text\/html/i,
s = /\/json/i,
o = /\/xml/i;
e.ajaxTransport("* text html xml json", function (a, l) {
if (a.crossDomain && a.async && n.test(a.type) && t.test(a.url) && i.test(a.url)) {
var u = null,
c = (l.dataType || "").toLowerCase();
return {
send: function (t, n) {
u = new XDomainRequest, /^\d+$/.test(l.timeout) && (u.timeout = l.timeout), u.ontimeout = function () {
n(500, "timeout")
}, u.onload = function () {
var t = "Content-Length: " + u.responseText.length + "\r\nContent-Type: " + u.contentType,
i = {
code: 200,
message: "success"
}, a = {
text: u.responseText
};
try {
if ("html" === c || r.test(u.contentType)) a.html = u.responseText;
else if ("json" === c || "text" !== c && s.test(u.contentType)) try {
a.json = e.parseJSON(u.responseText)
} catch (l) {
i.code = 500, i.message = "parseerror"
} else if ("xml" === c || "text" !== c && o.test(u.contentType)) {
var d = new ActiveXObject("Microsoft.XMLDOM");
d.async = !1;
try {
d.loadXML(u.responseText)
} catch (l) {
d = void 0
}
if (!d || !d.documentElement || d.getElementsByTagName("parsererror").length) throw i.code = 500, i.message = "parseerror", "Invalid XML: " + u.responseText;
a.xml = d
}
} catch (p) {
throw p
} finally {
n(i.code, i.message, a, t)
}
}, u.onprogress = function () {}, u.onerror = function () {
n(500, "error", {
text: u.responseText
})
};
var i = "";
l.data && (i = "string" === e.type(l.data) ? l.data : e.param(l.data)), u.open(a.type, a.url), u.send(i)
},
abort: function () {
u && u.abort()
}
}
}
})
}
}(jQuery),
function (e, t) {
"use strict";
function n(e) {
e = "object" == typeof e ? e : t.getElementById(e), this.element = e, this.moved = !1, this.startX = 0, this.startY = 0, this.hasTouchEventOccured = !1, e.addEventListener("touchstart", this, !1), e.addEventListener("touchmove", this, !1), e.addEventListener("touchend", this, !1), e.addEventListener("touchcancel", this, !1), e.addEventListener("mousedown", this, !1), e.addEventListener("mouseup", this, !1)
}
n.prototype.start = function (e) {
"touchstart" === e.type && (this.hasTouchEventOccured = !0), this.moved = !1, this.startX = "touchstart" === e.type ? e.touches[0].clientX : e.clientX, this.startY = "touchstart" === e.type ? e.touches[0].clientY : e.clientY
}, n.prototype.move = function (e) {
(Math.abs(e.touches[0].clientX - this.startX) > 10 || Math.abs(e.touches[0].clientY - this.startY) > 10) && (this.moved = !0)
}, n.prototype.end = function (e) {
var n;
return this.hasTouchEventOccured && "mouseup" === e.type ? (e.preventDefault(), e.stopPropagation(), void(this.hasTouchEventOccured = !1)) : void(this.moved || ("undefined" != typeof t.CustomEvent ? n = new t.CustomEvent("tap", {
bubbles: !0,
cancelable: !0
}) : (n = t.createEvent("Event"), n.initEvent("tap", !0, !0)), e.target.dispatchEvent(n)))
}, n.prototype.cancel = function () {
this.hasTouchEventOccured = !1, this.moved = !1, this.startX = 0, this.startY = 0
}, n.prototype.destroy = function () {
var e = this.element;
e.removeEventListener("touchstart", this, !1), e.removeEventListener("touchmove", this, !1), e.removeEventListener("touchend", this, !1), e.removeEventListener("touchcancel", this, !1), e.removeEventListener("mousedown", this, !1), e.removeEventListener("mouseup", this, !1), this.element = null
}, n.prototype.handleEvent = function (e) {
switch (e.type) {
case "touchstart":
this.start(e);
break;
case "touchmove":
this.move(e);
break;
case "touchend":
this.end(e);
break;
case "touchcancel":
this.cancel(e);
break;
case "mousedown":
this.start(e);
break;
case "mouseup":
this.end(e)
}
}, e.Tap = n
}(window, document), Webflow.init(), Webflow.define("touch", function (e, t) {
"use strict";
function n(e) {
i.call(this, e)
}
var i = window.Tap,
r = ".w-events-",
s = r + "tap",
o = !document.addEventListener;
e.event.special.tap = o || !Webflow.env.touch ? {
bindType: "click",
delegateType: "click"
} : {
setup: function () {
e.data(this, s, new i(this))
},
teardown: function () {
var t = e.data(this, s);
t && t.destroy && (t.destroy(), e.removeData(this, s))
},
add: function (e) {
this.addEventListener("tap", e.handler, !1)
},
remove: function (e) {
this.removeEventListener("tap", e.handler, !1)
}
}, !o && Object.create && (s = r + "swipe", e.event.special.swipe = {
setup: function () {
e.data(this, s, new n(this))
},
teardown: function () {
var t = e.data(this, s);
t && t.destroy && (t.destroy(), e.removeData(this, s))
},
add: function (e) {
this.addEventListener("swipe", e.handler, !1)
},
remove: function (e) {
this.removeEventListener("swipe", e.handler, !1)
}
}, function () {
var r = i.prototype,
s = n.prototype = Object.create(r),
o = Math.round(.04 * screen.width) || 20;
o > 40 && (o = 40), s.start = function (e) {
r.start.call(this, e), this.element.addEventListener("mousemove", this, !1), document.addEventListener("mouseup", this, !1), this.velocityX = 0, this.lastX = this.startX, this.enabled = !0
}, s.move = t.throttle(function (e) {
if (this.enabled) {
var t = e.touches ? e.touches[0].clientX : e.clientX;
this.velocityX = t - this.lastX, this.lastX = t, Math.abs(this.velocityX) > o && this.end(e)
}
}), s.end = function () {
if (this.enabled) {
var t = this.velocityX;
this.cancel(), Math.abs(t) > o && e(this.element).triggerHandler("swipe", {
direction: t > 0 ? "right" : "left"
})
}
}, s.destroy = function () {
this.cancel(), r.destroy.call(this)
}, s.cancel = function () {
this.enabled = !1, this.element.removeEventListener("mousemove", this, !1), document.removeEventListener("mouseup", this, !1), r.cancel.call(this)
}, s.handleEvent = function (e) {
return "mousemove" == e.type ? this.move(e) : void r.handleEvent.call(this, e)
}
}())
}), Webflow.define("forms", function (e, t) {
"use strict";
function n() {
h = e("html").attr("data-wf-site"), f = e(k + " form"), f.each(i)
}
function i(t, n) {
var i = e(n),
r = e.data(n, k);
r || (r = e.data(n, k, {
form: i
})), s(r);
var o = i.closest("div.w-form");
r.done = o.find("> .w-form-done"), r.fail = o.find("> .w-form-fail");
var a = r.action = i.attr("action");
return r.handler = null, r.redirect = i.attr("data-redirect"), S.test(a) ? void(r.handler = c) : a ? void 0 : h ? void(r.handler = u) : void disconnected()
}
function r() {
g.on("submit", k + " form", function (t) {
var n = e.data(this, k);
n.handler && (n.evt = t, n.handler(n))
})
}
function s(e) {
var t = e.btn = e.form.find(':input[type="submit"]');
e.wait = e.btn.attr("data-wait") || null, e.success = !1, t.prop("disabled", !1), e.label && t.val(e.label)
}
function o(e) {
var t = e.btn,
n = e.wait;
t.prop("disabled", !0), n && (e.label = t.val(), t.val(n))
}
function a(t, n) {
var i = null;
return n = n || {}, t.find(':input:not([type="submit"])').each(function (t, r) {
var s = e(r),
o = s.attr("data-name") || s.attr("name") || "Field " + (t + 1),
a = s.val();
"string" == typeof a && (a = e.trim(a)), n[o] = a, i = i || l(s, o, a)
}), i
}
function l(e, t, n) {
var i = null;
return e.attr("required") ? (n ? (y.test(t) || y.test(e.attr("type"))) && (w.test(n) || (i = "Please enter a valid email address for: " + t)) : i = "Please fill out the required field: " + t, i) : null
}
function u(t) {
s(t);
var n = t.form,
i = {
name: n.attr("data-name") || n.attr("name") || "Untitled Form",
source: v.href,
test: Webflow.env(),
fields: {}
};
p(t);
var r = a(n, i.fields);
if (r) return T(r);
if (o(t), !h) return void d(t);
var l = "https://webflow.com/api/v1/form/" + h;
b && l.indexOf("https://webflow.com") >= 0 && (l = l.replace("https://webflow.com/", "http://data.webflow.com/")), e.ajax({
url: l,
type: "POST",
data: i,
dataType: "json",
crossDomain: !0
}).done(function () {
t.success = !0, d(t)
}).fail(function () {
d(t)
})
}
function c(n) {
s(n);
var i = n.form,
r = {};
if (/^https/.test(v.href) && !/^https/.test(n.action)) return void i.attr("method", "post");
p(n);
var l = a(i, r);
if (l) return T(l);
o(n);
var u;
t.each(r, function (e, t) {
y.test(t) && (r.EMAIL = e), /^(name|full(\-)?name)$/i.test(t) && (u = e), /^(first(\-)?name)$/i.test(t) && (r.FNAME = e), /^(last(\-)?name)$/i.test(t) && (r.LNAME = e)
}), u && !r.FNAME && (u = u.split(" "), r.FNAME = u[0], r.LNAME = r.LNAME || u[1]);
var c = n.action.replace("/post?", "/post-json?") + "&c=?",
f = c.indexOf("u=") + 2;
f = c.substring(f, c.indexOf("&", f));
var h = c.indexOf("id=") + 3;
h = c.substring(h, c.indexOf("&", h)), r["b_" + f + "_" + h] = "", e.ajax({
url: c,
data: r,
dataType: "jsonp"
}).done(function (e) {
n.success = "success" == e.result || /already/.test(e.msg), n.success || console.info("MailChimp error: " + e.msg), d(n)
}).fail(function () {
d(n)
})
}
function d(e) {
var t = e.form,
n = (t.closest("div.w-form"), e.redirect),
i = e.success;
return i && n ? void Webflow.location(n) : (e.done.toggle(i), e.fail.toggle(!i), t.toggle(!i), void s(e))
}
function p(e) {
e.evt && e.evt.preventDefault(), e.evt = null
}
var f, h, m = {}, g = e(document),
v = window.location,
b = window.XDomainRequest && !window.atob,
k = ".w-form",
y = /e(\-)?mail/i,
w = /^\S+@\S+$/,
T = window.alert,
S = /list-manage[1-9]?.com/i;
return m.ready = function () {
n(), r && r(), r = null
}, m.preview = m.design = function () {
n()
}, m
}), Webflow.define("maps", function (e, t) {
"use strict";
function n() {
l.length && l.redraw()
}
function i() {
l = c.find(d), l.length && (Webflow.script("https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false&callback=_wf_maps_loaded"), window._wf_maps_loaded = function () {
window._wf_maps_loaded = function () {}, a = window.google, l.each(r), Webflow.resize.on(function () {
l.each(s)
})
})
}
function r(t, n) {
var i = e(n).data();
o(n, i)
}
function s(e, t) {
var n = o(t);
a.maps.event.trigger(n.map, "resize"), n.setMapPosition()
}
function o(t, n) {
var i = e.data(t, p);
if (i) return i;
var r = e(t);
i = e.data(t, p, {
latLng: "51.511214,-0.119824",
tooltip: "",
style: "roadmap",
zoom: 12,
marker: new a.maps.Marker({
draggable: !1
}),
infowindow: new a.maps.InfoWindow({
disableAutoPan: !0
})
});
var s = n.widgetLatlng || i.latLng;
i.latLng = s;
var o = s.split(","),
l = new a.maps.LatLng(o[0], o[1]);
i.latLngObj = l;
var u = Webflow.env.touch && n.disableTouch ? !1 : !0;
i.map = new a.maps.Map(t, {
center: i.latLngObj,
zoom: i.zoom,
maxZoom: 18,
mapTypeControl: !1,
panControl: !1,
streetViewControl: !1,
scrollwheel: !n.disableScroll,
draggable: u,
zoomControl: !0,
zoomControlOptions: {
style: a.maps.ZoomControlStyle.SMALL
},
mapTypeId: i.style
}), i.marker.setMap(i.map), i.setMapPosition = function () {
i.map.setCenter(i.latLngObj);
var e = 0,
t = 0,
n = r.css(["paddingTop", "paddingRight", "paddingBottom", "paddingLeft"]);
e -= parseInt(n.paddingLeft, 10), e += parseInt(n.paddingRight, 10), t -= parseInt(n.paddingTop, 10), t += parseInt(n.paddingBottom, 10), (e || t) && i.map.panBy(e, t), r.css("position", "")
}, a.maps.event.addListener(i.map, "tilesloaded", function () {
a.maps.event.clearListeners(i.map, "tilesloaded"), i.setMapPosition()
}), i.setMapPosition(), i.marker.setPosition(i.latLngObj), i.infowindow.setPosition(i.latLngObj);
var c = n.widgetTooltip;
c && (i.tooltip = c, i.infowindow.setContent(c), i.infowindowOpen || (i.infowindow.open(i.map, i.marker), i.infowindowOpen = !0));
var d = n.widgetStyle;
d && i.map.setMapTypeId(d);
var f = n.widgetZoom;
return null != f && (i.zoom = f, i.map.setZoom(+f)), a.maps.event.addListener(i.marker, "click", function () {
window.open("https://maps.google.com/?z=" + i.zoom + "&daddr=" + i.latLng)
}), i
}
var a, l, u = {}, c = e(document),
d = ".w-widget-map";
u.preview = function () {
l = c.find(d), Webflow.resize.off(n), l.length && (Webflow.resize.on(n), n())
}, u.design = function () {
l = c.find(d), Webflow.resize.off(n), l.length && t.defer(n)
}, u.ready = function () {
Webflow.env() || i()
};
var p = "w-widget-map";
return u
}), Webflow.define("gplus", function (e) {
"use strict";
function t() {
n.find(".w-widget-gplus") && Webflow.script("https://apis.google.com/js/plusone.js")
}
var n = e(document),
i = {};
return i.ready = function () {
Webflow.env() || t()
}, i
}), Webflow.define("scroll", function (e) {
"use strict";
function t() {
l.hash && n(l.hash.substring(1)), o.on("click", "a", function (t) {
if (!(Webflow.env("design") || window.$.mobile && e(t.currentTarget).hasClass("ui-link"))) {
var i = this.hash ? this.hash.substring(1) : null;
i && n(i, t)
}
})
}
function n(t, n) {
if (u.test(t)) {
var r = e("#" + t);
if (r.length) {
n && (n.preventDefault(), n.stopPropagation()), l.hash !== t && a.history && a.history.pushState && a.history.pushState(null, null, "#" + t);
var s = e("header, body > .header, body > .w-nav"),
o = "fixed" === s.css("position") ? s.outerHeight() : 0;
a.setTimeout(function () {
i(r, o)
}, n ? 0 : 300)
}
}
}
function i(t, n) {
var i = e(a).scrollTop(),
s = t.offset().top - n;
if ("mid" == t.data("scroll")) {
var o = e(a).height() - n,
l = t.outerHeight();
o > l && (s -= Math.round((o - l) / 2))
}
var u = 1;
e("body").add(t).each(function () {
var t = parseFloat(e(this).attr("data-scroll-time"), 10);
!isNaN(t) && (0 === t || t > 0) && (u = t)
}), Date.now || (Date.now = function () {
return (new Date).getTime()
});
var c = Date.now(),
d = a.requestAnimationFrame || a.mozRequestAnimationFrame || a.webkitRequestAnimationFrame || function (e) {
a.setTimeout(e, 15)
}, p = (472.143 * Math.log(Math.abs(i - s) + 125) - 2e3) * u,
f = function () {
var e = Date.now() - c;
a.scroll(0, r(i, s, e, p)), p >= e && d(f)
};
f()
}
function r(e, t, n, i) {
return n > i ? t : e + (t - e) * s(n / i)
}
function s(e) {
return .5 > e ? 4 * e * e * e : (e - 1) * (2 * e - 2) * (2 * e - 2) + 1
}
var o = e(document),
a = window,
l = a.location,
u = /^[a-zA-Z][\w:.-]*$/;
return {
ready: t
}
}), Webflow.define("links", function (e, t) {
"use strict";
function n() {
o = c && Webflow.env("design"), Webflow.scroll.off(r), a = [];
for (var e = document.links, t = 0; t < e.length; ++t) i(e[t]);
a.length && (Webflow.scroll.on(r), r())
}
function i(t) {
var n = t.getAttribute("href");
if (!(n.indexOf(":") >= 0)) {
var i = e(t);
if (0 === n.indexOf("#") && f.test(n)) {
var r = e(n);
return void(r.length && a.push({
link: i,
sec: r,
active: !1
}))
}
var o = (c ? Webflow.env("slug") : d.pathname) || "",
l = t.href === d.href || n === o || h.test(n) && m.test(o);
s(i, p, l)
}
}
function r() {
var e = u.scrollTop(),
n = u.height();
t.each(a, function (t) {
var i = t.link,
r = t.sec,
a = r.offset().top,
l = r.outerHeight(),
u = .5 * n,
c = r.is(":visible") && a + l - u >= e && e + n >= a + u;
t.active !== c && (t.active = c, s(i, p, c), o && (i[0].__wf_current = c))
})
}
function s(e, t, n) {
var i = e.hasClass(t);
n && i || (n || i) && (n ? e.addClass(t) : e.removeClass(t))
}
var o, a, l = {}, u = e(window),
c = Webflow.env(),
d = window.location,
p = "w--current",
f = /^#[a-zA-Z][\w:.-]*$/,
h = /index\.(html|php)$/,
m = /\/$/;
return l.ready = l.design = l.preview = n, l
}), Webflow.define("slider", function (e, t) {
"use strict";
function n() {
y = I.find(R), y.each(r), S = null, T || (i && i(), i = null)
}
function i() {
Webflow.resize.on(function () {
y.each(h)
})
}
function r(t, n) {
var i = e(n),
r = e.data(n, R);
return r || (r = e.data(n, R, {
index: 0,
el: i,
config: {}
})), r.mask = i.children(".w-slider-mask"), r.left = i.children(".w-slider-arrow-left"), r.right = i.children(".w-slider-arrow-right"), r.nav = i.children(".w-slider-nav"), r.slides = r.mask.children(".w-slide"), S && (r.maskWidth = 0), E.support.transform ? (Webflow.env.chrome && k(r), r.el.off(R), r.left.off(R), r.right.off(R), r.nav.off(R), s(r), w ? (i.on("setting" + R, p(r)), d(r)) : (r.el.on("swipe" + R, p(r)), r.left.on("tap" + R, o(r)), r.right.on("tap" + R, a(r)), r.config.autoplay && u(r)), r.nav.on("tap" + R, "> div", p(r)), C || r.mask.contents().filter(function () {
return 3 === this.nodeType
}).remove(), void h(t, n)) : (r.left.hide(), r.right.hide(), r.nav.hide(), void(T = !0))
}
function s(e) {
var t = {};
t.depth = 1, t.crossOver = 0, t.animation = e.el.attr("data-animation") || "slide", "outin" == t.animation && (t.animation = "cross", t.crossOver = .5), t.easing = e.el.attr("data-easing") || "ease";
var n = e.el.attr("data-duration");
if (t.duration = null != n ? +n : 500, +e.el.attr("data-infinite") && (t.infinite = !0), +e.el.attr("data-hide-arrows") ? t.hideArrows = !0 : e.config.hideArrows && (e.left.show(), e.right.show()), +e.el.attr("data-autoplay")) {
t.autoplay = !0, t.delay = +e.el.attr("data-delay") || 2e3;
var i = "mousedown" + R + " touchstart" + R;
w || e.el.off(i).one(i, function () {
d(e)
})
}
var r = e.right.width();
t.edge = r ? r + 40 : 100, e.config = t
}
function o(e) {
return function () {
f(e, {
index: e.index - 1,
vector: -1
})
}
}
function a(e) {
return function () {
f(e, {
index: e.index + 1,
vector: 1
})
}
}
function l(i, r) {
var s = null;
r === i.slides.length && (n(), m(i)), t.each(i.anchors, function (t, n) {
e(t.els).each(function (t, i) {
e(i).index() === r && (s = n)
})
}), null != s && f(i, {
index: s,
immediate: !0
})
}
function u(e) {
var t = e.config;
c(e), t.timer = window.setTimeout(function () {
t.autoplay && !w && (a(e)(), u(e))
}, t.delay)
}
function c(e) {
var t = e.config;
window.clearTimeout(t.timer), t.timer = null
}
function d(e) {
var t = e.config;
t.autoplay = !1, c(e)
}
function p(t) {
return function (n, i) {
if (i = i || {}, w && "setting" == n.type) {
if ("prev" == i.select) return o(t)();
if ("next" == i.select) return a(t)();
if (s(t), m(t), null == i.select) return;
return void l(t, i.select)
}
if ("swipe" != n.type) t.nav.has(n.target).length && f(t, {
index: e(n.target).index()
});
else {
if ("left" == i.direction) return a(t)();
if ("right" == i.direction) return o(t)()
}
}
}
function f(t, n) {
function i() {
var n = e(s[t.index].els),
i = t.slides.not(n);
"slide" != h && (d.visibility = "hidden"), E(i).set(d)
}
n = n || {};
var r = t.config,
s = t.anchors;
t.previous = t.index;
var o = n.index,
a = {};
0 > o ? (o = s.length - 1, r.infinite && (a.x = -t.endX, a.from = 0, a.to = s[0].width)) : o >= s.length && (o = 0, r.infinite && (a.x = s[s.length - 1].width, a.from = -s[s.length - 1].x, a.to = a.from - a.x)), t.index = o;
var l = t.nav.children().eq(t.index).addClass("w-active");
t.nav.children().not(l).removeClass("w-active"), r.hideArrows && (t.index === s.length - 1 ? t.right.hide() : t.right.show(), 0 === t.index ? t.left.hide() : t.left.show());
var u = t.offsetX || 0,
c = t.offsetX = -s[t.index].x,
d = {
x: c,
opacity: 1,
visibility: ""
}, p = e(s[t.index].els),
f = e(s[t.previous] && s[t.previous].els),
h = (t.slides.not(p), r.animation),
m = r.easing,
g = Math.round(r.duration),
v = n.vector || (t.index > t.previous ? 1 : -1),
b = "opacity " + g + "ms " + m,
k = "transform " + g + "ms " + m;
if (n.immediate) return E(p).set(d), void i();
if (t.index != t.previous) {
if ("cross" == h) {
var y = Math.round(g - g * r.crossOver),
w = Math.round(g - y);
return b = "opacity " + y + "ms " + m, E(f).set({
visibility: ""
}).add(b).start({
opacity: 0
}), void E(p).set({
visibility: "",
x: c,
opacity: 0,
zIndex: r.depth++
}).add(b).wait(w).then({
opacity: 1
}).then(i)
}
return "fade" == h ? (E(f).set({
visibility: ""
}).stop(), void E(p).set({
visibility: "",
x: c,
opacity: 0,
zIndex: r.depth++
}).add(b).start({
opacity: 1
}).then(i)) : "over" == h ? (d = {
x: t.endX
}, E(f).set({
visibility: ""
}).stop(), void E(p).set({
visibility: "",
zIndex: r.depth++,
x: c + s[t.index].width * v
}).add(k).start({
x: c
}).then(i)) : void(r.infinite && a.x ? (E(t.slides.not(f)).set({
visibility: "",
x: a.x
}).add(k).start({
x: c
}), E(f).set({
visibility: "",
x: a.from
}).add(k).start({
x: a.to
}), t.shifted = f) : (r.infinite && t.shifted && (E(t.shifted).set({
visibility: "",
x: u
}), t.shifted = null), E(t.slides).set({
visibility: ""
}).add(k).start({
x: c
})))
}
}
function h(t, n) {
var i = e.data(n, R);
return v(i) ? m(i) : void(w && b(i) && m(i))
}
function m(t) {
var n = 1,
i = 0,
r = 0,
s = 0;
t.anchors = [{
els: [],
x: 0,
width: 0
}], t.slides.each(function (o, a) {
r - i > t.maskWidth - t.config.edge && (n++, i += t.maskWidth, t.anchors[n - 1] = {
els: [],
x: r,
width: 0
}), s = e(a).outerWidth(!0), r += s, t.anchors[n - 1].width += s, t.anchors[n - 1].els.push(a)
}), t.endX = r, w && (t.pages = null), t.nav.length && t.pages !== n && (t.pages = n, g(t));
var o = t.index;
o >= n && (o = n - 1), f(t, {
immediate: !0,
index: o
})
}
function g(t) {
var n, i = [],
r = t.el.attr("data-nav-spacing");
r && (r = parseFloat(r) + "px");
for (var s = 0; s < t.pages; s++) n = e(N), t.nav.hasClass("w-num") && n.text(s + 1), null != r && n.css({
"margin-left": r,
"margin-right": r
}), i.push(n);
t.nav.empty().append(i)
}
function v(e) {
var t = e.mask.width();
return e.maskWidth !== t ? (e.maskWidth = t, !0) : !1
}
function b(t) {
var n = 0;
return t.slides.each(function (t, i) {
n += e(i).outerWidth(!0)
}), t.slidesWidth !== n ? (t.slidesWidth = n, !0) : !1
}
function k(t) {
t.slides.each(function (t, n) {
"fixed" == e(n).css("background-attachment") && (E.config.hideBackface = !1)
})
}
var y, w, T, S, x = {}, E = window.tram,
I = e(document),
C = Webflow.env(),
R = ".w-slider",
N = '<div class="w-slider-dot" data-wf-ignore />';
return x.ready = function () {
n()
}, x.design = function () {
w = !0, n()
}, x.preview = function () {
w = !1, n()
}, x.redraw = function () {
S = !0, n()
}, x
}), Webflow.define("navbar", function (e, t) {
"use strict";
function n() {
w = I && Webflow.env("design"), k = e(document.body), y = E.find(R), y.each(r), i && i(), i = null
}
function i() {
Webflow.resize.on(function () {
y.each(f)
})
}
function r(t, n) {
var i = e(n),
r = e.data(n, R);
r || (r = e.data(n, R, {
open: !1,
el: i,
config: {}
})), r.menu = i.find(".w-nav-menu"), r.links = r.menu.find(".w-nav-link"), r.button = i.find(".w-nav-button"), r.container = i.find(".w-container"), r.outside = p(r), r.button.off(R), r.menu.off(R), a(r), w ? (s(r), i.on("setting" + R, l(r))) : (o(r), r.button.on("click" + R, c(r)), r.menu.on("click" + R, "> a", d(r))), f(t, n)
}
function s(e) {
e.overlay && (b(e, !0), e.overlay.remove(), e.overlay = null)
}
function o(t) {
t.overlay || (t.overlay = e(C).appendTo(t.el), t.parent = t.menu.parent(), b(t, !0))
}
function a(e) {
var n = {}, i = e.config || {};
n.animation = e.el.attr("data-animation") || "default", i.animation != n.animation && e.open && t.defer(u, e), n.easing = e.el.attr("data-easing") || "ease", n.easing2 = e.el.attr("data-easing2") || "ease";
var r = e.el.attr("data-duration");
n.duration = null != r ? +r : 400, n.docHeight = e.el.attr("data-doc-height"), e.config = n
}
function l(e) {
return function (n, i) {
if (i = i || {}, w && "setting" == n.type) {
var r = x.width();
return a(e), i.open === !0 && m(e, !0), i.open === !1 && b(e, !0), void(e.open && t.defer(function () {
r != x.width() && u(e)
}))
}
}
}
function u(e) {
e.open && (b(e, !0), m(e, !0))
}
function c(e) {
return t.debounce(function () {
e.open ? b(e) : m(e)
})
}
function d(t) {
return function (n) {
var i = e(this),
r = i.attr("href");
r && 0 === r.indexOf("#") && t.open && (1 === r.length && n.preventDefault(), b(t))
}
}
function p(e) {
return function (t) {
var n = t.target;
e.el.has(n).length || e.el.is(n) || b(e)
}
}
function f(t, n) {
var i = e.data(n, R),
r = i.collapsed = "none" != i.button.css("display");
!i.open || r || w || b(i, !0), i.container.length && i.links.each(h(i)), i.open && /^over/.test(i.config.animation) && (g(i), v(i))
}
function h(t) {
var n = t.container.css(A);
return "none" == n && (n = ""),
function (t, i) {
i = e(i), i.css(A, ""), "none" == i.css(A) && i.css(A, n)
}
}
function m(e, t) {
if (!e.open) {
e.open = !0, e.menu.addClass(_), e.links.addClass(D), e.button.addClass(N);
var n = e.config,
i = n.animation;
"none" != i && S.support.transform || (t = !0);
var r = /^over/.test(i),
s = g(e),
o = e.menu.outerHeight(!0),
a = e.menu.outerWidth(!0),
l = e.el.height(),
u = /left$/.test(i) ? -1 : 1;
if (f(0, e.el[0]), w || E.on("click" + R, e.outside), r && v(e), !t) {
var c = "transform " + n.duration + "ms " + n.easing;
if (e.overlay && e.overlay.show().append(e.menu).height(o), r) return S(e.menu).add(c).set({
x: u * a,
height: s
}).start({
x: 0
}), void(e.overlay && e.overlay.css({
width: a,
height: s
}));
var d = l + o;
S(e.menu).add(c).set({
y: -d
}).start({
y: 0
})
}
}
}
function g(e) {
return e.bodyHeight = e.config.docHeight ? E.height() : k.height()
}
function v(e) {
var t = e.bodyHeight,
n = "fixed" == e.el.css("position");
n || (t -= e.el.offset().top), e.menu.height(t)
}
function b(e, t) {
function n() {
e.menu.height(""), S(e.menu).set({
x: 0,
y: 0
}), e.menu.removeClass(_), e.links.removeClass(D), e.overlay && e.overlay.children().length && (e.menu.appendTo(e.parent), e.overlay.attr("style", "").hide())
}
e.open = !1, e.button.removeClass(N);
var i = e.config;
"none" != i.animation && S.support.transform || (t = !0);
var r = i.animation;
if (E.off("click" + R, e.outside), t) return S(e.menu).stop(), void n();
var s = "transform " + i.duration + "ms " + i.easing2,
o = e.menu.outerHeight(!0),
a = e.menu.outerWidth(!0),
l = e.el.height(),
u = /left$/.test(r) ? -1 : 1,
c = /^over/.test(r);
if (c) return void S(e.menu).add(s).start({
x: a * u
}).then(n);
var d = l + o;
S(e.menu).add(s).start({
y: -d
}).then(n)
}
var k, y, w, T = {}, S = window.tram,
x = e(window),
E = e(document),
I = Webflow.env(),
C = '<div class="w-nav-overlay" data-wf-ignore />',
R = ".w-nav",
N = "w--open",
_ = "w--nav-menu-open",
D = "w--nav-link-open";
T.ready = T.design = T.preview = n;
var A = "max-width";
return T
}), Webflow.define("ix", function (e, t) {
"use strict";
function n(n) {
if (n) {
c = {}, b = {}, t.each(n, function (e) {
b[e.slug] = e.value.triggers
});
var r = e("[data-ix]");
r.each(s), r.each(i), k.length && (Webflow.scroll.on(o), o())
}
}
function i(n, i) {
i = e(i);
var s = i.attr("data-ix"),
o = b[s];
if (o) {
var l = c[s] || (c[s] = {});
y++, t.each(o, function (e) {
var t = e.type,
n = e.stepsB && e.stepsB.length;
if ("load" == t && a(e, i), "click" == t) {
var s = "click:";
e.descend && (s += y + ":"), s += e.selector, i.on("click" + f, function () {
a(e, i, {
group: l[s] ? "B" : "A"
}), n && (l[s] = !l[s])
})
}
g || ("hover" == t && (i.on("mouseover" + f, function () {
a(e, i, {
group: "A"
})
}), i.on("mouseleave" + f, function () {
a(e, i, {
group: "B"
})
})), "scroll" == t && (k.push({
el: i,
trigger: e,
state: {
active: !1
}
}), e._offsetTop = r(e.offsetTop), e._offsetBot = r(e.offsetBot)))
})
}
}
function r(e) {
if (!e) return 0;
e += "";
var t = parseInt(e, 10);
return e.indexOf("%") > 0 && (t /= 100, t >= 1 && (t = .999)), t
}
function s(t, n) {
n = e(n), n.off(f)
}
function o() {
var e = p.scrollTop(),
n = p.height();
t.each(k, function (t) {
var i = t.el,
r = t.trigger,
s = r.stepsB && r.stepsB.length,
o = t.state,
l = i.offset().top,
u = i.outerHeight(),
c = r._offsetTop || 0,
d = r._offsetBot || 0;
1 > c && c > 0 && (c *= n), 1 > d && d > 0 && (d *= n);
var p = l + u - c >= e && e + n >= l + d;
p !== o.active && (p !== !1 || s) && (o.active = p, a(r, i, {
group: p ? "A" : "B"
}))
})
}
function a(n, i, r) {
if (r = r || {}, !u || r.force) {
var s = r.group || "A",
o = n["steps" + s];
if (o && o.length) {
var a = n.selector;
a && (i = n.descend ? i.find(a) : e(a), v && i.attr("data-ix-affect", 1));
var c = h(i),
d = {};
t.each(o, function (e, t) {
l(c, e, t, d)
}), d.start ? c.then(function () {
this.stop(null, !0), r.done && r.done()
}) : r.done && r.done()
}
}
}
function l(e, n, i, r) {
var s = "add",
o = "start";
r.start && (s = o = "then");
var a = n.transition;
a && t.each(a.split(","), function (t) {
e[s](t)
});
var l = {};
if (t.each(n, function (e, t) {
"transition" !== t && (l[t] = e)
}), null == a) {
r.start ? e.then(function () {
var t = this.queue;
this.set(l), l.display && e.redraw(), this.queue = t, this.next()
}) : (e.set(l), l.display && e.redraw());
var u = l.wait;
null != u && (e.wait(u), r.start = !0)
} else {
if (l.display) {
var c = l.display;
delete l.display, r.start ? e.then(function () {
var e = this.queue;
this.set({
display: c
}).redraw(), this.queue = e, this.next()
}) : e.set({
display: c
}).redraw()
}
e[o](l), r.start = !0
}
}
var u, c, d = {}, p = e(window),
f = ".w-ix",
h = window.tram,
m = window.Modernizr,
g = m && m.touch,
v = Webflow.env(),
b = {}, k = [],
y = 0;
return d.init = function (e) {
n(e)
}, d.preview = function () {
u = !1, t.delay(function () {
n(window.__wf_ix)
}, 100)
}, d.design = function () {
u = !0, e("[data-ix]").each(s), Webflow.scroll.off(o), k = []
}, d.run = a, d
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment