From 3c8ffacc9b2c501fd6b967d4a35bfc5b8ea4585c Mon Sep 17 00:00:00 2001 From: Allwyn Pradip Date: Thu, 24 Mar 2022 01:39:02 +0530 Subject: [PATCH] Working Docker setup with python3 (#684) * Docker changes * working changes * update noauth.py * Docker setup * changing passwrod * Revert "changing passwrod" This reverts commit 62cd1dd7af143ff3e9dd31fcdad1b8feee64da7d. * Healthcheck & Freshping addition * removing mysql password * config changes --- Dockerfile | 38 + configs/config.dev.yaml | 5 +- docker-compose.yml | 16 + healthcheck | 1 + ops/entrypoint.py | 2 +- setup.py | 11 +- .../js/dist/bootstrap-datetimepicker.dev.js | 2521 ++++++++++ src/iris/ui/static/js/dist/bootstrap.dev.js | 1957 ++++++++ .../ui/static/js/dist/bootstrap.min.dev.js | 1032 ++++ .../js/dist/handlebars-4.0.12.min.dev.js | 3271 +++++++++++++ .../ui/static/js/dist/jquery-3.3.1.min.dev.js | 4047 ++++++++++++++++ .../js/dist/jquery.dataTables.min.dev.js | 4219 +++++++++++++++++ src/iris/ui/static/js/dist/marked.min.dev.js | 591 +++ .../ui/static/js/dist/moment-timezone.dev.js | 626 +++ .../ui/static/js/dist/moment-tz-data.dev.js | 6 + src/iris/ui/static/js/dist/typeahead.dev.js | 2891 +++++++++++ src/iris/webhooks/freshping.py | 108 + 17 files changed, 21334 insertions(+), 8 deletions(-) create mode 100644 Dockerfile create mode 100644 docker-compose.yml create mode 100644 healthcheck create mode 100644 src/iris/ui/static/js/dist/bootstrap-datetimepicker.dev.js create mode 100644 src/iris/ui/static/js/dist/bootstrap.dev.js create mode 100644 src/iris/ui/static/js/dist/bootstrap.min.dev.js create mode 100644 src/iris/ui/static/js/dist/handlebars-4.0.12.min.dev.js create mode 100644 src/iris/ui/static/js/dist/jquery-3.3.1.min.dev.js create mode 100644 src/iris/ui/static/js/dist/jquery.dataTables.min.dev.js create mode 100644 src/iris/ui/static/js/dist/marked.min.dev.js create mode 100644 src/iris/ui/static/js/dist/moment-timezone.dev.js create mode 100644 src/iris/ui/static/js/dist/moment-tz-data.dev.js create mode 100644 src/iris/ui/static/js/dist/typeahead.dev.js create mode 100644 src/iris/webhooks/freshping.py diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..e28e419c --- /dev/null +++ b/Dockerfile @@ -0,0 +1,38 @@ +FROM ubuntu:20.04 +ENV DEBIAN_FRONTEND noninteractive + +RUN apt-get update && apt-get -y dist-upgrade \ + && apt-get -y install libffi-dev libsasl2-dev python3-dev libyaml-dev sudo \ + libldap2-dev libssl-dev python3-pip python3-setuptools python3-venv \ + mysql-client nginx uwsgi uwsgi-plugin-python3 uwsgi-plugin-gevent-python3 \ + && pip3 install mysql-connector-python \ + && rm -rf /var/cache/apt/archives/* + +RUN useradd -m -s /bin/bash iris + +COPY src /home/iris/source/src +COPY setup.py /home/iris/source/setup.py +COPY MANIFEST.in /home/iris/source/MANIFEST.in +COPY README.md /home/iris/source/README.md + +WORKDIR /home/iris + +RUN chown -R iris:iris /home/iris/source /var/log/nginx /var/lib/nginx \ + && sudo -Hu iris mkdir -p /home/iris/var/log/uwsgi /home/iris/var/log/nginx /home/iris/var/run /home/iris/var/relay \ + && sudo -Hu iris python3 -m venv /home/iris/env \ + && sudo -Hu iris /bin/bash -c 'source /home/iris/env/bin/activate && python3 -m pip install -U pip wheel && cd /home/iris/source && pip install .' + +COPY . /home/iris +COPY ops/config/systemd /etc/systemd/system +COPY ops/daemons /home/iris/daemons +COPY ops/daemons/uwsgi-docker.yaml /home/iris/daemons/uwsgi.yaml +COPY db /home/iris/db +COPY configs /home/iris/config +COPY healthcheck /tmp/status +COPY ops/entrypoint.py /home/iris/entrypoint.py + +RUN chown -R iris:iris /home/iris/ + +EXPOSE 16649 + +CMD ["sudo", "-EHu", "iris", "bash", "-c", "source /home/iris/env/bin/activate && python -u /home/iris/entrypoint.py"] diff --git a/configs/config.dev.yaml b/configs/config.dev.yaml index c7ee3f63..206ca0b3 100644 --- a/configs/config.dev.yaml +++ b/configs/config.dev.yaml @@ -14,9 +14,10 @@ db: &db user: root password: "" host: 127.0.0.1 + port: 3306 database: iris charset: utf8 - str: "%(scheme)s://%(user)s:%(password)s@%(host)s/%(database)s?charset=%(charset)s" + str: "%(scheme)s://%(user)s:%(password)s@%(host)s:%(port)s/%(database)s?charset=%(charset)s" query_limit: 500 kwargs: pool_recycle: 3600 @@ -35,7 +36,7 @@ db: &db # host: 127.0.0.1 # database: iris # charset: utf8 -# str: "%(scheme)s://%(user)s:%(password)s@%(host)s/%(database)s?charset=%(charset)s" +# str: "%(scheme)s://%(user)s:%(password)s@%(host)s:%(port)s/%(database)s?charset=%(charset)s" # kwargs: # pool_recycle: 3600 # echo: False diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 00000000..04ede4a9 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,16 @@ +version: '3' + +services: + iris-web: + build: . + ports: + - "16649:16649" + environment: + - DOCKER_DB_BOOTSTRAP=1 + volumes: + - ./configs/config.dev.yaml:/home/iris/config/config.yaml + + iris-mysql: + image: mysql:5.5 + environment: + - MYSQL_ROOT_PASSWORD=1234 \ No newline at end of file diff --git a/healthcheck b/healthcheck new file mode 100644 index 00000000..671246b0 --- /dev/null +++ b/healthcheck @@ -0,0 +1 @@ +GOOD \ No newline at end of file diff --git a/ops/entrypoint.py b/ops/entrypoint.py index c9c856fa..08aa400b 100644 --- a/ops/entrypoint.py +++ b/ops/entrypoint.py @@ -98,7 +98,7 @@ def main(): os.execv('/usr/bin/uwsgi', # first array element is ARGV0, since python 3.6 it cannot be empty, using space # https://bugs.python.org/issue28732 - [' ', '--yaml', os.environ.get('UWSGI_CONFIG', '/home/iris/daemons/uwsgi.yaml:prod')]) + ['/usr/bin/uwsgi', '--yaml', '/home/iris/daemons/uwsgi.yaml:prod']) if __name__ == '__main__': diff --git a/setup.py b/setup.py index 2f1c2695..37305386 100644 --- a/setup.py +++ b/setup.py @@ -33,7 +33,7 @@ 'twilio==6.25.0', 'google-api-python-client==1.4.2', 'oauth2client==1.4.12', - 'slackclient==0.16', + 'slackclient', 'PyYAML', 'greenlet==0.4.16', 'gevent==1.5.0', @@ -49,15 +49,16 @@ 'msgpack==1.0.0', 'cssmin', 'beaker', - 'cryptography==2.3', + 'cryptography==3.2', 'webassets', 'python-ldap==3.1.0', 'exchangelib==2.2.0', 'setproctitle', 'pyfcm==1.4.3', - 'oncallclient==1.0.0', - 'idna==2.7', - 'pyqrcode==1.2.1' + 'oncallclient==1.1.0', + 'idna==3.0', + 'pyqrcode==1.2.1', + 'plivo==4.18.1' ], extras_require={ 'kazoo': ['kazoo==2.6.1'], diff --git a/src/iris/ui/static/js/dist/bootstrap-datetimepicker.dev.js b/src/iris/ui/static/js/dist/bootstrap-datetimepicker.dev.js new file mode 100644 index 00000000..2c629a24 --- /dev/null +++ b/src/iris/ui/static/js/dist/bootstrap-datetimepicker.dev.js @@ -0,0 +1,2521 @@ +"use strict"; + +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +//! moment.js +//! version : 2.10.6 +//! authors : Tim Wood, Iskren Chernev, Moment.js contributors +//! license : MIT +//! momentjs.com +!function (a, b) { + "object" == (typeof exports === "undefined" ? "undefined" : _typeof(exports)) && "undefined" != typeof module ? module.exports = b() : "function" == typeof define && define.amd ? define(b) : a.moment = b(); +}(void 0, function () { + "use strict"; + + function a() { + return Hc.apply(null, arguments); + } + + function b(a) { + Hc = a; + } + + function c(a) { + return "[object Array]" === Object.prototype.toString.call(a); + } + + function d(a) { + return a instanceof Date || "[object Date]" === Object.prototype.toString.call(a); + } + + function e(a, b) { + var c, + d = []; + + for (c = 0; c < a.length; ++c) { + d.push(b(a[c], c)); + } + + return d; + } + + function f(a, b) { + return Object.prototype.hasOwnProperty.call(a, b); + } + + function g(a, b) { + for (var c in b) { + f(b, c) && (a[c] = b[c]); + } + + return f(b, "toString") && (a.toString = b.toString), f(b, "valueOf") && (a.valueOf = b.valueOf), a; + } + + function h(a, b, c, d) { + return Ca(a, b, c, d, !0).utc(); + } + + function i() { + return { + empty: !1, + unusedTokens: [], + unusedInput: [], + overflow: -2, + charsLeftOver: 0, + nullInput: !1, + invalidMonth: null, + invalidFormat: !1, + userInvalidated: !1, + iso: !1 + }; + } + + function j(a) { + return null == a._pf && (a._pf = i()), a._pf; + } + + function k(a) { + if (null == a._isValid) { + var b = j(a); + a._isValid = !(isNaN(a._d.getTime()) || !(b.overflow < 0) || b.empty || b.invalidMonth || b.invalidWeekday || b.nullInput || b.invalidFormat || b.userInvalidated), a._strict && (a._isValid = a._isValid && 0 === b.charsLeftOver && 0 === b.unusedTokens.length && void 0 === b.bigHour); + } + + return a._isValid; + } + + function l(a) { + var b = h(NaN); + return null != a ? g(j(b), a) : j(b).userInvalidated = !0, b; + } + + function m(a, b) { + var c, d, e; + if ("undefined" != typeof b._isAMomentObject && (a._isAMomentObject = b._isAMomentObject), "undefined" != typeof b._i && (a._i = b._i), "undefined" != typeof b._f && (a._f = b._f), "undefined" != typeof b._l && (a._l = b._l), "undefined" != typeof b._strict && (a._strict = b._strict), "undefined" != typeof b._tzm && (a._tzm = b._tzm), "undefined" != typeof b._isUTC && (a._isUTC = b._isUTC), "undefined" != typeof b._offset && (a._offset = b._offset), "undefined" != typeof b._pf && (a._pf = j(b)), "undefined" != typeof b._locale && (a._locale = b._locale), Jc.length > 0) for (c in Jc) { + d = Jc[c], e = b[d], "undefined" != typeof e && (a[d] = e); + } + return a; + } + + function n(b) { + m(this, b), this._d = new Date(null != b._d ? b._d.getTime() : NaN), Kc === !1 && (Kc = !0, a.updateOffset(this), Kc = !1); + } + + function o(a) { + return a instanceof n || null != a && null != a._isAMomentObject; + } + + function p(a) { + return 0 > a ? Math.ceil(a) : Math.floor(a); + } + + function q(a) { + var b = +a, + c = 0; + return 0 !== b && isFinite(b) && (c = p(b)), c; + } + + function r(a, b, c) { + var d, + e = Math.min(a.length, b.length), + f = Math.abs(a.length - b.length), + g = 0; + + for (d = 0; e > d; d++) { + (c && a[d] !== b[d] || !c && q(a[d]) !== q(b[d])) && g++; + } + + return g + f; + } + + function s() {} + + function t(a) { + return a ? a.toLowerCase().replace("_", "-") : a; + } + + function u(a) { + for (var b, c, d, e, f = 0; f < a.length;) { + for (e = t(a[f]).split("-"), b = e.length, c = t(a[f + 1]), c = c ? c.split("-") : null; b > 0;) { + if (d = v(e.slice(0, b).join("-"))) return d; + if (c && c.length >= b && r(e, c, !0) >= b - 1) break; + b--; + } + + f++; + } + + return null; + } + + function v(a) { + var b = null; + if (!Lc[a] && "undefined" != typeof module && module && module.exports) try { + b = Ic._abbr, require("./locale/" + a), w(b); + } catch (c) {} + return Lc[a]; + } + + function w(a, b) { + var c; + return a && (c = "undefined" == typeof b ? y(a) : x(a, b), c && (Ic = c)), Ic._abbr; + } + + function x(a, b) { + return null !== b ? (b.abbr = a, Lc[a] = Lc[a] || new s(), Lc[a].set(b), w(a), Lc[a]) : (delete Lc[a], null); + } + + function y(a) { + var b; + if (a && a._locale && a._locale._abbr && (a = a._locale._abbr), !a) return Ic; + + if (!c(a)) { + if (b = v(a)) return b; + a = [a]; + } + + return u(a); + } + + function z(a, b) { + var c = a.toLowerCase(); + Mc[c] = Mc[c + "s"] = Mc[b] = a; + } + + function A(a) { + return "string" == typeof a ? Mc[a] || Mc[a.toLowerCase()] : void 0; + } + + function B(a) { + var b, + c, + d = {}; + + for (c in a) { + f(a, c) && (b = A(c), b && (d[b] = a[c])); + } + + return d; + } + + function C(b, c) { + return function (d) { + return null != d ? (E(this, b, d), a.updateOffset(this, c), this) : D(this, b); + }; + } + + function D(a, b) { + return a._d["get" + (a._isUTC ? "UTC" : "") + b](); + } + + function E(a, b, c) { + return a._d["set" + (a._isUTC ? "UTC" : "") + b](c); + } + + function F(a, b) { + var c; + if ("object" == _typeof(a)) for (c in a) { + this.set(c, a[c]); + } else if (a = A(a), "function" == typeof this[a]) return this[a](b); + return this; + } + + function G(a, b, c) { + var d = "" + Math.abs(a), + e = b - d.length, + f = a >= 0; + return (f ? c ? "+" : "" : "-") + Math.pow(10, Math.max(0, e)).toString().substr(1) + d; + } + + function H(a, b, c, d) { + var e = d; + "string" == typeof d && (e = function e() { + return this[d](); + }), a && (Qc[a] = e), b && (Qc[b[0]] = function () { + return G(e.apply(this, arguments), b[1], b[2]); + }), c && (Qc[c] = function () { + return this.localeData().ordinal(e.apply(this, arguments), a); + }); + } + + function I(a) { + return a.match(/\[[\s\S]/) ? a.replace(/^\[|\]$/g, "") : a.replace(/\\/g, ""); + } + + function J(a) { + var b, + c, + d = a.match(Nc); + + for (b = 0, c = d.length; c > b; b++) { + Qc[d[b]] ? d[b] = Qc[d[b]] : d[b] = I(d[b]); + } + + return function (e) { + var f = ""; + + for (b = 0; c > b; b++) { + f += d[b] instanceof Function ? d[b].call(e, a) : d[b]; + } + + return f; + }; + } + + function K(a, b) { + return a.isValid() ? (b = L(b, a.localeData()), Pc[b] = Pc[b] || J(b), Pc[b](a)) : a.localeData().invalidDate(); + } + + function L(a, b) { + function c(a) { + return b.longDateFormat(a) || a; + } + + var d = 5; + + for (Oc.lastIndex = 0; d >= 0 && Oc.test(a);) { + a = a.replace(Oc, c), Oc.lastIndex = 0, d -= 1; + } + + return a; + } + + function M(a) { + return "function" == typeof a && "[object Function]" === Object.prototype.toString.call(a); + } + + function N(a, b, c) { + dd[a] = M(b) ? b : function (a) { + return a && c ? c : b; + }; + } + + function O(a, b) { + return f(dd, a) ? dd[a](b._strict, b._locale) : new RegExp(P(a)); + } + + function P(a) { + return a.replace("\\", "").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function (a, b, c, d, e) { + return b || c || d || e; + }).replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&"); + } + + function Q(a, b) { + var c, + d = b; + + for ("string" == typeof a && (a = [a]), "number" == typeof b && (d = function d(a, c) { + c[b] = q(a); + }), c = 0; c < a.length; c++) { + ed[a[c]] = d; + } + } + + function R(a, b) { + Q(a, function (a, c, d, e) { + d._w = d._w || {}, b(a, d._w, d, e); + }); + } + + function S(a, b, c) { + null != b && f(ed, a) && ed[a](b, c._a, c, a); + } + + function T(a, b) { + return new Date(Date.UTC(a, b + 1, 0)).getUTCDate(); + } + + function U(a) { + return this._months[a.month()]; + } + + function V(a) { + return this._monthsShort[a.month()]; + } + + function W(a, b, c) { + var d, e, f; + + for (this._monthsParse || (this._monthsParse = [], this._longMonthsParse = [], this._shortMonthsParse = []), d = 0; 12 > d; d++) { + if (e = h([2e3, d]), c && !this._longMonthsParse[d] && (this._longMonthsParse[d] = new RegExp("^" + this.months(e, "").replace(".", "") + "$", "i"), this._shortMonthsParse[d] = new RegExp("^" + this.monthsShort(e, "").replace(".", "") + "$", "i")), c || this._monthsParse[d] || (f = "^" + this.months(e, "") + "|^" + this.monthsShort(e, ""), this._monthsParse[d] = new RegExp(f.replace(".", ""), "i")), c && "MMMM" === b && this._longMonthsParse[d].test(a)) return d; + if (c && "MMM" === b && this._shortMonthsParse[d].test(a)) return d; + if (!c && this._monthsParse[d].test(a)) return d; + } + } + + function X(a, b) { + var c; + return "string" == typeof b && (b = a.localeData().monthsParse(b), "number" != typeof b) ? a : (c = Math.min(a.date(), T(a.year(), b)), a._d["set" + (a._isUTC ? "UTC" : "") + "Month"](b, c), a); + } + + function Y(b) { + return null != b ? (X(this, b), a.updateOffset(this, !0), this) : D(this, "Month"); + } + + function Z() { + return T(this.year(), this.month()); + } + + function $(a) { + var b, + c = a._a; + return c && -2 === j(a).overflow && (b = c[gd] < 0 || c[gd] > 11 ? gd : c[hd] < 1 || c[hd] > T(c[fd], c[gd]) ? hd : c[id] < 0 || c[id] > 24 || 24 === c[id] && (0 !== c[jd] || 0 !== c[kd] || 0 !== c[ld]) ? id : c[jd] < 0 || c[jd] > 59 ? jd : c[kd] < 0 || c[kd] > 59 ? kd : c[ld] < 0 || c[ld] > 999 ? ld : -1, j(a)._overflowDayOfYear && (fd > b || b > hd) && (b = hd), j(a).overflow = b), a; + } + + function _(b) { + a.suppressDeprecationWarnings === !1 && "undefined" != typeof console && console.warn && console.warn("Deprecation warning: " + b); + } + + function aa(a, b) { + var c = !0; + return g(function () { + return c && (_(a + "\n" + new Error().stack), c = !1), b.apply(this, arguments); + }, b); + } + + function ba(a, b) { + od[a] || (_(b), od[a] = !0); + } + + function ca(a) { + var b, + c, + d = a._i, + e = pd.exec(d); + + if (e) { + for (j(a).iso = !0, b = 0, c = qd.length; c > b; b++) { + if (qd[b][1].exec(d)) { + a._f = qd[b][0]; + break; + } + } + + for (b = 0, c = rd.length; c > b; b++) { + if (rd[b][1].exec(d)) { + a._f += (e[6] || " ") + rd[b][0]; + break; + } + } + + d.match(ad) && (a._f += "Z"), va(a); + } else a._isValid = !1; + } + + function da(b) { + var c = sd.exec(b._i); + return null !== c ? void (b._d = new Date(+c[1])) : (ca(b), void (b._isValid === !1 && (delete b._isValid, a.createFromInputFallback(b)))); + } + + function ea(a, b, c, d, e, f, g) { + var h = new Date(a, b, c, d, e, f, g); + return 1970 > a && h.setFullYear(a), h; + } + + function fa(a) { + var b = new Date(Date.UTC.apply(null, arguments)); + return 1970 > a && b.setUTCFullYear(a), b; + } + + function ga(a) { + return ha(a) ? 366 : 365; + } + + function ha(a) { + return a % 4 === 0 && a % 100 !== 0 || a % 400 === 0; + } + + function ia() { + return ha(this.year()); + } + + function ja(a, b, c) { + var d, + e = c - b, + f = c - a.day(); + return f > e && (f -= 7), e - 7 > f && (f += 7), d = Da(a).add(f, "d"), { + week: Math.ceil(d.dayOfYear() / 7), + year: d.year() + }; + } + + function ka(a) { + return ja(a, this._week.dow, this._week.doy).week; + } + + function la() { + return this._week.dow; + } + + function ma() { + return this._week.doy; + } + + function na(a) { + var b = this.localeData().week(this); + return null == a ? b : this.add(7 * (a - b), "d"); + } + + function oa(a) { + var b = ja(this, 1, 4).week; + return null == a ? b : this.add(7 * (a - b), "d"); + } + + function pa(a, b, c, d, e) { + var f, + g = 6 + e - d, + h = fa(a, 0, 1 + g), + i = h.getUTCDay(); + return e > i && (i += 7), c = null != c ? 1 * c : e, f = 1 + g + 7 * (b - 1) - i + c, { + year: f > 0 ? a : a - 1, + dayOfYear: f > 0 ? f : ga(a - 1) + f + }; + } + + function qa(a) { + var b = Math.round((this.clone().startOf("day") - this.clone().startOf("year")) / 864e5) + 1; + return null == a ? b : this.add(a - b, "d"); + } + + function ra(a, b, c) { + return null != a ? a : null != b ? b : c; + } + + function sa(a) { + var b = new Date(); + return a._useUTC ? [b.getUTCFullYear(), b.getUTCMonth(), b.getUTCDate()] : [b.getFullYear(), b.getMonth(), b.getDate()]; + } + + function ta(a) { + var b, + c, + d, + e, + f = []; + + if (!a._d) { + for (d = sa(a), a._w && null == a._a[hd] && null == a._a[gd] && ua(a), a._dayOfYear && (e = ra(a._a[fd], d[fd]), a._dayOfYear > ga(e) && (j(a)._overflowDayOfYear = !0), c = fa(e, 0, a._dayOfYear), a._a[gd] = c.getUTCMonth(), a._a[hd] = c.getUTCDate()), b = 0; 3 > b && null == a._a[b]; ++b) { + a._a[b] = f[b] = d[b]; + } + + for (; 7 > b; b++) { + a._a[b] = f[b] = null == a._a[b] ? 2 === b ? 1 : 0 : a._a[b]; + } + + 24 === a._a[id] && 0 === a._a[jd] && 0 === a._a[kd] && 0 === a._a[ld] && (a._nextDay = !0, a._a[id] = 0), a._d = (a._useUTC ? fa : ea).apply(null, f), null != a._tzm && a._d.setUTCMinutes(a._d.getUTCMinutes() - a._tzm), a._nextDay && (a._a[id] = 24); + } + } + + function ua(a) { + var b, c, d, e, f, g, h; + b = a._w, null != b.GG || null != b.W || null != b.E ? (f = 1, g = 4, c = ra(b.GG, a._a[fd], ja(Da(), 1, 4).year), d = ra(b.W, 1), e = ra(b.E, 1)) : (f = a._locale._week.dow, g = a._locale._week.doy, c = ra(b.gg, a._a[fd], ja(Da(), f, g).year), d = ra(b.w, 1), null != b.d ? (e = b.d, f > e && ++d) : e = null != b.e ? b.e + f : f), h = pa(c, d, e, g, f), a._a[fd] = h.year, a._dayOfYear = h.dayOfYear; + } + + function va(b) { + if (b._f === a.ISO_8601) return void ca(b); + b._a = [], j(b).empty = !0; + var c, + d, + e, + f, + g, + h = "" + b._i, + i = h.length, + k = 0; + + for (e = L(b._f, b._locale).match(Nc) || [], c = 0; c < e.length; c++) { + f = e[c], d = (h.match(O(f, b)) || [])[0], d && (g = h.substr(0, h.indexOf(d)), g.length > 0 && j(b).unusedInput.push(g), h = h.slice(h.indexOf(d) + d.length), k += d.length), Qc[f] ? (d ? j(b).empty = !1 : j(b).unusedTokens.push(f), S(f, d, b)) : b._strict && !d && j(b).unusedTokens.push(f); + } + + j(b).charsLeftOver = i - k, h.length > 0 && j(b).unusedInput.push(h), j(b).bigHour === !0 && b._a[id] <= 12 && b._a[id] > 0 && (j(b).bigHour = void 0), b._a[id] = wa(b._locale, b._a[id], b._meridiem), ta(b), $(b); + } + + function wa(a, b, c) { + var d; + return null == c ? b : null != a.meridiemHour ? a.meridiemHour(b, c) : null != a.isPM ? (d = a.isPM(c), d && 12 > b && (b += 12), d || 12 !== b || (b = 0), b) : b; + } + + function xa(a) { + var b, c, d, e, f; + if (0 === a._f.length) return j(a).invalidFormat = !0, void (a._d = new Date(NaN)); + + for (e = 0; e < a._f.length; e++) { + f = 0, b = m({}, a), null != a._useUTC && (b._useUTC = a._useUTC), b._f = a._f[e], va(b), k(b) && (f += j(b).charsLeftOver, f += 10 * j(b).unusedTokens.length, j(b).score = f, (null == d || d > f) && (d = f, c = b)); + } + + g(a, c || b); + } + + function ya(a) { + if (!a._d) { + var b = B(a._i); + a._a = [b.year, b.month, b.day || b.date, b.hour, b.minute, b.second, b.millisecond], ta(a); + } + } + + function za(a) { + var b = new n($(Aa(a))); + return b._nextDay && (b.add(1, "d"), b._nextDay = void 0), b; + } + + function Aa(a) { + var b = a._i, + e = a._f; + return a._locale = a._locale || y(a._l), null === b || void 0 === e && "" === b ? l({ + nullInput: !0 + }) : ("string" == typeof b && (a._i = b = a._locale.preparse(b)), o(b) ? new n($(b)) : (c(e) ? xa(a) : e ? va(a) : d(b) ? a._d = b : Ba(a), a)); + } + + function Ba(b) { + var f = b._i; + void 0 === f ? b._d = new Date() : d(f) ? b._d = new Date(+f) : "string" == typeof f ? da(b) : c(f) ? (b._a = e(f.slice(0), function (a) { + return parseInt(a, 10); + }), ta(b)) : "object" == _typeof(f) ? ya(b) : "number" == typeof f ? b._d = new Date(f) : a.createFromInputFallback(b); + } + + function Ca(a, b, c, d, e) { + var f = {}; + return "boolean" == typeof c && (d = c, c = void 0), f._isAMomentObject = !0, f._useUTC = f._isUTC = e, f._l = c, f._i = a, f._f = b, f._strict = d, za(f); + } + + function Da(a, b, c, d) { + return Ca(a, b, c, d, !1); + } + + function Ea(a, b) { + var d, e; + if (1 === b.length && c(b[0]) && (b = b[0]), !b.length) return Da(); + + for (d = b[0], e = 1; e < b.length; ++e) { + (!b[e].isValid() || b[e][a](d)) && (d = b[e]); + } + + return d; + } + + function Fa() { + var a = [].slice.call(arguments, 0); + return Ea("isBefore", a); + } + + function Ga() { + var a = [].slice.call(arguments, 0); + return Ea("isAfter", a); + } + + function Ha(a) { + var b = B(a), + c = b.year || 0, + d = b.quarter || 0, + e = b.month || 0, + f = b.week || 0, + g = b.day || 0, + h = b.hour || 0, + i = b.minute || 0, + j = b.second || 0, + k = b.millisecond || 0; + this._milliseconds = +k + 1e3 * j + 6e4 * i + 36e5 * h, this._days = +g + 7 * f, this._months = +e + 3 * d + 12 * c, this._data = {}, this._locale = y(), this._bubble(); + } + + function Ia(a) { + return a instanceof Ha; + } + + function Ja(a, b) { + H(a, 0, 0, function () { + var a = this.utcOffset(), + c = "+"; + return 0 > a && (a = -a, c = "-"), c + G(~~(a / 60), 2) + b + G(~~a % 60, 2); + }); + } + + function Ka(a) { + var b = (a || "").match(ad) || [], + c = b[b.length - 1] || [], + d = (c + "").match(xd) || ["-", 0, 0], + e = +(60 * d[1]) + q(d[2]); + return "+" === d[0] ? e : -e; + } + + function La(b, c) { + var e, f; + return c._isUTC ? (e = c.clone(), f = (o(b) || d(b) ? +b : +Da(b)) - +e, e._d.setTime(+e._d + f), a.updateOffset(e, !1), e) : Da(b).local(); + } + + function Ma(a) { + return 15 * -Math.round(a._d.getTimezoneOffset() / 15); + } + + function Na(b, c) { + var d, + e = this._offset || 0; + return null != b ? ("string" == typeof b && (b = Ka(b)), Math.abs(b) < 16 && (b = 60 * b), !this._isUTC && c && (d = Ma(this)), this._offset = b, this._isUTC = !0, null != d && this.add(d, "m"), e !== b && (!c || this._changeInProgress ? bb(this, Ya(b - e, "m"), 1, !1) : this._changeInProgress || (this._changeInProgress = !0, a.updateOffset(this, !0), this._changeInProgress = null)), this) : this._isUTC ? e : Ma(this); + } + + function Oa(a, b) { + return null != a ? ("string" != typeof a && (a = -a), this.utcOffset(a, b), this) : -this.utcOffset(); + } + + function Pa(a) { + return this.utcOffset(0, a); + } + + function Qa(a) { + return this._isUTC && (this.utcOffset(0, a), this._isUTC = !1, a && this.subtract(Ma(this), "m")), this; + } + + function Ra() { + return this._tzm ? this.utcOffset(this._tzm) : "string" == typeof this._i && this.utcOffset(Ka(this._i)), this; + } + + function Sa(a) { + return a = a ? Da(a).utcOffset() : 0, (this.utcOffset() - a) % 60 === 0; + } + + function Ta() { + return this.utcOffset() > this.clone().month(0).utcOffset() || this.utcOffset() > this.clone().month(5).utcOffset(); + } + + function Ua() { + if ("undefined" != typeof this._isDSTShifted) return this._isDSTShifted; + var a = {}; + + if (m(a, this), a = Aa(a), a._a) { + var b = a._isUTC ? h(a._a) : Da(a._a); + this._isDSTShifted = this.isValid() && r(a._a, b.toArray()) > 0; + } else this._isDSTShifted = !1; + + return this._isDSTShifted; + } + + function Va() { + return !this._isUTC; + } + + function Wa() { + return this._isUTC; + } + + function Xa() { + return this._isUTC && 0 === this._offset; + } + + function Ya(a, b) { + var c, + d, + e, + g = a, + h = null; + return Ia(a) ? g = { + ms: a._milliseconds, + d: a._days, + M: a._months + } : "number" == typeof a ? (g = {}, b ? g[b] = a : g.milliseconds = a) : (h = yd.exec(a)) ? (c = "-" === h[1] ? -1 : 1, g = { + y: 0, + d: q(h[hd]) * c, + h: q(h[id]) * c, + m: q(h[jd]) * c, + s: q(h[kd]) * c, + ms: q(h[ld]) * c + }) : (h = zd.exec(a)) ? (c = "-" === h[1] ? -1 : 1, g = { + y: Za(h[2], c), + M: Za(h[3], c), + d: Za(h[4], c), + h: Za(h[5], c), + m: Za(h[6], c), + s: Za(h[7], c), + w: Za(h[8], c) + }) : null == g ? g = {} : "object" == _typeof(g) && ("from" in g || "to" in g) && (e = _a(Da(g.from), Da(g.to)), g = {}, g.ms = e.milliseconds, g.M = e.months), d = new Ha(g), Ia(a) && f(a, "_locale") && (d._locale = a._locale), d; + } + + function Za(a, b) { + var c = a && parseFloat(a.replace(",", ".")); + return (isNaN(c) ? 0 : c) * b; + } + + function $a(a, b) { + var c = { + milliseconds: 0, + months: 0 + }; + return c.months = b.month() - a.month() + 12 * (b.year() - a.year()), a.clone().add(c.months, "M").isAfter(b) && --c.months, c.milliseconds = +b - +a.clone().add(c.months, "M"), c; + } + + function _a(a, b) { + var c; + return b = La(b, a), a.isBefore(b) ? c = $a(a, b) : (c = $a(b, a), c.milliseconds = -c.milliseconds, c.months = -c.months), c; + } + + function ab(a, b) { + return function (c, d) { + var e, f; + return null === d || isNaN(+d) || (ba(b, "moment()." + b + "(period, number) is deprecated. Please use moment()." + b + "(number, period)."), f = c, c = d, d = f), c = "string" == typeof c ? +c : c, e = Ya(c, d), bb(this, e, a), this; + }; + } + + function bb(b, c, d, e) { + var f = c._milliseconds, + g = c._days, + h = c._months; + e = null == e ? !0 : e, f && b._d.setTime(+b._d + f * d), g && E(b, "Date", D(b, "Date") + g * d), h && X(b, D(b, "Month") + h * d), e && a.updateOffset(b, g || h); + } + + function cb(a, b) { + var c = a || Da(), + d = La(c, this).startOf("day"), + e = this.diff(d, "days", !0), + f = -6 > e ? "sameElse" : -1 > e ? "lastWeek" : 0 > e ? "lastDay" : 1 > e ? "sameDay" : 2 > e ? "nextDay" : 7 > e ? "nextWeek" : "sameElse"; + return this.format(b && b[f] || this.localeData().calendar(f, this, Da(c))); + } + + function db() { + return new n(this); + } + + function eb(a, b) { + var c; + return b = A("undefined" != typeof b ? b : "millisecond"), "millisecond" === b ? (a = o(a) ? a : Da(a), +this > +a) : (c = o(a) ? +a : +Da(a), c < +this.clone().startOf(b)); + } + + function fb(a, b) { + var c; + return b = A("undefined" != typeof b ? b : "millisecond"), "millisecond" === b ? (a = o(a) ? a : Da(a), +a > +this) : (c = o(a) ? +a : +Da(a), +this.clone().endOf(b) < c); + } + + function gb(a, b, c) { + return this.isAfter(a, c) && this.isBefore(b, c); + } + + function hb(a, b) { + var c; + return b = A(b || "millisecond"), "millisecond" === b ? (a = o(a) ? a : Da(a), +this === +a) : (c = +Da(a), +this.clone().startOf(b) <= c && c <= +this.clone().endOf(b)); + } + + function ib(a, b, c) { + var d, + e, + f = La(a, this), + g = 6e4 * (f.utcOffset() - this.utcOffset()); + return b = A(b), "year" === b || "month" === b || "quarter" === b ? (e = jb(this, f), "quarter" === b ? e /= 3 : "year" === b && (e /= 12)) : (d = this - f, e = "second" === b ? d / 1e3 : "minute" === b ? d / 6e4 : "hour" === b ? d / 36e5 : "day" === b ? (d - g) / 864e5 : "week" === b ? (d - g) / 6048e5 : d), c ? e : p(e); + } + + function jb(a, b) { + var c, + d, + e = 12 * (b.year() - a.year()) + (b.month() - a.month()), + f = a.clone().add(e, "months"); + return 0 > b - f ? (c = a.clone().add(e - 1, "months"), d = (b - f) / (f - c)) : (c = a.clone().add(e + 1, "months"), d = (b - f) / (c - f)), -(e + d); + } + + function kb() { + return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ"); + } + + function lb() { + var a = this.clone().utc(); + return 0 < a.year() && a.year() <= 9999 ? "function" == typeof Date.prototype.toISOString ? this.toDate().toISOString() : K(a, "YYYY-MM-DD[T]HH:mm:ss.SSS[Z]") : K(a, "YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]"); + } + + function mb(b) { + var c = K(this, b || a.defaultFormat); + return this.localeData().postformat(c); + } + + function nb(a, b) { + return this.isValid() ? Ya({ + to: this, + from: a + }).locale(this.locale()).humanize(!b) : this.localeData().invalidDate(); + } + + function ob(a) { + return this.from(Da(), a); + } + + function pb(a, b) { + return this.isValid() ? Ya({ + from: this, + to: a + }).locale(this.locale()).humanize(!b) : this.localeData().invalidDate(); + } + + function qb(a) { + return this.to(Da(), a); + } + + function rb(a) { + var b; + return void 0 === a ? this._locale._abbr : (b = y(a), null != b && (this._locale = b), this); + } + + function sb() { + return this._locale; + } + + function tb(a) { + switch (a = A(a)) { + case "year": + this.month(0); + + case "quarter": + case "month": + this.date(1); + + case "week": + case "isoWeek": + case "day": + this.hours(0); + + case "hour": + this.minutes(0); + + case "minute": + this.seconds(0); + + case "second": + this.milliseconds(0); + } + + return "week" === a && this.weekday(0), "isoWeek" === a && this.isoWeekday(1), "quarter" === a && this.month(3 * Math.floor(this.month() / 3)), this; + } + + function ub(a) { + return a = A(a), void 0 === a || "millisecond" === a ? this : this.startOf(a).add(1, "isoWeek" === a ? "week" : a).subtract(1, "ms"); + } + + function vb() { + return +this._d - 6e4 * (this._offset || 0); + } + + function wb() { + return Math.floor(+this / 1e3); + } + + function xb() { + return this._offset ? new Date(+this) : this._d; + } + + function yb() { + var a = this; + return [a.year(), a.month(), a.date(), a.hour(), a.minute(), a.second(), a.millisecond()]; + } + + function zb() { + var a = this; + return { + years: a.year(), + months: a.month(), + date: a.date(), + hours: a.hours(), + minutes: a.minutes(), + seconds: a.seconds(), + milliseconds: a.milliseconds() + }; + } + + function Ab() { + return k(this); + } + + function Bb() { + return g({}, j(this)); + } + + function Cb() { + return j(this).overflow; + } + + function Db(a, b) { + H(0, [a, a.length], 0, b); + } + + function Eb(a, b, c) { + return ja(Da([a, 11, 31 + b - c]), b, c).week; + } + + function Fb(a) { + var b = ja(this, this.localeData()._week.dow, this.localeData()._week.doy).year; + return null == a ? b : this.add(a - b, "y"); + } + + function Gb(a) { + var b = ja(this, 1, 4).year; + return null == a ? b : this.add(a - b, "y"); + } + + function Hb() { + return Eb(this.year(), 1, 4); + } + + function Ib() { + var a = this.localeData()._week; + + return Eb(this.year(), a.dow, a.doy); + } + + function Jb(a) { + return null == a ? Math.ceil((this.month() + 1) / 3) : this.month(3 * (a - 1) + this.month() % 3); + } + + function Kb(a, b) { + return "string" != typeof a ? a : isNaN(a) ? (a = b.weekdaysParse(a), "number" == typeof a ? a : null) : parseInt(a, 10); + } + + function Lb(a) { + return this._weekdays[a.day()]; + } + + function Mb(a) { + return this._weekdaysShort[a.day()]; + } + + function Nb(a) { + return this._weekdaysMin[a.day()]; + } + + function Ob(a) { + var b, c, d; + + for (this._weekdaysParse = this._weekdaysParse || [], b = 0; 7 > b; b++) { + if (this._weekdaysParse[b] || (c = Da([2e3, 1]).day(b), d = "^" + this.weekdays(c, "") + "|^" + this.weekdaysShort(c, "") + "|^" + this.weekdaysMin(c, ""), this._weekdaysParse[b] = new RegExp(d.replace(".", ""), "i")), this._weekdaysParse[b].test(a)) return b; + } + } + + function Pb(a) { + var b = this._isUTC ? this._d.getUTCDay() : this._d.getDay(); + return null != a ? (a = Kb(a, this.localeData()), this.add(a - b, "d")) : b; + } + + function Qb(a) { + var b = (this.day() + 7 - this.localeData()._week.dow) % 7; + return null == a ? b : this.add(a - b, "d"); + } + + function Rb(a) { + return null == a ? this.day() || 7 : this.day(this.day() % 7 ? a : a - 7); + } + + function Sb(a, b) { + H(a, 0, 0, function () { + return this.localeData().meridiem(this.hours(), this.minutes(), b); + }); + } + + function Tb(a, b) { + return b._meridiemParse; + } + + function Ub(a) { + return "p" === (a + "").toLowerCase().charAt(0); + } + + function Vb(a, b, c) { + return a > 11 ? c ? "pm" : "PM" : c ? "am" : "AM"; + } + + function Wb(a, b) { + b[ld] = q(1e3 * ("0." + a)); + } + + function Xb() { + return this._isUTC ? "UTC" : ""; + } + + function Yb() { + return this._isUTC ? "Coordinated Universal Time" : ""; + } + + function Zb(a) { + return Da(1e3 * a); + } + + function $b() { + return Da.apply(null, arguments).parseZone(); + } + + function _b(a, b, c) { + var d = this._calendar[a]; + return "function" == typeof d ? d.call(b, c) : d; + } + + function ac(a) { + var b = this._longDateFormat[a], + c = this._longDateFormat[a.toUpperCase()]; + + return b || !c ? b : (this._longDateFormat[a] = c.replace(/MMMM|MM|DD|dddd/g, function (a) { + return a.slice(1); + }), this._longDateFormat[a]); + } + + function bc() { + return this._invalidDate; + } + + function cc(a) { + return this._ordinal.replace("%d", a); + } + + function dc(a) { + return a; + } + + function ec(a, b, c, d) { + var e = this._relativeTime[c]; + return "function" == typeof e ? e(a, b, c, d) : e.replace(/%d/i, a); + } + + function fc(a, b) { + var c = this._relativeTime[a > 0 ? "future" : "past"]; + return "function" == typeof c ? c(b) : c.replace(/%s/i, b); + } + + function gc(a) { + var b, c; + + for (c in a) { + b = a[c], "function" == typeof b ? this[c] = b : this["_" + c] = b; + } + + this._ordinalParseLenient = new RegExp(this._ordinalParse.source + "|" + /\d{1,2}/.source); + } + + function hc(a, b, c, d) { + var e = y(), + f = h().set(d, b); + return e[c](f, a); + } + + function ic(a, b, c, d, e) { + if ("number" == typeof a && (b = a, a = void 0), a = a || "", null != b) return hc(a, b, c, e); + var f, + g = []; + + for (f = 0; d > f; f++) { + g[f] = hc(a, f, c, e); + } + + return g; + } + + function jc(a, b) { + return ic(a, b, "months", 12, "month"); + } + + function kc(a, b) { + return ic(a, b, "monthsShort", 12, "month"); + } + + function lc(a, b) { + return ic(a, b, "weekdays", 7, "day"); + } + + function mc(a, b) { + return ic(a, b, "weekdaysShort", 7, "day"); + } + + function nc(a, b) { + return ic(a, b, "weekdaysMin", 7, "day"); + } + + function oc() { + var a = this._data; + return this._milliseconds = Wd(this._milliseconds), this._days = Wd(this._days), this._months = Wd(this._months), a.milliseconds = Wd(a.milliseconds), a.seconds = Wd(a.seconds), a.minutes = Wd(a.minutes), a.hours = Wd(a.hours), a.months = Wd(a.months), a.years = Wd(a.years), this; + } + + function pc(a, b, c, d) { + var e = Ya(b, c); + return a._milliseconds += d * e._milliseconds, a._days += d * e._days, a._months += d * e._months, a._bubble(); + } + + function qc(a, b) { + return pc(this, a, b, 1); + } + + function rc(a, b) { + return pc(this, a, b, -1); + } + + function sc(a) { + return 0 > a ? Math.floor(a) : Math.ceil(a); + } + + function tc() { + var a, + b, + c, + d, + e, + f = this._milliseconds, + g = this._days, + h = this._months, + i = this._data; + return f >= 0 && g >= 0 && h >= 0 || 0 >= f && 0 >= g && 0 >= h || (f += 864e5 * sc(vc(h) + g), g = 0, h = 0), i.milliseconds = f % 1e3, a = p(f / 1e3), i.seconds = a % 60, b = p(a / 60), i.minutes = b % 60, c = p(b / 60), i.hours = c % 24, g += p(c / 24), e = p(uc(g)), h += e, g -= sc(vc(e)), d = p(h / 12), h %= 12, i.days = g, i.months = h, i.years = d, this; + } + + function uc(a) { + return 4800 * a / 146097; + } + + function vc(a) { + return 146097 * a / 4800; + } + + function wc(a) { + var b, + c, + d = this._milliseconds; + if (a = A(a), "month" === a || "year" === a) return b = this._days + d / 864e5, c = this._months + uc(b), "month" === a ? c : c / 12; + + switch (b = this._days + Math.round(vc(this._months)), a) { + case "week": + return b / 7 + d / 6048e5; + + case "day": + return b + d / 864e5; + + case "hour": + return 24 * b + d / 36e5; + + case "minute": + return 1440 * b + d / 6e4; + + case "second": + return 86400 * b + d / 1e3; + + case "millisecond": + return Math.floor(864e5 * b) + d; + + default: + throw new Error("Unknown unit " + a); + } + } + + function xc() { + return this._milliseconds + 864e5 * this._days + this._months % 12 * 2592e6 + 31536e6 * q(this._months / 12); + } + + function yc(a) { + return function () { + return this.as(a); + }; + } + + function zc(a) { + return a = A(a), this[a + "s"](); + } + + function Ac(a) { + return function () { + return this._data[a]; + }; + } + + function Bc() { + return p(this.days() / 7); + } + + function Cc(a, b, c, d, e) { + return e.relativeTime(b || 1, !!c, a, d); + } + + function Dc(a, b, c) { + var d = Ya(a).abs(), + e = ke(d.as("s")), + f = ke(d.as("m")), + g = ke(d.as("h")), + h = ke(d.as("d")), + i = ke(d.as("M")), + j = ke(d.as("y")), + k = e < le.s && ["s", e] || 1 === f && ["m"] || f < le.m && ["mm", f] || 1 === g && ["h"] || g < le.h && ["hh", g] || 1 === h && ["d"] || h < le.d && ["dd", h] || 1 === i && ["M"] || i < le.M && ["MM", i] || 1 === j && ["y"] || ["yy", j]; + return k[2] = b, k[3] = +a > 0, k[4] = c, Cc.apply(null, k); + } + + function Ec(a, b) { + return void 0 === le[a] ? !1 : void 0 === b ? le[a] : (le[a] = b, !0); + } + + function Fc(a) { + var b = this.localeData(), + c = Dc(this, !a, b); + return a && (c = b.pastFuture(+this, c)), b.postformat(c); + } + + function Gc() { + var a, + b, + c, + d = me(this._milliseconds) / 1e3, + e = me(this._days), + f = me(this._months); + a = p(d / 60), b = p(a / 60), d %= 60, a %= 60, c = p(f / 12), f %= 12; + var g = c, + h = f, + i = e, + j = b, + k = a, + l = d, + m = this.asSeconds(); + return m ? (0 > m ? "-" : "") + "P" + (g ? g + "Y" : "") + (h ? h + "M" : "") + (i ? i + "D" : "") + (j || k || l ? "T" : "") + (j ? j + "H" : "") + (k ? k + "M" : "") + (l ? l + "S" : "") : "P0D"; + } + + var Hc, + Ic, + Jc = a.momentProperties = [], + Kc = !1, + Lc = {}, + Mc = {}, + Nc = /(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Q|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g, + Oc = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g, + Pc = {}, + Qc = {}, + Rc = /\d/, + Sc = /\d\d/, + Tc = /\d{3}/, + Uc = /\d{4}/, + Vc = /[+-]?\d{6}/, + Wc = /\d\d?/, + Xc = /\d{1,3}/, + Yc = /\d{1,4}/, + Zc = /[+-]?\d{1,6}/, + $c = /\d+/, + _c = /[+-]?\d+/, + ad = /Z|[+-]\d\d:?\d\d/gi, + bd = /[+-]?\d+(\.\d{1,3})?/, + cd = /[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i, + dd = {}, + ed = {}, + fd = 0, + gd = 1, + hd = 2, + id = 3, + jd = 4, + kd = 5, + ld = 6; + H("M", ["MM", 2], "Mo", function () { + return this.month() + 1; + }), H("MMM", 0, 0, function (a) { + return this.localeData().monthsShort(this, a); + }), H("MMMM", 0, 0, function (a) { + return this.localeData().months(this, a); + }), z("month", "M"), N("M", Wc), N("MM", Wc, Sc), N("MMM", cd), N("MMMM", cd), Q(["M", "MM"], function (a, b) { + b[gd] = q(a) - 1; + }), Q(["MMM", "MMMM"], function (a, b, c, d) { + var e = c._locale.monthsParse(a, d, c._strict); + + null != e ? b[gd] = e : j(c).invalidMonth = a; + }); + var md = "January_February_March_April_May_June_July_August_September_October_November_December".split("_"), + nd = "Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"), + od = {}; + a.suppressDeprecationWarnings = !1; + var pd = /^\s*(?:[+-]\d{6}|\d{4})-(?:(\d\d-\d\d)|(W\d\d$)|(W\d\d-\d)|(\d\d\d))((T| )(\d\d(:\d\d(:\d\d(\.\d+)?)?)?)?([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/, + qd = [["YYYYYY-MM-DD", /[+-]\d{6}-\d{2}-\d{2}/], ["YYYY-MM-DD", /\d{4}-\d{2}-\d{2}/], ["GGGG-[W]WW-E", /\d{4}-W\d{2}-\d/], ["GGGG-[W]WW", /\d{4}-W\d{2}/], ["YYYY-DDD", /\d{4}-\d{3}/]], + rd = [["HH:mm:ss.SSSS", /(T| )\d\d:\d\d:\d\d\.\d+/], ["HH:mm:ss", /(T| )\d\d:\d\d:\d\d/], ["HH:mm", /(T| )\d\d:\d\d/], ["HH", /(T| )\d\d/]], + sd = /^\/?Date\((\-?\d+)/i; + a.createFromInputFallback = aa("moment construction falls back to js Date. This is discouraged and will be removed in upcoming major release. Please refer to https://github.com/moment/moment/issues/1407 for more info.", function (a) { + a._d = new Date(a._i + (a._useUTC ? " UTC" : "")); + }), H(0, ["YY", 2], 0, function () { + return this.year() % 100; + }), H(0, ["YYYY", 4], 0, "year"), H(0, ["YYYYY", 5], 0, "year"), H(0, ["YYYYYY", 6, !0], 0, "year"), z("year", "y"), N("Y", _c), N("YY", Wc, Sc), N("YYYY", Yc, Uc), N("YYYYY", Zc, Vc), N("YYYYYY", Zc, Vc), Q(["YYYYY", "YYYYYY"], fd), Q("YYYY", function (b, c) { + c[fd] = 2 === b.length ? a.parseTwoDigitYear(b) : q(b); + }), Q("YY", function (b, c) { + c[fd] = a.parseTwoDigitYear(b); + }), a.parseTwoDigitYear = function (a) { + return q(a) + (q(a) > 68 ? 1900 : 2e3); + }; + var td = C("FullYear", !1); + H("w", ["ww", 2], "wo", "week"), H("W", ["WW", 2], "Wo", "isoWeek"), z("week", "w"), z("isoWeek", "W"), N("w", Wc), N("ww", Wc, Sc), N("W", Wc), N("WW", Wc, Sc), R(["w", "ww", "W", "WW"], function (a, b, c, d) { + b[d.substr(0, 1)] = q(a); + }); + var ud = { + dow: 0, + doy: 6 + }; + H("DDD", ["DDDD", 3], "DDDo", "dayOfYear"), z("dayOfYear", "DDD"), N("DDD", Xc), N("DDDD", Tc), Q(["DDD", "DDDD"], function (a, b, c) { + c._dayOfYear = q(a); + }), a.ISO_8601 = function () {}; + var vd = aa("moment().min is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548", function () { + var a = Da.apply(null, arguments); + return this > a ? this : a; + }), + wd = aa("moment().max is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548", function () { + var a = Da.apply(null, arguments); + return a > this ? this : a; + }); + Ja("Z", ":"), Ja("ZZ", ""), N("Z", ad), N("ZZ", ad), Q(["Z", "ZZ"], function (a, b, c) { + c._useUTC = !0, c._tzm = Ka(a); + }); + var xd = /([\+\-]|\d\d)/gi; + + a.updateOffset = function () {}; + + var yd = /(\-)?(?:(\d*)\.)?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?)?/, + zd = /^(-)?P(?:(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?|([0-9,.]*)W)$/; + Ya.fn = Ha.prototype; + var Ad = ab(1, "add"), + Bd = ab(-1, "subtract"); + a.defaultFormat = "YYYY-MM-DDTHH:mm:ssZ"; + var Cd = aa("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.", function (a) { + return void 0 === a ? this.localeData() : this.locale(a); + }); + H(0, ["gg", 2], 0, function () { + return this.weekYear() % 100; + }), H(0, ["GG", 2], 0, function () { + return this.isoWeekYear() % 100; + }), Db("gggg", "weekYear"), Db("ggggg", "weekYear"), Db("GGGG", "isoWeekYear"), Db("GGGGG", "isoWeekYear"), z("weekYear", "gg"), z("isoWeekYear", "GG"), N("G", _c), N("g", _c), N("GG", Wc, Sc), N("gg", Wc, Sc), N("GGGG", Yc, Uc), N("gggg", Yc, Uc), N("GGGGG", Zc, Vc), N("ggggg", Zc, Vc), R(["gggg", "ggggg", "GGGG", "GGGGG"], function (a, b, c, d) { + b[d.substr(0, 2)] = q(a); + }), R(["gg", "GG"], function (b, c, d, e) { + c[e] = a.parseTwoDigitYear(b); + }), H("Q", 0, 0, "quarter"), z("quarter", "Q"), N("Q", Rc), Q("Q", function (a, b) { + b[gd] = 3 * (q(a) - 1); + }), H("D", ["DD", 2], "Do", "date"), z("date", "D"), N("D", Wc), N("DD", Wc, Sc), N("Do", function (a, b) { + return a ? b._ordinalParse : b._ordinalParseLenient; + }), Q(["D", "DD"], hd), Q("Do", function (a, b) { + b[hd] = q(a.match(Wc)[0], 10); + }); + var Dd = C("Date", !0); + H("d", 0, "do", "day"), H("dd", 0, 0, function (a) { + return this.localeData().weekdaysMin(this, a); + }), H("ddd", 0, 0, function (a) { + return this.localeData().weekdaysShort(this, a); + }), H("dddd", 0, 0, function (a) { + return this.localeData().weekdays(this, a); + }), H("e", 0, 0, "weekday"), H("E", 0, 0, "isoWeekday"), z("day", "d"), z("weekday", "e"), z("isoWeekday", "E"), N("d", Wc), N("e", Wc), N("E", Wc), N("dd", cd), N("ddd", cd), N("dddd", cd), R(["dd", "ddd", "dddd"], function (a, b, c) { + var d = c._locale.weekdaysParse(a); + + null != d ? b.d = d : j(c).invalidWeekday = a; + }), R(["d", "e", "E"], function (a, b, c, d) { + b[d] = q(a); + }); + var Ed = "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"), + Fd = "Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"), + Gd = "Su_Mo_Tu_We_Th_Fr_Sa".split("_"); + H("H", ["HH", 2], 0, "hour"), H("h", ["hh", 2], 0, function () { + return this.hours() % 12 || 12; + }), Sb("a", !0), Sb("A", !1), z("hour", "h"), N("a", Tb), N("A", Tb), N("H", Wc), N("h", Wc), N("HH", Wc, Sc), N("hh", Wc, Sc), Q(["H", "HH"], id), Q(["a", "A"], function (a, b, c) { + c._isPm = c._locale.isPM(a), c._meridiem = a; + }), Q(["h", "hh"], function (a, b, c) { + b[id] = q(a), j(c).bigHour = !0; + }); + var Hd = /[ap]\.?m?\.?/i, + Id = C("Hours", !0); + H("m", ["mm", 2], 0, "minute"), z("minute", "m"), N("m", Wc), N("mm", Wc, Sc), Q(["m", "mm"], jd); + var Jd = C("Minutes", !1); + H("s", ["ss", 2], 0, "second"), z("second", "s"), N("s", Wc), N("ss", Wc, Sc), Q(["s", "ss"], kd); + var Kd = C("Seconds", !1); + H("S", 0, 0, function () { + return ~~(this.millisecond() / 100); + }), H(0, ["SS", 2], 0, function () { + return ~~(this.millisecond() / 10); + }), H(0, ["SSS", 3], 0, "millisecond"), H(0, ["SSSS", 4], 0, function () { + return 10 * this.millisecond(); + }), H(0, ["SSSSS", 5], 0, function () { + return 100 * this.millisecond(); + }), H(0, ["SSSSSS", 6], 0, function () { + return 1e3 * this.millisecond(); + }), H(0, ["SSSSSSS", 7], 0, function () { + return 1e4 * this.millisecond(); + }), H(0, ["SSSSSSSS", 8], 0, function () { + return 1e5 * this.millisecond(); + }), H(0, ["SSSSSSSSS", 9], 0, function () { + return 1e6 * this.millisecond(); + }), z("millisecond", "ms"), N("S", Xc, Rc), N("SS", Xc, Sc), N("SSS", Xc, Tc); + var Ld; + + for (Ld = "SSSS"; Ld.length <= 9; Ld += "S") { + N(Ld, $c); + } + + for (Ld = "S"; Ld.length <= 9; Ld += "S") { + Q(Ld, Wb); + } + + var Md = C("Milliseconds", !1); + H("z", 0, 0, "zoneAbbr"), H("zz", 0, 0, "zoneName"); + var Nd = n.prototype; + Nd.add = Ad, Nd.calendar = cb, Nd.clone = db, Nd.diff = ib, Nd.endOf = ub, Nd.format = mb, Nd.from = nb, Nd.fromNow = ob, Nd.to = pb, Nd.toNow = qb, Nd.get = F, Nd.invalidAt = Cb, Nd.isAfter = eb, Nd.isBefore = fb, Nd.isBetween = gb, Nd.isSame = hb, Nd.isValid = Ab, Nd.lang = Cd, Nd.locale = rb, Nd.localeData = sb, Nd.max = wd, Nd.min = vd, Nd.parsingFlags = Bb, Nd.set = F, Nd.startOf = tb, Nd.subtract = Bd, Nd.toArray = yb, Nd.toObject = zb, Nd.toDate = xb, Nd.toISOString = lb, Nd.toJSON = lb, Nd.toString = kb, Nd.unix = wb, Nd.valueOf = vb, Nd.year = td, Nd.isLeapYear = ia, Nd.weekYear = Fb, Nd.isoWeekYear = Gb, Nd.quarter = Nd.quarters = Jb, Nd.month = Y, Nd.daysInMonth = Z, Nd.week = Nd.weeks = na, Nd.isoWeek = Nd.isoWeeks = oa, Nd.weeksInYear = Ib, Nd.isoWeeksInYear = Hb, Nd.date = Dd, Nd.day = Nd.days = Pb, Nd.weekday = Qb, Nd.isoWeekday = Rb, Nd.dayOfYear = qa, Nd.hour = Nd.hours = Id, Nd.minute = Nd.minutes = Jd, Nd.second = Nd.seconds = Kd, Nd.millisecond = Nd.milliseconds = Md, Nd.utcOffset = Na, Nd.utc = Pa, Nd.local = Qa, Nd.parseZone = Ra, Nd.hasAlignedHourOffset = Sa, Nd.isDST = Ta, Nd.isDSTShifted = Ua, Nd.isLocal = Va, Nd.isUtcOffset = Wa, Nd.isUtc = Xa, Nd.isUTC = Xa, Nd.zoneAbbr = Xb, Nd.zoneName = Yb, Nd.dates = aa("dates accessor is deprecated. Use date instead.", Dd), Nd.months = aa("months accessor is deprecated. Use month instead", Y), Nd.years = aa("years accessor is deprecated. Use year instead", td), Nd.zone = aa("moment().zone is deprecated, use moment().utcOffset instead. https://github.com/moment/moment/issues/1779", Oa); + var Od = Nd, + Pd = { + sameDay: "[Today at] LT", + nextDay: "[Tomorrow at] LT", + nextWeek: "dddd [at] LT", + lastDay: "[Yesterday at] LT", + lastWeek: "[Last] dddd [at] LT", + sameElse: "L" + }, + Qd = { + LTS: "h:mm:ss A", + LT: "h:mm A", + L: "MM/DD/YYYY", + LL: "MMMM D, YYYY", + LLL: "MMMM D, YYYY h:mm A", + LLLL: "dddd, MMMM D, YYYY h:mm A" + }, + Rd = "Invalid date", + Sd = "%d", + Td = /\d{1,2}/, + Ud = { + future: "in %s", + past: "%s ago", + s: "a few seconds", + m: "a minute", + mm: "%d minutes", + h: "an hour", + hh: "%d hours", + d: "a day", + dd: "%d days", + M: "a month", + MM: "%d months", + y: "a year", + yy: "%d years" + }, + Vd = s.prototype; + Vd._calendar = Pd, Vd.calendar = _b, Vd._longDateFormat = Qd, Vd.longDateFormat = ac, Vd._invalidDate = Rd, Vd.invalidDate = bc, Vd._ordinal = Sd, Vd.ordinal = cc, Vd._ordinalParse = Td, Vd.preparse = dc, Vd.postformat = dc, Vd._relativeTime = Ud, Vd.relativeTime = ec, Vd.pastFuture = fc, Vd.set = gc, Vd.months = U, Vd._months = md, Vd.monthsShort = V, Vd._monthsShort = nd, Vd.monthsParse = W, Vd.week = ka, Vd._week = ud, Vd.firstDayOfYear = ma, Vd.firstDayOfWeek = la, Vd.weekdays = Lb, Vd._weekdays = Ed, Vd.weekdaysMin = Nb, Vd._weekdaysMin = Gd, Vd.weekdaysShort = Mb, Vd._weekdaysShort = Fd, Vd.weekdaysParse = Ob, Vd.isPM = Ub, Vd._meridiemParse = Hd, Vd.meridiem = Vb, w("en", { + ordinalParse: /\d{1,2}(th|st|nd|rd)/, + ordinal: function ordinal(a) { + var b = a % 10, + c = 1 === q(a % 100 / 10) ? "th" : 1 === b ? "st" : 2 === b ? "nd" : 3 === b ? "rd" : "th"; + return a + c; + } + }), a.lang = aa("moment.lang is deprecated. Use moment.locale instead.", w), a.langData = aa("moment.langData is deprecated. Use moment.localeData instead.", y); + + var Wd = Math.abs, + Xd = yc("ms"), + Yd = yc("s"), + Zd = yc("m"), + $d = yc("h"), + _d = yc("d"), + ae = yc("w"), + be = yc("M"), + ce = yc("y"), + de = Ac("milliseconds"), + ee = Ac("seconds"), + fe = Ac("minutes"), + ge = Ac("hours"), + he = Ac("days"), + ie = Ac("months"), + je = Ac("years"), + ke = Math.round, + le = { + s: 45, + m: 45, + h: 22, + d: 26, + M: 11 + }, + me = Math.abs, + ne = Ha.prototype; + + ne.abs = oc, ne.add = qc, ne.subtract = rc, ne.as = wc, ne.asMilliseconds = Xd, ne.asSeconds = Yd, ne.asMinutes = Zd, ne.asHours = $d, ne.asDays = _d, ne.asWeeks = ae, ne.asMonths = be, ne.asYears = ce, ne.valueOf = xc, ne._bubble = tc, ne.get = zc, ne.milliseconds = de, ne.seconds = ee, ne.minutes = fe, ne.hours = ge, ne.days = he, ne.weeks = Bc, ne.months = ie, ne.years = je, ne.humanize = Fc, ne.toISOString = Gc, ne.toString = Gc, ne.toJSON = Gc, ne.locale = rb, ne.localeData = sb, ne.toIsoString = aa("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)", Gc), ne.lang = Cd, H("X", 0, 0, "unix"), H("x", 0, 0, "valueOf"), N("x", _c), N("X", bd), Q("X", function (a, b, c) { + c._d = new Date(1e3 * parseFloat(a, 10)); + }), Q("x", function (a, b, c) { + c._d = new Date(q(a)); + }), a.version = "2.10.6", b(Da), a.fn = Od, a.min = Fa, a.max = Ga, a.utc = h, a.unix = Zb, a.months = jc, a.isDate = d, a.locale = w, a.invalid = l, a.duration = Ya, a.isMoment = o, a.weekdays = lc, a.parseZone = $b, a.localeData = y, a.isDuration = Ia, a.monthsShort = kc, a.weekdaysMin = nc, a.defineLocale = x, a.weekdaysShort = mc, a.normalizeUnits = A, a.relativeTimeThreshold = Ec; + var oe = a; + return oe; +}); +/*! version : 4.15.35 + ========================================================= + bootstrap-datetimejs + https://github.com/Eonasdan/bootstrap-datetimepicker + Copyright (c) 2015 Jonathan Peterson + ========================================================= + */ + +!function (a) { + "use strict"; + + if ("function" == typeof define && define.amd) define(["jquery", "moment"], a);else if ("object" == (typeof exports === "undefined" ? "undefined" : _typeof(exports))) a(require("jquery"), require("moment"));else { + if ("undefined" == typeof jQuery) throw "bootstrap-datetimepicker requires jQuery to be loaded first"; + if ("undefined" == typeof moment) throw "bootstrap-datetimepicker requires Moment.js to be loaded first"; + a(jQuery, moment); + } +}(function (a, b) { + "use strict"; + + if (!b) throw new Error("bootstrap-datetimepicker requires Moment.js to be loaded first"); + + var c = function c(_c2, d) { + var e, + f, + g, + h, + i, + j = {}, + k = b().startOf("d"), + l = k.clone(), + m = !0, + n = !1, + o = !1, + p = 0, + q = [{ + clsName: "days", + navFnc: "M", + navStep: 1 + }, { + clsName: "months", + navFnc: "y", + navStep: 1 + }, { + clsName: "years", + navFnc: "y", + navStep: 10 + }, { + clsName: "decades", + navFnc: "y", + navStep: 100 + }], + r = ["days", "months", "years", "decades"], + s = ["top", "bottom", "auto"], + t = ["left", "right", "auto"], + u = ["default", "top", "bottom"], + v = { + up: 38, + 38: "up", + down: 40, + 40: "down", + left: 37, + 37: "left", + right: 39, + 39: "right", + tab: 9, + 9: "tab", + escape: 27, + 27: "escape", + enter: 13, + 13: "enter", + pageUp: 33, + 33: "pageUp", + pageDown: 34, + 34: "pageDown", + shift: 16, + 16: "shift", + control: 17, + 17: "control", + space: 32, + 32: "space", + t: 84, + 84: "t", + "delete": 46, + 46: "delete" + }, + w = {}, + x = function x(a) { + if ("string" != typeof a || a.length > 1) throw new TypeError("isEnabled expects a single character string parameter"); + + switch (a) { + case "y": + return -1 !== g.indexOf("Y"); + + case "M": + return -1 !== g.indexOf("M"); + + case "d": + return -1 !== g.toLowerCase().indexOf("d"); + + case "h": + case "H": + return -1 !== g.toLowerCase().indexOf("h"); + + case "m": + return -1 !== g.indexOf("m"); + + case "s": + return -1 !== g.indexOf("s"); + + default: + return !1; + } + }, + y = function y() { + return x("h") || x("m") || x("s"); + }, + z = function z() { + return x("y") || x("M") || x("d"); + }, + A = function A() { + var b = a("").append(a("").append(a("").addClass("prev").attr("data-action", "previous").append(a("").addClass(d.icons.previous))).append(a("").addClass("picker-switch").attr("data-action", "pickerSwitch").attr("colspan", d.calendarWeeks ? "6" : "5")).append(a("").addClass("next").attr("data-action", "next").append(a("").addClass(d.icons.next)))), + c = a("").append(a("").append(a("").attr("colspan", d.calendarWeeks ? "8" : "7"))); + return [a("
").addClass("datepicker-days").append(a("").addClass("table-condensed").append(b).append(a(""))), a("
").addClass("datepicker-months").append(a("
").addClass("table-condensed").append(b.clone()).append(c.clone())), a("
").addClass("datepicker-years").append(a("
").addClass("table-condensed").append(b.clone()).append(c.clone())), a("
").addClass("datepicker-decades").append(a("
").addClass("table-condensed").append(b.clone()).append(c.clone()))]; + }, + B = function B() { + var b = a(""), + c = a(""), + e = a(""); + return x("h") && (b.append(a("
").append(a("").attr({ + href: "#", + tabindex: "-1", + title: "Increment Hour" + }).addClass("btn").attr("data-action", "incrementHours").append(a("").addClass(d.icons.up)))), c.append(a("").append(a("").addClass("timepicker-hour").attr({ + "data-time-component": "hours", + title: "Pick Hour" + }).attr("data-action", "showHours"))), e.append(a("").append(a("").attr({ + href: "#", + tabindex: "-1", + title: "Decrement Hour" + }).addClass("btn").attr("data-action", "decrementHours").append(a("").addClass(d.icons.down))))), x("m") && (x("h") && (b.append(a("").addClass("separator")), c.append(a("").addClass("separator").html(":")), e.append(a("").addClass("separator"))), b.append(a("").append(a("").attr({ + href: "#", + tabindex: "-1", + title: "Increment Minute" + }).addClass("btn").attr("data-action", "incrementMinutes").append(a("").addClass(d.icons.up)))), c.append(a("").append(a("").addClass("timepicker-minute").attr({ + "data-time-component": "minutes", + title: "Pick Minute" + }).attr("data-action", "showMinutes"))), e.append(a("").append(a("").attr({ + href: "#", + tabindex: "-1", + title: "Decrement Minute" + }).addClass("btn").attr("data-action", "decrementMinutes").append(a("").addClass(d.icons.down))))), x("s") && (x("m") && (b.append(a("").addClass("separator")), c.append(a("").addClass("separator").html(":")), e.append(a("").addClass("separator"))), b.append(a("").append(a("").attr({ + href: "#", + tabindex: "-1", + title: "Increment Second" + }).addClass("btn").attr("data-action", "incrementSeconds").append(a("").addClass(d.icons.up)))), c.append(a("").append(a("").addClass("timepicker-second").attr({ + "data-time-component": "seconds", + title: "Pick Second" + }).attr("data-action", "showSeconds"))), e.append(a("").append(a("").attr({ + href: "#", + tabindex: "-1", + title: "Decrement Second" + }).addClass("btn").attr("data-action", "decrementSeconds").append(a("").addClass(d.icons.down))))), f || (b.append(a("").addClass("separator")), c.append(a("").append(a("").addClass("separator"))), a("
").addClass("timepicker-picker").append(a("").addClass("table-condensed").append([b, c, e])); + }, + C = function C() { + var b = a("
").addClass("timepicker-hours").append(a("
").addClass("table-condensed")), + c = a("
").addClass("timepicker-minutes").append(a("
").addClass("table-condensed")), + d = a("
").addClass("timepicker-seconds").append(a("
").addClass("table-condensed")), + e = [B()]; + return x("h") && e.push(b), x("m") && e.push(c), x("s") && e.push(d), e; + }, + D = function D() { + var b = []; + return d.showTodayButton && b.push(a("
").append(a("").attr({ + "data-action": "today", + title: d.tooltips.today + }).append(a("").addClass(d.icons.today)))), !d.sideBySide && z() && y() && b.push(a("").append(a("").attr({ + "data-action": "togglePicker", + title: "Select Time" + }).append(a("").addClass(d.icons.time)))), d.showClear && b.push(a("").append(a("").attr({ + "data-action": "clear", + title: d.tooltips.clear + }).append(a("").addClass(d.icons.clear)))), d.showClose && b.push(a("").append(a("").attr({ + "data-action": "close", + title: d.tooltips.close + }).append(a("").addClass(d.icons.close)))), a("").addClass("table-condensed").append(a("").append(a("").append(b))); + }, + E = function E() { + var b = a("
").addClass("bootstrap-datetimepicker-widget dropdown-menu"), + c = a("
").addClass("datepicker").append(A()), + e = a("
").addClass("timepicker").append(C()), + g = a("
    ").addClass("list-unstyled"), + h = a("
  • ").addClass("picker-switch" + (d.collapse ? " accordion-toggle" : "")).append(D()); + return d.inline && b.removeClass("dropdown-menu"), f && b.addClass("usetwentyfour"), x("s") && !f && b.addClass("wider"), d.sideBySide && z() && y() ? (b.addClass("timepicker-sbs"), "top" === d.toolbarPlacement && b.append(h), b.append(a("
    ").addClass("row").append(c.addClass("col-md-6")).append(e.addClass("col-md-6"))), "bottom" === d.toolbarPlacement && b.append(h), b) : ("top" === d.toolbarPlacement && g.append(h), z() && g.append(a("
  • ").addClass(d.collapse && y() ? "collapse in" : "").append(c)), "default" === d.toolbarPlacement && g.append(h), y() && g.append(a("
  • ").addClass(d.collapse && z() ? "collapse" : "").append(e)), "bottom" === d.toolbarPlacement && g.append(h), b.append(g)); + }, + F = function F() { + var b, + e = {}; + return b = _c2.is("input") || d.inline ? _c2.data() : _c2.find("input").data(), b.dateOptions && b.dateOptions instanceof Object && (e = a.extend(!0, e, b.dateOptions)), a.each(d, function (a) { + var c = "date" + a.charAt(0).toUpperCase() + a.slice(1); + void 0 !== b[c] && (e[a] = b[c]); + }), e; + }, + G = function G() { + var b, + e = (n || _c2).position(), + f = (n || _c2).offset(), + g = d.widgetPositioning.vertical, + h = d.widgetPositioning.horizontal; + + if (d.widgetParent) b = d.widgetParent.append(o);else if (_c2.is("input")) b = _c2.after(o).parent();else { + if (d.inline) return void (b = _c2.append(o)); + b = _c2, _c2.children().first().after(o); + } + if ("auto" === g && (g = f.top + 1.5 * o.height() >= a(window).height() + a(window).scrollTop() && o.height() + _c2.outerHeight() < f.top ? "top" : "bottom"), "auto" === h && (h = b.width() < f.left + o.outerWidth() / 2 && f.left + o.outerWidth() > a(window).width() ? "right" : "left"), "top" === g ? o.addClass("top").removeClass("bottom") : o.addClass("bottom").removeClass("top"), "right" === h ? o.addClass("pull-right") : o.removeClass("pull-right"), "relative" !== b.css("position") && (b = b.parents().filter(function () { + return "relative" === a(this).css("position"); + }).first()), 0 === b.length) throw new Error("datetimepicker component should be placed within a relative positioned container"); + o.css({ + top: "top" === g ? "auto" : e.top + _c2.outerHeight(), + bottom: "top" === g ? e.top + _c2.outerHeight() : "auto", + left: "left" === h ? b === _c2 ? 0 : e.left : "auto", + right: "left" === h ? "auto" : b.outerWidth() - _c2.outerWidth() - (b === _c2 ? 0 : e.left) + }); + }, + H = function H(a) { + "dp.change" === a.type && (a.date && a.date.isSame(a.oldDate) || !a.date && !a.oldDate) || _c2.trigger(a); + }, + I = function I(a) { + "y" === a && (a = "YYYY"), H({ + type: "dp.update", + change: a, + viewDate: l.clone() + }); + }, + J = function J(a) { + o && (a && (i = Math.max(p, Math.min(3, i + a))), o.find(".datepicker > div").hide().filter(".datepicker-" + q[i].clsName).show()); + }, + K = function K() { + var b = a("
"), + c = l.clone().startOf("w").startOf("d"); + + for (d.calendarWeeks === !0 && b.append(a(""), d.calendarWeeks && e.append('"), j.push(e)), f = "", c.isBefore(l, "M") && (f += " old"), c.isAfter(l, "M") && (f += " new"), c.isSame(k, "d") && !m && (f += " active"), P(c, "d") || (f += " disabled"), c.isSame(b(), "d") && (f += " today"), (0 === c.day() || 6 === c.day()) && (f += " weekend"), e.append('"), c.add(1, "d"); + } + + h.find("tbody").empty().append(j), R(), S(), T(); + } + }, + V = function V() { + var b = o.find(".timepicker-hours table"), + c = l.clone().startOf("d"), + d = [], + e = a(""); + + for (l.hour() > 11 && !f && c.hour(12); c.isSame(l, "d") && (f || l.hour() < 12 && c.hour() < 12 || l.hour() > 11);) { + c.hour() % 4 === 0 && (e = a(""), d.push(e)), e.append('"), c.add(1, "h"); + } + + b.empty().append(d); + }, + W = function W() { + for (var b = o.find(".timepicker-minutes table"), c = l.clone().startOf("h"), e = [], f = a(""), g = 1 === d.stepping ? 5 : d.stepping; l.isSame(c, "h");) { + c.minute() % (4 * g) === 0 && (f = a(""), e.push(f)), f.append('"), c.add(g, "m"); + } + + b.empty().append(e); + }, + X = function X() { + for (var b = o.find(".timepicker-seconds table"), c = l.clone().startOf("m"), d = [], e = a(""); l.isSame(c, "m");) { + c.second() % 20 === 0 && (e = a(""), d.push(e)), e.append('"), c.add(5, "s"); + } + + b.empty().append(d); + }, + Y = function Y() { + var a, + b, + c = o.find(".timepicker span[data-time-component]"); + f || (a = o.find(".timepicker [data-action=togglePeriod]"), b = k.clone().add(k.hours() >= 12 ? -12 : 12, "h"), a.text(k.format("A")), P(b, "h") ? a.removeClass("disabled") : a.addClass("disabled")), c.filter("[data-time-component=hours]").text(k.format(f ? "HH" : "hh")), c.filter("[data-time-component=minutes]").text(k.format("mm")), c.filter("[data-time-component=seconds]").text(k.format("ss")), V(), W(), X(); + }, + Z = function Z() { + o && (U(), Y()); + }, + $ = function $(a) { + var b = m ? null : k; + return a ? (a = a.clone().locale(d.locale), 1 !== d.stepping && a.minutes(Math.round(a.minutes() / d.stepping) * d.stepping % 60).seconds(0), void (P(a) ? (k = a, l = k.clone(), e.val(k.format(g)), _c2.data("date", k.format(g)), m = !1, Z(), H({ + type: "dp.change", + date: k.clone(), + oldDate: b + })) : (d.keepInvalid || e.val(m ? "" : k.format(g)), H({ + type: "dp.error", + date: a + })))) : (m = !0, e.val(""), _c2.data("date", ""), H({ + type: "dp.change", + date: !1, + oldDate: b + }), void Z()); + }, + _ = function _() { + var b = !1; + return o ? (o.find(".collapse").each(function () { + var c = a(this).data("collapse"); + return c && c.transitioning ? (b = !0, !1) : !0; + }), b ? j : (n && n.hasClass("btn") && n.toggleClass("active"), o.hide(), a(window).off("resize", G), o.off("click", "[data-action]"), o.off("mousedown", !1), o.remove(), o = !1, H({ + type: "dp.hide", + date: k.clone() + }), e.blur(), j)) : j; + }, + aa = function aa() { + $(null); + }, + ba = { + next: function next() { + var a = q[i].navFnc; + l.add(q[i].navStep, a), U(), I(a); + }, + previous: function previous() { + var a = q[i].navFnc; + l.subtract(q[i].navStep, a), U(), I(a); + }, + pickerSwitch: function pickerSwitch() { + J(1); + }, + selectMonth: function selectMonth(b) { + var c = a(b.target).closest("tbody").find("span").index(a(b.target)); + l.month(c), i === p ? ($(k.clone().year(l.year()).month(l.month())), d.inline || _()) : (J(-1), U()), I("M"); + }, + selectYear: function selectYear(b) { + var c = parseInt(a(b.target).text(), 10) || 0; + l.year(c), i === p ? ($(k.clone().year(l.year())), d.inline || _()) : (J(-1), U()), I("YYYY"); + }, + selectDecade: function selectDecade(b) { + var c = parseInt(a(b.target).data("selection"), 10) || 0; + l.year(c), i === p ? ($(k.clone().year(l.year())), d.inline || _()) : (J(-1), U()), I("YYYY"); + }, + selectDay: function selectDay(b) { + var c = l.clone(); + a(b.target).is(".old") && c.subtract(1, "M"), a(b.target).is(".new") && c.add(1, "M"), $(c.date(parseInt(a(b.target).text(), 10))), y() || d.keepOpen || d.inline || _(); + }, + incrementHours: function incrementHours() { + var a = k.clone().add(1, "h"); + P(a, "h") && $(a); + }, + incrementMinutes: function incrementMinutes() { + var a = k.clone().add(d.stepping, "m"); + P(a, "m") && $(a); + }, + incrementSeconds: function incrementSeconds() { + var a = k.clone().add(1, "s"); + P(a, "s") && $(a); + }, + decrementHours: function decrementHours() { + var a = k.clone().subtract(1, "h"); + P(a, "h") && $(a); + }, + decrementMinutes: function decrementMinutes() { + var a = k.clone().subtract(d.stepping, "m"); + P(a, "m") && $(a); + }, + decrementSeconds: function decrementSeconds() { + var a = k.clone().subtract(1, "s"); + P(a, "s") && $(a); + }, + togglePeriod: function togglePeriod() { + $(k.clone().add(k.hours() >= 12 ? -12 : 12, "h")); + }, + togglePicker: function togglePicker(b) { + var c, + e = a(b.target), + f = e.closest("ul"), + g = f.find(".in"), + h = f.find(".collapse:not(.in)"); + + if (g && g.length) { + if (c = g.data("collapse"), c && c.transitioning) return; + g.collapse ? (g.collapse("hide"), h.collapse("show")) : (g.removeClass("in"), h.addClass("in")), e.is("span") ? e.toggleClass(d.icons.time + " " + d.icons.date) : e.find("span").toggleClass(d.icons.time + " " + d.icons.date); + } + }, + showPicker: function showPicker() { + o.find(".timepicker > div:not(.timepicker-picker)").hide(), o.find(".timepicker .timepicker-picker").show(); + }, + showHours: function showHours() { + o.find(".timepicker .timepicker-picker").hide(), o.find(".timepicker .timepicker-hours").show(); + }, + showMinutes: function showMinutes() { + o.find(".timepicker .timepicker-picker").hide(), o.find(".timepicker .timepicker-minutes").show(); + }, + showSeconds: function showSeconds() { + o.find(".timepicker .timepicker-picker").hide(), o.find(".timepicker .timepicker-seconds").show(); + }, + selectHour: function selectHour(b) { + var c = parseInt(a(b.target).text(), 10); + f || (k.hours() >= 12 ? 12 !== c && (c += 12) : 12 === c && (c = 0)), $(k.clone().hours(c)), ba.showPicker.call(j); + }, + selectMinute: function selectMinute(b) { + $(k.clone().minutes(parseInt(a(b.target).text(), 10))), ba.showPicker.call(j); + }, + selectSecond: function selectSecond(b) { + $(k.clone().seconds(parseInt(a(b.target).text(), 10))), ba.showPicker.call(j); + }, + clear: aa, + today: function today() { + P(b(), "d") && $(b()); + }, + close: _ + }, + ca = function ca(b) { + return a(b.currentTarget).is(".disabled") ? !1 : (ba[a(b.currentTarget).data("action")].apply(j, arguments), !1); + }, + da = function da() { + var c, + f = { + year: function year(a) { + return a.month(0).date(1).hours(0).seconds(0).minutes(0); + }, + month: function month(a) { + return a.date(1).hours(0).seconds(0).minutes(0); + }, + day: function day(a) { + return a.hours(0).seconds(0).minutes(0); + }, + hour: function hour(a) { + return a.seconds(0).minutes(0); + }, + minute: function minute(a) { + return a.seconds(0); + } + }; + return e.prop("disabled") || !d.ignoreReadonly && e.prop("readonly") || o ? j : (void 0 !== e.val() && 0 !== e.val().trim().length ? $(fa(e.val().trim())) : d.useCurrent && m && (e.is("input") && 0 === e.val().trim().length || d.inline) && (c = b(), "string" == typeof d.useCurrent && (c = f[d.useCurrent](c)), $(c)), o = E(), K(), Q(), o.find(".timepicker-hours").hide(), o.find(".timepicker-minutes").hide(), o.find(".timepicker-seconds").hide(), Z(), J(), a(window).on("resize", G), o.on("click", "[data-action]", ca), o.on("mousedown", !1), n && n.hasClass("btn") && n.toggleClass("active"), o.show(), G(), d.focusOnShow && !e.is(":focus") && e.focus(), H({ + type: "dp.show" + }), j); + }, + ea = function ea() { + return o ? _() : da(); + }, + fa = function fa(a) { + return a = void 0 === d.parseInputDate ? b.isMoment(a) || a instanceof Date ? b(a) : b(a, h, d.useStrict) : d.parseInputDate(a), a.locale(d.locale), a; + }, + ga = function ga(a) { + var b, + c, + e, + f, + g = null, + h = [], + i = {}, + k = a.which, + l = "p"; + w[k] = l; + + for (b in w) { + w.hasOwnProperty(b) && w[b] === l && (h.push(b), parseInt(b, 10) !== k && (i[b] = !0)); + } + + for (b in d.keyBinds) { + if (d.keyBinds.hasOwnProperty(b) && "function" == typeof d.keyBinds[b] && (e = b.split(" "), e.length === h.length && v[k] === e[e.length - 1])) { + for (f = !0, c = e.length - 2; c >= 0; c--) { + if (!(v[e[c]] in i)) { + f = !1; + break; + } + } + + if (f) { + g = d.keyBinds[b]; + break; + } + } + } + + g && (g.call(j, o), a.stopPropagation(), a.preventDefault()); + }, + ha = function ha(a) { + w[a.which] = "r", a.stopPropagation(), a.preventDefault(); + }, + ia = function ia(b) { + var c = a(b.target).val().trim(), + d = c ? fa(c) : null; + return $(d), b.stopImmediatePropagation(), !1; + }, + ja = function ja() { + e.on({ + change: ia, + blur: d.debug ? "" : _, + keydown: ga, + keyup: ha, + focus: d.allowInputToggle ? da : "" + }), _c2.is("input") ? e.on({ + focus: da + }) : n && (n.on("click", ea), n.on("mousedown", !1)); + }, + ka = function ka() { + e.off({ + change: ia, + blur: blur, + keydown: ga, + keyup: ha, + focus: d.allowInputToggle ? _ : "" + }), _c2.is("input") ? e.off({ + focus: da + }) : n && (n.off("click", ea), n.off("mousedown", !1)); + }, + la = function la(b) { + var c = {}; + return a.each(b, function () { + var a = fa(this); + a.isValid() && (c[a.format("YYYY-MM-DD")] = !0); + }), Object.keys(c).length ? c : !1; + }, + ma = function ma(b) { + var c = {}; + return a.each(b, function () { + c[this] = !0; + }), Object.keys(c).length ? c : !1; + }, + na = function na() { + var a = d.format || "L LT"; + g = a.replace(/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g, function (a) { + var b = k.localeData().longDateFormat(a) || a; + return b.replace(/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g, function (a) { + return k.localeData().longDateFormat(a) || a; + }); + }), h = d.extraFormats ? d.extraFormats.slice() : [], h.indexOf(a) < 0 && h.indexOf(g) < 0 && h.push(g), f = g.toLowerCase().indexOf("a") < 1 && g.replace(/\[.*?\]/g, "").indexOf("h") < 1, x("y") && (p = 2), x("M") && (p = 1), x("d") && (p = 0), i = Math.max(p, i), m || $(k); + }; + + if (j.destroy = function () { + _(), ka(), _c2.removeData("DateTimePicker"), _c2.removeData("date"); + }, j.toggle = ea, j.show = da, j.hide = _, j.disable = function () { + return _(), n && n.hasClass("btn") && n.addClass("disabled"), e.prop("disabled", !0), j; + }, j.enable = function () { + return n && n.hasClass("btn") && n.removeClass("disabled"), e.prop("disabled", !1), j; + }, j.ignoreReadonly = function (a) { + if (0 === arguments.length) return d.ignoreReadonly; + if ("boolean" != typeof a) throw new TypeError("ignoreReadonly () expects a boolean parameter"); + return d.ignoreReadonly = a, j; + }, j.options = function (b) { + if (0 === arguments.length) return a.extend(!0, {}, d); + if (!(b instanceof Object)) throw new TypeError("options() options parameter should be an object"); + return a.extend(!0, d, b), a.each(d, function (a, b) { + if (void 0 === j[a]) throw new TypeError("option " + a + " is not recognized!"); + j[a](b); + }), j; + }, j.date = function (a) { + if (0 === arguments.length) return m ? null : k.clone(); + if (!(null === a || "string" == typeof a || b.isMoment(a) || a instanceof Date)) throw new TypeError("date() parameter must be one of [null, string, moment or Date]"); + return $(null === a ? null : fa(a)), j; + }, j.format = function (a) { + if (0 === arguments.length) return d.format; + if ("string" != typeof a && ("boolean" != typeof a || a !== !1)) throw new TypeError("format() expects a sting or boolean:false parameter " + a); + return d.format = a, g && na(), j; + }, j.dayViewHeaderFormat = function (a) { + if (0 === arguments.length) return d.dayViewHeaderFormat; + if ("string" != typeof a) throw new TypeError("dayViewHeaderFormat() expects a string parameter"); + return d.dayViewHeaderFormat = a, j; + }, j.extraFormats = function (a) { + if (0 === arguments.length) return d.extraFormats; + if (a !== !1 && !(a instanceof Array)) throw new TypeError("extraFormats() expects an array or false parameter"); + return d.extraFormats = a, h && na(), j; + }, j.disabledDates = function (b) { + if (0 === arguments.length) return d.disabledDates ? a.extend({}, d.disabledDates) : d.disabledDates; + if (!b) return d.disabledDates = !1, Z(), j; + if (!(b instanceof Array)) throw new TypeError("disabledDates() expects an array parameter"); + return d.disabledDates = la(b), d.enabledDates = !1, Z(), j; + }, j.enabledDates = function (b) { + if (0 === arguments.length) return d.enabledDates ? a.extend({}, d.enabledDates) : d.enabledDates; + if (!b) return d.enabledDates = !1, Z(), j; + if (!(b instanceof Array)) throw new TypeError("enabledDates() expects an array parameter"); + return d.enabledDates = la(b), d.disabledDates = !1, Z(), j; + }, j.daysOfWeekDisabled = function (a) { + if (0 === arguments.length) return d.daysOfWeekDisabled.splice(0); + if ("boolean" == typeof a && !a) return d.daysOfWeekDisabled = !1, Z(), j; + if (!(a instanceof Array)) throw new TypeError("daysOfWeekDisabled() expects an array parameter"); + + if (d.daysOfWeekDisabled = a.reduce(function (a, b) { + return b = parseInt(b, 10), b > 6 || 0 > b || isNaN(b) ? a : (-1 === a.indexOf(b) && a.push(b), a); + }, []).sort(), d.useCurrent && !d.keepInvalid) { + for (var b = 0; !P(k, "d");) { + if (k.add(1, "d"), 7 === b) throw "Tried 7 times to find a valid date"; + b++; + } + + $(k); + } + + return Z(), j; + }, j.maxDate = function (a) { + if (0 === arguments.length) return d.maxDate ? d.maxDate.clone() : d.maxDate; + if ("boolean" == typeof a && a === !1) return d.maxDate = !1, Z(), j; + "string" == typeof a && ("now" === a || "moment" === a) && (a = b()); + var c = fa(a); + if (!c.isValid()) throw new TypeError("maxDate() Could not parse date parameter: " + a); + if (d.minDate && c.isBefore(d.minDate)) throw new TypeError("maxDate() date parameter is before options.minDate: " + c.format(g)); + return d.maxDate = c, d.useCurrent && !d.keepInvalid && k.isAfter(a) && $(d.maxDate), l.isAfter(c) && (l = c.clone().subtract(d.stepping, "m")), Z(), j; + }, j.minDate = function (a) { + if (0 === arguments.length) return d.minDate ? d.minDate.clone() : d.minDate; + if ("boolean" == typeof a && a === !1) return d.minDate = !1, Z(), j; + "string" == typeof a && ("now" === a || "moment" === a) && (a = b()); + var c = fa(a); + if (!c.isValid()) throw new TypeError("minDate() Could not parse date parameter: " + a); + if (d.maxDate && c.isAfter(d.maxDate)) throw new TypeError("minDate() date parameter is after options.maxDate: " + c.format(g)); + return d.minDate = c, d.useCurrent && !d.keepInvalid && k.isBefore(a) && $(d.minDate), l.isBefore(c) && (l = c.clone().add(d.stepping, "m")), Z(), j; + }, j.defaultDate = function (a) { + if (0 === arguments.length) return d.defaultDate ? d.defaultDate.clone() : d.defaultDate; + if (!a) return d.defaultDate = !1, j; + "string" == typeof a && ("now" === a || "moment" === a) && (a = b()); + var c = fa(a); + if (!c.isValid()) throw new TypeError("defaultDate() Could not parse date parameter: " + a); + if (!P(c)) throw new TypeError("defaultDate() date passed is invalid according to component setup validations"); + return d.defaultDate = c, (d.defaultDate && d.inline || "" === e.val().trim() && void 0 === e.attr("placeholder")) && $(d.defaultDate), j; + }, j.locale = function (a) { + if (0 === arguments.length) return d.locale; + if (!b.localeData(a)) throw new TypeError("locale() locale " + a + " is not loaded from moment locales!"); + return d.locale = a, k.locale(d.locale), l.locale(d.locale), g && na(), o && (_(), da()), j; + }, j.stepping = function (a) { + return 0 === arguments.length ? d.stepping : (a = parseInt(a, 10), (isNaN(a) || 1 > a) && (a = 1), d.stepping = a, j); + }, j.useCurrent = function (a) { + var b = ["year", "month", "day", "hour", "minute"]; + if (0 === arguments.length) return d.useCurrent; + if ("boolean" != typeof a && "string" != typeof a) throw new TypeError("useCurrent() expects a boolean or string parameter"); + if ("string" == typeof a && -1 === b.indexOf(a.toLowerCase())) throw new TypeError("useCurrent() expects a string parameter of " + b.join(", ")); + return d.useCurrent = a, j; + }, j.collapse = function (a) { + if (0 === arguments.length) return d.collapse; + if ("boolean" != typeof a) throw new TypeError("collapse() expects a boolean parameter"); + return d.collapse === a ? j : (d.collapse = a, o && (_(), da()), j); + }, j.icons = function (b) { + if (0 === arguments.length) return a.extend({}, d.icons); + if (!(b instanceof Object)) throw new TypeError("icons() expects parameter to be an Object"); + return a.extend(d.icons, b), o && (_(), da()), j; + }, j.tooltips = function (b) { + if (0 === arguments.length) return a.extend({}, d.tooltips); + if (!(b instanceof Object)) throw new TypeError("tooltips() expects parameter to be an Object"); + return a.extend(d.tooltips, b), o && (_(), da()), j; + }, j.useStrict = function (a) { + if (0 === arguments.length) return d.useStrict; + if ("boolean" != typeof a) throw new TypeError("useStrict() expects a boolean parameter"); + return d.useStrict = a, j; + }, j.sideBySide = function (a) { + if (0 === arguments.length) return d.sideBySide; + if ("boolean" != typeof a) throw new TypeError("sideBySide() expects a boolean parameter"); + return d.sideBySide = a, o && (_(), da()), j; + }, j.viewMode = function (a) { + if (0 === arguments.length) return d.viewMode; + if ("string" != typeof a) throw new TypeError("viewMode() expects a string parameter"); + if (-1 === r.indexOf(a)) throw new TypeError("viewMode() parameter must be one of (" + r.join(", ") + ") value"); + return d.viewMode = a, i = Math.max(r.indexOf(a), p), J(), j; + }, j.toolbarPlacement = function (a) { + if (0 === arguments.length) return d.toolbarPlacement; + if ("string" != typeof a) throw new TypeError("toolbarPlacement() expects a string parameter"); + if (-1 === u.indexOf(a)) throw new TypeError("toolbarPlacement() parameter must be one of (" + u.join(", ") + ") value"); + return d.toolbarPlacement = a, o && (_(), da()), j; + }, j.widgetPositioning = function (b) { + if (0 === arguments.length) return a.extend({}, d.widgetPositioning); + if ("[object Object]" !== {}.toString.call(b)) throw new TypeError("widgetPositioning() expects an object variable"); + + if (b.horizontal) { + if ("string" != typeof b.horizontal) throw new TypeError("widgetPositioning() horizontal variable must be a string"); + if (b.horizontal = b.horizontal.toLowerCase(), -1 === t.indexOf(b.horizontal)) throw new TypeError("widgetPositioning() expects horizontal parameter to be one of (" + t.join(", ") + ")"); + d.widgetPositioning.horizontal = b.horizontal; + } + + if (b.vertical) { + if ("string" != typeof b.vertical) throw new TypeError("widgetPositioning() vertical variable must be a string"); + if (b.vertical = b.vertical.toLowerCase(), -1 === s.indexOf(b.vertical)) throw new TypeError("widgetPositioning() expects vertical parameter to be one of (" + s.join(", ") + ")"); + d.widgetPositioning.vertical = b.vertical; + } + + return Z(), j; + }, j.calendarWeeks = function (a) { + if (0 === arguments.length) return d.calendarWeeks; + if ("boolean" != typeof a) throw new TypeError("calendarWeeks() expects parameter to be a boolean value"); + return d.calendarWeeks = a, Z(), j; + }, j.showTodayButton = function (a) { + if (0 === arguments.length) return d.showTodayButton; + if ("boolean" != typeof a) throw new TypeError("showTodayButton() expects a boolean parameter"); + return d.showTodayButton = a, o && (_(), da()), j; + }, j.showClear = function (a) { + if (0 === arguments.length) return d.showClear; + if ("boolean" != typeof a) throw new TypeError("showClear() expects a boolean parameter"); + return d.showClear = a, o && (_(), da()), j; + }, j.widgetParent = function (b) { + if (0 === arguments.length) return d.widgetParent; + if ("string" == typeof b && (b = a(b)), null !== b && "string" != typeof b && !(b instanceof a)) throw new TypeError("widgetParent() expects a string or a jQuery object parameter"); + return d.widgetParent = b, o && (_(), da()), j; + }, j.keepOpen = function (a) { + if (0 === arguments.length) return d.keepOpen; + if ("boolean" != typeof a) throw new TypeError("keepOpen() expects a boolean parameter"); + return d.keepOpen = a, j; + }, j.focusOnShow = function (a) { + if (0 === arguments.length) return d.focusOnShow; + if ("boolean" != typeof a) throw new TypeError("focusOnShow() expects a boolean parameter"); + return d.focusOnShow = a, j; + }, j.inline = function (a) { + if (0 === arguments.length) return d.inline; + if ("boolean" != typeof a) throw new TypeError("inline() expects a boolean parameter"); + return d.inline = a, j; + }, j.clear = function () { + return aa(), j; + }, j.keyBinds = function (a) { + return d.keyBinds = a, j; + }, j.debug = function (a) { + if ("boolean" != typeof a) throw new TypeError("debug() expects a boolean parameter"); + return d.debug = a, j; + }, j.allowInputToggle = function (a) { + if (0 === arguments.length) return d.allowInputToggle; + if ("boolean" != typeof a) throw new TypeError("allowInputToggle() expects a boolean parameter"); + return d.allowInputToggle = a, j; + }, j.showClose = function (a) { + if (0 === arguments.length) return d.showClose; + if ("boolean" != typeof a) throw new TypeError("showClose() expects a boolean parameter"); + return d.showClose = a, j; + }, j.keepInvalid = function (a) { + if (0 === arguments.length) return d.keepInvalid; + if ("boolean" != typeof a) throw new TypeError("keepInvalid() expects a boolean parameter"); + return d.keepInvalid = a, j; + }, j.datepickerInput = function (a) { + if (0 === arguments.length) return d.datepickerInput; + if ("string" != typeof a) throw new TypeError("datepickerInput() expects a string parameter"); + return d.datepickerInput = a, j; + }, j.parseInputDate = function (a) { + if (0 === arguments.length) return d.parseInputDate; + if ("function" != typeof a) throw new TypeError("parseInputDate() sholud be as function"); + return d.parseInputDate = a, j; + }, j.disabledTimeIntervals = function (b) { + if (0 === arguments.length) return d.disabledTimeIntervals ? a.extend({}, d.disabledTimeIntervals) : d.disabledTimeIntervals; + if (!b) return d.disabledTimeIntervals = !1, Z(), j; + if (!(b instanceof Array)) throw new TypeError("disabledTimeIntervals() expects an array parameter"); + return d.disabledTimeIntervals = b, Z(), j; + }, j.disabledHours = function (b) { + if (0 === arguments.length) return d.disabledHours ? a.extend({}, d.disabledHours) : d.disabledHours; + if (!b) return d.disabledHours = !1, Z(), j; + if (!(b instanceof Array)) throw new TypeError("disabledHours() expects an array parameter"); + + if (d.disabledHours = ma(b), d.enabledHours = !1, d.useCurrent && !d.keepInvalid) { + for (var c = 0; !P(k, "h");) { + if (k.add(1, "h"), 24 === c) throw "Tried 24 times to find a valid date"; + c++; + } + + $(k); + } + + return Z(), j; + }, j.enabledHours = function (b) { + if (0 === arguments.length) return d.enabledHours ? a.extend({}, d.enabledHours) : d.enabledHours; + if (!b) return d.enabledHours = !1, Z(), j; + if (!(b instanceof Array)) throw new TypeError("enabledHours() expects an array parameter"); + + if (d.enabledHours = ma(b), d.disabledHours = !1, d.useCurrent && !d.keepInvalid) { + for (var c = 0; !P(k, "h");) { + if (k.add(1, "h"), 24 === c) throw "Tried 24 times to find a valid date"; + c++; + } + + $(k); + } + + return Z(), j; + }, j.viewDate = function (a) { + if (0 === arguments.length) return l.clone(); + if (!a) return l = k.clone(), j; + if (!("string" == typeof a || b.isMoment(a) || a instanceof Date)) throw new TypeError("viewDate() parameter must be one of [string, moment or Date]"); + return l = fa(a), I(), j; + }, _c2.is("input")) e = _c2;else if (e = _c2.find(d.datepickerInput), 0 === e.size()) e = _c2.find("input");else if (!e.is("input")) throw new Error('CSS class "' + d.datepickerInput + '" cannot be applied to non input element'); + if (_c2.hasClass("input-group") && (n = 0 === _c2.find(".datepickerbutton").size() ? _c2.find(".input-group-addon") : _c2.find(".datepickerbutton")), !d.inline && !e.is("input")) throw new Error("Could not initialize DateTimePicker without an input element"); + return a.extend(!0, d, F()), j.options(d), na(), ja(), e.prop("disabled") && j.disable(), e.is("input") && 0 !== e.val().trim().length ? $(fa(e.val().trim())) : d.defaultDate && void 0 === e.attr("placeholder") && $(d.defaultDate), d.inline && da(), j; + }; + + a.fn.datetimepicker = function (b) { + return this.each(function () { + var d = a(this); + d.data("DateTimePicker") || (b = a.extend(!0, {}, a.fn.datetimepicker.defaults, b), d.data("DateTimePicker", c(d, b))); + }); + }, a.fn.datetimepicker.defaults = { + format: !1, + dayViewHeaderFormat: "MMMM YYYY", + extraFormats: !1, + stepping: 1, + minDate: !1, + maxDate: !1, + useCurrent: !0, + collapse: !0, + locale: b.locale(), + defaultDate: !1, + disabledDates: !1, + enabledDates: !1, + icons: { + time: "glyphicon glyphicon-time", + date: "glyphicon glyphicon-calendar", + up: "glyphicon glyphicon-chevron-up", + down: "glyphicon glyphicon-chevron-down", + previous: "glyphicon glyphicon-chevron-left", + next: "glyphicon glyphicon-chevron-right", + today: "glyphicon glyphicon-screenshot", + clear: "glyphicon glyphicon-trash", + close: "glyphicon glyphicon-remove" + }, + tooltips: { + today: "Go to today", + clear: "Clear selection", + close: "Close the picker", + selectMonth: "Select Month", + prevMonth: "Previous Month", + nextMonth: "Next Month", + selectYear: "Select Year", + prevYear: "Previous Year", + nextYear: "Next Year", + selectDecade: "Select Decade", + prevDecade: "Previous Decade", + nextDecade: "Next Decade", + prevCentury: "Previous Century", + nextCentury: "Next Century" + }, + useStrict: !1, + sideBySide: !1, + daysOfWeekDisabled: !1, + calendarWeeks: !1, + viewMode: "days", + toolbarPlacement: "default", + showTodayButton: !1, + showClear: !1, + showClose: !1, + widgetPositioning: { + horizontal: "auto", + vertical: "auto" + }, + widgetParent: null, + ignoreReadonly: !1, + keepOpen: !1, + focusOnShow: !0, + inline: !1, + keepInvalid: !1, + datepickerInput: ".datepickerinput", + keyBinds: { + up: function up(a) { + if (a) { + var c = this.date() || b(); + a.find(".datepicker").is(":visible") ? this.date(c.clone().subtract(7, "d")) : this.date(c.clone().add(this.stepping(), "m")); + } + }, + down: function down(a) { + if (!a) return void this.show(); + var c = this.date() || b(); + a.find(".datepicker").is(":visible") ? this.date(c.clone().add(7, "d")) : this.date(c.clone().subtract(this.stepping(), "m")); + }, + "control up": function controlUp(a) { + if (a) { + var c = this.date() || b(); + a.find(".datepicker").is(":visible") ? this.date(c.clone().subtract(1, "y")) : this.date(c.clone().add(1, "h")); + } + }, + "control down": function controlDown(a) { + if (a) { + var c = this.date() || b(); + a.find(".datepicker").is(":visible") ? this.date(c.clone().add(1, "y")) : this.date(c.clone().subtract(1, "h")); + } + }, + left: function left(a) { + if (a) { + var c = this.date() || b(); + a.find(".datepicker").is(":visible") && this.date(c.clone().subtract(1, "d")); + } + }, + right: function right(a) { + if (a) { + var c = this.date() || b(); + a.find(".datepicker").is(":visible") && this.date(c.clone().add(1, "d")); + } + }, + pageUp: function pageUp(a) { + if (a) { + var c = this.date() || b(); + a.find(".datepicker").is(":visible") && this.date(c.clone().subtract(1, "M")); + } + }, + pageDown: function pageDown(a) { + if (a) { + var c = this.date() || b(); + a.find(".datepicker").is(":visible") && this.date(c.clone().add(1, "M")); + } + }, + enter: function enter() { + this.hide(); + }, + escape: function escape() { + this.hide(); + }, + "control space": function controlSpace(a) { + a.find(".timepicker").is(":visible") && a.find('.btn[data-action="togglePeriod"]').click(); + }, + t: function t() { + this.date(b()); + }, + "delete": function _delete() { + this.clear(); + } + }, + debug: !1, + allowInputToggle: !1, + disabledTimeIntervals: !1, + disabledHours: !1, + enabledHours: !1, + viewDate: !1 + }; +}); \ No newline at end of file diff --git a/src/iris/ui/static/js/dist/bootstrap.dev.js b/src/iris/ui/static/js/dist/bootstrap.dev.js new file mode 100644 index 00000000..5b003652 --- /dev/null +++ b/src/iris/ui/static/js/dist/bootstrap.dev.js @@ -0,0 +1,1957 @@ +"use strict"; + +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +/*! + * Bootstrap v3.3.5 (http://getbootstrap.com) + * Copyright 2011-2015 Twitter, Inc. + * Licensed under the MIT license + */ +if (typeof jQuery === 'undefined') { + throw new Error('Bootstrap\'s JavaScript requires jQuery'); +} + ++function ($) { + 'use strict'; + + var version = $.fn.jquery.split(' ')[0].split('.'); + + if (version[0] < 2 && version[1] < 9 || version[0] == 1 && version[1] == 9 && version[2] < 1) { + throw new Error('Bootstrap\'s JavaScript requires jQuery version 1.9.1 or higher'); + } +}(jQuery); +/* ======================================================================== + * Bootstrap: transition.js v3.3.5 + * http://getbootstrap.com/javascript/#transitions + * ======================================================================== + * Copyright 2011-2015 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * ======================================================================== */ + ++function ($) { + 'use strict'; // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/) + // ============================================================ + + function transitionEnd() { + var el = document.createElement('bootstrap'); + var transEndEventNames = { + WebkitTransition: 'webkitTransitionEnd', + MozTransition: 'transitionend', + OTransition: 'oTransitionEnd otransitionend', + transition: 'transitionend' + }; + + for (var name in transEndEventNames) { + if (el.style[name] !== undefined) { + return { + end: transEndEventNames[name] + }; + } + } + + return false; // explicit for ie8 ( ._.) + } // http://blog.alexmaccaw.com/css-transitions + + + $.fn.emulateTransitionEnd = function (duration) { + var called = false; + var $el = this; + $(this).one('bsTransitionEnd', function () { + called = true; + }); + + var callback = function callback() { + if (!called) $($el).trigger($.support.transition.end); + }; + + setTimeout(callback, duration); + return this; + }; + + $(function () { + $.support.transition = transitionEnd(); + if (!$.support.transition) return; + $.event.special.bsTransitionEnd = { + bindType: $.support.transition.end, + delegateType: $.support.transition.end, + handle: function handle(e) { + if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments); + } + }; + }); +}(jQuery); +/* ======================================================================== + * Bootstrap: alert.js v3.3.5 + * http://getbootstrap.com/javascript/#alerts + * ======================================================================== + * Copyright 2011-2015 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * ======================================================================== */ + ++function ($) { + 'use strict'; // ALERT CLASS DEFINITION + // ====================== + + var dismiss = '[data-dismiss="alert"]'; + + var Alert = function Alert(el) { + $(el).on('click', dismiss, this.close); + }; + + Alert.VERSION = '3.3.5'; + Alert.TRANSITION_DURATION = 150; + + Alert.prototype.close = function (e) { + var $this = $(this); + var selector = $this.attr('data-target'); + + if (!selector) { + selector = $this.attr('href'); + selector = selector && selector.replace(/.*(?=#[^\s]*$)/, ''); // strip for ie7 + } + + var $parent = $(selector); + if (e) e.preventDefault(); + + if (!$parent.length) { + $parent = $this.closest('.alert'); + } + + $parent.trigger(e = $.Event('close.bs.alert')); + if (e.isDefaultPrevented()) return; + $parent.removeClass('in'); + + function removeElement() { + // detach from parent, fire event then clean up data + $parent.detach().trigger('closed.bs.alert').remove(); + } + + $.support.transition && $parent.hasClass('fade') ? $parent.one('bsTransitionEnd', removeElement).emulateTransitionEnd(Alert.TRANSITION_DURATION) : removeElement(); + }; // ALERT PLUGIN DEFINITION + // ======================= + + + function Plugin(option) { + return this.each(function () { + var $this = $(this); + var data = $this.data('bs.alert'); + if (!data) $this.data('bs.alert', data = new Alert(this)); + if (typeof option == 'string') data[option].call($this); + }); + } + + var old = $.fn.alert; + $.fn.alert = Plugin; + $.fn.alert.Constructor = Alert; // ALERT NO CONFLICT + // ================= + + $.fn.alert.noConflict = function () { + $.fn.alert = old; + return this; + }; // ALERT DATA-API + // ============== + + + $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close); +}(jQuery); +/* ======================================================================== + * Bootstrap: button.js v3.3.5 + * http://getbootstrap.com/javascript/#buttons + * ======================================================================== + * Copyright 2011-2015 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * ======================================================================== */ + ++function ($) { + 'use strict'; // BUTTON PUBLIC CLASS DEFINITION + // ============================== + + var Button = function Button(element, options) { + this.$element = $(element); + this.options = $.extend({}, Button.DEFAULTS, options); + this.isLoading = false; + }; + + Button.VERSION = '3.3.5'; + Button.DEFAULTS = { + loadingText: 'loading...' + }; + + Button.prototype.setState = function (state) { + var d = 'disabled'; + var $el = this.$element; + var val = $el.is('input') ? 'val' : 'html'; + var data = $el.data(); + state += 'Text'; + if (data.resetText == null) $el.data('resetText', $el[val]()); // push to event loop to allow forms to submit + + setTimeout($.proxy(function () { + $el[val](data[state] == null ? this.options[state] : data[state]); + + if (state == 'loadingText') { + this.isLoading = true; + $el.addClass(d).attr(d, d); + } else if (this.isLoading) { + this.isLoading = false; + $el.removeClass(d).removeAttr(d); + } + }, this), 0); + }; + + Button.prototype.toggle = function () { + var changed = true; + var $parent = this.$element.closest('[data-toggle="buttons"]'); + + if ($parent.length) { + var $input = this.$element.find('input'); + + if ($input.prop('type') == 'radio') { + if ($input.prop('checked')) changed = false; + $parent.find('.active').removeClass('active'); + this.$element.addClass('active'); + } else if ($input.prop('type') == 'checkbox') { + if ($input.prop('checked') !== this.$element.hasClass('active')) changed = false; + this.$element.toggleClass('active'); + } + + $input.prop('checked', this.$element.hasClass('active')); + if (changed) $input.trigger('change'); + } else { + this.$element.attr('aria-pressed', !this.$element.hasClass('active')); + this.$element.toggleClass('active'); + } + }; // BUTTON PLUGIN DEFINITION + // ======================== + + + function Plugin(option) { + return this.each(function () { + var $this = $(this); + var data = $this.data('bs.button'); + var options = _typeof(option) == 'object' && option; + if (!data) $this.data('bs.button', data = new Button(this, options)); + if (option == 'toggle') data.toggle();else if (option) data.setState(option); + }); + } + + var old = $.fn.button; + $.fn.button = Plugin; + $.fn.button.Constructor = Button; // BUTTON NO CONFLICT + // ================== + + $.fn.button.noConflict = function () { + $.fn.button = old; + return this; + }; // BUTTON DATA-API + // =============== + + + $(document).on('click.bs.button.data-api', '[data-toggle^="button"]', function (e) { + var $btn = $(e.target); + if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn'); + Plugin.call($btn, 'toggle'); + if (!($(e.target).is('input[type="radio"]') || $(e.target).is('input[type="checkbox"]'))) e.preventDefault(); + }).on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^="button"]', function (e) { + $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type)); + }); +}(jQuery); +/* ======================================================================== + * Bootstrap: carousel.js v3.3.5 + * http://getbootstrap.com/javascript/#carousel + * ======================================================================== + * Copyright 2011-2015 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * ======================================================================== */ + ++function ($) { + 'use strict'; // CAROUSEL CLASS DEFINITION + // ========================= + + var Carousel = function Carousel(element, options) { + this.$element = $(element); + this.$indicators = this.$element.find('.carousel-indicators'); + this.options = options; + this.paused = null; + this.sliding = null; + this.interval = null; + this.$active = null; + this.$items = null; + this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this)); + this.options.pause == 'hover' && !('ontouchstart' in document.documentElement) && this.$element.on('mouseenter.bs.carousel', $.proxy(this.pause, this)).on('mouseleave.bs.carousel', $.proxy(this.cycle, this)); + }; + + Carousel.VERSION = '3.3.5'; + Carousel.TRANSITION_DURATION = 600; + Carousel.DEFAULTS = { + interval: 5000, + pause: 'hover', + wrap: true, + keyboard: true + }; + + Carousel.prototype.keydown = function (e) { + if (/input|textarea/i.test(e.target.tagName)) return; + + switch (e.which) { + case 37: + this.prev(); + break; + + case 39: + this.next(); + break; + + default: + return; + } + + e.preventDefault(); + }; + + Carousel.prototype.cycle = function (e) { + e || (this.paused = false); + this.interval && clearInterval(this.interval); + this.options.interval && !this.paused && (this.interval = setInterval($.proxy(this.next, this), this.options.interval)); + return this; + }; + + Carousel.prototype.getItemIndex = function (item) { + this.$items = item.parent().children('.item'); + return this.$items.index(item || this.$active); + }; + + Carousel.prototype.getItemForDirection = function (direction, active) { + var activeIndex = this.getItemIndex(active); + var willWrap = direction == 'prev' && activeIndex === 0 || direction == 'next' && activeIndex == this.$items.length - 1; + if (willWrap && !this.options.wrap) return active; + var delta = direction == 'prev' ? -1 : 1; + var itemIndex = (activeIndex + delta) % this.$items.length; + return this.$items.eq(itemIndex); + }; + + Carousel.prototype.to = function (pos) { + var that = this; + var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active')); + if (pos > this.$items.length - 1 || pos < 0) return; + if (this.sliding) return this.$element.one('slid.bs.carousel', function () { + that.to(pos); + }); // yes, "slid" + + if (activeIndex == pos) return this.pause().cycle(); + return this.slide(pos > activeIndex ? 'next' : 'prev', this.$items.eq(pos)); + }; + + Carousel.prototype.pause = function (e) { + e || (this.paused = true); + + if (this.$element.find('.next, .prev').length && $.support.transition) { + this.$element.trigger($.support.transition.end); + this.cycle(true); + } + + this.interval = clearInterval(this.interval); + return this; + }; + + Carousel.prototype.next = function () { + if (this.sliding) return; + return this.slide('next'); + }; + + Carousel.prototype.prev = function () { + if (this.sliding) return; + return this.slide('prev'); + }; + + Carousel.prototype.slide = function (type, next) { + var $active = this.$element.find('.item.active'); + var $next = next || this.getItemForDirection(type, $active); + var isCycling = this.interval; + var direction = type == 'next' ? 'left' : 'right'; + var that = this; + if ($next.hasClass('active')) return this.sliding = false; + var relatedTarget = $next[0]; + var slideEvent = $.Event('slide.bs.carousel', { + relatedTarget: relatedTarget, + direction: direction + }); + this.$element.trigger(slideEvent); + if (slideEvent.isDefaultPrevented()) return; + this.sliding = true; + isCycling && this.pause(); + + if (this.$indicators.length) { + this.$indicators.find('.active').removeClass('active'); + var $nextIndicator = $(this.$indicators.children()[this.getItemIndex($next)]); + $nextIndicator && $nextIndicator.addClass('active'); + } + + var slidEvent = $.Event('slid.bs.carousel', { + relatedTarget: relatedTarget, + direction: direction + }); // yes, "slid" + + if ($.support.transition && this.$element.hasClass('slide')) { + $next.addClass(type); + $next[0].offsetWidth; // force reflow + + $active.addClass(direction); + $next.addClass(direction); + $active.one('bsTransitionEnd', function () { + $next.removeClass([type, direction].join(' ')).addClass('active'); + $active.removeClass(['active', direction].join(' ')); + that.sliding = false; + setTimeout(function () { + that.$element.trigger(slidEvent); + }, 0); + }).emulateTransitionEnd(Carousel.TRANSITION_DURATION); + } else { + $active.removeClass('active'); + $next.addClass('active'); + this.sliding = false; + this.$element.trigger(slidEvent); + } + + isCycling && this.cycle(); + return this; + }; // CAROUSEL PLUGIN DEFINITION + // ========================== + + + function Plugin(option) { + return this.each(function () { + var $this = $(this); + var data = $this.data('bs.carousel'); + var options = $.extend({}, Carousel.DEFAULTS, $this.data(), _typeof(option) == 'object' && option); + var action = typeof option == 'string' ? option : options.slide; + if (!data) $this.data('bs.carousel', data = new Carousel(this, options)); + if (typeof option == 'number') data.to(option);else if (action) data[action]();else if (options.interval) data.pause().cycle(); + }); + } + + var old = $.fn.carousel; + $.fn.carousel = Plugin; + $.fn.carousel.Constructor = Carousel; // CAROUSEL NO CONFLICT + // ==================== + + $.fn.carousel.noConflict = function () { + $.fn.carousel = old; + return this; + }; // CAROUSEL DATA-API + // ================= + + + var clickHandler = function clickHandler(e) { + var href; + var $this = $(this); + var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')); // strip for ie7 + + if (!$target.hasClass('carousel')) return; + var options = $.extend({}, $target.data(), $this.data()); + var slideIndex = $this.attr('data-slide-to'); + if (slideIndex) options.interval = false; + Plugin.call($target, options); + + if (slideIndex) { + $target.data('bs.carousel').to(slideIndex); + } + + e.preventDefault(); + }; + + $(document).on('click.bs.carousel.data-api', '[data-slide]', clickHandler).on('click.bs.carousel.data-api', '[data-slide-to]', clickHandler); + $(window).on('load', function () { + $('[data-ride="carousel"]').each(function () { + var $carousel = $(this); + Plugin.call($carousel, $carousel.data()); + }); + }); +}(jQuery); +/* ======================================================================== + * Bootstrap: collapse.js v3.3.5 + * http://getbootstrap.com/javascript/#collapse + * ======================================================================== + * Copyright 2011-2015 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * ======================================================================== */ + ++function ($) { + 'use strict'; // COLLAPSE PUBLIC CLASS DEFINITION + // ================================ + + var Collapse = function Collapse(element, options) { + this.$element = $(element); + this.options = $.extend({}, Collapse.DEFAULTS, options); + this.$trigger = $('[data-toggle="collapse"][href="#' + element.id + '"],' + '[data-toggle="collapse"][data-target="#' + element.id + '"]'); + this.transitioning = null; + + if (this.options.parent) { + this.$parent = this.getParent(); + } else { + this.addAriaAndCollapsedClass(this.$element, this.$trigger); + } + + if (this.options.toggle) this.toggle(); + }; + + Collapse.VERSION = '3.3.5'; + Collapse.TRANSITION_DURATION = 350; + Collapse.DEFAULTS = { + toggle: true + }; + + Collapse.prototype.dimension = function () { + var hasWidth = this.$element.hasClass('width'); + return hasWidth ? 'width' : 'height'; + }; + + Collapse.prototype.show = function () { + if (this.transitioning || this.$element.hasClass('in')) return; + var activesData; + var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing'); + + if (actives && actives.length) { + activesData = actives.data('bs.collapse'); + if (activesData && activesData.transitioning) return; + } + + var startEvent = $.Event('show.bs.collapse'); + this.$element.trigger(startEvent); + if (startEvent.isDefaultPrevented()) return; + + if (actives && actives.length) { + Plugin.call(actives, 'hide'); + activesData || actives.data('bs.collapse', null); + } + + var dimension = this.dimension(); + this.$element.removeClass('collapse').addClass('collapsing')[dimension](0).attr('aria-expanded', true); + this.$trigger.removeClass('collapsed').attr('aria-expanded', true); + this.transitioning = 1; + + var complete = function complete() { + this.$element.removeClass('collapsing').addClass('collapse in')[dimension](''); + this.transitioning = 0; + this.$element.trigger('shown.bs.collapse'); + }; + + if (!$.support.transition) return complete.call(this); + var scrollSize = $.camelCase(['scroll', dimension].join('-')); + this.$element.one('bsTransitionEnd', $.proxy(complete, this)).emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize]); + }; + + Collapse.prototype.hide = function () { + if (this.transitioning || !this.$element.hasClass('in')) return; + var startEvent = $.Event('hide.bs.collapse'); + this.$element.trigger(startEvent); + if (startEvent.isDefaultPrevented()) return; + var dimension = this.dimension(); + this.$element[dimension](this.$element[dimension]())[0].offsetHeight; + this.$element.addClass('collapsing').removeClass('collapse in').attr('aria-expanded', false); + this.$trigger.addClass('collapsed').attr('aria-expanded', false); + this.transitioning = 1; + + var complete = function complete() { + this.transitioning = 0; + this.$element.removeClass('collapsing').addClass('collapse').trigger('hidden.bs.collapse'); + }; + + if (!$.support.transition) return complete.call(this); + this.$element[dimension](0).one('bsTransitionEnd', $.proxy(complete, this)).emulateTransitionEnd(Collapse.TRANSITION_DURATION); + }; + + Collapse.prototype.toggle = function () { + this[this.$element.hasClass('in') ? 'hide' : 'show'](); + }; + + Collapse.prototype.getParent = function () { + return $(this.options.parent).find('[data-toggle="collapse"][data-parent="' + this.options.parent + '"]').each($.proxy(function (i, element) { + var $element = $(element); + this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element); + }, this)).end(); + }; + + Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) { + var isOpen = $element.hasClass('in'); + $element.attr('aria-expanded', isOpen); + $trigger.toggleClass('collapsed', !isOpen).attr('aria-expanded', isOpen); + }; + + function getTargetFromTrigger($trigger) { + var href; + var target = $trigger.attr('data-target') || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, ''); // strip for ie7 + + return $(target); + } // COLLAPSE PLUGIN DEFINITION + // ========================== + + + function Plugin(option) { + return this.each(function () { + var $this = $(this); + var data = $this.data('bs.collapse'); + var options = $.extend({}, Collapse.DEFAULTS, $this.data(), _typeof(option) == 'object' && option); + if (!data && options.toggle && /show|hide/.test(option)) options.toggle = false; + if (!data) $this.data('bs.collapse', data = new Collapse(this, options)); + if (typeof option == 'string') data[option](); + }); + } + + var old = $.fn.collapse; + $.fn.collapse = Plugin; + $.fn.collapse.Constructor = Collapse; // COLLAPSE NO CONFLICT + // ==================== + + $.fn.collapse.noConflict = function () { + $.fn.collapse = old; + return this; + }; // COLLAPSE DATA-API + // ================= + + + $(document).on('click.bs.collapse.data-api', '[data-toggle="collapse"]', function (e) { + var $this = $(this); + if (!$this.attr('data-target')) e.preventDefault(); + var $target = getTargetFromTrigger($this); + var data = $target.data('bs.collapse'); + var option = data ? 'toggle' : $this.data(); + Plugin.call($target, option); + }); +}(jQuery); +/* ======================================================================== + * Bootstrap: dropdown.js v3.3.5 + * http://getbootstrap.com/javascript/#dropdowns + * ======================================================================== + * Copyright 2011-2015 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * ======================================================================== */ + ++function ($) { + 'use strict'; // DROPDOWN CLASS DEFINITION + // ========================= + + var backdrop = '.dropdown-backdrop'; + var toggle = '[data-toggle="dropdown"]'; + + var Dropdown = function Dropdown(element) { + $(element).on('click.bs.dropdown', this.toggle); + }; + + Dropdown.VERSION = '3.3.5'; + + function getParent($this) { + var selector = $this.attr('data-target'); + + if (!selector) { + selector = $this.attr('href'); + selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, ''); // strip for ie7 + } + + var $parent = selector && $(selector); + return $parent && $parent.length ? $parent : $this.parent(); + } + + function clearMenus(e) { + if (e && e.which === 3) return; + $(backdrop).remove(); + $(toggle).each(function () { + var $this = $(this); + var $parent = getParent($this); + var relatedTarget = { + relatedTarget: this + }; + if (!$parent.hasClass('open')) return; + if (e && e.type == 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) return; + $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget)); + if (e.isDefaultPrevented()) return; + $this.attr('aria-expanded', 'false'); + $parent.removeClass('open').trigger('hidden.bs.dropdown', relatedTarget); + }); + } + + Dropdown.prototype.toggle = function (e) { + var $this = $(this); + if ($this.is('.disabled, :disabled')) return; + var $parent = getParent($this); + var isActive = $parent.hasClass('open'); + clearMenus(); + + if (!isActive) { + if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) { + // if mobile we use a backdrop because click events don't delegate + $(document.createElement('div')).addClass('dropdown-backdrop').insertAfter($(this)).on('click', clearMenus); + } + + var relatedTarget = { + relatedTarget: this + }; + $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget)); + if (e.isDefaultPrevented()) return; + $this.trigger('focus').attr('aria-expanded', 'true'); + $parent.toggleClass('open').trigger('shown.bs.dropdown', relatedTarget); + } + + return false; + }; + + Dropdown.prototype.keydown = function (e) { + if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return; + var $this = $(this); + e.preventDefault(); + e.stopPropagation(); + if ($this.is('.disabled, :disabled')) return; + var $parent = getParent($this); + var isActive = $parent.hasClass('open'); + + if (!isActive && e.which != 27 || isActive && e.which == 27) { + if (e.which == 27) $parent.find(toggle).trigger('focus'); + return $this.trigger('click'); + } + + var desc = ' li:not(.disabled):visible a'; + var $items = $parent.find('.dropdown-menu' + desc); + if (!$items.length) return; + var index = $items.index(e.target); + if (e.which == 38 && index > 0) index--; // up + + if (e.which == 40 && index < $items.length - 1) index++; // down + + if (!~index) index = 0; + $items.eq(index).trigger('focus'); + }; // DROPDOWN PLUGIN DEFINITION + // ========================== + + + function Plugin(option) { + return this.each(function () { + var $this = $(this); + var data = $this.data('bs.dropdown'); + if (!data) $this.data('bs.dropdown', data = new Dropdown(this)); + if (typeof option == 'string') data[option].call($this); + }); + } + + var old = $.fn.dropdown; + $.fn.dropdown = Plugin; + $.fn.dropdown.Constructor = Dropdown; // DROPDOWN NO CONFLICT + // ==================== + + $.fn.dropdown.noConflict = function () { + $.fn.dropdown = old; + return this; + }; // APPLY TO STANDARD DROPDOWN ELEMENTS + // =================================== + + + $(document).on('click.bs.dropdown.data-api', clearMenus).on('click.bs.dropdown.data-api', '.dropdown form', function (e) { + e.stopPropagation(); + }).on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle).on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown).on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown); +}(jQuery); +/* ======================================================================== + * Bootstrap: modal.js v3.3.5 + * http://getbootstrap.com/javascript/#modals + * ======================================================================== + * Copyright 2011-2015 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * ======================================================================== */ + ++function ($) { + 'use strict'; // MODAL CLASS DEFINITION + // ====================== + + var Modal = function Modal(element, options) { + this.options = options; + this.$body = $(document.body); + this.$element = $(element); + this.$dialog = this.$element.find('.modal-dialog'); + this.$backdrop = null; + this.isShown = null; + this.originalBodyPad = null; + this.scrollbarWidth = 0; + this.ignoreBackdropClick = false; + + if (this.options.remote) { + this.$element.find('.modal-content').load(this.options.remote, $.proxy(function () { + this.$element.trigger('loaded.bs.modal'); + }, this)); + } + }; + + Modal.VERSION = '3.3.5'; + Modal.TRANSITION_DURATION = 300; + Modal.BACKDROP_TRANSITION_DURATION = 150; + Modal.DEFAULTS = { + backdrop: true, + keyboard: true, + show: true + }; + + Modal.prototype.toggle = function (_relatedTarget) { + return this.isShown ? this.hide() : this.show(_relatedTarget); + }; + + Modal.prototype.show = function (_relatedTarget) { + var that = this; + var e = $.Event('show.bs.modal', { + relatedTarget: _relatedTarget + }); + this.$element.trigger(e); + if (this.isShown || e.isDefaultPrevented()) return; + this.isShown = true; + this.checkScrollbar(); + this.setScrollbar(); + this.$body.addClass('modal-open'); + this.escape(); + this.resize(); + this.$element.on('click.dismiss.bs.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this)); + this.$dialog.on('mousedown.dismiss.bs.modal', function () { + that.$element.one('mouseup.dismiss.bs.modal', function (e) { + if ($(e.target).is(that.$element)) that.ignoreBackdropClick = true; + }); + }); + this.backdrop(function () { + var transition = $.support.transition && that.$element.hasClass('fade'); + + if (!that.$element.parent().length) { + that.$element.appendTo(that.$body); // don't move modals dom position + } + + that.$element.show().scrollTop(0); + that.adjustDialog(); + + if (transition) { + that.$element[0].offsetWidth; // force reflow + } + + that.$element.addClass('in'); + that.enforceFocus(); + var e = $.Event('shown.bs.modal', { + relatedTarget: _relatedTarget + }); + transition ? that.$dialog // wait for modal to slide in + .one('bsTransitionEnd', function () { + that.$element.trigger('focus').trigger(e); + }).emulateTransitionEnd(Modal.TRANSITION_DURATION) : that.$element.trigger('focus').trigger(e); + }); + }; + + Modal.prototype.hide = function (e) { + if (e) e.preventDefault(); + e = $.Event('hide.bs.modal'); + this.$element.trigger(e); + if (!this.isShown || e.isDefaultPrevented()) return; + this.isShown = false; + this.escape(); + this.resize(); + $(document).off('focusin.bs.modal'); + this.$element.removeClass('in').off('click.dismiss.bs.modal').off('mouseup.dismiss.bs.modal'); + this.$dialog.off('mousedown.dismiss.bs.modal'); + $.support.transition && this.$element.hasClass('fade') ? this.$element.one('bsTransitionEnd', $.proxy(this.hideModal, this)).emulateTransitionEnd(Modal.TRANSITION_DURATION) : this.hideModal(); + }; + + Modal.prototype.enforceFocus = function () { + $(document).off('focusin.bs.modal') // guard against infinite focus loop + .on('focusin.bs.modal', $.proxy(function (e) { + if (this.$element[0] !== e.target && !this.$element.has(e.target).length) { + this.$element.trigger('focus'); + } + }, this)); + }; + + Modal.prototype.escape = function () { + if (this.isShown && this.options.keyboard) { + this.$element.on('keydown.dismiss.bs.modal', $.proxy(function (e) { + e.which == 27 && this.hide(); + }, this)); + } else if (!this.isShown) { + this.$element.off('keydown.dismiss.bs.modal'); + } + }; + + Modal.prototype.resize = function () { + if (this.isShown) { + $(window).on('resize.bs.modal', $.proxy(this.handleUpdate, this)); + } else { + $(window).off('resize.bs.modal'); + } + }; + + Modal.prototype.hideModal = function () { + var that = this; + this.$element.hide(); + this.backdrop(function () { + that.$body.removeClass('modal-open'); + that.resetAdjustments(); + that.resetScrollbar(); + that.$element.trigger('hidden.bs.modal'); + }); + }; + + Modal.prototype.removeBackdrop = function () { + this.$backdrop && this.$backdrop.remove(); + this.$backdrop = null; + }; + + Modal.prototype.backdrop = function (callback) { + var that = this; + var animate = this.$element.hasClass('fade') ? 'fade' : ''; + + if (this.isShown && this.options.backdrop) { + var doAnimate = $.support.transition && animate; + this.$backdrop = $(document.createElement('div')).addClass('modal-backdrop ' + animate).appendTo(this.$body); + this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) { + if (this.ignoreBackdropClick) { + this.ignoreBackdropClick = false; + return; + } + + if (e.target !== e.currentTarget) return; + this.options.backdrop == 'static' ? this.$element[0].focus() : this.hide(); + }, this)); + if (doAnimate) this.$backdrop[0].offsetWidth; // force reflow + + this.$backdrop.addClass('in'); + if (!callback) return; + doAnimate ? this.$backdrop.one('bsTransitionEnd', callback).emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) : callback(); + } else if (!this.isShown && this.$backdrop) { + this.$backdrop.removeClass('in'); + + var callbackRemove = function callbackRemove() { + that.removeBackdrop(); + callback && callback(); + }; + + $.support.transition && this.$element.hasClass('fade') ? this.$backdrop.one('bsTransitionEnd', callbackRemove).emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) : callbackRemove(); + } else if (callback) { + callback(); + } + }; // these following methods are used to handle overflowing modals + + + Modal.prototype.handleUpdate = function () { + this.adjustDialog(); + }; + + Modal.prototype.adjustDialog = function () { + var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight; + this.$element.css({ + paddingLeft: !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '', + paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : '' + }); + }; + + Modal.prototype.resetAdjustments = function () { + this.$element.css({ + paddingLeft: '', + paddingRight: '' + }); + }; + + Modal.prototype.checkScrollbar = function () { + var fullWindowWidth = window.innerWidth; + + if (!fullWindowWidth) { + // workaround for missing window.innerWidth in IE8 + var documentElementRect = document.documentElement.getBoundingClientRect(); + fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left); + } + + this.bodyIsOverflowing = document.body.clientWidth < fullWindowWidth; + this.scrollbarWidth = this.measureScrollbar(); + }; + + Modal.prototype.setScrollbar = function () { + var bodyPad = parseInt(this.$body.css('padding-right') || 0, 10); + this.originalBodyPad = document.body.style.paddingRight || ''; + if (this.bodyIsOverflowing) this.$body.css('padding-right', bodyPad + this.scrollbarWidth); + }; + + Modal.prototype.resetScrollbar = function () { + this.$body.css('padding-right', this.originalBodyPad); + }; + + Modal.prototype.measureScrollbar = function () { + // thx walsh + var scrollDiv = document.createElement('div'); + scrollDiv.className = 'modal-scrollbar-measure'; + this.$body.append(scrollDiv); + var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth; + this.$body[0].removeChild(scrollDiv); + return scrollbarWidth; + }; // MODAL PLUGIN DEFINITION + // ======================= + + + function Plugin(option, _relatedTarget) { + return this.each(function () { + var $this = $(this); + var data = $this.data('bs.modal'); + var options = $.extend({}, Modal.DEFAULTS, $this.data(), _typeof(option) == 'object' && option); + if (!data) $this.data('bs.modal', data = new Modal(this, options)); + if (typeof option == 'string') data[option](_relatedTarget);else if (options.show) data.show(_relatedTarget); + }); + } + + var old = $.fn.modal; + $.fn.modal = Plugin; + $.fn.modal.Constructor = Modal; // MODAL NO CONFLICT + // ================= + + $.fn.modal.noConflict = function () { + $.fn.modal = old; + return this; + }; // MODAL DATA-API + // ============== + + + $(document).on('click.bs.modal.data-api', '[data-toggle="modal"]', function (e) { + var $this = $(this); + var href = $this.attr('href'); + var $target = $($this.attr('data-target') || href && href.replace(/.*(?=#[^\s]+$)/, '')); // strip for ie7 + + var option = $target.data('bs.modal') ? 'toggle' : $.extend({ + remote: !/#/.test(href) && href + }, $target.data(), $this.data()); + if ($this.is('a')) e.preventDefault(); + $target.one('show.bs.modal', function (showEvent) { + if (showEvent.isDefaultPrevented()) return; // only register focus restorer if modal will actually get shown + + $target.one('hidden.bs.modal', function () { + $this.is(':visible') && $this.trigger('focus'); + }); + }); + Plugin.call($target, option, this); + }); +}(jQuery); +/* ======================================================================== + * Bootstrap: tooltip.js v3.3.5 + * http://getbootstrap.com/javascript/#tooltip + * Inspired by the original jQuery.tipsy by Jason Frame + * ======================================================================== + * Copyright 2011-2015 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * ======================================================================== */ + ++function ($) { + 'use strict'; // TOOLTIP PUBLIC CLASS DEFINITION + // =============================== + + var Tooltip = function Tooltip(element, options) { + this.type = null; + this.options = null; + this.enabled = null; + this.timeout = null; + this.hoverState = null; + this.$element = null; + this.inState = null; + this.init('tooltip', element, options); + }; + + Tooltip.VERSION = '3.3.5'; + Tooltip.TRANSITION_DURATION = 150; + Tooltip.DEFAULTS = { + animation: true, + placement: 'top', + selector: false, + template: '', + trigger: 'hover focus', + title: '', + delay: 0, + html: false, + container: false, + viewport: { + selector: 'body', + padding: 0 + } + }; + + Tooltip.prototype.init = function (type, element, options) { + this.enabled = true; + this.type = type; + this.$element = $(element); + this.options = this.getOptions(options); + this.$viewport = this.options.viewport && $($.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : this.options.viewport.selector || this.options.viewport); + this.inState = { + click: false, + hover: false, + focus: false + }; + + if (this.$element[0] instanceof document.constructor && !this.options.selector) { + throw new Error('`selector` option must be specified when initializing ' + this.type + ' on the window.document object!'); + } + + var triggers = this.options.trigger.split(' '); + + for (var i = triggers.length; i--;) { + var trigger = triggers[i]; + + if (trigger == 'click') { + this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this)); + } else if (trigger != 'manual') { + var eventIn = trigger == 'hover' ? 'mouseenter' : 'focusin'; + var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout'; + this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this)); + this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this)); + } + } + + this.options.selector ? this._options = $.extend({}, this.options, { + trigger: 'manual', + selector: '' + }) : this.fixTitle(); + }; + + Tooltip.prototype.getDefaults = function () { + return Tooltip.DEFAULTS; + }; + + Tooltip.prototype.getOptions = function (options) { + options = $.extend({}, this.getDefaults(), this.$element.data(), options); + + if (options.delay && typeof options.delay == 'number') { + options.delay = { + show: options.delay, + hide: options.delay + }; + } + + return options; + }; + + Tooltip.prototype.getDelegateOptions = function () { + var options = {}; + var defaults = this.getDefaults(); + this._options && $.each(this._options, function (key, value) { + if (defaults[key] != value) options[key] = value; + }); + return options; + }; + + Tooltip.prototype.enter = function (obj) { + var self = obj instanceof this.constructor ? obj : $(obj.currentTarget).data('bs.' + this.type); + + if (!self) { + self = new this.constructor(obj.currentTarget, this.getDelegateOptions()); + $(obj.currentTarget).data('bs.' + this.type, self); + } + + if (obj instanceof $.Event) { + self.inState[obj.type == 'focusin' ? 'focus' : 'hover'] = true; + } + + if (self.tip().hasClass('in') || self.hoverState == 'in') { + self.hoverState = 'in'; + return; + } + + clearTimeout(self.timeout); + self.hoverState = 'in'; + if (!self.options.delay || !self.options.delay.show) return self.show(); + self.timeout = setTimeout(function () { + if (self.hoverState == 'in') self.show(); + }, self.options.delay.show); + }; + + Tooltip.prototype.isInStateTrue = function () { + for (var key in this.inState) { + if (this.inState[key]) return true; + } + + return false; + }; + + Tooltip.prototype.leave = function (obj) { + var self = obj instanceof this.constructor ? obj : $(obj.currentTarget).data('bs.' + this.type); + + if (!self) { + self = new this.constructor(obj.currentTarget, this.getDelegateOptions()); + $(obj.currentTarget).data('bs.' + this.type, self); + } + + if (obj instanceof $.Event) { + self.inState[obj.type == 'focusout' ? 'focus' : 'hover'] = false; + } + + if (self.isInStateTrue()) return; + clearTimeout(self.timeout); + self.hoverState = 'out'; + if (!self.options.delay || !self.options.delay.hide) return self.hide(); + self.timeout = setTimeout(function () { + if (self.hoverState == 'out') self.hide(); + }, self.options.delay.hide); + }; + + Tooltip.prototype.show = function () { + var e = $.Event('show.bs.' + this.type); + + if (this.hasContent() && this.enabled) { + this.$element.trigger(e); + var inDom = $.contains(this.$element[0].ownerDocument.documentElement, this.$element[0]); + if (e.isDefaultPrevented() || !inDom) return; + var that = this; + var $tip = this.tip(); + var tipId = this.getUID(this.type); + this.setContent(); + $tip.attr('id', tipId); + this.$element.attr('aria-describedby', tipId); + if (this.options.animation) $tip.addClass('fade'); + var placement = typeof this.options.placement == 'function' ? this.options.placement.call(this, $tip[0], this.$element[0]) : this.options.placement; + var autoToken = /\s?auto?\s?/i; + var autoPlace = autoToken.test(placement); + if (autoPlace) placement = placement.replace(autoToken, '') || 'top'; + $tip.detach().css({ + top: 0, + left: 0, + display: 'block' + }).addClass(placement).data('bs.' + this.type, this); + this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element); + this.$element.trigger('inserted.bs.' + this.type); + var pos = this.getPosition(); + var actualWidth = $tip[0].offsetWidth; + var actualHeight = $tip[0].offsetHeight; + + if (autoPlace) { + var orgPlacement = placement; + var viewportDim = this.getPosition(this.$viewport); + placement = placement == 'bottom' && pos.bottom + actualHeight > viewportDim.bottom ? 'top' : placement == 'top' && pos.top - actualHeight < viewportDim.top ? 'bottom' : placement == 'right' && pos.right + actualWidth > viewportDim.width ? 'left' : placement == 'left' && pos.left - actualWidth < viewportDim.left ? 'right' : placement; + $tip.removeClass(orgPlacement).addClass(placement); + } + + var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight); + this.applyPlacement(calculatedOffset, placement); + + var complete = function complete() { + var prevHoverState = that.hoverState; + that.$element.trigger('shown.bs.' + that.type); + that.hoverState = null; + if (prevHoverState == 'out') that.leave(that); + }; + + $.support.transition && this.$tip.hasClass('fade') ? $tip.one('bsTransitionEnd', complete).emulateTransitionEnd(Tooltip.TRANSITION_DURATION) : complete(); + } + }; + + Tooltip.prototype.applyPlacement = function (offset, placement) { + var $tip = this.tip(); + var width = $tip[0].offsetWidth; + var height = $tip[0].offsetHeight; // manually read margins because getBoundingClientRect includes difference + + var marginTop = parseInt($tip.css('margin-top'), 10); + var marginLeft = parseInt($tip.css('margin-left'), 10); // we must check for NaN for ie 8/9 + + if (isNaN(marginTop)) marginTop = 0; + if (isNaN(marginLeft)) marginLeft = 0; + offset.top += marginTop; + offset.left += marginLeft; // $.fn.offset doesn't round pixel values + // so we use setOffset directly with our own function B-0 + + $.offset.setOffset($tip[0], $.extend({ + using: function using(props) { + $tip.css({ + top: Math.round(props.top), + left: Math.round(props.left) + }); + } + }, offset), 0); + $tip.addClass('in'); // check to see if placing tip in new offset caused the tip to resize itself + + var actualWidth = $tip[0].offsetWidth; + var actualHeight = $tip[0].offsetHeight; + + if (placement == 'top' && actualHeight != height) { + offset.top = offset.top + height - actualHeight; + } + + var delta = this.getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight); + if (delta.left) offset.left += delta.left;else offset.top += delta.top; + var isVertical = /top|bottom/.test(placement); + var arrowDelta = isVertical ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight; + var arrowOffsetPosition = isVertical ? 'offsetWidth' : 'offsetHeight'; + $tip.offset(offset); + this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical); + }; + + Tooltip.prototype.replaceArrow = function (delta, dimension, isVertical) { + this.arrow().css(isVertical ? 'left' : 'top', 50 * (1 - delta / dimension) + '%').css(isVertical ? 'top' : 'left', ''); + }; + + Tooltip.prototype.setContent = function () { + var $tip = this.tip(); + var title = this.getTitle(); + $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title); + $tip.removeClass('fade in top bottom left right'); + }; + + Tooltip.prototype.hide = function (callback) { + var that = this; + var $tip = $(this.$tip); + var e = $.Event('hide.bs.' + this.type); + + function complete() { + if (that.hoverState != 'in') $tip.detach(); + that.$element.removeAttr('aria-describedby').trigger('hidden.bs.' + that.type); + callback && callback(); + } + + this.$element.trigger(e); + if (e.isDefaultPrevented()) return; + $tip.removeClass('in'); + $.support.transition && $tip.hasClass('fade') ? $tip.one('bsTransitionEnd', complete).emulateTransitionEnd(Tooltip.TRANSITION_DURATION) : complete(); + this.hoverState = null; + return this; + }; + + Tooltip.prototype.fixTitle = function () { + var $e = this.$element; + + if ($e.attr('title') || typeof $e.attr('data-original-title') != 'string') { + $e.attr('data-original-title', $e.attr('title') || '').attr('title', ''); + } + }; + + Tooltip.prototype.hasContent = function () { + return this.getTitle(); + }; + + Tooltip.prototype.getPosition = function ($element) { + $element = $element || this.$element; + var el = $element[0]; + var isBody = el.tagName == 'BODY'; + var elRect = el.getBoundingClientRect(); + + if (elRect.width == null) { + // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093 + elRect = $.extend({}, elRect, { + width: elRect.right - elRect.left, + height: elRect.bottom - elRect.top + }); + } + + var elOffset = isBody ? { + top: 0, + left: 0 + } : $element.offset(); + var scroll = { + scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() + }; + var outerDims = isBody ? { + width: $(window).width(), + height: $(window).height() + } : null; + return $.extend({}, elRect, scroll, outerDims, elOffset); + }; + + Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) { + return placement == 'bottom' ? { + top: pos.top + pos.height, + left: pos.left + pos.width / 2 - actualWidth / 2 + } : placement == 'top' ? { + top: pos.top - actualHeight, + left: pos.left + pos.width / 2 - actualWidth / 2 + } : placement == 'left' ? { + top: pos.top + pos.height / 2 - actualHeight / 2, + left: pos.left - actualWidth + } : + /* placement == 'right' */ + { + top: pos.top + pos.height / 2 - actualHeight / 2, + left: pos.left + pos.width + }; + }; + + Tooltip.prototype.getViewportAdjustedDelta = function (placement, pos, actualWidth, actualHeight) { + var delta = { + top: 0, + left: 0 + }; + if (!this.$viewport) return delta; + var viewportPadding = this.options.viewport && this.options.viewport.padding || 0; + var viewportDimensions = this.getPosition(this.$viewport); + + if (/right|left/.test(placement)) { + var topEdgeOffset = pos.top - viewportPadding - viewportDimensions.scroll; + var bottomEdgeOffset = pos.top + viewportPadding - viewportDimensions.scroll + actualHeight; + + if (topEdgeOffset < viewportDimensions.top) { + // top overflow + delta.top = viewportDimensions.top - topEdgeOffset; + } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { + // bottom overflow + delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset; + } + } else { + var leftEdgeOffset = pos.left - viewportPadding; + var rightEdgeOffset = pos.left + viewportPadding + actualWidth; + + if (leftEdgeOffset < viewportDimensions.left) { + // left overflow + delta.left = viewportDimensions.left - leftEdgeOffset; + } else if (rightEdgeOffset > viewportDimensions.right) { + // right overflow + delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset; + } + } + + return delta; + }; + + Tooltip.prototype.getTitle = function () { + var title; + var $e = this.$element; + var o = this.options; + title = $e.attr('data-original-title') || (typeof o.title == 'function' ? o.title.call($e[0]) : o.title); + return title; + }; + + Tooltip.prototype.getUID = function (prefix) { + do { + prefix += ~~(Math.random() * 1000000); + } while (document.getElementById(prefix)); + + return prefix; + }; + + Tooltip.prototype.tip = function () { + if (!this.$tip) { + this.$tip = $(this.options.template); + + if (this.$tip.length != 1) { + throw new Error(this.type + ' `template` option must consist of exactly 1 top-level element!'); + } + } + + return this.$tip; + }; + + Tooltip.prototype.arrow = function () { + return this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow'); + }; + + Tooltip.prototype.enable = function () { + this.enabled = true; + }; + + Tooltip.prototype.disable = function () { + this.enabled = false; + }; + + Tooltip.prototype.toggleEnabled = function () { + this.enabled = !this.enabled; + }; + + Tooltip.prototype.toggle = function (e) { + var self = this; + + if (e) { + self = $(e.currentTarget).data('bs.' + this.type); + + if (!self) { + self = new this.constructor(e.currentTarget, this.getDelegateOptions()); + $(e.currentTarget).data('bs.' + this.type, self); + } + } + + if (e) { + self.inState.click = !self.inState.click; + if (self.isInStateTrue()) self.enter(self);else self.leave(self); + } else { + self.tip().hasClass('in') ? self.leave(self) : self.enter(self); + } + }; + + Tooltip.prototype.destroy = function () { + var that = this; + clearTimeout(this.timeout); + this.hide(function () { + that.$element.off('.' + that.type).removeData('bs.' + that.type); + + if (that.$tip) { + that.$tip.detach(); + } + + that.$tip = null; + that.$arrow = null; + that.$viewport = null; + }); + }; // TOOLTIP PLUGIN DEFINITION + // ========================= + + + function Plugin(option) { + return this.each(function () { + var $this = $(this); + var data = $this.data('bs.tooltip'); + var options = _typeof(option) == 'object' && option; + if (!data && /destroy|hide/.test(option)) return; + if (!data) $this.data('bs.tooltip', data = new Tooltip(this, options)); + if (typeof option == 'string') data[option](); + }); + } + + var old = $.fn.tooltip; + $.fn.tooltip = Plugin; + $.fn.tooltip.Constructor = Tooltip; // TOOLTIP NO CONFLICT + // =================== + + $.fn.tooltip.noConflict = function () { + $.fn.tooltip = old; + return this; + }; +}(jQuery); +/* ======================================================================== + * Bootstrap: popover.js v3.3.5 + * http://getbootstrap.com/javascript/#popovers + * ======================================================================== + * Copyright 2011-2015 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * ======================================================================== */ + ++function ($) { + 'use strict'; // POPOVER PUBLIC CLASS DEFINITION + // =============================== + + var Popover = function Popover(element, options) { + this.init('popover', element, options); + }; + + if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js'); + Popover.VERSION = '3.3.5'; + Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, { + placement: 'right', + trigger: 'click', + content: '', + template: '' + }); // NOTE: POPOVER EXTENDS tooltip.js + // ================================ + + Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype); + Popover.prototype.constructor = Popover; + + Popover.prototype.getDefaults = function () { + return Popover.DEFAULTS; + }; + + Popover.prototype.setContent = function () { + var $tip = this.tip(); + var title = this.getTitle(); + var content = this.getContent(); + $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title); + $tip.find('.popover-content').children().detach().end()[// we use append for html objects to maintain js events + this.options.html ? typeof content == 'string' ? 'html' : 'append' : 'text'](content); + $tip.removeClass('fade top bottom left right in'); // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do + // this manually by checking the contents. + + if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide(); + }; + + Popover.prototype.hasContent = function () { + return this.getTitle() || this.getContent(); + }; + + Popover.prototype.getContent = function () { + var $e = this.$element; + var o = this.options; + return $e.attr('data-content') || (typeof o.content == 'function' ? o.content.call($e[0]) : o.content); + }; + + Popover.prototype.arrow = function () { + return this.$arrow = this.$arrow || this.tip().find('.arrow'); + }; // POPOVER PLUGIN DEFINITION + // ========================= + + + function Plugin(option) { + return this.each(function () { + var $this = $(this); + var data = $this.data('bs.popover'); + var options = _typeof(option) == 'object' && option; + if (!data && /destroy|hide/.test(option)) return; + if (!data) $this.data('bs.popover', data = new Popover(this, options)); + if (typeof option == 'string') data[option](); + }); + } + + var old = $.fn.popover; + $.fn.popover = Plugin; + $.fn.popover.Constructor = Popover; // POPOVER NO CONFLICT + // =================== + + $.fn.popover.noConflict = function () { + $.fn.popover = old; + return this; + }; +}(jQuery); +/* ======================================================================== + * Bootstrap: scrollspy.js v3.3.5 + * http://getbootstrap.com/javascript/#scrollspy + * ======================================================================== + * Copyright 2011-2015 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * ======================================================================== */ + ++function ($) { + 'use strict'; // SCROLLSPY CLASS DEFINITION + // ========================== + + function ScrollSpy(element, options) { + this.$body = $(document.body); + this.$scrollElement = $(element).is(document.body) ? $(window) : $(element); + this.options = $.extend({}, ScrollSpy.DEFAULTS, options); + this.selector = (this.options.target || '') + ' .nav li > a'; + this.offsets = []; + this.targets = []; + this.activeTarget = null; + this.scrollHeight = 0; + this.$scrollElement.on('scroll.bs.scrollspy', $.proxy(this.process, this)); + this.refresh(); + this.process(); + } + + ScrollSpy.VERSION = '3.3.5'; + ScrollSpy.DEFAULTS = { + offset: 10 + }; + + ScrollSpy.prototype.getScrollHeight = function () { + return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight); + }; + + ScrollSpy.prototype.refresh = function () { + var that = this; + var offsetMethod = 'offset'; + var offsetBase = 0; + this.offsets = []; + this.targets = []; + this.scrollHeight = this.getScrollHeight(); + + if (!$.isWindow(this.$scrollElement[0])) { + offsetMethod = 'position'; + offsetBase = this.$scrollElement.scrollTop(); + } + + this.$body.find(this.selector).map(function () { + var $el = $(this); + var href = $el.data('target') || $el.attr('href'); + var $href = /^#./.test(href) && $(href); + return $href && $href.length && $href.is(':visible') && [[$href[offsetMethod]().top + offsetBase, href]] || null; + }).sort(function (a, b) { + return a[0] - b[0]; + }).each(function () { + that.offsets.push(this[0]); + that.targets.push(this[1]); + }); + }; + + ScrollSpy.prototype.process = function () { + var scrollTop = this.$scrollElement.scrollTop() + this.options.offset; + var scrollHeight = this.getScrollHeight(); + var maxScroll = this.options.offset + scrollHeight - this.$scrollElement.height(); + var offsets = this.offsets; + var targets = this.targets; + var activeTarget = this.activeTarget; + var i; + + if (this.scrollHeight != scrollHeight) { + this.refresh(); + } + + if (scrollTop >= maxScroll) { + return activeTarget != (i = targets[targets.length - 1]) && this.activate(i); + } + + if (activeTarget && scrollTop < offsets[0]) { + this.activeTarget = null; + return this.clear(); + } + + for (i = offsets.length; i--;) { + activeTarget != targets[i] && scrollTop >= offsets[i] && (offsets[i + 1] === undefined || scrollTop < offsets[i + 1]) && this.activate(targets[i]); + } + }; + + ScrollSpy.prototype.activate = function (target) { + this.activeTarget = target; + this.clear(); + var selector = this.selector + '[data-target="' + target + '"],' + this.selector + '[href="' + target + '"]'; + var active = $(selector).parents('li').addClass('active'); + + if (active.parent('.dropdown-menu').length) { + active = active.closest('li.dropdown').addClass('active'); + } + + active.trigger('activate.bs.scrollspy'); + }; + + ScrollSpy.prototype.clear = function () { + $(this.selector).parentsUntil(this.options.target, '.active').removeClass('active'); + }; // SCROLLSPY PLUGIN DEFINITION + // =========================== + + + function Plugin(option) { + return this.each(function () { + var $this = $(this); + var data = $this.data('bs.scrollspy'); + var options = _typeof(option) == 'object' && option; + if (!data) $this.data('bs.scrollspy', data = new ScrollSpy(this, options)); + if (typeof option == 'string') data[option](); + }); + } + + var old = $.fn.scrollspy; + $.fn.scrollspy = Plugin; + $.fn.scrollspy.Constructor = ScrollSpy; // SCROLLSPY NO CONFLICT + // ===================== + + $.fn.scrollspy.noConflict = function () { + $.fn.scrollspy = old; + return this; + }; // SCROLLSPY DATA-API + // ================== + + + $(window).on('load.bs.scrollspy.data-api', function () { + $('[data-spy="scroll"]').each(function () { + var $spy = $(this); + Plugin.call($spy, $spy.data()); + }); + }); +}(jQuery); +/* ======================================================================== + * Bootstrap: tab.js v3.3.5 + * http://getbootstrap.com/javascript/#tabs + * ======================================================================== + * Copyright 2011-2015 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * ======================================================================== */ + ++function ($) { + 'use strict'; // TAB CLASS DEFINITION + // ==================== + + var Tab = function Tab(element) { + // jscs:disable requireDollarBeforejQueryAssignment + this.element = $(element); // jscs:enable requireDollarBeforejQueryAssignment + }; + + Tab.VERSION = '3.3.5'; + Tab.TRANSITION_DURATION = 150; + + Tab.prototype.show = function () { + var $this = this.element; + var $ul = $this.closest('ul:not(.dropdown-menu)'); + var selector = $this.data('target'); + + if (!selector) { + selector = $this.attr('href'); + selector = selector && selector.replace(/.*(?=#[^\s]*$)/, ''); // strip for ie7 + } + + if ($this.parent('li').hasClass('active')) return; + var $previous = $ul.find('.active:last a'); + var hideEvent = $.Event('hide.bs.tab', { + relatedTarget: $this[0] + }); + var showEvent = $.Event('show.bs.tab', { + relatedTarget: $previous[0] + }); + $previous.trigger(hideEvent); + $this.trigger(showEvent); + if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return; + var $target = $(selector); + this.activate($this.closest('li'), $ul); + this.activate($target, $target.parent(), function () { + $previous.trigger({ + type: 'hidden.bs.tab', + relatedTarget: $this[0] + }); + $this.trigger({ + type: 'shown.bs.tab', + relatedTarget: $previous[0] + }); + }); + }; + + Tab.prototype.activate = function (element, container, callback) { + var $active = container.find('> .active'); + var transition = callback && $.support.transition && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length); + + function next() { + $active.removeClass('active').find('> .dropdown-menu > .active').removeClass('active').end().find('[data-toggle="tab"]').attr('aria-expanded', false); + element.addClass('active').find('[data-toggle="tab"]').attr('aria-expanded', true); + + if (transition) { + element[0].offsetWidth; // reflow for transition + + element.addClass('in'); + } else { + element.removeClass('fade'); + } + + if (element.parent('.dropdown-menu').length) { + element.closest('li.dropdown').addClass('active').end().find('[data-toggle="tab"]').attr('aria-expanded', true); + } + + callback && callback(); + } + + $active.length && transition ? $active.one('bsTransitionEnd', next).emulateTransitionEnd(Tab.TRANSITION_DURATION) : next(); + $active.removeClass('in'); + }; // TAB PLUGIN DEFINITION + // ===================== + + + function Plugin(option) { + return this.each(function () { + var $this = $(this); + var data = $this.data('bs.tab'); + if (!data) $this.data('bs.tab', data = new Tab(this)); + if (typeof option == 'string') data[option](); + }); + } + + var old = $.fn.tab; + $.fn.tab = Plugin; + $.fn.tab.Constructor = Tab; // TAB NO CONFLICT + // =============== + + $.fn.tab.noConflict = function () { + $.fn.tab = old; + return this; + }; // TAB DATA-API + // ============ + + + var clickHandler = function clickHandler(e) { + e.preventDefault(); + Plugin.call($(this), 'show'); + }; + + $(document).on('click.bs.tab.data-api', '[data-toggle="tab"]', clickHandler).on('click.bs.tab.data-api', '[data-toggle="pill"]', clickHandler); +}(jQuery); +/* ======================================================================== + * Bootstrap: affix.js v3.3.5 + * http://getbootstrap.com/javascript/#affix + * ======================================================================== + * Copyright 2011-2015 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * ======================================================================== */ + ++function ($) { + 'use strict'; // AFFIX CLASS DEFINITION + // ====================== + + var Affix = function Affix(element, options) { + this.options = $.extend({}, Affix.DEFAULTS, options); + this.$target = $(this.options.target).on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this)).on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this)); + this.$element = $(element); + this.affixed = null; + this.unpin = null; + this.pinnedOffset = null; + this.checkPosition(); + }; + + Affix.VERSION = '3.3.5'; + Affix.RESET = 'affix affix-top affix-bottom'; + Affix.DEFAULTS = { + offset: 0, + target: window + }; + + Affix.prototype.getState = function (scrollHeight, height, offsetTop, offsetBottom) { + var scrollTop = this.$target.scrollTop(); + var position = this.$element.offset(); + var targetHeight = this.$target.height(); + if (offsetTop != null && this.affixed == 'top') return scrollTop < offsetTop ? 'top' : false; + + if (this.affixed == 'bottom') { + if (offsetTop != null) return scrollTop + this.unpin <= position.top ? false : 'bottom'; + return scrollTop + targetHeight <= scrollHeight - offsetBottom ? false : 'bottom'; + } + + var initializing = this.affixed == null; + var colliderTop = initializing ? scrollTop : position.top; + var colliderHeight = initializing ? targetHeight : height; + if (offsetTop != null && scrollTop <= offsetTop) return 'top'; + if (offsetBottom != null && colliderTop + colliderHeight >= scrollHeight - offsetBottom) return 'bottom'; + return false; + }; + + Affix.prototype.getPinnedOffset = function () { + if (this.pinnedOffset) return this.pinnedOffset; + this.$element.removeClass(Affix.RESET).addClass('affix'); + var scrollTop = this.$target.scrollTop(); + var position = this.$element.offset(); + return this.pinnedOffset = position.top - scrollTop; + }; + + Affix.prototype.checkPositionWithEventLoop = function () { + setTimeout($.proxy(this.checkPosition, this), 1); + }; + + Affix.prototype.checkPosition = function () { + if (!this.$element.is(':visible')) return; + var height = this.$element.height(); + var offset = this.options.offset; + var offsetTop = offset.top; + var offsetBottom = offset.bottom; + var scrollHeight = Math.max($(document).height(), $(document.body).height()); + if (_typeof(offset) != 'object') offsetBottom = offsetTop = offset; + if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element); + if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element); + var affix = this.getState(scrollHeight, height, offsetTop, offsetBottom); + + if (this.affixed != affix) { + if (this.unpin != null) this.$element.css('top', ''); + var affixType = 'affix' + (affix ? '-' + affix : ''); + var e = $.Event(affixType + '.bs.affix'); + this.$element.trigger(e); + if (e.isDefaultPrevented()) return; + this.affixed = affix; + this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null; + this.$element.removeClass(Affix.RESET).addClass(affixType).trigger(affixType.replace('affix', 'affixed') + '.bs.affix'); + } + + if (affix == 'bottom') { + this.$element.offset({ + top: scrollHeight - height - offsetBottom + }); + } + }; // AFFIX PLUGIN DEFINITION + // ======================= + + + function Plugin(option) { + return this.each(function () { + var $this = $(this); + var data = $this.data('bs.affix'); + var options = _typeof(option) == 'object' && option; + if (!data) $this.data('bs.affix', data = new Affix(this, options)); + if (typeof option == 'string') data[option](); + }); + } + + var old = $.fn.affix; + $.fn.affix = Plugin; + $.fn.affix.Constructor = Affix; // AFFIX NO CONFLICT + // ================= + + $.fn.affix.noConflict = function () { + $.fn.affix = old; + return this; + }; // AFFIX DATA-API + // ============== + + + $(window).on('load', function () { + $('[data-spy="affix"]').each(function () { + var $spy = $(this); + var data = $spy.data(); + data.offset = data.offset || {}; + if (data.offsetBottom != null) data.offset.bottom = data.offsetBottom; + if (data.offsetTop != null) data.offset.top = data.offsetTop; + Plugin.call($spy, data); + }); + }); +}(jQuery); \ No newline at end of file diff --git a/src/iris/ui/static/js/dist/bootstrap.min.dev.js b/src/iris/ui/static/js/dist/bootstrap.min.dev.js new file mode 100644 index 00000000..40157138 --- /dev/null +++ b/src/iris/ui/static/js/dist/bootstrap.min.dev.js @@ -0,0 +1,1032 @@ +"use strict"; + +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +/*! + * Bootstrap v3.3.5 (http://getbootstrap.com) + * Copyright 2011-2015 Twitter, Inc. + * Licensed under the MIT license + */ +if ("undefined" == typeof jQuery) throw new Error("Bootstrap's JavaScript requires jQuery"); ++function (a) { + "use strict"; + + var b = a.fn.jquery.split(" ")[0].split("."); + if (b[0] < 2 && b[1] < 9 || 1 == b[0] && 9 == b[1] && b[2] < 1) throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher"); +}(jQuery), +function (a) { + "use strict"; + + function b() { + var a = document.createElement("bootstrap"), + b = { + WebkitTransition: "webkitTransitionEnd", + MozTransition: "transitionend", + OTransition: "oTransitionEnd otransitionend", + transition: "transitionend" + }; + + for (var c in b) { + if (void 0 !== a.style[c]) return { + end: b[c] + }; + } + + return !1; + } + + a.fn.emulateTransitionEnd = function (b) { + var c = !1, + d = this; + a(this).one("bsTransitionEnd", function () { + c = !0; + }); + + var e = function e() { + c || a(d).trigger(a.support.transition.end); + }; + + return setTimeout(e, b), this; + }, a(function () { + a.support.transition = b(), a.support.transition && (a.event.special.bsTransitionEnd = { + bindType: a.support.transition.end, + delegateType: a.support.transition.end, + handle: function handle(b) { + return a(b.target).is(this) ? b.handleObj.handler.apply(this, arguments) : void 0; + } + }); + }); +}(jQuery), +function (a) { + "use strict"; + + function b(b) { + return this.each(function () { + var c = a(this), + e = c.data("bs.alert"); + e || c.data("bs.alert", e = new d(this)), "string" == typeof b && e[b].call(c); + }); + } + + var c = '[data-dismiss="alert"]', + d = function d(b) { + a(b).on("click", c, this.close); + }; + + d.VERSION = "3.3.5", d.TRANSITION_DURATION = 150, d.prototype.close = function (b) { + function c() { + g.detach().trigger("closed.bs.alert").remove(); + } + + var e = a(this), + f = e.attr("data-target"); + f || (f = e.attr("href"), f = f && f.replace(/.*(?=#[^\s]*$)/, "")); + var g = a(f); + b && b.preventDefault(), g.length || (g = e.closest(".alert")), g.trigger(b = a.Event("close.bs.alert")), b.isDefaultPrevented() || (g.removeClass("in"), a.support.transition && g.hasClass("fade") ? g.one("bsTransitionEnd", c).emulateTransitionEnd(d.TRANSITION_DURATION) : c()); + }; + var e = a.fn.alert; + a.fn.alert = b, a.fn.alert.Constructor = d, a.fn.alert.noConflict = function () { + return a.fn.alert = e, this; + }, a(document).on("click.bs.alert.data-api", c, d.prototype.close); +}(jQuery), +function (a) { + "use strict"; + + function b(b) { + return this.each(function () { + var d = a(this), + e = d.data("bs.button"), + f = "object" == _typeof(b) && b; + e || d.data("bs.button", e = new c(this, f)), "toggle" == b ? e.toggle() : b && e.setState(b); + }); + } + + var c = function c(b, d) { + this.$element = a(b), this.options = a.extend({}, c.DEFAULTS, d), this.isLoading = !1; + }; + + c.VERSION = "3.3.5", c.DEFAULTS = { + loadingText: "loading..." + }, c.prototype.setState = function (b) { + var c = "disabled", + d = this.$element, + e = d.is("input") ? "val" : "html", + f = d.data(); + b += "Text", null == f.resetText && d.data("resetText", d[e]()), setTimeout(a.proxy(function () { + d[e](null == f[b] ? this.options[b] : f[b]), "loadingText" == b ? (this.isLoading = !0, d.addClass(c).attr(c, c)) : this.isLoading && (this.isLoading = !1, d.removeClass(c).removeAttr(c)); + }, this), 0); + }, c.prototype.toggle = function () { + var a = !0, + b = this.$element.closest('[data-toggle="buttons"]'); + + if (b.length) { + var c = this.$element.find("input"); + "radio" == c.prop("type") ? (c.prop("checked") && (a = !1), b.find(".active").removeClass("active"), this.$element.addClass("active")) : "checkbox" == c.prop("type") && (c.prop("checked") !== this.$element.hasClass("active") && (a = !1), this.$element.toggleClass("active")), c.prop("checked", this.$element.hasClass("active")), a && c.trigger("change"); + } else this.$element.attr("aria-pressed", !this.$element.hasClass("active")), this.$element.toggleClass("active"); + }; + var d = a.fn.button; + a.fn.button = b, a.fn.button.Constructor = c, a.fn.button.noConflict = function () { + return a.fn.button = d, this; + }, a(document).on("click.bs.button.data-api", '[data-toggle^="button"]', function (c) { + var d = a(c.target); + d.hasClass("btn") || (d = d.closest(".btn")), b.call(d, "toggle"), a(c.target).is('input[type="radio"]') || a(c.target).is('input[type="checkbox"]') || c.preventDefault(); + }).on("focus.bs.button.data-api blur.bs.button.data-api", '[data-toggle^="button"]', function (b) { + a(b.target).closest(".btn").toggleClass("focus", /^focus(in)?$/.test(b.type)); + }); +}(jQuery), +function (a) { + "use strict"; + + function b(b) { + return this.each(function () { + var d = a(this), + e = d.data("bs.carousel"), + f = a.extend({}, c.DEFAULTS, d.data(), "object" == _typeof(b) && b), + g = "string" == typeof b ? b : f.slide; + e || d.data("bs.carousel", e = new c(this, f)), "number" == typeof b ? e.to(b) : g ? e[g]() : f.interval && e.pause().cycle(); + }); + } + + var c = function c(b, _c) { + this.$element = a(b), this.$indicators = this.$element.find(".carousel-indicators"), this.options = _c, this.paused = null, this.sliding = null, this.interval = null, this.$active = null, this.$items = null, this.options.keyboard && this.$element.on("keydown.bs.carousel", a.proxy(this.keydown, this)), "hover" == this.options.pause && !("ontouchstart" in document.documentElement) && this.$element.on("mouseenter.bs.carousel", a.proxy(this.pause, this)).on("mouseleave.bs.carousel", a.proxy(this.cycle, this)); + }; + + c.VERSION = "3.3.5", c.TRANSITION_DURATION = 600, c.DEFAULTS = { + interval: 5e3, + pause: "hover", + wrap: !0, + keyboard: !0 + }, c.prototype.keydown = function (a) { + if (!/input|textarea/i.test(a.target.tagName)) { + switch (a.which) { + case 37: + this.prev(); + break; + + case 39: + this.next(); + break; + + default: + return; + } + + a.preventDefault(); + } + }, c.prototype.cycle = function (b) { + return b || (this.paused = !1), this.interval && clearInterval(this.interval), this.options.interval && !this.paused && (this.interval = setInterval(a.proxy(this.next, this), this.options.interval)), this; + }, c.prototype.getItemIndex = function (a) { + return this.$items = a.parent().children(".item"), this.$items.index(a || this.$active); + }, c.prototype.getItemForDirection = function (a, b) { + var c = this.getItemIndex(b), + d = "prev" == a && 0 === c || "next" == a && c == this.$items.length - 1; + if (d && !this.options.wrap) return b; + var e = "prev" == a ? -1 : 1, + f = (c + e) % this.$items.length; + return this.$items.eq(f); + }, c.prototype.to = function (a) { + var b = this, + c = this.getItemIndex(this.$active = this.$element.find(".item.active")); + return a > this.$items.length - 1 || 0 > a ? void 0 : this.sliding ? this.$element.one("slid.bs.carousel", function () { + b.to(a); + }) : c == a ? this.pause().cycle() : this.slide(a > c ? "next" : "prev", this.$items.eq(a)); + }, c.prototype.pause = function (b) { + return b || (this.paused = !0), this.$element.find(".next, .prev").length && a.support.transition && (this.$element.trigger(a.support.transition.end), this.cycle(!0)), this.interval = clearInterval(this.interval), this; + }, c.prototype.next = function () { + return this.sliding ? void 0 : this.slide("next"); + }, c.prototype.prev = function () { + return this.sliding ? void 0 : this.slide("prev"); + }, c.prototype.slide = function (b, d) { + var e = this.$element.find(".item.active"), + f = d || this.getItemForDirection(b, e), + g = this.interval, + h = "next" == b ? "left" : "right", + i = this; + if (f.hasClass("active")) return this.sliding = !1; + var j = f[0], + k = a.Event("slide.bs.carousel", { + relatedTarget: j, + direction: h + }); + + if (this.$element.trigger(k), !k.isDefaultPrevented()) { + if (this.sliding = !0, g && this.pause(), this.$indicators.length) { + this.$indicators.find(".active").removeClass("active"); + var l = a(this.$indicators.children()[this.getItemIndex(f)]); + l && l.addClass("active"); + } + + var m = a.Event("slid.bs.carousel", { + relatedTarget: j, + direction: h + }); + return a.support.transition && this.$element.hasClass("slide") ? (f.addClass(b), f[0].offsetWidth, e.addClass(h), f.addClass(h), e.one("bsTransitionEnd", function () { + f.removeClass([b, h].join(" ")).addClass("active"), e.removeClass(["active", h].join(" ")), i.sliding = !1, setTimeout(function () { + i.$element.trigger(m); + }, 0); + }).emulateTransitionEnd(c.TRANSITION_DURATION)) : (e.removeClass("active"), f.addClass("active"), this.sliding = !1, this.$element.trigger(m)), g && this.cycle(), this; + } + }; + var d = a.fn.carousel; + a.fn.carousel = b, a.fn.carousel.Constructor = c, a.fn.carousel.noConflict = function () { + return a.fn.carousel = d, this; + }; + + var e = function e(c) { + var d, + e = a(this), + f = a(e.attr("data-target") || (d = e.attr("href")) && d.replace(/.*(?=#[^\s]+$)/, "")); + + if (f.hasClass("carousel")) { + var g = a.extend({}, f.data(), e.data()), + h = e.attr("data-slide-to"); + h && (g.interval = !1), b.call(f, g), h && f.data("bs.carousel").to(h), c.preventDefault(); + } + }; + + a(document).on("click.bs.carousel.data-api", "[data-slide]", e).on("click.bs.carousel.data-api", "[data-slide-to]", e), a(window).on("load", function () { + a('[data-ride="carousel"]').each(function () { + var c = a(this); + b.call(c, c.data()); + }); + }); +}(jQuery), +function (a) { + "use strict"; + + function b(b) { + var c, + d = b.attr("data-target") || (c = b.attr("href")) && c.replace(/.*(?=#[^\s]+$)/, ""); + return a(d); + } + + function c(b) { + return this.each(function () { + var c = a(this), + e = c.data("bs.collapse"), + f = a.extend({}, d.DEFAULTS, c.data(), "object" == _typeof(b) && b); + !e && f.toggle && /show|hide/.test(b) && (f.toggle = !1), e || c.data("bs.collapse", e = new d(this, f)), "string" == typeof b && e[b](); + }); + } + + var d = function d(b, c) { + this.$element = a(b), this.options = a.extend({}, d.DEFAULTS, c), this.$trigger = a('[data-toggle="collapse"][href="#' + b.id + '"],[data-toggle="collapse"][data-target="#' + b.id + '"]'), this.transitioning = null, this.options.parent ? this.$parent = this.getParent() : this.addAriaAndCollapsedClass(this.$element, this.$trigger), this.options.toggle && this.toggle(); + }; + + d.VERSION = "3.3.5", d.TRANSITION_DURATION = 350, d.DEFAULTS = { + toggle: !0 + }, d.prototype.dimension = function () { + var a = this.$element.hasClass("width"); + return a ? "width" : "height"; + }, d.prototype.show = function () { + if (!this.transitioning && !this.$element.hasClass("in")) { + var b, + e = this.$parent && this.$parent.children(".panel").children(".in, .collapsing"); + + if (!(e && e.length && (b = e.data("bs.collapse"), b && b.transitioning))) { + var f = a.Event("show.bs.collapse"); + + if (this.$element.trigger(f), !f.isDefaultPrevented()) { + e && e.length && (c.call(e, "hide"), b || e.data("bs.collapse", null)); + var g = this.dimension(); + this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded", !0), this.$trigger.removeClass("collapsed").attr("aria-expanded", !0), this.transitioning = 1; + + var h = function h() { + this.$element.removeClass("collapsing").addClass("collapse in")[g](""), this.transitioning = 0, this.$element.trigger("shown.bs.collapse"); + }; + + if (!a.support.transition) return h.call(this); + var i = a.camelCase(["scroll", g].join("-")); + this.$element.one("bsTransitionEnd", a.proxy(h, this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i]); + } + } + } + }, d.prototype.hide = function () { + if (!this.transitioning && this.$element.hasClass("in")) { + var b = a.Event("hide.bs.collapse"); + + if (this.$element.trigger(b), !b.isDefaultPrevented()) { + var c = this.dimension(); + this.$element[c](this.$element[c]())[0].offsetHeight, this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded", !1), this.$trigger.addClass("collapsed").attr("aria-expanded", !1), this.transitioning = 1; + + var e = function e() { + this.transitioning = 0, this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse"); + }; + + return a.support.transition ? void this.$element[c](0).one("bsTransitionEnd", a.proxy(e, this)).emulateTransitionEnd(d.TRANSITION_DURATION) : e.call(this); + } + } + }, d.prototype.toggle = function () { + this[this.$element.hasClass("in") ? "hide" : "show"](); + }, d.prototype.getParent = function () { + return a(this.options.parent).find('[data-toggle="collapse"][data-parent="' + this.options.parent + '"]').each(a.proxy(function (c, d) { + var e = a(d); + this.addAriaAndCollapsedClass(b(e), e); + }, this)).end(); + }, d.prototype.addAriaAndCollapsedClass = function (a, b) { + var c = a.hasClass("in"); + a.attr("aria-expanded", c), b.toggleClass("collapsed", !c).attr("aria-expanded", c); + }; + var e = a.fn.collapse; + a.fn.collapse = c, a.fn.collapse.Constructor = d, a.fn.collapse.noConflict = function () { + return a.fn.collapse = e, this; + }, a(document).on("click.bs.collapse.data-api", '[data-toggle="collapse"]', function (d) { + var e = a(this); + e.attr("data-target") || d.preventDefault(); + var f = b(e), + g = f.data("bs.collapse"), + h = g ? "toggle" : e.data(); + c.call(f, h); + }); +}(jQuery), +function (a) { + "use strict"; + + function b(b) { + var c = b.attr("data-target"); + c || (c = b.attr("href"), c = c && /#[A-Za-z]/.test(c) && c.replace(/.*(?=#[^\s]*$)/, "")); + var d = c && a(c); + return d && d.length ? d : b.parent(); + } + + function c(c) { + c && 3 === c.which || (a(e).remove(), a(f).each(function () { + var d = a(this), + e = b(d), + f = { + relatedTarget: this + }; + e.hasClass("open") && (c && "click" == c.type && /input|textarea/i.test(c.target.tagName) && a.contains(e[0], c.target) || (e.trigger(c = a.Event("hide.bs.dropdown", f)), c.isDefaultPrevented() || (d.attr("aria-expanded", "false"), e.removeClass("open").trigger("hidden.bs.dropdown", f)))); + })); + } + + function d(b) { + return this.each(function () { + var c = a(this), + d = c.data("bs.dropdown"); + d || c.data("bs.dropdown", d = new g(this)), "string" == typeof b && d[b].call(c); + }); + } + + var e = ".dropdown-backdrop", + f = '[data-toggle="dropdown"]', + g = function g(b) { + a(b).on("click.bs.dropdown", this.toggle); + }; + + g.VERSION = "3.3.5", g.prototype.toggle = function (d) { + var e = a(this); + + if (!e.is(".disabled, :disabled")) { + var f = b(e), + g = f.hasClass("open"); + + if (c(), !g) { + "ontouchstart" in document.documentElement && !f.closest(".navbar-nav").length && a(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(a(this)).on("click", c); + var h = { + relatedTarget: this + }; + if (f.trigger(d = a.Event("show.bs.dropdown", h)), d.isDefaultPrevented()) return; + e.trigger("focus").attr("aria-expanded", "true"), f.toggleClass("open").trigger("shown.bs.dropdown", h); + } + + return !1; + } + }, g.prototype.keydown = function (c) { + if (/(38|40|27|32)/.test(c.which) && !/input|textarea/i.test(c.target.tagName)) { + var d = a(this); + + if (c.preventDefault(), c.stopPropagation(), !d.is(".disabled, :disabled")) { + var e = b(d), + g = e.hasClass("open"); + if (!g && 27 != c.which || g && 27 == c.which) return 27 == c.which && e.find(f).trigger("focus"), d.trigger("click"); + var h = " li:not(.disabled):visible a", + i = e.find(".dropdown-menu" + h); + + if (i.length) { + var j = i.index(c.target); + 38 == c.which && j > 0 && j--, 40 == c.which && j < i.length - 1 && j++, ~j || (j = 0), i.eq(j).trigger("focus"); + } + } + } + }; + var h = a.fn.dropdown; + a.fn.dropdown = d, a.fn.dropdown.Constructor = g, a.fn.dropdown.noConflict = function () { + return a.fn.dropdown = h, this; + }, a(document).on("click.bs.dropdown.data-api", c).on("click.bs.dropdown.data-api", ".dropdown form", function (a) { + a.stopPropagation(); + }).on("click.bs.dropdown.data-api", f, g.prototype.toggle).on("keydown.bs.dropdown.data-api", f, g.prototype.keydown).on("keydown.bs.dropdown.data-api", ".dropdown-menu", g.prototype.keydown); +}(jQuery), +function (a) { + "use strict"; + + function b(b, d) { + return this.each(function () { + var e = a(this), + f = e.data("bs.modal"), + g = a.extend({}, c.DEFAULTS, e.data(), "object" == _typeof(b) && b); + f || e.data("bs.modal", f = new c(this, g)), "string" == typeof b ? f[b](d) : g.show && f.show(d); + }); + } + + var c = function c(b, _c2) { + this.options = _c2, this.$body = a(document.body), this.$element = a(b), this.$dialog = this.$element.find(".modal-dialog"), this.$backdrop = null, this.isShown = null, this.originalBodyPad = null, this.scrollbarWidth = 0, this.ignoreBackdropClick = !1, this.options.remote && this.$element.find(".modal-content").load(this.options.remote, a.proxy(function () { + this.$element.trigger("loaded.bs.modal"); + }, this)); + }; + + c.VERSION = "3.3.5", c.TRANSITION_DURATION = 300, c.BACKDROP_TRANSITION_DURATION = 150, c.DEFAULTS = { + backdrop: !0, + keyboard: !0, + show: !0 + }, c.prototype.toggle = function (a) { + return this.isShown ? this.hide() : this.show(a); + }, c.prototype.show = function (b) { + var d = this, + e = a.Event("show.bs.modal", { + relatedTarget: b + }); + this.$element.trigger(e), this.isShown || e.isDefaultPrevented() || (this.isShown = !0, this.checkScrollbar(), this.setScrollbar(), this.$body.addClass("modal-open"), this.escape(), this.resize(), this.$element.on("click.dismiss.bs.modal", '[data-dismiss="modal"]', a.proxy(this.hide, this)), this.$dialog.on("mousedown.dismiss.bs.modal", function () { + d.$element.one("mouseup.dismiss.bs.modal", function (b) { + a(b.target).is(d.$element) && (d.ignoreBackdropClick = !0); + }); + }), this.backdrop(function () { + var e = a.support.transition && d.$element.hasClass("fade"); + d.$element.parent().length || d.$element.appendTo(d.$body), d.$element.show().scrollTop(0), d.adjustDialog(), e && d.$element[0].offsetWidth, d.$element.addClass("in"), d.enforceFocus(); + var f = a.Event("shown.bs.modal", { + relatedTarget: b + }); + e ? d.$dialog.one("bsTransitionEnd", function () { + d.$element.trigger("focus").trigger(f); + }).emulateTransitionEnd(c.TRANSITION_DURATION) : d.$element.trigger("focus").trigger(f); + })); + }, c.prototype.hide = function (b) { + b && b.preventDefault(), b = a.Event("hide.bs.modal"), this.$element.trigger(b), this.isShown && !b.isDefaultPrevented() && (this.isShown = !1, this.escape(), this.resize(), a(document).off("focusin.bs.modal"), this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"), this.$dialog.off("mousedown.dismiss.bs.modal"), a.support.transition && this.$element.hasClass("fade") ? this.$element.one("bsTransitionEnd", a.proxy(this.hideModal, this)).emulateTransitionEnd(c.TRANSITION_DURATION) : this.hideModal()); + }, c.prototype.enforceFocus = function () { + a(document).off("focusin.bs.modal").on("focusin.bs.modal", a.proxy(function (a) { + this.$element[0] === a.target || this.$element.has(a.target).length || this.$element.trigger("focus"); + }, this)); + }, c.prototype.escape = function () { + this.isShown && this.options.keyboard ? this.$element.on("keydown.dismiss.bs.modal", a.proxy(function (a) { + 27 == a.which && this.hide(); + }, this)) : this.isShown || this.$element.off("keydown.dismiss.bs.modal"); + }, c.prototype.resize = function () { + this.isShown ? a(window).on("resize.bs.modal", a.proxy(this.handleUpdate, this)) : a(window).off("resize.bs.modal"); + }, c.prototype.hideModal = function () { + var a = this; + this.$element.hide(), this.backdrop(function () { + a.$body.removeClass("modal-open"), a.resetAdjustments(), a.resetScrollbar(), a.$element.trigger("hidden.bs.modal"); + }); + }, c.prototype.removeBackdrop = function () { + this.$backdrop && this.$backdrop.remove(), this.$backdrop = null; + }, c.prototype.backdrop = function (b) { + var d = this, + e = this.$element.hasClass("fade") ? "fade" : ""; + + if (this.isShown && this.options.backdrop) { + var f = a.support.transition && e; + if (this.$backdrop = a(document.createElement("div")).addClass("modal-backdrop " + e).appendTo(this.$body), this.$element.on("click.dismiss.bs.modal", a.proxy(function (a) { + return this.ignoreBackdropClick ? void (this.ignoreBackdropClick = !1) : void (a.target === a.currentTarget && ("static" == this.options.backdrop ? this.$element[0].focus() : this.hide())); + }, this)), f && this.$backdrop[0].offsetWidth, this.$backdrop.addClass("in"), !b) return; + f ? this.$backdrop.one("bsTransitionEnd", b).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION) : b(); + } else if (!this.isShown && this.$backdrop) { + this.$backdrop.removeClass("in"); + + var g = function g() { + d.removeBackdrop(), b && b(); + }; + + a.support.transition && this.$element.hasClass("fade") ? this.$backdrop.one("bsTransitionEnd", g).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION) : g(); + } else b && b(); + }, c.prototype.handleUpdate = function () { + this.adjustDialog(); + }, c.prototype.adjustDialog = function () { + var a = this.$element[0].scrollHeight > document.documentElement.clientHeight; + this.$element.css({ + paddingLeft: !this.bodyIsOverflowing && a ? this.scrollbarWidth : "", + paddingRight: this.bodyIsOverflowing && !a ? this.scrollbarWidth : "" + }); + }, c.prototype.resetAdjustments = function () { + this.$element.css({ + paddingLeft: "", + paddingRight: "" + }); + }, c.prototype.checkScrollbar = function () { + var a = window.innerWidth; + + if (!a) { + var b = document.documentElement.getBoundingClientRect(); + a = b.right - Math.abs(b.left); + } + + this.bodyIsOverflowing = document.body.clientWidth < a, this.scrollbarWidth = this.measureScrollbar(); + }, c.prototype.setScrollbar = function () { + var a = parseInt(this.$body.css("padding-right") || 0, 10); + this.originalBodyPad = document.body.style.paddingRight || "", this.bodyIsOverflowing && this.$body.css("padding-right", a + this.scrollbarWidth); + }, c.prototype.resetScrollbar = function () { + this.$body.css("padding-right", this.originalBodyPad); + }, c.prototype.measureScrollbar = function () { + var a = document.createElement("div"); + a.className = "modal-scrollbar-measure", this.$body.append(a); + var b = a.offsetWidth - a.clientWidth; + return this.$body[0].removeChild(a), b; + }; + var d = a.fn.modal; + a.fn.modal = b, a.fn.modal.Constructor = c, a.fn.modal.noConflict = function () { + return a.fn.modal = d, this; + }, a(document).on("click.bs.modal.data-api", '[data-toggle="modal"]', function (c) { + var d = a(this), + e = d.attr("href"), + f = a(d.attr("data-target") || e && e.replace(/.*(?=#[^\s]+$)/, "")), + g = f.data("bs.modal") ? "toggle" : a.extend({ + remote: !/#/.test(e) && e + }, f.data(), d.data()); + d.is("a") && c.preventDefault(), f.one("show.bs.modal", function (a) { + a.isDefaultPrevented() || f.one("hidden.bs.modal", function () { + d.is(":visible") && d.trigger("focus"); + }); + }), b.call(f, g, this); + }); +}(jQuery), +function (a) { + "use strict"; + + function b(b) { + return this.each(function () { + var d = a(this), + e = d.data("bs.tooltip"), + f = "object" == _typeof(b) && b; + (e || !/destroy|hide/.test(b)) && (e || d.data("bs.tooltip", e = new c(this, f)), "string" == typeof b && e[b]()); + }); + } + + var c = function c(a, b) { + this.type = null, this.options = null, this.enabled = null, this.timeout = null, this.hoverState = null, this.$element = null, this.inState = null, this.init("tooltip", a, b); + }; + + c.VERSION = "3.3.5", c.TRANSITION_DURATION = 150, c.DEFAULTS = { + animation: !0, + placement: "top", + selector: !1, + template: '', + trigger: "hover focus", + title: "", + delay: 0, + html: !1, + container: !1, + viewport: { + selector: "body", + padding: 0 + } + }, c.prototype.init = function (b, c, d) { + if (this.enabled = !0, this.type = b, this.$element = a(c), this.options = this.getOptions(d), this.$viewport = this.options.viewport && a(a.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : this.options.viewport.selector || this.options.viewport), this.inState = { + click: !1, + hover: !1, + focus: !1 + }, this.$element[0] instanceof document.constructor && !this.options.selector) throw new Error("`selector` option must be specified when initializing " + this.type + " on the window.document object!"); + + for (var e = this.options.trigger.split(" "), f = e.length; f--;) { + var g = e[f]; + if ("click" == g) this.$element.on("click." + this.type, this.options.selector, a.proxy(this.toggle, this));else if ("manual" != g) { + var h = "hover" == g ? "mouseenter" : "focusin", + i = "hover" == g ? "mouseleave" : "focusout"; + this.$element.on(h + "." + this.type, this.options.selector, a.proxy(this.enter, this)), this.$element.on(i + "." + this.type, this.options.selector, a.proxy(this.leave, this)); + } + } + + this.options.selector ? this._options = a.extend({}, this.options, { + trigger: "manual", + selector: "" + }) : this.fixTitle(); + }, c.prototype.getDefaults = function () { + return c.DEFAULTS; + }, c.prototype.getOptions = function (b) { + return b = a.extend({}, this.getDefaults(), this.$element.data(), b), b.delay && "number" == typeof b.delay && (b.delay = { + show: b.delay, + hide: b.delay + }), b; + }, c.prototype.getDelegateOptions = function () { + var b = {}, + c = this.getDefaults(); + return this._options && a.each(this._options, function (a, d) { + c[a] != d && (b[a] = d); + }), b; + }, c.prototype.enter = function (b) { + var c = b instanceof this.constructor ? b : a(b.currentTarget).data("bs." + this.type); + return c || (c = new this.constructor(b.currentTarget, this.getDelegateOptions()), a(b.currentTarget).data("bs." + this.type, c)), b instanceof a.Event && (c.inState["focusin" == b.type ? "focus" : "hover"] = !0), c.tip().hasClass("in") || "in" == c.hoverState ? void (c.hoverState = "in") : (clearTimeout(c.timeout), c.hoverState = "in", c.options.delay && c.options.delay.show ? void (c.timeout = setTimeout(function () { + "in" == c.hoverState && c.show(); + }, c.options.delay.show)) : c.show()); + }, c.prototype.isInStateTrue = function () { + for (var a in this.inState) { + if (this.inState[a]) return !0; + } + + return !1; + }, c.prototype.leave = function (b) { + var c = b instanceof this.constructor ? b : a(b.currentTarget).data("bs." + this.type); + return c || (c = new this.constructor(b.currentTarget, this.getDelegateOptions()), a(b.currentTarget).data("bs." + this.type, c)), b instanceof a.Event && (c.inState["focusout" == b.type ? "focus" : "hover"] = !1), c.isInStateTrue() ? void 0 : (clearTimeout(c.timeout), c.hoverState = "out", c.options.delay && c.options.delay.hide ? void (c.timeout = setTimeout(function () { + "out" == c.hoverState && c.hide(); + }, c.options.delay.hide)) : c.hide()); + }, c.prototype.show = function () { + var b = a.Event("show.bs." + this.type); + + if (this.hasContent() && this.enabled) { + this.$element.trigger(b); + var d = a.contains(this.$element[0].ownerDocument.documentElement, this.$element[0]); + if (b.isDefaultPrevented() || !d) return; + var e = this, + f = this.tip(), + g = this.getUID(this.type); + this.setContent(), f.attr("id", g), this.$element.attr("aria-describedby", g), this.options.animation && f.addClass("fade"); + var h = "function" == typeof this.options.placement ? this.options.placement.call(this, f[0], this.$element[0]) : this.options.placement, + i = /\s?auto?\s?/i, + j = i.test(h); + j && (h = h.replace(i, "") || "top"), f.detach().css({ + top: 0, + left: 0, + display: "block" + }).addClass(h).data("bs." + this.type, this), this.options.container ? f.appendTo(this.options.container) : f.insertAfter(this.$element), this.$element.trigger("inserted.bs." + this.type); + var k = this.getPosition(), + l = f[0].offsetWidth, + m = f[0].offsetHeight; + + if (j) { + var n = h, + o = this.getPosition(this.$viewport); + h = "bottom" == h && k.bottom + m > o.bottom ? "top" : "top" == h && k.top - m < o.top ? "bottom" : "right" == h && k.right + l > o.width ? "left" : "left" == h && k.left - l < o.left ? "right" : h, f.removeClass(n).addClass(h); + } + + var p = this.getCalculatedOffset(h, k, l, m); + this.applyPlacement(p, h); + + var q = function q() { + var a = e.hoverState; + e.$element.trigger("shown.bs." + e.type), e.hoverState = null, "out" == a && e.leave(e); + }; + + a.support.transition && this.$tip.hasClass("fade") ? f.one("bsTransitionEnd", q).emulateTransitionEnd(c.TRANSITION_DURATION) : q(); + } + }, c.prototype.applyPlacement = function (b, c) { + var d = this.tip(), + e = d[0].offsetWidth, + f = d[0].offsetHeight, + g = parseInt(d.css("margin-top"), 10), + h = parseInt(d.css("margin-left"), 10); + isNaN(g) && (g = 0), isNaN(h) && (h = 0), b.top += g, b.left += h, a.offset.setOffset(d[0], a.extend({ + using: function using(a) { + d.css({ + top: Math.round(a.top), + left: Math.round(a.left) + }); + } + }, b), 0), d.addClass("in"); + var i = d[0].offsetWidth, + j = d[0].offsetHeight; + "top" == c && j != f && (b.top = b.top + f - j); + var k = this.getViewportAdjustedDelta(c, b, i, j); + k.left ? b.left += k.left : b.top += k.top; + var l = /top|bottom/.test(c), + m = l ? 2 * k.left - e + i : 2 * k.top - f + j, + n = l ? "offsetWidth" : "offsetHeight"; + d.offset(b), this.replaceArrow(m, d[0][n], l); + }, c.prototype.replaceArrow = function (a, b, c) { + this.arrow().css(c ? "left" : "top", 50 * (1 - a / b) + "%").css(c ? "top" : "left", ""); + }, c.prototype.setContent = function () { + var a = this.tip(), + b = this.getTitle(); + a.find(".tooltip-inner")[this.options.html ? "html" : "text"](b), a.removeClass("fade in top bottom left right"); + }, c.prototype.hide = function (b) { + function d() { + "in" != e.hoverState && f.detach(), e.$element.removeAttr("aria-describedby").trigger("hidden.bs." + e.type), b && b(); + } + + var e = this, + f = a(this.$tip), + g = a.Event("hide.bs." + this.type); + return this.$element.trigger(g), g.isDefaultPrevented() ? void 0 : (f.removeClass("in"), a.support.transition && f.hasClass("fade") ? f.one("bsTransitionEnd", d).emulateTransitionEnd(c.TRANSITION_DURATION) : d(), this.hoverState = null, this); + }, c.prototype.fixTitle = function () { + var a = this.$element; + (a.attr("title") || "string" != typeof a.attr("data-original-title")) && a.attr("data-original-title", a.attr("title") || "").attr("title", ""); + }, c.prototype.hasContent = function () { + return this.getTitle(); + }, c.prototype.getPosition = function (b) { + b = b || this.$element; + var c = b[0], + d = "BODY" == c.tagName, + e = c.getBoundingClientRect(); + null == e.width && (e = a.extend({}, e, { + width: e.right - e.left, + height: e.bottom - e.top + })); + var f = d ? { + top: 0, + left: 0 + } : b.offset(), + g = { + scroll: d ? document.documentElement.scrollTop || document.body.scrollTop : b.scrollTop() + }, + h = d ? { + width: a(window).width(), + height: a(window).height() + } : null; + return a.extend({}, e, g, h, f); + }, c.prototype.getCalculatedOffset = function (a, b, c, d) { + return "bottom" == a ? { + top: b.top + b.height, + left: b.left + b.width / 2 - c / 2 + } : "top" == a ? { + top: b.top - d, + left: b.left + b.width / 2 - c / 2 + } : "left" == a ? { + top: b.top + b.height / 2 - d / 2, + left: b.left - c + } : { + top: b.top + b.height / 2 - d / 2, + left: b.left + b.width + }; + }, c.prototype.getViewportAdjustedDelta = function (a, b, c, d) { + var e = { + top: 0, + left: 0 + }; + if (!this.$viewport) return e; + var f = this.options.viewport && this.options.viewport.padding || 0, + g = this.getPosition(this.$viewport); + + if (/right|left/.test(a)) { + var h = b.top - f - g.scroll, + i = b.top + f - g.scroll + d; + h < g.top ? e.top = g.top - h : i > g.top + g.height && (e.top = g.top + g.height - i); + } else { + var j = b.left - f, + k = b.left + f + c; + j < g.left ? e.left = g.left - j : k > g.right && (e.left = g.left + g.width - k); + } + + return e; + }, c.prototype.getTitle = function () { + var a, + b = this.$element, + c = this.options; + return a = b.attr("data-original-title") || ("function" == typeof c.title ? c.title.call(b[0]) : c.title); + }, c.prototype.getUID = function (a) { + do { + a += ~~(1e6 * Math.random()); + } while (document.getElementById(a)); + + return a; + }, c.prototype.tip = function () { + if (!this.$tip && (this.$tip = a(this.options.template), 1 != this.$tip.length)) throw new Error(this.type + " `template` option must consist of exactly 1 top-level element!"); + return this.$tip; + }, c.prototype.arrow = function () { + return this.$arrow = this.$arrow || this.tip().find(".tooltip-arrow"); + }, c.prototype.enable = function () { + this.enabled = !0; + }, c.prototype.disable = function () { + this.enabled = !1; + }, c.prototype.toggleEnabled = function () { + this.enabled = !this.enabled; + }, c.prototype.toggle = function (b) { + var c = this; + b && (c = a(b.currentTarget).data("bs." + this.type), c || (c = new this.constructor(b.currentTarget, this.getDelegateOptions()), a(b.currentTarget).data("bs." + this.type, c))), b ? (c.inState.click = !c.inState.click, c.isInStateTrue() ? c.enter(c) : c.leave(c)) : c.tip().hasClass("in") ? c.leave(c) : c.enter(c); + }, c.prototype.destroy = function () { + var a = this; + clearTimeout(this.timeout), this.hide(function () { + a.$element.off("." + a.type).removeData("bs." + a.type), a.$tip && a.$tip.detach(), a.$tip = null, a.$arrow = null, a.$viewport = null; + }); + }; + var d = a.fn.tooltip; + a.fn.tooltip = b, a.fn.tooltip.Constructor = c, a.fn.tooltip.noConflict = function () { + return a.fn.tooltip = d, this; + }; +}(jQuery), +function (a) { + "use strict"; + + function b(b) { + return this.each(function () { + var d = a(this), + e = d.data("bs.popover"), + f = "object" == _typeof(b) && b; + (e || !/destroy|hide/.test(b)) && (e || d.data("bs.popover", e = new c(this, f)), "string" == typeof b && e[b]()); + }); + } + + var c = function c(a, b) { + this.init("popover", a, b); + }; + + if (!a.fn.tooltip) throw new Error("Popover requires tooltip.js"); + c.VERSION = "3.3.5", c.DEFAULTS = a.extend({}, a.fn.tooltip.Constructor.DEFAULTS, { + placement: "right", + trigger: "click", + content: "", + template: '' + }), c.prototype = a.extend({}, a.fn.tooltip.Constructor.prototype), c.prototype.constructor = c, c.prototype.getDefaults = function () { + return c.DEFAULTS; + }, c.prototype.setContent = function () { + var a = this.tip(), + b = this.getTitle(), + c = this.getContent(); + a.find(".popover-title")[this.options.html ? "html" : "text"](b), a.find(".popover-content").children().detach().end()[this.options.html ? "string" == typeof c ? "html" : "append" : "text"](c), a.removeClass("fade top bottom left right in"), a.find(".popover-title").html() || a.find(".popover-title").hide(); + }, c.prototype.hasContent = function () { + return this.getTitle() || this.getContent(); + }, c.prototype.getContent = function () { + var a = this.$element, + b = this.options; + return a.attr("data-content") || ("function" == typeof b.content ? b.content.call(a[0]) : b.content); + }, c.prototype.arrow = function () { + return this.$arrow = this.$arrow || this.tip().find(".arrow"); + }; + var d = a.fn.popover; + a.fn.popover = b, a.fn.popover.Constructor = c, a.fn.popover.noConflict = function () { + return a.fn.popover = d, this; + }; +}(jQuery), +function (a) { + "use strict"; + + function b(c, d) { + this.$body = a(document.body), this.$scrollElement = a(a(c).is(document.body) ? window : c), this.options = a.extend({}, b.DEFAULTS, d), this.selector = (this.options.target || "") + " .nav li > a", this.offsets = [], this.targets = [], this.activeTarget = null, this.scrollHeight = 0, this.$scrollElement.on("scroll.bs.scrollspy", a.proxy(this.process, this)), this.refresh(), this.process(); + } + + function c(c) { + return this.each(function () { + var d = a(this), + e = d.data("bs.scrollspy"), + f = "object" == _typeof(c) && c; + e || d.data("bs.scrollspy", e = new b(this, f)), "string" == typeof c && e[c](); + }); + } + + b.VERSION = "3.3.5", b.DEFAULTS = { + offset: 10 + }, b.prototype.getScrollHeight = function () { + return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight); + }, b.prototype.refresh = function () { + var b = this, + c = "offset", + d = 0; + this.offsets = [], this.targets = [], this.scrollHeight = this.getScrollHeight(), a.isWindow(this.$scrollElement[0]) || (c = "position", d = this.$scrollElement.scrollTop()), this.$body.find(this.selector).map(function () { + var b = a(this), + e = b.data("target") || b.attr("href"), + f = /^#./.test(e) && a(e); + return f && f.length && f.is(":visible") && [[f[c]().top + d, e]] || null; + }).sort(function (a, b) { + return a[0] - b[0]; + }).each(function () { + b.offsets.push(this[0]), b.targets.push(this[1]); + }); + }, b.prototype.process = function () { + var a, + b = this.$scrollElement.scrollTop() + this.options.offset, + c = this.getScrollHeight(), + d = this.options.offset + c - this.$scrollElement.height(), + e = this.offsets, + f = this.targets, + g = this.activeTarget; + if (this.scrollHeight != c && this.refresh(), b >= d) return g != (a = f[f.length - 1]) && this.activate(a); + if (g && b < e[0]) return this.activeTarget = null, this.clear(); + + for (a = e.length; a--;) { + g != f[a] && b >= e[a] && (void 0 === e[a + 1] || b < e[a + 1]) && this.activate(f[a]); + } + }, b.prototype.activate = function (b) { + this.activeTarget = b, this.clear(); + var c = this.selector + '[data-target="' + b + '"],' + this.selector + '[href="' + b + '"]', + d = a(c).parents("li").addClass("active"); + d.parent(".dropdown-menu").length && (d = d.closest("li.dropdown").addClass("active")), d.trigger("activate.bs.scrollspy"); + }, b.prototype.clear = function () { + a(this.selector).parentsUntil(this.options.target, ".active").removeClass("active"); + }; + var d = a.fn.scrollspy; + a.fn.scrollspy = c, a.fn.scrollspy.Constructor = b, a.fn.scrollspy.noConflict = function () { + return a.fn.scrollspy = d, this; + }, a(window).on("load.bs.scrollspy.data-api", function () { + a('[data-spy="scroll"]').each(function () { + var b = a(this); + c.call(b, b.data()); + }); + }); +}(jQuery), +function (a) { + "use strict"; + + function b(b) { + return this.each(function () { + var d = a(this), + e = d.data("bs.tab"); + e || d.data("bs.tab", e = new c(this)), "string" == typeof b && e[b](); + }); + } + + var c = function c(b) { + this.element = a(b); + }; + + c.VERSION = "3.3.5", c.TRANSITION_DURATION = 150, c.prototype.show = function () { + var b = this.element, + c = b.closest("ul:not(.dropdown-menu)"), + d = b.data("target"); + + if (d || (d = b.attr("href"), d = d && d.replace(/.*(?=#[^\s]*$)/, "")), !b.parent("li").hasClass("active")) { + var e = c.find(".active:last a"), + f = a.Event("hide.bs.tab", { + relatedTarget: b[0] + }), + g = a.Event("show.bs.tab", { + relatedTarget: e[0] + }); + + if (e.trigger(f), b.trigger(g), !g.isDefaultPrevented() && !f.isDefaultPrevented()) { + var h = a(d); + this.activate(b.closest("li"), c), this.activate(h, h.parent(), function () { + e.trigger({ + type: "hidden.bs.tab", + relatedTarget: b[0] + }), b.trigger({ + type: "shown.bs.tab", + relatedTarget: e[0] + }); + }); + } + } + }, c.prototype.activate = function (b, d, e) { + function f() { + g.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded", !1), b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded", !0), h ? (b[0].offsetWidth, b.addClass("in")) : b.removeClass("fade"), b.parent(".dropdown-menu").length && b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded", !0), e && e(); + } + + var g = d.find("> .active"), + h = e && a.support.transition && (g.length && g.hasClass("fade") || !!d.find("> .fade").length); + g.length && h ? g.one("bsTransitionEnd", f).emulateTransitionEnd(c.TRANSITION_DURATION) : f(), g.removeClass("in"); + }; + var d = a.fn.tab; + a.fn.tab = b, a.fn.tab.Constructor = c, a.fn.tab.noConflict = function () { + return a.fn.tab = d, this; + }; + + var e = function e(c) { + c.preventDefault(), b.call(a(this), "show"); + }; + + a(document).on("click.bs.tab.data-api", '[data-toggle="tab"]', e).on("click.bs.tab.data-api", '[data-toggle="pill"]', e); +}(jQuery), +function (a) { + "use strict"; + + function b(b) { + return this.each(function () { + var d = a(this), + e = d.data("bs.affix"), + f = "object" == _typeof(b) && b; + e || d.data("bs.affix", e = new c(this, f)), "string" == typeof b && e[b](); + }); + } + + var c = function c(b, d) { + this.options = a.extend({}, c.DEFAULTS, d), this.$target = a(this.options.target).on("scroll.bs.affix.data-api", a.proxy(this.checkPosition, this)).on("click.bs.affix.data-api", a.proxy(this.checkPositionWithEventLoop, this)), this.$element = a(b), this.affixed = null, this.unpin = null, this.pinnedOffset = null, this.checkPosition(); + }; + + c.VERSION = "3.3.5", c.RESET = "affix affix-top affix-bottom", c.DEFAULTS = { + offset: 0, + target: window + }, c.prototype.getState = function (a, b, c, d) { + var e = this.$target.scrollTop(), + f = this.$element.offset(), + g = this.$target.height(); + if (null != c && "top" == this.affixed) return c > e ? "top" : !1; + if ("bottom" == this.affixed) return null != c ? e + this.unpin <= f.top ? !1 : "bottom" : a - d >= e + g ? !1 : "bottom"; + var h = null == this.affixed, + i = h ? e : f.top, + j = h ? g : b; + return null != c && c >= e ? "top" : null != d && i + j >= a - d ? "bottom" : !1; + }, c.prototype.getPinnedOffset = function () { + if (this.pinnedOffset) return this.pinnedOffset; + this.$element.removeClass(c.RESET).addClass("affix"); + var a = this.$target.scrollTop(), + b = this.$element.offset(); + return this.pinnedOffset = b.top - a; + }, c.prototype.checkPositionWithEventLoop = function () { + setTimeout(a.proxy(this.checkPosition, this), 1); + }, c.prototype.checkPosition = function () { + if (this.$element.is(":visible")) { + var b = this.$element.height(), + d = this.options.offset, + e = d.top, + f = d.bottom, + g = Math.max(a(document).height(), a(document.body).height()); + "object" != _typeof(d) && (f = e = d), "function" == typeof e && (e = d.top(this.$element)), "function" == typeof f && (f = d.bottom(this.$element)); + var h = this.getState(g, b, e, f); + + if (this.affixed != h) { + null != this.unpin && this.$element.css("top", ""); + var i = "affix" + (h ? "-" + h : ""), + j = a.Event(i + ".bs.affix"); + if (this.$element.trigger(j), j.isDefaultPrevented()) return; + this.affixed = h, this.unpin = "bottom" == h ? this.getPinnedOffset() : null, this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix", "affixed") + ".bs.affix"); + } + + "bottom" == h && this.$element.offset({ + top: g - b - f + }); + } + }; + var d = a.fn.affix; + a.fn.affix = b, a.fn.affix.Constructor = c, a.fn.affix.noConflict = function () { + return a.fn.affix = d, this; + }, a(window).on("load", function () { + a('[data-spy="affix"]').each(function () { + var c = a(this), + d = c.data(); + d.offset = d.offset || {}, null != d.offsetBottom && (d.offset.bottom = d.offsetBottom), null != d.offsetTop && (d.offset.top = d.offsetTop), b.call(c, d); + }); + }); +}(jQuery); \ No newline at end of file diff --git a/src/iris/ui/static/js/dist/handlebars-4.0.12.min.dev.js b/src/iris/ui/static/js/dist/handlebars-4.0.12.min.dev.js new file mode 100644 index 00000000..763cb03f --- /dev/null +++ b/src/iris/ui/static/js/dist/handlebars-4.0.12.min.dev.js @@ -0,0 +1,3271 @@ +"use strict"; + +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +/**! + + @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt Expat + handlebars v5.0.0-alpha.1 + +Copyright (C) 2011-2017 by Yehuda Katz + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +*/ +!function (a, b) { + "object" == (typeof exports === "undefined" ? "undefined" : _typeof(exports)) && "object" == (typeof module === "undefined" ? "undefined" : _typeof(module)) ? module.exports = b() : "function" == typeof define && define.amd ? define([], b) : "object" == (typeof exports === "undefined" ? "undefined" : _typeof(exports)) ? exports.Handlebars = b() : a.Handlebars = b(); +}(void 0, function () { + return function (a) { + function b(d) { + if (c[d]) return c[d].exports; + var e = c[d] = { + exports: {}, + id: d, + loaded: !1 + }; + return a[d].call(e.exports, e, e.exports, b), e.loaded = !0, e.exports; + } + + var c = {}; + return b.m = a, b.c = c, b.p = "", b(0); + }([function (a, b, c) { + "use strict"; + + function d(a) { + return a && a.__esModule ? a : { + "default": a + }; + } + + function e() { + var a = r(); + return a.compile = function (b, c) { + return k.compile(b, c, a); + }, a.precompile = function (b, c) { + return k.precompile(b, c, a); + }, a.AST = i["default"], a.Compiler = k.Compiler, a.JavaScriptCompiler = m["default"], a.Parser = j.parser, a.parse = j.parse, a; + } + + b.__esModule = !0; + var f = c(1), + g = d(f), + h = c(19), + i = d(h), + j = c(20), + k = c(25), + l = c(26), + m = d(l), + n = c(23), + o = d(n), + p = c(18), + q = d(p), + r = g["default"].create, + s = e(); + s.create = e, q["default"](s), s.Visitor = o["default"], s["default"] = s, b["default"] = s, a.exports = b["default"]; + }, function (a, b, c) { + "use strict"; + + function d(a) { + return a && a.__esModule ? a : { + "default": a + }; + } + + function e(a) { + if (a && a.__esModule) return a; + var b = {}; + if (null != a) for (var c in a) { + Object.prototype.hasOwnProperty.call(a, c) && (b[c] = a[c]); + } + return b["default"] = a, b; + } + + function f() { + var a = new h.HandlebarsEnvironment(); + return n.extend(a, h), a.SafeString = j["default"], a.Exception = l["default"], a.Utils = n, a.escapeExpression = n.escapeExpression, a.VM = p, a.template = function (b) { + return p.template(b, a); + }, a; + } + + b.__esModule = !0; + var g = c(2), + h = e(g), + i = c(16), + j = d(i), + k = c(4), + l = d(k), + m = c(3), + n = e(m), + o = c(17), + p = e(o), + q = c(18), + r = d(q), + s = f(); + s.create = f, r["default"](s), s["default"] = s, b["default"] = s, a.exports = b["default"]; + }, function (a, b, c) { + "use strict"; + + function d(a) { + return a && a.__esModule ? a : { + "default": a + }; + } + + function e(a, b, c) { + this.helpers = a || {}, this.partials = b || {}, this.decorators = c || {}, i.registerDefaultHelpers(this), j.registerDefaultDecorators(this); + } + + b.__esModule = !0, b.HandlebarsEnvironment = e; + var f = c(3), + g = c(4), + h = d(g), + i = c(5), + j = c(13), + k = c(15), + l = d(k), + m = "4.0.12"; + b.VERSION = m; + var n = 7; + b.COMPILER_REVISION = n; + var o = { + 1: "<= 1.0.rc.2", + 2: "== 1.0.0-rc.3", + 3: "== 1.0.0-rc.4", + 4: "== 1.x.x", + 5: "== 2.0.0-alpha.x", + 6: ">= 2.0.0-beta.1", + 7: ">= 4.0.0" + }; + b.REVISION_CHANGES = o; + var p = "[object Object]"; + e.prototype = { + constructor: e, + logger: l["default"], + log: l["default"].log, + registerHelper: function registerHelper(a, b) { + if (f.toString.call(a) === p) { + if (b) throw new h["default"]("Arg not supported with multiple helpers"); + f.extend(this.helpers, a); + } else this.helpers[a] = b; + }, + unregisterHelper: function unregisterHelper(a) { + delete this.helpers[a]; + }, + registerPartial: function registerPartial(a, b) { + if (f.toString.call(a) === p) f.extend(this.partials, a);else { + if ("undefined" == typeof b) throw new h["default"]('Attempting to register a partial called "' + a + '" as undefined'); + this.partials[a] = b; + } + }, + unregisterPartial: function unregisterPartial(a) { + delete this.partials[a]; + }, + registerDecorator: function registerDecorator(a, b) { + if (f.toString.call(a) === p) { + if (b) throw new h["default"]("Arg not supported with multiple decorators"); + f.extend(this.decorators, a); + } else this.decorators[a] = b; + }, + unregisterDecorator: function unregisterDecorator(a) { + delete this.decorators[a]; + } + }; + var q = l["default"].log; + b.log = q, b.createFrame = f.createFrame, b.logger = l["default"]; + }, function (a, b) { + "use strict"; + + function c(a) { + return i[a]; + } + + function d(a) { + for (var b = 1; b < arguments.length; b++) { + for (var c in arguments[b]) { + Object.prototype.hasOwnProperty.call(arguments[b], c) && (a[c] = arguments[b][c]); + } + } + + return a; + } + + function e(a, b) { + for (var c = 0, d = a.length; c < d; c++) { + if (a[c] === b) return c; + } + + return -1; + } + + function f(a) { + if ("string" != typeof a) { + if (a && a.toHTML) return a.toHTML(); + if (null == a) return ""; + if (!a) return a + ""; + a = "" + a; + } + + return k.test(a) ? a.replace(j, c) : a; + } + + function g(a) { + return !a && 0 !== a || !(!n(a) || 0 !== a.length); + } + + function h(a) { + var b = d({}, a); + return b._parent = a, b; + } + + b.__esModule = !0, b.extend = d, b.indexOf = e, b.escapeExpression = f, b.isEmpty = g, b.createFrame = h; + var i = { + "&": "&", + "<": "<", + ">": ">", + '"': """, + "'": "'", + "`": "`", + "=": "=" + }, + j = /[&<>"'`=]/g, + k = /[&<>"'`=]/, + l = Object.prototype.toString; + b.toString = l; + + var m = function m(a) { + return "function" == typeof a; + }; + + m(/x/) && (b.isFunction = m = function m(a) { + return "function" == typeof a && "[object Function]" === l.call(a); + }), b.isFunction = m; + + var n = Array.isArray || function (a) { + return !(!a || "object" != _typeof(a)) && "[object Array]" === l.call(a); + }; + + b.isArray = n; + }, function (a, b) { + "use strict"; + + function c(a, b) { + var e = b && b.loc, + f = void 0, + g = void 0; + e && (f = e.start.line, g = e.start.column, a += " - " + f + ":" + g); + + for (var h = Error.prototype.constructor.call(this, a), i = 0; i < d.length; i++) { + this[d[i]] = h[d[i]]; + } + + Error.captureStackTrace && Error.captureStackTrace(this, c); + + try { + e && (this.lineNumber = f, Object.defineProperty ? Object.defineProperty(this, "column", { + value: g, + enumerable: !0 + }) : this.column = g); + } catch (j) {} + } + + b.__esModule = !0; + var d = ["description", "fileName", "lineNumber", "message", "name", "number", "stack"]; + c.prototype = new Error(), b["default"] = c, a.exports = b["default"]; + }, function (a, b, c) { + "use strict"; + + function d(a) { + return a && a.__esModule ? a : { + "default": a + }; + } + + function e(a) { + g["default"](a), i["default"](a), k["default"](a), m["default"](a), o["default"](a), q["default"](a), s["default"](a); + } + + b.__esModule = !0, b.registerDefaultHelpers = e; + var f = c(6), + g = d(f), + h = c(7), + i = d(h), + j = c(8), + k = d(j), + l = c(9), + m = d(l), + n = c(10), + o = d(n), + p = c(11), + q = d(p), + r = c(12), + s = d(r); + }, function (a, b, c) { + "use strict"; + + b.__esModule = !0; + var d = c(3); + b["default"] = function (a) { + a.registerHelper("blockHelperMissing", function (b, c) { + var e = c.inverse, + f = c.fn; + return b === !0 ? f(this) : b === !1 || null == b ? e(this) : d.isArray(b) ? b.length > 0 ? a.helpers.each(b, c) : e(this) : f(b, c); + }); + }, a.exports = b["default"]; + }, function (a, b, c) { + "use strict"; + + function d(a) { + return a && a.__esModule ? a : { + "default": a + }; + } + + b.__esModule = !0; + var e = c(3), + f = c(4), + g = d(f); + b["default"] = function (a) { + a.registerHelper("each", function (a, b) { + function c(b, c, e) { + j && (j.key = b, j.index = c, j.first = 0 === c, j.last = !!e), i += d(a[b], { + data: j, + blockParams: [a[b], b] + }); + } + + if (!b) throw new g["default"]("Must pass iterator to #each"); + var d = b.fn, + f = b.inverse, + h = 0, + i = "", + j = void 0; + if (e.isFunction(a) && (a = a.call(this)), b.data && (j = e.createFrame(b.data)), a && "object" == _typeof(a)) if (e.isArray(a)) for (var k = a.length; h < k; h++) { + h in a && c(h, h, h === a.length - 1); + } else { + var l = void 0; + + for (var m in a) { + a.hasOwnProperty(m) && (void 0 !== l && c(l, h - 1), l = m, h++); + } + + void 0 !== l && c(l, h - 1, !0); + } + return 0 === h && (i = f(this)), i; + }); + }, a.exports = b["default"]; + }, function (a, b, c) { + "use strict"; + + function d(a) { + return a && a.__esModule ? a : { + "default": a + }; + } + + b.__esModule = !0; + var e = c(4), + f = d(e); + b["default"] = function (a) { + a.registerHelper("helperMissing", function () { + if (1 !== arguments.length) throw new f["default"]('Missing helper: "' + arguments[arguments.length - 1].name + '"'); + }); + }, a.exports = b["default"]; + }, function (a, b, c) { + "use strict"; + + b.__esModule = !0; + var d = c(3); + b["default"] = function (a) { + a.registerHelper("if", function (a, b) { + return d.isFunction(a) && (a = a.call(this)), !b.hash.includeZero && !a || d.isEmpty(a) ? b.inverse(this) : b.fn(this); + }), a.registerHelper("unless", function (b, c) { + return a.helpers["if"].call(this, b, { + fn: c.inverse, + inverse: c.fn, + hash: c.hash + }); + }); + }, a.exports = b["default"]; + }, function (a, b) { + "use strict"; + + b.__esModule = !0, b["default"] = function (a) { + a.registerHelper("log", function () { + for (var b = [void 0], c = arguments[arguments.length - 1], d = 0; d < arguments.length - 1; d++) { + b.push(arguments[d]); + } + + var e = 1; + null != c.hash.level ? e = c.hash.level : c.data && null != c.data.level && (e = c.data.level), b[0] = e, a.log.apply(a, b); + }); + }, a.exports = b["default"]; + }, function (a, b) { + "use strict"; + + b.__esModule = !0, b["default"] = function (a) { + a.registerHelper("lookup", function (a, b) { + return a && a[b]; + }); + }, a.exports = b["default"]; + }, function (a, b, c) { + "use strict"; + + b.__esModule = !0; + var d = c(3); + b["default"] = function (a) { + a.registerHelper("with", function (a, b) { + d.isFunction(a) && (a = a.call(this)); + var c = b.fn; + if (d.isEmpty(a)) return b.inverse(this); + var e = b.data; + return c(a, { + data: e, + blockParams: [a] + }); + }); + }, a.exports = b["default"]; + }, function (a, b, c) { + "use strict"; + + function d(a) { + return a && a.__esModule ? a : { + "default": a + }; + } + + function e(a) { + g["default"](a); + } + + b.__esModule = !0, b.registerDefaultDecorators = e; + var f = c(14), + g = d(f); + }, function (a, b, c) { + "use strict"; + + b.__esModule = !0; + var d = c(3); + b["default"] = function (a) { + a.registerDecorator("inline", function (a, b, c, e) { + var f = a; + return b.partials || (b.partials = {}, f = function f(e, _f) { + var g = c.partials; + c.partials = d.extend({}, g, b.partials); + var h = a(e, _f); + return c.partials = g, h; + }), b.partials[e.args[0]] = e.fn, f; + }); + }, a.exports = b["default"]; + }, function (a, b, c) { + "use strict"; + + b.__esModule = !0; + var d = c(3), + e = { + methodMap: ["debug", "info", "warn", "error"], + level: "info", + lookupLevel: function lookupLevel(a) { + if ("string" == typeof a) { + var b = d.indexOf(e.methodMap, a.toLowerCase()); + a = b >= 0 ? b : parseInt(a, 10); + } + + return a; + }, + log: function log(a) { + if (a = e.lookupLevel(a), "undefined" != typeof console && e.lookupLevel(e.level) <= a) { + var b = e.methodMap[a]; + console[b] || (b = "log"); + + for (var c = arguments.length, d = Array(c > 1 ? c - 1 : 0), f = 1; f < c; f++) { + d[f - 1] = arguments[f]; + } + + console[b].apply(console, d); + } + } + }; + b["default"] = e, a.exports = b["default"]; + }, function (a, b) { + "use strict"; + + function c(a) { + this.string = a; + } + + b.__esModule = !0, c.prototype.toString = c.prototype.toHTML = function () { + return "" + this.string; + }, b["default"] = c, a.exports = b["default"]; + }, function (a, b, c) { + "use strict"; + + function d(a) { + return a && a.__esModule ? a : { + "default": a + }; + } + + function e(a) { + if (a && a.__esModule) return a; + var b = {}; + if (null != a) for (var c in a) { + Object.prototype.hasOwnProperty.call(a, c) && (b[c] = a[c]); + } + return b["default"] = a, b; + } + + function f(a) { + var b = a && a[0] || 1, + c = r.COMPILER_REVISION; + + if (b !== c) { + if (b < c) { + var d = r.REVISION_CHANGES[c], + e = r.REVISION_CHANGES[b]; + throw new q["default"]("Template was precompiled with an older version of Handlebars than the current runtime. Please update your precompiler to a newer version (" + d + ") or downgrade your runtime to an older version (" + e + ")."); + } + + throw new q["default"]("Template was precompiled with a newer version of Handlebars than the current runtime. Please update your runtime to a newer version (" + a[1] + ")."); + } + } + + function g(a, b) { + function c(c, d, e) { + e.hash && (d = o.extend({}, d, e.hash)), c = b.VM.resolvePartial.call(this, c, d, e); + var f = b.VM.invokePartial.call(this, c, d, e); + + if (null == f && b.compile && (e.partials[e.name] = b.compile(c, a.compilerOptions, b), f = e.partials[e.name](d, e)), null != f) { + if (e.indent) { + for (var g = f.split("\n"), h = 0, i = g.length; h < i && (g[h] || h + 1 !== i); h++) { + g[h] = e.indent + g[h]; + } + + f = g.join("\n"); + } + + return f; + } + + throw new q["default"]("The partial " + e.name + " could not be compiled when running in runtime-only mode"); + } + + function d(b) { + function c(b) { + return "" + a.main(f, b, f.helpers, f.partials, g, i, h); + } + + var d = arguments.length <= 1 || void 0 === arguments[1] ? {} : arguments[1], + g = d.data; + e(d), !d.partial && a.useData && (g = l(b, g)); + var h = void 0, + i = a.useBlockParams ? [] : void 0; + return a.useDepths && (h = d.depths ? b != d.depths[0] ? [b].concat(d.depths) : d.depths : [b]), (c = m(a.main, c, f, d.depths || [], g, i))(b, d); + } + + function e(c) { + c.partial ? (f.helpers = c.helpers, f.partials = c.partials, f.decorators = c.decorators) : (f.helpers = f.merge(c.helpers, b.helpers), a.usePartial && (f.partials = f.merge(c.partials, b.partials)), (a.usePartial || a.useDecorators) && (f.decorators = f.merge(c.decorators, b.decorators))); + } + + if (!b) throw new q["default"]("No environment passed to template"); + if (!a || !a.main) throw new q["default"]("Unknown template object: " + _typeof(a)); + a.main.decorator = a.main_d, b.VM.checkRevision(a.compiler); + var f = { + strict: function strict(a, b) { + if (!(b in a)) throw new q["default"]('"' + b + '" not defined in ' + a); + return a[b]; + }, + lookup: function lookup(a, b) { + for (var c = a.length, d = 0; d < c; d++) { + if (a[d] && null != a[d][b]) return a[d][b]; + } + }, + lambda: function lambda(a, b) { + return "function" == typeof a ? a.call(b) : a; + }, + escapeExpression: o.escapeExpression, + invokePartial: c, + fn: function fn(b) { + var c = a[b]; + return c.decorator = a[b + "_d"], c; + }, + programs: [], + program: function program(a, b, c, d, e) { + var f = this.programs[a], + g = this.fn(a); + return b || e || d || c ? f = h(this, a, g, b, c, d, e) : f || (f = this.programs[a] = h(this, a, g)), f; + }, + data: function data(a, b) { + for (; a && b--;) { + a = a._parent; + } + + return a; + }, + merge: function merge(a, b) { + var c = a || b; + return a && b && a !== b && (c = o.extend({}, b, a)), c; + }, + nullContext: Object.seal({}), + noop: b.VM.noop, + compilerInfo: a.compiler + }; + return d.isTop = !0, d; + } + + function h(a, b, c, d, e, f, g) { + function h(b) { + var e = arguments.length <= 1 || void 0 === arguments[1] ? {} : arguments[1], + h = g; + return !g || b == g[0] || b === a.nullContext && null === g[0] || (h = [b].concat(g)), c(a, b, a.helpers, a.partials, e.data || d, f && [e.blockParams].concat(f), h); + } + + return h = m(c, h, a, g, d, f), h.program = b, h.depth = g ? g.length : 0, h.blockParams = e || 0, h; + } + + function i(a, b, c) { + return a ? a.call || c.name || (c.name = a, a = c.partials[a]) : a = "@partial-block" === c.name ? c.data["partial-block"] : c.partials[c.name], a; + } + + function j(a, b, c) { + var d = c.data && c.data["partial-block"]; + c.partial = !0; + var e = void 0; + if (c.fn && c.fn !== k && !function () { + c.data = r.createFrame(c.data); + var a = c.fn; + e = c.data["partial-block"] = function (b) { + var c = arguments.length <= 1 || void 0 === arguments[1] ? {} : arguments[1]; + return c.data = r.createFrame(c.data), c.data["partial-block"] = d, a(b, c); + }, a.partials && (c.partials = o.extend({}, c.partials, a.partials)); + }(), void 0 === a && e && (a = e), void 0 === a) throw new q["default"]("The partial " + c.name + " could not be found"); + if (a instanceof Function) return a(b, c); + } + + function k() { + return ""; + } + + function l(a, b) { + return b && "root" in b || (b = b ? r.createFrame(b) : {}, b.root = a), b; + } + + function m(a, b, c, d, e, f) { + if (a.decorator) { + var g = {}; + b = a.decorator(b, g, c, d && d[0], e, f, d), o.extend(b, g); + } + + return b; + } + + b.__esModule = !0, b.checkRevision = f, b.template = g, b.wrapProgram = h, b.resolvePartial = i, b.invokePartial = j, b.noop = k; + var n = c(3), + o = e(n), + p = c(4), + q = d(p), + r = c(2); + }, function (a, b) { + (function (c) { + "use strict"; + + b.__esModule = !0, b["default"] = function (a) { + var b = "undefined" != typeof c ? c : window, + d = b.Handlebars; + + a.noConflict = function () { + return b.Handlebars === a && (b.Handlebars = d), a; + }; + }, a.exports = b["default"]; + }).call(b, function () { + return this; + }()); + }, function (a, b) { + "use strict"; + + b.__esModule = !0; + var c = { + helpers: { + helperExpression: function helperExpression(a) { + return "SubExpression" === a.type || ("MustacheStatement" === a.type || "BlockStatement" === a.type) && !!(a.params && a.params.length || a.hash); + }, + scopedId: function scopedId(a) { + return /^\.|this\b/.test(a.original); + }, + simpleId: function simpleId(a) { + return 1 === a.parts.length && !c.helpers.scopedId(a) && !a.depth; + } + } + }; + b["default"] = c, a.exports = b["default"]; + }, function (a, b, c) { + "use strict"; + + function d(a) { + if (a && a.__esModule) return a; + var b = {}; + if (null != a) for (var c in a) { + Object.prototype.hasOwnProperty.call(a, c) && (b[c] = a[c]); + } + return b["default"] = a, b; + } + + function e(a) { + return a && a.__esModule ? a : { + "default": a + }; + } + + function f(a, b) { + if ("Program" === a.type) return a; + h["default"].yy = n, n.locInfo = function (a) { + return new n.SourceLocation(b && b.srcName, a); + }; + var c = new j["default"](b); + return c.accept(h["default"].parse(a)); + } + + b.__esModule = !0, b.parse = f; + var g = c(21), + h = e(g), + i = c(22), + j = e(i), + k = c(24), + l = d(k), + m = c(3); + b.parser = h["default"]; + var n = {}; + m.extend(n, l); + }, function (a, b) { + "use strict"; + + b.__esModule = !0; + + var c = function () { + function a() { + this.yy = {}; + } + + var b = function b(a, _b, c, d) { + for (c = c || {}, d = a.length; d--; c[a[d]] = _b) { + ; + } + + return c; + }, + c = [2, 46], + d = [1, 20], + e = [5, 14, 15, 19, 29, 34, 39, 44, 47, 48, 51, 55, 60], + f = [1, 35], + g = [1, 28], + h = [1, 29], + i = [1, 30], + j = [1, 31], + k = [1, 32], + l = [1, 34], + m = [14, 15, 19, 29, 34, 39, 44, 47, 48, 51, 55, 60], + n = [14, 15, 19, 29, 34, 44, 47, 48, 51, 55, 60], + o = [1, 44], + p = [14, 15, 19, 29, 34, 47, 48, 51, 55, 60], + q = [33, 65, 72, 80, 81, 82, 83, 84, 85], + r = [23, 33, 54, 65, 68, 72, 75, 80, 81, 82, 83, 84, 85], + s = [1, 51], + t = [23, 33, 54, 65, 68, 72, 75, 80, 81, 82, 83, 84, 85, 87], + u = [2, 45], + v = [54, 65, 72, 80, 81, 82, 83, 84, 85], + w = [1, 58], + x = [1, 59], + y = [15, 18], + z = [1, 67], + A = [33, 65, 72, 75, 80, 81, 82, 83, 84, 85], + B = [23, 65, 72, 80, 81, 82, 83, 84, 85], + C = [1, 79], + D = [65, 68, 72, 80, 81, 82, 83, 84, 85], + E = [33, 75], + F = [23, 33, 54, 68, 72, 75], + G = [1, 109], + H = [1, 121], + I = [72, 77], + J = { + trace: function trace() {}, + yy: {}, + symbols_: { + error: 2, + root: 3, + program: 4, + EOF: 5, + program_repetition0: 6, + statement: 7, + mustache: 8, + block: 9, + rawBlock: 10, + partial: 11, + partialBlock: 12, + content: 13, + COMMENT: 14, + CONTENT: 15, + openRawBlock: 16, + rawBlock_repetition_plus0: 17, + END_RAW_BLOCK: 18, + OPEN_RAW_BLOCK: 19, + helperName: 20, + openRawBlock_repetition0: 21, + openRawBlock_option0: 22, + CLOSE_RAW_BLOCK: 23, + openBlock: 24, + block_option0: 25, + closeBlock: 26, + openInverse: 27, + block_option1: 28, + OPEN_BLOCK: 29, + openBlock_repetition0: 30, + openBlock_option0: 31, + openBlock_option1: 32, + CLOSE: 33, + OPEN_INVERSE: 34, + openInverse_repetition0: 35, + openInverse_option0: 36, + openInverse_option1: 37, + openInverseChain: 38, + OPEN_INVERSE_CHAIN: 39, + openInverseChain_repetition0: 40, + openInverseChain_option0: 41, + openInverseChain_option1: 42, + inverseAndProgram: 43, + INVERSE: 44, + inverseChain: 45, + inverseChain_option0: 46, + OPEN_ENDBLOCK: 47, + OPEN: 48, + mustache_repetition0: 49, + mustache_option0: 50, + OPEN_UNESCAPED: 51, + mustache_repetition1: 52, + mustache_option1: 53, + CLOSE_UNESCAPED: 54, + OPEN_PARTIAL: 55, + partialName: 56, + partial_repetition0: 57, + partial_option0: 58, + openPartialBlock: 59, + OPEN_PARTIAL_BLOCK: 60, + openPartialBlock_repetition0: 61, + openPartialBlock_option0: 62, + param: 63, + sexpr: 64, + OPEN_SEXPR: 65, + sexpr_repetition0: 66, + sexpr_option0: 67, + CLOSE_SEXPR: 68, + hash: 69, + hash_repetition_plus0: 70, + hashSegment: 71, + ID: 72, + EQUALS: 73, + blockParams: 74, + OPEN_BLOCK_PARAMS: 75, + blockParams_repetition_plus0: 76, + CLOSE_BLOCK_PARAMS: 77, + path: 78, + dataName: 79, + STRING: 80, + NUMBER: 81, + BOOLEAN: 82, + UNDEFINED: 83, + NULL: 84, + DATA: 85, + pathSegments: 86, + SEP: 87, + $accept: 0, + $end: 1 + }, + terminals_: { + 2: "error", + 5: "EOF", + 14: "COMMENT", + 15: "CONTENT", + 18: "END_RAW_BLOCK", + 19: "OPEN_RAW_BLOCK", + 23: "CLOSE_RAW_BLOCK", + 29: "OPEN_BLOCK", + 33: "CLOSE", + 34: "OPEN_INVERSE", + 39: "OPEN_INVERSE_CHAIN", + 44: "INVERSE", + 47: "OPEN_ENDBLOCK", + 48: "OPEN", + 51: "OPEN_UNESCAPED", + 54: "CLOSE_UNESCAPED", + 55: "OPEN_PARTIAL", + 60: "OPEN_PARTIAL_BLOCK", + 65: "OPEN_SEXPR", + 68: "CLOSE_SEXPR", + 72: "ID", + 73: "EQUALS", + 75: "OPEN_BLOCK_PARAMS", + 77: "CLOSE_BLOCK_PARAMS", + 80: "STRING", + 81: "NUMBER", + 82: "BOOLEAN", + 83: "UNDEFINED", + 84: "NULL", + 85: "DATA", + 87: "SEP" + }, + productions_: [0, [3, 2], [4, 1], [7, 1], [7, 1], [7, 1], [7, 1], [7, 1], [7, 1], [7, 1], [13, 1], [10, 3], [16, 5], [9, 4], [9, 4], [24, 6], [27, 6], [38, 6], [43, 2], [45, 3], [45, 1], [26, 3], [8, 5], [8, 5], [11, 5], [12, 3], [59, 5], [63, 1], [63, 1], [64, 5], [69, 1], [71, 3], [74, 3], [20, 1], [20, 1], [20, 1], [20, 1], [20, 1], [20, 1], [20, 1], [56, 1], [56, 1], [79, 2], [78, 1], [86, 3], [86, 1], [6, 0], [6, 2], [17, 1], [17, 2], [21, 0], [21, 2], [22, 0], [22, 1], [25, 0], [25, 1], [28, 0], [28, 1], [30, 0], [30, 2], [31, 0], [31, 1], [32, 0], [32, 1], [35, 0], [35, 2], [36, 0], [36, 1], [37, 0], [37, 1], [40, 0], [40, 2], [41, 0], [41, 1], [42, 0], [42, 1], [46, 0], [46, 1], [49, 0], [49, 2], [50, 0], [50, 1], [52, 0], [52, 2], [53, 0], [53, 1], [57, 0], [57, 2], [58, 0], [58, 1], [61, 0], [61, 2], [62, 0], [62, 1], [66, 0], [66, 2], [67, 0], [67, 1], [70, 1], [70, 2], [76, 1], [76, 2]], + performAction: function performAction(a, b, c, d, e, f, g) { + var h = f.length - 1; + + switch (e) { + case 1: + return f[h - 1]; + + case 2: + this.$ = d.prepareProgram(f[h]); + break; + + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 20: + case 27: + case 28: + case 33: + case 34: + case 40: + case 41: + this.$ = f[h]; + break; + + case 9: + this.$ = { + type: "CommentStatement", + value: d.stripComment(f[h]), + strip: d.stripFlags(f[h], f[h]), + loc: d.locInfo(this._$) + }; + break; + + case 10: + this.$ = { + type: "ContentStatement", + original: f[h], + value: f[h], + loc: d.locInfo(this._$) + }; + break; + + case 11: + this.$ = d.prepareRawBlock(f[h - 2], f[h - 1], f[h], this._$); + break; + + case 12: + this.$ = { + path: f[h - 3], + params: f[h - 2], + hash: f[h - 1] + }; + break; + + case 13: + this.$ = d.prepareBlock(f[h - 3], f[h - 2], f[h - 1], f[h], !1, this._$); + break; + + case 14: + this.$ = d.prepareBlock(f[h - 3], f[h - 2], f[h - 1], f[h], !0, this._$); + break; + + case 15: + this.$ = { + open: f[h - 5], + path: f[h - 4], + params: f[h - 3], + hash: f[h - 2], + blockParams: f[h - 1], + strip: d.stripFlags(f[h - 5], f[h]) + }; + break; + + case 16: + case 17: + this.$ = { + path: f[h - 4], + params: f[h - 3], + hash: f[h - 2], + blockParams: f[h - 1], + strip: d.stripFlags(f[h - 5], f[h]) + }; + break; + + case 18: + this.$ = { + strip: d.stripFlags(f[h - 1], f[h - 1]), + program: f[h] + }; + break; + + case 19: + var i = d.prepareBlock(f[h - 2], f[h - 1], f[h], f[h], !1, this._$), + j = d.prepareProgram([i], f[h - 1].loc); + j.chained = !0, this.$ = { + strip: f[h - 2].strip, + program: j, + chain: !0 + }; + break; + + case 21: + this.$ = { + path: f[h - 1], + strip: d.stripFlags(f[h - 2], f[h]) + }; + break; + + case 22: + case 23: + this.$ = d.prepareMustache(f[h - 3], f[h - 2], f[h - 1], f[h - 4], d.stripFlags(f[h - 4], f[h]), this._$); + break; + + case 24: + this.$ = { + type: "PartialStatement", + name: f[h - 3], + params: f[h - 2], + hash: f[h - 1], + indent: "", + strip: d.stripFlags(f[h - 4], f[h]), + loc: d.locInfo(this._$) + }; + break; + + case 25: + this.$ = d.preparePartialBlock(f[h - 2], f[h - 1], f[h], this._$); + break; + + case 26: + this.$ = { + path: f[h - 3], + params: f[h - 2], + hash: f[h - 1], + strip: d.stripFlags(f[h - 4], f[h]) + }; + break; + + case 29: + this.$ = { + type: "SubExpression", + path: f[h - 3], + params: f[h - 2], + hash: f[h - 1], + loc: d.locInfo(this._$) + }; + break; + + case 30: + this.$ = { + type: "Hash", + pairs: f[h], + loc: d.locInfo(this._$) + }; + break; + + case 31: + this.$ = { + type: "HashPair", + key: d.id(f[h - 2]), + value: f[h], + loc: d.locInfo(this._$) + }; + break; + + case 32: + this.$ = d.id(f[h - 1]); + break; + + case 35: + this.$ = { + type: "StringLiteral", + value: f[h], + original: f[h], + loc: d.locInfo(this._$) + }; + break; + + case 36: + this.$ = { + type: "NumberLiteral", + value: Number(f[h]), + original: Number(f[h]), + loc: d.locInfo(this._$) + }; + break; + + case 37: + this.$ = { + type: "BooleanLiteral", + value: "true" === f[h], + original: "true" === f[h], + loc: d.locInfo(this._$) + }; + break; + + case 38: + this.$ = { + type: "UndefinedLiteral", + original: void 0, + value: void 0, + loc: d.locInfo(this._$) + }; + break; + + case 39: + this.$ = { + type: "NullLiteral", + original: null, + value: null, + loc: d.locInfo(this._$) + }; + break; + + case 42: + this.$ = d.preparePath(!0, f[h], this._$); + break; + + case 43: + this.$ = d.preparePath(!1, f[h], this._$); + break; + + case 44: + f[h - 2].push({ + part: d.id(f[h]), + original: f[h], + separator: f[h - 1] + }), this.$ = f[h - 2]; + break; + + case 45: + this.$ = [{ + part: d.id(f[h]), + original: f[h] + }]; + break; + + case 46: + case 50: + case 58: + case 64: + case 70: + case 78: + case 82: + case 86: + case 90: + case 94: + this.$ = []; + break; + + case 47: + case 49: + case 51: + case 59: + case 65: + case 71: + case 79: + case 83: + case 87: + case 91: + case 95: + case 99: + case 101: + f[h - 1].push(f[h]); + break; + + case 48: + case 98: + case 100: + this.$ = [f[h]]; + } + }, + table: [b([5, 14, 15, 19, 29, 34, 48, 51, 55, 60], c, { + 3: 1, + 4: 2, + 6: 3 + }), { + 1: [3] + }, { + 5: [1, 4] + }, b([5, 39, 44, 47], [2, 2], { + 7: 5, + 8: 6, + 9: 7, + 10: 8, + 11: 9, + 12: 10, + 13: 11, + 24: 15, + 27: 16, + 16: 17, + 59: 19, + 14: [1, 12], + 15: d, + 19: [1, 23], + 29: [1, 21], + 34: [1, 22], + 48: [1, 13], + 51: [1, 14], + 55: [1, 18], + 60: [1, 24] + }), { + 1: [2, 1] + }, b(e, [2, 47]), b(e, [2, 3]), b(e, [2, 4]), b(e, [2, 5]), b(e, [2, 6]), b(e, [2, 7]), b(e, [2, 8]), b(e, [2, 9]), { + 20: 25, + 72: f, + 78: 26, + 79: 27, + 80: g, + 81: h, + 82: i, + 83: j, + 84: k, + 85: l, + 86: 33 + }, { + 20: 36, + 72: f, + 78: 26, + 79: 27, + 80: g, + 81: h, + 82: i, + 83: j, + 84: k, + 85: l, + 86: 33 + }, b(m, c, { + 6: 3, + 4: 37 + }), b(n, c, { + 6: 3, + 4: 38 + }), { + 13: 40, + 15: d, + 17: 39 + }, { + 20: 42, + 56: 41, + 64: 43, + 65: o, + 72: f, + 78: 26, + 79: 27, + 80: g, + 81: h, + 82: i, + 83: j, + 84: k, + 85: l, + 86: 33 + }, b(p, c, { + 6: 3, + 4: 45 + }), b([5, 14, 15, 18, 19, 29, 34, 39, 44, 47, 48, 51, 55, 60], [2, 10]), { + 20: 46, + 72: f, + 78: 26, + 79: 27, + 80: g, + 81: h, + 82: i, + 83: j, + 84: k, + 85: l, + 86: 33 + }, { + 20: 47, + 72: f, + 78: 26, + 79: 27, + 80: g, + 81: h, + 82: i, + 83: j, + 84: k, + 85: l, + 86: 33 + }, { + 20: 48, + 72: f, + 78: 26, + 79: 27, + 80: g, + 81: h, + 82: i, + 83: j, + 84: k, + 85: l, + 86: 33 + }, { + 20: 42, + 56: 49, + 64: 43, + 65: o, + 72: f, + 78: 26, + 79: 27, + 80: g, + 81: h, + 82: i, + 83: j, + 84: k, + 85: l, + 86: 33 + }, b(q, [2, 78], { + 49: 50 + }), b(r, [2, 33]), b(r, [2, 34]), b(r, [2, 35]), b(r, [2, 36]), b(r, [2, 37]), b(r, [2, 38]), b(r, [2, 39]), b(r, [2, 43], { + 87: s + }), { + 72: f, + 86: 52 + }, b(t, u), b(v, [2, 82], { + 52: 53 + }), { + 25: 54, + 38: 56, + 39: w, + 43: 57, + 44: x, + 45: 55, + 47: [2, 54] + }, { + 28: 60, + 43: 61, + 44: x, + 47: [2, 56] + }, { + 13: 63, + 15: d, + 18: [1, 62] + }, b(y, [2, 48]), b(q, [2, 86], { + 57: 64 + }), b(q, [2, 40]), b(q, [2, 41]), { + 20: 65, + 72: f, + 78: 26, + 79: 27, + 80: g, + 81: h, + 82: i, + 83: j, + 84: k, + 85: l, + 86: 33 + }, { + 26: 66, + 47: z + }, b(A, [2, 58], { + 30: 68 + }), b(A, [2, 64], { + 35: 69 + }), b(B, [2, 50], { + 21: 70 + }), b(q, [2, 90], { + 61: 71 + }), { + 20: 75, + 33: [2, 80], + 50: 72, + 63: 73, + 64: 76, + 65: o, + 69: 74, + 70: 77, + 71: 78, + 72: C, + 78: 26, + 79: 27, + 80: g, + 81: h, + 82: i, + 83: j, + 84: k, + 85: l, + 86: 33 + }, { + 72: [1, 80] + }, b(r, [2, 42], { + 87: s + }), { + 20: 75, + 53: 81, + 54: [2, 84], + 63: 82, + 64: 76, + 65: o, + 69: 83, + 70: 77, + 71: 78, + 72: C, + 78: 26, + 79: 27, + 80: g, + 81: h, + 82: i, + 83: j, + 84: k, + 85: l, + 86: 33 + }, { + 26: 84, + 47: z + }, { + 47: [2, 55] + }, b(m, c, { + 6: 3, + 4: 85 + }), { + 47: [2, 20] + }, { + 20: 86, + 72: f, + 78: 26, + 79: 27, + 80: g, + 81: h, + 82: i, + 83: j, + 84: k, + 85: l, + 86: 33 + }, b(p, c, { + 6: 3, + 4: 87 + }), { + 26: 88, + 47: z + }, { + 47: [2, 57] + }, b(e, [2, 11]), b(y, [2, 49]), { + 20: 75, + 33: [2, 88], + 58: 89, + 63: 90, + 64: 76, + 65: o, + 69: 91, + 70: 77, + 71: 78, + 72: C, + 78: 26, + 79: 27, + 80: g, + 81: h, + 82: i, + 83: j, + 84: k, + 85: l, + 86: 33 + }, b(D, [2, 94], { + 66: 92 + }), b(e, [2, 25]), { + 20: 93, + 72: f, + 78: 26, + 79: 27, + 80: g, + 81: h, + 82: i, + 83: j, + 84: k, + 85: l, + 86: 33 + }, b(E, [2, 60], { + 78: 26, + 79: 27, + 86: 33, + 20: 75, + 64: 76, + 70: 77, + 71: 78, + 31: 94, + 63: 95, + 69: 96, + 65: o, + 72: C, + 80: g, + 81: h, + 82: i, + 83: j, + 84: k, + 85: l + }), b(E, [2, 66], { + 78: 26, + 79: 27, + 86: 33, + 20: 75, + 64: 76, + 70: 77, + 71: 78, + 36: 97, + 63: 98, + 69: 99, + 65: o, + 72: C, + 80: g, + 81: h, + 82: i, + 83: j, + 84: k, + 85: l + }), { + 20: 75, + 22: 100, + 23: [2, 52], + 63: 101, + 64: 76, + 65: o, + 69: 102, + 70: 77, + 71: 78, + 72: C, + 78: 26, + 79: 27, + 80: g, + 81: h, + 82: i, + 83: j, + 84: k, + 85: l, + 86: 33 + }, { + 20: 75, + 33: [2, 92], + 62: 103, + 63: 104, + 64: 76, + 65: o, + 69: 105, + 70: 77, + 71: 78, + 72: C, + 78: 26, + 79: 27, + 80: g, + 81: h, + 82: i, + 83: j, + 84: k, + 85: l, + 86: 33 + }, { + 33: [1, 106] + }, b(q, [2, 79]), { + 33: [2, 81] + }, b(r, [2, 27]), b(r, [2, 28]), b([23, 33, 54, 68, 75], [2, 30], { + 71: 107, + 72: [1, 108] + }), b(F, [2, 98]), b(t, u, { + 73: G + }), b(t, [2, 44]), { + 54: [1, 110] + }, b(v, [2, 83]), { + 54: [2, 85] + }, b(e, [2, 13]), { + 38: 56, + 39: w, + 43: 57, + 44: x, + 45: 112, + 46: 111, + 47: [2, 76] + }, b(A, [2, 70], { + 40: 113 + }), { + 47: [2, 18] + }, b(e, [2, 14]), { + 33: [1, 114] + }, b(q, [2, 87]), { + 33: [2, 89] + }, { + 20: 75, + 63: 116, + 64: 76, + 65: o, + 67: 115, + 68: [2, 96], + 69: 117, + 70: 77, + 71: 78, + 72: C, + 78: 26, + 79: 27, + 80: g, + 81: h, + 82: i, + 83: j, + 84: k, + 85: l, + 86: 33 + }, { + 33: [1, 118] + }, { + 32: 119, + 33: [2, 62], + 74: 120, + 75: H + }, b(A, [2, 59]), b(E, [2, 61]), { + 33: [2, 68], + 37: 122, + 74: 123, + 75: H + }, b(A, [2, 65]), b(E, [2, 67]), { + 23: [1, 124] + }, b(B, [2, 51]), { + 23: [2, 53] + }, { + 33: [1, 125] + }, b(q, [2, 91]), { + 33: [2, 93] + }, b(e, [2, 22]), b(F, [2, 99]), { + 73: G + }, { + 20: 75, + 63: 126, + 64: 76, + 65: o, + 72: f, + 78: 26, + 79: 27, + 80: g, + 81: h, + 82: i, + 83: j, + 84: k, + 85: l, + 86: 33 + }, b(e, [2, 23]), { + 47: [2, 19] + }, { + 47: [2, 77] + }, b(E, [2, 72], { + 78: 26, + 79: 27, + 86: 33, + 20: 75, + 64: 76, + 70: 77, + 71: 78, + 41: 127, + 63: 128, + 69: 129, + 65: o, + 72: C, + 80: g, + 81: h, + 82: i, + 83: j, + 84: k, + 85: l + }), b(e, [2, 24]), { + 68: [1, 130] + }, b(D, [2, 95]), { + 68: [2, 97] + }, b(e, [2, 21]), { + 33: [1, 131] + }, { + 33: [2, 63] + }, { + 72: [1, 133], + 76: 132 + }, { + 33: [1, 134] + }, { + 33: [2, 69] + }, { + 15: [2, 12] + }, b(p, [2, 26]), b(F, [2, 31]), { + 33: [2, 74], + 42: 135, + 74: 136, + 75: H + }, b(A, [2, 71]), b(E, [2, 73]), b(r, [2, 29]), b(m, [2, 15]), { + 72: [1, 138], + 77: [1, 137] + }, b(I, [2, 100]), b(n, [2, 16]), { + 33: [1, 139] + }, { + 33: [2, 75] + }, { + 33: [2, 32] + }, b(I, [2, 101]), b(m, [2, 17])], + defaultActions: { + 4: [2, 1], + 55: [2, 55], + 57: [2, 20], + 61: [2, 57], + 74: [2, 81], + 83: [2, 85], + 87: [2, 18], + 91: [2, 89], + 102: [2, 53], + 105: [2, 93], + 111: [2, 19], + 112: [2, 77], + 117: [2, 97], + 120: [2, 63], + 123: [2, 69], + 124: [2, 12], + 136: [2, 75], + 137: [2, 32] + }, + parseError: function parseError(a, b) { + if (!b.recoverable) { + var c = function c(a, b) { + this.message = a, this.hash = b; + }; + + throw c.prototype = new Error(), new c(a, b); + } + + this.trace(a); + }, + parse: function parse(a) { + var b = this, + c = [0], + d = [null], + e = [], + f = this.table, + g = "", + h = 0, + i = 0, + j = 0, + k = 2, + l = 1, + m = e.slice.call(arguments, 1), + n = Object.create(this.lexer), + o = { + yy: {} + }; + + for (var p in this.yy) { + Object.prototype.hasOwnProperty.call(this.yy, p) && (o.yy[p] = this.yy[p]); + } + + n.setInput(a, o.yy), o.yy.lexer = n, o.yy.parser = this, "undefined" == typeof n.yylloc && (n.yylloc = {}); + var q = n.yylloc; + e.push(q); + var r = n.options && n.options.ranges; + "function" == typeof o.yy.parseError ? this.parseError = o.yy.parseError : this.parseError = Object.getPrototypeOf(this).parseError; + + for (var s, t, u, v, w, x, y, z, A, B = function B() { + var a; + return a = n.lex() || l, "number" != typeof a && (a = b.symbols_[a] || a), a; + }, C = {};;) { + if (u = c[c.length - 1], this.defaultActions[u] ? v = this.defaultActions[u] : (null !== s && "undefined" != typeof s || (s = B()), v = f[u] && f[u][s]), "undefined" == typeof v || !v.length || !v[0]) { + var D = ""; + A = []; + + for (x in f[u]) { + this.terminals_[x] && x > k && A.push("'" + this.terminals_[x] + "'"); + } + + D = n.showPosition ? "Parse error on line " + (h + 1) + ":\n" + n.showPosition() + "\nExpecting " + A.join(", ") + ", got '" + (this.terminals_[s] || s) + "'" : "Parse error on line " + (h + 1) + ": Unexpected " + (s == l ? "end of input" : "'" + (this.terminals_[s] || s) + "'"), this.parseError(D, { + text: n.match, + token: this.terminals_[s] || s, + line: n.yylineno, + loc: q, + expected: A + }); + } + + if (v[0] instanceof Array && v.length > 1) throw new Error("Parse Error: multiple actions possible at state: " + u + ", token: " + s); + + switch (v[0]) { + case 1: + c.push(s), d.push(n.yytext), e.push(n.yylloc), c.push(v[1]), s = null, t ? (s = t, t = null) : (i = n.yyleng, g = n.yytext, h = n.yylineno, q = n.yylloc, j > 0 && j--); + break; + + case 2: + if (y = this.productions_[v[1]][1], C.$ = d[d.length - y], C._$ = { + first_line: e[e.length - (y || 1)].first_line, + last_line: e[e.length - 1].last_line, + first_column: e[e.length - (y || 1)].first_column, + last_column: e[e.length - 1].last_column + }, r && (C._$.range = [e[e.length - (y || 1)].range[0], e[e.length - 1].range[1]]), w = this.performAction.apply(C, [g, i, h, o.yy, v[1], d, e].concat(m)), "undefined" != typeof w) return w; + y && (c = c.slice(0, -1 * y * 2), d = d.slice(0, -1 * y), e = e.slice(0, -1 * y)), c.push(this.productions_[v[1]][0]), d.push(C.$), e.push(C._$), z = f[c[c.length - 2]][c[c.length - 1]], c.push(z); + break; + + case 3: + return !0; + } + } + + return !0; + } + }, + K = function () { + var a = { + EOF: 1, + parseError: function parseError(a, b) { + if (!this.yy.parser) throw new Error(a); + this.yy.parser.parseError(a, b); + }, + setInput: function setInput(a, b) { + return this.yy = b || this.yy || {}, this._input = a, this._more = this._backtrack = this.done = !1, this.yylineno = this.yyleng = 0, this.yytext = this.matched = this.match = "", this.conditionStack = ["INITIAL"], this.yylloc = { + first_line: 1, + first_column: 0, + last_line: 1, + last_column: 0 + }, this.options.ranges && (this.yylloc.range = [0, 0]), this.offset = 0, this; + }, + input: function input() { + var a = this._input[0]; + this.yytext += a, this.yyleng++, this.offset++, this.match += a, this.matched += a; + var b = a.match(/(?:\r\n?|\n).*/g); + return b ? (this.yylineno++, this.yylloc.last_line++) : this.yylloc.last_column++, this.options.ranges && this.yylloc.range[1]++, this._input = this._input.slice(1), a; + }, + unput: function unput(a) { + var b = a.length, + c = a.split(/(?:\r\n?|\n)/g); + this._input = a + this._input, this.yytext = this.yytext.substr(0, this.yytext.length - b), this.offset -= b; + var d = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1), this.matched = this.matched.substr(0, this.matched.length - 1), c.length - 1 && (this.yylineno -= c.length - 1); + var e = this.yylloc.range; + return this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: c ? (c.length === d.length ? this.yylloc.first_column : 0) + d[d.length - c.length].length - c[0].length : this.yylloc.first_column - b + }, this.options.ranges && (this.yylloc.range = [e[0], e[0] + this.yyleng - b]), this.yyleng = this.yytext.length, this; + }, + more: function more() { + return this._more = !0, this; + }, + reject: function reject() { + return this.options.backtrack_lexer ? (this._backtrack = !0, this) : this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + }, + less: function less(a) { + this.unput(this.match.slice(a)); + }, + pastInput: function pastInput() { + var a = this.matched.substr(0, this.matched.length - this.match.length); + return (a.length > 20 ? "..." : "") + a.substr(-20).replace(/\n/g, ""); + }, + upcomingInput: function upcomingInput() { + var a = this.match; + return a.length < 20 && (a += this._input.substr(0, 20 - a.length)), (a.substr(0, 20) + (a.length > 20 ? "..." : "")).replace(/\n/g, ""); + }, + showPosition: function showPosition() { + var a = this.pastInput(), + b = new Array(a.length + 1).join("-"); + return a + this.upcomingInput() + "\n" + b + "^"; + }, + test_match: function test_match(a, b) { + var c, d, e; + if (this.options.backtrack_lexer && (e = { + yylineno: this.yylineno, + yylloc: { + first_line: this.yylloc.first_line, + last_line: this.last_line, + first_column: this.yylloc.first_column, + last_column: this.yylloc.last_column + }, + yytext: this.yytext, + match: this.match, + matches: this.matches, + matched: this.matched, + yyleng: this.yyleng, + offset: this.offset, + _more: this._more, + _input: this._input, + yy: this.yy, + conditionStack: this.conditionStack.slice(0), + done: this.done + }, this.options.ranges && (e.yylloc.range = this.yylloc.range.slice(0))), d = a[0].match(/(?:\r\n?|\n).*/g), d && (this.yylineno += d.length), this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: d ? d[d.length - 1].length - d[d.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + a[0].length + }, this.yytext += a[0], this.match += a[0], this.matches = a, this.yyleng = this.yytext.length, this.options.ranges && (this.yylloc.range = [this.offset, this.offset += this.yyleng]), this._more = !1, this._backtrack = !1, this._input = this._input.slice(a[0].length), this.matched += a[0], c = this.performAction.call(this, this.yy, this, b, this.conditionStack[this.conditionStack.length - 1]), this.done && this._input && (this.done = !1), c) return c; + + if (this._backtrack) { + for (var f in e) { + this[f] = e[f]; + } + + return !1; + } + + return !1; + }, + next: function next() { + if (this.done) return this.EOF; + this._input || (this.done = !0); + var a, b, c, d; + this._more || (this.yytext = "", this.match = ""); + + for (var e = this._currentRules(), f = 0; f < e.length; f++) { + if (c = this._input.match(this.rules[e[f]]), c && (!b || c[0].length > b[0].length)) { + if (b = c, d = f, this.options.backtrack_lexer) { + if (a = this.test_match(c, e[f]), a !== !1) return a; + + if (this._backtrack) { + b = !1; + continue; + } + + return !1; + } + + if (!this.options.flex) break; + } + } + + return b ? (a = this.test_match(b, e[d]), a !== !1 && a) : "" === this._input ? this.EOF : this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + }, + lex: function lex() { + var a = this.next(); + return a ? a : this.lex(); + }, + begin: function begin(a) { + this.conditionStack.push(a); + }, + popState: function popState() { + var a = this.conditionStack.length - 1; + return a > 0 ? this.conditionStack.pop() : this.conditionStack[0]; + }, + _currentRules: function _currentRules() { + return this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1] ? this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules : this.conditions.INITIAL.rules; + }, + topState: function topState(a) { + return a = this.conditionStack.length - 1 - Math.abs(a || 0), a >= 0 ? this.conditionStack[a] : "INITIAL"; + }, + pushState: function pushState(a) { + this.begin(a); + }, + stateStackSize: function stateStackSize() { + return this.conditionStack.length; + }, + options: {}, + performAction: function performAction(a, b, c, d) { + function e(a, c) { + return b.yytext = b.yytext.substr(a, b.yyleng - c); + } + + switch (c) { + case 0: + if ("\\\\" === b.yytext.slice(-2) ? (e(0, 1), this.begin("mu")) : "\\" === b.yytext.slice(-1) ? (e(0, 1), this.begin("emu")) : this.begin("mu"), b.yytext) return 15; + break; + + case 1: + return 15; + + case 2: + return this.popState(), 15; + + case 3: + return this.begin("raw"), 15; + + case 4: + return this.popState(), "raw" === this.conditionStack[this.conditionStack.length - 1] ? 15 : (b.yytext = b.yytext.substr(5, b.yyleng - 9), 18); + + case 5: + return 15; + + case 6: + return this.popState(), 14; + + case 7: + return 65; + + case 8: + return 68; + + case 9: + return 19; + + case 10: + return this.popState(), this.begin("raw"), 23; + + case 11: + return 55; + + case 12: + return 60; + + case 13: + return 29; + + case 14: + return 47; + + case 15: + return this.popState(), 44; + + case 16: + return this.popState(), 44; + + case 17: + return 34; + + case 18: + return 39; + + case 19: + return 51; + + case 20: + return 48; + + case 21: + this.unput(b.yytext), this.popState(), this.begin("com"); + break; + + case 22: + return this.popState(), 14; + + case 23: + return 48; + + case 24: + return 73; + + case 25: + return 72; + + case 26: + return 72; + + case 27: + return 87; + + case 28: + break; + + case 29: + return this.popState(), 54; + + case 30: + return this.popState(), 33; + + case 31: + return b.yytext = e(1, 2).replace(/\\"/g, '"'), 80; + + case 32: + return b.yytext = e(1, 2).replace(/\\'/g, "'"), 80; + + case 33: + return 85; + + case 34: + return 82; + + case 35: + return 82; + + case 36: + return 83; + + case 37: + return 84; + + case 38: + return 81; + + case 39: + return 75; + + case 40: + return 77; + + case 41: + return 72; + + case 42: + return b.yytext = b.yytext.replace(/\\([\\\]])/g, "$1"), 72; + + case 43: + return "INVALID"; + + case 44: + return 5; + } + }, + rules: [/^(?:[^\x00]*?(?=(\{\{)))/, /^(?:[^\x00]+)/, /^(?:[^\x00]{2,}?(?=(\{\{|\\\{\{|\\\\\{\{|$)))/, /^(?:\{\{\{\{(?=[^\/]))/, /^(?:\{\{\{\{\/[^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=[=}\s\/.])\}\}\}\})/, /^(?:[^\x00]*?(?=(\{\{\{\{)))/, /^(?:[\s\S]*?--(~)?\}\})/, /^(?:\()/, /^(?:\))/, /^(?:\{\{\{\{)/, /^(?:\}\}\}\})/, /^(?:\{\{(~)?>)/, /^(?:\{\{(~)?#>)/, /^(?:\{\{(~)?#\*?)/, /^(?:\{\{(~)?\/)/, /^(?:\{\{(~)?\^\s*(~)?\}\})/, /^(?:\{\{(~)?\s*else\s*(~)?\}\})/, /^(?:\{\{(~)?\^)/, /^(?:\{\{(~)?\s*else\b)/, /^(?:\{\{(~)?\{)/, /^(?:\{\{(~)?&)/, /^(?:\{\{(~)?!--)/, /^(?:\{\{(~)?![\s\S]*?\}\})/, /^(?:\{\{(~)?\*?)/, /^(?:=)/, /^(?:\.\.)/, /^(?:\.(?=([=~}\s\/.)|])))/, /^(?:[\/.])/, /^(?:\s+)/, /^(?:\}(~)?\}\})/, /^(?:(~)?\}\})/, /^(?:"(\\["]|[^"])*")/, /^(?:'(\\[']|[^'])*')/, /^(?:@)/, /^(?:true(?=([~}\s)])))/, /^(?:false(?=([~}\s)])))/, /^(?:undefined(?=([~}\s)])))/, /^(?:null(?=([~}\s)])))/, /^(?:-?[0-9]+(?:\.[0-9]+)?(?=([~}\s)])))/, /^(?:as\s+\|)/, /^(?:\|)/, /^(?:([^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=([=~}\s\/.)|]))))/, /^(?:\[(\\\]|[^\]])*\])/, /^(?:.)/, /^(?:$)/], + conditions: { + mu: { + rules: [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44], + inclusive: !1 + }, + emu: { + rules: [2], + inclusive: !1 + }, + com: { + rules: [6], + inclusive: !1 + }, + raw: { + rules: [3, 4, 5], + inclusive: !1 + }, + INITIAL: { + rules: [0, 1, 44], + inclusive: !0 + } + } + }; + return a; + }(); + + return J.lexer = K, a.prototype = J, J.Parser = a, new a(); + }(); + + b["default"] = c, a.exports = b["default"]; + }, function (a, b, c) { + "use strict"; + + function d(a) { + return a && a.__esModule ? a : { + "default": a + }; + } + + function e() { + var a = arguments.length <= 0 || void 0 === arguments[0] ? {} : arguments[0]; + this.options = a; + } + + function f(a, b, c) { + void 0 === b && (b = a.length); + var d = a[b - 1], + e = a[b - 2]; + return d ? "ContentStatement" === d.type ? (e || !c ? /\r?\n\s*?$/ : /(^|\r?\n)\s*?$/).test(d.original) : void 0 : c; + } + + function g(a, b, c) { + void 0 === b && (b = -1); + var d = a[b + 1], + e = a[b + 2]; + return d ? "ContentStatement" === d.type ? (e || !c ? /^\s*?\r?\n/ : /^\s*?(\r?\n|$)/).test(d.original) : void 0 : c; + } + + function h(a, b, c) { + var d = a[null == b ? 0 : b + 1]; + + if (d && "ContentStatement" === d.type && (c || !d.rightStripped)) { + var e = d.value; + d.value = d.value.replace(c ? /^\s+/ : /^[ \t]*\r?\n?/, ""), d.rightStripped = d.value !== e; + } + } + + function i(a, b, c) { + var d = a[null == b ? a.length - 1 : b - 1]; + + if (d && "ContentStatement" === d.type && (c || !d.leftStripped)) { + var e = d.value; + return d.value = d.value.replace(c ? /\s+$/ : /[ \t]+$/, ""), d.leftStripped = d.value !== e, d.leftStripped; + } + } + + b.__esModule = !0; + var j = c(23), + k = d(j); + e.prototype = new k["default"](), e.prototype.Program = function (a) { + var b = !this.options.ignoreStandalone, + c = !this.isRootSeen; + this.isRootSeen = !0; + + for (var d = a.body, e = 0, j = d.length; e < j; e++) { + var k = d[e], + l = this.accept(k); + + if (l) { + var m = f(d, e, c), + n = g(d, e, c), + o = l.openStandalone && m, + p = l.closeStandalone && n, + q = l.inlineStandalone && m && n; + l.close && h(d, e, !0), l.open && i(d, e, !0), b && q && (h(d, e), i(d, e) && "PartialStatement" === k.type && (k.indent = /([ \t]+$)/.exec(d[e - 1].original)[1])), b && o && (h((k.program || k.inverse).body), i(d, e)), b && p && (h(d, e), i((k.inverse || k.program).body)); + } + } + + return a; + }, e.prototype.BlockStatement = e.prototype.DecoratorBlock = e.prototype.PartialBlockStatement = function (a) { + this.accept(a.program), this.accept(a.inverse); + var b = a.program || a.inverse, + c = a.program && a.inverse, + d = c, + e = c; + if (c && c.chained) for (d = c.body[0].program; e.chained;) { + e = e.body[e.body.length - 1].program; + } + var j = { + open: a.openStrip.open, + close: a.closeStrip.close, + openStandalone: g(b.body), + closeStandalone: f((d || b).body) + }; + + if (a.openStrip.close && h(b.body, null, !0), c) { + var k = a.inverseStrip; + k.open && i(b.body, null, !0), k.close && h(d.body, null, !0), a.closeStrip.open && i(e.body, null, !0), !this.options.ignoreStandalone && f(b.body) && g(d.body) && (i(b.body), h(d.body)); + } else a.closeStrip.open && i(b.body, null, !0); + + return j; + }, e.prototype.Decorator = e.prototype.MustacheStatement = function (a) { + return a.strip; + }, e.prototype.PartialStatement = e.prototype.CommentStatement = function (a) { + var b = a.strip || {}; + return { + inlineStandalone: !0, + open: b.open, + close: b.close + }; + }, b["default"] = e, a.exports = b["default"]; + }, function (a, b, c) { + "use strict"; + + function d(a) { + return a && a.__esModule ? a : { + "default": a + }; + } + + function e() { + this.parents = []; + } + + function f(a) { + this.acceptRequired(a, "path"), this.acceptArray(a.params), this.acceptKey(a, "hash"); + } + + function g(a) { + f.call(this, a), this.acceptKey(a, "program"), this.acceptKey(a, "inverse"); + } + + function h(a) { + this.acceptRequired(a, "name"), this.acceptArray(a.params), this.acceptKey(a, "hash"); + } + + b.__esModule = !0; + var i = c(4), + j = d(i); + e.prototype = { + constructor: e, + mutating: !1, + acceptKey: function acceptKey(a, b) { + var c = this.accept(a[b]); + + if (this.mutating) { + if (c && !e.prototype[c.type]) throw new j["default"]('Unexpected node type "' + c.type + '" found when accepting ' + b + " on " + a.type); + a[b] = c; + } + }, + acceptRequired: function acceptRequired(a, b) { + if (this.acceptKey(a, b), !a[b]) throw new j["default"](a.type + " requires " + b); + }, + acceptArray: function acceptArray(a) { + for (var b = 0, c = a.length; b < c; b++) { + this.acceptKey(a, b), a[b] || (a.splice(b, 1), b--, c--); + } + }, + accept: function accept(a) { + if (a) { + if (!this[a.type]) throw new j["default"]("Unknown type: " + a.type, a); + this.current && this.parents.unshift(this.current), this.current = a; + var b = this[a.type](a); + return this.current = this.parents.shift(), !this.mutating || b ? b : b !== !1 ? a : void 0; + } + }, + Program: function Program(a) { + this.acceptArray(a.body); + }, + MustacheStatement: f, + Decorator: f, + BlockStatement: g, + DecoratorBlock: g, + PartialStatement: h, + PartialBlockStatement: function PartialBlockStatement(a) { + h.call(this, a), this.acceptKey(a, "program"); + }, + ContentStatement: function ContentStatement() {}, + CommentStatement: function CommentStatement() {}, + SubExpression: f, + PathExpression: function PathExpression() {}, + StringLiteral: function StringLiteral() {}, + NumberLiteral: function NumberLiteral() {}, + BooleanLiteral: function BooleanLiteral() {}, + UndefinedLiteral: function UndefinedLiteral() {}, + NullLiteral: function NullLiteral() {}, + Hash: function Hash(a) { + this.acceptArray(a.pairs); + }, + HashPair: function HashPair(a) { + this.acceptRequired(a, "value"); + } + }, b["default"] = e, a.exports = b["default"]; + }, function (a, b, c) { + "use strict"; + + function d(a) { + return a && a.__esModule ? a : { + "default": a + }; + } + + function e(a, b) { + if (b = b.path ? b.path.original : b, a.path.original !== b) { + var c = { + loc: a.path.loc + }; + throw new q["default"](a.path.original + " doesn't match " + b, c); + } + } + + function f(a, b) { + this.source = a, this.start = { + line: b.first_line, + column: b.first_column + }, this.end = { + line: b.last_line, + column: b.last_column + }; + } + + function g(a) { + return /^\[.*\]$/.test(a) ? a.substr(1, a.length - 2) : a; + } + + function h(a, b) { + return { + open: "~" === a.charAt(2), + close: "~" === b.charAt(b.length - 3) + }; + } + + function i(a) { + return a.replace(/^\{\{~?!-?-?/, "").replace(/-?-?~?\}\}$/, ""); + } + + function j(a, b, c) { + c = this.locInfo(c); + + for (var d = a ? "@" : "", e = [], f = 0, g = 0, h = b.length; g < h; g++) { + var i = b[g].part, + j = b[g].original !== i; + if (d += (b[g].separator || "") + i, j || ".." !== i && "." !== i && "this" !== i) e.push(i);else { + if (e.length > 0) throw new q["default"]("Invalid path: " + d, { + loc: c + }); + ".." === i && f++; + } + } + + return { + type: "PathExpression", + data: a, + depth: f, + parts: e, + original: d, + loc: c + }; + } + + function k(a, b, c, d, e, f) { + var g = d.charAt(3) || d.charAt(2), + h = "{" !== g && "&" !== g, + i = /\*/.test(d); + return { + type: i ? "Decorator" : "MustacheStatement", + path: a, + params: b, + hash: c, + escaped: h, + strip: e, + loc: this.locInfo(f) + }; + } + + function l(a, b, c, d) { + e(a, c), d = this.locInfo(d); + var f = { + type: "Program", + body: b, + strip: {}, + loc: d + }; + return { + type: "BlockStatement", + path: a.path, + params: a.params, + hash: a.hash, + program: f, + openStrip: {}, + inverseStrip: {}, + closeStrip: {}, + loc: d + }; + } + + function m(a, b, c, d, f, g) { + d && d.path && e(a, d); + var h = /\*/.test(a.open); + b.blockParams = a.blockParams; + var i = void 0, + j = void 0; + + if (c) { + if (h) throw new q["default"]("Unexpected inverse block on decorator", c); + c.chain && (c.program.body[0].closeStrip = d.strip), j = c.strip, i = c.program; + } + + return f && (f = i, i = b, b = f), { + type: h ? "DecoratorBlock" : "BlockStatement", + path: a.path, + params: a.params, + hash: a.hash, + program: b, + inverse: i, + openStrip: a.strip, + inverseStrip: j, + closeStrip: d && d.strip, + loc: this.locInfo(g) + }; + } + + function n(a, b) { + if (!b && a.length) { + var c = a[0].loc, + d = a[a.length - 1].loc; + c && d && (b = { + source: c.source, + start: { + line: c.start.line, + column: c.start.column + }, + end: { + line: d.end.line, + column: d.end.column + } + }); + } + + return { + type: "Program", + body: a, + strip: {}, + loc: b + }; + } + + function o(a, b, c, d) { + return e(a, c), { + type: "PartialBlockStatement", + name: a.path, + params: a.params, + hash: a.hash, + program: b, + openStrip: a.strip, + closeStrip: c && c.strip, + loc: this.locInfo(d) + }; + } + + b.__esModule = !0, b.SourceLocation = f, b.id = g, b.stripFlags = h, b.stripComment = i, b.preparePath = j, b.prepareMustache = k, b.prepareRawBlock = l, b.prepareBlock = m, b.prepareProgram = n, b.preparePartialBlock = o; + var p = c(4), + q = d(p); + }, function (a, b, c) { + "use strict"; + + function d(a) { + return a && a.__esModule ? a : { + "default": a + }; + } + + function e() {} + + function f(a, b, c) { + void 0 === b && (b = {}), h(a, b); + var d = i(a, b, c); + return new c.JavaScriptCompiler().compile(d, b); + } + + function g(a, b, c) { + function d() { + var d = i(a, b, c), + e = new c.JavaScriptCompiler().compile(d, b, void 0, !0); + return c.template(e); + } + + void 0 === b && (b = {}), b = n.extend({}, b), h(a, b); + var e = void 0; + return function (a, b) { + return e || (e = d()), e.call(this, a, b); + }; + } + + function h(a, b) { + if (null == a || "string" != typeof a && "Program" !== a.type) throw new m["default"]("You must pass a string or Handlebars AST to Handlebars.compile. You passed " + a); + if (b.trackIds || b.stringParams) throw new m["default"]("TrackIds and stringParams are no longer supported. See Github #1145"); + "data" in b || (b.data = !0), b.compat && (b.useDepths = !0); + } + + function i(a, b, c) { + var d = c.parse(a, b); + return new c.Compiler().compile(d, b); + } + + function j(a, b) { + if (a === b) return !0; + + if (n.isArray(a) && n.isArray(b) && a.length === b.length) { + for (var c = 0; c < a.length; c++) { + if (!j(a[c], b[c])) return !1; + } + + return !0; + } + } + + function k(a) { + if (!a.path.parts) { + var b = a.path; + a.path = { + type: "PathExpression", + data: !1, + depth: 0, + parts: [b.original + ""], + original: b.original + "", + loc: b.loc + }; + } + } + + b.__esModule = !0, b.Compiler = e, b.precompile = f, b.compile = g; + var l = c(4), + m = d(l), + n = c(3), + o = c(19), + p = d(o), + q = [].slice; + e.prototype = { + compiler: e, + equals: function equals(a) { + var b = this.opcodes.length; + if (a.opcodes.length !== b) return !1; + + for (var c = 0; c < b; c++) { + var d = this.opcodes[c], + e = a.opcodes[c]; + if (d.opcode !== e.opcode || !j(d.args, e.args)) return !1; + } + + b = this.children.length; + + for (var c = 0; c < b; c++) { + if (!this.children[c].equals(a.children[c])) return !1; + } + + return !0; + }, + guid: 0, + compile: function compile(a, b) { + this.sourceNode = [], this.opcodes = [], this.children = [], this.options = b, b.blockParams = b.blockParams || []; + var c = b.knownHelpers; + if (b.knownHelpers = { + helperMissing: !0, + blockHelperMissing: !0, + each: !0, + "if": !0, + unless: !0, + "with": !0, + log: !0, + lookup: !0 + }, c) for (var d in c) { + this.options.knownHelpers[d] = c[d]; + } + return this.accept(a); + }, + compileProgram: function compileProgram(a) { + var b = new this.compiler(), + c = b.compile(a, this.options), + d = this.guid++; + return this.usePartial = this.usePartial || c.usePartial, this.children[d] = c, this.useDepths = this.useDepths || c.useDepths, d; + }, + accept: function accept(a) { + if (!this[a.type]) throw new m["default"]("Unknown type: " + a.type, a); + this.sourceNode.unshift(a); + var b = this[a.type](a); + return this.sourceNode.shift(), b; + }, + Program: function Program(a) { + this.options.blockParams.unshift(a.blockParams); + + for (var b = a.body, c = b.length, d = 0; d < c; d++) { + this.accept(b[d]); + } + + return this.options.blockParams.shift(), this.isSimple = 1 === c, this.blockParams = a.blockParams ? a.blockParams.length : 0, this; + }, + BlockStatement: function BlockStatement(a) { + k(a); + var b = a.program, + c = a.inverse; + b = b && this.compileProgram(b), c = c && this.compileProgram(c); + var d = this.classifySexpr(a); + "helper" === d ? this.helperSexpr(a, b, c) : "simple" === d ? (this.simpleSexpr(a), this.opcode("pushProgram", b), this.opcode("pushProgram", c), this.opcode("emptyHash"), this.opcode("blockValue", a.path.original)) : (this.ambiguousSexpr(a, b, c), this.opcode("pushProgram", b), this.opcode("pushProgram", c), this.opcode("emptyHash"), this.opcode("ambiguousBlockValue")), this.opcode("append"); + }, + DecoratorBlock: function DecoratorBlock(a) { + var b = a.program && this.compileProgram(a.program), + c = this.setupFullMustacheParams(a, b, void 0), + d = a.path; + this.useDecorators = !0, this.opcode("registerDecorator", c.length, d.original); + }, + PartialStatement: function PartialStatement(a) { + this.usePartial = !0; + var b = a.program; + b && (b = this.compileProgram(a.program)); + var c = a.params; + if (c.length > 1) throw new m["default"]("Unsupported number of partial arguments: " + c.length, a); + c.length || (this.options.explicitPartialContext ? this.opcode("pushLiteral", "undefined") : c.push({ + type: "PathExpression", + parts: [], + depth: 0 + })); + var d = a.name.original, + e = "SubExpression" === a.name.type; + e && this.accept(a.name), this.setupFullMustacheParams(a, b, void 0, !0); + var f = a.indent || ""; + this.options.preventIndent && f && (this.opcode("appendContent", f), f = ""), this.opcode("invokePartial", e, d, f), this.opcode("append"); + }, + PartialBlockStatement: function PartialBlockStatement(a) { + this.PartialStatement(a); + }, + MustacheStatement: function MustacheStatement(a) { + this.SubExpression(a), a.escaped && !this.options.noEscape ? this.opcode("appendEscaped") : this.opcode("append"); + }, + Decorator: function Decorator(a) { + this.DecoratorBlock(a); + }, + ContentStatement: function ContentStatement(a) { + a.value && this.opcode("appendContent", a.value); + }, + CommentStatement: function CommentStatement() {}, + SubExpression: function SubExpression(a) { + k(a); + var b = this.classifySexpr(a); + "simple" === b ? this.simpleSexpr(a) : "helper" === b ? this.helperSexpr(a) : this.ambiguousSexpr(a); + }, + ambiguousSexpr: function ambiguousSexpr(a, b, c) { + var d = a.path, + e = d.parts[0], + f = null != b || null != c; + this.opcode("getContext", d.depth), this.opcode("pushProgram", b), this.opcode("pushProgram", c), d.strict = !0, this.accept(d), this.opcode("invokeAmbiguous", e, f); + }, + simpleSexpr: function simpleSexpr(a) { + var b = a.path; + b.strict = !0, this.accept(b), this.opcode("resolvePossibleLambda"); + }, + helperSexpr: function helperSexpr(a, b, c) { + var d = this.setupFullMustacheParams(a, b, c), + e = a.path, + f = e.parts[0]; + if (this.options.knownHelpers[f]) this.opcode("invokeKnownHelper", d.length, f);else { + if (this.options.knownHelpersOnly) throw new m["default"]("You specified knownHelpersOnly, but used the unknown helper " + f, a); + e.strict = !0, e.falsy = !0, this.accept(e), this.opcode("invokeHelper", d.length, e.original, p["default"].helpers.simpleId(e)); + } + }, + PathExpression: function PathExpression(a) { + this.addDepth(a.depth), this.opcode("getContext", a.depth); + var b = a.parts[0], + c = p["default"].helpers.scopedId(a), + d = !a.depth && !c && this.blockParamIndex(b); + d ? this.opcode("lookupBlockParam", d, a.parts) : b ? a.data ? (this.options.data = !0, this.opcode("lookupData", a.depth, a.parts, a.strict)) : this.opcode("lookupOnContext", a.parts, a.falsy, a.strict, c) : this.opcode("pushContext"); + }, + StringLiteral: function StringLiteral(a) { + this.opcode("pushString", a.value); + }, + NumberLiteral: function NumberLiteral(a) { + this.opcode("pushLiteral", a.value); + }, + BooleanLiteral: function BooleanLiteral(a) { + this.opcode("pushLiteral", a.value); + }, + UndefinedLiteral: function UndefinedLiteral() { + this.opcode("pushLiteral", "undefined"); + }, + NullLiteral: function NullLiteral() { + this.opcode("pushLiteral", "null"); + }, + Hash: function Hash(a) { + var b = a.pairs, + c = 0, + d = b.length; + + for (this.opcode("pushHash"); c < d; c++) { + this.pushParam(b[c].value); + } + + for (; c--;) { + this.opcode("assignToHash", b[c].key); + } + + this.opcode("popHash"); + }, + opcode: function opcode(a) { + this.opcodes.push({ + opcode: a, + args: q.call(arguments, 1), + loc: this.sourceNode[0].loc + }); + }, + addDepth: function addDepth(a) { + a && (this.useDepths = !0); + }, + classifySexpr: function classifySexpr(a) { + var b = p["default"].helpers.simpleId(a.path), + c = b && !!this.blockParamIndex(a.path.parts[0]), + d = !c && p["default"].helpers.helperExpression(a), + e = !c && (d || b); + + if (e && !d) { + var f = a.path.parts[0], + g = this.options; + g.knownHelpers[f] ? d = !0 : g.knownHelpersOnly && (e = !1); + } + + return d ? "helper" : e ? "ambiguous" : "simple"; + }, + pushParams: function pushParams(a) { + for (var b = 0, c = a.length; b < c; b++) { + this.pushParam(a[b]); + } + }, + pushParam: function pushParam(a) { + this.accept(a); + }, + setupFullMustacheParams: function setupFullMustacheParams(a, b, c, d) { + var e = a.params; + return this.pushParams(e), this.opcode("pushProgram", b), this.opcode("pushProgram", c), a.hash ? this.accept(a.hash) : this.opcode("emptyHash", d), e; + }, + blockParamIndex: function blockParamIndex(a) { + for (var b = 0, c = this.options.blockParams.length; b < c; b++) { + var d = this.options.blockParams[b], + e = d && n.indexOf(d, a); + if (d && e >= 0) return [b, e]; + } + } + }; + }, function (a, b, c) { + "use strict"; + + function d(a) { + return a && a.__esModule ? a : { + "default": a + }; + } + + function e(a) { + this.value = a; + } + + function f() {} + + function g(a, b, c, d) { + var e = b.popStack(), + f = 0, + g = c.length; + + for (a && g--; f < g; f++) { + e = b.nameLookup(e, c[f], d); + } + + return a ? [b.aliasable("container.strict"), "(", e, ", ", b.quotedString(c[f]), ")"] : e; + } + + b.__esModule = !0; + var h = c(2), + i = c(4), + j = d(i), + k = c(3), + l = c(27), + m = d(l); + f.prototype = { + nameLookup: function nameLookup(a, b) { + return f.isValidJavaScriptVariableName(b) ? [a, ".", b] : [a, "[", JSON.stringify(b), "]"]; + }, + depthedLookup: function depthedLookup(a) { + return [this.aliasable("container.lookup"), '(depths, "', a, '")']; + }, + compilerInfo: function compilerInfo() { + var a = h.COMPILER_REVISION, + b = h.REVISION_CHANGES[a]; + return [a, b]; + }, + appendToBuffer: function appendToBuffer(a, b, c) { + return k.isArray(a) || (a = [a]), a = this.source.wrap(a, b), this.environment.isSimple ? ["return ", a, ";"] : c ? ["buffer += ", a, ";"] : (a.appendToBuffer = !0, a); + }, + initializeBuffer: function initializeBuffer() { + return this.quotedString(""); + }, + compile: function compile(a, b, c, d) { + this.environment = a, this.options = b, this.precompile = !d, this.name = this.environment.name, this.isChild = !!c, this.context = c || { + decorators: [], + programs: [], + environments: [] + }, this.preamble(), this.stackSlot = 0, this.stackVars = [], this.aliases = {}, this.registers = { + list: [] + }, this.hashes = [], this.compileStack = [], this.inlineStack = [], this.blockParams = [], this.compileChildren(a, b), this.useDepths = this.useDepths || a.useDepths || a.useDecorators || this.options.compat, this.useBlockParams = this.useBlockParams || a.useBlockParams; + var e = a.opcodes, + f = void 0, + g = void 0, + h = void 0, + i = void 0; + + for (h = 0, i = e.length; h < i; h++) { + f = e[h], this.source.currentLocation = f.loc, g = g || f.loc, this[f.opcode].apply(this, f.args); + } + + if (this.source.currentLocation = g, this.pushSource(""), this.stackSlot || this.inlineStack.length || this.compileStack.length) throw new j["default"]("Compile completed with content left on stack"); + this.decorators.isEmpty() ? this.decorators = void 0 : (this.useDecorators = !0, this.decorators.prepend("var decorators = container.decorators;\n"), this.decorators.push("return fn;"), d ? this.decorators = Function.apply(this, ["fn", "props", "container", "depth0", "data", "blockParams", "depths", this.decorators.merge()]) : (this.decorators.prepend("function(fn, props, container, depth0, data, blockParams, depths) {\n"), this.decorators.push("}\n"), this.decorators = this.decorators.merge())); + var k = this.createFunctionContext(d); + if (this.isChild) return k; + var l = { + compiler: this.compilerInfo(), + main: k + }; + this.decorators && (l.main_d = this.decorators, l.useDecorators = !0); + var m = this.context, + n = m.programs, + o = m.decorators; + + for (h = 0, i = n.length; h < i; h++) { + n[h] && (l[h] = n[h], o[h] && (l[h + "_d"] = o[h], l.useDecorators = !0)); + } + + return this.environment.usePartial && (l.usePartial = !0), this.options.data && (l.useData = !0), this.useDepths && (l.useDepths = !0), this.useBlockParams && (l.useBlockParams = !0), this.options.compat && (l.compat = !0), d ? l.compilerOptions = this.options : (l.compiler = JSON.stringify(l.compiler), this.source.currentLocation = { + start: { + line: 1, + column: 0 + } + }, l = this.objectLiteral(l), b.srcName ? (l = l.toStringWithSourceMap({ + file: b.destName + }), l.map = l.map && l.map.toString()) : l = l.toString()), l; + }, + preamble: function preamble() { + this.lastContext = 0, this.source = new m["default"](this.options.srcName), this.decorators = new m["default"](this.options.srcName); + }, + createFunctionContext: function createFunctionContext(a) { + var b = "", + c = this.stackVars.concat(this.registers.list); + c.length > 0 && (b += ", " + c.join(", ")); + var d = 0; + + for (var e in this.aliases) { + var f = this.aliases[e]; + this.aliases.hasOwnProperty(e) && f.children && f.referenceCount > 1 && (b += ", alias" + ++d + "=" + e, f.children[0] = "alias" + d); + } + + var g = ["container", "depth0", "helpers", "partials", "data"]; + (this.useBlockParams || this.useDepths) && g.push("blockParams"), this.useDepths && g.push("depths"); + var h = this.mergeSource(b); + return a ? (g.push(h), Function.apply(this, g)) : this.source.wrap(["function(", g.join(","), ") {\n ", h, "}"]); + }, + mergeSource: function mergeSource(a) { + var b = this.environment.isSimple, + c = !this.forceBuffer, + d = void 0, + e = void 0, + f = void 0, + g = void 0; + return this.source.each(function (a) { + a.appendToBuffer ? (f ? a.prepend(" + ") : f = a, g = a) : (f && (e ? f.prepend("buffer += ") : d = !0, g.add(";"), f = g = void 0), e = !0, b || (c = !1)); + }), c ? f ? (f.prepend("return "), g.add(";")) : e || this.source.push('return "";') : (a += ", buffer = " + (d ? "" : this.initializeBuffer()), f ? (f.prepend("return buffer + "), g.add(";")) : this.source.push("return buffer;")), a && this.source.prepend("var " + a.substring(2) + (d ? "" : ";\n")), this.source.merge(); + }, + blockValue: function blockValue(a) { + var b = this.aliasable("helpers.blockHelperMissing"), + c = [this.contextName(0)]; + this.setupHelperArgs(a, 0, c); + var d = this.popStack(); + c.splice(1, 0, d), this.push(this.source.functionCall(b, "call", c)); + }, + ambiguousBlockValue: function ambiguousBlockValue() { + var a = this.aliasable("helpers.blockHelperMissing"), + b = [this.contextName(0)]; + this.setupHelperArgs("", 0, b, !0), this.flushInline(); + var c = this.topStack(); + b.splice(1, 0, c), this.pushSource(["if (!", this.lastHelper, ") { ", c, " = ", this.source.functionCall(a, "call", b), "}"]); + }, + appendContent: function appendContent(a) { + this.pendingContent ? a = this.pendingContent + a : this.pendingLocation = this.source.currentLocation, this.pendingContent = a; + }, + append: function append() { + if (this.isInline()) this.replaceStack(function (a) { + return [" != null ? ", a, ' : ""']; + }), this.pushSource(this.appendToBuffer(this.popStack()));else { + var a = this.popStack(); + this.pushSource(["if (", a, " != null) { ", this.appendToBuffer(a, void 0, !0), " }"]), this.environment.isSimple && this.pushSource(["else { ", this.appendToBuffer("''", void 0, !0), " }"]); + } + }, + appendEscaped: function appendEscaped() { + this.pushSource(this.appendToBuffer([this.aliasable("container.escapeExpression"), "(", this.popStack(), ")"])); + }, + getContext: function getContext(a) { + this.lastContext = a; + }, + pushContext: function pushContext() { + this.pushStackLiteral(this.contextName(this.lastContext)); + }, + lookupOnContext: function lookupOnContext(a, b, c, d) { + var e = 0; + d || !this.options.compat || this.lastContext ? this.pushContext() : this.push(this.depthedLookup(a[e++])), this.resolvePath("context", a, e, b, c); + }, + lookupBlockParam: function lookupBlockParam(a, b) { + this.useBlockParams = !0, this.push(["blockParams[", a[0], "][", a[1], "]"]), this.resolvePath("context", b, 1); + }, + lookupData: function lookupData(a, b, c) { + a ? this.pushStackLiteral("container.data(data, " + a + ")") : this.pushStackLiteral("data"), this.resolvePath("data", b, 0, !0, c); + }, + resolvePath: function resolvePath(a, b, c, d, e) { + var f = this; + if (this.options.strict || this.options.assumeObjects) return void this.push(g(this.options.strict && e, this, b, a)); + + for (var h = b.length; c < h; c++) { + this.replaceStack(function (e) { + var g = f.nameLookup(e, b[c], a); + return d ? [" && ", g] : [" != null ? ", g, " : ", e]; + }); + } + }, + resolvePossibleLambda: function resolvePossibleLambda() { + this.push([this.aliasable("container.lambda"), "(", this.popStack(), ", ", this.contextName(0), ")"]); + }, + emptyHash: function emptyHash(a) { + this.pushStackLiteral(a ? "undefined" : "{}"); + }, + pushHash: function pushHash() { + this.hash && this.hashes.push(this.hash), this.hash = { + values: {} + }; + }, + popHash: function popHash() { + var a = this.hash; + this.hash = this.hashes.pop(), this.push(this.objectLiteral(a.values)); + }, + pushString: function pushString(a) { + this.pushStackLiteral(this.quotedString(a)); + }, + pushLiteral: function pushLiteral(a) { + this.pushStackLiteral(a); + }, + pushProgram: function pushProgram(a) { + null != a ? this.pushStackLiteral(this.programExpression(a)) : this.pushStackLiteral(null); + }, + registerDecorator: function registerDecorator(a, b) { + var c = this.nameLookup("decorators", b, "decorator"), + d = this.setupHelperArgs(b, a); + this.decorators.push(["fn = ", this.decorators.functionCall(c, "", ["fn", "props", "container", d]), " || fn;"]); + }, + invokeHelper: function invokeHelper(a, b, c) { + var d = this.popStack(), + e = this.setupHelper(a, b), + f = c ? [e.name, " || "] : "", + g = ["("].concat(f, d); + this.options.strict || g.push(" || ", this.aliasable("helpers.helperMissing")), g.push(")"), this.push(this.source.functionCall(g, "call", e.callParams)); + }, + invokeKnownHelper: function invokeKnownHelper(a, b) { + var c = this.setupHelper(a, b); + this.push(this.source.functionCall(c.name, "call", c.callParams)); + }, + invokeAmbiguous: function invokeAmbiguous(a, b) { + this.useRegister("helper"); + var c = this.popStack(); + this.emptyHash(); + var d = this.setupHelper(0, a, b), + e = this.lastHelper = this.nameLookup("helpers", a, "helper"), + f = ["(", "(helper = ", e, " || ", c, ")"]; + this.options.strict || (f[0] = "(helper = ", f.push(" != null ? helper : ", this.aliasable("helpers.helperMissing"))), this.push(["(", f, d.paramsInit ? ["),(", d.paramsInit] : [], "),", "(typeof helper === ", this.aliasable('"function"'), " ? ", this.source.functionCall("helper", "call", d.callParams), " : helper))"]); + }, + invokePartial: function invokePartial(a, b, c) { + var d = [], + e = this.setupParams(b, 1, d); + a && (b = this.popStack(), delete e.name), c && (e.indent = JSON.stringify(c)), e.helpers = "helpers", e.partials = "partials", e.decorators = "container.decorators", a ? d.unshift(b) : d.unshift(this.nameLookup("partials", b, "partial")), this.options.compat && (e.depths = "depths"), e = this.objectLiteral(e), d.push(e), this.push(this.source.functionCall("container.invokePartial", "", d)); + }, + assignToHash: function assignToHash(a) { + this.hash.values[a] = this.popStack(); + }, + compiler: f, + compileChildren: function compileChildren(a, b) { + for (var c = a.children, d = void 0, e = void 0, f = 0, g = c.length; f < g; f++) { + d = c[f], e = new this.compiler(); + var h = this.matchExistingProgram(d); + + if (null == h) { + this.context.programs.push(""); + var i = this.context.programs.length; + d.index = i, d.name = "program" + i, this.context.programs[i] = e.compile(d, b, this.context, !this.precompile), this.context.decorators[i] = e.decorators, this.context.environments[i] = d, this.useDepths = this.useDepths || e.useDepths, this.useBlockParams = this.useBlockParams || e.useBlockParams, d.useDepths = this.useDepths, d.useBlockParams = this.useBlockParams; + } else d.index = h.index, d.name = "program" + h.index, this.useDepths = this.useDepths || h.useDepths, this.useBlockParams = this.useBlockParams || h.useBlockParams; + } + }, + matchExistingProgram: function matchExistingProgram(a) { + for (var b = 0, c = this.context.environments.length; b < c; b++) { + var d = this.context.environments[b]; + if (d && d.equals(a)) return d; + } + }, + programExpression: function programExpression(a) { + var b = this.environment.children[a], + c = [b.index, "data", b.blockParams]; + return (this.useBlockParams || this.useDepths) && c.push("blockParams"), this.useDepths && c.push("depths"), "container.program(" + c.join(", ") + ")"; + }, + useRegister: function useRegister(a) { + this.registers[a] || (this.registers[a] = !0, this.registers.list.push(a)); + }, + push: function push(a) { + return a instanceof e || (a = this.source.wrap(a)), this.inlineStack.push(a), a; + }, + pushStackLiteral: function pushStackLiteral(a) { + this.push(new e(a)); + }, + pushSource: function pushSource(a) { + this.pendingContent && (this.source.push(this.appendToBuffer(this.source.quotedString(this.pendingContent), this.pendingLocation)), this.pendingContent = void 0), a && this.source.push(a); + }, + replaceStack: function replaceStack(a) { + var b = ["("], + c = void 0, + d = void 0, + f = void 0; + if (!this.isInline()) throw new j["default"]("replaceStack on non-inline"); + var g = this.popStack(!0); + if (g instanceof e) c = [g.value], b = ["(", c], f = !0;else { + d = !0; + var h = this.incrStack(); + b = ["((", this.push(h), " = ", g, ")"], c = this.topStack(); + } + var i = a.call(this, c); + f || this.popStack(), d && this.stackSlot--, this.push(b.concat(i, ")")); + }, + incrStack: function incrStack() { + return this.stackSlot++, this.stackSlot > this.stackVars.length && this.stackVars.push("stack" + this.stackSlot), this.topStackName(); + }, + topStackName: function topStackName() { + return "stack" + this.stackSlot; + }, + flushInline: function flushInline() { + var a = this.inlineStack; + this.inlineStack = []; + + for (var b = 0, c = a.length; b < c; b++) { + var d = a[b]; + if (d instanceof e) this.compileStack.push(d);else { + var f = this.incrStack(); + this.pushSource([f, " = ", d, ";"]), this.compileStack.push(f); + } + } + }, + isInline: function isInline() { + return this.inlineStack.length; + }, + popStack: function popStack(a) { + var b = this.isInline(), + c = (b ? this.inlineStack : this.compileStack).pop(); + if (!a && c instanceof e) return c.value; + + if (!b) { + if (!this.stackSlot) throw new j["default"]("Invalid stack pop"); + this.stackSlot--; + } + + return c; + }, + topStack: function topStack() { + var a = this.isInline() ? this.inlineStack : this.compileStack, + b = a[a.length - 1]; + return b instanceof e ? b.value : b; + }, + contextName: function contextName(a) { + return this.useDepths && a ? "depths[" + a + "]" : "depth" + a; + }, + quotedString: function quotedString(a) { + return this.source.quotedString(a); + }, + objectLiteral: function objectLiteral(a) { + return this.source.objectLiteral(a); + }, + aliasable: function aliasable(a) { + var b = this.aliases[a]; + return b ? (b.referenceCount++, b) : (b = this.aliases[a] = this.source.wrap(a), b.aliasable = !0, b.referenceCount = 1, b); + }, + setupHelper: function setupHelper(a, b, c) { + var d = [], + e = this.setupHelperArgs(b, a, d, c), + f = this.nameLookup("helpers", b, "helper"), + g = this.aliasable(this.contextName(0) + " != null ? " + this.contextName(0) + " : (container.nullContext || {})"); + return { + params: d, + paramsInit: e, + name: f, + callParams: [g].concat(d) + }; + }, + setupParams: function setupParams(a, b, c) { + var d = {}, + e = !c, + f = void 0; + e && (c = []), d.name = this.quotedString(a), d.hash = this.popStack(); + var g = this.popStack(), + h = this.popStack(); + (h || g) && (d.fn = h || "container.noop", d.inverse = g || "container.noop"); + + for (var i = b; i--;) { + f = this.popStack(), c[i] = f; + } + + return e && (d.args = this.source.generateArray(c)), this.options.data && (d.data = "data"), this.useBlockParams && (d.blockParams = "blockParams"), d; + }, + setupHelperArgs: function setupHelperArgs(a, b, c, d) { + var e = this.setupParams(a, b, c); + return e = this.objectLiteral(e), d ? (this.useRegister("options"), c.push("options"), ["options=", e]) : c ? (c.push(e), "") : e; + } + }, function () { + for (var a = "break else new var case finally return void catch for switch while continue function this with default if throw delete in try do instanceof typeof abstract enum int short boolean export interface static byte extends long super char final native synchronized class float package throws const goto private transient debugger implements protected volatile double import public let yield await null true false".split(" "), b = f.RESERVED_WORDS = {}, c = 0, d = a.length; c < d; c++) { + b[a[c]] = !0; + } + }(), f.isValidJavaScriptVariableName = function (a) { + return !f.RESERVED_WORDS[a] && /^[a-zA-Z_$][0-9a-zA-Z_$]*$/.test(a); + }, b["default"] = f, a.exports = b["default"]; + }, function (a, b, c) { + "use strict"; + + function d(a, b, c) { + if (f.isArray(a)) { + for (var d = [], e = 0, g = a.length; e < g; e++) { + d.push(b.wrap(a[e], c)); + } + + return d; + } + + return "boolean" == typeof a || "number" == typeof a ? a + "" : a; + } + + function e(a) { + this.srcFile = a, this.source = []; + } + + b.__esModule = !0; + var f = c(3), + g = void 0; + + try {} catch (h) {} + + g || (g = function g(a, b, c, d) { + this.src = "", d && this.add(d); + }, g.prototype = { + add: function add(a) { + f.isArray(a) && (a = a.join("")), this.src += a; + }, + prepend: function prepend(a) { + f.isArray(a) && (a = a.join("")), this.src = a + this.src; + }, + toStringWithSourceMap: function toStringWithSourceMap() { + return { + code: this.toString() + }; + }, + toString: function toString() { + return this.src; + } + }), e.prototype = { + isEmpty: function isEmpty() { + return !this.source.length; + }, + prepend: function prepend(a, b) { + this.source.unshift(this.wrap(a, b)); + }, + push: function push(a, b) { + this.source.push(this.wrap(a, b)); + }, + merge: function merge() { + var a = this.empty(); + return this.each(function (b) { + a.add([" ", b, "\n"]); + }), a; + }, + each: function each(a) { + for (var b = 0, c = this.source.length; b < c; b++) { + a(this.source[b]); + } + }, + empty: function empty() { + var a = this.currentLocation || { + start: {} + }; + return new g(a.start.line, a.start.column, this.srcFile); + }, + wrap: function wrap(a) { + var b = arguments.length <= 1 || void 0 === arguments[1] ? this.currentLocation || { + start: {} + } : arguments[1]; + return a instanceof g ? a : (a = d(a, this, b), new g(b.start.line, b.start.column, this.srcFile, a)); + }, + functionCall: function functionCall(a, b, c) { + return c = this.generateList(c), this.wrap([a, b ? "." + b + "(" : "(", c, ")"]); + }, + quotedString: function quotedString(a) { + return '"' + (a + "").replace(/\\/g, "\\\\").replace(/"/g, '\\"').replace(/\n/g, "\\n").replace(/\r/g, "\\r").replace(/\u2028/g, "\\u2028").replace(/\u2029/g, "\\u2029") + '"'; + }, + objectLiteral: function objectLiteral(a) { + var b = []; + + for (var c in a) { + if (a.hasOwnProperty(c)) { + var e = d(a[c], this); + "undefined" !== e && b.push([this.quotedString(c), ":", e]); + } + } + + var f = this.generateList(b); + return f.prepend("{"), f.add("}"), f; + }, + generateList: function generateList(a) { + for (var b = this.empty(), c = 0, e = a.length; c < e; c++) { + c && b.add(","), b.add(d(a[c], this)); + } + + return b; + }, + generateArray: function generateArray(a) { + var b = this.generateList(a); + return b.prepend("["), b.add("]"), b; + } + }, b["default"] = e, a.exports = b["default"]; + }]); +}); // @license-end \ No newline at end of file diff --git a/src/iris/ui/static/js/dist/jquery-3.3.1.min.dev.js b/src/iris/ui/static/js/dist/jquery-3.3.1.min.dev.js new file mode 100644 index 00000000..51ad173e --- /dev/null +++ b/src/iris/ui/static/js/dist/jquery-3.3.1.min.dev.js @@ -0,0 +1,4047 @@ +"use strict"; + +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +/*! jQuery v3.3.1 | (c) JS Foundation and other contributors | jquery.org/license */ +!function (e, t) { + "use strict"; + + "object" == (typeof module === "undefined" ? "undefined" : _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 : void 0, function (e, t) { + "use strict"; + + var n = [], + r = e.document, + i = Object.getPrototypeOf, + o = n.slice, + a = n.concat, + s = n.push, + u = n.indexOf, + l = {}, + c = l.toString, + f = l.hasOwnProperty, + p = f.toString, + d = p.call(Object), + h = {}, + g = function e(t) { + return "function" == typeof t && "number" != typeof t.nodeType; + }, + y = function e(t) { + return null != t && t === t.window; + }, + v = { + type: !0, + src: !0, + noModule: !0 + }; + + function m(e, t, n) { + var i, + o = (t = t || r).createElement("script"); + if (o.text = e, n) for (i in v) { + n[i] && (o[i] = n[i]); + } + t.head.appendChild(o).parentNode.removeChild(o); + } + + function x(e) { + return null == e ? e + "" : "object" == _typeof(e) || "function" == typeof e ? l[c.call(e)] || "object" : _typeof(e); + } + + var b = "3.3.1", + w = function w(e, t) { + return new w.fn.init(e, t); + }, + T = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g; + + w.fn = w.prototype = { + jquery: "3.3.1", + constructor: w, + length: 0, + toArray: function toArray() { + return o.call(this); + }, + get: function get(e) { + return null == e ? o.call(this) : e < 0 ? this[e + this.length] : this[e]; + }, + pushStack: function pushStack(e) { + var t = w.merge(this.constructor(), e); + return t.prevObject = this, t; + }, + each: function each(e) { + return w.each(this, e); + }, + map: function map(e) { + return this.pushStack(w.map(this, function (t, n) { + return e.call(t, n, t); + })); + }, + slice: function slice() { + return this.pushStack(o.apply(this, arguments)); + }, + first: function first() { + return this.eq(0); + }, + last: function last() { + return this.eq(-1); + }, + eq: function eq(e) { + var t = this.length, + n = +e + (e < 0 ? t : 0); + return this.pushStack(n >= 0 && n < t ? [this[n]] : []); + }, + end: function end() { + return this.prevObject || this.constructor(); + }, + push: s, + sort: n.sort, + splice: n.splice + }, w.extend = w.fn.extend = function () { + var e, + t, + n, + r, + i, + o, + a = arguments[0] || {}, + s = 1, + u = arguments.length, + l = !1; + + for ("boolean" == typeof a && (l = a, a = arguments[s] || {}, s++), "object" == _typeof(a) || g(a) || (a = {}), s === u && (a = this, s--); s < u; s++) { + if (null != (e = arguments[s])) for (t in e) { + n = a[t], a !== (r = e[t]) && (l && r && (w.isPlainObject(r) || (i = Array.isArray(r))) ? (i ? (i = !1, o = n && Array.isArray(n) ? n : []) : o = n && w.isPlainObject(n) ? n : {}, a[t] = w.extend(l, o, r)) : void 0 !== r && (a[t] = r)); + } + } + + return a; + }, w.extend({ + expando: "jQuery" + ("3.3.1" + Math.random()).replace(/\D/g, ""), + isReady: !0, + error: function error(e) { + throw new Error(e); + }, + noop: function noop() {}, + isPlainObject: function isPlainObject(e) { + var t, n; + return !(!e || "[object Object]" !== c.call(e)) && (!(t = i(e)) || "function" == typeof (n = f.call(t, "constructor") && t.constructor) && p.call(n) === d); + }, + isEmptyObject: function isEmptyObject(e) { + var t; + + for (t in e) { + return !1; + } + + return !0; + }, + globalEval: function globalEval(e) { + m(e); + }, + each: function each(e, t) { + var n, + r = 0; + + if (C(e)) { + for (n = e.length; r < n; r++) { + if (!1 === t.call(e[r], r, e[r])) break; + } + } else for (r in e) { + if (!1 === t.call(e[r], r, e[r])) break; + } + + return e; + }, + trim: function trim(e) { + return null == e ? "" : (e + "").replace(T, ""); + }, + makeArray: function makeArray(e, t) { + var n = t || []; + return null != e && (C(Object(e)) ? w.merge(n, "string" == typeof e ? [e] : e) : s.call(n, e)), n; + }, + inArray: function inArray(e, t, n) { + return null == t ? -1 : u.call(t, e, n); + }, + merge: function merge(e, t) { + for (var n = +t.length, r = 0, i = e.length; r < n; r++) { + e[i++] = t[r]; + } + + return e.length = i, e; + }, + grep: function grep(e, t, n) { + for (var r, i = [], o = 0, a = e.length, s = !n; o < a; o++) { + (r = !t(e[o], o)) !== s && i.push(e[o]); + } + + return i; + }, + map: function map(e, t, n) { + var r, + i, + o = 0, + s = []; + if (C(e)) for (r = e.length; o < r; o++) { + null != (i = t(e[o], o, n)) && s.push(i); + } else for (o in e) { + null != (i = t(e[o], o, n)) && s.push(i); + } + return a.apply([], s); + }, + guid: 1, + support: h + }), "function" == typeof Symbol && (w.fn[Symbol.iterator] = n[Symbol.iterator]), w.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), function (e, t) { + l["[object " + t + "]"] = t.toLowerCase(); + }); + + function C(e) { + var t = !!e && "length" in e && e.length, + n = x(e); + return !g(e) && !y(e) && ("array" === n || 0 === t || "number" == typeof t && t > 0 && t - 1 in e); + } + + var E = function (e) { + var t, + n, + r, + i, + o, + a, + s, + u, + l, + c, + f, + p, + d, + h, + g, + y, + v, + m, + x, + b = "sizzle" + 1 * new Date(), + w = e.document, + T = 0, + C = 0, + E = ae(), + k = ae(), + S = ae(), + D = function D(e, t) { + return e === t && (f = !0), 0; + }, + N = {}.hasOwnProperty, + A = [], + j = A.pop, + q = A.push, + L = A.push, + H = A.slice, + O = function O(e, t) { + for (var n = 0, r = e.length; n < r; n++) { + if (e[n] === t) return n; + } + + return -1; + }, + P = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", + M = "[\\x20\\t\\r\\n\\f]", + R = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+", + I = "\\[" + M + "*(" + R + ")(?:" + M + "*([*^$|!~]?=)" + M + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + R + "))|)" + M + "*\\]", + W = ":(" + R + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + I + ")*)|.*)\\)|)", + $ = new RegExp(M + "+", "g"), + B = new RegExp("^" + M + "+|((?:^|[^\\\\])(?:\\\\.)*)" + M + "+$", "g"), + F = new RegExp("^" + M + "*," + M + "*"), + _ = new RegExp("^" + M + "*([>+~]|" + M + ")" + M + "*"), + z = new RegExp("=" + M + "*([^\\]'\"]*?)" + M + "*\\]", "g"), + X = new RegExp(W), + U = new RegExp("^" + R + "$"), + V = { + ID: new RegExp("^#(" + R + ")"), + CLASS: new RegExp("^\\.(" + R + ")"), + TAG: new RegExp("^(" + R + "|[*])"), + ATTR: new RegExp("^" + I), + PSEUDO: new RegExp("^" + W), + CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + M + "*(even|odd|(([+-]|)(\\d*)n|)" + M + "*(?:([+-]|)" + M + "*(\\d+)|))" + M + "*\\)|)", "i"), + bool: new RegExp("^(?:" + P + ")$", "i"), + needsContext: new RegExp("^" + M + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + M + "*((?:-\\d)?\\d*)" + M + "*\\)|)(?=[^-]|$)", "i") + }, + G = /^(?:input|select|textarea|button)$/i, + Y = /^h\d$/i, + Q = /^[^{]+\{\s*\[native \w/, + J = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, + K = /[+~]/, + Z = new RegExp("\\\\([\\da-f]{1,6}" + M + "?|(" + M + ")|.)", "ig"), + ee = function ee(e, t, n) { + var r = "0x" + t - 65536; + return r !== r || n ? t : r < 0 ? String.fromCharCode(r + 65536) : String.fromCharCode(r >> 10 | 55296, 1023 & r | 56320); + }, + te = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, + ne = function ne(e, t) { + return t ? "\0" === e ? "\uFFFD" : e.slice(0, -1) + "\\" + e.charCodeAt(e.length - 1).toString(16) + " " : "\\" + e; + }, + re = function re() { + p(); + }, + ie = me(function (e) { + return !0 === e.disabled && ("form" in e || "label" in e); + }, { + dir: "parentNode", + next: "legend" + }); + + try { + L.apply(A = H.call(w.childNodes), w.childNodes), A[w.childNodes.length].nodeType; + } catch (e) { + L = { + apply: A.length ? function (e, t) { + q.apply(e, H.call(t)); + } : function (e, t) { + var n = e.length, + r = 0; + + while (e[n++] = t[r++]) { + ; + } + + e.length = n - 1; + } + }; + } + + function oe(e, t, r, i) { + var o, + s, + l, + c, + f, + h, + v, + m = t && t.ownerDocument, + T = t ? t.nodeType : 9; + if (r = r || [], "string" != typeof e || !e || 1 !== T && 9 !== T && 11 !== T) return r; + + if (!i && ((t ? t.ownerDocument || t : w) !== d && p(t), t = t || d, g)) { + if (11 !== T && (f = J.exec(e))) if (o = f[1]) { + if (9 === T) { + if (!(l = t.getElementById(o))) return r; + if (l.id === o) return r.push(l), r; + } else if (m && (l = m.getElementById(o)) && x(t, l) && l.id === o) return r.push(l), r; + } else { + if (f[2]) return L.apply(r, t.getElementsByTagName(e)), r; + if ((o = f[3]) && n.getElementsByClassName && t.getElementsByClassName) return L.apply(r, t.getElementsByClassName(o)), r; + } + + if (n.qsa && !S[e + " "] && (!y || !y.test(e))) { + if (1 !== T) m = t, v = e;else if ("object" !== t.nodeName.toLowerCase()) { + (c = t.getAttribute("id")) ? c = c.replace(te, ne) : t.setAttribute("id", c = b), s = (h = a(e)).length; + + while (s--) { + h[s] = "#" + c + " " + ve(h[s]); + } + + v = h.join(","), m = K.test(e) && ge(t.parentNode) || t; + } + if (v) try { + return L.apply(r, m.querySelectorAll(v)), r; + } catch (e) {} finally { + c === b && t.removeAttribute("id"); + } + } + } + + return u(e.replace(B, "$1"), t, r, i); + } + + function ae() { + var e = []; + + function t(n, i) { + return e.push(n + " ") > r.cacheLength && delete t[e.shift()], t[n + " "] = i; + } + + return t; + } + + function se(e) { + return e[b] = !0, e; + } + + function ue(e) { + var t = d.createElement("fieldset"); + + try { + return !!e(t); + } catch (e) { + return !1; + } finally { + t.parentNode && t.parentNode.removeChild(t), t = null; + } + } + + function le(e, t) { + var n = e.split("|"), + i = n.length; + + while (i--) { + r.attrHandle[n[i]] = t; + } + } + + function ce(e, t) { + var n = t && e, + r = n && 1 === e.nodeType && 1 === t.nodeType && e.sourceIndex - t.sourceIndex; + if (r) return r; + if (n) while (n = n.nextSibling) { + if (n === t) return -1; + } + return e ? 1 : -1; + } + + function fe(e) { + return function (t) { + return "input" === t.nodeName.toLowerCase() && t.type === e; + }; + } + + function pe(e) { + return function (t) { + var n = t.nodeName.toLowerCase(); + return ("input" === n || "button" === n) && t.type === e; + }; + } + + function de(e) { + return function (t) { + return "form" in t ? t.parentNode && !1 === t.disabled ? "label" in t ? "label" in t.parentNode ? t.parentNode.disabled === e : t.disabled === e : t.isDisabled === e || t.isDisabled !== !e && ie(t) === e : t.disabled === e : "label" in t && t.disabled === e; + }; + } + + function he(e) { + return se(function (t) { + return t = +t, se(function (n, r) { + var i, + o = e([], n.length, t), + a = o.length; + + while (a--) { + n[i = o[a]] && (n[i] = !(r[i] = n[i])); + } + }); + }); + } + + function ge(e) { + return e && "undefined" != typeof e.getElementsByTagName && e; + } + + n = oe.support = {}, o = oe.isXML = function (e) { + var t = e && (e.ownerDocument || e).documentElement; + return !!t && "HTML" !== t.nodeName; + }, p = oe.setDocument = function (e) { + var t, + i, + a = e ? e.ownerDocument || e : w; + return a !== d && 9 === a.nodeType && a.documentElement ? (d = a, h = d.documentElement, g = !o(d), w !== d && (i = d.defaultView) && i.top !== i && (i.addEventListener ? i.addEventListener("unload", re, !1) : i.attachEvent && i.attachEvent("onunload", re)), n.attributes = ue(function (e) { + return e.className = "i", !e.getAttribute("className"); + }), n.getElementsByTagName = ue(function (e) { + return e.appendChild(d.createComment("")), !e.getElementsByTagName("*").length; + }), n.getElementsByClassName = Q.test(d.getElementsByClassName), n.getById = ue(function (e) { + return h.appendChild(e).id = b, !d.getElementsByName || !d.getElementsByName(b).length; + }), n.getById ? (r.filter.ID = function (e) { + var t = e.replace(Z, ee); + return function (e) { + return e.getAttribute("id") === t; + }; + }, r.find.ID = function (e, t) { + if ("undefined" != typeof t.getElementById && g) { + var n = t.getElementById(e); + return n ? [n] : []; + } + }) : (r.filter.ID = function (e) { + var t = e.replace(Z, ee); + return function (e) { + var n = "undefined" != typeof e.getAttributeNode && e.getAttributeNode("id"); + return n && n.value === t; + }; + }, r.find.ID = function (e, t) { + if ("undefined" != typeof t.getElementById && g) { + var n, + r, + i, + o = t.getElementById(e); + + if (o) { + if ((n = o.getAttributeNode("id")) && n.value === e) return [o]; + i = t.getElementsByName(e), r = 0; + + while (o = i[r++]) { + if ((n = o.getAttributeNode("id")) && n.value === e) return [o]; + } + } + + return []; + } + }), r.find.TAG = n.getElementsByTagName ? function (e, t) { + return "undefined" != typeof t.getElementsByTagName ? t.getElementsByTagName(e) : n.qsa ? t.querySelectorAll(e) : void 0; + } : function (e, t) { + var n, + r = [], + i = 0, + o = t.getElementsByTagName(e); + + if ("*" === e) { + while (n = o[i++]) { + 1 === n.nodeType && r.push(n); + } + + return r; + } + + return o; + }, r.find.CLASS = n.getElementsByClassName && function (e, t) { + if ("undefined" != typeof t.getElementsByClassName && g) return t.getElementsByClassName(e); + }, v = [], y = [], (n.qsa = Q.test(d.querySelectorAll)) && (ue(function (e) { + h.appendChild(e).innerHTML = "", e.querySelectorAll("[msallowcapture^='']").length && y.push("[*^$]=" + M + "*(?:''|\"\")"), e.querySelectorAll("[selected]").length || y.push("\\[" + M + "*(?:value|" + P + ")"), e.querySelectorAll("[id~=" + b + "-]").length || y.push("~="), e.querySelectorAll(":checked").length || y.push(":checked"), e.querySelectorAll("a#" + b + "+*").length || y.push(".#.+[+~]"); + }), ue(function (e) { + e.innerHTML = ""; + var t = d.createElement("input"); + t.setAttribute("type", "hidden"), e.appendChild(t).setAttribute("name", "D"), e.querySelectorAll("[name=d]").length && y.push("name" + M + "*[*^$|!~]?="), 2 !== e.querySelectorAll(":enabled").length && y.push(":enabled", ":disabled"), h.appendChild(e).disabled = !0, 2 !== e.querySelectorAll(":disabled").length && y.push(":enabled", ":disabled"), e.querySelectorAll("*,:x"), y.push(",.*:"); + })), (n.matchesSelector = Q.test(m = h.matches || h.webkitMatchesSelector || h.mozMatchesSelector || h.oMatchesSelector || h.msMatchesSelector)) && ue(function (e) { + n.disconnectedMatch = m.call(e, "*"), m.call(e, "[s!='']:x"), v.push("!=", W); + }), y = y.length && new RegExp(y.join("|")), v = v.length && new RegExp(v.join("|")), t = Q.test(h.compareDocumentPosition), x = t || Q.test(h.contains) ? function (e, t) { + var n = 9 === e.nodeType ? e.documentElement : e, + r = t && t.parentNode; + return e === r || !(!r || 1 !== r.nodeType || !(n.contains ? n.contains(r) : e.compareDocumentPosition && 16 & e.compareDocumentPosition(r))); + } : function (e, t) { + if (t) while (t = t.parentNode) { + if (t === e) return !0; + } + return !1; + }, D = t ? function (e, t) { + if (e === t) return f = !0, 0; + var r = !e.compareDocumentPosition - !t.compareDocumentPosition; + return r || (1 & (r = (e.ownerDocument || e) === (t.ownerDocument || t) ? e.compareDocumentPosition(t) : 1) || !n.sortDetached && t.compareDocumentPosition(e) === r ? e === d || e.ownerDocument === w && x(w, e) ? -1 : t === d || t.ownerDocument === w && x(w, t) ? 1 : c ? O(c, e) - O(c, t) : 0 : 4 & r ? -1 : 1); + } : function (e, t) { + if (e === t) return f = !0, 0; + var n, + r = 0, + i = e.parentNode, + o = t.parentNode, + a = [e], + s = [t]; + if (!i || !o) return e === d ? -1 : t === d ? 1 : i ? -1 : o ? 1 : c ? O(c, e) - O(c, t) : 0; + if (i === o) return ce(e, t); + n = e; + + while (n = n.parentNode) { + a.unshift(n); + } + + n = t; + + while (n = n.parentNode) { + s.unshift(n); + } + + while (a[r] === s[r]) { + r++; + } + + return r ? ce(a[r], s[r]) : a[r] === w ? -1 : s[r] === w ? 1 : 0; + }, d) : d; + }, oe.matches = function (e, t) { + return oe(e, null, null, t); + }, oe.matchesSelector = function (e, t) { + if ((e.ownerDocument || e) !== d && p(e), t = t.replace(z, "='$1']"), n.matchesSelector && g && !S[t + " "] && (!v || !v.test(t)) && (!y || !y.test(t))) try { + var r = m.call(e, t); + if (r || n.disconnectedMatch || e.document && 11 !== e.document.nodeType) return r; + } catch (e) {} + return oe(t, d, null, [e]).length > 0; + }, oe.contains = function (e, t) { + return (e.ownerDocument || e) !== d && p(e), x(e, t); + }, oe.attr = function (e, t) { + (e.ownerDocument || e) !== d && p(e); + var i = r.attrHandle[t.toLowerCase()], + o = i && N.call(r.attrHandle, t.toLowerCase()) ? i(e, t, !g) : void 0; + return void 0 !== o ? o : n.attributes || !g ? e.getAttribute(t) : (o = e.getAttributeNode(t)) && o.specified ? o.value : null; + }, oe.escape = function (e) { + return (e + "").replace(te, ne); + }, oe.error = function (e) { + throw new Error("Syntax error, unrecognized expression: " + e); + }, oe.uniqueSort = function (e) { + var t, + r = [], + i = 0, + o = 0; + + if (f = !n.detectDuplicates, c = !n.sortStable && e.slice(0), e.sort(D), f) { + while (t = e[o++]) { + t === e[o] && (i = r.push(o)); + } + + while (i--) { + e.splice(r[i], 1); + } + } + + return c = null, e; + }, i = oe.getText = function (e) { + var t, + n = "", + r = 0, + o = e.nodeType; + + if (o) { + if (1 === o || 9 === o || 11 === o) { + if ("string" == typeof e.textContent) return e.textContent; + + for (e = e.firstChild; e; e = e.nextSibling) { + n += i(e); + } + } else if (3 === o || 4 === o) return e.nodeValue; + } else while (t = e[r++]) { + n += i(t); + } + + return n; + }, (r = oe.selectors = { + cacheLength: 50, + createPseudo: se, + match: V, + attrHandle: {}, + find: {}, + relative: { + ">": { + dir: "parentNode", + first: !0 + }, + " ": { + dir: "parentNode" + }, + "+": { + dir: "previousSibling", + first: !0 + }, + "~": { + dir: "previousSibling" + } + }, + preFilter: { + ATTR: function ATTR(e) { + return e[1] = e[1].replace(Z, ee), e[3] = (e[3] || e[4] || e[5] || "").replace(Z, ee), "~=" === e[2] && (e[3] = " " + e[3] + " "), e.slice(0, 4); + }, + CHILD: function CHILD(e) { + return e[1] = e[1].toLowerCase(), "nth" === e[1].slice(0, 3) ? (e[3] || oe.error(e[0]), e[4] = +(e[4] ? e[5] + (e[6] || 1) : 2 * ("even" === e[3] || "odd" === e[3])), e[5] = +(e[7] + e[8] || "odd" === e[3])) : e[3] && oe.error(e[0]), e; + }, + PSEUDO: function PSEUDO(e) { + var t, + n = !e[6] && e[2]; + return V.CHILD.test(e[0]) ? null : (e[3] ? e[2] = e[4] || e[5] || "" : n && X.test(n) && (t = a(n, !0)) && (t = n.indexOf(")", n.length - t) - n.length) && (e[0] = e[0].slice(0, t), e[2] = n.slice(0, t)), e.slice(0, 3)); + } + }, + filter: { + TAG: function TAG(e) { + var t = e.replace(Z, ee).toLowerCase(); + return "*" === e ? function () { + return !0; + } : function (e) { + return e.nodeName && e.nodeName.toLowerCase() === t; + }; + }, + CLASS: function CLASS(e) { + var t = E[e + " "]; + return t || (t = new RegExp("(^|" + M + ")" + e + "(" + M + "|$)")) && E(e, function (e) { + return t.test("string" == typeof e.className && e.className || "undefined" != typeof e.getAttribute && e.getAttribute("class") || ""); + }); + }, + ATTR: function ATTR(e, t, n) { + return function (r) { + var i = oe.attr(r, e); + return null == i ? "!=" === t : !t || (i += "", "=" === t ? i === n : "!=" === t ? i !== n : "^=" === t ? n && 0 === i.indexOf(n) : "*=" === t ? n && i.indexOf(n) > -1 : "$=" === t ? n && i.slice(-n.length) === n : "~=" === t ? (" " + i.replace($, " ") + " ").indexOf(n) > -1 : "|=" === t && (i === n || i.slice(0, n.length + 1) === n + "-")); + }; + }, + CHILD: function CHILD(e, t, n, r, i) { + var o = "nth" !== e.slice(0, 3), + a = "last" !== e.slice(-4), + s = "of-type" === t; + return 1 === r && 0 === i ? function (e) { + return !!e.parentNode; + } : function (t, n, u) { + var l, + c, + f, + p, + d, + h, + g = o !== a ? "nextSibling" : "previousSibling", + y = t.parentNode, + v = s && t.nodeName.toLowerCase(), + m = !u && !s, + x = !1; + + if (y) { + if (o) { + while (g) { + p = t; + + while (p = p[g]) { + if (s ? p.nodeName.toLowerCase() === v : 1 === p.nodeType) return !1; + } + + h = g = "only" === e && !h && "nextSibling"; + } + + return !0; + } + + if (h = [a ? y.firstChild : y.lastChild], a && m) { + x = (d = (l = (c = (f = (p = y)[b] || (p[b] = {}))[p.uniqueID] || (f[p.uniqueID] = {}))[e] || [])[0] === T && l[1]) && l[2], p = d && y.childNodes[d]; + + while (p = ++d && p && p[g] || (x = d = 0) || h.pop()) { + if (1 === p.nodeType && ++x && p === t) { + c[e] = [T, d, x]; + break; + } + } + } else if (m && (x = d = (l = (c = (f = (p = t)[b] || (p[b] = {}))[p.uniqueID] || (f[p.uniqueID] = {}))[e] || [])[0] === T && l[1]), !1 === x) while (p = ++d && p && p[g] || (x = d = 0) || h.pop()) { + if ((s ? p.nodeName.toLowerCase() === v : 1 === p.nodeType) && ++x && (m && ((c = (f = p[b] || (p[b] = {}))[p.uniqueID] || (f[p.uniqueID] = {}))[e] = [T, x]), p === t)) break; + } + + return (x -= i) === r || x % r == 0 && x / r >= 0; + } + }; + }, + PSEUDO: function PSEUDO(e, t) { + var n, + i = r.pseudos[e] || r.setFilters[e.toLowerCase()] || oe.error("unsupported pseudo: " + e); + return i[b] ? i(t) : i.length > 1 ? (n = [e, e, "", t], r.setFilters.hasOwnProperty(e.toLowerCase()) ? se(function (e, n) { + var r, + o = i(e, t), + a = o.length; + + while (a--) { + e[r = O(e, o[a])] = !(n[r] = o[a]); + } + }) : function (e) { + return i(e, 0, n); + }) : i; + } + }, + pseudos: { + not: se(function (e) { + var t = [], + n = [], + r = s(e.replace(B, "$1")); + return r[b] ? se(function (e, t, n, i) { + var o, + a = r(e, null, i, []), + s = e.length; + + while (s--) { + (o = a[s]) && (e[s] = !(t[s] = o)); + } + }) : function (e, i, o) { + return t[0] = e, r(t, null, o, n), t[0] = null, !n.pop(); + }; + }), + has: se(function (e) { + return function (t) { + return oe(e, t).length > 0; + }; + }), + contains: se(function (e) { + return e = e.replace(Z, ee), function (t) { + return (t.textContent || t.innerText || i(t)).indexOf(e) > -1; + }; + }), + lang: se(function (e) { + return U.test(e || "") || oe.error("unsupported lang: " + e), e = e.replace(Z, ee).toLowerCase(), function (t) { + var n; + + do { + if (n = g ? t.lang : t.getAttribute("xml:lang") || t.getAttribute("lang")) return (n = n.toLowerCase()) === e || 0 === n.indexOf(e + "-"); + } while ((t = t.parentNode) && 1 === t.nodeType); + + return !1; + }; + }), + target: function target(t) { + var n = e.location && e.location.hash; + return n && n.slice(1) === t.id; + }, + root: function root(e) { + return e === h; + }, + focus: function focus(e) { + return e === d.activeElement && (!d.hasFocus || d.hasFocus()) && !!(e.type || e.href || ~e.tabIndex); + }, + enabled: de(!1), + disabled: de(!0), + checked: function checked(e) { + var t = e.nodeName.toLowerCase(); + return "input" === t && !!e.checked || "option" === t && !!e.selected; + }, + selected: function selected(e) { + return e.parentNode && e.parentNode.selectedIndex, !0 === e.selected; + }, + empty: function empty(e) { + for (e = e.firstChild; e; e = e.nextSibling) { + if (e.nodeType < 6) return !1; + } + + return !0; + }, + parent: function parent(e) { + return !r.pseudos.empty(e); + }, + header: function header(e) { + return Y.test(e.nodeName); + }, + input: function input(e) { + return G.test(e.nodeName); + }, + button: function button(e) { + var t = e.nodeName.toLowerCase(); + return "input" === t && "button" === e.type || "button" === t; + }, + text: function text(e) { + var t; + return "input" === e.nodeName.toLowerCase() && "text" === e.type && (null == (t = e.getAttribute("type")) || "text" === t.toLowerCase()); + }, + first: he(function () { + return [0]; + }), + last: he(function (e, t) { + return [t - 1]; + }), + eq: he(function (e, t, n) { + return [n < 0 ? n + t : n]; + }), + even: he(function (e, t) { + for (var n = 0; n < t; n += 2) { + e.push(n); + } + + return e; + }), + odd: he(function (e, t) { + for (var n = 1; n < t; n += 2) { + e.push(n); + } + + return e; + }), + lt: he(function (e, t, n) { + for (var r = n < 0 ? n + t : n; --r >= 0;) { + e.push(r); + } + + return e; + }), + gt: he(function (e, t, n) { + for (var r = n < 0 ? n + t : n; ++r < t;) { + e.push(r); + } + + return e; + }) + } + }).pseudos.nth = r.pseudos.eq; + + for (t in { + radio: !0, + checkbox: !0, + file: !0, + password: !0, + image: !0 + }) { + r.pseudos[t] = fe(t); + } + + for (t in { + submit: !0, + reset: !0 + }) { + r.pseudos[t] = pe(t); + } + + function ye() {} + + ye.prototype = r.filters = r.pseudos, r.setFilters = new ye(), a = oe.tokenize = function (e, t) { + var n, + i, + o, + a, + s, + u, + l, + c = k[e + " "]; + if (c) return t ? 0 : c.slice(0); + s = e, u = [], l = r.preFilter; + + while (s) { + n && !(i = F.exec(s)) || (i && (s = s.slice(i[0].length) || s), u.push(o = [])), n = !1, (i = _.exec(s)) && (n = i.shift(), o.push({ + value: n, + type: i[0].replace(B, " ") + }), s = s.slice(n.length)); + + for (a in r.filter) { + !(i = V[a].exec(s)) || l[a] && !(i = l[a](i)) || (n = i.shift(), o.push({ + value: n, + type: a, + matches: i + }), s = s.slice(n.length)); + } + + if (!n) break; + } + + return t ? s.length : s ? oe.error(e) : k(e, u).slice(0); + }; + + function ve(e) { + for (var t = 0, n = e.length, r = ""; t < n; t++) { + r += e[t].value; + } + + return r; + } + + function me(e, t, n) { + var r = t.dir, + i = t.next, + o = i || r, + a = n && "parentNode" === o, + s = C++; + return t.first ? function (t, n, i) { + while (t = t[r]) { + if (1 === t.nodeType || a) return e(t, n, i); + } + + return !1; + } : function (t, n, u) { + var l, + c, + f, + p = [T, s]; + + if (u) { + while (t = t[r]) { + if ((1 === t.nodeType || a) && e(t, n, u)) return !0; + } + } else while (t = t[r]) { + if (1 === t.nodeType || a) if (f = t[b] || (t[b] = {}), c = f[t.uniqueID] || (f[t.uniqueID] = {}), i && i === t.nodeName.toLowerCase()) t = t[r] || t;else { + if ((l = c[o]) && l[0] === T && l[1] === s) return p[2] = l[2]; + if (c[o] = p, p[2] = e(t, n, u)) return !0; + } + } + + return !1; + }; + } + + function xe(e) { + return e.length > 1 ? function (t, n, r) { + var i = e.length; + + while (i--) { + if (!e[i](t, n, r)) return !1; + } + + return !0; + } : e[0]; + } + + function be(e, t, n) { + for (var r = 0, i = t.length; r < i; r++) { + oe(e, t[r], n); + } + + return n; + } + + function we(e, t, n, r, i) { + for (var o, a = [], s = 0, u = e.length, l = null != t; s < u; s++) { + (o = e[s]) && (n && !n(o, r, i) || (a.push(o), l && t.push(s))); + } + + return a; + } + + function Te(e, t, n, r, i, o) { + return r && !r[b] && (r = Te(r)), i && !i[b] && (i = Te(i, o)), se(function (o, a, s, u) { + var l, + c, + f, + p = [], + d = [], + h = a.length, + g = o || be(t || "*", s.nodeType ? [s] : s, []), + y = !e || !o && t ? g : we(g, p, e, s, u), + v = n ? i || (o ? e : h || r) ? [] : a : y; + + if (n && n(y, v, s, u), r) { + l = we(v, d), r(l, [], s, u), c = l.length; + + while (c--) { + (f = l[c]) && (v[d[c]] = !(y[d[c]] = f)); + } + } + + if (o) { + if (i || e) { + if (i) { + l = [], c = v.length; + + while (c--) { + (f = v[c]) && l.push(y[c] = f); + } + + i(null, v = [], l, u); + } + + c = v.length; + + while (c--) { + (f = v[c]) && (l = i ? O(o, f) : p[c]) > -1 && (o[l] = !(a[l] = f)); + } + } + } else v = we(v === a ? v.splice(h, v.length) : v), i ? i(null, a, v, u) : L.apply(a, v); + }); + } + + function Ce(e) { + for (var t, n, i, o = e.length, a = r.relative[e[0].type], s = a || r.relative[" "], u = a ? 1 : 0, c = me(function (e) { + return e === t; + }, s, !0), f = me(function (e) { + return O(t, e) > -1; + }, s, !0), p = [function (e, n, r) { + var i = !a && (r || n !== l) || ((t = n).nodeType ? c(e, n, r) : f(e, n, r)); + return t = null, i; + }]; u < o; u++) { + if (n = r.relative[e[u].type]) p = [me(xe(p), n)];else { + if ((n = r.filter[e[u].type].apply(null, e[u].matches))[b]) { + for (i = ++u; i < o; i++) { + if (r.relative[e[i].type]) break; + } + + return Te(u > 1 && xe(p), u > 1 && ve(e.slice(0, u - 1).concat({ + value: " " === e[u - 2].type ? "*" : "" + })).replace(B, "$1"), n, u < i && Ce(e.slice(u, i)), i < o && Ce(e = e.slice(i)), i < o && ve(e)); + } + + p.push(n); + } + } + + return xe(p); + } + + function Ee(e, t) { + var n = t.length > 0, + i = e.length > 0, + o = function o(_o, a, s, u, c) { + var f, + h, + y, + v = 0, + m = "0", + x = _o && [], + b = [], + w = l, + C = _o || i && r.find.TAG("*", c), + E = T += null == w ? 1 : Math.random() || .1, + k = C.length; + + for (c && (l = a === d || a || c); m !== k && null != (f = C[m]); m++) { + if (i && f) { + h = 0, a || f.ownerDocument === d || (p(f), s = !g); + + while (y = e[h++]) { + if (y(f, a || d, s)) { + u.push(f); + break; + } + } + + c && (T = E); + } + + n && ((f = !y && f) && v--, _o && x.push(f)); + } + + if (v += m, n && m !== v) { + h = 0; + + while (y = t[h++]) { + y(x, b, a, s); + } + + if (_o) { + if (v > 0) while (m--) { + x[m] || b[m] || (b[m] = j.call(u)); + } + b = we(b); + } + + L.apply(u, b), c && !_o && b.length > 0 && v + t.length > 1 && oe.uniqueSort(u); + } + + return c && (T = E, l = w), x; + }; + + return n ? se(o) : o; + } + + return s = oe.compile = function (e, t) { + var n, + r = [], + i = [], + o = S[e + " "]; + + if (!o) { + t || (t = a(e)), n = t.length; + + while (n--) { + (o = Ce(t[n]))[b] ? r.push(o) : i.push(o); + } + + (o = S(e, Ee(i, r))).selector = e; + } + + return o; + }, u = oe.select = function (e, t, n, i) { + var o, + u, + l, + c, + f, + p = "function" == typeof e && e, + d = !i && a(e = p.selector || e); + + if (n = n || [], 1 === d.length) { + if ((u = d[0] = d[0].slice(0)).length > 2 && "ID" === (l = u[0]).type && 9 === t.nodeType && g && r.relative[u[1].type]) { + if (!(t = (r.find.ID(l.matches[0].replace(Z, ee), t) || [])[0])) return n; + p && (t = t.parentNode), e = e.slice(u.shift().value.length); + } + + o = V.needsContext.test(e) ? 0 : u.length; + + while (o--) { + if (l = u[o], r.relative[c = l.type]) break; + + if ((f = r.find[c]) && (i = f(l.matches[0].replace(Z, ee), K.test(u[0].type) && ge(t.parentNode) || t))) { + if (u.splice(o, 1), !(e = i.length && ve(u))) return L.apply(n, i), n; + break; + } + } + } + + return (p || s(e, d))(i, t, !g, n, !t || K.test(e) && ge(t.parentNode) || t), n; + }, n.sortStable = b.split("").sort(D).join("") === b, n.detectDuplicates = !!f, p(), n.sortDetached = ue(function (e) { + return 1 & e.compareDocumentPosition(d.createElement("fieldset")); + }), ue(function (e) { + return e.innerHTML = "", "#" === e.firstChild.getAttribute("href"); + }) || le("type|href|height|width", function (e, t, n) { + if (!n) return e.getAttribute(t, "type" === t.toLowerCase() ? 1 : 2); + }), n.attributes && ue(function (e) { + return e.innerHTML = "", e.firstChild.setAttribute("value", ""), "" === e.firstChild.getAttribute("value"); + }) || le("value", function (e, t, n) { + if (!n && "input" === e.nodeName.toLowerCase()) return e.defaultValue; + }), ue(function (e) { + return null == e.getAttribute("disabled"); + }) || le(P, function (e, t, n) { + var r; + if (!n) return !0 === e[t] ? t.toLowerCase() : (r = e.getAttributeNode(t)) && r.specified ? r.value : null; + }), oe; + }(e); + + w.find = E, w.expr = E.selectors, w.expr[":"] = w.expr.pseudos, w.uniqueSort = w.unique = E.uniqueSort, w.text = E.getText, w.isXMLDoc = E.isXML, w.contains = E.contains, w.escapeSelector = E.escape; + + var k = function k(e, t, n) { + var r = [], + i = void 0 !== n; + + while ((e = e[t]) && 9 !== e.nodeType) { + if (1 === e.nodeType) { + if (i && w(e).is(n)) break; + r.push(e); + } + } + + return r; + }, + S = function S(e, t) { + for (var n = []; e; e = e.nextSibling) { + 1 === e.nodeType && e !== t && n.push(e); + } + + return n; + }, + D = w.expr.match.needsContext; + + function N(e, t) { + return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase(); + } + + var A = /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i; + + function j(e, t, n) { + return g(t) ? w.grep(e, function (e, r) { + return !!t.call(e, r, e) !== n; + }) : t.nodeType ? w.grep(e, function (e) { + return e === t !== n; + }) : "string" != typeof t ? w.grep(e, function (e) { + return u.call(t, e) > -1 !== n; + }) : w.filter(t, e, n); + } + + w.filter = function (e, t, n) { + var r = t[0]; + return n && (e = ":not(" + e + ")"), 1 === t.length && 1 === r.nodeType ? w.find.matchesSelector(r, e) ? [r] : [] : w.find.matches(e, w.grep(t, function (e) { + return 1 === e.nodeType; + })); + }, w.fn.extend({ + find: function find(e) { + var t, + n, + r = this.length, + i = this; + if ("string" != typeof e) return this.pushStack(w(e).filter(function () { + for (t = 0; t < r; t++) { + if (w.contains(i[t], this)) return !0; + } + })); + + for (n = this.pushStack([]), t = 0; t < r; t++) { + w.find(e, i[t], n); + } + + return r > 1 ? w.uniqueSort(n) : n; + }, + filter: function filter(e) { + return this.pushStack(j(this, e || [], !1)); + }, + not: function not(e) { + return this.pushStack(j(this, e || [], !0)); + }, + is: function is(e) { + return !!j(this, "string" == typeof e && D.test(e) ? w(e) : e || [], !1).length; + } + }); + var q, + L = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/; + (w.fn.init = function (e, t, n) { + var i, o; + if (!e) return this; + + if (n = n || q, "string" == typeof e) { + if (!(i = "<" === e[0] && ">" === e[e.length - 1] && e.length >= 3 ? [null, e, null] : L.exec(e)) || !i[1] && t) return !t || t.jquery ? (t || n).find(e) : this.constructor(t).find(e); + + if (i[1]) { + if (t = t instanceof w ? t[0] : t, w.merge(this, w.parseHTML(i[1], t && t.nodeType ? t.ownerDocument || t : r, !0)), A.test(i[1]) && w.isPlainObject(t)) for (i in t) { + g(this[i]) ? this[i](t[i]) : this.attr(i, t[i]); + } + return this; + } + + return (o = r.getElementById(i[2])) && (this[0] = o, this.length = 1), this; + } + + return e.nodeType ? (this[0] = e, this.length = 1, this) : g(e) ? void 0 !== n.ready ? n.ready(e) : e(w) : w.makeArray(e, this); + }).prototype = w.fn, q = w(r); + var H = /^(?:parents|prev(?:Until|All))/, + O = { + children: !0, + contents: !0, + next: !0, + prev: !0 + }; + w.fn.extend({ + has: function has(e) { + var t = w(e, this), + n = t.length; + return this.filter(function () { + for (var e = 0; e < n; e++) { + if (w.contains(this, t[e])) return !0; + } + }); + }, + closest: function closest(e, t) { + var n, + r = 0, + i = this.length, + o = [], + a = "string" != typeof e && w(e); + if (!D.test(e)) for (; r < i; r++) { + for (n = this[r]; n && n !== t; n = n.parentNode) { + if (n.nodeType < 11 && (a ? a.index(n) > -1 : 1 === n.nodeType && w.find.matchesSelector(n, e))) { + o.push(n); + break; + } + } + } + return this.pushStack(o.length > 1 ? w.uniqueSort(o) : o); + }, + index: function index(e) { + return e ? "string" == typeof e ? u.call(w(e), this[0]) : u.call(this, e.jquery ? e[0] : e) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1; + }, + add: function add(e, t) { + return this.pushStack(w.uniqueSort(w.merge(this.get(), w(e, t)))); + }, + addBack: function addBack(e) { + return this.add(null == e ? this.prevObject : this.prevObject.filter(e)); + } + }); + + function P(e, t) { + while ((e = e[t]) && 1 !== e.nodeType) { + ; + } + + return e; + } + + w.each({ + parent: function parent(e) { + var t = e.parentNode; + return t && 11 !== t.nodeType ? t : null; + }, + parents: function parents(e) { + return k(e, "parentNode"); + }, + parentsUntil: function parentsUntil(e, t, n) { + return k(e, "parentNode", n); + }, + next: function next(e) { + return P(e, "nextSibling"); + }, + prev: function prev(e) { + return P(e, "previousSibling"); + }, + nextAll: function nextAll(e) { + return k(e, "nextSibling"); + }, + prevAll: function prevAll(e) { + return k(e, "previousSibling"); + }, + nextUntil: function nextUntil(e, t, n) { + return k(e, "nextSibling", n); + }, + prevUntil: function prevUntil(e, t, n) { + return k(e, "previousSibling", n); + }, + siblings: function siblings(e) { + return S((e.parentNode || {}).firstChild, e); + }, + children: function children(e) { + return S(e.firstChild); + }, + contents: function contents(e) { + return N(e, "iframe") ? e.contentDocument : (N(e, "template") && (e = e.content || e), w.merge([], e.childNodes)); + } + }, function (e, t) { + w.fn[e] = function (n, r) { + var i = w.map(this, t, n); + return "Until" !== e.slice(-5) && (r = n), r && "string" == typeof r && (i = w.filter(r, i)), this.length > 1 && (O[e] || w.uniqueSort(i), H.test(e) && i.reverse()), this.pushStack(i); + }; + }); + var M = /[^\x20\t\r\n\f]+/g; + + function R(e) { + var t = {}; + return w.each(e.match(M) || [], function (e, n) { + t[n] = !0; + }), t; + } + + w.Callbacks = function (e) { + e = "string" == typeof e ? R(e) : w.extend({}, e); + + var t, + n, + r, + i, + o = [], + a = [], + s = -1, + u = function u() { + for (i = i || e.once, r = t = !0; a.length; s = -1) { + n = a.shift(); + + while (++s < o.length) { + !1 === o[s].apply(n[0], n[1]) && e.stopOnFalse && (s = o.length, n = !1); + } + } + + e.memory || (n = !1), t = !1, i && (o = n ? [] : ""); + }, + l = { + add: function add() { + return o && (n && !t && (s = o.length - 1, a.push(n)), function t(n) { + w.each(n, function (n, r) { + g(r) ? e.unique && l.has(r) || o.push(r) : r && r.length && "string" !== x(r) && t(r); + }); + }(arguments), n && !t && u()), this; + }, + remove: function remove() { + return w.each(arguments, function (e, t) { + var n; + + while ((n = w.inArray(t, o, n)) > -1) { + o.splice(n, 1), n <= s && s--; + } + }), this; + }, + has: function has(e) { + return e ? w.inArray(e, o) > -1 : o.length > 0; + }, + empty: function empty() { + return o && (o = []), this; + }, + disable: function disable() { + return i = a = [], o = n = "", this; + }, + disabled: function disabled() { + return !o; + }, + lock: function lock() { + return i = a = [], n || t || (o = n = ""), this; + }, + locked: function locked() { + return !!i; + }, + fireWith: function fireWith(e, n) { + return i || (n = [e, (n = n || []).slice ? n.slice() : n], a.push(n), t || u()), this; + }, + fire: function fire() { + return l.fireWith(this, arguments), this; + }, + fired: function fired() { + return !!r; + } + }; + + return l; + }; + + function I(e) { + return e; + } + + function W(e) { + throw e; + } + + function $(e, t, n, r) { + var i; + + try { + e && g(i = e.promise) ? i.call(e).done(t).fail(n) : e && g(i = e.then) ? i.call(e, t, n) : t.apply(void 0, [e].slice(r)); + } catch (e) { + n.apply(void 0, [e]); + } + } + + w.extend({ + Deferred: function Deferred(t) { + var n = [["notify", "progress", w.Callbacks("memory"), w.Callbacks("memory"), 2], ["resolve", "done", w.Callbacks("once memory"), w.Callbacks("once memory"), 0, "resolved"], ["reject", "fail", w.Callbacks("once memory"), w.Callbacks("once memory"), 1, "rejected"]], + r = "pending", + i = { + state: function state() { + return r; + }, + always: function always() { + return o.done(arguments).fail(arguments), this; + }, + "catch": function _catch(e) { + return i.then(null, e); + }, + pipe: function pipe() { + var e = arguments; + return w.Deferred(function (t) { + w.each(n, function (n, r) { + var i = g(e[r[4]]) && e[r[4]]; + o[r[1]](function () { + var e = i && i.apply(this, arguments); + e && g(e.promise) ? e.promise().progress(t.notify).done(t.resolve).fail(t.reject) : t[r[0] + "With"](this, i ? [e] : arguments); + }); + }), e = null; + }).promise(); + }, + then: function then(t, r, i) { + var o = 0; + + function a(t, n, r, i) { + return function () { + var s = this, + u = arguments, + l = function l() { + var e, l; + + if (!(t < o)) { + if ((e = r.apply(s, u)) === n.promise()) throw new TypeError("Thenable self-resolution"); + l = e && ("object" == _typeof(e) || "function" == typeof e) && e.then, g(l) ? i ? l.call(e, a(o, n, I, i), a(o, n, W, i)) : (o++, l.call(e, a(o, n, I, i), a(o, n, W, i), a(o, n, I, n.notifyWith))) : (r !== I && (s = void 0, u = [e]), (i || n.resolveWith)(s, u)); + } + }, + c = i ? l : function () { + try { + l(); + } catch (e) { + w.Deferred.exceptionHook && w.Deferred.exceptionHook(e, c.stackTrace), t + 1 >= o && (r !== W && (s = void 0, u = [e]), n.rejectWith(s, u)); + } + }; + + t ? c() : (w.Deferred.getStackHook && (c.stackTrace = w.Deferred.getStackHook()), e.setTimeout(c)); + }; + } + + return w.Deferred(function (e) { + n[0][3].add(a(0, e, g(i) ? i : I, e.notifyWith)), n[1][3].add(a(0, e, g(t) ? t : I)), n[2][3].add(a(0, e, g(r) ? r : W)); + }).promise(); + }, + promise: function promise(e) { + return null != e ? w.extend(e, i) : i; + } + }, + o = {}; + return w.each(n, function (e, t) { + var a = t[2], + s = t[5]; + i[t[1]] = a.add, s && a.add(function () { + r = s; + }, n[3 - e][2].disable, n[3 - e][3].disable, n[0][2].lock, n[0][3].lock), a.add(t[3].fire), o[t[0]] = function () { + return o[t[0] + "With"](this === o ? void 0 : this, arguments), this; + }, o[t[0] + "With"] = a.fireWith; + }), i.promise(o), t && t.call(o, o), o; + }, + when: function when(e) { + var t = arguments.length, + n = t, + r = Array(n), + i = o.call(arguments), + a = w.Deferred(), + s = function s(e) { + return function (n) { + r[e] = this, i[e] = arguments.length > 1 ? o.call(arguments) : n, --t || a.resolveWith(r, i); + }; + }; + + if (t <= 1 && ($(e, a.done(s(n)).resolve, a.reject, !t), "pending" === a.state() || g(i[n] && i[n].then))) return a.then(); + + while (n--) { + $(i[n], s(n), a.reject); + } + + return a.promise(); + } + }); + var B = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; + w.Deferred.exceptionHook = function (t, n) { + e.console && e.console.warn && t && B.test(t.name) && e.console.warn("jQuery.Deferred exception: " + t.message, t.stack, n); + }, w.readyException = function (t) { + e.setTimeout(function () { + throw t; + }); + }; + var F = w.Deferred(); + w.fn.ready = function (e) { + return F.then(e)["catch"](function (e) { + w.readyException(e); + }), this; + }, w.extend({ + isReady: !1, + readyWait: 1, + ready: function ready(e) { + (!0 === e ? --w.readyWait : w.isReady) || (w.isReady = !0, !0 !== e && --w.readyWait > 0 || F.resolveWith(r, [w])); + } + }), w.ready.then = F.then; + + function _() { + r.removeEventListener("DOMContentLoaded", _), e.removeEventListener("load", _), w.ready(); + } + + "complete" === r.readyState || "loading" !== r.readyState && !r.documentElement.doScroll ? e.setTimeout(w.ready) : (r.addEventListener("DOMContentLoaded", _), e.addEventListener("load", _)); + + var z = function z(e, t, n, r, i, o, a) { + var s = 0, + u = e.length, + l = null == n; + + if ("object" === x(n)) { + i = !0; + + for (s in n) { + z(e, t, s, n[s], !0, o, a); + } + } else if (void 0 !== r && (i = !0, g(r) || (a = !0), l && (a ? (t.call(e, r), t = null) : (l = t, t = function t(e, _t2, n) { + return l.call(w(e), n); + })), t)) for (; s < u; s++) { + t(e[s], n, a ? r : r.call(e[s], s, t(e[s], n))); + } + + return i ? e : l ? t.call(e) : u ? t(e[0], n) : o; + }, + X = /^-ms-/, + U = /-([a-z])/g; + + function V(e, t) { + return t.toUpperCase(); + } + + function G(e) { + return e.replace(X, "ms-").replace(U, V); + } + + var Y = function Y(e) { + return 1 === e.nodeType || 9 === e.nodeType || !+e.nodeType; + }; + + function Q() { + this.expando = w.expando + Q.uid++; + } + + Q.uid = 1, Q.prototype = { + cache: function cache(e) { + var t = e[this.expando]; + return t || (t = {}, Y(e) && (e.nodeType ? e[this.expando] = t : Object.defineProperty(e, this.expando, { + value: t, + configurable: !0 + }))), t; + }, + set: function set(e, t, n) { + var r, + i = this.cache(e); + if ("string" == typeof t) i[G(t)] = n;else for (r in t) { + i[G(r)] = t[r]; + } + return i; + }, + get: function get(e, t) { + return void 0 === t ? this.cache(e) : e[this.expando] && e[this.expando][G(t)]; + }, + access: function access(e, t, n) { + return void 0 === t || t && "string" == typeof t && void 0 === n ? this.get(e, t) : (this.set(e, t, n), void 0 !== n ? n : t); + }, + remove: function remove(e, t) { + var n, + r = e[this.expando]; + + if (void 0 !== r) { + if (void 0 !== t) { + n = (t = Array.isArray(t) ? t.map(G) : (t = G(t)) in r ? [t] : t.match(M) || []).length; + + while (n--) { + delete r[t[n]]; + } + } + + (void 0 === t || w.isEmptyObject(r)) && (e.nodeType ? e[this.expando] = void 0 : delete e[this.expando]); + } + }, + hasData: function hasData(e) { + var t = e[this.expando]; + return void 0 !== t && !w.isEmptyObject(t); + } + }; + var J = new Q(), + K = new Q(), + Z = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, + ee = /[A-Z]/g; + + function te(e) { + return "true" === e || "false" !== e && ("null" === e ? null : e === +e + "" ? +e : Z.test(e) ? JSON.parse(e) : e); + } + + function ne(e, t, n) { + var r; + if (void 0 === n && 1 === e.nodeType) if (r = "data-" + t.replace(ee, "-$&").toLowerCase(), "string" == typeof (n = e.getAttribute(r))) { + try { + n = te(n); + } catch (e) {} + + K.set(e, t, n); + } else n = void 0; + return n; + } + + w.extend({ + hasData: function hasData(e) { + return K.hasData(e) || J.hasData(e); + }, + data: function data(e, t, n) { + return K.access(e, t, n); + }, + removeData: function removeData(e, t) { + K.remove(e, t); + }, + _data: function _data(e, t, n) { + return J.access(e, t, n); + }, + _removeData: function _removeData(e, t) { + J.remove(e, t); + } + }), w.fn.extend({ + data: function data(e, t) { + var n, + r, + i, + o = this[0], + a = o && o.attributes; + + if (void 0 === e) { + if (this.length && (i = K.get(o), 1 === o.nodeType && !J.get(o, "hasDataAttrs"))) { + n = a.length; + + while (n--) { + a[n] && 0 === (r = a[n].name).indexOf("data-") && (r = G(r.slice(5)), ne(o, r, i[r])); + } + + J.set(o, "hasDataAttrs", !0); + } + + return i; + } + + return "object" == _typeof(e) ? this.each(function () { + K.set(this, e); + }) : z(this, function (t) { + var n; + + if (o && void 0 === t) { + if (void 0 !== (n = K.get(o, e))) return n; + if (void 0 !== (n = ne(o, e))) return n; + } else this.each(function () { + K.set(this, e, t); + }); + }, null, t, arguments.length > 1, null, !0); + }, + removeData: function removeData(e) { + return this.each(function () { + K.remove(this, e); + }); + } + }), w.extend({ + queue: function queue(e, t, n) { + var r; + if (e) return t = (t || "fx") + "queue", r = J.get(e, t), n && (!r || Array.isArray(n) ? r = J.access(e, t, w.makeArray(n)) : r.push(n)), r || []; + }, + dequeue: function dequeue(e, t) { + t = t || "fx"; + + var n = w.queue(e, t), + r = n.length, + i = n.shift(), + o = w._queueHooks(e, t), + a = function a() { + w.dequeue(e, t); + }; + + "inprogress" === i && (i = n.shift(), r--), i && ("fx" === t && n.unshift("inprogress"), delete o.stop, i.call(e, a, o)), !r && o && o.empty.fire(); + }, + _queueHooks: function _queueHooks(e, t) { + var n = t + "queueHooks"; + return J.get(e, n) || J.access(e, n, { + empty: w.Callbacks("once memory").add(function () { + J.remove(e, [t + "queue", n]); + }) + }); + } + }), w.fn.extend({ + queue: function queue(e, t) { + var n = 2; + return "string" != typeof e && (t = e, e = "fx", n--), arguments.length < n ? w.queue(this[0], e) : void 0 === t ? this : this.each(function () { + var n = w.queue(this, e, t); + w._queueHooks(this, e), "fx" === e && "inprogress" !== n[0] && w.dequeue(this, e); + }); + }, + dequeue: function dequeue(e) { + return this.each(function () { + w.dequeue(this, e); + }); + }, + clearQueue: function clearQueue(e) { + return this.queue(e || "fx", []); + }, + promise: function promise(e, t) { + var n, + r = 1, + i = w.Deferred(), + o = this, + a = this.length, + s = function s() { + --r || i.resolveWith(o, [o]); + }; + + "string" != typeof e && (t = e, e = void 0), e = e || "fx"; + + while (a--) { + (n = J.get(o[a], e + "queueHooks")) && n.empty && (r++, n.empty.add(s)); + } + + return s(), i.promise(t); + } + }); + + var re = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source, + ie = new RegExp("^(?:([+-])=|)(" + re + ")([a-z%]*)$", "i"), + oe = ["Top", "Right", "Bottom", "Left"], + ae = function ae(e, t) { + return "none" === (e = t || e).style.display || "" === e.style.display && w.contains(e.ownerDocument, e) && "none" === w.css(e, "display"); + }, + se = function se(e, t, n, r) { + var i, + o, + a = {}; + + for (o in t) { + a[o] = e.style[o], e.style[o] = t[o]; + } + + i = n.apply(e, r || []); + + for (o in t) { + e.style[o] = a[o]; + } + + return i; + }; + + function ue(e, t, n, r) { + var i, + o, + a = 20, + s = r ? function () { + return r.cur(); + } : function () { + return w.css(e, t, ""); + }, + u = s(), + l = n && n[3] || (w.cssNumber[t] ? "" : "px"), + c = (w.cssNumber[t] || "px" !== l && +u) && ie.exec(w.css(e, t)); + + if (c && c[3] !== l) { + u /= 2, l = l || c[3], c = +u || 1; + + while (a--) { + w.style(e, t, c + l), (1 - o) * (1 - (o = s() / u || .5)) <= 0 && (a = 0), c /= o; + } + + c *= 2, w.style(e, t, c + l), n = n || []; + } + + return n && (c = +c || +u || 0, i = n[1] ? c + (n[1] + 1) * n[2] : +n[2], r && (r.unit = l, r.start = c, r.end = i)), i; + } + + var le = {}; + + function ce(e) { + var t, + n = e.ownerDocument, + r = e.nodeName, + i = le[r]; + return i || (t = n.body.appendChild(n.createElement(r)), i = w.css(t, "display"), t.parentNode.removeChild(t), "none" === i && (i = "block"), le[r] = i, i); + } + + function fe(e, t) { + for (var n, r, i = [], o = 0, a = e.length; o < a; o++) { + (r = e[o]).style && (n = r.style.display, t ? ("none" === n && (i[o] = J.get(r, "display") || null, i[o] || (r.style.display = "")), "" === r.style.display && ae(r) && (i[o] = ce(r))) : "none" !== n && (i[o] = "none", J.set(r, "display", n))); + } + + for (o = 0; o < a; o++) { + null != i[o] && (e[o].style.display = i[o]); + } + + return e; + } + + w.fn.extend({ + show: function show() { + return fe(this, !0); + }, + hide: function hide() { + return fe(this); + }, + toggle: function toggle(e) { + return "boolean" == typeof e ? e ? this.show() : this.hide() : this.each(function () { + ae(this) ? w(this).show() : w(this).hide(); + }); + } + }); + var pe = /^(?:checkbox|radio)$/i, + de = /<([a-z][^\/\0>\x20\t\r\n\f]+)/i, + he = /^$|^module$|\/(?:java|ecma)script/i, + ge = { + option: [1, ""], + thead: [1, "
").addClass("cw").text("#")); c.isBefore(l.clone().endOf("w"));) { + b.append(a("").addClass("dow").text(c.format("dd"))), c.add(1, "d"); + } + + o.find(".datepicker-days thead").append(b); + }, + L = function L(a) { + return d.disabledDates[a.format("YYYY-MM-DD")] === !0; + }, + M = function M(a) { + return d.enabledDates[a.format("YYYY-MM-DD")] === !0; + }, + N = function N(a) { + return d.disabledHours[a.format("H")] === !0; + }, + O = function O(a) { + return d.enabledHours[a.format("H")] === !0; + }, + P = function P(b, c) { + if (!b.isValid()) return !1; + if (d.disabledDates && "d" === c && L(b)) return !1; + if (d.enabledDates && "d" === c && !M(b)) return !1; + if (d.minDate && b.isBefore(d.minDate, c)) return !1; + if (d.maxDate && b.isAfter(d.maxDate, c)) return !1; + if (d.daysOfWeekDisabled && "d" === c && -1 !== d.daysOfWeekDisabled.indexOf(b.day())) return !1; + if (d.disabledHours && ("h" === c || "m" === c || "s" === c) && N(b)) return !1; + if (d.enabledHours && ("h" === c || "m" === c || "s" === c) && !O(b)) return !1; + + if (d.disabledTimeIntervals && ("h" === c || "m" === c || "s" === c)) { + var e = !1; + if (a.each(d.disabledTimeIntervals, function () { + return b.isBetween(this[0], this[1]) ? (e = !0, !1) : void 0; + }), e) return !1; + } + + return !0; + }, + Q = function Q() { + for (var b = [], c = l.clone().startOf("y").startOf("d"); c.isSame(l, "y");) { + b.push(a("").attr("data-action", "selectMonth").addClass("month").text(c.format("MMM"))), c.add(1, "M"); + } + + o.find(".datepicker-months td").empty().append(b); + }, + R = function R() { + var b = o.find(".datepicker-months"), + c = b.find("th"), + e = b.find("tbody").find("span"); + c.eq(0).find("span").attr("title", d.tooltips.prevYear), c.eq(1).attr("title", d.tooltips.selectYear), c.eq(2).find("span").attr("title", d.tooltips.nextYear), b.find(".disabled").removeClass("disabled"), P(l.clone().subtract(1, "y"), "y") || c.eq(0).addClass("disabled"), c.eq(1).text(l.year()), P(l.clone().add(1, "y"), "y") || c.eq(2).addClass("disabled"), e.removeClass("active"), k.isSame(l, "y") && !m && e.eq(k.month()).addClass("active"), e.each(function (b) { + P(l.clone().month(b), "M") || a(this).addClass("disabled"); + }); + }, + S = function S() { + var a = o.find(".datepicker-years"), + b = a.find("th"), + c = l.clone().subtract(5, "y"), + e = l.clone().add(6, "y"), + f = ""; + + for (b.eq(0).find("span").attr("title", d.tooltips.nextDecade), b.eq(1).attr("title", d.tooltips.selectDecade), b.eq(2).find("span").attr("title", d.tooltips.prevDecade), a.find(".disabled").removeClass("disabled"), d.minDate && d.minDate.isAfter(c, "y") && b.eq(0).addClass("disabled"), b.eq(1).text(c.year() + "-" + e.year()), d.maxDate && d.maxDate.isBefore(e, "y") && b.eq(2).addClass("disabled"); !c.isAfter(e, "y");) { + f += '' + c.year() + "", c.add(1, "y"); + } + + a.find("td").html(f); + }, + T = function T() { + var a = o.find(".datepicker-decades"), + c = a.find("th"), + e = b(l.isBefore(b({ + y: 1999 + })) ? { + y: 1899 + } : { + y: 1999 + }), + f = e.clone().add(100, "y"), + g = ""; + + for (c.eq(0).find("span").attr("title", d.tooltips.prevCentury), c.eq(2).find("span").attr("title", d.tooltips.nextCentury), a.find(".disabled").removeClass("disabled"), (e.isSame(b({ + y: 1900 + })) || d.minDate && d.minDate.isAfter(e, "y")) && c.eq(0).addClass("disabled"), c.eq(1).text(e.year() + "-" + f.year()), (e.isSame(b({ + y: 2e3 + })) || d.maxDate && d.maxDate.isBefore(f, "y")) && c.eq(2).addClass("disabled"); !e.isAfter(f, "y");) { + g += '' + (e.year() + 1) + " - " + (e.year() + 12) + "", e.add(12, "y"); + } + + g += "", a.find("td").html(g); + }, + U = function U() { + var c, + e, + f, + g, + h = o.find(".datepicker-days"), + i = h.find("th"), + j = []; + + if (z()) { + for (i.eq(0).find("span").attr("title", d.tooltips.prevMonth), i.eq(1).attr("title", d.tooltips.selectMonth), i.eq(2).find("span").attr("title", d.tooltips.nextMonth), h.find(".disabled").removeClass("disabled"), i.eq(1).text(l.format(d.dayViewHeaderFormat)), P(l.clone().subtract(1, "M"), "M") || i.eq(0).addClass("disabled"), P(l.clone().add(1, "M"), "M") || i.eq(2).addClass("disabled"), c = l.clone().startOf("M").startOf("w").startOf("d"), g = 0; 42 > g; g++) { + 0 === c.weekday() && (e = a("
' + c.week() + "' + c.date() + "
' + c.format(f ? "HH" : "hh") + "
' + c.format("mm") + "
' + c.format("ss") + "
", "
"], + col: [2, "", "
"], + tr: [2, "", "
"], + td: [3, "", "
"], + _default: [0, "", ""] + }; + ge.optgroup = ge.option, ge.tbody = ge.tfoot = ge.colgroup = ge.caption = ge.thead, ge.th = ge.td; + + function ye(e, t) { + var n; + return n = "undefined" != typeof e.getElementsByTagName ? e.getElementsByTagName(t || "*") : "undefined" != typeof e.querySelectorAll ? e.querySelectorAll(t || "*") : [], void 0 === t || t && N(e, t) ? w.merge([e], n) : n; + } + + function ve(e, t) { + for (var n = 0, r = e.length; n < r; n++) { + J.set(e[n], "globalEval", !t || J.get(t[n], "globalEval")); + } + } + + var me = /<|&#?\w+;/; + + function xe(e, t, n, r, i) { + for (var o, a, s, u, l, c, f = t.createDocumentFragment(), p = [], d = 0, h = e.length; d < h; d++) { + if ((o = e[d]) || 0 === o) if ("object" === x(o)) w.merge(p, o.nodeType ? [o] : o);else if (me.test(o)) { + a = a || f.appendChild(t.createElement("div")), s = (de.exec(o) || ["", ""])[1].toLowerCase(), u = ge[s] || ge._default, a.innerHTML = u[1] + w.htmlPrefilter(o) + u[2], c = u[0]; + + while (c--) { + a = a.lastChild; + } + + w.merge(p, a.childNodes), (a = f.firstChild).textContent = ""; + } else p.push(t.createTextNode(o)); + } + + f.textContent = "", d = 0; + + while (o = p[d++]) { + if (r && w.inArray(o, r) > -1) i && i.push(o);else if (l = w.contains(o.ownerDocument, o), a = ye(f.appendChild(o), "script"), l && ve(a), n) { + c = 0; + + while (o = a[c++]) { + he.test(o.type || "") && n.push(o); + } + } + } + + return f; + } + + !function () { + var e = r.createDocumentFragment().appendChild(r.createElement("div")), + t = r.createElement("input"); + t.setAttribute("type", "radio"), t.setAttribute("checked", "checked"), t.setAttribute("name", "t"), e.appendChild(t), h.checkClone = e.cloneNode(!0).cloneNode(!0).lastChild.checked, e.innerHTML = "", h.noCloneChecked = !!e.cloneNode(!0).lastChild.defaultValue; + }(); + var be = r.documentElement, + we = /^key/, + Te = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, + Ce = /^([^.]*)(?:\.(.+)|)/; + + function Ee() { + return !0; + } + + function ke() { + return !1; + } + + function Se() { + try { + return r.activeElement; + } catch (e) {} + } + + function De(e, t, n, r, i, o) { + var a, s; + + if ("object" == _typeof(t)) { + "string" != typeof n && (r = r || n, n = void 0); + + for (s in t) { + De(e, s, n, r, t[s], o); + } + + return e; + } + + if (null == r && null == i ? (i = n, r = n = void 0) : null == i && ("string" == typeof n ? (i = r, r = void 0) : (i = r, r = n, n = void 0)), !1 === i) i = ke;else if (!i) return e; + return 1 === o && (a = i, (i = function i(e) { + return w().off(e), a.apply(this, arguments); + }).guid = a.guid || (a.guid = w.guid++)), e.each(function () { + w.event.add(this, t, i, r, n); + }); + } + + w.event = { + global: {}, + add: function add(e, t, n, r, i) { + var o, + a, + s, + u, + l, + c, + f, + p, + d, + h, + g, + y = J.get(e); + + if (y) { + n.handler && (n = (o = n).handler, i = o.selector), i && w.find.matchesSelector(be, i), n.guid || (n.guid = w.guid++), (u = y.events) || (u = y.events = {}), (a = y.handle) || (a = y.handle = function (t) { + return "undefined" != typeof w && w.event.triggered !== t.type ? w.event.dispatch.apply(e, arguments) : void 0; + }), l = (t = (t || "").match(M) || [""]).length; + + while (l--) { + d = g = (s = Ce.exec(t[l]) || [])[1], h = (s[2] || "").split(".").sort(), d && (f = w.event.special[d] || {}, d = (i ? f.delegateType : f.bindType) || d, f = w.event.special[d] || {}, c = w.extend({ + type: d, + origType: g, + data: r, + handler: n, + guid: n.guid, + selector: i, + needsContext: i && w.expr.match.needsContext.test(i), + namespace: h.join(".") + }, o), (p = u[d]) || ((p = u[d] = []).delegateCount = 0, f.setup && !1 !== f.setup.call(e, r, h, a) || e.addEventListener && e.addEventListener(d, a)), f.add && (f.add.call(e, c), c.handler.guid || (c.handler.guid = n.guid)), i ? p.splice(p.delegateCount++, 0, c) : p.push(c), w.event.global[d] = !0); + } + } + }, + remove: function remove(e, t, n, r, i) { + var o, + a, + s, + u, + l, + c, + f, + p, + d, + h, + g, + y = J.hasData(e) && J.get(e); + + if (y && (u = y.events)) { + l = (t = (t || "").match(M) || [""]).length; + + while (l--) { + if (s = Ce.exec(t[l]) || [], d = g = s[1], h = (s[2] || "").split(".").sort(), d) { + f = w.event.special[d] || {}, p = u[d = (r ? f.delegateType : f.bindType) || d] || [], s = s[2] && new RegExp("(^|\\.)" + h.join("\\.(?:.*\\.|)") + "(\\.|$)"), a = o = p.length; + + while (o--) { + c = p[o], !i && g !== c.origType || n && n.guid !== c.guid || s && !s.test(c.namespace) || r && r !== c.selector && ("**" !== r || !c.selector) || (p.splice(o, 1), c.selector && p.delegateCount--, f.remove && f.remove.call(e, c)); + } + + a && !p.length && (f.teardown && !1 !== f.teardown.call(e, h, y.handle) || w.removeEvent(e, d, y.handle), delete u[d]); + } else for (d in u) { + w.event.remove(e, d + t[l], n, r, !0); + } + } + + w.isEmptyObject(u) && J.remove(e, "handle events"); + } + }, + dispatch: function dispatch(e) { + var t = w.event.fix(e), + n, + r, + i, + o, + a, + s, + u = new Array(arguments.length), + l = (J.get(this, "events") || {})[t.type] || [], + c = w.event.special[t.type] || {}; + + for (u[0] = t, n = 1; n < arguments.length; n++) { + u[n] = arguments[n]; + } + + if (t.delegateTarget = this, !c.preDispatch || !1 !== c.preDispatch.call(this, t)) { + s = w.event.handlers.call(this, t, l), n = 0; + + while ((o = s[n++]) && !t.isPropagationStopped()) { + t.currentTarget = o.elem, r = 0; + + while ((a = o.handlers[r++]) && !t.isImmediatePropagationStopped()) { + t.rnamespace && !t.rnamespace.test(a.namespace) || (t.handleObj = a, t.data = a.data, void 0 !== (i = ((w.event.special[a.origType] || {}).handle || a.handler).apply(o.elem, u)) && !1 === (t.result = i) && (t.preventDefault(), t.stopPropagation())); + } + } + + return c.postDispatch && c.postDispatch.call(this, t), t.result; + } + }, + handlers: function handlers(e, t) { + var n, + r, + i, + o, + a, + s = [], + u = t.delegateCount, + l = e.target; + if (u && l.nodeType && !("click" === e.type && e.button >= 1)) for (; l !== this; l = l.parentNode || this) { + if (1 === l.nodeType && ("click" !== e.type || !0 !== l.disabled)) { + for (o = [], a = {}, n = 0; n < u; n++) { + void 0 === a[i = (r = t[n]).selector + " "] && (a[i] = r.needsContext ? w(i, this).index(l) > -1 : w.find(i, this, null, [l]).length), a[i] && o.push(r); + } + + o.length && s.push({ + elem: l, + handlers: o + }); + } + } + return l = this, u < t.length && s.push({ + elem: l, + handlers: t.slice(u) + }), s; + }, + addProp: function addProp(e, t) { + Object.defineProperty(w.Event.prototype, e, { + enumerable: !0, + configurable: !0, + get: g(t) ? function () { + if (this.originalEvent) return t(this.originalEvent); + } : function () { + if (this.originalEvent) return this.originalEvent[e]; + }, + set: function set(t) { + Object.defineProperty(this, e, { + enumerable: !0, + configurable: !0, + writable: !0, + value: t + }); + } + }); + }, + fix: function fix(e) { + return e[w.expando] ? e : new w.Event(e); + }, + special: { + load: { + noBubble: !0 + }, + focus: { + trigger: function trigger() { + if (this !== Se() && this.focus) return this.focus(), !1; + }, + delegateType: "focusin" + }, + blur: { + trigger: function trigger() { + if (this === Se() && this.blur) return this.blur(), !1; + }, + delegateType: "focusout" + }, + click: { + trigger: function trigger() { + if ("checkbox" === this.type && this.click && N(this, "input")) return this.click(), !1; + }, + _default: function _default(e) { + return N(e.target, "a"); + } + }, + beforeunload: { + postDispatch: function postDispatch(e) { + void 0 !== e.result && e.originalEvent && (e.originalEvent.returnValue = e.result); + } + } + } + }, w.removeEvent = function (e, t, n) { + e.removeEventListener && e.removeEventListener(t, n); + }, w.Event = function (e, t) { + if (!(this instanceof w.Event)) return new w.Event(e, t); + e && e.type ? (this.originalEvent = e, this.type = e.type, this.isDefaultPrevented = e.defaultPrevented || void 0 === e.defaultPrevented && !1 === e.returnValue ? Ee : ke, this.target = e.target && 3 === e.target.nodeType ? e.target.parentNode : e.target, this.currentTarget = e.currentTarget, this.relatedTarget = e.relatedTarget) : this.type = e, t && w.extend(this, t), this.timeStamp = e && e.timeStamp || Date.now(), this[w.expando] = !0; + }, w.Event.prototype = { + constructor: w.Event, + isDefaultPrevented: ke, + isPropagationStopped: ke, + isImmediatePropagationStopped: ke, + isSimulated: !1, + preventDefault: function preventDefault() { + var e = this.originalEvent; + this.isDefaultPrevented = Ee, e && !this.isSimulated && e.preventDefault(); + }, + stopPropagation: function stopPropagation() { + var e = this.originalEvent; + this.isPropagationStopped = Ee, e && !this.isSimulated && e.stopPropagation(); + }, + stopImmediatePropagation: function stopImmediatePropagation() { + var e = this.originalEvent; + this.isImmediatePropagationStopped = Ee, e && !this.isSimulated && e.stopImmediatePropagation(), this.stopPropagation(); + } + }, w.each({ + altKey: !0, + bubbles: !0, + cancelable: !0, + changedTouches: !0, + ctrlKey: !0, + detail: !0, + eventPhase: !0, + metaKey: !0, + pageX: !0, + pageY: !0, + shiftKey: !0, + view: !0, + "char": !0, + charCode: !0, + key: !0, + keyCode: !0, + button: !0, + buttons: !0, + clientX: !0, + clientY: !0, + offsetX: !0, + offsetY: !0, + pointerId: !0, + pointerType: !0, + screenX: !0, + screenY: !0, + targetTouches: !0, + toElement: !0, + touches: !0, + which: function which(e) { + var t = e.button; + return null == e.which && we.test(e.type) ? null != e.charCode ? e.charCode : e.keyCode : !e.which && void 0 !== t && Te.test(e.type) ? 1 & t ? 1 : 2 & t ? 3 : 4 & t ? 2 : 0 : e.which; + } + }, w.event.addProp), w.each({ + mouseenter: "mouseover", + mouseleave: "mouseout", + pointerenter: "pointerover", + pointerleave: "pointerout" + }, function (e, t) { + w.event.special[e] = { + delegateType: t, + bindType: t, + handle: function handle(e) { + var n, + r = this, + i = e.relatedTarget, + o = e.handleObj; + return i && (i === r || w.contains(r, i)) || (e.type = o.origType, n = o.handler.apply(this, arguments), e.type = t), n; + } + }; + }), w.fn.extend({ + on: function on(e, t, n, r) { + return De(this, e, t, n, r); + }, + one: function one(e, t, n, r) { + return De(this, e, t, n, r, 1); + }, + off: function off(e, t, n) { + var r, i; + if (e && e.preventDefault && e.handleObj) return r = e.handleObj, w(e.delegateTarget).off(r.namespace ? r.origType + "." + r.namespace : r.origType, r.selector, r.handler), this; + + if ("object" == _typeof(e)) { + for (i in e) { + this.off(i, t, e[i]); + } + + return this; + } + + return !1 !== t && "function" != typeof t || (n = t, t = void 0), !1 === n && (n = ke), this.each(function () { + w.event.remove(this, e, n, t); + }); + } + }); + var Ne = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi, + Ae = /\s*$/g; + + function Le(e, t) { + return N(e, "table") && N(11 !== t.nodeType ? t : t.firstChild, "tr") ? w(e).children("tbody")[0] || e : e; + } + + function He(e) { + return e.type = (null !== e.getAttribute("type")) + "/" + e.type, e; + } + + function Oe(e) { + return "true/" === (e.type || "").slice(0, 5) ? e.type = e.type.slice(5) : e.removeAttribute("type"), e; + } + + function Pe(e, t) { + var n, r, i, o, a, s, u, l; + + if (1 === t.nodeType) { + if (J.hasData(e) && (o = J.access(e), a = J.set(t, o), l = o.events)) { + delete a.handle, a.events = {}; + + for (i in l) { + for (n = 0, r = l[i].length; n < r; n++) { + w.event.add(t, i, l[i][n]); + } + } + } + + K.hasData(e) && (s = K.access(e), u = w.extend({}, s), K.set(t, u)); + } + } + + function Me(e, t) { + var n = t.nodeName.toLowerCase(); + "input" === n && pe.test(e.type) ? t.checked = e.checked : "input" !== n && "textarea" !== n || (t.defaultValue = e.defaultValue); + } + + function Re(e, t, n, r) { + t = a.apply([], t); + var i, + o, + s, + u, + l, + c, + f = 0, + p = e.length, + d = p - 1, + y = t[0], + v = g(y); + if (v || p > 1 && "string" == typeof y && !h.checkClone && je.test(y)) return e.each(function (i) { + var o = e.eq(i); + v && (t[0] = y.call(this, i, o.html())), Re(o, t, n, r); + }); + + if (p && (i = xe(t, e[0].ownerDocument, !1, e, r), o = i.firstChild, 1 === i.childNodes.length && (i = o), o || r)) { + for (u = (s = w.map(ye(i, "script"), He)).length; f < p; f++) { + l = i, f !== d && (l = w.clone(l, !0, !0), u && w.merge(s, ye(l, "script"))), n.call(e[f], l, f); + } + + if (u) for (c = s[s.length - 1].ownerDocument, w.map(s, Oe), f = 0; f < u; f++) { + l = s[f], he.test(l.type || "") && !J.access(l, "globalEval") && w.contains(c, l) && (l.src && "module" !== (l.type || "").toLowerCase() ? w._evalUrl && w._evalUrl(l.src) : m(l.textContent.replace(qe, ""), c, l)); + } + } + + return e; + } + + function Ie(e, t, n) { + for (var r, i = t ? w.filter(t, e) : e, o = 0; null != (r = i[o]); o++) { + n || 1 !== r.nodeType || w.cleanData(ye(r)), r.parentNode && (n && w.contains(r.ownerDocument, r) && ve(ye(r, "script")), r.parentNode.removeChild(r)); + } + + return e; + } + + w.extend({ + htmlPrefilter: function htmlPrefilter(e) { + return e.replace(Ne, "<$1>"); + }, + clone: function clone(e, t, n) { + var r, + i, + o, + a, + s = e.cloneNode(!0), + u = w.contains(e.ownerDocument, e); + if (!(h.noCloneChecked || 1 !== e.nodeType && 11 !== e.nodeType || w.isXMLDoc(e))) for (a = ye(s), r = 0, i = (o = ye(e)).length; r < i; r++) { + Me(o[r], a[r]); + } + if (t) if (n) for (o = o || ye(e), a = a || ye(s), r = 0, i = o.length; r < i; r++) { + Pe(o[r], a[r]); + } else Pe(e, s); + return (a = ye(s, "script")).length > 0 && ve(a, !u && ye(e, "script")), s; + }, + cleanData: function cleanData(e) { + for (var t, n, r, i = w.event.special, o = 0; void 0 !== (n = e[o]); o++) { + if (Y(n)) { + if (t = n[J.expando]) { + if (t.events) for (r in t.events) { + i[r] ? w.event.remove(n, r) : w.removeEvent(n, r, t.handle); + } + n[J.expando] = void 0; + } + + n[K.expando] && (n[K.expando] = void 0); + } + } + } + }), w.fn.extend({ + detach: function detach(e) { + return Ie(this, e, !0); + }, + remove: function remove(e) { + return Ie(this, e); + }, + text: function text(e) { + return z(this, function (e) { + return void 0 === e ? w.text(this) : this.empty().each(function () { + 1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || (this.textContent = e); + }); + }, null, e, arguments.length); + }, + append: function append() { + return Re(this, arguments, function (e) { + 1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || Le(this, e).appendChild(e); + }); + }, + prepend: function prepend() { + return Re(this, arguments, function (e) { + if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) { + var t = Le(this, e); + t.insertBefore(e, t.firstChild); + } + }); + }, + before: function before() { + return Re(this, arguments, function (e) { + this.parentNode && this.parentNode.insertBefore(e, this); + }); + }, + after: function after() { + return Re(this, arguments, function (e) { + this.parentNode && this.parentNode.insertBefore(e, this.nextSibling); + }); + }, + empty: function empty() { + for (var e, t = 0; null != (e = this[t]); t++) { + 1 === e.nodeType && (w.cleanData(ye(e, !1)), e.textContent = ""); + } + + return this; + }, + clone: function clone(e, t) { + return e = null != e && e, t = null == t ? e : t, this.map(function () { + return w.clone(this, e, t); + }); + }, + html: function html(e) { + return z(this, function (e) { + var t = this[0] || {}, + n = 0, + r = this.length; + if (void 0 === e && 1 === t.nodeType) return t.innerHTML; + + if ("string" == typeof e && !Ae.test(e) && !ge[(de.exec(e) || ["", ""])[1].toLowerCase()]) { + e = w.htmlPrefilter(e); + + try { + for (; n < r; n++) { + 1 === (t = this[n] || {}).nodeType && (w.cleanData(ye(t, !1)), t.innerHTML = e); + } + + t = 0; + } catch (e) {} + } + + t && this.empty().append(e); + }, null, e, arguments.length); + }, + replaceWith: function replaceWith() { + var e = []; + return Re(this, arguments, function (t) { + var n = this.parentNode; + w.inArray(this, e) < 0 && (w.cleanData(ye(this)), n && n.replaceChild(t, this)); + }, e); + } + }), w.each({ + appendTo: "append", + prependTo: "prepend", + insertBefore: "before", + insertAfter: "after", + replaceAll: "replaceWith" + }, function (e, t) { + w.fn[e] = function (e) { + for (var n, r = [], i = w(e), o = i.length - 1, a = 0; a <= o; a++) { + n = a === o ? this : this.clone(!0), w(i[a])[t](n), s.apply(r, n.get()); + } + + return this.pushStack(r); + }; + }); + + var We = new RegExp("^(" + re + ")(?!px)[a-z%]+$", "i"), + $e = function $e(t) { + var n = t.ownerDocument.defaultView; + return n && n.opener || (n = e), n.getComputedStyle(t); + }, + Be = new RegExp(oe.join("|"), "i"); + + !function () { + function t() { + if (c) { + l.style.cssText = "position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0", c.style.cssText = "position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%", be.appendChild(l).appendChild(c); + var t = e.getComputedStyle(c); + i = "1%" !== t.top, u = 12 === n(t.marginLeft), c.style.right = "60%", s = 36 === n(t.right), o = 36 === n(t.width), c.style.position = "absolute", a = 36 === c.offsetWidth || "absolute", be.removeChild(l), c = null; + } + } + + function n(e) { + return Math.round(parseFloat(e)); + } + + var i, + o, + a, + s, + u, + l = r.createElement("div"), + c = r.createElement("div"); + c.style && (c.style.backgroundClip = "content-box", c.cloneNode(!0).style.backgroundClip = "", h.clearCloneStyle = "content-box" === c.style.backgroundClip, w.extend(h, { + boxSizingReliable: function boxSizingReliable() { + return t(), o; + }, + pixelBoxStyles: function pixelBoxStyles() { + return t(), s; + }, + pixelPosition: function pixelPosition() { + return t(), i; + }, + reliableMarginLeft: function reliableMarginLeft() { + return t(), u; + }, + scrollboxSize: function scrollboxSize() { + return t(), a; + } + })); + }(); + + function Fe(e, t, n) { + var r, + i, + o, + a, + s = e.style; + return (n = n || $e(e)) && ("" !== (a = n.getPropertyValue(t) || n[t]) || w.contains(e.ownerDocument, e) || (a = w.style(e, t)), !h.pixelBoxStyles() && We.test(a) && Be.test(t) && (r = s.width, i = s.minWidth, o = s.maxWidth, s.minWidth = s.maxWidth = s.width = a, a = n.width, s.width = r, s.minWidth = i, s.maxWidth = o)), void 0 !== a ? a + "" : a; + } + + function _e(e, t) { + return { + get: function get() { + if (!e()) return (this.get = t).apply(this, arguments); + delete this.get; + } + }; + } + + var ze = /^(none|table(?!-c[ea]).+)/, + Xe = /^--/, + Ue = { + position: "absolute", + visibility: "hidden", + display: "block" + }, + Ve = { + letterSpacing: "0", + fontWeight: "400" + }, + Ge = ["Webkit", "Moz", "ms"], + Ye = r.createElement("div").style; + + function Qe(e) { + if (e in Ye) return e; + var t = e[0].toUpperCase() + e.slice(1), + n = Ge.length; + + while (n--) { + if ((e = Ge[n] + t) in Ye) return e; + } + } + + function Je(e) { + var t = w.cssProps[e]; + return t || (t = w.cssProps[e] = Qe(e) || e), t; + } + + function Ke(e, t, n) { + var r = ie.exec(t); + return r ? Math.max(0, r[2] - (n || 0)) + (r[3] || "px") : t; + } + + function Ze(e, t, n, r, i, o) { + var a = "width" === t ? 1 : 0, + s = 0, + u = 0; + if (n === (r ? "border" : "content")) return 0; + + for (; a < 4; a += 2) { + "margin" === n && (u += w.css(e, n + oe[a], !0, i)), r ? ("content" === n && (u -= w.css(e, "padding" + oe[a], !0, i)), "margin" !== n && (u -= w.css(e, "border" + oe[a] + "Width", !0, i))) : (u += w.css(e, "padding" + oe[a], !0, i), "padding" !== n ? u += w.css(e, "border" + oe[a] + "Width", !0, i) : s += w.css(e, "border" + oe[a] + "Width", !0, i)); + } + + return !r && o >= 0 && (u += Math.max(0, Math.ceil(e["offset" + t[0].toUpperCase() + t.slice(1)] - o - u - s - .5))), u; + } + + function et(e, t, n) { + var r = $e(e), + i = Fe(e, t, r), + o = "border-box" === w.css(e, "boxSizing", !1, r), + a = o; + + if (We.test(i)) { + if (!n) return i; + i = "auto"; + } + + return a = a && (h.boxSizingReliable() || i === e.style[t]), ("auto" === i || !parseFloat(i) && "inline" === w.css(e, "display", !1, r)) && (i = e["offset" + t[0].toUpperCase() + t.slice(1)], a = !0), (i = parseFloat(i) || 0) + Ze(e, t, n || (o ? "border" : "content"), a, r, i) + "px"; + } + + w.extend({ + cssHooks: { + opacity: { + get: function get(e, t) { + if (t) { + var n = Fe(e, "opacity"); + return "" === n ? "1" : n; + } + } + } + }, + cssNumber: { + animationIterationCount: !0, + columnCount: !0, + fillOpacity: !0, + flexGrow: !0, + flexShrink: !0, + fontWeight: !0, + lineHeight: !0, + opacity: !0, + order: !0, + orphans: !0, + widows: !0, + zIndex: !0, + zoom: !0 + }, + cssProps: {}, + style: function style(e, t, n, r) { + if (e && 3 !== e.nodeType && 8 !== e.nodeType && e.style) { + var i, + o, + a, + s = G(t), + u = Xe.test(t), + l = e.style; + if (u || (t = Je(s)), a = w.cssHooks[t] || w.cssHooks[s], void 0 === n) return a && "get" in a && void 0 !== (i = a.get(e, !1, r)) ? i : l[t]; + "string" == (o = _typeof(n)) && (i = ie.exec(n)) && i[1] && (n = ue(e, t, i), o = "number"), null != n && n === n && ("number" === o && (n += i && i[3] || (w.cssNumber[s] ? "" : "px")), h.clearCloneStyle || "" !== n || 0 !== t.indexOf("background") || (l[t] = "inherit"), a && "set" in a && void 0 === (n = a.set(e, n, r)) || (u ? l.setProperty(t, n) : l[t] = n)); + } + }, + css: function css(e, t, n, r) { + var i, + o, + a, + s = G(t); + return Xe.test(t) || (t = Je(s)), (a = w.cssHooks[t] || w.cssHooks[s]) && "get" in a && (i = a.get(e, !0, n)), void 0 === i && (i = Fe(e, t, r)), "normal" === i && t in Ve && (i = Ve[t]), "" === n || n ? (o = parseFloat(i), !0 === n || isFinite(o) ? o || 0 : i) : i; + } + }), w.each(["height", "width"], function (e, t) { + w.cssHooks[t] = { + get: function get(e, n, r) { + if (n) return !ze.test(w.css(e, "display")) || e.getClientRects().length && e.getBoundingClientRect().width ? et(e, t, r) : se(e, Ue, function () { + return et(e, t, r); + }); + }, + set: function set(e, n, r) { + var i, + o = $e(e), + a = "border-box" === w.css(e, "boxSizing", !1, o), + s = r && Ze(e, t, r, a, o); + return a && h.scrollboxSize() === o.position && (s -= Math.ceil(e["offset" + t[0].toUpperCase() + t.slice(1)] - parseFloat(o[t]) - Ze(e, t, "border", !1, o) - .5)), s && (i = ie.exec(n)) && "px" !== (i[3] || "px") && (e.style[t] = n, n = w.css(e, t)), Ke(e, n, s); + } + }; + }), w.cssHooks.marginLeft = _e(h.reliableMarginLeft, function (e, t) { + if (t) return (parseFloat(Fe(e, "marginLeft")) || e.getBoundingClientRect().left - se(e, { + marginLeft: 0 + }, function () { + return e.getBoundingClientRect().left; + })) + "px"; + }), w.each({ + margin: "", + padding: "", + border: "Width" + }, function (e, t) { + w.cssHooks[e + t] = { + expand: function expand(n) { + for (var r = 0, i = {}, o = "string" == typeof n ? n.split(" ") : [n]; r < 4; r++) { + i[e + oe[r] + t] = o[r] || o[r - 2] || o[0]; + } + + return i; + } + }, "margin" !== e && (w.cssHooks[e + t].set = Ke); + }), w.fn.extend({ + css: function css(e, t) { + return z(this, function (e, t, n) { + var r, + i, + o = {}, + a = 0; + + if (Array.isArray(t)) { + for (r = $e(e), i = t.length; a < i; a++) { + o[t[a]] = w.css(e, t[a], !1, r); + } + + return o; + } + + return void 0 !== n ? w.style(e, t, n) : w.css(e, t); + }, e, t, arguments.length > 1); + } + }); + + function tt(e, t, n, r, i) { + return new tt.prototype.init(e, t, n, r, i); + } + + w.Tween = tt, tt.prototype = { + constructor: tt, + init: function init(e, t, n, r, i, o) { + this.elem = e, this.prop = n, this.easing = i || w.easing._default, this.options = t, this.start = this.now = this.cur(), this.end = r, this.unit = o || (w.cssNumber[n] ? "" : "px"); + }, + cur: function cur() { + var e = tt.propHooks[this.prop]; + return e && e.get ? e.get(this) : tt.propHooks._default.get(this); + }, + run: function run(e) { + var t, + n = tt.propHooks[this.prop]; + return this.options.duration ? this.pos = t = w.easing[this.easing](e, this.options.duration * e, 0, 1, this.options.duration) : this.pos = t = e, this.now = (this.end - this.start) * t + this.start, this.options.step && this.options.step.call(this.elem, this.now, this), n && n.set ? n.set(this) : tt.propHooks._default.set(this), this; + } + }, tt.prototype.init.prototype = tt.prototype, tt.propHooks = { + _default: { + get: function get(e) { + var t; + return 1 !== e.elem.nodeType || null != e.elem[e.prop] && null == e.elem.style[e.prop] ? e.elem[e.prop] : (t = w.css(e.elem, e.prop, "")) && "auto" !== t ? t : 0; + }, + set: function set(e) { + w.fx.step[e.prop] ? w.fx.step[e.prop](e) : 1 !== e.elem.nodeType || null == e.elem.style[w.cssProps[e.prop]] && !w.cssHooks[e.prop] ? e.elem[e.prop] = e.now : w.style(e.elem, e.prop, e.now + e.unit); + } + } + }, tt.propHooks.scrollTop = tt.propHooks.scrollLeft = { + set: function set(e) { + e.elem.nodeType && e.elem.parentNode && (e.elem[e.prop] = e.now); + } + }, w.easing = { + linear: function linear(e) { + return e; + }, + swing: function swing(e) { + return .5 - Math.cos(e * Math.PI) / 2; + }, + _default: "swing" + }, w.fx = tt.prototype.init, w.fx.step = {}; + var nt, + rt, + it = /^(?:toggle|show|hide)$/, + ot = /queueHooks$/; + + function at() { + rt && (!1 === r.hidden && e.requestAnimationFrame ? e.requestAnimationFrame(at) : e.setTimeout(at, w.fx.interval), w.fx.tick()); + } + + function st() { + return e.setTimeout(function () { + nt = void 0; + }), nt = Date.now(); + } + + function ut(e, t) { + var n, + r = 0, + i = { + height: e + }; + + for (t = t ? 1 : 0; r < 4; r += 2 - t) { + i["margin" + (n = oe[r])] = i["padding" + n] = e; + } + + return t && (i.opacity = i.width = e), i; + } + + function lt(e, t, n) { + for (var r, i = (pt.tweeners[t] || []).concat(pt.tweeners["*"]), o = 0, a = i.length; o < a; o++) { + if (r = i[o].call(n, t, e)) return r; + } + } + + function ct(e, t, n) { + var r, + i, + o, + a, + s, + u, + l, + c, + f = "width" in t || "height" in t, + p = this, + d = {}, + h = e.style, + g = e.nodeType && ae(e), + y = J.get(e, "fxshow"); + n.queue || (null == (a = w._queueHooks(e, "fx")).unqueued && (a.unqueued = 0, s = a.empty.fire, a.empty.fire = function () { + a.unqueued || s(); + }), a.unqueued++, p.always(function () { + p.always(function () { + a.unqueued--, w.queue(e, "fx").length || a.empty.fire(); + }); + })); + + for (r in t) { + if (i = t[r], it.test(i)) { + if (delete t[r], o = o || "toggle" === i, i === (g ? "hide" : "show")) { + if ("show" !== i || !y || void 0 === y[r]) continue; + g = !0; + } + + d[r] = y && y[r] || w.style(e, r); + } + } + + if ((u = !w.isEmptyObject(t)) || !w.isEmptyObject(d)) { + f && 1 === e.nodeType && (n.overflow = [h.overflow, h.overflowX, h.overflowY], null == (l = y && y.display) && (l = J.get(e, "display")), "none" === (c = w.css(e, "display")) && (l ? c = l : (fe([e], !0), l = e.style.display || l, c = w.css(e, "display"), fe([e]))), ("inline" === c || "inline-block" === c && null != l) && "none" === w.css(e, "float") && (u || (p.done(function () { + h.display = l; + }), null == l && (c = h.display, l = "none" === c ? "" : c)), h.display = "inline-block")), n.overflow && (h.overflow = "hidden", p.always(function () { + h.overflow = n.overflow[0], h.overflowX = n.overflow[1], h.overflowY = n.overflow[2]; + })), u = !1; + + for (r in d) { + u || (y ? "hidden" in y && (g = y.hidden) : y = J.access(e, "fxshow", { + display: l + }), o && (y.hidden = !g), g && fe([e], !0), p.done(function () { + g || fe([e]), J.remove(e, "fxshow"); + + for (r in d) { + w.style(e, r, d[r]); + } + })), u = lt(g ? y[r] : 0, r, p), r in y || (y[r] = u.start, g && (u.end = u.start, u.start = 0)); + } + } + } + + function ft(e, t) { + var n, r, i, o, a; + + for (n in e) { + if (r = G(n), i = t[r], o = e[n], Array.isArray(o) && (i = o[1], o = e[n] = o[0]), n !== r && (e[r] = o, delete e[n]), (a = w.cssHooks[r]) && "expand" in a) { + o = a.expand(o), delete e[r]; + + for (n in o) { + n in e || (e[n] = o[n], t[n] = i); + } + } else t[r] = i; + } + } + + function pt(e, t, n) { + var r, + i, + o = 0, + a = pt.prefilters.length, + s = w.Deferred().always(function () { + delete u.elem; + }), + u = function u() { + if (i) return !1; + + for (var t = nt || st(), n = Math.max(0, l.startTime + l.duration - t), r = 1 - (n / l.duration || 0), o = 0, a = l.tweens.length; o < a; o++) { + l.tweens[o].run(r); + } + + return s.notifyWith(e, [l, r, n]), r < 1 && a ? n : (a || s.notifyWith(e, [l, 1, 0]), s.resolveWith(e, [l]), !1); + }, + l = s.promise({ + elem: e, + props: w.extend({}, t), + opts: w.extend(!0, { + specialEasing: {}, + easing: w.easing._default + }, n), + originalProperties: t, + originalOptions: n, + startTime: nt || st(), + duration: n.duration, + tweens: [], + createTween: function createTween(t, n) { + var r = w.Tween(e, l.opts, t, n, l.opts.specialEasing[t] || l.opts.easing); + return l.tweens.push(r), r; + }, + stop: function stop(t) { + var n = 0, + r = t ? l.tweens.length : 0; + if (i) return this; + + for (i = !0; n < r; n++) { + l.tweens[n].run(1); + } + + return t ? (s.notifyWith(e, [l, 1, 0]), s.resolveWith(e, [l, t])) : s.rejectWith(e, [l, t]), this; + } + }), + c = l.props; + + for (ft(c, l.opts.specialEasing); o < a; o++) { + if (r = pt.prefilters[o].call(l, e, c, l.opts)) return g(r.stop) && (w._queueHooks(l.elem, l.opts.queue).stop = r.stop.bind(r)), r; + } + + return w.map(c, lt, l), g(l.opts.start) && l.opts.start.call(e, l), l.progress(l.opts.progress).done(l.opts.done, l.opts.complete).fail(l.opts.fail).always(l.opts.always), w.fx.timer(w.extend(u, { + elem: e, + anim: l, + queue: l.opts.queue + })), l; + } + + w.Animation = w.extend(pt, { + tweeners: { + "*": [function (e, t) { + var n = this.createTween(e, t); + return ue(n.elem, e, ie.exec(t), n), n; + }] + }, + tweener: function tweener(e, t) { + g(e) ? (t = e, e = ["*"]) : e = e.match(M); + + for (var n, r = 0, i = e.length; r < i; r++) { + n = e[r], pt.tweeners[n] = pt.tweeners[n] || [], pt.tweeners[n].unshift(t); + } + }, + prefilters: [ct], + prefilter: function prefilter(e, t) { + t ? pt.prefilters.unshift(e) : pt.prefilters.push(e); + } + }), w.speed = function (e, t, n) { + var r = e && "object" == _typeof(e) ? w.extend({}, e) : { + complete: n || !n && t || g(e) && e, + duration: e, + easing: n && t || t && !g(t) && t + }; + return w.fx.off ? r.duration = 0 : "number" != typeof r.duration && (r.duration in w.fx.speeds ? r.duration = w.fx.speeds[r.duration] : r.duration = w.fx.speeds._default), null != r.queue && !0 !== r.queue || (r.queue = "fx"), r.old = r.complete, r.complete = function () { + g(r.old) && r.old.call(this), r.queue && w.dequeue(this, r.queue); + }, r; + }, w.fn.extend({ + fadeTo: function fadeTo(e, t, n, r) { + return this.filter(ae).css("opacity", 0).show().end().animate({ + opacity: t + }, e, n, r); + }, + animate: function animate(e, t, n, r) { + var i = w.isEmptyObject(e), + o = w.speed(t, n, r), + a = function a() { + var t = pt(this, w.extend({}, e), o); + (i || J.get(this, "finish")) && t.stop(!0); + }; + + return a.finish = a, i || !1 === o.queue ? this.each(a) : this.queue(o.queue, a); + }, + stop: function stop(e, t, n) { + var r = function r(e) { + var t = e.stop; + delete e.stop, t(n); + }; + + return "string" != typeof e && (n = t, t = e, e = void 0), t && !1 !== e && this.queue(e || "fx", []), this.each(function () { + var t = !0, + i = null != e && e + "queueHooks", + o = w.timers, + a = J.get(this); + if (i) a[i] && a[i].stop && r(a[i]);else for (i in a) { + a[i] && a[i].stop && ot.test(i) && r(a[i]); + } + + for (i = o.length; i--;) { + o[i].elem !== this || null != e && o[i].queue !== e || (o[i].anim.stop(n), t = !1, o.splice(i, 1)); + } + + !t && n || w.dequeue(this, e); + }); + }, + finish: function finish(e) { + return !1 !== e && (e = e || "fx"), this.each(function () { + var t, + n = J.get(this), + r = n[e + "queue"], + i = n[e + "queueHooks"], + o = w.timers, + a = r ? r.length : 0; + + for (n.finish = !0, w.queue(this, e, []), i && i.stop && i.stop.call(this, !0), t = o.length; t--;) { + o[t].elem === this && o[t].queue === e && (o[t].anim.stop(!0), o.splice(t, 1)); + } + + for (t = 0; t < a; t++) { + r[t] && r[t].finish && r[t].finish.call(this); + } + + delete n.finish; + }); + } + }), w.each(["toggle", "show", "hide"], function (e, t) { + var n = w.fn[t]; + + w.fn[t] = function (e, r, i) { + return null == e || "boolean" == typeof e ? n.apply(this, arguments) : this.animate(ut(t, !0), e, r, i); + }; + }), w.each({ + slideDown: ut("show"), + slideUp: ut("hide"), + slideToggle: ut("toggle"), + fadeIn: { + opacity: "show" + }, + fadeOut: { + opacity: "hide" + }, + fadeToggle: { + opacity: "toggle" + } + }, function (e, t) { + w.fn[e] = function (e, n, r) { + return this.animate(t, e, n, r); + }; + }), w.timers = [], w.fx.tick = function () { + var e, + t = 0, + n = w.timers; + + for (nt = Date.now(); t < n.length; t++) { + (e = n[t])() || n[t] !== e || n.splice(t--, 1); + } + + n.length || w.fx.stop(), nt = void 0; + }, w.fx.timer = function (e) { + w.timers.push(e), w.fx.start(); + }, w.fx.interval = 13, w.fx.start = function () { + rt || (rt = !0, at()); + }, w.fx.stop = function () { + rt = null; + }, w.fx.speeds = { + slow: 600, + fast: 200, + _default: 400 + }, w.fn.delay = function (t, n) { + return t = w.fx ? w.fx.speeds[t] || t : t, n = n || "fx", this.queue(n, function (n, r) { + var i = e.setTimeout(n, t); + + r.stop = function () { + e.clearTimeout(i); + }; + }); + }, function () { + var e = r.createElement("input"), + t = r.createElement("select").appendChild(r.createElement("option")); + e.type = "checkbox", h.checkOn = "" !== e.value, h.optSelected = t.selected, (e = r.createElement("input")).value = "t", e.type = "radio", h.radioValue = "t" === e.value; + }(); + var dt, + ht = w.expr.attrHandle; + w.fn.extend({ + attr: function attr(e, t) { + return z(this, w.attr, e, t, arguments.length > 1); + }, + removeAttr: function removeAttr(e) { + return this.each(function () { + w.removeAttr(this, e); + }); + } + }), w.extend({ + attr: function attr(e, t, n) { + var r, + i, + o = e.nodeType; + if (3 !== o && 8 !== o && 2 !== o) return "undefined" == typeof e.getAttribute ? w.prop(e, t, n) : (1 === o && w.isXMLDoc(e) || (i = w.attrHooks[t.toLowerCase()] || (w.expr.match.bool.test(t) ? dt : void 0)), void 0 !== n ? null === n ? void w.removeAttr(e, t) : i && "set" in i && void 0 !== (r = i.set(e, n, t)) ? r : (e.setAttribute(t, n + ""), n) : i && "get" in i && null !== (r = i.get(e, t)) ? r : null == (r = w.find.attr(e, t)) ? void 0 : r); + }, + attrHooks: { + type: { + set: function set(e, t) { + if (!h.radioValue && "radio" === t && N(e, "input")) { + var n = e.value; + return e.setAttribute("type", t), n && (e.value = n), t; + } + } + } + }, + removeAttr: function removeAttr(e, t) { + var n, + r = 0, + i = t && t.match(M); + if (i && 1 === e.nodeType) while (n = i[r++]) { + e.removeAttribute(n); + } + } + }), dt = { + set: function set(e, t, n) { + return !1 === t ? w.removeAttr(e, n) : e.setAttribute(n, n), n; + } + }, w.each(w.expr.match.bool.source.match(/\w+/g), function (e, t) { + var n = ht[t] || w.find.attr; + + ht[t] = function (e, t, r) { + var i, + o, + a = t.toLowerCase(); + return r || (o = ht[a], ht[a] = i, i = null != n(e, t, r) ? a : null, ht[a] = o), i; + }; + }); + var gt = /^(?:input|select|textarea|button)$/i, + yt = /^(?:a|area)$/i; + w.fn.extend({ + prop: function prop(e, t) { + return z(this, w.prop, e, t, arguments.length > 1); + }, + removeProp: function removeProp(e) { + return this.each(function () { + delete this[w.propFix[e] || e]; + }); + } + }), w.extend({ + prop: function prop(e, t, n) { + var r, + i, + o = e.nodeType; + if (3 !== o && 8 !== o && 2 !== o) return 1 === o && w.isXMLDoc(e) || (t = w.propFix[t] || t, i = w.propHooks[t]), void 0 !== n ? i && "set" in i && void 0 !== (r = i.set(e, n, t)) ? r : e[t] = n : i && "get" in i && null !== (r = i.get(e, t)) ? r : e[t]; + }, + propHooks: { + tabIndex: { + get: function get(e) { + var t = w.find.attr(e, "tabindex"); + return t ? parseInt(t, 10) : gt.test(e.nodeName) || yt.test(e.nodeName) && e.href ? 0 : -1; + } + } + }, + propFix: { + "for": "htmlFor", + "class": "className" + } + }), h.optSelected || (w.propHooks.selected = { + get: function get(e) { + var t = e.parentNode; + return t && t.parentNode && t.parentNode.selectedIndex, null; + }, + set: function set(e) { + var t = e.parentNode; + t && (t.selectedIndex, t.parentNode && t.parentNode.selectedIndex); + } + }), w.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], function () { + w.propFix[this.toLowerCase()] = this; + }); + + function vt(e) { + return (e.match(M) || []).join(" "); + } + + function mt(e) { + return e.getAttribute && e.getAttribute("class") || ""; + } + + function xt(e) { + return Array.isArray(e) ? e : "string" == typeof e ? e.match(M) || [] : []; + } + + w.fn.extend({ + addClass: function addClass(e) { + var t, + n, + r, + i, + o, + a, + s, + u = 0; + if (g(e)) return this.each(function (t) { + w(this).addClass(e.call(this, t, mt(this))); + }); + if ((t = xt(e)).length) while (n = this[u++]) { + if (i = mt(n), r = 1 === n.nodeType && " " + vt(i) + " ") { + a = 0; + + while (o = t[a++]) { + r.indexOf(" " + o + " ") < 0 && (r += o + " "); + } + + i !== (s = vt(r)) && n.setAttribute("class", s); + } + } + return this; + }, + removeClass: function removeClass(e) { + var t, + n, + r, + i, + o, + a, + s, + u = 0; + if (g(e)) return this.each(function (t) { + w(this).removeClass(e.call(this, t, mt(this))); + }); + if (!arguments.length) return this.attr("class", ""); + if ((t = xt(e)).length) while (n = this[u++]) { + if (i = mt(n), r = 1 === n.nodeType && " " + vt(i) + " ") { + a = 0; + + while (o = t[a++]) { + while (r.indexOf(" " + o + " ") > -1) { + r = r.replace(" " + o + " ", " "); + } + } + + i !== (s = vt(r)) && n.setAttribute("class", s); + } + } + return this; + }, + toggleClass: function toggleClass(e, t) { + var n = _typeof(e), + r = "string" === n || Array.isArray(e); + + return "boolean" == typeof t && r ? t ? this.addClass(e) : this.removeClass(e) : g(e) ? this.each(function (n) { + w(this).toggleClass(e.call(this, n, mt(this), t), t); + }) : this.each(function () { + var t, i, o, a; + + if (r) { + i = 0, o = w(this), a = xt(e); + + while (t = a[i++]) { + o.hasClass(t) ? o.removeClass(t) : o.addClass(t); + } + } else void 0 !== e && "boolean" !== n || ((t = mt(this)) && J.set(this, "__className__", t), this.setAttribute && this.setAttribute("class", t || !1 === e ? "" : J.get(this, "__className__") || "")); + }); + }, + hasClass: function hasClass(e) { + var t, + n, + r = 0; + t = " " + e + " "; + + while (n = this[r++]) { + if (1 === n.nodeType && (" " + vt(mt(n)) + " ").indexOf(t) > -1) return !0; + } + + return !1; + } + }); + var bt = /\r/g; + w.fn.extend({ + val: function val(e) { + var t, + n, + r, + i = this[0]; + { + if (arguments.length) return r = g(e), this.each(function (n) { + var i; + 1 === this.nodeType && (null == (i = r ? e.call(this, n, w(this).val()) : e) ? i = "" : "number" == typeof i ? i += "" : Array.isArray(i) && (i = w.map(i, function (e) { + return null == e ? "" : e + ""; + })), (t = w.valHooks[this.type] || w.valHooks[this.nodeName.toLowerCase()]) && "set" in t && void 0 !== t.set(this, i, "value") || (this.value = i)); + }); + if (i) return (t = w.valHooks[i.type] || w.valHooks[i.nodeName.toLowerCase()]) && "get" in t && void 0 !== (n = t.get(i, "value")) ? n : "string" == typeof (n = i.value) ? n.replace(bt, "") : null == n ? "" : n; + } + } + }), w.extend({ + valHooks: { + option: { + get: function get(e) { + var t = w.find.attr(e, "value"); + return null != t ? t : vt(w.text(e)); + } + }, + select: { + get: function get(e) { + var t, + n, + r, + i = e.options, + o = e.selectedIndex, + a = "select-one" === e.type, + s = a ? null : [], + u = a ? o + 1 : i.length; + + for (r = o < 0 ? u : a ? o : 0; r < u; r++) { + if (((n = i[r]).selected || r === o) && !n.disabled && (!n.parentNode.disabled || !N(n.parentNode, "optgroup"))) { + if (t = w(n).val(), a) return t; + s.push(t); + } + } + + return s; + }, + set: function set(e, t) { + var n, + r, + i = e.options, + o = w.makeArray(t), + a = i.length; + + while (a--) { + ((r = i[a]).selected = w.inArray(w.valHooks.option.get(r), o) > -1) && (n = !0); + } + + return n || (e.selectedIndex = -1), o; + } + } + } + }), w.each(["radio", "checkbox"], function () { + w.valHooks[this] = { + set: function set(e, t) { + if (Array.isArray(t)) return e.checked = w.inArray(w(e).val(), t) > -1; + } + }, h.checkOn || (w.valHooks[this].get = function (e) { + return null === e.getAttribute("value") ? "on" : e.value; + }); + }), h.focusin = "onfocusin" in e; + + var wt = /^(?:focusinfocus|focusoutblur)$/, + Tt = function Tt(e) { + e.stopPropagation(); + }; + + w.extend(w.event, { + trigger: function trigger(t, n, i, o) { + var a, + s, + u, + l, + c, + p, + d, + h, + v = [i || r], + m = f.call(t, "type") ? t.type : t, + x = f.call(t, "namespace") ? t.namespace.split(".") : []; + + if (s = h = u = i = i || r, 3 !== i.nodeType && 8 !== i.nodeType && !wt.test(m + w.event.triggered) && (m.indexOf(".") > -1 && (m = (x = m.split(".")).shift(), x.sort()), c = m.indexOf(":") < 0 && "on" + m, t = t[w.expando] ? t : new w.Event(m, "object" == _typeof(t) && t), t.isTrigger = o ? 2 : 3, t.namespace = x.join("."), t.rnamespace = t.namespace ? new RegExp("(^|\\.)" + x.join("\\.(?:.*\\.|)") + "(\\.|$)") : null, t.result = void 0, t.target || (t.target = i), n = null == n ? [t] : w.makeArray(n, [t]), d = w.event.special[m] || {}, o || !d.trigger || !1 !== d.trigger.apply(i, n))) { + if (!o && !d.noBubble && !y(i)) { + for (l = d.delegateType || m, wt.test(l + m) || (s = s.parentNode); s; s = s.parentNode) { + v.push(s), u = s; + } + + u === (i.ownerDocument || r) && v.push(u.defaultView || u.parentWindow || e); + } + + a = 0; + + while ((s = v[a++]) && !t.isPropagationStopped()) { + h = s, t.type = a > 1 ? l : d.bindType || m, (p = (J.get(s, "events") || {})[t.type] && J.get(s, "handle")) && p.apply(s, n), (p = c && s[c]) && p.apply && Y(s) && (t.result = p.apply(s, n), !1 === t.result && t.preventDefault()); + } + + return t.type = m, o || t.isDefaultPrevented() || d._default && !1 !== d._default.apply(v.pop(), n) || !Y(i) || c && g(i[m]) && !y(i) && ((u = i[c]) && (i[c] = null), w.event.triggered = m, t.isPropagationStopped() && h.addEventListener(m, Tt), i[m](), t.isPropagationStopped() && h.removeEventListener(m, Tt), w.event.triggered = void 0, u && (i[c] = u)), t.result; + } + }, + simulate: function simulate(e, t, n) { + var r = w.extend(new w.Event(), n, { + type: e, + isSimulated: !0 + }); + w.event.trigger(r, null, t); + } + }), w.fn.extend({ + trigger: function trigger(e, t) { + return this.each(function () { + w.event.trigger(e, t, this); + }); + }, + triggerHandler: function triggerHandler(e, t) { + var n = this[0]; + if (n) return w.event.trigger(e, t, n, !0); + } + }), h.focusin || w.each({ + focus: "focusin", + blur: "focusout" + }, function (e, t) { + var n = function n(e) { + w.event.simulate(t, e.target, w.event.fix(e)); + }; + + w.event.special[t] = { + setup: function setup() { + var r = this.ownerDocument || this, + i = J.access(r, t); + i || r.addEventListener(e, n, !0), J.access(r, t, (i || 0) + 1); + }, + teardown: function teardown() { + var r = this.ownerDocument || this, + i = J.access(r, t) - 1; + i ? J.access(r, t, i) : (r.removeEventListener(e, n, !0), J.remove(r, t)); + } + }; + }); + var Ct = e.location, + Et = Date.now(), + kt = /\?/; + + w.parseXML = function (t) { + var n; + if (!t || "string" != typeof t) return null; + + try { + n = new e.DOMParser().parseFromString(t, "text/xml"); + } catch (e) { + n = void 0; + } + + return n && !n.getElementsByTagName("parsererror").length || w.error("Invalid XML: " + t), n; + }; + + var St = /\[\]$/, + Dt = /\r?\n/g, + Nt = /^(?:submit|button|image|reset|file)$/i, + At = /^(?:input|select|textarea|keygen)/i; + + function jt(e, t, n, r) { + var i; + if (Array.isArray(t)) w.each(t, function (t, i) { + n || St.test(e) ? r(e, i) : jt(e + "[" + ("object" == _typeof(i) && null != i ? t : "") + "]", i, n, r); + });else if (n || "object" !== x(t)) r(e, t);else for (i in t) { + jt(e + "[" + i + "]", t[i], n, r); + } + } + + w.param = function (e, t) { + var n, + r = [], + i = function i(e, t) { + var n = g(t) ? t() : t; + r[r.length] = encodeURIComponent(e) + "=" + encodeURIComponent(null == n ? "" : n); + }; + + if (Array.isArray(e) || e.jquery && !w.isPlainObject(e)) w.each(e, function () { + i(this.name, this.value); + });else for (n in e) { + jt(n, e[n], t, i); + } + return r.join("&"); + }, w.fn.extend({ + serialize: function serialize() { + return w.param(this.serializeArray()); + }, + serializeArray: function serializeArray() { + return this.map(function () { + var e = w.prop(this, "elements"); + return e ? w.makeArray(e) : this; + }).filter(function () { + var e = this.type; + return this.name && !w(this).is(":disabled") && At.test(this.nodeName) && !Nt.test(e) && (this.checked || !pe.test(e)); + }).map(function (e, t) { + var n = w(this).val(); + return null == n ? null : Array.isArray(n) ? w.map(n, function (e) { + return { + name: t.name, + value: e.replace(Dt, "\r\n") + }; + }) : { + name: t.name, + value: n.replace(Dt, "\r\n") + }; + }).get(); + } + }); + var qt = /%20/g, + Lt = /#.*$/, + Ht = /([?&])_=[^&]*/, + Ot = /^(.*?):[ \t]*([^\r\n]*)$/gm, + Pt = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, + Mt = /^(?:GET|HEAD)$/, + Rt = /^\/\//, + It = {}, + Wt = {}, + $t = "*/".concat("*"), + Bt = r.createElement("a"); + Bt.href = Ct.href; + + function Ft(e) { + return function (t, n) { + "string" != typeof t && (n = t, t = "*"); + var r, + i = 0, + o = t.toLowerCase().match(M) || []; + if (g(n)) while (r = o[i++]) { + "+" === r[0] ? (r = r.slice(1) || "*", (e[r] = e[r] || []).unshift(n)) : (e[r] = e[r] || []).push(n); + } + }; + } + + function _t(e, t, n, r) { + var i = {}, + o = e === Wt; + + function a(s) { + var u; + return i[s] = !0, w.each(e[s] || [], function (e, s) { + var l = s(t, n, r); + return "string" != typeof l || o || i[l] ? o ? !(u = l) : void 0 : (t.dataTypes.unshift(l), a(l), !1); + }), u; + } + + return a(t.dataTypes[0]) || !i["*"] && a("*"); + } + + function zt(e, t) { + var n, + r, + i = w.ajaxSettings.flatOptions || {}; + + for (n in t) { + void 0 !== t[n] && ((i[n] ? e : r || (r = {}))[n] = t[n]); + } + + return r && w.extend(!0, e, r), e; + } + + function Xt(e, t, n) { + var r, + i, + o, + a, + s = e.contents, + u = e.dataTypes; + + while ("*" === u[0]) { + u.shift(), void 0 === r && (r = e.mimeType || t.getResponseHeader("Content-Type")); + } + + if (r) for (i in s) { + if (s[i] && s[i].test(r)) { + u.unshift(i); + break; + } + } + if (u[0] in n) o = u[0];else { + for (i in n) { + if (!u[0] || e.converters[i + " " + u[0]]) { + o = i; + break; + } + + a || (a = i); + } + + o = o || a; + } + if (o) return o !== u[0] && u.unshift(o), n[o]; + } + + function Ut(e, t, n, r) { + var i, + o, + a, + s, + u, + l = {}, + c = e.dataTypes.slice(); + if (c[1]) for (a in e.converters) { + l[a.toLowerCase()] = e.converters[a]; + } + o = c.shift(); + + while (o) { + if (e.responseFields[o] && (n[e.responseFields[o]] = t), !u && r && e.dataFilter && (t = e.dataFilter(t, e.dataType)), u = o, o = c.shift()) if ("*" === o) o = u;else if ("*" !== u && u !== o) { + if (!(a = l[u + " " + o] || l["* " + o])) for (i in l) { + if ((s = i.split(" "))[1] === o && (a = l[u + " " + s[0]] || l["* " + s[0]])) { + !0 === a ? a = l[i] : !0 !== l[i] && (o = s[0], c.unshift(s[1])); + break; + } + } + if (!0 !== a) if (a && e["throws"]) t = a(t);else try { + t = a(t); + } catch (e) { + return { + state: "parsererror", + error: a ? e : "No conversion from " + u + " to " + o + }; + } + } + } + + return { + state: "success", + data: t + }; + } + + w.extend({ + active: 0, + lastModified: {}, + etag: {}, + ajaxSettings: { + url: Ct.href, + type: "GET", + isLocal: Pt.test(Ct.protocol), + global: !0, + processData: !0, + async: !0, + contentType: "application/x-www-form-urlencoded; charset=UTF-8", + accepts: { + "*": $t, + text: "text/plain", + html: "text/html", + xml: "application/xml, text/xml", + json: "application/json, text/javascript" + }, + contents: { + xml: /\bxml\b/, + html: /\bhtml/, + json: /\bjson\b/ + }, + responseFields: { + xml: "responseXML", + text: "responseText", + json: "responseJSON" + }, + converters: { + "* text": String, + "text html": !0, + "text json": JSON.parse, + "text xml": w.parseXML + }, + flatOptions: { + url: !0, + context: !0 + } + }, + ajaxSetup: function ajaxSetup(e, t) { + return t ? zt(zt(e, w.ajaxSettings), t) : zt(w.ajaxSettings, e); + }, + ajaxPrefilter: Ft(It), + ajaxTransport: Ft(Wt), + ajax: function ajax(t, n) { + "object" == _typeof(t) && (n = t, t = void 0), n = n || {}; + var i, + o, + a, + s, + u, + l, + c, + f, + p, + d, + h = w.ajaxSetup({}, n), + g = h.context || h, + y = h.context && (g.nodeType || g.jquery) ? w(g) : w.event, + v = w.Deferred(), + m = w.Callbacks("once memory"), + x = h.statusCode || {}, + b = {}, + T = {}, + C = "canceled", + E = { + readyState: 0, + getResponseHeader: function getResponseHeader(e) { + var t; + + if (c) { + if (!s) { + s = {}; + + while (t = Ot.exec(a)) { + s[t[1].toLowerCase()] = t[2]; + } + } + + t = s[e.toLowerCase()]; + } + + return null == t ? null : t; + }, + getAllResponseHeaders: function getAllResponseHeaders() { + return c ? a : null; + }, + setRequestHeader: function setRequestHeader(e, t) { + return null == c && (e = T[e.toLowerCase()] = T[e.toLowerCase()] || e, b[e] = t), this; + }, + overrideMimeType: function overrideMimeType(e) { + return null == c && (h.mimeType = e), this; + }, + statusCode: function statusCode(e) { + var t; + if (e) if (c) E.always(e[E.status]);else for (t in e) { + x[t] = [x[t], e[t]]; + } + return this; + }, + abort: function abort(e) { + var t = e || C; + return i && i.abort(t), k(0, t), this; + } + }; + + if (v.promise(E), h.url = ((t || h.url || Ct.href) + "").replace(Rt, Ct.protocol + "//"), h.type = n.method || n.type || h.method || h.type, h.dataTypes = (h.dataType || "*").toLowerCase().match(M) || [""], null == h.crossDomain) { + l = r.createElement("a"); + + try { + l.href = h.url, l.href = l.href, h.crossDomain = Bt.protocol + "//" + Bt.host != l.protocol + "//" + l.host; + } catch (e) { + h.crossDomain = !0; + } + } + + if (h.data && h.processData && "string" != typeof h.data && (h.data = w.param(h.data, h.traditional)), _t(It, h, n, E), c) return E; + (f = w.event && h.global) && 0 == w.active++ && w.event.trigger("ajaxStart"), h.type = h.type.toUpperCase(), h.hasContent = !Mt.test(h.type), o = h.url.replace(Lt, ""), h.hasContent ? h.data && h.processData && 0 === (h.contentType || "").indexOf("application/x-www-form-urlencoded") && (h.data = h.data.replace(qt, "+")) : (d = h.url.slice(o.length), h.data && (h.processData || "string" == typeof h.data) && (o += (kt.test(o) ? "&" : "?") + h.data, delete h.data), !1 === h.cache && (o = o.replace(Ht, "$1"), d = (kt.test(o) ? "&" : "?") + "_=" + Et++ + d), h.url = o + d), h.ifModified && (w.lastModified[o] && E.setRequestHeader("If-Modified-Since", w.lastModified[o]), w.etag[o] && E.setRequestHeader("If-None-Match", w.etag[o])), (h.data && h.hasContent && !1 !== h.contentType || n.contentType) && E.setRequestHeader("Content-Type", h.contentType), E.setRequestHeader("Accept", h.dataTypes[0] && h.accepts[h.dataTypes[0]] ? h.accepts[h.dataTypes[0]] + ("*" !== h.dataTypes[0] ? ", " + $t + "; q=0.01" : "") : h.accepts["*"]); + + for (p in h.headers) { + E.setRequestHeader(p, h.headers[p]); + } + + if (h.beforeSend && (!1 === h.beforeSend.call(g, E, h) || c)) return E.abort(); + + if (C = "abort", m.add(h.complete), E.done(h.success), E.fail(h.error), i = _t(Wt, h, n, E)) { + if (E.readyState = 1, f && y.trigger("ajaxSend", [E, h]), c) return E; + h.async && h.timeout > 0 && (u = e.setTimeout(function () { + E.abort("timeout"); + }, h.timeout)); + + try { + c = !1, i.send(b, k); + } catch (e) { + if (c) throw e; + k(-1, e); + } + } else k(-1, "No Transport"); + + function k(t, n, r, s) { + var l, + p, + d, + b, + T, + C = n; + c || (c = !0, u && e.clearTimeout(u), i = void 0, a = s || "", E.readyState = t > 0 ? 4 : 0, l = t >= 200 && t < 300 || 304 === t, r && (b = Xt(h, E, r)), b = Ut(h, b, E, l), l ? (h.ifModified && ((T = E.getResponseHeader("Last-Modified")) && (w.lastModified[o] = T), (T = E.getResponseHeader("etag")) && (w.etag[o] = T)), 204 === t || "HEAD" === h.type ? C = "nocontent" : 304 === t ? C = "notmodified" : (C = b.state, p = b.data, l = !(d = b.error))) : (d = C, !t && C || (C = "error", t < 0 && (t = 0))), E.status = t, E.statusText = (n || C) + "", l ? v.resolveWith(g, [p, C, E]) : v.rejectWith(g, [E, C, d]), E.statusCode(x), x = void 0, f && y.trigger(l ? "ajaxSuccess" : "ajaxError", [E, h, l ? p : d]), m.fireWith(g, [E, C]), f && (y.trigger("ajaxComplete", [E, h]), --w.active || w.event.trigger("ajaxStop"))); + } + + return E; + }, + getJSON: function getJSON(e, t, n) { + return w.get(e, t, n, "json"); + }, + getScript: function getScript(e, t) { + return w.get(e, void 0, t, "script"); + } + }), w.each(["get", "post"], function (e, t) { + w[t] = function (e, n, r, i) { + return g(n) && (i = i || r, r = n, n = void 0), w.ajax(w.extend({ + url: e, + type: t, + dataType: i, + data: n, + success: r + }, w.isPlainObject(e) && e)); + }; + }), w._evalUrl = function (e) { + return w.ajax({ + url: e, + type: "GET", + dataType: "script", + cache: !0, + async: !1, + global: !1, + "throws": !0 + }); + }, w.fn.extend({ + wrapAll: function wrapAll(e) { + var t; + return this[0] && (g(e) && (e = e.call(this[0])), t = w(e, this[0].ownerDocument).eq(0).clone(!0), this[0].parentNode && t.insertBefore(this[0]), t.map(function () { + var e = this; + + while (e.firstElementChild) { + e = e.firstElementChild; + } + + return e; + }).append(this)), this; + }, + wrapInner: function wrapInner(e) { + return g(e) ? this.each(function (t) { + w(this).wrapInner(e.call(this, t)); + }) : this.each(function () { + var t = w(this), + n = t.contents(); + n.length ? n.wrapAll(e) : t.append(e); + }); + }, + wrap: function wrap(e) { + var t = g(e); + return this.each(function (n) { + w(this).wrapAll(t ? e.call(this, n) : e); + }); + }, + unwrap: function unwrap(e) { + return this.parent(e).not("body").each(function () { + w(this).replaceWith(this.childNodes); + }), this; + } + }), w.expr.pseudos.hidden = function (e) { + return !w.expr.pseudos.visible(e); + }, w.expr.pseudos.visible = function (e) { + return !!(e.offsetWidth || e.offsetHeight || e.getClientRects().length); + }, w.ajaxSettings.xhr = function () { + try { + return new e.XMLHttpRequest(); + } catch (e) {} + }; + var Vt = { + 0: 200, + 1223: 204 + }, + Gt = w.ajaxSettings.xhr(); + h.cors = !!Gt && "withCredentials" in Gt, h.ajax = Gt = !!Gt, w.ajaxTransport(function (t) { + var _n, r; + + if (h.cors || Gt && !t.crossDomain) return { + send: function send(i, o) { + var a, + s = t.xhr(); + if (s.open(t.type, t.url, t.async, t.username, t.password), t.xhrFields) for (a in t.xhrFields) { + s[a] = t.xhrFields[a]; + } + t.mimeType && s.overrideMimeType && s.overrideMimeType(t.mimeType), t.crossDomain || i["X-Requested-With"] || (i["X-Requested-With"] = "XMLHttpRequest"); + + for (a in i) { + s.setRequestHeader(a, i[a]); + } + + _n = function n(e) { + return function () { + _n && (_n = r = s.onload = s.onerror = s.onabort = s.ontimeout = s.onreadystatechange = null, "abort" === e ? s.abort() : "error" === e ? "number" != typeof s.status ? o(0, "error") : o(s.status, s.statusText) : o(Vt[s.status] || s.status, s.statusText, "text" !== (s.responseType || "text") || "string" != typeof s.responseText ? { + binary: s.response + } : { + text: s.responseText + }, s.getAllResponseHeaders())); + }; + }, s.onload = _n(), r = s.onerror = s.ontimeout = _n("error"), void 0 !== s.onabort ? s.onabort = r : s.onreadystatechange = function () { + 4 === s.readyState && e.setTimeout(function () { + _n && r(); + }); + }, _n = _n("abort"); + + try { + s.send(t.hasContent && t.data || null); + } catch (e) { + if (_n) throw e; + } + }, + abort: function abort() { + _n && _n(); + } + }; + }), w.ajaxPrefilter(function (e) { + e.crossDomain && (e.contents.script = !1); + }), w.ajaxSetup({ + accepts: { + script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript" + }, + contents: { + script: /\b(?:java|ecma)script\b/ + }, + converters: { + "text script": function textScript(e) { + return w.globalEval(e), e; + } + } + }), w.ajaxPrefilter("script", function (e) { + void 0 === e.cache && (e.cache = !1), e.crossDomain && (e.type = "GET"); + }), w.ajaxTransport("script", function (e) { + if (e.crossDomain) { + var t, _n2; + + return { + send: function send(i, o) { + t = w("