vendor: 27,742 bytes, lines 1-554
1/* 2 Copyright (C) Federico Zivolo 2017 3 Distributed under the MIT License (license terms are at http://opensource.org/licenses/MIT). 4 */(function (e, t) { 5 'object' == typeof exports && 'undefined' != typeof module ? module.exports = t() : 'function' == typeof define && define.amd ? define(t) : e.Popper = t() 6})(this, function () { 7 'use strict'; 8 function e(e) { 9 return e && '[object Function]' === {}.toString.call(e) 10 } 11 function t(e, t) { 12 if (1 !== e.nodeType) 13 return []; 14 var o = window.getComputedStyle(e, null); 15 return t ? o[t] : o 16 } 17 function o(e) { 18 return 'HTML' === e.nodeName ? e : e.parentNode || e.host 19 } 20 function n(e) { 21 if (!e || -1 !== ['HTML', 'BODY', '#document'].indexOf(e.nodeName)) 22 return window.document.body; 23 var i = t(e), r = i.overflow, p = i.overflowX, s = i.overflowY; 24 return /(auto|scroll)/.test(r + s + p) ? e : n(o(e)) 25 } 26 function r(e) { 27 var o = e && e.offsetParent, i = o && o.nodeName; 28 return i && 'BODY' !== i && 'HTML' !== i ? -1 !== ['TD', 'TABLE'].indexOf(o.nodeName) && 'static' === t(o, 'position') ? r(o) : o : window.document.documentElement 29 } 30 function p(e) { 31 var t = e.nodeName; 32 return 'BODY' !== t && ('HTML' === t || r(e.firstElementChild) === e) 33 } 34 function s(e) { 35 return null === e.parentNode ? e : s(e.parentNode) 36 } 37 function d(e, t) { 38 if (!e || !e.nodeType || !t || !t.nodeType) 39 return window.document.documentElement; 40 var o = e.compareDocumentPosition(t) & Node.DOCUMENT_POSITION_FOLLOWING, i = o ? e : t, n = o ? t : e, a = document.createRange(); 41 a.setStart(i, 0), a.setEnd(n, 0); 42 var f = a.commonAncestorContainer; 43 if (e !== f && t !== f || i.contains(n)) 44 return p(f) ? f : r(f); 45 var l = s(e); 46 return l.host ? d(l.host, t) : d(e, s(t).host) 47 } 48 function a(e) { 49 var t = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : 'top', o = 'top' === t ? 'scrollTop' : 'scrollLeft', i = e.nodeName; 50 if ('BODY' === i || 'HTML' === i) { 51 var n = window.document.documentElement, r = window.document.scrollingElement || n; 52 return r[o] 53 } 54 return e[o] 55 } 56 function f(e, t) { 57 var o = 2 < arguments.length && void 0 !== arguments[2] && arguments[2], i = a(t, 'top'), n = a(t, 'left'), r = o ? -1 : 1; 58 return e.top += i * r, e.bottom += i * r, e.left += n * r, e.right += n * r, e 59 } 60 function l(e, t) { 61 var o = 'x' === t ? 'Left' : 'Top', i = 'Left' == o ? 'Right' : 'Bottom'; 62 return +e['border' + o + 'Width'].split('px')[0] + +e['border' + i + 'Width'].split('px')[0] 63 } 64 function m(e, t, o, i) { 65 return _(t['offset' + e], o['client' + e], o['offset' + e], ie() ? o['offset' + e] + i['margin' + ('Height' === e ? 'Top' : 'Left')] + i['margin' + ('Height' === e ? 'Bottom' : 'Right')] : 0) 66 } 67 function h() { 68 var e = window.document.body, t = window.document.documentElement, o = ie() && window.getComputedStyle(t); 69 return { height: m('Height', e, t, o), width: m('Width', e, t, o) } 70 } 71 function c(e) { 72 return se({}, e, { right: e.left + e.width, bottom: e.top + e.height }) 73 } 74 function g(e) { 75 var o = {}; 76 if (ie()) 77 try { 78 o = e.getBoundingClientRect(); 79 var i = a(e, 'top'), n = a(e, 'left'); 80 o.top += i, o.left += n, o.bottom += i, o.right += n 81 } catch (e) { 82 } 83 else 84 o = e.getBoundingClientRect(); 85 var r = { left: o.left, top: o.top, width: o.right - o.left, height: o.bottom - o.top }, p = 'HTML' === e.nodeName ? h() : {}, s = p.width || e.clientWidth || r.right - r.left, d = p.height || e.clientHeight || r.bottom - r.top, f = e.offsetWidth - s, m = e.offsetHeight - d; 86 if (f || m) { 87 var g = t(e); 88 f -= l(g, 'x'), m -= l(g, 'y'), r.width -= f, r.height -= m 89 } 90 return c(r) 91 } 92 function u(e, o) { 93 var i = ie(), r = 'HTML' === o.nodeName, p = g(e), s = g(o), d = n(e), a = t(o), l = +a.borderTopWidth.split('px')[0], m = +a.borderLeftWidth.split('px')[0], h = c({ top: p.top - s.top - l, left: p.left - s.left - m, width: p.width, height: p.height }); 94 if (h.marginTop = 0, h.marginLeft = 0, !i && r) { 95 var u = +a.marginTop.split('px')[0], b = +a.marginLeft.split('px')[0]; 96 h.top -= l - u, h.bottom -= l - u, h.left -= m - b, h.right -= m - b, h.marginTop = u, h.marginLeft = b 97 } 98 return (i ? o.contains(d) : o === d && 'BODY' !== d.nodeName) && (h = f(h, o)), h 99 } 100 function b(e) { 101 var t = window.document.documentElement, o = u(e, t), i = _(t.clientWidth, window.innerWidth || 0), n = _(t.clientHeight, window.innerHeight || 0), r = a(t), p = a(t, 'left'), s = { top: r - o.top + o.marginTop, left: p - o.left + o.marginLeft, width: i, height: n }; 102 return c(s) 103 } 104 function y(e) { 105 var i = e.nodeName; 106 return 'BODY' === i || 'HTML' === i ? !1 : 'fixed' === t(e, 'position') || y(o(e)) 107 } 108 function w(e, t, i, r) { 109 var p = { top: 0, left: 0 }, s = d(e, t); 110 if ('viewport' === r) 111 p = b(s); 112 else { 113 var a; 114 'scrollParent' === r ? (a = n(o(e)), 'BODY' === a.nodeName && (a = window.document.documentElement)) : 'window' === r ? a = window.document.documentElement : a = r; 115 var f = u(a, s); 116 if ('HTML' === a.nodeName && !y(s)) { 117 var l = h(), m = l.height, c = l.width; 118 p.top += f.top - f.marginTop, p.bottom = m + f.top, p.left += f.left - f.marginLeft, p.right = c + f.left 119 } else 120 p = f 121 } 122 return p.left += i, p.top += i, p.right -= i, p.bottom -= i, p 123 } 124 function v(e) { 125 var t = e.width, o = e.height; 126 return t * o 127 } 128 function E(e, t, o, i, n) { 129 var r = 5 < arguments.length && void 0 !== arguments[5] ? arguments[5] : 0; 130 if (-1 === e.indexOf('auto')) 131 return e; 132 var p = w(o, i, r, n), s = { top: { width: p.width, height: t.top - p.top }, right: { width: p.right - t.right, height: p.height }, bottom: { width: p.width, height: p.bottom - t.bottom }, left: { width: t.left - p.left, height: p.height } }, d = Object.keys(s).map(function (e) { 133 return se({ key: e }, s[e], { area: v(s[e]) }) 134 }).sort(function (e, t) { 135 return t.area - e.area 136 }), a = d.filter(function (e) { 137 var t = e.width, i = e.height; 138 return t >= o.clientWidth && i >= o.clientHeight 139 }), f = 0 < a.length ? a[0].key : d[0].key, l = e.split('-')[1]; 140 return f + (l ? '-' + l : '') 141 } 142 function x(e, t, o) { 143 var i = d(t, o); 144 return u(o, i) 145 } 146 function O(e) { 147 var t = window.getComputedStyle(e), o = parseFloat(t.marginTop) + parseFloat(t.marginBottom), i = parseFloat(t.marginLeft) + parseFloat(t.marginRight), n = { width: e.offsetWidth + i, height: e.offsetHeight + o }; 148 return n 149 } 150 function L(e) { 151 var t = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' }; 152 return e.replace(/left|right|bottom|top/g, function (e) { 153 return t[e] 154 }) 155 } 156 function S(e, t, o) { 157 o = o.split('-')[0]; 158 var i = O(e), n = { width: i.width, height: i.height }, r = -1 !== ['right', 'left'].indexOf(o), p = r ? 'top' : 'left', s = r ? 'left' : 'top', d = r ? 'height' : 'width', a = r ? 'width' : 'height'; 159 return n[p] = t[p] + t[d] / 2 - i[d] / 2, n[s] = o === s ? t[s] - i[a] : t[L(s)], n 160 } 161 function T(e, t) { 162 return Array.prototype.find ? e.find(t) : e.filter(t)[0] 163 } 164 function C(e, t, o) { 165 if (Array.prototype.findIndex) 166 return e.findIndex(function (e) { 167 return e[t] === o 168 }); 169 var i = T(e, function (e) { 170 return e[t] === o 171 }); 172 return e.indexOf(i) 173 } 174 function N(t, o, i) { 175 var n = void 0 === i ? t : t.slice(0, C(t, 'name', i)); 176 return n.forEach(function (t) { 177 t.function && console.warn('`modifier.function` is deprecated, use `modifier.fn`!'); 178 var i = t.function || t.fn; 179 t.enabled && e(i) && (o.offsets.popper = c(o.offsets.popper), o.offsets.reference = c(o.offsets.reference), o = i(o, t)) 180 }), o 181 } 182 function k() { 183 if (!this.state.isDestroyed) { 184 var e = { instance: this, styles: {}, attributes: {}, flipped: !1, offsets: {} }; 185 e.offsets.reference = x(this.state, this.popper, this.reference), e.placement = E(this.options.placement, e.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding), e.originalPlacement = e.placement, e.offsets.popper = S(this.popper, e.offsets.reference, e.placement), e.offsets.popper.position = 'absolute', e = N(this.modifiers, e), this.state.isCreated ? this.options.onUpdate(e) : (this.state.isCreated = !0, this.options.onCreate(e)) 186 } 187 } 188 function W(e, t) { 189 return e.some(function (e) { 190 var o = e.name, i = e.enabled; 191 return i && o === t 192 }) 193 } 194 function B(e) { 195 for (var t = [!1, 'ms', 'Webkit', 'Moz', 'O'], o = e.charAt(0).toUpperCase() + e.slice(1), n = 0; n < t.length - 1; n++) { 196 var i = t[n], r = i ? '' + i + o : e; 197 if ('undefined' != typeof window.document.body.style[r]) 198 return r 199 } 200 return null 201 } 202 function D() { 203 return this.state.isDestroyed = !0, W(this.modifiers, 'applyStyle') && (this.popper.removeAttribute('x-placement'), this.popper.style.left = '', this.popper.style.position = '', this.popper.style.top = '', this.popper.style[B('transform')] = ''), this.disableEventListeners(), this.options.removeOnDestroy && this.popper.parentNode.removeChild(this.popper), this 204 } 205 function H(e, t, o, i) { 206 var r = 'BODY' === e.nodeName, p = r ? window : e; 207 p.addEventListener(t, o, { passive: !0 }), r || H(n(p.parentNode), t, o, i), i.push(p) 208 } 209 function P(e, t, o, i) { 210 o.updateBound = i, window.addEventListener('resize', o.updateBound, { passive: !0 }); 211 var r = n(e); 212 return H(r, 'scroll', o.updateBound, o.scrollParents), o.scrollElement = r, o.eventsEnabled = !0, o 213 } 214 function A() { 215 this.state.eventsEnabled || (this.state = P(this.reference, this.options, this.state, this.scheduleUpdate)) 216 } 217 function M(e, t) { 218 return window.removeEventListener('resize', t.updateBound), t.scrollParents.forEach(function (e) { 219 e.removeEventListener('scroll', t.updateBound) 220 }), t.updateBound = null, t.scrollParents = [], t.scrollElement = null, t.eventsEnabled = !1, t 221 } 222 function I() { 223 this.state.eventsEnabled && (window.cancelAnimationFrame(this.scheduleUpdate), this.state = M(this.reference, this.state)) 224 } 225 function R(e) { 226 return '' !== e && !isNaN(parseFloat(e)) && isFinite(e) 227 } 228 function U(e, t) { 229 Object.keys(t).forEach(function (o) { 230 var i = ''; 231 -1 !== ['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(o) && R(t[o]) && (i = 'px'), e.style[o] = t[o] + i 232 }) 233 } 234 function Y(e, t) { 235 Object.keys(t).forEach(function (o) { 236 var i = t[o]; 237 !1 === i ? e.removeAttribute(o) : e.setAttribute(o, t[o]) 238 }) 239 } 240 function F(e, t, o) { 241 var i = T(e, function (e) { 242 var o = e.name; 243 return o === t 244 }), n = !!i && e.some(function (e) { 245 return e.name === o && e.enabled && e.order < i.order 246 }); 247 if (!n) { 248 var r = '`' + t + '`'; 249 console.warn('`' + o + '`' + ' modifier is required by ' + r + ' modifier in order to work, be sure to include it before ' + r + '!') 250 } 251 return n 252 } 253 function j(e) { 254 return 'end' === e ? 'start' : 'start' === e ? 'end' : e 255 } 256 function K(e) { 257 var t = 1 < arguments.length && void 0 !== arguments[1] && arguments[1], o = ae.indexOf(e), i = ae.slice(o + 1).concat(ae.slice(0, o)); 258 return t ? i.reverse() : i 259 } 260 function q(e, t, o, i) { 261 var n = e.match(/((?:\-|\+)?\d*\.?\d*)(.*)/), r = +n[1], p = n[2]; 262 if (!r) 263 return e; 264 if (0 === p.indexOf('%')) { 265 var s; 266 switch (p) { 267 case '%p': 268 s = o; 269 break; 270 case '%': 271 case '%r': 272 default: 273 s = i; 274 } 275 var d = c(s); 276 return d[t] / 100 * r 277 } 278 if ('vh' === p || 'vw' === p) { 279 var a; 280 return a = 'vh' === p ? _(document.documentElement.clientHeight, window.innerHeight || 0) : _(document.documentElement.clientWidth, window.innerWidth || 0), a / 100 * r 281 } 282 return r 283 } 284 function G(e, t, o, i) { 285 var n = [0, 0], r = -1 !== ['right', 'left'].indexOf(i), p = e.split(/(\+|\-)/).map(function (e) { 286 return e.trim() 287 }), s = p.indexOf(T(p, function (e) { 288 return -1 !== e.search(/,|\s/) 289 })); 290 p[s] && -1 === p[s].indexOf(',') && console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.'); 291 var d = /\s*,\s*|\s+/, a = -1 === s ? [p] : [p.slice(0, s).concat([p[s].split(d)[0]]), [p[s].split(d)[1]].concat(p.slice(s + 1))]; 292 return a = a.map(function (e, i) { 293 var n = (1 === i ? !r : r) ? 'height' : 'width', p = !1; 294 return e.reduce(function (e, t) { 295 return '' === e[e.length - 1] && -1 !== ['+', '-'].indexOf(t) ? (e[e.length - 1] = t, p = !0, e) : p ? (e[e.length - 1] += t, p = !1, e) : e.concat(t) 296 }, []).map(function (e) { 297 return q(e, n, t, o) 298 }) 299 }), a.forEach(function (e, t) { 300 e.forEach(function (o, i) { 301 R(o) && (n[t] += o * ('-' === e[i - 1] ? -1 : 1)) 302 }) 303 }), n 304 } 305 for (var z = Math.min, V = Math.floor, _ = Math.max, X = ['native code', '[object MutationObserverConstructor]'], Q = function (e) { 306 return X.some(function (t) { 307 return -1 < (e || '').toString().indexOf(t) 308 }) 309 }, J = 'undefined' != typeof window, Z = ['Edge', 'Trident', 'Firefox'], $ = 0, ee = 0; ee < Z.length; ee += 1) 310 if (J && 0 <= navigator.userAgent.indexOf(Z[ee])) { 311 $ = 1; 312 break 313 } 314 var i, te = J && Q(window.MutationObserver), oe = te ? function (e) { 315 var t = !1, o = 0, i = document.createElement('span'), n = new MutationObserver(function () { 316 e(), t = !1 317 }); 318 return n.observe(i, { attributes: !0 }), function () { 319 t || (t = !0, i.setAttribute('x-index', o), ++o) 320 } 321 } : function (e) { 322 var t = !1; 323 return function () { 324 t || (t = !0, setTimeout(function () { 325 t = !1, e() 326 }, $)) 327 } 328 }, ie = function () { 329 return void 0 == i && (i = -1 !== navigator.appVersion.indexOf('MSIE 10')), i 330 }, ne = function (e, t) { 331 if (!(e instanceof t)) 332 throw new TypeError('Cannot call a class as a function') 333 }, re = function () { 334 function e(e, t) { 335 for (var o, n = 0; n < t.length; n++) 336 o = t[n], o.enumerable = o.enumerable || !1, o.configurable = !0, 'value' in o && (o.writable = !0), Object.defineProperty(e, o.key, o) 337 } 338 return function (t, o, i) { 339 return o && e(t.prototype, o), i && e(t, i), t 340 } 341 }(), pe = function (e, t, o) { 342 return t in e ? Object.defineProperty(e, t, { value: o, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = o, e 343 }, se = Object.assign || function (e) { 344 for (var t, o = 1; o < arguments.length; o++) 345 for (var i in t = arguments[o], t) 346 Object.prototype.hasOwnProperty.call(t, i) && (e[i] = t[i]); 347 return e 348 }, de = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'], ae = de.slice(3), fe = { FLIP: 'flip', CLOCKWISE: 'clockwise', COUNTERCLOCKWISE: 'counterclockwise' }, le = function () { 349 function t(o, i) { 350 var n = this, r = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : {}; 351 ne(this, t), this.scheduleUpdate = function () { 352 return requestAnimationFrame(n.update) 353 }, this.update = oe(this.update.bind(this)), this.options = se({}, t.Defaults, r), this.state = { isDestroyed: !1, isCreated: !1, scrollParents: [] }, this.reference = o.jquery ? o[0] : o, this.popper = i.jquery ? i[0] : i, this.options.modifiers = {}, Object.keys(se({}, t.Defaults.modifiers, r.modifiers)).forEach(function (e) { 354 n.options.modifiers[e] = se({}, t.Defaults.modifiers[e] || {}, r.modifiers ? r.modifiers[e] : {}) 355 }), this.modifiers = Object.keys(this.options.modifiers).map(function (e) { 356 return se({ name: e }, n.options.modifiers[e]) 357 }).sort(function (e, t) { 358 return e.order - t.order 359 }), this.modifiers.forEach(function (t) { 360 t.enabled && e(t.onLoad) && t.onLoad(n.reference, n.popper, n.options, t, n.state) 361 }), this.update(); 362 var p = this.options.eventsEnabled; 363 p && this.enableEventListeners(), this.state.eventsEnabled = p 364 } 365 return re(t, [{ 366 key: 'update', value: function () { 367 return k.call(this) 368 } 369 }, { 370 key: 'destroy', value: function () { 371 return D.call(this) 372 } 373 }, { 374 key: 'enableEventListeners', value: function () { 375 return A.call(this) 376 } 377 }, { 378 key: 'disableEventListeners', value: function () { 379 return I.call(this) 380 } 381 }]), t 382 }(); 383 return le.Utils = ('undefined' == typeof window ? global : window).PopperUtils, le.placements = de, le.Defaults = { 384 placement: 'bottom', eventsEnabled: !0, removeOnDestroy: !1, onCreate: function () { 385 }, onUpdate: function () { 386 }, modifiers: { 387 shift: { 388 order: 100, enabled: !0, fn: function (e) { 389 var t = e.placement, o = t.split('-')[0], i = t.split('-')[1]; 390 if (i) { 391 var n = e.offsets, r = n.reference, p = n.popper, s = -1 !== ['bottom', 'top'].indexOf(o), d = s ? 'left' : 'top', a = s ? 'width' : 'height', f = { start: pe({}, d, r[d]), end: pe({}, d, r[d] + r[a] - p[a]) }; 392 e.offsets.popper = se({}, p, f[i]) 393 } 394 return e 395 } 396 }, offset: { 397 order: 200, enabled: !0, fn: function (e, t) { 398 var o, i = t.offset, n = e.placement, r = e.offsets, p = r.popper, s = r.reference, d = n.split('-')[0]; 399 return o = R(+i) ? [+i, 0] : G(i, p, s, d), 'left' === d ? (p.top += o[0], p.left -= o[1]) : 'right' === d ? (p.top += o[0], p.left += o[1]) : 'top' === d ? (p.left += o[0], p.top -= o[1]) : 'bottom' === d && (p.left += o[0], p.top += o[1]), e.popper = p, e 400 }, offset: 0 401 }, preventOverflow: { 402 order: 300, enabled: !0, fn: function (e, t) { 403 var o = t.boundariesElement || r(e.instance.popper); 404 e.instance.reference === o && (o = r(o)); 405 var i = w(e.instance.popper, e.instance.reference, t.padding, o); 406 t.boundaries = i; 407 var n = t.priority, p = e.offsets.popper, s = { 408 primary: function (e) { 409 var o = p[e]; 410 return p[e] < i[e] && !t.escapeWithReference && (o = _(p[e], i[e])), pe({}, e, o) 411 }, secondary: function (e) { 412 var o = 'right' === e ? 'left' : 'top', n = p[o]; 413 return p[e] > i[e] && !t.escapeWithReference && (n = z(p[o], i[e] - ('right' === e ? p.width : p.height))), pe({}, o, n) 414 } 415 }; 416 return n.forEach(function (e) { 417 var t = -1 === ['left', 'top'].indexOf(e) ? 'secondary' : 'primary'; 418 p = se({}, p, s[t](e)) 419 }), e.offsets.popper = p, e 420 }, priority: ['left', 'right', 'top', 'bottom'], padding: 5, boundariesElement: 'scrollParent' 421 }, keepTogether: { 422 order: 400, enabled: !0, fn: function (e) { 423 var t = e.offsets, o = t.popper, i = t.reference, n = e.placement.split('-')[0], r = V, p = -1 !== ['top', 'bottom'].indexOf(n), s = p ? 'right' : 'bottom', d = p ? 'left' : 'top', a = p ? 'width' : 'height'; 424 return o[s] < r(i[d]) && (e.offsets.popper[d] = r(i[d]) - o[a]), o[d] > r(i[s]) && (e.offsets.popper[d] = r(i[s])), e 425 } 426 }, arrow: { 427 order: 500, enabled: !0, fn: function (e, t) { 428 if (!F(e.instance.modifiers, 'arrow', 'keepTogether')) 429 return e; 430 var o = t.element; 431 if ('string' == typeof o) { 432 if (o = e.instance.popper.querySelector(o), !o) 433 return e; 434 } else if (!e.instance.popper.contains(o)) 435 return console.warn('WARNING: `arrow.element` must be child of its popper element!'), e; 436 var i = e.placement.split('-')[0], n = e.offsets, r = n.popper, p = n.reference, s = -1 !== ['left', 'right'].indexOf(i), d = s ? 'height' : 'width', a = s ? 'top' : 'left', f = s ? 'left' : 'top', l = s ? 'bottom' : 'right', m = O(o)[d]; 437 p[l] - m < r[a] && (e.offsets.popper[a] -= r[a] - (p[l] - m)), p[a] + m > r[l] && (e.offsets.popper[a] += p[a] + m - r[l]); 438 var h = p[a] + p[d] / 2 - m / 2, g = h - c(e.offsets.popper)[a]; 439 return g = _(z(r[d] - m, g), 0), e.arrowElement = o, e.offsets.arrow = {}, e.offsets.arrow[a] = Math.round(g), e.offsets.arrow[f] = '', e 440 }, element: '[x-arrow]' 441 }, flip: { 442 order: 600, enabled: !0, fn: function (e, t) { 443 if (W(e.instance.modifiers, 'inner')) 444 return e; 445 if (e.flipped && e.placement === e.originalPlacement) 446 return e; 447 var o = w(e.instance.popper, e.instance.reference, t.padding, t.boundariesElement), i = e.placement.split('-')[0], n = L(i), r = e.placement.split('-')[1] || '', p = []; 448 switch (t.behavior) { 449 case fe.FLIP: 450 p = [i, n]; 451 break; 452 case fe.CLOCKWISE: 453 p = K(i); 454 break; 455 case fe.COUNTERCLOCKWISE: 456 p = K(i, !0); 457 break; 458 default: 459 p = t.behavior; 460 } 461 return p.forEach(function (s, d) { 462 if (i !== s || p.length === d + 1) 463 return e; 464 i = e.placement.split('-')[0], n = L(i); 465 var a = e.offsets.popper, f = e.offsets.reference, l = V, m = 'left' === i && l(a.right) > l(f.left) || 'right' === i && l(a.left) < l(f.right) || 'top' === i && l(a.bottom) > l(f.top) || 'bottom' === i && l(a.top) < l(f.bottom), h = l(a.left) < l(o.left), c = l(a.right) > l(o.right), g = l(a.top) < l(o.top), u = l(a.bottom) > l(o.bottom), b = 'left' === i && h || 'right' === i && c || 'top' === i && g || 'bottom' === i && u, y = -1 !== ['top', 'bottom'].indexOf(i), w = !!t.flipVariations && (y && 'start' === r && h || y && 'end' === r && c || !y && 'start' === r && g || !y && 'end' === r && u); 466 (m || b || w) && (e.flipped = !0, (m || b) && (i = p[d + 1]), w && (r = j(r)), e.placement = i + (r ? '-' + r : ''), e.offsets.popper = se({}, e.offsets.popper, S(e.instance.popper, e.offsets.reference, e.placement)), e = N(e.instance.modifiers, e, 'flip')) 467 }), e 468 }, behavior: 'flip', padding: 5, boundariesElement: 'viewport' 469 }, inner: { 470 order: 700, enabled: !1, fn: function (e) { 471 var t = e.placement, o = t.split('-')[0], i = e.offsets, n = i.popper, r = i.reference, p = -1 !== ['left', 'right'].indexOf(o), s = -1 === ['top', 'left'].indexOf(o); 472 return n[p ? 'left' : 'top'] = r[t] - (s ? n[p ? 'width' : 'height'] : 0), e.placement = L(t), e.offsets.popper = c(n), e 473 } 474 }, hide: { 475 order: 800, enabled: !0, fn: function (e) { 476 if (!F(e.instance.modifiers, 'hide', 'preventOverflow')) 477 return e; 478 var t = e.offsets.reference, o = T(e.instance.modifiers, function (e) { 479 return 'preventOverflow' === e.name 480 }).boundaries; 481 if (t.bottom < o.top || t.left > o.right || t.top > o.bottom || t.right < o.left) { 482 if (!0 === e.hide) 483 return e; 484 e.hide = !0, e.attributes['x-out-of-boundaries'] = '' 485 } else { 486 if (!1 === e.hide) 487 return e; 488 e.hide = !1, e.attributes['x-out-of-boundaries'] = !1 489 } 490 return e 491 } 492 }, computeStyle: { 493 order: 850, enabled: !0, fn: function (e, t) { 494 var o = t.x, i = t.y, n = e.offsets.popper, p = T(e.instance.modifiers, function (e) { 495 return 'applyStyle' === e.name 496 }).gpuAcceleration; 497 void 0 !== p && console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!'); 498 var s, d, a = void 0 === p ? t.gpuAcceleration : p, f = r(e.instance.popper), l = g(f), m = { position: n.position }, h = { left: V(n.left), top: V(n.top), bottom: V(n.bottom), right: V(n.right) }, c = 'bottom' === o ? 'top' : 'bottom', u = 'right' === i ? 'left' : 'right', b = B('transform'); 499 if (d = 'bottom' == c ? -l.height + h.bottom : h.top, s = 'right' == u ? -l.width + h.right : h.left, a && b) 500 m[b] = 'translate3d(' + s + 'px, ' + d + 'px, 0)', m[c] = 0, m[u] = 0, m.willChange = 'transform'; 501 else { 502 var y = 'bottom' == c ? -1 : 1, w = 'right' == u ? -1 : 1; 503 m[c] = d * y, m[u] = s * w, m.willChange = c + ', ' + u 504 } 505 var v = { "x-placement": e.placement }; 506 return e.attributes = se({}, v, e.attributes), e.styles = se({}, m, e.styles), e 507 }, gpuAcceleration: !0, x: 'bottom', y: 'right' 508 }, applyStyle: { 509 order: 900, enabled: !0, fn: function (e) { 510 return U(e.instance.popper, e.styles), Y(e.instance.popper, e.attributes), e.offsets.arrow && U(e.arrowElement, e.offsets.arrow), e 511 }, onLoad: function (e, t, o, i, n) { 512 var r = x(n, t, e), p = E(o.placement, r, t, e, o.modifiers.flip.boundariesElement, o.modifiers.flip.padding); 513 return t.setAttribute('x-placement', p), U(t, { position: 'absolute' }), o 514 }, gpuAcceleration: void 0 515 } 516 } 517 }, le 518}); 519//# sourceMappingURL=popper.min.js.map 520/*! jQuery v3.3.1 | (c) JS Foundation and other contributors | jquery.org/license */ 521!function (e, t) { 522 "use strict"; 523 "object" == typeof module && "object" == typeof module.exports ? module.exports = e.document ? t(e, !0) : function (e) { 524 if (!e.document) 525 throw new Error("jQuery requires a window with a document"); 526 return t(e) 527 } : t(e) 528}("undefined" != typeof window ? window : this, function (e, t) { 529 "use strict"; 530 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) { 531 return "function" == typeof t && "number" != typeof t.nodeType 532 }, y = function e(t) { 533 return null != t && t === t.window 534 }, v = { type: !0, src: !0, noModule: !0 }; 535 function m(e, t, n) { 536 var i, o = (t = t || r).createElement("script"); 537 if (o.text = e, n) 538 for (i in v) 539 n[i] && (o[i] = n[i]); 540 t.head.appendChild(o).parentNode.removeChild(o) 541 } 542 function x(e) { 543 return null == e ? e + "" : "object" == typeof e || "function" == typeof e ? l[c.call(e)] || "object" : typeof e 544 } 545 var b = "3.3.1", w = function (e, t) { 546 return new w.fn.init(e, t) 547 }, T = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g; 548 w.fn = w.prototype = { 549 jquery: "3.3.1", constructor: w, length: 0, toArray: function () { 550 return o.call(this) 551 }, get: function (e) { 552 return null == e ? o.call(this) : e < 0 ? this[e + this.length] : this[e] 553 }, pushStack: function (e) { 554 var t = w.merge(this.constructor(), e);
vendor: 120,371 bytes, lines 555-3071
555 return t.prevObject = this, t 556 }, each: function (e) { 557 return w.each(this, e) 558 }, map: function (e) { 559 return this.pushStack(w.map(this, function (t, n) { 560 return e.call(t, n, t) 561 })) 562 }, slice: function () { 563 return this.pushStack(o.apply(this, arguments)) 564 }, first: function () { 565 return this.eq(0) 566 }, last: function () { 567 return this.eq(-1) 568 }, eq: function (e) { 569 var t = this.length, n = +e + (e < 0 ? t : 0); 570 return this.pushStack(n >= 0 && n < t ? [this[n]] : []) 571 }, end: function () { 572 return this.prevObject || this.constructor() 573 }, push: s, sort: n.sort, splice: n.splice 574 }, w.extend = w.fn.extend = function () { 575 var e, t, n, r, i, o, a = arguments[0] || {}, s = 1, u = arguments.length, l = !1; 576 for ("boolean" == typeof a && (l = a, a = arguments[s] || {}, s++), "object" == typeof a || g(a) || (a = {}), s === u && (a = this, s--); s < u; s++) 577 if (null != (e = arguments[s])) 578 for (t in e) 579 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)); 580 return a 581 }, w.extend({ 582 expando: "jQuery" + ("3.3.1" + Math.random()).replace(/\D/g, ""), isReady: !0, error: function (e) { 583 throw new Error(e) 584 }, noop: function () { 585 }, isPlainObject: function (e) { 586 var t, n; 587 return !(!e || "[object Object]" !== c.call(e)) && (!(t = i(e)) || "function" == typeof (n = f.call(t, "constructor") && t.constructor) && p.call(n) === d) 588 }, isEmptyObject: function (e) { 589 var t; 590 for (t in e) 591 return !1; 592 return !0 593 }, globalEval: function (e) { 594 m(e) 595 }, each: function (e, t) { 596 var n, r = 0; 597 if (C(e)) { 598 for (n = e.length; r < n; r++) 599 if (!1 === t.call(e[r], r, e[r])) 600 break 601 } else 602 for (r in e) 603 if (!1 === t.call(e[r], r, e[r])) 604 break; 605 return e 606 }, trim: function (e) { 607 return null == e ? "" : (e + "").replace(T, "") 608 }, makeArray: function (e, t) { 609 var n = t || []; 610 return null != e && (C(Object(e)) ? w.merge(n, "string" == typeof e ? [e] : e) : s.call(n, e)), n 611 }, inArray: function (e, t, n) { 612 return null == t ? -1 : u.call(t, e, n) 613 }, merge: function (e, t) { 614 for (var n = +t.length, r = 0, i = e.length; r < n; r++) 615 e[i++] = t[r]; 616 return e.length = i, e 617 }, grep: function (e, t, n) { 618 for (var r, i = [], o = 0, a = e.length, s = !n; o < a; o++) 619 (r = !t(e[o], o)) !== s && i.push(e[o]); 620 return i 621 }, map: function (e, t, n) { 622 var r, i, o = 0, s = []; 623 if (C(e)) 624 for (r = e.length; o < r; o++) 625 null != (i = t(e[o], o, n)) && s.push(i); 626 else 627 for (o in e) 628 null != (i = t(e[o], o, n)) && s.push(i); 629 return a.apply([], s) 630 }, guid: 1, support: h 631 }), "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) { 632 l["[object " + t + "]"] = t.toLowerCase() 633 }); 634 function C(e) { 635 var t = !!e && "length" in e && e.length, n = x(e); 636 return !g(e) && !y(e) && ("array" === n || 0 === t || "number" == typeof t && t > 0 && t - 1 in e) 637 } 638 var E = function (e) { 639 var t, n, r, i, o, a, s, u, l, c, f, p, d, h, g, y, v, m, x, b = "sizzle" + 1 * new Date, w = e.document, T = 0, C = 0, E = ae(), k = ae(), S = ae(), D = function (e, t) { 640 return e === t && (f = !0), 0 641 }, N = {}.hasOwnProperty, A = [], j = A.pop, q = A.push, L = A.push, H = A.slice, O = function (e, t) { 642 for (var n = 0, r = e.length; n < r; n++) 643 if (e[n] === t) 644 return n; 645 return -1 646 }, 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 (e, t, n) { 647 var r = "0x" + t - 65536; 648 return r !== r || n ? t : r < 0 ? String.fromCharCode(r + 65536) : String.fromCharCode(r >> 10 | 55296, 1023 & r | 56320) 649 }, te = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, ne = function (e, t) { 650 return t ? "\0" === e ? "\ufffd" : e.slice(0, -1) + "\\" + e.charCodeAt(e.length - 1).toString(16) + " " : "\\" + e 651 }, re = function () { 652 p() 653 }, ie = me(function (e) { 654 return !0 === e.disabled && ("form" in e || "label" in e) 655 }, { dir: "parentNode", next: "legend" }); 656 try { 657 L.apply(A = H.call(w.childNodes), w.childNodes), A[w.childNodes.length].nodeType 658 } catch (e) { 659 L = { 660 apply: A.length ? function (e, t) { 661 q.apply(e, H.call(t)) 662 } : function (e, t) { 663 var n = e.length, r = 0; 664 while (e[n++] = t[r++]) 665 ; 666 e.length = n - 1 667 } 668 } 669 } 670 function oe(e, t, r, i) { 671 var o, s, l, c, f, h, v, m = t && t.ownerDocument, T = t ? t.nodeType : 9; 672 if (r = r || [], "string" != typeof e || !e || 1 !== T && 9 !== T && 11 !== T) 673 return r; 674 if (!i && ((t ? t.ownerDocument || t : w) !== d && p(t), t = t || d, g)) { 675 if (11 !== T && (f = J.exec(e))) 676 if (o = f[1]) { 677 if (9 === T) { 678 if (!(l = t.getElementById(o))) 679 return r; 680 if (l.id === o) 681 return r.push(l), r 682 } else if (m && (l = m.getElementById(o)) && x(t, l) && l.id === o) 683 return r.push(l), r 684 } else { 685 if (f[2]) 686 return L.apply(r, t.getElementsByTagName(e)), r; 687 if ((o = f[3]) && n.getElementsByClassName && t.getElementsByClassName) 688 return L.apply(r, t.getElementsByClassName(o)), r 689 } 690 if (n.qsa && !S[e + " "] && (!y || !y.test(e))) { 691 if (1 !== T) 692 m = t, v = e; 693 else if ("object" !== t.nodeName.toLowerCase()) { 694 (c = t.getAttribute("id")) ? c = c.replace(te, ne) : t.setAttribute("id", c = b), s = (h = a(e)).length; 695 while (s--) 696 h[s] = "#" + c + " " + ve(h[s]); 697 v = h.join(","), m = K.test(e) && ge(t.parentNode) || t 698 } 699 if (v) 700 try { 701 return L.apply(r, m.querySelectorAll(v)), r 702 } catch (e) { 703 } finally { 704 c === b && t.removeAttribute("id") 705 } 706 } 707 } 708 return u(e.replace(B, "$1"), t, r, i) 709 } 710 function ae() { 711 var e = []; 712 function t(n, i) { 713 return e.push(n + " ") > r.cacheLength && delete t[e.shift()], t[n + " "] = i 714 } 715 return t 716 } 717 function se(e) { 718 return e[b] = !0, e 719 } 720 function ue(e) { 721 var t = d.createElement("fieldset"); 722 try { 723 return !!e(t) 724 } catch (e) { 725 return !1 726 } finally { 727 t.parentNode && t.parentNode.removeChild(t), t = null 728 } 729 } 730 function le(e, t) { 731 var n = e.split("|"), i = n.length; 732 while (i--) 733 r.attrHandle[n[i]] = t 734 } 735 function ce(e, t) { 736 var n = t && e, r = n && 1 === e.nodeType && 1 === t.nodeType && e.sourceIndex - t.sourceIndex; 737 if (r) 738 return r; 739 if (n) 740 while (n = n.nextSibling) 741 if (n === t) 742 return -1; 743 return e ? 1 : -1 744 } 745 function fe(e) { 746 return function (t) { 747 return "input" === t.nodeName.toLowerCase() && t.type === e 748 } 749 } 750 function pe(e) { 751 return function (t) { 752 var n = t.nodeName.toLowerCase(); 753 return ("input" === n || "button" === n) && t.type === e 754 } 755 } 756 function de(e) { 757 return function (t) { 758 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 759 } 760 } 761 function he(e) { 762 return se(function (t) { 763 return t = +t, se(function (n, r) { 764 var i, o = e([], n.length, t), a = o.length; 765 while (a--) 766 n[i = o[a]] && (n[i] = !(r[i] = n[i])) 767 }) 768 }) 769 } 770 function ge(e) { 771 return e && "undefined" != typeof e.getElementsByTagName && e 772 } 773 n = oe.support = {}, o = oe.isXML = function (e) { 774 var t = e && (e.ownerDocument || e).documentElement; 775 return !!t && "HTML" !== t.nodeName 776 }, p = oe.setDocument = function (e) { 777 var t, i, a = e ? e.ownerDocument || e : w; 778 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) { 779 return e.className = "i", !e.getAttribute("className") 780 }), n.getElementsByTagName = ue(function (e) { 781 return e.appendChild(d.createComment("")), !e.getElementsByTagName("*").length 782 }), n.getElementsByClassName = Q.test(d.getElementsByClassName), n.getById = ue(function (e) { 783 return h.appendChild(e).id = b, !d.getElementsByName || !d.getElementsByName(b).length 784 }), n.getById ? (r.filter.ID = function (e) { 785 var t = e.replace(Z, ee); 786 return function (e) { 787 return e.getAttribute("id") === t 788 } 789 }, r.find.ID = function (e, t) { 790 if ("undefined" != typeof t.getElementById && g) { 791 var n = t.getElementById(e); 792 return n ? [n] : [] 793 } 794 }) : (r.filter.ID = function (e) { 795 var t = e.replace(Z, ee); 796 return function (e) { 797 var n = "undefined" != typeof e.getAttributeNode && e.getAttributeNode("id"); 798 return n && n.value === t 799 } 800 }, r.find.ID = function (e, t) { 801 if ("undefined" != typeof t.getElementById && g) { 802 var n, r, i, o = t.getElementById(e); 803 if (o) { 804 if ((n = o.getAttributeNode("id")) && n.value === e) 805 return [o]; 806 i = t.getElementsByName(e), r = 0; 807 while (o = i[r++]) 808 if ((n = o.getAttributeNode("id")) && n.value === e) 809 return [o] 810 } 811 return [] 812 } 813 }), r.find.TAG = n.getElementsByTagName ? function (e, t) { 814 return "undefined" != typeof t.getElementsByTagName ? t.getElementsByTagName(e) : n.qsa ? t.querySelectorAll(e) : void 0 815 } : function (e, t) { 816 var n, r = [], i = 0, o = t.getElementsByTagName(e); 817 if ("*" === e) { 818 while (n = o[i++]) 819 1 === n.nodeType && r.push(n); 820 return r 821 } 822 return o 823 }, r.find.CLASS = n.getElementsByClassName && function (e, t) { 824 if ("undefined" != typeof t.getElementsByClassName && g) 825 return t.getElementsByClassName(e) 826 }, v = [], y = [], (n.qsa = Q.test(d.querySelectorAll)) && (ue(function (e) { 827 h.appendChild(e).innerHTML = "<a id='" + b + "'></a><select id='" + b + "-\r\\' msallowcapture=''><option selected=''></option></select>", e.querySelectorAll("[msallowcapture^='']").length && y.push("[*^$]=" + M + "*(?:''|\"\")"), e.querySelectorAll("[selected]").length || y.push("\\[" + M + "*(?:value|" + P + ")"), e.querySelectorAll("[id~=" + b + "-]").length || y.push("~="), e.querySelectorAll(":checked").length || y.push(":checked"), e.querySelectorAll("a#" + b + "+*").length || y.push(".#.+[+~]") 828 }), ue(function (e) { 829 e.innerHTML = "<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>"; 830 var t = d.createElement("input"); 831 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(",.*:") 832 })), (n.matchesSelector = Q.test(m = h.matches || h.webkitMatchesSelector || h.mozMatchesSelector || h.oMatchesSelector || h.msMatchesSelector)) && ue(function (e) { 833 n.disconnectedMatch = m.call(e, "*"), m.call(e, "[s!='']:x"), v.push("!=", W) 834 }), 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) { 835 var n = 9 === e.nodeType ? e.documentElement : e, r = t && t.parentNode; 836 return e === r || !(!r || 1 !== r.nodeType || !(n.contains ? n.contains(r) : e.compareDocumentPosition && 16 & e.compareDocumentPosition(r))) 837 } : function (e, t) { 838 if (t) 839 while (t = t.parentNode) 840 if (t === e) 841 return !0; 842 return !1 843 }, D = t ? function (e, t) { 844 if (e === t) 845 return f = !0, 0; 846 var r = !e.compareDocumentPosition - !t.compareDocumentPosition; 847 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) 848 } : function (e, t) { 849 if (e === t) 850 return f = !0, 0; 851 var n, r = 0, i = e.parentNode, o = t.parentNode, a = [e], s = [t]; 852 if (!i || !o) 853 return e === d ? -1 : t === d ? 1 : i ? -1 : o ? 1 : c ? O(c, e) - O(c, t) : 0; 854 if (i === o) 855 return ce(e, t); 856 n = e; 857 while (n = n.parentNode) 858 a.unshift(n); 859 n = t; 860 while (n = n.parentNode) 861 s.unshift(n); 862 while (a[r] === s[r]) 863 r++; 864 return r ? ce(a[r], s[r]) : a[r] === w ? -1 : s[r] === w ? 1 : 0 865 }, d) : d 866 }, oe.matches = function (e, t) { 867 return oe(e, null, null, t) 868 }, oe.matchesSelector = function (e, t) { 869 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))) 870 try { 871 var r = m.call(e, t); 872 if (r || n.disconnectedMatch || e.document && 11 !== e.document.nodeType) 873 return r 874 } catch (e) { 875 } 876 return oe(t, d, null, [e]).length > 0 877 }, oe.contains = function (e, t) { 878 return (e.ownerDocument || e) !== d && p(e), x(e, t) 879 }, oe.attr = function (e, t) { 880 (e.ownerDocument || e) !== d && p(e); 881 var i = r.attrHandle[t.toLowerCase()], o = i && N.call(r.attrHandle, t.toLowerCase()) ? i(e, t, !g) : void 0; 882 return void 0 !== o ? o : n.attributes || !g ? e.getAttribute(t) : (o = e.getAttributeNode(t)) && o.specified ? o.value : null 883 }, oe.escape = function (e) { 884 return (e + "").replace(te, ne) 885 }, oe.error = function (e) { 886 throw new Error("Syntax error, unrecognized expression: " + e) 887 }, oe.uniqueSort = function (e) { 888 var t, r = [], i = 0, o = 0; 889 if (f = !n.detectDuplicates, c = !n.sortStable && e.slice(0), e.sort(D), f) { 890 while (t = e[o++]) 891 t === e[o] && (i = r.push(o)); 892 while (i--) 893 e.splice(r[i], 1) 894 } 895 return c = null, e 896 }, i = oe.getText = function (e) { 897 var t, n = "", r = 0, o = e.nodeType; 898 if (o) { 899 if (1 === o || 9 === o || 11 === o) { 900 if ("string" == typeof e.textContent) 901 return e.textContent; 902 for (e = e.firstChild; e; e = e.nextSibling) 903 n += i(e) 904 } else if (3 === o || 4 === o) 905 return e.nodeValue 906 } else 907 while (t = e[r++]) 908 n += i(t); 909 return n 910 }, (r = oe.selectors = { 911 cacheLength: 50, createPseudo: se, match: V, attrHandle: {}, find: {}, relative: { ">": { dir: "parentNode", first: !0 }, " ": { dir: "parentNode" }, "+": { dir: "previousSibling", first: !0 }, "~": { dir: "previousSibling" } }, preFilter: { 912 ATTR: function (e) { 913 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) 914 }, CHILD: function (e) { 915 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 916 }, PSEUDO: function (e) { 917 var t, n = !e[6] && e[2]; 918 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)) 919 } 920 }, filter: { 921 TAG: function (e) { 922 var t = e.replace(Z, ee).toLowerCase(); 923 return "*" === e ? function () { 924 return !0 925 } : function (e) { 926 return e.nodeName && e.nodeName.toLowerCase() === t 927 } 928 }, CLASS: function (e) { 929 var t = E[e + " "]; 930 return t || (t = new RegExp("(^|" + M + ")" + e + "(" + M + "|$)")) && E(e, function (e) { 931 return t.test("string" == typeof e.className && e.className || "undefined" != typeof e.getAttribute && e.getAttribute("class") || "") 932 }) 933 }, ATTR: function (e, t, n) { 934 return function (r) { 935 var i = oe.attr(r, e); 936 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 + "-")) 937 } 938 }, CHILD: function (e, t, n, r, i) { 939 var o = "nth" !== e.slice(0, 3), a = "last" !== e.slice(-4), s = "of-type" === t; 940 return 1 === r && 0 === i ? function (e) { 941 return !!e.parentNode 942 } : function (t, n, u) { 943 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; 944 if (y) { 945 if (o) { 946 while (g) { 947 p = t; 948 while (p = p[g]) 949 if (s ? p.nodeName.toLowerCase() === v : 1 === p.nodeType) 950 return !1; 951 h = g = "only" === e && !h && "nextSibling" 952 } 953 return !0 954 } 955 if (h = [a ? y.firstChild : y.lastChild], a && m) { 956 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]; 957 while (p = ++d && p && p[g] || (x = d = 0) || h.pop()) 958 if (1 === p.nodeType && ++x && p === t) { 959 c[e] = [T, d, x]; 960 break 961 } 962 } 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) 963 while (p = ++d && p && p[g] || (x = d = 0) || h.pop()) 964 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)) 965 break; 966 return (x -= i) === r || x % r == 0 && x / r >= 0 967 } 968 } 969 }, PSEUDO: function (e, t) { 970 var n, i = r.pseudos[e] || r.setFilters[e.toLowerCase()] || oe.error("unsupported pseudo: " + e); 971 return i[b] ? i(t) : i.length > 1 ? (n = [e, e, "", t], r.setFilters.hasOwnProperty(e.toLowerCase()) ? se(function (e, n) { 972 var r, o = i(e, t), a = o.length; 973 while (a--) 974 e[r = O(e, o[a])] = !(n[r] = o[a]) 975 }) : function (e) { 976 return i(e, 0, n) 977 }) : i 978 } 979 }, pseudos: { 980 not: se(function (e) { 981 var t = [], n = [], r = s(e.replace(B, "$1")); 982 return r[b] ? se(function (e, t, n, i) { 983 var o, a = r(e, null, i, []), s = e.length; 984 while (s--) 985 (o = a[s]) && (e[s] = !(t[s] = o)) 986 }) : function (e, i, o) { 987 return t[0] = e, r(t, null, o, n), t[0] = null, !n.pop() 988 } 989 }), has: se(function (e) { 990 return function (t) { 991 return oe(e, t).length > 0 992 } 993 }), contains: se(function (e) { 994 return e = e.replace(Z, ee), function (t) { 995 return (t.textContent || t.innerText || i(t)).indexOf(e) > -1 996 } 997 }), lang: se(function (e) { 998 return U.test(e || "") || oe.error("unsupported lang: " + e), e = e.replace(Z, ee).toLowerCase(), function (t) { 999 var n; 1000 do { 1001 if (n = g ? t.lang : t.getAttribute("xml:lang") || t.getAttribute("lang")) 1002 return (n = n.toLowerCase()) === e || 0 === n.indexOf(e + "-") 1003 } while ((t = t.parentNode) && 1 === t.nodeType); 1004 return !1 1005 } 1006 }), target: function (t) { 1007 var n = e.location && e.location.hash; 1008 return n && n.slice(1) === t.id 1009 }, root: function (e) { 1010 return e === h 1011 }, focus: function (e) { 1012 return e === d.activeElement && (!d.hasFocus || d.hasFocus()) && !!(e.type || e.href || ~e.tabIndex) 1013 }, enabled: de(!1), disabled: de(!0), checked: function (e) { 1014 var t = e.nodeName.toLowerCase(); 1015 return "input" === t && !!e.checked || "option" === t && !!e.selected 1016 }, selected: function (e) { 1017 return e.parentNode && e.parentNode.selectedIndex, !0 === e.selected 1018 }, empty: function (e) { 1019 for (e = e.firstChild; e; e = e.nextSibling) 1020 if (e.nodeType < 6) 1021 return !1; 1022 return !0 1023 }, parent: function (e) { 1024 return !r.pseudos.empty(e) 1025 }, header: function (e) { 1026 return Y.test(e.nodeName) 1027 }, input: function (e) { 1028 return G.test(e.nodeName) 1029 }, button: function (e) { 1030 var t = e.nodeName.toLowerCase(); 1031 return "input" === t && "button" === e.type || "button" === t 1032 }, text: function (e) { 1033 var t; 1034 return "input" === e.nodeName.toLowerCase() && "text" === e.type && (null == (t = e.getAttribute("type")) || "text" === t.toLowerCase()) 1035 }, first: he(function () { 1036 return [0] 1037 }), last: he(function (e, t) { 1038 return [t - 1] 1039 }), eq: he(function (e, t, n) { 1040 return [n < 0 ? n + t : n] 1041 }), even: he(function (e, t) { 1042 for (var n = 0; n < t; n += 2) 1043 e.push(n); 1044 return e 1045 }), odd: he(function (e, t) { 1046 for (var n = 1; n < t; n += 2) 1047 e.push(n); 1048 return e 1049 }), lt: he(function (e, t, n) { 1050 for (var r = n < 0 ? n + t : n; --r >= 0;) 1051 e.push(r); 1052 return e 1053 }), gt: he(function (e, t, n) { 1054 for (var r = n < 0 ? n + t : n; ++r < t;) 1055 e.push(r); 1056 return e 1057 }) 1058 } 1059 }).pseudos.nth = r.pseudos.eq; 1060 for (t in { radio: !0, checkbox: !0, file: !0, password: !0, image: !0 }) 1061 r.pseudos[t] = fe(t); 1062 for (t in { submit: !0, reset: !0 }) 1063 r.pseudos[t] = pe(t); 1064 function ye() { 1065 } 1066 ye.prototype = r.filters = r.pseudos, r.setFilters = new ye, a = oe.tokenize = function (e, t) { 1067 var n, i, o, a, s, u, l, c = k[e + " "]; 1068 if (c) 1069 return t ? 0 : c.slice(0); 1070 s = e, u = [], l = r.preFilter; 1071 while (s) { 1072 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)); 1073 for (a in r.filter) 1074 !(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)); 1075 if (!n) 1076 break 1077 } 1078 return t ? s.length : s ? oe.error(e) : k(e, u).slice(0) 1079 }; 1080 function ve(e) { 1081 for (var t = 0, n = e.length, r = ""; t < n; t++) 1082 r += e[t].value; 1083 return r 1084 } 1085 function me(e, t, n) { 1086 var r = t.dir, i = t.next, o = i || r, a = n && "parentNode" === o, s = C++; 1087 return t.first ? function (t, n, i) { 1088 while (t = t[r]) 1089 if (1 === t.nodeType || a) 1090 return e(t, n, i); 1091 return !1 1092 } : function (t, n, u) { 1093 var l, c, f, p = [T, s]; 1094 if (u) { 1095 while (t = t[r]) 1096 if ((1 === t.nodeType || a) && e(t, n, u)) 1097 return !0 1098 } else 1099 while (t = t[r]) 1100 if (1 === t.nodeType || a) 1101 if (f = t[b] || (t[b] = {}), c = f[t.uniqueID] || (f[t.uniqueID] = {}), i && i === t.nodeName.toLowerCase()) 1102 t = t[r] || t; 1103 else { 1104 if ((l = c[o]) && l[0] === T && l[1] === s) 1105 return p[2] = l[2]; 1106 if (c[o] = p, p[2] = e(t, n, u)) 1107 return !0 1108 } 1109 return !1 1110 } 1111 } 1112 function xe(e) { 1113 return e.length > 1 ? function (t, n, r) { 1114 var i = e.length; 1115 while (i--) 1116 if (!e[i](t, n, r)) 1117 return !1; 1118 return !0 1119 } : e[0] 1120 } 1121 function be(e, t, n) { 1122 for (var r = 0, i = t.length; r < i; r++) 1123 oe(e, t[r], n); 1124 return n 1125 } 1126 function we(e, t, n, r, i) { 1127 for (var o, a = [], s = 0, u = e.length, l = null != t; s < u; s++) 1128 (o = e[s]) && (n && !n(o, r, i) || (a.push(o), l && t.push(s))); 1129 return a 1130 } 1131 function Te(e, t, n, r, i, o) { 1132 return r && !r[b] && (r = Te(r)), i && !i[b] && (i = Te(i, o)), se(function (o, a, s, u) { 1133 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; 1134 if (n && n(y, v, s, u), r) { 1135 l = we(v, d), r(l, [], s, u), c = l.length; 1136 while (c--) 1137 (f = l[c]) && (v[d[c]] = !(y[d[c]] = f)) 1138 } 1139 if (o) { 1140 if (i || e) { 1141 if (i) { 1142 l = [], c = v.length; 1143 while (c--) 1144 (f = v[c]) && l.push(y[c] = f); 1145 i(null, v = [], l, u) 1146 } 1147 c = v.length; 1148 while (c--) 1149 (f = v[c]) && (l = i ? O(o, f) : p[c]) > -1 && (o[l] = !(a[l] = f)) 1150 } 1151 } else 1152 v = we(v === a ? v.splice(h, v.length) : v), i ? i(null, a, v, u) : L.apply(a, v) 1153 }) 1154 } 1155 function Ce(e) { 1156 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) { 1157 return e === t 1158 }, s, !0), f = me(function (e) { 1159 return O(t, e) > -1 1160 }, s, !0), p = [function (e, n, r) { 1161 var i = !a && (r || n !== l) || ((t = n).nodeType ? c(e, n, r) : f(e, n, r)); 1162 return t = null, i 1163 }]; u < o; u++) 1164 if (n = r.relative[e[u].type]) 1165 p = [me(xe(p), n)]; 1166 else { 1167 if ((n = r.filter[e[u].type].apply(null, e[u].matches))[b]) { 1168 for (i = ++u; i < o; i++) 1169 if (r.relative[e[i].type]) 1170 break; 1171 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)) 1172 } 1173 p.push(n) 1174 } 1175 return xe(p) 1176 } 1177 function Ee(e, t) { 1178 var n = t.length > 0, i = e.length > 0, o = function (o, a, s, u, c) { 1179 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; 1180 for (c && (l = a === d || a || c); m !== k && null != (f = C[m]); m++) { 1181 if (i && f) { 1182 h = 0, a || f.ownerDocument === d || (p(f), s = !g); 1183 while (y = e[h++]) 1184 if (y(f, a || d, s)) { 1185 u.push(f); 1186 break 1187 } 1188 c && (T = E) 1189 } 1190 n && ((f = !y && f) && v--, o && x.push(f)) 1191 } 1192 if (v += m, n && m !== v) { 1193 h = 0; 1194 while (y = t[h++]) 1195 y(x, b, a, s); 1196 if (o) { 1197 if (v > 0) 1198 while (m--) 1199 x[m] || b[m] || (b[m] = j.call(u)); 1200 b = we(b) 1201 } 1202 L.apply(u, b), c && !o && b.length > 0 && v + t.length > 1 && oe.uniqueSort(u) 1203 } 1204 return c && (T = E, l = w), x 1205 }; 1206 return n ? se(o) : o 1207 } 1208 return s = oe.compile = function (e, t) { 1209 var n, r = [], i = [], o = S[e + " "]; 1210 if (!o) { 1211 t || (t = a(e)), n = t.length; 1212 while (n--) 1213 (o = Ce(t[n]))[b] ? r.push(o) : i.push(o); 1214 (o = S(e, Ee(i, r))).selector = e 1215 } 1216 return o 1217 }, u = oe.select = function (e, t, n, i) { 1218 var o, u, l, c, f, p = "function" == typeof e && e, d = !i && a(e = p.selector || e); 1219 if (n = n || [], 1 === d.length) { 1220 if ((u = d[0] = d[0].slice(0)).length > 2 && "ID" === (l = u[0]).type && 9 === t.nodeType && g && r.relative[u[1].type]) { 1221 if (!(t = (r.find.ID(l.matches[0].replace(Z, ee), t) || [])[0])) 1222 return n; 1223 p && (t = t.parentNode), e = e.slice(u.shift().value.length) 1224 } 1225 o = V.needsContext.test(e) ? 0 : u.length; 1226 while (o--) { 1227 if (l = u[o], r.relative[c = l.type]) 1228 break; 1229 if ((f = r.find[c]) && (i = f(l.matches[0].replace(Z, ee), K.test(u[0].type) && ge(t.parentNode) || t))) { 1230 if (u.splice(o, 1), !(e = i.length && ve(u))) 1231 return L.apply(n, i), n; 1232 break 1233 } 1234 } 1235 } 1236 return (p || s(e, d))(i, t, !g, n, !t || K.test(e) && ge(t.parentNode) || t), n 1237 }, n.sortStable = b.split("").sort(D).join("") === b, n.detectDuplicates = !!f, p(), n.sortDetached = ue(function (e) { 1238 return 1 & e.compareDocumentPosition(d.createElement("fieldset")) 1239 }), ue(function (e) { 1240 return e.innerHTML = "<a href='#'></a>", "#" === e.firstChild.getAttribute("href") 1241 }) || le("type|href|height|width", function (e, t, n) { 1242 if (!n) 1243 return e.getAttribute(t, "type" === t.toLowerCase() ? 1 : 2) 1244 }), n.attributes && ue(function (e) { 1245 return e.innerHTML = "<input/>", e.firstChild.setAttribute("value", ""), "" === e.firstChild.getAttribute("value") 1246 }) || le("value", function (e, t, n) { 1247 if (!n && "input" === e.nodeName.toLowerCase()) 1248 return e.defaultValue 1249 }), ue(function (e) { 1250 return null == e.getAttribute("disabled") 1251 }) || le(P, function (e, t, n) { 1252 var r; 1253 if (!n) 1254 return !0 === e[t] ? t.toLowerCase() : (r = e.getAttributeNode(t)) && r.specified ? r.value : null 1255 }), oe 1256 }(e); 1257 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; 1258 var k = function (e, t, n) { 1259 var r = [], i = void 0 !== n; 1260 while ((e = e[t]) && 9 !== e.nodeType) 1261 if (1 === e.nodeType) { 1262 if (i && w(e).is(n)) 1263 break; 1264 r.push(e) 1265 } 1266 return r 1267 }, S = function (e, t) { 1268 for (var n = []; e; e = e.nextSibling) 1269 1 === e.nodeType && e !== t && n.push(e); 1270 return n 1271 }, D = w.expr.match.needsContext; 1272 function N(e, t) { 1273 return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase() 1274 } 1275 var A = /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i; 1276 function j(e, t, n) { 1277 return g(t) ? w.grep(e, function (e, r) { 1278 return !!t.call(e, r, e) !== n 1279 }) : t.nodeType ? w.grep(e, function (e) { 1280 return e === t !== n 1281 }) : "string" != typeof t ? w.grep(e, function (e) { 1282 return u.call(t, e) > -1 !== n 1283 }) : w.filter(t, e, n) 1284 } 1285 w.filter = function (e, t, n) { 1286 var r = t[0]; 1287 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) { 1288 return 1 === e.nodeType 1289 })) 1290 }, w.fn.extend({ 1291 find: function (e) { 1292 var t, n, r = this.length, i = this; 1293 if ("string" != typeof e) 1294 return this.pushStack(w(e).filter(function () { 1295 for (t = 0; t < r; t++) 1296 if (w.contains(i[t], this)) 1297 return !0 1298 })); 1299 for (n = this.pushStack([]), t = 0; t < r; t++) 1300 w.find(e, i[t], n); 1301 return r > 1 ? w.uniqueSort(n) : n 1302 }, filter: function (e) { 1303 return this.pushStack(j(this, e || [], !1)) 1304 }, not: function (e) { 1305 return this.pushStack(j(this, e || [], !0)) 1306 }, is: function (e) { 1307 return !!j(this, "string" == typeof e && D.test(e) ? w(e) : e || [], !1).length 1308 } 1309 }); 1310 var q, L = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/; 1311 (w.fn.init = function (e, t, n) { 1312 var i, o; 1313 if (!e) 1314 return this; 1315 if (n = n || q, "string" == typeof e) { 1316 if (!(i = "<" === e[0] && ">" === e[e.length - 1] && e.length >= 3 ? [null, e, null] : L.exec(e)) || !i[1] && t) 1317 return !t || t.jquery ? (t || n).find(e) : this.constructor(t).find(e); 1318 if (i[1]) { 1319 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)) 1320 for (i in t) 1321 g(this[i]) ? this[i](t[i]) : this.attr(i, t[i]); 1322 return this 1323 } 1324 return (o = r.getElementById(i[2])) && (this[0] = o, this.length = 1), this 1325 } 1326 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) 1327 }).prototype = w.fn, q = w(r); 1328 var H = /^(?:parents|prev(?:Until|All))/, O = { children: !0, contents: !0, next: !0, prev: !0 }; 1329 w.fn.extend({ 1330 has: function (e) { 1331 var t = w(e, this), n = t.length; 1332 return this.filter(function () { 1333 for (var e = 0; e < n; e++) 1334 if (w.contains(this, t[e])) 1335 return !0 1336 }) 1337 }, closest: function (e, t) { 1338 var n, r = 0, i = this.length, o = [], a = "string" != typeof e && w(e); 1339 if (!D.test(e)) 1340 for (; r < i; r++) 1341 for (n = this[r]; n && n !== t; n = n.parentNode) 1342 if (n.nodeType < 11 && (a ? a.index(n) > -1 : 1 === n.nodeType && w.find.matchesSelector(n, e))) { 1343 o.push(n); 1344 break 1345 } 1346 return this.pushStack(o.length > 1 ? w.uniqueSort(o) : o) 1347 }, index: function (e) { 1348 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 1349 }, add: function (e, t) { 1350 return this.pushStack(w.uniqueSort(w.merge(this.get(), w(e, t)))) 1351 }, addBack: function (e) { 1352 return this.add(null == e ? this.prevObject : this.prevObject.filter(e)) 1353 } 1354 }); 1355 function P(e, t) { 1356 while ((e = e[t]) && 1 !== e.nodeType) 1357 ; 1358 return e 1359 } 1360 w.each({ 1361 parent: function (e) { 1362 var t = e.parentNode; 1363 return t && 11 !== t.nodeType ? t : null 1364 }, parents: function (e) { 1365 return k(e, "parentNode") 1366 }, parentsUntil: function (e, t, n) { 1367 return k(e, "parentNode", n) 1368 }, next: function (e) { 1369 return P(e, "nextSibling") 1370 }, prev: function (e) { 1371 return P(e, "previousSibling") 1372 }, nextAll: function (e) { 1373 return k(e, "nextSibling") 1374 }, prevAll: function (e) { 1375 return k(e, "previousSibling") 1376 }, nextUntil: function (e, t, n) { 1377 return k(e, "nextSibling", n) 1378 }, prevUntil: function (e, t, n) { 1379 return k(e, "previousSibling", n) 1380 }, siblings: function (e) { 1381 return S((e.parentNode || {}).firstChild, e) 1382 }, children: function (e) { 1383 return S(e.firstChild) 1384 }, contents: function (e) { 1385 return N(e, "iframe") ? e.contentDocument : (N(e, "template") && (e = e.content || e), w.merge([], e.childNodes)) 1386 } 1387 }, function (e, t) { 1388 w.fn[e] = function (n, r) { 1389 var i = w.map(this, t, n); 1390 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) 1391 } 1392 }); 1393 var M = /[^\x20\t\r\n\f]+/g; 1394 function R(e) { 1395 var t = {}; 1396 return w.each(e.match(M) || [], function (e, n) { 1397 t[n] = !0 1398 }), t 1399 } 1400 w.Callbacks = function (e) { 1401 e = "string" == typeof e ? R(e) : w.extend({}, e); 1402 var t, n, r, i, o = [], a = [], s = -1, u = function () { 1403 for (i = i || e.once, r = t = !0; a.length; s = -1) { 1404 n = a.shift(); 1405 while (++s < o.length) 1406 !1 === o[s].apply(n[0], n[1]) && e.stopOnFalse && (s = o.length, n = !1) 1407 } 1408 e.memory || (n = !1), t = !1, i && (o = n ? [] : "") 1409 }, l = { 1410 add: function () { 1411 return o && (n && !t && (s = o.length - 1, a.push(n)), function t(n) { 1412 w.each(n, function (n, r) { 1413 g(r) ? e.unique && l.has(r) || o.push(r) : r && r.length && "string" !== x(r) && t(r) 1414 }) 1415 }(arguments), n && !t && u()), this 1416 }, remove: function () { 1417 return w.each(arguments, function (e, t) { 1418 var n; 1419 while ((n = w.inArray(t, o, n)) > - 1) 1420 o.splice(n, 1), n <= s && s-- 1421 }), this 1422 }, has: function (e) { 1423 return e ? w.inArray(e, o) > -1 : o.length > 0 1424 }, empty: function () { 1425 return o && (o = []), this 1426 }, disable: function () { 1427 return i = a = [], o = n = "", this 1428 }, disabled: function () { 1429 return !o 1430 }, lock: function () { 1431 return i = a = [], n || t || (o = n = ""), this 1432 }, locked: function () { 1433 return !!i 1434 }, fireWith: function (e, n) { 1435 return i || (n = [e, (n = n || []).slice ? n.slice() : n], a.push(n), t || u()), this 1436 }, fire: function () { 1437 return l.fireWith(this, arguments), this 1438 }, fired: function () { 1439 return !!r 1440 } 1441 }; 1442 return l 1443 }; 1444 function I(e) { 1445 return e 1446 } 1447 function W(e) { 1448 throw e 1449 } 1450 function $(e, t, n, r) { 1451 var i; 1452 try { 1453 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)) 1454 } catch (e) { 1455 n.apply(void 0, [e]) 1456 } 1457 } 1458 w.extend({ 1459 Deferred: function (t) { 1460 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 = { 1461 state: function () { 1462 return r 1463 }, always: function () { 1464 return o.done(arguments).fail(arguments), this 1465 }, "catch": function (e) { 1466 return i.then(null, e) 1467 }, pipe: function () { 1468 var e = arguments; 1469 return w.Deferred(function (t) { 1470 w.each(n, function (n, r) { 1471 var i = g(e[r[4]]) && e[r[4]]; 1472 o[r[1]](function () { 1473 var e = i && i.apply(this, arguments); 1474 e && g(e.promise) ? e.promise().progress(t.notify).done(t.resolve).fail(t.reject) : t[r[0] + "With"](this, i ? [e] : arguments) 1475 }) 1476 }), e = null 1477 }).promise() 1478 }, then: function (t, r, i) { 1479 var o = 0; 1480 function a(t, n, r, i) { 1481 return function () { 1482 var s = this, u = arguments, l = function () { 1483 var e, l; 1484 if (!(t < o)) { 1485 if ((e = r.apply(s, u)) === n.promise()) 1486 throw new TypeError("Thenable self-resolution"); 1487 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)) 1488 } 1489 }, c = i ? l : function () { 1490 try { 1491 l() 1492 } catch (e) { 1493 w.Deferred.exceptionHook && w.Deferred.exceptionHook(e, c.stackTrace), t + 1 >= o && (r !== W && (s = void 0, u = [e]), n.rejectWith(s, u)) 1494 } 1495 }; 1496 t ? c() : (w.Deferred.getStackHook && (c.stackTrace = w.Deferred.getStackHook()), e.setTimeout(c)) 1497 } 1498 } 1499 return w.Deferred(function (e) { 1500 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)) 1501 }).promise() 1502 }, promise: function (e) { 1503 return null != e ? w.extend(e, i) : i 1504 } 1505 }, o = {}; 1506 return w.each(n, function (e, t) { 1507 var a = t[2], s = t[5]; 1508 i[t[1]] = a.add, s && a.add(function () { 1509 r = s 1510 }, 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 () { 1511 return o[t[0] + "With"](this === o ? void 0 : this, arguments), this 1512 }, o[t[0] + "With"] = a.fireWith 1513 }), i.promise(o), t && t.call(o, o), o 1514 }, when: function (e) { 1515 var t = arguments.length, n = t, r = Array(n), i = o.call(arguments), a = w.Deferred(), s = function (e) { 1516 return function (n) { 1517 r[e] = this, i[e] = arguments.length > 1 ? o.call(arguments) : n, --t || a.resolveWith(r, i) 1518 } 1519 }; 1520 if (t <= 1 && ($(e, a.done(s(n)).resolve, a.reject, !t), "pending" === a.state() || g(i[n] && i[n].then))) 1521 return a.then(); 1522 while (n--) 1523 $(i[n], s(n), a.reject); 1524 return a.promise() 1525 } 1526 }); 1527 var B = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; 1528 w.Deferred.exceptionHook = function (t, n) { 1529 e.console && e.console.warn && t && B.test(t.name) && e.console.warn("jQuery.Deferred exception: " + t.message, t.stack, n) 1530 }, w.readyException = function (t) { 1531 e.setTimeout(function () { 1532 throw t 1533 }) 1534 }; 1535 var F = w.Deferred(); 1536 w.fn.ready = function (e) { 1537 return F.then(e)["catch"](function (e) { 1538 w.readyException(e) 1539 }), this 1540 }, w.extend({ 1541 isReady: !1, readyWait: 1, ready: function (e) { 1542 (!0 === e ? --w.readyWait : w.isReady) || (w.isReady = !0, !0 !== e && --w.readyWait > 0 || F.resolveWith(r, [w])) 1543 } 1544 }), w.ready.then = F.then; 1545 function _() { 1546 r.removeEventListener("DOMContentLoaded", _), e.removeEventListener("load", _), w.ready() 1547 } 1548 "complete" === r.readyState || "loading" !== r.readyState && !r.documentElement.doScroll ? e.setTimeout(w.ready) : (r.addEventListener("DOMContentLoaded", _), e.addEventListener("load", _)); 1549 var z = function (e, t, n, r, i, o, a) { 1550 var s = 0, u = e.length, l = null == n; 1551 if ("object" === x(n)) { 1552 i = !0; 1553 for (s in n) 1554 z(e, t, s, n[s], !0, o, a) 1555 } else if (void 0 !== r && (i = !0, g(r) || (a = !0), l && (a ? (t.call(e, r), t = null) : (l = t, t = function (e, t, n) { 1556 return l.call(w(e), n) 1557 })), t)) 1558 for (; s < u; s++) 1559 t(e[s], n, a ? r : r.call(e[s], s, t(e[s], n))); 1560 return i ? e : l ? t.call(e) : u ? t(e[0], n) : o 1561 }, X = /^-ms-/, U = /-([a-z])/g; 1562 function V(e, t) { 1563 return t.toUpperCase() 1564 } 1565 function G(e) { 1566 return e.replace(X, "ms-").replace(U, V) 1567 } 1568 var Y = function (e) { 1569 return 1 === e.nodeType || 9 === e.nodeType || !+e.nodeType 1570 }; 1571 function Q() { 1572 this.expando = w.expando + Q.uid++ 1573 } 1574 Q.uid = 1, Q.prototype = { 1575 cache: function (e) { 1576 var t = e[this.expando]; 1577 return t || (t = {}, Y(e) && (e.nodeType ? e[this.expando] = t : Object.defineProperty(e, this.expando, { value: t, configurable: !0 }))), t 1578 }, set: function (e, t, n) { 1579 var r, i = this.cache(e); 1580 if ("string" == typeof t) 1581 i[G(t)] = n; 1582 else 1583 for (r in t) 1584 i[G(r)] = t[r]; 1585 return i 1586 }, get: function (e, t) { 1587 return void 0 === t ? this.cache(e) : e[this.expando] && e[this.expando][G(t)] 1588 }, access: function (e, t, n) { 1589 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) 1590 }, remove: function (e, t) { 1591 var n, r = e[this.expando]; 1592 if (void 0 !== r) { 1593 if (void 0 !== t) { 1594 n = (t = Array.isArray(t) ? t.map(G) : (t = G(t)) in r ? [t] : t.match(M) || []).length; 1595 while (n--) 1596 delete r[t[n]] 1597 } 1598 (void 0 === t || w.isEmptyObject(r)) && (e.nodeType ? e[this.expando] = void 0 : delete e[this.expando]) 1599 } 1600 }, hasData: function (e) { 1601 var t = e[this.expando]; 1602 return void 0 !== t && !w.isEmptyObject(t) 1603 } 1604 }; 1605 var J = new Q, K = new Q, Z = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, ee = /[A-Z]/g; 1606 function te(e) { 1607 return "true" === e || "false" !== e && ("null" === e ? null : e === +e + "" ? +e : Z.test(e) ? JSON.parse(e) : e) 1608 } 1609 function ne(e, t, n) { 1610 var r; 1611 if (void 0 === n && 1 === e.nodeType) 1612 if (r = "data-" + t.replace(ee, "-$&").toLowerCase(), "string" == typeof (n = e.getAttribute(r))) { 1613 try { 1614 n = te(n) 1615 } catch (e) { 1616 } 1617 K.set(e, t, n) 1618 } else 1619 n = void 0; 1620 return n 1621 } 1622 w.extend({ 1623 hasData: function (e) { 1624 return K.hasData(e) || J.hasData(e) 1625 }, data: function (e, t, n) { 1626 return K.access(e, t, n) 1627 }, removeData: function (e, t) { 1628 K.remove(e, t) 1629 }, _data: function (e, t, n) { 1630 return J.access(e, t, n) 1631 }, _removeData: function (e, t) { 1632 J.remove(e, t) 1633 } 1634 }), w.fn.extend({ 1635 data: function (e, t) { 1636 var n, r, i, o = this[0], a = o && o.attributes; 1637 if (void 0 === e) { 1638 if (this.length && (i = K.get(o), 1 === o.nodeType && !J.get(o, "hasDataAttrs"))) { 1639 n = a.length; 1640 while (n--) 1641 a[n] && 0 === (r = a[n].name).indexOf("data-") && (r = G(r.slice(5)), ne(o, r, i[r])); 1642 J.set(o, "hasDataAttrs", !0) 1643 } 1644 return i 1645 } 1646 return "object" == typeof e ? this.each(function () { 1647 K.set(this, e) 1648 }) : z(this, function (t) { 1649 var n; 1650 if (o && void 0 === t) { 1651 if (void 0 !== (n = K.get(o, e))) 1652 return n; 1653 if (void 0 !== (n = ne(o, e))) 1654 return n 1655 } else 1656 this.each(function () { 1657 K.set(this, e, t) 1658 }) 1659 }, null, t, arguments.length > 1, null, !0) 1660 }, removeData: function (e) { 1661 return this.each(function () { 1662 K.remove(this, e) 1663 }) 1664 } 1665 }), w.extend({ 1666 queue: function (e, t, n) { 1667 var r; 1668 if (e) 1669 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 || [] 1670 }, dequeue: function (e, t) { 1671 t = t || "fx"; 1672 var n = w.queue(e, t), r = n.length, i = n.shift(), o = w._queueHooks(e, t), a = function () { 1673 w.dequeue(e, t) 1674 }; 1675 "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() 1676 }, _queueHooks: function (e, t) { 1677 var n = t + "queueHooks"; 1678 return J.get(e, n) || J.access(e, n, { 1679 empty: w.Callbacks("once memory").add(function () { 1680 J.remove(e, [t + "queue", n]) 1681 }) 1682 }) 1683 } 1684 }), w.fn.extend({ 1685 queue: function (e, t) { 1686 var n = 2; 1687 return "string" != typeof e && (t = e, e = "fx", n--), arguments.length < n ? w.queue(this[0], e) : void 0 === t ? this : this.each(function () { 1688 var n = w.queue(this, e, t); 1689 w._queueHooks(this, e), "fx" === e && "inprogress" !== n[0] && w.dequeue(this, e) 1690 }) 1691 }, dequeue: function (e) { 1692 return this.each(function () { 1693 w.dequeue(this, e) 1694 }) 1695 }, clearQueue: function (e) { 1696 return this.queue(e || "fx", []) 1697 }, promise: function (e, t) { 1698 var n, r = 1, i = w.Deferred(), o = this, a = this.length, s = function () { 1699 --r || i.resolveWith(o, [o]) 1700 }; 1701 "string" != typeof e && (t = e, e = void 0), e = e || "fx"; 1702 while (a--) 1703 (n = J.get(o[a], e + "queueHooks")) && n.empty && (r++, n.empty.add(s)); 1704 return s(), i.promise(t) 1705 } 1706 }); 1707 var re = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source, ie = new RegExp("^(?:([+-])=|)(" + re + ")([a-z%]*)$", "i"), oe = ["Top", "Right", "Bottom", "Left"], ae = function (e, t) { 1708 return "none" === (e = t || e).style.display || "" === e.style.display && w.contains(e.ownerDocument, e) && "none" === w.css(e, "display") 1709 }, se = function (e, t, n, r) { 1710 var i, o, a = {}; 1711 for (o in t) 1712 a[o] = e.style[o], e.style[o] = t[o]; 1713 i = n.apply(e, r || []); 1714 for (o in t) 1715 e.style[o] = a[o]; 1716 return i 1717 }; 1718 function ue(e, t, n, r) { 1719 var i, o, a = 20, s = r ? function () { 1720 return r.cur() 1721 } : function () { 1722 return w.css(e, t, "") 1723 }, u = s(), l = n && n[3] || (w.cssNumber[t] ? "" : "px"), c = (w.cssNumber[t] || "px" !== l && +u) && ie.exec(w.css(e, t)); 1724 if (c && c[3] !== l) { 1725 u /= 2, l = l || c[3], c = +u || 1; 1726 while (a--) 1727 w.style(e, t, c + l), (1 - o) * (1 - (o = s() / u || .5)) <= 0 && (a = 0), c /= o; 1728 c *= 2, w.style(e, t, c + l), n = n || [] 1729 } 1730 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 1731 } 1732 var le = {}; 1733 function ce(e) { 1734 var t, n = e.ownerDocument, r = e.nodeName, i = le[r]; 1735 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) 1736 } 1737 function fe(e, t) { 1738 for (var n, r, i = [], o = 0, a = e.length; o < a; o++) 1739 (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))); 1740 for (o = 0; o < a; o++) 1741 null != i[o] && (e[o].style.display = i[o]); 1742 return e 1743 } 1744 w.fn.extend({ 1745 show: function () { 1746 return fe(this, !0) 1747 }, hide: function () { 1748 return fe(this) 1749 }, toggle: function (e) { 1750 return "boolean" == typeof e ? e ? this.show() : this.hide() : this.each(function () { 1751 ae(this) ? w(this).show() : w(this).hide() 1752 }) 1753 } 1754 }); 1755 var pe = /^(?:checkbox|radio)$/i, de = /<([a-z][^\/\0>\x20\t\r\n\f]+)/i, he = /^$|^module$|\/(?:java|ecma)script/i, ge = { option: [1, "<select multiple='multiple'>", "</select>"], thead: [1, "<table>", "</table>"], col: [2, "<table><colgroup>", "</colgroup></table>"], tr: [2, "<table><tbody>", "</tbody></table>"], td: [3, "<table><tbody><tr>", "</tr></tbody></table>"], _default: [0, "", ""] }; 1756 ge.optgroup = ge.option, ge.tbody = ge.tfoot = ge.colgroup = ge.caption = ge.thead, ge.th = ge.td; 1757 function ye(e, t) { 1758 var n; 1759 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 1760 } 1761 function ve(e, t) { 1762 for (var n = 0, r = e.length; n < r; n++) 1763 J.set(e[n], "globalEval", !t || J.get(t[n], "globalEval")) 1764 } 1765 var me = /<|&#?\w+;/; 1766 function xe(e, t, n, r, i) { 1767 for (var o, a, s, u, l, c, f = t.createDocumentFragment(), p = [], d = 0, h = e.length; d < h; d++) 1768 if ((o = e[d]) || 0 === o) 1769 if ("object" === x(o)) 1770 w.merge(p, o.nodeType ? [o] : o); 1771 else if (me.test(o)) { 1772 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]; 1773 while (c--) 1774 a = a.lastChild; 1775 w.merge(p, a.childNodes), (a = f.firstChild).textContent = "" 1776 } else 1777 p.push(t.createTextNode(o)); 1778 f.textContent = "", d = 0; 1779 while (o = p[d++]) 1780 if (r && w.inArray(o, r) > -1) 1781 i && i.push(o); 1782 else if (l = w.contains(o.ownerDocument, o), a = ye(f.appendChild(o), "script"), l && ve(a), n) { 1783 c = 0; 1784 while (o = a[c++]) 1785 he.test(o.type || "") && n.push(o) 1786 } 1787 return f 1788 } 1789 !function () { 1790 var e = r.createDocumentFragment().appendChild(r.createElement("div")), t = r.createElement("input"); 1791 t.setAttribute("type", "radio"), t.setAttribute("checked", "checked"), t.setAttribute("name", "t"), e.appendChild(t), h.checkClone = e.cloneNode(!0).cloneNode(!0).lastChild.checked, e.innerHTML = "<textarea>x</textarea>", h.noCloneChecked = !!e.cloneNode(!0).lastChild.defaultValue 1792 }(); 1793 var be = r.documentElement, we = /^key/, Te = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, Ce = /^([^.]*)(?:\.(.+)|)/; 1794 function Ee() { 1795 return !0 1796 } 1797 function ke() { 1798 return !1 1799 } 1800 function Se() { 1801 try { 1802 return r.activeElement 1803 } catch (e) { 1804 } 1805 } 1806 function De(e, t, n, r, i, o) { 1807 var a, s; 1808 if ("object" == typeof t) { 1809 "string" != typeof n && (r = r || n, n = void 0); 1810 for (s in t) 1811 De(e, s, n, r, t[s], o); 1812 return e 1813 } 1814 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) 1815 i = ke; 1816 else if (!i) 1817 return e; 1818 return 1 === o && (a = i, (i = function (e) { 1819 return w().off(e), a.apply(this, arguments) 1820 }).guid = a.guid || (a.guid = w.guid++)), e.each(function () { 1821 w.event.add(this, t, i, r, n) 1822 }) 1823 } 1824 w.event = { 1825 global: {}, add: function (e, t, n, r, i) { 1826 var o, a, s, u, l, c, f, p, d, h, g, y = J.get(e); 1827 if (y) { 1828 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) { 1829 return "undefined" != typeof w && w.event.triggered !== t.type ? w.event.dispatch.apply(e, arguments) : void 0 1830 }), l = (t = (t || "").match(M) || [""]).length; 1831 while (l--) 1832 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) 1833 } 1834 }, remove: function (e, t, n, r, i) { 1835 var o, a, s, u, l, c, f, p, d, h, g, y = J.hasData(e) && J.get(e); 1836 if (y && (u = y.events)) { 1837 l = (t = (t || "").match(M) || [""]).length; 1838 while (l--) 1839 if (s = Ce.exec(t[l]) || [], d = g = s[1], h = (s[2] || "").split(".").sort(), d) { 1840 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; 1841 while (o--) 1842 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)); 1843 a && !p.length && (f.teardown && !1 !== f.teardown.call(e, h, y.handle) || w.removeEvent(e, d, y.handle), delete u[d]) 1844 } else 1845 for (d in u) 1846 w.event.remove(e, d + t[l], n, r, !0); 1847 w.isEmptyObject(u) && J.remove(e, "handle events") 1848 } 1849 }, dispatch: function (e) { 1850 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] || {}; 1851 for (u[0] = t, n = 1; n < arguments.length; n++) 1852 u[n] = arguments[n]; 1853 if (t.delegateTarget = this, !c.preDispatch || !1 !== c.preDispatch.call(this, t)) { 1854 s = w.event.handlers.call(this, t, l), n = 0; 1855 while ((o = s[n++]) && !t.isPropagationStopped()) { 1856 t.currentTarget = o.elem, r = 0; 1857 while ((a = o.handlers[r++]) && !t.isImmediatePropagationStopped()) 1858 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())) 1859 } 1860 return c.postDispatch && c.postDispatch.call(this, t), t.result 1861 } 1862 }, handlers: function (e, t) { 1863 var n, r, i, o, a, s = [], u = t.delegateCount, l = e.target; 1864 if (u && l.nodeType && !("click" === e.type && e.button >= 1)) 1865 for (; l !== this; l = l.parentNode || this) 1866 if (1 === l.nodeType && ("click" !== e.type || !0 !== l.disabled)) { 1867 for (o = [], a = {}, n = 0; n < u; n++) 1868 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); 1869 o.length && s.push({ elem: l, handlers: o }) 1870 } 1871 return l = this, u < t.length && s.push({ elem: l, handlers: t.slice(u) }), s 1872 }, addProp: function (e, t) { 1873 Object.defineProperty(w.Event.prototype, e, { 1874 enumerable: !0, configurable: !0, get: g(t) ? function () { 1875 if (this.originalEvent) 1876 return t(this.originalEvent) 1877 } : function () { 1878 if (this.originalEvent) 1879 return this.originalEvent[e] 1880 }, set: function (t) { 1881 Object.defineProperty(this, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) 1882 } 1883 }) 1884 }, fix: function (e) { 1885 return e[w.expando] ? e : new w.Event(e) 1886 }, special: { 1887 load: { noBubble: !0 }, focus: { 1888 trigger: function () { 1889 if (this !== Se() && this.focus) 1890 return this.focus(), !1 1891 }, delegateType: "focusin" 1892 }, blur: { 1893 trigger: function () { 1894 if (this === Se() && this.blur) 1895 return this.blur(), !1 1896 }, delegateType: "focusout" 1897 }, click: { 1898 trigger: function () { 1899 if ("checkbox" === this.type && this.click && N(this, "input")) 1900 return this.click(), !1 1901 }, _default: function (e) { 1902 return N(e.target, "a") 1903 } 1904 }, beforeunload: { 1905 postDispatch: function (e) { 1906 void 0 !== e.result && e.originalEvent && (e.originalEvent.returnValue = e.result) 1907 } 1908 } 1909 } 1910 }, w.removeEvent = function (e, t, n) { 1911 e.removeEventListener && e.removeEventListener(t, n) 1912 }, w.Event = function (e, t) { 1913 if (!(this instanceof w.Event)) 1914 return new w.Event(e, t); 1915 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 1916 }, w.Event.prototype = { 1917 constructor: w.Event, isDefaultPrevented: ke, isPropagationStopped: ke, isImmediatePropagationStopped: ke, isSimulated: !1, preventDefault: function () { 1918 var e = this.originalEvent; 1919 this.isDefaultPrevented = Ee, e && !this.isSimulated && e.preventDefault() 1920 }, stopPropagation: function () { 1921 var e = this.originalEvent; 1922 this.isPropagationStopped = Ee, e && !this.isSimulated && e.stopPropagation() 1923 }, stopImmediatePropagation: function () { 1924 var e = this.originalEvent; 1925 this.isImmediatePropagationStopped = Ee, e && !this.isSimulated && e.stopImmediatePropagation(), this.stopPropagation() 1926 } 1927 }, w.each({ 1928 altKey: !0, bubbles: !0, cancelable: !0, changedTouches: !0, ctrlKey: !0, detail: !0, eventPhase: !0, metaKey: !0, pageX: !0, pageY: !0, shiftKey: !0, view: !0, "char": !0, charCode: !0, key: !0, keyCode: !0, button: !0, buttons: !0, clientX: !0, clientY: !0, offsetX: !0, offsetY: !0, pointerId: !0, pointerType: !0, screenX: !0, screenY: !0, targetTouches: !0, toElement: !0, touches: !0, which: function (e) { 1929 var t = e.button; 1930 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 1931 } 1932 }, w.event.addProp), w.each({ mouseenter: "mouseover", mouseleave: "mouseout", pointerenter: "pointerover", pointerleave: "pointerout" }, function (e, t) { 1933 w.event.special[e] = { 1934 delegateType: t, bindType: t, handle: function (e) { 1935 var n, r = this, i = e.relatedTarget, o = e.handleObj; 1936 return i && (i === r || w.contains(r, i)) || (e.type = o.origType, n = o.handler.apply(this, arguments), e.type = t), n 1937 } 1938 } 1939 }), w.fn.extend({ 1940 on: function (e, t, n, r) { 1941 return De(this, e, t, n, r) 1942 }, one: function (e, t, n, r) { 1943 return De(this, e, t, n, r, 1) 1944 }, off: function (e, t, n) { 1945 var r, i; 1946 if (e && e.preventDefault && e.handleObj) 1947 return r = e.handleObj, w(e.delegateTarget).off(r.namespace ? r.origType + "." + r.namespace : r.origType, r.selector, r.handler), this; 1948 if ("object" == typeof e) { 1949 for (i in e) 1950 this.off(i, t, e[i]); 1951 return this 1952 } 1953 return !1 !== t && "function" != typeof t || (n = t, t = void 0), !1 === n && (n = ke), this.each(function () { 1954 w.event.remove(this, e, n, t) 1955 }) 1956 } 1957 }); 1958 var Ne = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi, Ae = /<script|<style|<link/i, je = /checked\s*(?:[^=]|=\s*.checked.)/i, qe = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g; 1959 function Le(e, t) { 1960 return N(e, "table") && N(11 !== t.nodeType ? t : t.firstChild, "tr") ? w(e).children("tbody")[0] || e : e 1961 } 1962 function He(e) { 1963 return e.type = (null !== e.getAttribute("type")) + "/" + e.type, e 1964 } 1965 function Oe(e) { 1966 return "true/" === (e.type || "").slice(0, 5) ? e.type = e.type.slice(5) : e.removeAttribute("type"), e 1967 } 1968 function Pe(e, t) { 1969 var n, r, i, o, a, s, u, l; 1970 if (1 === t.nodeType) { 1971 if (J.hasData(e) && (o = J.access(e), a = J.set(t, o), l = o.events)) { 1972 delete a.handle, a.events = {}; 1973 for (i in l) 1974 for (n = 0, r = l[i].length; n < r; n++) 1975 w.event.add(t, i, l[i][n]) 1976 } 1977 K.hasData(e) && (s = K.access(e), u = w.extend({}, s), K.set(t, u)) 1978 } 1979 } 1980 function Me(e, t) { 1981 var n = t.nodeName.toLowerCase(); 1982 "input" === n && pe.test(e.type) ? t.checked = e.checked : "input" !== n && "textarea" !== n || (t.defaultValue = e.defaultValue) 1983 } 1984 function Re(e, t, n, r) { 1985 t = a.apply([], t); 1986 var i, o, s, u, l, c, f = 0, p = e.length, d = p - 1, y = t[0], v = g(y); 1987 if (v || p > 1 && "string" == typeof y && !h.checkClone && je.test(y)) 1988 return e.each(function (i) { 1989 var o = e.eq(i); 1990 v && (t[0] = y.call(this, i, o.html())), Re(o, t, n, r) 1991 }); 1992 if (p && (i = xe(t, e[0].ownerDocument, !1, e, r), o = i.firstChild, 1 === i.childNodes.length && (i = o), o || r)) { 1993 for (u = (s = w.map(ye(i, "script"), He)).length; f < p; f++) 1994 l = i, f !== d && (l = w.clone(l, !0, !0), u && w.merge(s, ye(l, "script"))), n.call(e[f], l, f); 1995 if (u) 1996 for (c = s[s.length - 1].ownerDocument, w.map(s, Oe), f = 0; f < u; f++) 1997 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)) 1998 } 1999 return e 2000 } 2001 function Ie(e, t, n) { 2002 for (var r, i = t ? w.filter(t, e) : e, o = 0; null != (r = i[o]); o++) 2003 n || 1 !== r.nodeType || w.cleanData(ye(r)), r.parentNode && (n && w.contains(r.ownerDocument, r) && ve(ye(r, "script")), r.parentNode.removeChild(r)); 2004 return e 2005 } 2006 w.extend({ 2007 htmlPrefilter: function (e) { 2008 return e.replace(Ne, "<$1></$2>") 2009 }, clone: function (e, t, n) { 2010 var r, i, o, a, s = e.cloneNode(!0), u = w.contains(e.ownerDocument, e); 2011 if (!(h.noCloneChecked || 1 !== e.nodeType && 11 !== e.nodeType || w.isXMLDoc(e))) 2012 for (a = ye(s), r = 0, i = (o = ye(e)).length; r < i; r++) 2013 Me(o[r], a[r]); 2014 if (t) 2015 if (n) 2016 for (o = o || ye(e), a = a || ye(s), r = 0, i = o.length; r < i; r++) 2017 Pe(o[r], a[r]); 2018 else 2019 Pe(e, s); 2020 return (a = ye(s, "script")).length > 0 && ve(a, !u && ye(e, "script")), s 2021 }, cleanData: function (e) { 2022 for (var t, n, r, i = w.event.special, o = 0; void 0 !== (n = e[o]); o++) 2023 if (Y(n)) { 2024 if (t = n[J.expando]) { 2025 if (t.events) 2026 for (r in t.events) 2027 i[r] ? w.event.remove(n, r) : w.removeEvent(n, r, t.handle); 2028 n[J.expando] = void 0 2029 } 2030 n[K.expando] && (n[K.expando] = void 0) 2031 } 2032 } 2033 }), w.fn.extend({ 2034 detach: function (e) { 2035 return Ie(this, e, !0) 2036 }, remove: function (e) { 2037 return Ie(this, e) 2038 }, text: function (e) { 2039 return z(this, function (e) { 2040 return void 0 === e ? w.text(this) : this.empty().each(function () { 2041 1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || (this.textContent = e) 2042 }) 2043 }, null, e, arguments.length) 2044 }, append: function () { 2045 return Re(this, arguments, function (e) { 2046 1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || Le(this, e).appendChild(e) 2047 }) 2048 }, prepend: function () { 2049 return Re(this, arguments, function (e) { 2050 if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) { 2051 var t = Le(this, e); 2052 t.insertBefore(e, t.firstChild) 2053 } 2054 }) 2055 }, before: function () { 2056 return Re(this, arguments, function (e) { 2057 this.parentNode && this.parentNode.insertBefore(e, this) 2058 }) 2059 }, after: function () { 2060 return Re(this, arguments, function (e) { 2061 this.parentNode && this.parentNode.insertBefore(e, this.nextSibling) 2062 }) 2063 }, empty: function () { 2064 for (var e, t = 0; null != (e = this[t]); t++) 2065 1 === e.nodeType && (w.cleanData(ye(e, !1)), e.textContent = ""); 2066 return this 2067 }, clone: function (e, t) { 2068 return e = null != e && e, t = null == t ? e : t, this.map(function () { 2069 return w.clone(this, e, t) 2070 }) 2071 }, html: function (e) { 2072 return z(this, function (e) { 2073 var t = this[0] || {}, n = 0, r = this.length; 2074 if (void 0 === e && 1 === t.nodeType) 2075 return t.innerHTML; 2076 if ("string" == typeof e && !Ae.test(e) && !ge[(de.exec(e) || ["", ""])[1].toLowerCase()]) { 2077 e = w.htmlPrefilter(e); 2078 try { 2079 for (; n < r; n++) 2080 1 === (t = this[n] || {}).nodeType && (w.cleanData(ye(t, !1)), t.innerHTML = e); 2081 t = 0 2082 } catch (e) { 2083 } 2084 } 2085 t && this.empty().append(e) 2086 }, null, e, arguments.length) 2087 }, replaceWith: function () { 2088 var e = []; 2089 return Re(this, arguments, function (t) { 2090 var n = this.parentNode; 2091 w.inArray(this, e) < 0 && (w.cleanData(ye(this)), n && n.replaceChild(t, this)) 2092 }, e) 2093 } 2094 }), w.each({ appendTo: "append", prependTo: "prepend", insertBefore: "before", insertAfter: "after", replaceAll: "replaceWith" }, function (e, t) { 2095 w.fn[e] = function (e) { 2096 for (var n, r = [], i = w(e), o = i.length - 1, a = 0; a <= o; a++) 2097 n = a === o ? this : this.clone(!0), w(i[a])[t](n), s.apply(r, n.get()); 2098 return this.pushStack(r) 2099 } 2100 }); 2101 var We = new RegExp("^(" + re + ")(?!px)[a-z%]+$", "i"), $e = function (t) { 2102 var n = t.ownerDocument.defaultView; 2103 return n && n.opener || (n = e), n.getComputedStyle(t) 2104 }, Be = new RegExp(oe.join("|"), "i"); 2105 !function () { 2106 function t() { 2107 if (c) { 2108 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); 2109 var t = e.getComputedStyle(c); 2110 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 2111 } 2112 } 2113 function n(e) { 2114 return Math.round(parseFloat(e)) 2115 } 2116 var i, o, a, s, u, l = r.createElement("div"), c = r.createElement("div"); 2117 c.style && (c.style.backgroundClip = "content-box", c.cloneNode(!0).style.backgroundClip = "", h.clearCloneStyle = "content-box" === c.style.backgroundClip, w.extend(h, { 2118 boxSizingReliable: function () { 2119 return t(), o 2120 }, pixelBoxStyles: function () { 2121 return t(), s 2122 }, pixelPosition: function () { 2123 return t(), i 2124 }, reliableMarginLeft: function () { 2125 return t(), u 2126 }, scrollboxSize: function () { 2127 return t(), a 2128 } 2129 })) 2130 }(); 2131 function Fe(e, t, n) { 2132 var r, i, o, a, s = e.style; 2133 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 2134 } 2135 function _e(e, t) { 2136 return { 2137 get: function () { 2138 if (!e()) 2139 return (this.get = t).apply(this, arguments); 2140 delete this.get 2141 } 2142 } 2143 } 2144 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; 2145 function Qe(e) { 2146 if (e in Ye) 2147 return e; 2148 var t = e[0].toUpperCase() + e.slice(1), n = Ge.length; 2149 while (n--) 2150 if ((e = Ge[n] + t) in Ye) 2151 return e 2152 } 2153 function Je(e) { 2154 var t = w.cssProps[e]; 2155 return t || (t = w.cssProps[e] = Qe(e) || e), t 2156 } 2157 function Ke(e, t, n) { 2158 var r = ie.exec(t); 2159 return r ? Math.max(0, r[2] - (n || 0)) + (r[3] || "px") : t 2160 } 2161 function Ze(e, t, n, r, i, o) { 2162 var a = "width" === t ? 1 : 0, s = 0, u = 0; 2163 if (n === (r ? "border" : "content")) 2164 return 0; 2165 for (; a < 4; a += 2) 2166 "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)); 2167 return !r && o >= 0 && (u += Math.max(0, Math.ceil(e["offset" + t[0].toUpperCase() + t.slice(1)] - o - u - s - .5))), u 2168 } 2169 function et(e, t, n) { 2170 var r = $e(e), i = Fe(e, t, r), o = "border-box" === w.css(e, "boxSizing", !1, r), a = o; 2171 if (We.test(i)) { 2172 if (!n) 2173 return i; 2174 i = "auto" 2175 } 2176 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" 2177 } 2178 w.extend({ 2179 cssHooks: { 2180 opacity: { 2181 get: function (e, t) { 2182 if (t) { 2183 var n = Fe(e, "opacity"); 2184 return "" === n ? "1" : n 2185 } 2186 } 2187 } 2188 }, cssNumber: { animationIterationCount: !0, columnCount: !0, fillOpacity: !0, flexGrow: !0, flexShrink: !0, fontWeight: !0, lineHeight: !0, opacity: !0, order: !0, orphans: !0, widows: !0, zIndex: !0, zoom: !0 }, cssProps: {}, style: function (e, t, n, r) { 2189 if (e && 3 !== e.nodeType && 8 !== e.nodeType && e.style) { 2190 var i, o, a, s = G(t), u = Xe.test(t), l = e.style; 2191 if (u || (t = Je(s)), a = w.cssHooks[t] || w.cssHooks[s], void 0 === n) 2192 return a && "get" in a && void 0 !== (i = a.get(e, !1, r)) ? i : l[t]; 2193 "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)) 2194 } 2195 }, css: function (e, t, n, r) { 2196 var i, o, a, s = G(t); 2197 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 2198 } 2199 }), w.each(["height", "width"], function (e, t) { 2200 w.cssHooks[t] = { 2201 get: function (e, n, r) { 2202 if (n) 2203 return !ze.test(w.css(e, "display")) || e.getClientRects().length && e.getBoundingClientRect().width ? et(e, t, r) : se(e, Ue, function () { 2204 return et(e, t, r) 2205 }) 2206 }, set: function (e, n, r) { 2207 var i, o = $e(e), a = "border-box" === w.css(e, "boxSizing", !1, o), s = r && Ze(e, t, r, a, o); 2208 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) 2209 } 2210 } 2211 }), w.cssHooks.marginLeft = _e(h.reliableMarginLeft, function (e, t) { 2212 if (t) 2213 return (parseFloat(Fe(e, "marginLeft")) || e.getBoundingClientRect().left - se(e, { marginLeft: 0 }, function () { 2214 return e.getBoundingClientRect().left 2215 })) + "px" 2216 }), w.each({ margin: "", padding: "", border: "Width" }, function (e, t) { 2217 w.cssHooks[e + t] = { 2218 expand: function (n) { 2219 for (var r = 0, i = {}, o = "string" == typeof n ? n.split(" ") : [n]; r < 4; r++) 2220 i[e + oe[r] + t] = o[r] || o[r - 2] || o[0]; 2221 return i 2222 } 2223 }, "margin" !== e && (w.cssHooks[e + t].set = Ke) 2224 }), w.fn.extend({ 2225 css: function (e, t) { 2226 return z(this, function (e, t, n) { 2227 var r, i, o = {}, a = 0; 2228 if (Array.isArray(t)) { 2229 for (r = $e(e), i = t.length; a < i; a++) 2230 o[t[a]] = w.css(e, t[a], !1, r); 2231 return o 2232 } 2233 return void 0 !== n ? w.style(e, t, n) : w.css(e, t) 2234 }, e, t, arguments.length > 1) 2235 } 2236 }); 2237 function tt(e, t, n, r, i) { 2238 return new tt.prototype.init(e, t, n, r, i) 2239 } 2240 w.Tween = tt, tt.prototype = { 2241 constructor: tt, init: function (e, t, n, r, i, o) { 2242 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") 2243 }, cur: function () { 2244 var e = tt.propHooks[this.prop]; 2245 return e && e.get ? e.get(this) : tt.propHooks._default.get(this) 2246 }, run: function (e) { 2247 var t, n = tt.propHooks[this.prop]; 2248 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 2249 } 2250 }, tt.prototype.init.prototype = tt.prototype, tt.propHooks = { 2251 _default: { 2252 get: function (e) { 2253 var t; 2254 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 2255 }, set: function (e) { 2256 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) 2257 } 2258 } 2259 }, tt.propHooks.scrollTop = tt.propHooks.scrollLeft = { 2260 set: function (e) { 2261 e.elem.nodeType && e.elem.parentNode && (e.elem[e.prop] = e.now) 2262 } 2263 }, w.easing = { 2264 linear: function (e) { 2265 return e 2266 }, swing: function (e) { 2267 return .5 - Math.cos(e * Math.PI) / 2 2268 }, _default: "swing" 2269 }, w.fx = tt.prototype.init, w.fx.step = {}; 2270 var nt, rt, it = /^(?:toggle|show|hide)$/, ot = /queueHooks$/; 2271 function at() { 2272 rt && (!1 === r.hidden && e.requestAnimationFrame ? e.requestAnimationFrame(at) : e.setTimeout(at, w.fx.interval), w.fx.tick()) 2273 } 2274 function st() { 2275 return e.setTimeout(function () { 2276 nt = void 0 2277 }), nt = Date.now() 2278 } 2279 function ut(e, t) { 2280 var n, r = 0, i = { height: e }; 2281 for (t = t ? 1 : 0; r < 4; r += 2 - t) 2282 i["margin" + (n = oe[r])] = i["padding" + n] = e; 2283 return t && (i.opacity = i.width = e), i 2284 } 2285 function lt(e, t, n) { 2286 for (var r, i = (pt.tweeners[t] || []).concat(pt.tweeners["*"]), o = 0, a = i.length; o < a; o++) 2287 if (r = i[o].call(n, t, e)) 2288 return r 2289 } 2290 function ct(e, t, n) { 2291 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"); 2292 n.queue || (null == (a = w._queueHooks(e, "fx")).unqueued && (a.unqueued = 0, s = a.empty.fire, a.empty.fire = function () { 2293 a.unqueued || s() 2294 }), a.unqueued++, p.always(function () { 2295 p.always(function () { 2296 a.unqueued--, w.queue(e, "fx").length || a.empty.fire() 2297 }) 2298 })); 2299 for (r in t) 2300 if (i = t[r], it.test(i)) { 2301 if (delete t[r], o = o || "toggle" === i, i === (g ? "hide" : "show")) { 2302 if ("show" !== i || !y || void 0 === y[r]) 2303 continue; 2304 g = !0 2305 } 2306 d[r] = y && y[r] || w.style(e, r) 2307 } 2308 if ((u = !w.isEmptyObject(t)) || !w.isEmptyObject(d)) { 2309 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 () { 2310 h.display = l 2311 }), null == l && (c = h.display, l = "none" === c ? "" : c)), h.display = "inline-block")), n.overflow && (h.overflow = "hidden", p.always(function () { 2312 h.overflow = n.overflow[0], h.overflowX = n.overflow[1], h.overflowY = n.overflow[2] 2313 })), u = !1; 2314 for (r in d) 2315 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 () { 2316 g || fe([e]), J.remove(e, "fxshow"); 2317 for (r in d) 2318 w.style(e, r, d[r]) 2319 })), u = lt(g ? y[r] : 0, r, p), r in y || (y[r] = u.start, g && (u.end = u.start, u.start = 0)) 2320 } 2321 } 2322 function ft(e, t) { 2323 var n, r, i, o, a; 2324 for (n in e) 2325 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) { 2326 o = a.expand(o), delete e[r]; 2327 for (n in o) 2328 n in e || (e[n] = o[n], t[n] = i) 2329 } else 2330 t[r] = i 2331 } 2332 function pt(e, t, n) { 2333 var r, i, o = 0, a = pt.prefilters.length, s = w.Deferred().always(function () { 2334 delete u.elem 2335 }), u = function () { 2336 if (i) 2337 return !1; 2338 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++) 2339 l.tweens[o].run(r); 2340 return s.notifyWith(e, [l, r, n]), r < 1 && a ? n : (a || s.notifyWith(e, [l, 1, 0]), s.resolveWith(e, [l]), !1) 2341 }, l = s.promise({ 2342 elem: e, props: w.extend({}, t), opts: w.extend(!0, { specialEasing: {}, easing: w.easing._default }, n), originalProperties: t, originalOptions: n, startTime: nt || st(), duration: n.duration, tweens: [], createTween: function (t, n) { 2343 var r = w.Tween(e, l.opts, t, n, l.opts.specialEasing[t] || l.opts.easing); 2344 return l.tweens.push(r), r 2345 }, stop: function (t) { 2346 var n = 0, r = t ? l.tweens.length : 0; 2347 if (i) 2348 return this; 2349 for (i = !0; n < r; n++) 2350 l.tweens[n].run(1); 2351 return t ? (s.notifyWith(e, [l, 1, 0]), s.resolveWith(e, [l, t])) : s.rejectWith(e, [l, t]), this 2352 } 2353 }), c = l.props; 2354 for (ft(c, l.opts.specialEasing); o < a; o++) 2355 if (r = pt.prefilters[o].call(l, e, c, l.opts)) 2356 return g(r.stop) && (w._queueHooks(l.elem, l.opts.queue).stop = r.stop.bind(r)), r; 2357 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 2358 } 2359 w.Animation = w.extend(pt, { 2360 tweeners: { 2361 "*": [function (e, t) { 2362 var n = this.createTween(e, t); 2363 return ue(n.elem, e, ie.exec(t), n), n 2364 }] 2365 }, tweener: function (e, t) { 2366 g(e) ? (t = e, e = ["*"]) : e = e.match(M); 2367 for (var n, r = 0, i = e.length; r < i; r++) 2368 n = e[r], pt.tweeners[n] = pt.tweeners[n] || [], pt.tweeners[n].unshift(t) 2369 }, prefilters: [ct], prefilter: function (e, t) { 2370 t ? pt.prefilters.unshift(e) : pt.prefilters.push(e) 2371 } 2372 }), w.speed = function (e, t, n) { 2373 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 }; 2374 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 () { 2375 g(r.old) && r.old.call(this), r.queue && w.dequeue(this, r.queue) 2376 }, r 2377 }, w.fn.extend({ 2378 fadeTo: function (e, t, n, r) { 2379 return this.filter(ae).css("opacity", 0).show().end().animate({ opacity: t }, e, n, r) 2380 }, animate: function (e, t, n, r) { 2381 var i = w.isEmptyObject(e), o = w.speed(t, n, r), a = function () { 2382 var t = pt(this, w.extend({}, e), o); 2383 (i || J.get(this, "finish")) && t.stop(!0) 2384 }; 2385 return a.finish = a, i || !1 === o.queue ? this.each(a) : this.queue(o.queue, a) 2386 }, stop: function (e, t, n) { 2387 var r = function (e) { 2388 var t = e.stop; 2389 delete e.stop, t(n) 2390 }; 2391 return "string" != typeof e && (n = t, t = e, e = void 0), t && !1 !== e && this.queue(e || "fx", []), this.each(function () { 2392 var t = !0, i = null != e && e + "queueHooks", o = w.timers, a = J.get(this); 2393 if (i) 2394 a[i] && a[i].stop && r(a[i]); 2395 else 2396 for (i in a) 2397 a[i] && a[i].stop && ot.test(i) && r(a[i]); 2398 for (i = o.length; i--;) 2399 o[i].elem !== this || null != e && o[i].queue !== e || (o[i].anim.stop(n), t = !1, o.splice(i, 1)); 2400 !t && n || w.dequeue(this, e) 2401 }) 2402 }, finish: function (e) { 2403 return !1 !== e && (e = e || "fx"), this.each(function () { 2404 var t, n = J.get(this), r = n[e + "queue"], i = n[e + "queueHooks"], o = w.timers, a = r ? r.length : 0; 2405 for (n.finish = !0, w.queue(this, e, []), i && i.stop && i.stop.call(this, !0), t = o.length; t--;) 2406 o[t].elem === this && o[t].queue === e && (o[t].anim.stop(!0), o.splice(t, 1)); 2407 for (t = 0; t < a; t++) 2408 r[t] && r[t].finish && r[t].finish.call(this); 2409 delete n.finish 2410 }) 2411 } 2412 }), w.each(["toggle", "show", "hide"], function (e, t) { 2413 var n = w.fn[t]; 2414 w.fn[t] = function (e, r, i) { 2415 return null == e || "boolean" == typeof e ? n.apply(this, arguments) : this.animate(ut(t, !0), e, r, i) 2416 } 2417 }), w.each({ slideDown: ut("show"), slideUp: ut("hide"), slideToggle: ut("toggle"), fadeIn: { opacity: "show" }, fadeOut: { opacity: "hide" }, fadeToggle: { opacity: "toggle" } }, function (e, t) { 2418 w.fn[e] = function (e, n, r) { 2419 return this.animate(t, e, n, r) 2420 } 2421 }), w.timers = [], w.fx.tick = function () { 2422 var e, t = 0, n = w.timers; 2423 for (nt = Date.now(); t < n.length; t++) 2424 (e = n[t])() || n[t] !== e || n.splice(t--, 1); 2425 n.length || w.fx.stop(), nt = void 0 2426 }, w.fx.timer = function (e) { 2427 w.timers.push(e), w.fx.start() 2428 }, w.fx.interval = 13, w.fx.start = function () { 2429 rt || (rt = !0, at()) 2430 }, w.fx.stop = function () { 2431 rt = null 2432 }, w.fx.speeds = { slow: 600, fast: 200, _default: 400 }, w.fn.delay = function (t, n) { 2433 return t = w.fx ? w.fx.speeds[t] || t : t, n = n || "fx", this.queue(n, function (n, r) { 2434 var i = e.setTimeout(n, t); 2435 r.stop = function () { 2436 e.clearTimeout(i) 2437 } 2438 }) 2439 }, function () { 2440 var e = r.createElement("input"), t = r.createElement("select").appendChild(r.createElement("option")); 2441 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 2442 }(); 2443 var dt, ht = w.expr.attrHandle; 2444 w.fn.extend({ 2445 attr: function (e, t) { 2446 return z(this, w.attr, e, t, arguments.length > 1) 2447 }, removeAttr: function (e) { 2448 return this.each(function () { 2449 w.removeAttr(this, e) 2450 }) 2451 } 2452 }), w.extend({ 2453 attr: function (e, t, n) { 2454 var r, i, o = e.nodeType; 2455 if (3 !== o && 8 !== o && 2 !== o) 2456 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) 2457 }, attrHooks: { 2458 type: { 2459 set: function (e, t) { 2460 if (!h.radioValue && "radio" === t && N(e, "input")) { 2461 var n = e.value; 2462 return e.setAttribute("type", t), n && (e.value = n), t 2463 } 2464 } 2465 } 2466 }, removeAttr: function (e, t) { 2467 var n, r = 0, i = t && t.match(M); 2468 if (i && 1 === e.nodeType) 2469 while (n = i[r++]) 2470 e.removeAttribute(n) 2471 } 2472 }), dt = { 2473 set: function (e, t, n) { 2474 return !1 === t ? w.removeAttr(e, n) : e.setAttribute(n, n), n 2475 } 2476 }, w.each(w.expr.match.bool.source.match(/\w+/g), function (e, t) { 2477 var n = ht[t] || w.find.attr; 2478 ht[t] = function (e, t, r) { 2479 var i, o, a = t.toLowerCase(); 2480 return r || (o = ht[a], ht[a] = i, i = null != n(e, t, r) ? a : null, ht[a] = o), i 2481 } 2482 }); 2483 var gt = /^(?:input|select|textarea|button)$/i, yt = /^(?:a|area)$/i; 2484 w.fn.extend({ 2485 prop: function (e, t) { 2486 return z(this, w.prop, e, t, arguments.length > 1) 2487 }, removeProp: function (e) { 2488 return this.each(function () { 2489 delete this[w.propFix[e] || e] 2490 }) 2491 } 2492 }), w.extend({ 2493 prop: function (e, t, n) { 2494 var r, i, o = e.nodeType; 2495 if (3 !== o && 8 !== o && 2 !== o) 2496 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] 2497 }, propHooks: { 2498 tabIndex: { 2499 get: function (e) { 2500 var t = w.find.attr(e, "tabindex"); 2501 return t ? parseInt(t, 10) : gt.test(e.nodeName) || yt.test(e.nodeName) && e.href ? 0 : -1 2502 } 2503 } 2504 }, propFix: { "for": "htmlFor", "class": "className" } 2505 }), h.optSelected || (w.propHooks.selected = { 2506 get: function (e) { 2507 var t = e.parentNode; 2508 return t && t.parentNode && t.parentNode.selectedIndex, null 2509 }, set: function (e) { 2510 var t = e.parentNode; 2511 t && (t.selectedIndex, t.parentNode && t.parentNode.selectedIndex) 2512 } 2513 }), w.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], function () { 2514 w.propFix[this.toLowerCase()] = this 2515 }); 2516 function vt(e) { 2517 return (e.match(M) || []).join(" ") 2518 } 2519 function mt(e) { 2520 return e.getAttribute && e.getAttribute("class") || "" 2521 } 2522 function xt(e) { 2523 return Array.isArray(e) ? e : "string" == typeof e ? e.match(M) || [] : [] 2524 } 2525 w.fn.extend({ 2526 addClass: function (e) { 2527 var t, n, r, i, o, a, s, u = 0; 2528 if (g(e)) 2529 return this.each(function (t) { 2530 w(this).addClass(e.call(this, t, mt(this))) 2531 }); 2532 if ((t = xt(e)).length) 2533 while (n = this[u++]) 2534 if (i = mt(n), r = 1 === n.nodeType && " " + vt(i) + " ") { 2535 a = 0; 2536 while (o = t[a++]) 2537 r.indexOf(" " + o + " ") < 0 && (r += o + " "); 2538 i !== (s = vt(r)) && n.setAttribute("class", s) 2539 } 2540 return this 2541 }, removeClass: function (e) { 2542 var t, n, r, i, o, a, s, u = 0; 2543 if (g(e)) 2544 return this.each(function (t) { 2545 w(this).removeClass(e.call(this, t, mt(this))) 2546 }); 2547 if (!arguments.length) 2548 return this.attr("class", ""); 2549 if ((t = xt(e)).length) 2550 while (n = this[u++]) 2551 if (i = mt(n), r = 1 === n.nodeType && " " + vt(i) + " ") { 2552 a = 0; 2553 while (o = t[a++]) 2554 while (r.indexOf(" " + o + " ") > - 1) 2555 r = r.replace(" " + o + " ", " "); 2556 i !== (s = vt(r)) && n.setAttribute("class", s) 2557 } 2558 return this 2559 }, toggleClass: function (e, t) { 2560 var n = typeof e, r = "string" === n || Array.isArray(e); 2561 return "boolean" == typeof t && r ? t ? this.addClass(e) : this.removeClass(e) : g(e) ? this.each(function (n) { 2562 w(this).toggleClass(e.call(this, n, mt(this), t), t) 2563 }) : this.each(function () { 2564 var t, i, o, a; 2565 if (r) { 2566 i = 0, o = w(this), a = xt(e); 2567 while (t = a[i++]) 2568 o.hasClass(t) ? o.removeClass(t) : o.addClass(t) 2569 } else 2570 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__") || "")) 2571 }) 2572 }, hasClass: function (e) { 2573 var t, n, r = 0; 2574 t = " " + e + " "; 2575 while (n = this[r++]) 2576 if (1 === n.nodeType && (" " + vt(mt(n)) + " ").indexOf(t) > -1) 2577 return !0; 2578 return !1 2579 } 2580 }); 2581 var bt = /\r/g; 2582 w.fn.extend({ 2583 val: function (e) { 2584 var t, n, r, i = this[0]; 2585 { 2586 if (arguments.length) 2587 return r = g(e), this.each(function (n) { 2588 var i; 2589 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) { 2590 return null == e ? "" : e + "" 2591 })), (t = w.valHooks[this.type] || w.valHooks[this.nodeName.toLowerCase()]) && "set" in t && void 0 !== t.set(this, i, "value") || (this.value = i)) 2592 }); 2593 if (i) 2594 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 2595 } 2596 } 2597 }), w.extend({ 2598 valHooks: { 2599 option: { 2600 get: function (e) { 2601 var t = w.find.attr(e, "value"); 2602 return null != t ? t : vt(w.text(e)) 2603 } 2604 }, select: { 2605 get: function (e) { 2606 var t, n, r, i = e.options, o = e.selectedIndex, a = "select-one" === e.type, s = a ? null : [], u = a ? o + 1 : i.length; 2607 for (r = o < 0 ? u : a ? o : 0; r < u; r++) 2608 if (((n = i[r]).selected || r === o) && !n.disabled && (!n.parentNode.disabled || !N(n.parentNode, "optgroup"))) { 2609 if (t = w(n).val(), a) 2610 return t; 2611 s.push(t) 2612 } 2613 return s 2614 }, set: function (e, t) { 2615 var n, r, i = e.options, o = w.makeArray(t), a = i.length; 2616 while (a--) 2617 ((r = i[a]).selected = w.inArray(w.valHooks.option.get(r), o) > -1) && (n = !0); 2618 return n || (e.selectedIndex = -1), o 2619 } 2620 } 2621 } 2622 }), w.each(["radio", "checkbox"], function () { 2623 w.valHooks[this] = { 2624 set: function (e, t) { 2625 if (Array.isArray(t)) 2626 return e.checked = w.inArray(w(e).val(), t) > -1 2627 } 2628 }, h.checkOn || (w.valHooks[this].get = function (e) { 2629 return null === e.getAttribute("value") ? "on" : e.value 2630 }) 2631 }), h.focusin = "onfocusin" in e; 2632 var wt = /^(?:focusinfocus|focusoutblur)$/, Tt = function (e) { 2633 e.stopPropagation() 2634 }; 2635 w.extend(w.event, { 2636 trigger: function (t, n, i, o) { 2637 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(".") : []; 2638 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))) { 2639 if (!o && !d.noBubble && !y(i)) { 2640 for (l = d.delegateType || m, wt.test(l + m) || (s = s.parentNode); s; s = s.parentNode) 2641 v.push(s), u = s; 2642 u === (i.ownerDocument || r) && v.push(u.defaultView || u.parentWindow || e) 2643 } 2644 a = 0; 2645 while ((s = v[a++]) && !t.isPropagationStopped()) 2646 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()); 2647 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 2648 } 2649 }, simulate: function (e, t, n) { 2650 var r = w.extend(new w.Event, n, { type: e, isSimulated: !0 }); 2651 w.event.trigger(r, null, t) 2652 } 2653 }), w.fn.extend({ 2654 trigger: function (e, t) { 2655 return this.each(function () { 2656 w.event.trigger(e, t, this) 2657 }) 2658 }, triggerHandler: function (e, t) { 2659 var n = this[0]; 2660 if (n) 2661 return w.event.trigger(e, t, n, !0) 2662 } 2663 }), h.focusin || w.each({ focus: "focusin", blur: "focusout" }, function (e, t) { 2664 var n = function (e) { 2665 w.event.simulate(t, e.target, w.event.fix(e)) 2666 }; 2667 w.event.special[t] = { 2668 setup: function () { 2669 var r = this.ownerDocument || this, i = J.access(r, t); 2670 i || r.addEventListener(e, n, !0), J.access(r, t, (i || 0) + 1) 2671 }, teardown: function () { 2672 var r = this.ownerDocument || this, i = J.access(r, t) - 1; 2673 i ? J.access(r, t, i) : (r.removeEventListener(e, n, !0), J.remove(r, t)) 2674 } 2675 } 2676 }); 2677 var Ct = e.location, Et = Date.now(), kt = /\?/; 2678 w.parseXML = function (t) { 2679 var n; 2680 if (!t || "string" != typeof t) 2681 return null; 2682 try { 2683 n = (new e.DOMParser).parseFromString(t, "text/xml") 2684 } catch (e) { 2685 n = void 0 2686 } 2687 return n && !n.getElementsByTagName("parsererror").length || w.error("Invalid XML: " + t), n 2688 }; 2689 var St = /\[\]$/, Dt = /\r?\n/g, Nt = /^(?:submit|button|image|reset|file)$/i, At = /^(?:input|select|textarea|keygen)/i; 2690 function jt(e, t, n, r) { 2691 var i; 2692 if (Array.isArray(t)) 2693 w.each(t, function (t, i) { 2694 n || St.test(e) ? r(e, i) : jt(e + "[" + ("object" == typeof i && null != i ? t : "") + "]", i, n, r) 2695 }); 2696 else if (n || "object" !== x(t)) 2697 r(e, t); 2698 else 2699 for (i in t) 2700 jt(e + "[" + i + "]", t[i], n, r) 2701 } 2702 w.param = function (e, t) { 2703 var n, r = [], i = function (e, t) { 2704 var n = g(t) ? t() : t; 2705 r[r.length] = encodeURIComponent(e) + "=" + encodeURIComponent(null == n ? "" : n) 2706 }; 2707 if (Array.isArray(e) || e.jquery && !w.isPlainObject(e)) 2708 w.each(e, function () { 2709 i(this.name, this.value) 2710 }); 2711 else 2712 for (n in e) 2713 jt(n, e[n], t, i); 2714 return r.join("&") 2715 }, w.fn.extend({ 2716 serialize: function () { 2717 return w.param(this.serializeArray()) 2718 }, serializeArray: function () { 2719 return this.map(function () { 2720 var e = w.prop(this, "elements"); 2721 return e ? w.makeArray(e) : this 2722 }).filter(function () { 2723 var e = this.type; 2724 return this.name && !w(this).is(":disabled") && At.test(this.nodeName) && !Nt.test(e) && (this.checked || !pe.test(e)) 2725 }).map(function (e, t) { 2726 var n = w(this).val(); 2727 return null == n ? null : Array.isArray(n) ? w.map(n, function (e) { 2728 return { name: t.name, value: e.replace(Dt, "\r\n") } 2729 }) : { name: t.name, value: n.replace(Dt, "\r\n") } 2730 }).get() 2731 } 2732 }); 2733 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"); 2734 Bt.href = Ct.href; 2735 function Ft(e) { 2736 return function (t, n) { 2737 "string" != typeof t && (n = t, t = "*"); 2738 var r, i = 0, o = t.toLowerCase().match(M) || []; 2739 if (g(n)) 2740 while (r = o[i++]) 2741 "+" === r[0] ? (r = r.slice(1) || "*", (e[r] = e[r] || []).unshift(n)) : (e[r] = e[r] || []).push(n) 2742 } 2743 } 2744 function _t(e, t, n, r) { 2745 var i = {}, o = e === Wt; 2746 function a(s) { 2747 var u; 2748 return i[s] = !0, w.each(e[s] || [], function (e, s) { 2749 var l = s(t, n, r); 2750 return "string" != typeof l || o || i[l] ? o ? !(u = l) : void 0 : (t.dataTypes.unshift(l), a(l), !1) 2751 }), u 2752 } 2753 return a(t.dataTypes[0]) || !i["*"] && a("*") 2754 } 2755 function zt(e, t) { 2756 var n, r, i = w.ajaxSettings.flatOptions || {}; 2757 for (n in t) 2758 void 0 !== t[n] && ((i[n] ? e : r || (r = {}))[n] = t[n]); 2759 return r && w.extend(!0, e, r), e 2760 } 2761 function Xt(e, t, n) { 2762 var r, i, o, a, s = e.contents, u = e.dataTypes; 2763 while ("*" === u[0]) 2764 u.shift(), void 0 === r && (r = e.mimeType || t.getResponseHeader("Content-Type")); 2765 if (r) 2766 for (i in s) 2767 if (s[i] && s[i].test(r)) { 2768 u.unshift(i); 2769 break 2770 } 2771 if (u[0] in n) 2772 o = u[0]; 2773 else { 2774 for (i in n) { 2775 if (!u[0] || e.converters[i + " " + u[0]]) { 2776 o = i; 2777 break 2778 } 2779 a || (a = i) 2780 } 2781 o = o || a 2782 } 2783 if (o) 2784 return o !== u[0] && u.unshift(o), n[o] 2785 } 2786 function Ut(e, t, n, r) { 2787 var i, o, a, s, u, l = {}, c = e.dataTypes.slice(); 2788 if (c[1]) 2789 for (a in e.converters) 2790 l[a.toLowerCase()] = e.converters[a]; 2791 o = c.shift(); 2792 while (o) 2793 if (e.responseFields[o] && (n[e.responseFields[o]] = t), !u && r && e.dataFilter && (t = e.dataFilter(t, e.dataType)), u = o, o = c.shift()) 2794 if ("*" === o) 2795 o = u; 2796 else if ("*" !== u && u !== o) { 2797 if (!(a = l[u + " " + o] || l["* " + o])) 2798 for (i in l) 2799 if ((s = i.split(" "))[1] === o && (a = l[u + " " + s[0]] || l["* " + s[0]])) { 2800 !0 === a ? a = l[i] : !0 !== l[i] && (o = s[0], c.unshift(s[1])); 2801 break 2802 } 2803 if (!0 !== a) 2804 if (a && e["throws"]) 2805 t = a(t); 2806 else 2807 try { 2808 t = a(t) 2809 } catch (e) { 2810 return { state: "parsererror", error: a ? e : "No conversion from " + u + " to " + o } 2811 } 2812 } 2813 return { state: "success", data: t } 2814 } 2815 w.extend({ 2816 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 (e, t) { 2817 return t ? zt(zt(e, w.ajaxSettings), t) : zt(w.ajaxSettings, e) 2818 }, ajaxPrefilter: Ft(It), ajaxTransport: Ft(Wt), ajax: function (t, n) { 2819 "object" == typeof t && (n = t, t = void 0), n = n || {}; 2820 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 = { 2821 readyState: 0, getResponseHeader: function (e) { 2822 var t; 2823 if (c) { 2824 if (!s) { 2825 s = {}; 2826 while (t = Ot.exec(a)) 2827 s[t[1].toLowerCase()] = t[2] 2828 } 2829 t = s[e.toLowerCase()] 2830 } 2831 return null == t ? null : t 2832 }, getAllResponseHeaders: function () { 2833 return c ? a : null 2834 }, setRequestHeader: function (e, t) { 2835 return null == c && (e = T[e.toLowerCase()] = T[e.toLowerCase()] || e, b[e] = t), this 2836 }, overrideMimeType: function (e) { 2837 return null == c && (h.mimeType = e), this 2838 }, statusCode: function (e) { 2839 var t; 2840 if (e) 2841 if (c) 2842 E.always(e[E.status]); 2843 else 2844 for (t in e) 2845 x[t] = [x[t], e[t]]; 2846 return this 2847 }, abort: function (e) { 2848 var t = e || C; 2849 return i && i.abort(t), k(0, t), this 2850 } 2851 }; 2852 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) { 2853 l = r.createElement("a"); 2854 try { 2855 l.href = h.url, l.href = l.href, h.crossDomain = Bt.protocol + "//" + Bt.host != l.protocol + "//" + l.host 2856 } catch (e) { 2857 h.crossDomain = !0 2858 } 2859 } 2860 if (h.data && h.processData && "string" != typeof h.data && (h.data = w.param(h.data, h.traditional)), _t(It, h, n, E), c) 2861 return E; 2862 (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["*"]); 2863 for (p in h.headers) 2864 E.setRequestHeader(p, h.headers[p]); 2865 if (h.beforeSend && (!1 === h.beforeSend.call(g, E, h) || c)) 2866 return E.abort(); 2867 if (C = "abort", m.add(h.complete), E.done(h.success), E.fail(h.error), i = _t(Wt, h, n, E)) { 2868 if (E.readyState = 1, f && y.trigger("ajaxSend", [E, h]), c) 2869 return E; 2870 h.async && h.timeout > 0 && (u = e.setTimeout(function () { 2871 E.abort("timeout") 2872 }, h.timeout)); 2873 try { 2874 c = !1, i.send(b, k) 2875 } catch (e) { 2876 if (c) 2877 throw e; 2878 k(-1, e) 2879 } 2880 } else 2881 k(-1, "No Transport"); 2882 function k(t, n, r, s) { 2883 var l, p, d, b, T, C = n; 2884 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"))) 2885 } 2886 return E 2887 }, getJSON: function (e, t, n) { 2888 return w.get(e, t, n, "json") 2889 }, getScript: function (e, t) { 2890 return w.get(e, void 0, t, "script") 2891 } 2892 }), w.each(["get", "post"], function (e, t) { 2893 w[t] = function (e, n, r, i) { 2894 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)) 2895 } 2896 }), w._evalUrl = function (e) { 2897 return w.ajax({ url: e, type: "GET", dataType: "script", cache: !0, async: !1, global: !1, "throws": !0 }) 2898 }, w.fn.extend({ 2899 wrapAll: function (e) { 2900 var t; 2901 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 () { 2902 var e = this; 2903 while (e.firstElementChild) 2904 e = e.firstElementChild; 2905 return e 2906 }).append(this)), this 2907 }, wrapInner: function (e) { 2908 return g(e) ? this.each(function (t) { 2909 w(this).wrapInner(e.call(this, t)) 2910 }) : this.each(function () { 2911 var t = w(this), n = t.contents(); 2912 n.length ? n.wrapAll(e) : t.append(e) 2913 }) 2914 }, wrap: function (e) { 2915 var t = g(e); 2916 return this.each(function (n) { 2917 w(this).wrapAll(t ? e.call(this, n) : e) 2918 }) 2919 }, unwrap: function (e) { 2920 return this.parent(e).not("body").each(function () { 2921 w(this).replaceWith(this.childNodes) 2922 }), this 2923 } 2924 }), w.expr.pseudos.hidden = function (e) { 2925 return !w.expr.pseudos.visible(e) 2926 }, w.expr.pseudos.visible = function (e) { 2927 return !!(e.offsetWidth || e.offsetHeight || e.getClientRects().length) 2928 }, w.ajaxSettings.xhr = function () { 2929 try { 2930 return new e.XMLHttpRequest 2931 } catch (e) { 2932 } 2933 }; 2934 var Vt = { 0: 200, 1223: 204 }, Gt = w.ajaxSettings.xhr(); 2935 h.cors = !!Gt && "withCredentials" in Gt, h.ajax = Gt = !!Gt, w.ajaxTransport(function (t) { 2936 var n, r; 2937 if (h.cors || Gt && !t.crossDomain) 2938 return { 2939 send: function (i, o) { 2940 var a, s = t.xhr(); 2941 if (s.open(t.type, t.url, t.async, t.username, t.password), t.xhrFields) 2942 for (a in t.xhrFields) 2943 s[a] = t.xhrFields[a]; 2944 t.mimeType && s.overrideMimeType && s.overrideMimeType(t.mimeType), t.crossDomain || i["X-Requested-With"] || (i["X-Requested-With"] = "XMLHttpRequest"); 2945 for (a in i) 2946 s.setRequestHeader(a, i[a]); 2947 n = function (e) { 2948 return function () { 2949 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())) 2950 } 2951 }, s.onload = n(), r = s.onerror = s.ontimeout = n("error"), void 0 !== s.onabort ? s.onabort = r : s.onreadystatechange = function () { 2952 4 === s.readyState && e.setTimeout(function () { 2953 n && r() 2954 }) 2955 }, n = n("abort"); 2956 try { 2957 s.send(t.hasContent && t.data || null) 2958 } catch (e) { 2959 if (n) 2960 throw e 2961 } 2962 }, abort: function () { 2963 n && n() 2964 } 2965 } 2966 }), w.ajaxPrefilter(function (e) { 2967 e.crossDomain && (e.contents.script = !1) 2968 }), w.ajaxSetup({ 2969 accepts: { script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript" }, contents: { script: /\b(?:java|ecma)script\b/ }, converters: { 2970 "text script": function (e) { 2971 return w.globalEval(e), e 2972 } 2973 } 2974 }), w.ajaxPrefilter("script", function (e) { 2975 void 0 === e.cache && (e.cache = !1), e.crossDomain && (e.type = "GET") 2976 }), w.ajaxTransport("script", function (e) { 2977 if (e.crossDomain) { 2978 var t, n; 2979 return { 2980 send: function (i, o) { 2981 t = w("<script>").prop({ charset: e.scriptCharset, src: e.url }).on("load error", n = function (e) { 2982 t.remove(), n = null, e && o("error" === e.type ? 404 : 200, e.type) 2983 }), r.head.appendChild(t[0]) 2984 }, abort: function () { 2985 n && n() 2986 } 2987 } 2988 } 2989 }); 2990 var Yt = [], Qt = /(=)\?(?=&|$)|\?\?/; 2991 w.ajaxSetup({ 2992 jsonp: "callback", jsonpCallback: function () { 2993 var e = Yt.pop() || w.expando + "_" + Et++; 2994 return this[e] = !0, e 2995 } 2996 }), w.ajaxPrefilter("json jsonp", function (t, n, r) { 2997 var i, o, a, s = !1 !== t.jsonp && (Qt.test(t.url) ? "url" : "string" == typeof t.data && 0 === (t.contentType || "").indexOf("application/x-www-form-urlencoded") && Qt.test(t.data) && "data"); 2998 if (s || "jsonp" === t.dataTypes[0]) 2999 return i = t.jsonpCallback = g(t.jsonpCallback) ? t.jsonpCallback() : t.jsonpCallback, s ? t[s] = t[s].replace(Qt, "$1" + i) : !1 !== t.jsonp && (t.url += (kt.test(t.url) ? "&" : "?") + t.jsonp + "=" + i), t.converters["script json"] = function () { 3000 return a || w.error(i + " was not called"), a[0] 3001 }, t.dataTypes[0] = "json", o = e[i], e[i] = function () { 3002 a = arguments 3003 }, r.always(function () { 3004 void 0 === o ? w(e).removeProp(i) : e[i] = o, t[i] && (t.jsonpCallback = n.jsonpCallback, Yt.push(i)), a && g(o) && o(a[0]), a = o = void 0 3005 }), "script" 3006 }), h.createHTMLDocument = function () { 3007 var e = r.implementation.createHTMLDocument("").body; 3008 return e.innerHTML = "<form></form><form></form>", 2 === e.childNodes.length 3009 }(), w.parseHTML = function (e, t, n) { 3010 if ("string" != typeof e) 3011 return []; 3012 "boolean" == typeof t && (n = t, t = !1); 3013 var i, o, a; 3014 return t || (h.createHTMLDocument ? ((i = (t = r.implementation.createHTMLDocument("")).createElement("base")).href = r.location.href, t.head.appendChild(i)) : t = r), o = A.exec(e), a = !n && [], o ? [t.createElement(o[1])] : (o = xe([e], t, a), a && a.length && w(a).remove(), w.merge([], o.childNodes)) 3015 }, w.fn.load = function (e, t, n) { 3016 var r, i, o, a = this, s = e.indexOf(" "); 3017 return s > -1 && (r = vt(e.slice(s)), e = e.slice(0, s)), g(t) ? (n = t, t = void 0) : t && "object" == typeof t && (i = "POST"), a.length > 0 && w.ajax({ url: e, type: i || "GET", dataType: "html", data: t }).done(function (e) { 3018 o = arguments, a.html(r ? w("<div>").append(w.parseHTML(e)).find(r) : e) 3019 }).always(n && function (e, t) { 3020 a.each(function () { 3021 n.apply(this, o || [e.responseText, t, e]) 3022 }) 3023 }), this 3024 }, w.each(["ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], function (e, t) { 3025 w.fn[t] = function (e) { 3026 return this.on(t, e) 3027 } 3028 }), w.expr.pseudos.animated = function (e) { 3029 return w.grep(w.timers, function (t) { 3030 return e === t.elem 3031 }).length 3032 }, w.offset = { 3033 setOffset: function (e, t, n) { 3034 var r, i, o, a, s, u, l, c = w.css(e, "position"), f = w(e), p = {}; 3035 "static" === c && (e.style.position = "relative"), s = f.offset(), o = w.css(e, "top"), u = w.css(e, "left"), (l = ("absolute" === c || "fixed" === c) && (o + u).indexOf("auto") > -1) ? (a = (r = f.position()).top, i = r.left) : (a = parseFloat(o) || 0, i = parseFloat(u) || 0), g(t) && (t = t.call(e, n, w.extend({}, s))), null != t.top && (p.top = t.top - s.top + a), null != t.left && (p.left = t.left - s.left + i), "using" in t ? t.using.call(e, p) : f.css(p) 3036 } 3037 }, w.fn.extend({ 3038 offset: function (e) { 3039 if (arguments.length) 3040 return void 0 === e ? this : this.each(function (t) { 3041 w.offset.setOffset(this, e, t) 3042 }); 3043 var t, n, r = this[0]; 3044 if (r) 3045 return r.getClientRects().length ? (t = r.getBoundingClientRect(), n = r.ownerDocument.defaultView, { top: t.top + n.pageYOffset, left: t.left + n.pageXOffset }) : { top: 0, left: 0 } 3046 }, position: function () { 3047 if (this[0]) { 3048 var e, t, n, r = this[0], i = { top: 0, left: 0 }; 3049 if ("fixed" === w.css(r, "position")) 3050 t = r.getBoundingClientRect(); 3051 else { 3052 t = this.offset(), n = r.ownerDocument, e = r.offsetParent || n.documentElement; 3053 while (e && (e === n.body || e === n.documentElement) && "static" === w.css(e, "position")) 3054 e = e.parentNode; 3055 e && e !== r && 1 === e.nodeType && ((i = w(e).offset()).top += w.css(e, "borderTopWidth", !0), i.left += w.css(e, "borderLeftWidth", !0)) 3056 } 3057 return { top: t.top - i.top - w.css(r, "marginTop", !0), left: t.left - i.left - w.css(r, "marginLeft", !0) } 3058 } 3059 }, offsetParent: function () { 3060 return this.map(function () { 3061 var e = this.offsetParent; 3062 while (e && "static" === w.css(e, "position")) 3063 e = e.offsetParent; 3064 return e || be 3065 }) 3066 } 3067 }), w.each({ scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function (e, t) { 3068 var n = "pageYOffset" === t; 3069 w.fn[e] = function (r) { 3070 return z(this, function (e, r, i) { 3071 var o;
3072 if (y(e) ? o = e : 9 === e.nodeType && (o = e.defaultView), void 0 === i) 3073 return o ? o[t] : e[r]; 3074 o ? o.scrollTo(n ? o.pageXOffset : i, n ? i : o.pageYOffset) : e[r] = i 3075 }, e, r, arguments.length) 3076 } 3077 }), w.each(["top", "left"], function (e, t) { 3078 w.cssHooks[t] = _e(h.pixelPosition, function (e, n) { 3079 if (n) 3080 return n = Fe(e, t), We.test(n) ? w(e).position()[t] + "px" : n 3081 }) 3082 }), w.each({ Height: "height", Width: "width" }, function (e, t) { 3083 w.each({ padding: "inner" + e, content: t, "": "outer" + e }, function (n, r) { 3084 w.fn[r] = function (i, o) { 3085 var a = arguments.length && (n || "boolean" != typeof i), s = n || (!0 === i || !0 === o ? "margin" : "border"); 3086 return z(this, function (t, n, i) { 3087 var o; 3088 return y(t) ? 0 === r.indexOf("outer") ? t["inner" + e] : t.document.documentElement["client" + e] : 9 === t.nodeType ? (o = t.documentElement, Math.max(t.body["scroll" + e], o["scroll" + e], t.body["offset" + e], o["offset" + e], o["client" + e])) : void 0 === i ? w.css(t, n, s) : w.style(t, n, i, s) 3089 }, t, a ? i : void 0, a) 3090 } 3091 }) 3092 }), w.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "), function (e, t) { 3093 w.fn[t] = function (e, n) { 3094 return arguments.length > 0 ? this.on(t, null, e, n) : this.trigger(t) 3095 } 3096 }), w.fn.extend({ 3097 hover: function (e, t) { 3098 return this.mouseenter(e).mouseleave(t || e) 3099 } 3100 }), w.fn.extend({ 3101 bind: function (e, t, n) { 3102 return this.on(e, null, t, n) 3103 }, unbind: function (e, t) { 3104 return this.off(e, null, t) 3105 }, delegate: function (e, t, n, r) { 3106 return this.on(t, e, n, r) 3107 }, undelegate: function (e, t, n) { 3108 return 1 === arguments.length ? this.off(e, "**") : this.off(t, e || "**", n) 3109 } 3110 }), w.proxy = function (e, t) { 3111 var n, r, i; 3112 if ("string" == typeof t && (n = e[t], t = e, e = n), g(e)) 3113 return r = o.call(arguments, 2), i = function () { 3114 return e.apply(t || this, r.concat(o.call(arguments))) 3115 }, i.guid = e.guid = e.guid || w.guid++, i 3116 }, w.holdReady = function (e) { 3117 e ? w.readyWait++ : w.ready(!0) 3118 }, w.isArray = Array.isArray, w.parseJSON = JSON.parse, w.nodeName = N, w.isFunction = g, w.isWindow = y, w.camelCase = G, w.type = x, w.now = Date.now, w.isNumeric = function (e) { 3119 var t = w.type(e); 3120 return ("number" === t || "string" === t) && !isNaN(e - parseFloat(e)) 3121 }, "function" == typeof define && define.amd && define("jquery", [], function () { 3122 return w 3123 }); 3124 var Jt = e.jQuery, Kt = e.$; 3125 return w.noConflict = function (t) { 3126 return e.$ === w && (e.$ = Kt), t && e.jQuery === w && (e.jQuery = Jt), w 3127 }, t || (e.jQuery = e.$ = w), w 3128}); 3129/*! 3130 * Bootstrap v4.3.1 (https://getbootstrap.com/) 3131 * Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) 3132 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 3133 */ 3134!function (t, e) { 3135 "object" == typeof exports && "undefined" != typeof module ? e(exports, require("jquery"), require("popper.js")) : "function" == typeof define && define.amd ? define(["exports", "jquery", "popper.js"], e) : e((t = t || self).bootstrap = {}, t.jQuery, t.Popper) 3136}(this, function (t, g, u) { 3137 "use strict"; 3138 function i(t, e) { 3139 for (var n = 0; n < e.length; n++) { 3140 var i = e[n]; 3141 i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(t, i.key, i) 3142 } 3143 } 3144 function s(t, e, n) { 3145 return e && i(t.prototype, e), n && i(t, n), t 3146 } 3147 function l(o) { 3148 for (var t = 1; t < arguments.length; t++) { 3149 var r = null != arguments[t] ? arguments[t] : {}, e = Object.keys(r); 3150 "function" == typeof Object.getOwnPropertySymbols && (e = e.concat(Object.getOwnPropertySymbols(r).filter(function (t) { 3151 return Object.getOwnPropertyDescriptor(r, t).enumerable 3152 }))), e.forEach(function (t) { 3153 var e, n, i; 3154 e = o, i = r[n = t], n in e ? Object.defineProperty(e, n, { value: i, enumerable: !0, configurable: !0, writable: !0 }) : e[n] = i 3155 }) 3156 } 3157 return o 3158 } 3159 g = g && g.hasOwnProperty("default") ? g.default : g, u = u && u.hasOwnProperty("default") ? u.default : u; 3160 var e = "transitionend"; 3161 function n(t) { 3162 var e = this, n = !1; 3163 return g(this).one(_.TRANSITION_END, function () { 3164 n = !0 3165 }), setTimeout(function () { 3166 n || _.triggerTransitionEnd(e) 3167 }, t), this 3168 } 3169 var _ = { 3170 TRANSITION_END: "bsTransitionEnd", getUID: function (t) { 3171 for (; t += ~~(1e6 * Math.random()), document.getElementById(t);) 3172 ; 3173 return t 3174 }, getSelectorFromElement: function (t) { 3175 var e = t.getAttribute("data-target"); 3176 if (!e || "#" === e) { 3177 var n = t.getAttribute("href"); 3178 e = n && "#" !== n ? n.trim() : "" 3179 }
3180 try { 3181 return document.querySelector(e) ? e : null 3182 } catch (t) { 3183 return null 3184 } 3185 }, getTransitionDurationFromElement: function (t) { 3186 if (!t) 3187 return 0; 3188 var e = g(t).css("transition-duration"), n = g(t).css("transition-delay"), i = parseFloat(e), o = parseFloat(n); 3189 return i || o ? (e = e.split(",")[0], n = n.split(",")[0], 1e3 * (parseFloat(e) + parseFloat(n))) : 0 3190 }, reflow: function (t) { 3191 return t.offsetHeight 3192 }, triggerTransitionEnd: function (t) { 3193 g(t).trigger(e) 3194 }, supportsTransitionEnd: function () { 3195 return Boolean(e) 3196 }, isElement: function (t) { 3197 return (t[0] || t).nodeType 3198 }, typeCheckConfig: function (t, e, n) { 3199 for (var i in n) 3200 if (Object.prototype.hasOwnProperty.call(n, i)) { 3201 var o = n[i], r = e[i], s = r && _.isElement(r) ? "element" : (a = r, {}.toString.call(a).match(/\s([a-z]+)/i)[1].toLowerCase()); 3202 if (!new RegExp(o).test(s)) 3203 throw new Error(t.toUpperCase() + ': Option "' + i + '" provided type "' + s + '" but expected type "' + o + '".') 3204 } 3205 var a 3206 }, findShadowRoot: function (t) { 3207 if (!document.documentElement.attachShadow) 3208 return null; 3209 if ("function" != typeof t.getRootNode) 3210 return t instanceof ShadowRoot ? t : t.parentNode ? _.findShadowRoot(t.parentNode) : null; 3211 var e = t.getRootNode(); 3212 return e instanceof ShadowRoot ? e : null 3213 } 3214 }; 3215 g.fn.emulateTransitionEnd = n, g.event.special[_.TRANSITION_END] = { 3216 bindType: e, delegateType: e, handle: function (t) { 3217 if (g(t.target).is(this)) 3218 return t.handleObj.handler.apply(this, arguments) 3219 } 3220 }; 3221 var o = "alert", r = "bs.alert", a = "." + r, c = g.fn[o], h = { CLOSE: "close" + a, CLOSED: "closed" + a, CLICK_DATA_API: "click" + a + ".data-api" }, f = "alert", d = "fade", m = "show", p = function () { 3222 function i(t) { 3223 this._element = t 3224 } 3225 var t = i.prototype; 3226 return t.close = function (t) { 3227 var e = this._element; 3228 t && (e = this._getRootElement(t)), this._triggerCloseEvent(e).isDefaultPrevented() || this._removeElement(e) 3229 }, t.dispose = function () { 3230 g.removeData(this._element, r), this._element = null 3231 }, t._getRootElement = function (t) { 3232 var e = _.getSelectorFromElement(t), n = !1; 3233 return e && (n = document.querySelector(e)), n || (n = g(t).closest("." + f)[0]), n 3234 }, t._triggerCloseEvent = function (t) { 3235 var e = g.Event(h.CLOSE); 3236 return g(t).trigger(e), e 3237 }, t._removeElement = function (e) { 3238 var n = this; 3239 if (g(e).removeClass(m), g(e).hasClass(d)) { 3240 var t = _.getTransitionDurationFromElement(e); 3241 g(e).one(_.TRANSITION_END, function (t) { 3242 return n._destroyElement(e, t) 3243 }).emulateTransitionEnd(t) 3244 } else 3245 this._destroyElement(e) 3246 }, t._destroyElement = function (t) { 3247 g(t).detach().trigger(h.CLOSED).remove() 3248 }, i._jQueryInterface = function (n) { 3249 return this.each(function () { 3250 var t = g(this), e = t.data(r); 3251 e || (e = new i(this), t.data(r, e)), "close" === n && e[n](this) 3252 }) 3253 }, i._handleDismiss = function (e) { 3254 return function (t) { 3255 t && t.preventDefault(), e.close(this) 3256 } 3257 }, s(i, null, [{ 3258 key: "VERSION", get: function () { 3259 return "4.3.1" 3260 } 3261 }]), i 3262 }(); 3263 g(document).on(h.CLICK_DATA_API, '[data-dismiss="alert"]', p._handleDismiss(new p)), g.fn[o] = p._jQueryInterface, g.fn[o].Constructor = p, g.fn[o].noConflict = function () { 3264 return g.fn[o] = c, p._jQueryInterface 3265 }; 3266 var v = "button", y = "bs.button", E = "." + y, C = ".data-api", T = g.fn[v], S = "active", b = "btn", I = "focus", D = '[data-toggle^="button"]', w = '[data-toggle="buttons"]', A = 'input:not([type="hidden"])', N = ".active", O = ".btn", k = { CLICK_DATA_API: "click" + E + C, FOCUS_BLUR_DATA_API: "focus" + E + C + " blur" + E + C }, P = function () { 3267 function n(t) { 3268 this._element = t 3269 } 3270 var t = n.prototype; 3271 return t.toggle = function () { 3272 var t = !0, e = !0, n = g(this._element).closest(w)[0]; 3273 if (n) { 3274 var i = this._element.querySelector(A); 3275 if (i) { 3276 if ("radio" === i.type) 3277 if (i.checked && this._element.classList.contains(S)) 3278 t = !1; 3279 else { 3280 var o = n.querySelector(N); 3281 o && g(o).removeClass(S) 3282 } 3283 if (t) { 3284 if (i.hasAttribute("disabled") || n.hasAttribute("disabled") || i.classList.contains("disabled") || n.classList.contains("disabled")) 3285 return; 3286 i.checked = !this._element.classList.contains(S), g(i).trigger("change") 3287 } 3288 i.focus(), e = !1 3289 } 3290 } 3291 e && this._element.setAttribute("aria-pressed", !this._element.classList.contains(S)), t && g(this._element).toggleClass(S) 3292 }
3292, t.dispose = function () { 3293 g.removeData(this._element, y), this._element = null 3294 }, n._jQueryInterface = function (e) { 3295 return this.each(function () { 3296 var t = g(this).data(y); 3297 t || (t = new n(this), g(this).data(y, t)), "toggle" === e && t[e]() 3298 }) 3299 }, s(n, null, [{ 3300 key: "VERSION", get: function () { 3301 return "4.3.1" 3302 } 3303 }]), n 3304 }(); 3305 g(document).on(k.CLICK_DATA_API, D, function (t) { 3306 t.preventDefault(); 3307 var e = t.target; 3308 g(e).hasClass(b) || (e = g(e).closest(O)), P._jQueryInterface.call(g(e), "toggle") 3309 }).on(k.FOCUS_BLUR_DATA_API, D, function (t) { 3310 var e = g(t.target).closest(O)[0]; 3311 g(e).toggleClass(I, /^focus(in)?$/.test(t.type)) 3312 }), g.fn[v] = P._jQueryInterface, g.fn[v].Constructor = P, g.fn[v].noConflict = function () { 3313 return g.fn[v] = T, P._jQueryInterface 3314 }; 3315 var L = "carousel", j = "bs.carousel", H = "." + j, R = ".data-api", x = g.fn[L], F = { interval: 5e3, keyboard: !0, slide: !1, pause: "hover", wrap: !0, touch: !0 }, U = { interval: "(number|boolean)", keyboard: "boolean", slide: "(boolean|string)", pause: "(string|boolean)", wrap: "boolean", touch: "boolean" }, W = "next", q = "prev", M = "left", K = "right", Q = { SLIDE: "slide" + H, SLID: "slid" + H, KEYDOWN: "keydown" + H, MOUSEENTER: "mouseenter" + H, MOUSELEAVE: "mouseleave" + H, TOUCHSTART: "touchstart" + H, TOUCHMOVE: "touchmove" + H, TOUCHEND: "touchend" + H, POINTERDOWN: "pointerdown" + H, POINTERUP: "pointerup" + H, DRAG_START: "dragstart" + H, LOAD_DATA_API: "load" + H + R, CLICK_DATA_API: "click" + H + R }, B = "carousel", V = "active", Y = "slide", z = "carousel-item-right", X = "carousel-item-left", $ = "carousel-item-next", G = "carousel-item-prev", J = "pointer-event", Z = ".active", tt = ".active.carousel-item", et = ".carousel-item", nt = ".carousel-item img", it = ".carousel-item-next, .carousel-item-prev", ot = ".carousel-indicators", rt = "[data-slide], [data-slide-to]", st = '[data-ride="carousel"]', at = { TOUCH: "touch", PEN: "pen" }, lt = function () { 3316 function r(t, e) { 3317 this._items = null, this._interval = null, this._activeElement = null, this._isPaused = !1, this._isSliding = !1, this.touchTimeout = null, this.touchStartX = 0, this.touchDeltaX = 0, this._config = this._getConfig(e), this._element = t, this._indicatorsElement = this._element.querySelector(ot), this._touchSupported = "ontouchstart" in document.documentElement || 0 < navigator.maxTouchPoints, this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent), this._addEventListeners() 3318 } 3319 var t = r.prototype; 3320 return t.next = function () { 3321 this._isSliding || this._slide(W) 3322 }, t.nextWhenVisible = function () { 3323 !document.hidden && g(this._element).is(":visible") && "hidden" !== g(this._element).css("visibility") && this.next() 3324 }, t.prev = function () { 3325 this._isSliding || this._slide(q) 3326 }, t.pause = function (t) { 3327 t || (this._isPaused = !0), this._element.querySelector(it) && (_.triggerTransitionEnd(this._element), this.cycle(!0)), clearInterval(this._interval), this._interval = null 3328 }, t.cycle = function (t) { 3329 t || (this._isPaused = !1), this._interval && (clearInterval(this._interval), this._interval = null), this._config.interval && !this._isPaused && (this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval)) 3330 }, t.to = function (t) { 3331 var e = this; 3332 this._activeElement = this._element.querySelector(tt); 3333 var n = this._getItemIndex(this._activeElement); 3334 if (!(t > this._items.length - 1 || t < 0)) 3335 if (this._isSliding) 3336 g(this._element).one(Q.SLID, function () { 3337 return e.to(t) 3338 }); 3339 else { 3340 if (n === t) 3341 return this.pause(), void this.cycle(); 3342 var i = n < t ? W : q; 3343 this._slide(i, this._items[t]) 3344 } 3345 }, t.dispose = function () { 3346 g(this._element).off(H), g.removeData(this._element, j), this._items = null, this._config = null, this._element = null, this._interval = null, this._isPaused = null, this._isSliding = null, this._activeElement = null, this._indicatorsElement = null 3347 }, t._getConfig = function (t) { 3348 return t = l({}, F, t), _.typeCheckConfig(L, t, U), t 3349 }, t._handleSwipe = function () { 3350 var t = Math.abs(this.touchDeltaX); 3351 if (!(t <= 40)) { 3352 var e = t / this.touchDeltaX; 3353 0 < e && this.prev(), e < 0 && this.next() 3354 } 3355 }, t._addEventListeners = function () { 3356 var e = this; 3357 this._config.keyboard && g(this._element).on(Q.KEYDOWN, function (t) { 3358 return e._keydown(t) 3359 }), "hover" === this._config.pause && g(this._element).on(Q.MOUSEENTER, function (t) { 3360 return e.pause(t) 3361 }).on(Q.MOUSELEAVE, function (t) { 3362 return e.cycle(t) 3363 }), this._config.touch && this._addTouchEventListeners() 3364 }, t._addTouchEventListeners = function () { 3365 var n = this; 3366 if (this._touchSupported) { 3367 var e = function (t) { 3368 n._pointerEvent && at[t.originalEvent.pointerType.toUpperCase()] ? n.touchStartX = t.originalEvent.clientX : n._pointerEvent || (n.touchStartX = t.originalEvent.touches[0].clientX) 3369 }, i = function (t) { 3370 n._pointerEvent && at[t.originalEvent.pointerType.toUpperCase()] && (n.touchDeltaX = t.originalEvent.clientX - n.touchStartX), n._handleSwipe(), "hover" === n._config.pause && (n.pause(), n.touchTimeout && clearTimeout(n.touchTimeout), n.touchTimeout = setTimeout(function (t) { 3371 return n.cycle(t) 3372 }, 500 + n._config.interval)) 3373 }; 3374 g(this._element.querySelectorAll(nt)).on(Q.DRAG_START, function (t) { 3375 return t.preventDefault() 3376 }), this._pointerEvent ? (g(this._element).on(Q.POINTERDOWN, function (t) { 3377 return e(t) 3378 }), g(this._element).on(Q.POINTERUP, function (t) { 3379 return i(t) 3380 }), this._element.classList.add(J)) : (g(this._element).on(Q.TOUCHSTART, function (t) { 3381 return e(t) 3382 }), g(this._element).on(Q.TOUCHMOVE, function (t) { 3383 var e; 3384 (e = t).originalEvent.touches && 1 < e.originalEvent.touches.length ? n.touchDeltaX = 0 : n.touchDeltaX = e.originalEvent.touches[0].clientX - n.touchStartX 3385 }), g(this._element).on(Q.TOUCHEND, function (t) { 3386 return i(t) 3387 })) 3388 } 3389 }, t._keydown = function (t) { 3390 if (!/input|textarea/i.test(t.target.tagName)) 3391 switch (t.which) { 3392 case 37: 3393 t.preventDefault(), this.prev(); 3394 break; 3395 case 39: 3396 t.preventDefault(), this.next() 3397 } 3398 }, t._getItemIndex = function (t) { 3399 return this._items = t && t.parentNode ? [].slice.call(t.parentNode.querySelectorAll(et)) : [], this._items.indexOf(t) 3400 }, t._getItemByDirection = function (t, e) { 3401 var n = t === W, i = t === q, o = this._getItemIndex(e), r = this._items.length - 1; 3402 if ((i && 0 === o || n && o === r) && !this._config.wrap) 3403 return e; 3404 var s = (o + (t === q ? -1 : 1)) % this._items.length; 3405 return -1 === s ? this._items[this._items.length - 1] : this._items[s] 3406 }, t._triggerSlideEvent = function (t, e) { 3407 var n = this._getItemIndex(t), i = this._getItemIndex(this._element.querySelector(tt)), o = g.Event(Q.SLIDE, { relatedTarget: t, direction: e, from: i, to: n }); 3408 return g(this._element).trigger(o), o 3409 }, t._setActiveIndicatorElement = function (t) { 3410 if (this._indicatorsElement) { 3411 var e = [].slice.call(this._indicatorsElement.querySelectorAll(Z)); 3412 g(e).removeClass(V); 3413 var n = this._indicatorsElement.children[this._getItemIndex(t)]; 3414 n && g(n).addClass(V) 3415 } 3416 }, t._slide = function (t, e) { 3417 var n, i, o, r = this, s = this._element.querySelector(tt), a = this._getItemIndex(s), l = e || s && this._getItemByDirection(t, s), c = this._getItemIndex(l), h = Boolean(this._interval); 3418 if (o = t === W ? (n = X, i = $, M) : (n = z, i = G, K), l && g(l).hasClass(V)) 3419 this._isSliding = !1; 3420 else if (!this._triggerSlideEvent(l, o).isDefaultPrevented() && s && l) { 3421 this._isSliding = !0, h && this.pause(), this._setActiveIndicatorElement(l); 3422 var u = g.Event(Q.SLID, { relatedTarget: l, direction: o, from: a, to: c }); 3423 if (g(this._element).hasClass(Y)) { 3424 g(l).addClass(i), _.reflow(l), g(s).addClass(n), g(l).addClass(n); 3425 var f = parseInt(l.getAttribute("data-interval"), 10); 3426 this._config.interval = f ? (this._config.defaultInterval = this._config.defaultInterval || this._config.interval, f) : this._config.defaultInterval || this._config.interval; 3427 var d = _.getTransitionDurationFromElement(s); 3428 g(s).one(_.TRANSITION_END, function () { 3429 g(l).removeClass(n + " " + i).addClass(V), g(s).removeClass(V + " " + i + " " + n
3429), r._isSliding = !1, setTimeout(function () { 3430 return g(r._element).trigger(u) 3431 }, 0) 3432 }).emulateTransitionEnd(d) 3433 } else 3434 g(s).removeClass(V), g(l).addClass(V), this._isSliding = !1, g(this._element).trigger(u); 3435 h && this.cycle() 3436 } 3437 }, r._jQueryInterface = function (i) { 3438 return this.each(function () { 3439 var t = g(this).data(j), e = l({}, F, g(this).data()); 3440 "object" == typeof i && (e = l({}, e, i)); 3441 var n = "string" == typeof i ? i : e.slide; 3442 if (t || (t = new r(this, e), g(this).data(j, t)), "number" == typeof i) 3443 t.to(i); 3444 else if ("string" == typeof n) { 3445 if ("undefined" == typeof t[n]) 3446 throw new TypeError('No method named "' + n + '"'); 3447 t[n]() 3448 } else 3449 e.interval && e.ride && (t.pause(), t.cycle()) 3450 }) 3451 }, r._dataApiClickHandler = function (t) { 3452 var e = _.getSelectorFromElement(this); 3453 if (e) { 3454 var n = g(e)[0]; 3455 if (n && g(n).hasClass(B)) { 3456 var i = l({}, g(n).data(), g(this).data()), o = this.getAttribute("data-slide-to"); 3457 o && (i.interval = !1), r._jQueryInterface.call(g(n), i), o && g(n).data(j).to(o), t.preventDefault() 3458 } 3459 } 3460 }, s(r, null, [{ 3461 key: "VERSION", get: function () { 3462 return "4.3.1" 3463 } 3464 }, { 3465 key: "Default", get: function () { 3466 return F 3467 } 3468 }]), r 3469 }(); 3470 g(document).on(Q.CLICK_DATA_API, rt, lt._dataApiClickHandler), g(window).on(Q.LOAD_DATA_API, function () { 3471 for (var t = [].slice.call(document.querySelectorAll(st)), e = 0, n = t.length; e < n; e++) { 3472 var i = g(t[e]); 3473 lt._jQueryInterface.call(i, i.data()) 3474 } 3475 }), g.fn[L] = lt._jQueryInterface, g.fn[L].Constructor = lt, g.fn[L].noConflict = function () { 3476 return g.fn[L] = x, lt._jQueryInterface 3477 }; 3478 var ct = "collapse", ht = "bs.collapse", ut = "." + ht, ft = g.fn[ct], dt = { toggle: !0, parent: "" }, gt = { toggle: "boolean", parent: "(string|element)" }, _t = { SHOW: "show" + ut, SHOWN: "shown" + ut, HIDE: "hide" + ut, HIDDEN: "hidden" + ut, CLICK_DATA_API: "click" + ut + ".data-api" }, mt = "show", pt = "collapse", vt = "collapsing", yt = "collapsed", Et = "width", Ct = "height", Tt = ".show, .collapsing", St = '[data-toggle="collapse"]', bt = function () { 3479 function a(e, t) { 3480 this._isTransitioning = !1, this._element = e, this._config = this._getConfig(t), this._triggerArray = [].slice.call(document.querySelectorAll('[data-toggle="collapse"][href="#' + e.id + '"],[data-toggle="collapse"][data-target="#' + e.id + '"]')); 3481 for (var n = [].slice.call(document.querySelectorAll(St)), i = 0, o = n.length; i < o; i++) { 3482 var r = n[i], s = _.getSelectorFromElement(r), a = [].slice.call(document.querySelectorAll(s)).filter(function (t) { 3483 return t === e 3484 }); 3485 null !== s && 0 < a.length && (this._selector = s, this._triggerArray.push(r)) 3486 } 3487 this._parent = this._config.parent ? this._getParent() : null, this._config.parent || this._addAriaAndCollapsedClass(this._element, this._triggerArray), this._config.toggle && this.toggle() 3488 } 3489 var t = a.prototype; 3490 return t.toggle = function () { 3491 g(this._element).hasClass(mt) ? this.hide() : this.show() 3492 }, t.show = function () { 3493 var t, e, n = this; 3494 if (!this._isTransitioning && !g(this._element).hasClass(mt) && (this._parent && 0 === (t = [].slice.call(this._parent.querySelectorAll(Tt)).filter(function (t) { 3495 return "string" == typeof n._config.parent ? t.getAttribute("data-parent") === n._config.parent : t.classList.contains(pt) 3496 })).length && (t = null), !(t && (e = g(t).not(this._selector).data(ht)) && e._isTransitioning))) { 3497 var i = g.Event(_t.SHOW); 3498 if (g(this._element).trigger(i), !i.isDefaultPrevented()) { 3499 t && (a._jQueryInterface.call(g(t).not(this._selector), "hide"), e || g(t).data(ht, null)); 3500 var o = this._getDimension(); 3501 g(this._element).removeClass(pt).addClass(vt), this._element.style[o] = 0, this._triggerArray.length && g(this._triggerArray).removeClass(yt).attr("aria-expanded", !0), this.setTransitioning(!0); 3502 var r = "scroll" + (o[0].toUpperCase() + o.slice(1)), s = _.getTransitionDurationFromElement(this._element); 3503 g(this._element).one(_.TRANSITION_END, function () { 3504 g(n._element).removeClass(vt).addClass(pt).addClass(mt), n._element.style[o] = "", n.setTransitioning(!1), g(n._element).trigger(_t.SHOWN) 3505 }).emulateTransitionEnd(s), this._element.style[o] = this._element[r] + "px" 3506 } 3507 } 3508 }, t.hide = function () { 3509 var t = this; 3510 if (!this._isTransitioning && g(this._element).hasClass(mt)) { 3511 var e = g.Event(_t.HIDE); 3512 if (g(this._element).trigger(e), !e.isDefaultPrevented()) { 3513 var n = this._getDimension(); 3514 this._element.style[n] = this._element.getBoundingClientRect()[n] + "px", _.reflow(this._element), g(this._element).addClass(vt).removeClass(pt).removeClass(mt); 3515 var i = this._triggerArray.length; 3516 if (0 < i) 3517 for (var o = 0; o < i; o++) { 3518 var r = this._triggerArray[o], s = _.getSelectorFromElement(r); 3519 if (null !== s) 3520 g([].slice.call(document.querySelectorAll(s))).hasClass(mt) || g(r).addClass(yt).attr("aria-expanded", !1) 3521 } 3522 this.setTransitioning(!0); 3523 this._element.style[n] = ""; 3524 var a = _.getTransitionDurationFromElement(this._element); 3525 g(this._element).one(_.TRANSITION_END, function () { 3526 t.setTransitioning(!1), g(t._element).removeClass(vt).addClass(pt).trigger(_t.HIDDEN) 3527 }).emulateTransitionEnd(a) 3528 } 3529 } 3530 }, t.setTransitioning = function (t) { 3531 this._isTransitioning = t 3532 }
3532, t.dispose = function () { 3533 g.removeData(this._element, ht), this._config = null, this._parent = null, this._element = null, this._triggerArray = null, this._isTransitioning = null 3534 }, t._getConfig = function (t) { 3535 return (t = l({}, dt, t)).toggle = Boolean(t.toggle), _.typeCheckConfig(ct, t, gt), t 3536 }, t._getDimension = function () { 3537 return g(this._element).hasClass(Et) ? Et : Ct 3538 }, t._getParent = function () { 3539 var t, n = this; 3540 _.isElement(this._config.parent) ? (t = this._config.parent, "undefined" != typeof this._config.parent.jquery && (t = this._config.parent[0])) : t = document.querySelector(this._config.parent); 3541 var e = '[data-toggle="collapse"][data-parent="' + this._config.parent + '"]', i = [].slice.call(t.querySelectorAll(e)); 3542 return g(i).each(function (t, e) { 3543 n._addAriaAndCollapsedClass(a._getTargetFromElement(e), [e]) 3544 }), t 3545 }, t._addAriaAndCollapsedClass = function (t, e) { 3546 var n = g(t).hasClass(mt); 3547 e.length && g(e).toggleClass(yt, !n).attr("aria-expanded", n) 3548 }, a._getTargetFromElement = function (t) { 3549 var e = _.getSelectorFromElement(t); 3550 return e ? document.querySelector(e) : null 3551 }, a._jQueryInterface = function (i) { 3552 return this.each(function () { 3553 var t = g(this), e = t.data(ht), n = l({}, dt, t.data(), "object" == typeof i && i ? i : {}); 3554 if (!e && n.toggle && /show|hide/.test(i) && (n.toggle = !1), e || (e = new a(this, n), t.data(ht, e)), "string" == typeof i) { 3555 if ("undefined" == typeof e[i]) 3556 throw new TypeError('No method named "' + i + '"'); 3557 e[i]() 3558 } 3559 }) 3560 }, s(a, null, [{ 3561 key: "VERSION", get: function () { 3562 return "4.3.1" 3563 } 3564 }, { 3565 key: "Default", get: function () { 3566 return dt 3567 } 3568 }]), a 3569 }(); 3570 g(document).on(_t.CLICK_DATA_API, St, function (t) { 3571 "A" === t.currentTarget.tagName && t.preventDefault(); 3572 var n = g(this), e = _.getSelectorFromElement(this), i = [].slice.call(document.querySelectorAll(e)); 3573 g(i).each(function () { 3574 var t = g(this), e = t.data(ht) ? "toggle" : n.data(); 3575 bt._jQueryInterface.call(t, e) 3576 }) 3577 }), g.fn[ct] = bt._jQueryInterface, g.fn[ct].Constructor = bt, g.fn[ct].noConflict = function () { 3578 return g.fn[ct] = ft, bt._jQueryInterface 3579 }; 3580 var It = "dropdown", Dt = "bs.dropdown", wt = "." + Dt, At = ".data-api", Nt = g.fn[It], Ot = new RegExp("38|40|27"), kt = { HIDE: "hide" + wt, HIDDEN: "hidden" + wt, SHOW: "show" + wt, SHOWN: "shown" + wt, CLICK: "click" + wt, CLICK_DATA_API: "click" + wt + At, KEYDOWN_DATA_API: "keydown" + wt + At, KEYUP_DATA_API: "keyup" + wt + At }, Pt = "disabled", Lt = "show", jt = "dropup", Ht = "dropright", Rt = "dropleft", xt = "dropdown-menu-right", Ft = "position-static", Ut = '[data-toggle="dropdown"]', Wt = ".dropdown form", qt = ".dropdown-menu", Mt = ".navbar-nav", Kt = ".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)", Qt = "top-start", Bt = "top-end", Vt = "bottom-start", Yt = "bottom-end", zt = "right-start", Xt = "left-start", $t = { offset: 0, flip: !0, boundary: "scrollParent", reference: "toggle", display: "dynamic" }, Gt = { offset: "(number|string|function)", flip: "boolean", boundary: "(string|element)", reference: "(string|element)", display: "string" }, Jt = function () { 3581 function c(t, e) { 3582 this._element = t, this._popper = null, this._config = this._getConfig(e), this._menu = this._getMenuElement(), this._inNavbar = this._detectNavbar(), this._addEventListeners() 3583 } 3584 var t = c.prototype; 3585 return t.toggle = function () { 3586 if (!this._element.disabled && !g(this._element).hasClass(Pt)) { 3587 var t = c._getParentFromElement(this._element), e = g(this._menu).hasClass(Lt); 3588 if (c._clearMenus(), !e) { 3589 var n = { relatedTarget: this._element }, i = g.Event(kt.SHOW, n); 3590 if (g(t).trigger(i), !i.isDefaultPrevented()) { 3591 if (!this._inNavbar) { 3592 if ("undefined" == typeof u) 3593 throw new TypeError("Bootstrap's dropdowns require Popper.js (https://popper.js.org/)"); 3594 var o = this._element; 3595 "parent" === this._config.reference ? o = t : _.isElement(this._config.reference) && (o = this._config.reference, "undefined" != typeof this._config.reference.jquery && (o = this._config.reference[0])), "scrollParent" !== this._config.boun
3595dary && g(t).addClass(Ft), this._popper = new u(o, this._menu, this._getPopperConfig()) 3596 } 3597 "ontouchstart" in document.documentElement && 0 === g(t).closest(Mt).length && g(document.body).children().on("mouseover", null, g.noop), this._element.focus(), this._element.setAttribute("aria-expanded", !0), g(this._menu).toggleClass(Lt), g(t).toggleClass(Lt).trigger(g.Event(kt.SHOWN, n)) 3598 } 3599 } 3600 } 3601 }, t.show = function () { 3602 if (!(this._element.disabled || g(this._element).hasClass(Pt) || g(this._menu).hasClass(Lt))) { 3603 var t = { relatedTarget: this._element }, e = g.Event(kt.SHOW, t), n = c._getParentFromElement(this._element); 3604 g(n).trigger(e), e.isDefaultPrevented() || (g(this._menu).toggleClass(Lt), g(n).toggleClass(Lt).trigger(g.Event(kt.SHOWN, t))) 3605 } 3606 }, t.hide = function () { 3607 if (!this._element.disabled && !g(this._element).hasClass(Pt) && g(this._menu).hasClass(Lt)) { 3608 var t = { relatedTarget: this._element }, e = g.Event(kt.HIDE, t), n = c._getParentFromElement(this._element); 3609 g(n).trigger(e), e.isDefaultPrevented() || (g(this._menu).toggleClass(Lt), g(n).toggleClass(Lt).trigger(g.Event(kt.HIDDEN, t))) 3610 } 3611 }, t.dispose = function () { 3612 g.removeData(this._element, Dt), g(this._element).off(wt), this._element = null, (this._menu = null) !== this._popper && (this._popper.destroy(), this._popper = null) 3613 }, t.update = function () { 3614 this._inNavbar = this._detectNavbar(), null !== this._popper && this._popper.scheduleUpdate() 3615 }, t._addEventListeners = function () { 3616 var e = this; 3617 g(this._element).on(kt.CLICK, function (t) { 3618 t.preventDefault(), t.stopPropagation(), e.toggle() 3619 }) 3620 }, t._getConfig = function (t) { 3621 return t = l({}, this.constructor.Default, g(this._element).data(), t), _.typeCheckConfig(It, t, this.constructor.DefaultType), t 3622 }, t._getMenuElement = function () { 3623 if (!this._menu) { 3624 var t = c._getParentFromElement(this._element); 3625 t && (this._menu = t.querySelector(qt)) 3626 } 3627 return this._menu 3628 }, t._getPlacement = function () { 3629 var t = g(this._element.parentNode), e = Vt; 3630 return t.hasClass(jt) ? (e = Qt, g(this._menu).hasClass(xt) && (e = Bt)) : t.hasClass(Ht) ? e = zt : t.hasClass(Rt) ? e = Xt : g(this._menu).hasClass(xt) && (e = Yt), e 3631 }, t._detectNavbar = function () { 3632 return 0 < g(this._element).closest(".navbar").length 3633 }, t._getOffset = function () { 3634 var e = this, t = {}; 3635 return "function" == typeof this._config.offset ? t.fn = function (t) { 3636 return t.offsets = l({}, t.offsets, e._config.offset(t.offsets, e._element) || {}), t 3637 } : t.offset = this._config.offset, t 3638 }, t._getPopperConfig = function () { 3639 var t = { placement: this._getPlacement(), modifiers: { offset: this._getOffset(), flip: { enabled: this._config.flip }, preventOverflow: { boundariesElement: this._config.boundary } } }; 3640 return "static" === this._config.display && (t.modifiers.applyStyle = { enabled: !1 }), t 3641 }, c._jQueryInterface = function (e) { 3642 return this.each(function () { 3643 var t = g(this).data(Dt); 3644 if (t || (t = new c(this, "object" == typeof e ? e : null), g(this).data(Dt, t)), "string" == typeof e) { 3645 if ("undefined" == typeof t[e]) 3646 throw new TypeError('No method named "' + e + '"'); 3647 t[e]() 3648 } 3649 }) 3650 }, c._clearMenus = function (t) { 3651 if (!t || 3 !== t.which && ("keyup" !== t.type || 9 === t.which)) 3652 for (var e = [].slice.call(document.querySelectorAll(Ut)), n = 0, i = e.length; n < i; n++) { 3653 var o = c._getParentFromElement(e[n]), r = g(e[n]).data(Dt), s = { relatedTarget: e[n] }; 3654 if (t && "click" === t.type && (s.clickEvent = t), r) { 3655 var a = r._menu; 3656 if (g(o).hasClass(Lt) && !(t && ("click" === t.type && /input|textarea/i.test(t.target.tagName) || "keyup" === t.type && 9 === t.which) && g.contains(o, t.target))) { 3657 var l = g.Event(kt.HIDE, s); 3658 g(o).trigger(l), l.isDefaultPrevented() || ("ontouchstart" in document.documentElement && g(document.body).children().off("mouseover", null, g.noop), e[n].setAttribute("aria-expanded", "false"), g(a).removeClass(Lt), g(o).removeClass(Lt).trigger(g.Event(kt.HIDDEN, s))) 3659 } 3660 } 3661 } 3662 }, c._getParentFromElement = function (t) { 3663 var e, n = _.getSelectorFromElement(t); 3664 return n && (e = document.querySelector(n)), e || t.parentNode 3665 }, c._dataApiKeydownHandler = function (t) { 3666 if ((/input|textarea/i.test(t.target.tagName) ? !(32 === t.which || 27 !== t.which && (40 !== t.which && 38 !== t.which || g(t.target).closest(qt).length)) : Ot.test(t.which)) && (t.preventDefault(), t.stopPropagation(), !this.disabled && !g(this).hasClass(Pt))) { 3667 var e = c._getParentFromElement(this), n = g(e).hasClass(Lt); 3668 if (n && (!n || 27 !== t.which && 32 !== t.which)) { 3669 var i = [].slice.call(e.querySelectorAll(Kt)); 3670 if (0 !== i.length) { 3671 var o = i.indexOf(t.target); 3672 38 === t.which && 0 < o && o--, 40 === t.which && o < i.length - 1 && o++, o < 0 && (o = 0), i[o].focus() 3673 } 3674 } else { 3675 if (27 === t.which) { 3676 var r = e.querySelector(Ut); 3677 g(r).trigger("focus") 3678 } 3679 g(this).trigger("click") 3680 } 3681 } 3682 }, s(c, null, [{ 3683 key: "VERSION", get: function () { 3684 return "4.3.1" 3685 } 3686 }, { 3687 key: "Default", get: function () { 3688 return $t 3689 } 3690 }, { 3691 key: "DefaultType", get: function () { 3692 return Gt 3693 } 3694 }]), c 3695 }(); 3696 g(document).on(kt.KEYDOWN_DATA_API, Ut, Jt._dataApiKeydownHandler).on(kt.KEYDOWN_DATA_API, qt, Jt._dataApiKeydownHandler).on(kt.CLICK_DATA_API + " " + kt.KEYUP_DATA_API, Jt._clearMenus).on(kt.CLICK_DATA_API, Ut, function (t) { 3697 t.preventDefault(), t.stopPropagation(), Jt._jQueryInterface.call(g(this), "toggle") 3698 }).on(kt.CLICK_DATA_API, Wt, function (t) { 3699 t.stopPropagation() 3700 }), g.fn[It] = Jt._jQueryInterface, g.fn[It].Constructor = Jt, g.fn[It].noConflict = function () { 3701 return g.fn[It] = Nt, Jt._jQueryInterface 3702 }; 3703 var Zt = "modal", te = "bs.modal", ee = "." + te, ne = g.fn[Zt], ie = { backdrop: !0, keyboard: !0, focus: !0, show: !0 }, oe = { backdrop: "(boolean|string)", keyboard: "boolean", focus: "boolean", show: "boolean" }, re = { HIDE: "hide" + ee, HIDDEN: "hidden" + ee, SHOW: "show" + ee, SHOWN: "shown" + ee, FOCUSIN: "focusin" + ee, RESIZE: "resize" + ee, CLICK_DISMISS: "click.dismiss" + ee, KEYDOWN_DISMISS: "keydown.dismiss" + ee, MOUSEUP_DISMISS: "mouseup.dismiss" + ee, MOUSEDOWN_DISMISS: "mousedown.dismiss" + ee, CLICK_DATA_API: "click" + ee + ".data-api" }
3703, se = "modal-dialog-scrollable", ae = "modal-scrollbar-measure", le = "modal-backdrop", ce = "modal-open", he = "fade", ue = "show", fe = ".modal-dialog", de = ".modal-body", ge = '[data-toggle="modal"]', _e = '[data-dismiss="modal"]', me = ".fixed-top, .fixed-bottom, .is-fixed, .sticky-top", pe = ".sticky-top", ve = function () { 3704 function o(t, e) { 3705 this._config = this._getConfig(e), this._element = t, this._dialog = t.querySelector(fe), this._backdrop = null, this._isShown = !1, this._isBodyOverflowing = !1, this._ignoreBackdropClick = !1, this._isTransitioning = !1, this._scrollbarWidth = 0 3706 } 3707 var t = o.prototype; 3708 return t.toggle = function (t) { 3709 return this._isShown ? this.hide() : this.show(t) 3710 }, t.show = function (t) { 3711 var e = this; 3712 if (!this._isShown && !this._isTransitioning) { 3713 g(this._element).hasClass(he) && (this._isTransitioning = !0); 3714 var n = g.Event(re.SHOW, { relatedTarget: t }); 3715 g(this._element).trigger(n), this._isShown || n.isDefaultPrevented() || (this._isShown = !0, this._checkScrollbar(), this._setScrollbar(), this._adjustDialog(), this._setEscapeEvent(), this._setResizeEvent(), g(this._element).on(re.CLICK_DISMISS, _e, function (t) { 3716 return e.hide(t) 3717 }), g(this._dialog).on(re.MOUSEDOWN_DISMISS, function () { 3718 g(e._element).one(re.MOUSEUP_DISMISS, function (t) { 3719 g(t.target).is(e._element) && (e._ignoreBackdropClick = !0) 3720 }) 3721 }), this._showBackdrop(function () { 3722 return e._showElement(t) 3723 })) 3724 } 3725 }, t.hide = function (t) { 3726 var e = this; 3727 if (t && t.preventDefault(), this._isShown && !this._isTransitioning) { 3728 var n = g.Event(re.HIDE); 3729 if (g(this._element).trigger(n), this._isShown && !n.isDefaultPrevented()) { 3730 this._isShown = !1; 3731 var i = g(this._element).hasClass(he); 3732 if (i && (this._isTransitioning = !0), this._setEscapeEvent(), this._setResizeEvent(), g(document).off(re.FOCUSIN), g(this._element).removeClass(ue), g(this._element).off(re.CLICK_DISMISS), g(this._dialog).off(re.MOUSEDOWN_DISMISS), i) { 3733 var o = _.getTransitionDurationFromElement(this._element); 3734 g(this._element).one(_.TRANSITION_END, function (t) { 3735 return e._hideModal(t) 3736 }).emulateTransitionEnd(o) 3737 } else 3738 this._hideModal() 3739 } 3740 } 3741 }, t.dispose = function () { 3742 [window, this._element, this._dialog].forEach(function (t) { 3743 return g(t).off(ee) 3744 }), g(document).off(re.FOCUSIN), g.removeData(this._element, te), this._config = null, this._element = null, this._dialog = null, this._backdrop = null, this._isShown = null, this._isBodyOverflowing = null, this._ignoreBackdropClick = null, this._isTransitioning = null, this._scrollbarWidth = null 3745 }, t.handleUpdate = function () { 3746 this._adjustDialog() 3747 }, t._getConfig = function (t) { 3748 return t = l({}, ie, t), _.typeCheckConfig(Zt, t, oe), t 3749 }, t._showElement = function (t) { 3750 var e = this, n = g(this._element).hasClass(he); 3751 this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE || document.body.appendChild(this._element), this._element.style.display = "block", this._element.removeAttribute("aria-hidden"), this._element.setAttribute("aria-modal", !0), g(this._dialog).hasClass(se) ? this._dialog.querySelector(de).scrollTop = 0 : this._element.scrollTop = 0, n && _.reflow(this._element), g(this._element).addClass(ue), this._config.focus && this._enforceFocus(); 3752 var i = g.Event(re.SHOWN, { relatedTarget: t }), o = function () { 3753 e._config.focus && e._element.focus(), e._isTransitioning = !1, g(e._element).trigger(i) 3754 }; 3755 if (n) { 3756 var r = _.getTransitionDurationFromElement(this._dialog); 3757 g(this._dialog).one(_.TRANSITION_END, o).emulateTransitionEnd(r) 3758 } else 3759 o() 3760 }, t._enforceFocus = function () { 3761 var e = this; 3762 g(document).off(re.FOCUSIN).on(re.FOCUSIN, function (t) { 3763 document !== t.target && e._element !== t.target && 0 === g(e._element).has(t.target).length && e._element.focus() 3764 }) 3765 }, t._setEscapeEvent = function () { 3766 var e = this; 3767 this._isShown && this._config.keyboard ? g(this._element).on(re.KEYDOWN_DISMISS, function (t) { 3768 27 === t.which && (t.preventDefault(), e.hide()) 3769 }) : this._isShown || g(this._element).off(re.KEYDOWN_DISMISS) 3770 }, t._setResizeEvent = function () { 3771 var e = this; 3772 this._isShown ? g(window).on(re.RESIZE, function (t) { 3773 return e.handleUpdate(t) 3774 }) : g(window).off(re.RESIZE) 3775 }, t._hideModal = function () { 3776 var t = this; 3777 this._element.style.display = "none", this._element.setAttribute("aria-hidden", !0), this._element.removeAttribute("aria-modal"), this._isTransitioning = !1, this._showBackdrop(function () { 3778 g(document.body).removeClass(ce), t._resetAdjustments(), t._resetScrollbar(), g(t._element).trigger(re.HIDDEN) 3779 }) 3780 }, t._removeBackdrop = function () { 3781 this._backdrop && (g(this._backdrop).remove(), this._backdrop = null) 3782 }, t._showBackdrop = function (t) { 3783 var e = this, n = g(this._element).hasClass(he) ? he : ""; 3784 if (this._isShown && this._config.backdrop) { 3785 if (this._backdrop = document.createElement("div"), this._backdrop.className = le, n && this._backdrop.classList.add(n), g(this._backdrop).appendTo(document.body), g(this._element).on(re.CLICK_DISMISS, function (t) { 3786 e._ignoreBackdropClick ? e._ignoreBackdropClick = !1 : t.target === t.currentTarget && ("static" === e._config.backdrop ? e._element.focus() : e.hide()) 3787 }), n && _.reflow(this._backdrop), g(this._backdrop).addClass(ue), !t) 3788 return; 3789 if (!n) 3790 return void t(); 3791 var i = _.getTransitionDurationFromElement(this._backdrop); 3792 g(this._backdrop).one(_.TRANSITION_END, t).emulateTransitionEnd(i) 3793 } else if (!this._isShown && this._backdrop) { 3794 g(this._backdrop).removeClass(ue); 3795 var o = function () { 3796 e._removeBackdrop(), t && t() 3797 }; 3798 if (g(this._element).hasClass(he)) { 3799 var r = _.getTransitionDurationFromElement(this._backdrop); 3800 g(this._backdrop).one(_.TRANSITION_END, o).emulateTransitionEnd(r) 3801 } else 3802 o() 3803 } else 3804 t && t() 3805 }, t._adjustDialog = function () { 3806 var t = this._element.scrollHeight > document.documentElement.clientHeight; 3807 !this._isBodyOverflowing && t && (this._element.style.paddingLeft = this._scrollbarWidth + "px"), this._isBodyOverflowing && !t && (this._element.style.paddingRight = this._scrollbarWidth + "px") 3808 }, t._resetAdjustments = function () { 3809 this._element.style.paddingLeft = "", this._element.style.paddingRight = "" 3810 }, t._checkScrollbar = function () { 3811 var t = document.body.getBoundingClientRect(); 3812 this._isBodyOverflowing = t.left + t.right < window.innerWidth, this._scrollbarWidth = this._getScrollbarWidth() 3813 }, t._setScrollbar = function () { 3814 var o = this; 3815 if (this._isBodyOverflowing) { 3816 var t = [].slice.call(document.querySelectorAll(me)), e = [].slice.call(document.querySelectorAll(pe)); 3817 g(t).each(function (t, e) { 3818 var n = e.style.paddingRight, i = g(e).css("padding-right"); 3819 g(e).data("padding-right", n).css("padding-right", parseFloat(i) + o._scrollbarWidth + "px") 3820 }), g(e).each(function (t, e) { 3821 var n = e.style.marginRight, i = g(e).css("margin-right"); 3822 g(e).data("margin-right", n).css("margin-right", parseFloat(i) - o._scrollbarWidth + "px") 3823 }); 3824 var n = document.body.style.paddingRight, i = g(document.body).css("padding-right"); 3825 g(document.body).data("padding-right", n).css("padding-right", parseFloat(i) + this._scrollbarWidth + "px") 3826 } 3827 g(document.body).addClass(ce) 3828 }, t._resetScrollbar = function () { 3829 var t = [].slice.call(document.querySelectorAll(me)); 3830 g(t).each(function (t, e) { 3831 var n = g(e).data("padding-right"); 3832 g(e).removeData("padding-right"), e.style.paddingRight = n || "" 3833 }); 3834 var e = [].slice.call(document.querySelectorAll("" + pe)); 3835 g(e).each(function (t, e) { 3836 var n = g(e).data("margin-right");
3837 "undefined" != typeof n && g(e).css("margin-right", n).removeData("margin-right") 3838 }); 3839 var n = g(document.body).data("padding-right"); 3840 g(document.body).removeData("padding-right"), document.body.style.paddingRight = n || "" 3841 }, t._getScrollbarWidth = function () { 3842 var t = document.createElement("div"); 3843 t.className = ae, document.body.appendChild(t); 3844 var e = t.getBoundingClientRect().width - t.clientWidth; 3845 return document.body.removeChild(t), e 3846 }, o._jQueryInterface = function (n, i) { 3847 return this.each(function () { 3848 var t = g(this).data(te), e = l({}, ie, g(this).data(), "object" == typeof n && n ? n : {}); 3849 if (t || (t = new o(this, e), g(this).data(te, t)), "string" == typeof n) { 3850 if ("undefined" == typeof t[n]) 3851 throw new TypeError('No method named "' + n + '"'); 3852 t[n](i) 3853 } else 3854 e.show && t.show(i) 3855 }) 3856 }, s(o, null, [{ 3857 key: "VERSION", get: function () { 3858 return "4.3.1" 3859 } 3860 }, { 3861 key: "Default", get: function () { 3862 return ie 3863 } 3864 }]), o 3865 }(); 3866 g(document).on(re.CLICK_DATA_API, ge, function (t) { 3867 var e, n = this, i = _.getSelectorFromElement(this); 3868 i && (e = document.querySelector(i)); 3869 var o = g(e).data(te) ? "toggle" : l({}, g(e).data(), g(this).data()); 3870 "A" !== this.tagName && "AREA" !== this.tagName || t.preventDefault(); 3871 var r = g(e).one(re.SHOW, function (t) { 3872 t.isDefaultPrevented() || r.one(re.HIDDEN, function () { 3873 g(n).is(":visible") && n.focus() 3874 }) 3875 }); 3876 ve._jQueryInterface.call(g(e), o, this) 3877 }), g.fn[Zt] = ve._jQueryInterface, g.fn[Zt].Constructor = ve, g.fn[Zt].noConflict = function () { 3878 return g.fn[Zt] = ne, ve._jQueryInterface 3879 }; 3880 var ye = ["background", "cite", "href", "itemtype", "longdesc", "poster", "src", "xlink:href"], Ee = { "*": ["class", "dir", "id", "lang", "role", /^aria-[\w-]*$/i], a: ["target", "href", "title", "rel"], area: [], b: [], br: [], col: [], code: [], div: [], em: [], hr: [], h1: [], h2: [], h3: [], h4: [], h5: [], h6: [], i: [], img: ["src", "alt", "title", "width", "height"], li: [], ol: [], p: [], pre: [], s: [], small: [], span: [], sub: [], sup: [], strong: [], u: [], ul: [] }, Ce = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi, Te = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i; 3881 function Se(t, s, e) { 3882 if (0 === t.length) 3883 return t; 3884 if (e && "function" == typeof e) 3885 return e(t); 3886 for (var n = (new window.DOMParser).parseFromString(t, "text/html"), a = Object.keys(s), l = [].slice.call(n.body.querySelectorAll("*")), i = function (t, e) { 3887 var n = l[t], i = n.nodeName.toLowerCase(); 3888 if (-1 === a.indexOf(n.nodeName.toLowerCase())) 3889 return n.parentNode.removeChild(n), "continue"; 3890 var o = [].slice.call(n.attributes), r = [].concat(s["*"] || [], s[i] || []); 3891 o.forEach(function (t) { 3892 (function (t, e) { 3893 var n = t.nodeName.toLowerCase(); 3894 if (-1 !== e.indexOf(n)) 3895 return -1 === ye.indexOf(n) || Boolean(t.nodeValue.match(Ce) || t.nodeValue.match(Te)); 3896 for (var i = e.filter(function (t) { 3897 return t instanceof RegExp 3898 }), o = 0, r = i.length; o < r; o++) 3899 if (n.match(i[o])) 3900 return !0; 3901 return !1 3902 })(t, r) || n.removeAttribute(t.nodeName) 3903 }) 3904 }, o = 0, r = l.length; o < r; o++) 3905 i(o); 3906 return n.body.innerHTML 3907 } 3908 var be = "tooltip", Ie = "bs.tooltip", De = "." + Ie, we = g.fn[be], Ae = "bs-tooltip", Ne = new RegExp("(^|\\s)" + Ae + "\\S+", "g"), Oe = ["sanitize", "whiteList", "sanitizeFn"], ke = { animation: "boolean", template: "string", title: "(string|element|function)", trigger: "string", delay: "(number|object)", html: "boolean", selector: "(string|boolean)", placement: "(string|function)", offset: "(number|string|function)", container: "(string|element|boolean)", fallbackPlacement: "(string|array)", boundary: "(string|element)", sanitize: "boolean", sanitizeFn: "(null|function)", whiteList: "object" }, Pe = { AUTO: "auto", TOP: "top", RIGHT: "right", BOTTOM: "bottom", LEFT: "left" }, Le = { animation: !0, template: '<div class="tooltip" role="tooltip"><div class="arrow"></div><div class="tooltip-inner"></div></div>', trigger: "hover focus", title: "", delay: 0, html: !1, selector: !1, placement: "top", offset: 0, container: !1, fallbackPlacement: "flip", boundary: "scrollParent", sanitize: !0, sanitizeFn: null, whiteList: Ee }, je = "show", He = "out", Re = { HIDE: "hide" + De, HIDDEN: "hidden" + De, SHOW: "show" + De, SHOWN: "shown" + De, INSERTED: "inserted" + De, CLICK: "click" + De, FOCUSIN: "focusin" + De, FOCUSOUT: "focusout" + De, MOUSEENTER: "mouseenter" + De, MOUSELEAVE: "mouseleave" + De }, xe = "fade", Fe = "show", Ue = ".tooltip-inner", We = ".arrow", qe = "hover", Me = "focus", Ke = "click", Qe = "manual", Be = function () { 3909 function i(t, e) { 3910 if ("undefined" == typeof u) 3911 throw new TypeError("Bootstrap's tooltips require Popper.js (https://popper.js.org/)"); 3912 this._isEnabled = !0, this._timeout = 0, this._hoverState = "", this._activeTrigger = {}, this._popper = null, this.element = t, this.config = this._getConfig(e), this.tip = null, this._setListeners() 3913 } 3914 var t = i.prototype; 3915 return t.enable = function () { 3916 this._isEnabled = !0 3917 }, t.disable = function () { 3918 this._isEnabled = !1 3919 }, t.toggleEnabled = function () { 3920 this._isEnabled = !this._isEnabled 3921 }, t.toggle = function (t) { 3922 if (this._isEnabled) 3923 if (t) { 3924 var e = this.constructor.DATA_KEY, n = g(t.currentTarget).data(e); 3925 n || (n = new this.constructor(t.currentTarget, this._getDelegateConfig()), g(t.currentTarget).data(e, n)), n._activeTrigger.click = !n._activeTrigger.click, n._isWithActiveTrigger() ? n._enter(null, n) : n._leave(null, n) 3926 } else { 3927 if (g(this.getTipElement()).hasClass(Fe)) 3928 return void this._leave(null, this); 3929 this._enter(null, this) 3930 } 3931 }
3931, t.dispose = function () { 3932 clearTimeout(this._timeout), g.removeData(this.element, this.constructor.DATA_KEY), g(this.element).off(this.constructor.EVENT_KEY), g(this.element).closest(".modal").off("hide.bs.modal"), this.tip && g(this.tip).remove(), this._isEnabled = null, this._timeout = null, this._hoverState = null, (this._activeTrigger = null) !== this._popper && this._popper.destroy(), this._popper = null, this.element = null, this.config = null, this.tip = null 3933 }, t.show = function () { 3934 var e = this; 3935 if ("none" === g(this.element).css("display")) 3936 throw new Error("Please use show on visible elements"); 3937 var t = g.Event(this.constructor.Event.SHOW); 3938 if (this.isWithContent() && this._isEnabled) { 3939 g(this.element).trigger(t); 3940 var n = _.findShadowRoot(this.element), i = g.contains(null !== n ? n : this.element.ownerDocument.documentElement, this.element); 3941 if (t.isDefaultPrevented() || !i) 3942 return; 3943 var o = this.getTipElement(), r = _.getUID(this.constructor.NAME); 3944 o.setAttribute("id", r), this.element.setAttribute("aria-describedby", r), this.setContent(), this.config.animation && g(o).addClass(xe); 3945 var s = "function" == typeof this.config.placement ? this.config.placement.call(this, o, this.element) : this.config.placement, a = this._getAttachment(s); 3946 this.addAttachmentClass(a); 3947 var l = this._getContainer(); 3948 g(o).data(this.constructor.DATA_KEY, this), g.contains(this.element.ownerDocument.documentElement, this.tip) || g(o).appendTo(l), g(this.element).trigger(this.constructor.Event.INSERTED), this._popper = new u(this.element, o, { 3949 placement: a, modifiers: { offset: this._getOffset(), flip: { behavior: this.config.fallbackPlacement }, arrow: { element: We }, preventOverflow: { boundariesElement: this.config.boundary } }, onCreate: function (t) { 3950 t.originalPlacement !== t.placement && e._handlePopperPlacementChange(t) 3951 }, onUpdate: function (t) { 3952 return e._handlePopperPlacementChange(t) 3953 } 3954 }), g(o).addClass(Fe), "ontouchstart" in document.documentElement && g(document.body).children().on("mouseover", null, g.noop); 3955 var c = function () { 3956 e.config.animation && e._fixTransition(); 3957 var t = e._hoverState; 3958 e._hoverState = null, g(e.element).trigger(e.constructor.Event.SHOWN), t === He && e._leave(null, e) 3959 }; 3960 if (g(this.tip).hasClass(xe)) { 3961 var h = _.getTransitionDurationFromElement(this.tip); 3962 g(this.tip).one(_.TRANSITION_END, c).emulateTransitionEnd(h) 3963 } else 3964 c() 3965 } 3966 }, t.hide = function (t) { 3967 var e = this, n = this.getTipElement(), i = g.Event(this.constructor.Event.HIDE), o = function () { 3968 e._hoverState !== je && n.parentNode && n.parentNode.removeChild(n), e._cleanTipClass(), e.element.removeAttribute("aria-describedby"), g(e.element).trigger(e.constructor.Event.HIDDEN), null !== e._popper && e._popper.destroy(), t && t() 3969 }; 3970 if (g(this.element).trigger(i), !i.isDefaultPrevented()) { 3971 if (g(n).removeClass(Fe), "ontouchstart" in document.documentElement && g(document.body).children().off("mouseover", null, g.noop), this._activeTrigger[Ke] = !1, this._activeTrigger[Me] = !1, this._activeTrigger[qe] = !1, g(this.tip).hasClass(xe)) { 3972 var r = _.getTransitionDurationFromElement(n); 3973 g(n).one(_.TRANSITION_END, o).emulateTransitionEnd(r) 3974 } else 3975 o(); 3976 this._hoverState = "" 3977 } 3978 }, t.update = function () { 3979 null !== this._popper && this._popper.scheduleUpdate() 3980 }, t.isWithContent = function () { 3981 return Boolean(this.getTitle()) 3982 }, t.addAttachmentClass = function (t) { 3983 g(this.getTipElement()).addClass(Ae + "-" + t) 3984 }, t.getTipElement = function () { 3985 return this.tip = this.tip || g(this.config.template)[0], this.tip 3986 }, t.setContent = function () { 3987 var t = this.getTipElement(); 3988 this.setElementContent(g(t.querySelectorAll(Ue)), this.getTitle()), g(t).removeClass(xe + " " + Fe) 3989 }, t.setElementContent = function (t, e) { 3990 "object" != typeof e || !e.nodeType && !e.jquery ? this.config.html ? (this.config.sanitize && (e = Se(e, this.config.whiteList, this.config.sanitizeFn)), t.html(e)) : t.text(e) : this.config.html ? g(e).parent().is(t) || t.empty().append(e) : t.text(g(e).text()) 3991 }, t.getTitle = function () { 3992 var t = this.element.getAttribute("data-original-title"); 3993 return t || (t = "function" == typeof this.config.title ? this.config.title.call(this.element) : this.config.title), t 3994 }, t._getOffset = function () { 3995 var e = this, t = {}; 3996 return "function" == typeof this.config.offset ? t.fn = function (t) { 3997 return t.offsets = l({}, t.offsets, e.config.offset(t.offsets, e.element) || {}), t 3998 } : t.offset = this.config.offset, t 3999 }, t._getContainer = function () { 4000 return !1 === this.config.container ? document.body : _.isElement(this.config.container) ? g(this.config.container) : g(document).find(this.config.container) 4001 }, t._getAttachment = function (t) { 4002 return Pe[t.toUpperCase()] 4003 }, t._setListeners = function () { 4004 var i = this; 4005 this.config.trigger.split(" ").forEach(function (t) { 4006 if ("click" === t) 4007 g(i.element).on(i.constructor.Event.CLICK, i.config.selector, function (t) { 4008 return i.toggle(t) 4009 }); 4010 else if (t !== Qe) { 4011 var e = t === qe ? i.constructor.Event.MOUSEENTER : i.constructor.Event.FOCUSIN, n = t === qe ? i.constructor.Event.MOUSELEAVE : i.constructor.Event.FOCUSOUT; 4012 g(i.element).on(e, i.config.selector, function (t) { 4013 return i._enter(t) 4014 }).on(n, i.config.selector, function (t) { 4015 return i._leave(t) 4016 }) 4017 } 4018 }), g(this.element).closest(".modal").on("hide.bs.modal", function () { 4019 i.element && i.hide() 4020 }), this.config.selector ? this.config = l({}, this.config, { trigger: "manual", selector: "" }) : this._fixTitle() 4021 }, t._fixTitle = function () { 4022 var t = typeof this.element.getAttribute("data-original-title"); 4023 (this.element.getAttribute("title") || "string" !== t) && (this.element.setAttribute("data-original-title", this.element.getAttribute("title") || ""), this.element.setAttribute("title", "")) 4024 }, t._enter = function (t, e) { 4025 var n = this.constructor.DATA_KEY; 4026 (e = e || g(t.currentTarget).data(n)) || (e = new this.constructor(t.currentTarget, this._getDelegateConfig()), g(t.currentTarget).data(n, e)), t && (e._activeTrigger["focusin" === t.type ? Me : qe] = !0), g(e.getTipElement()).hasClass(Fe) || e._hoverState === je ? e._hoverState = je : (clearTimeout(e._timeout), e._hoverState = je, e.config.delay && e.config.delay.show ? e._timeout = setTimeout(function () { 4027 e._hoverState === je && e.show() 4028 }, e.config.delay.show) : e.show()) 4029 }, t._leave = function (t, e) { 4030 var n = this.constructor.DATA_KEY; 4031 (e = e || g(t.currentTarget).data(n)) || (e = new this.constructor(t.currentTarget, this._getDelegateConfig()), g(t.currentTarget).data(n, e)), t && (e._activeTrigger["focusout" === t.type ? Me : qe] = !1), e._isWithActiveTrigger() || (clearTimeout(e._timeout), e._hoverState = He, e.config.delay && e.config.delay.hide ? e._timeout = setTimeout(function () { 4032 e._hoverState === He && e.hide() 4033 }, e.config.delay.hide) : e.hide()) 4034 }, t._isWithActiveTrigger = function () { 4035 for (var t in this._activeTrigger) 4036 if (this._activeTrigger[t]) 4037 return !0; 4038 return !1 4039 }, t._getConfig = function (t) { 4040 var e = g(this.element).data(); 4041 return Object.keys(e).forEach(function (t) { 4042 -1 !== Oe.indexOf(t) && delete e[t] 4043 }), "number" == typeof (t = l({}, this.constructor.Default, e, "object" == typeof t && t ? t : {})).delay && (t.delay = { show: t.delay, hide: t.delay }), "number" == typeof t.title && (t.title = t.title.toString()), "number" == typeof t.content && (t.content = t.content.toString()), _.typeCheckConfig(be, t, this.constructor.DefaultType), t.sanitize && (t.template = Se(t.template, t.whiteList, t.sanitizeFn)), t 4044 }, t._getDelegateConfig = function () { 4045 var t = {}; 4046 if (this.config) 4047 for (var e in this.config) 4048 this.constructor.Default[e] !== this.config[e] && (t[e] = this.config[e]); 4049 return t 4050 }, t._cleanTipClass = function () { 4051 var t = g(this.getTipElement()), e = t.attr("class").match(Ne); 4052 null !== e && e.length && t.removeClass(e.join("")) 4053 }, t._handlePopperPlacementChange = function (t) { 4054 var e = t.instance; 4055 this.tip = e.popper, this._cleanTipClass(), this.addAttachmentClass(this._getAttachment(t.placement)) 4056 }, t._fixTransition = function () { 4057 var t = this.getTipElement(), e = this.config.animation; 4058 null === t.getAttribute("x-placement") && (g(t).removeClass(xe), this.config.animation = !1, this.hide(), this.show(), this.config.animation = e) 4059 }, i._jQueryInterface = function (n) { 4060 return this.each(function () { 4061 var t = g(this).data(Ie), e = "object" == typeof n && n; 4062 if ((t || !/dispose|hide/.test(n)) && (t || (t = new i(this, e), g(this).data(Ie, t)), "string" == typeof n)) { 4063 if ("undefined" == typeof t[n])
4064 throw new TypeError('No method named "' + n + '"'); 4065 t[n]() 4066 } 4067 }) 4068 }, s(i, null, [{ 4069 key: "VERSION", get: function () { 4070 return "4.3.1" 4071 } 4072 }, { 4073 key: "Default", get: function () { 4074 return Le 4075 } 4076 }, { 4077 key: "NAME", get: function () { 4078 return be 4079 } 4080 }, { 4081 key: "DATA_KEY", get: function () { 4082 return Ie 4083 } 4084 }, { 4085 key: "Event", get: function () { 4086 return Re 4087 } 4088 }, { 4089 key: "EVENT_KEY", get: function () { 4090 return De 4091 } 4092 }, { 4093 key: "DefaultType", get: function () { 4094 return ke 4095 } 4096 }]), i 4097 }(); 4098 g.fn[be] = Be._jQueryInterface, g.fn[be].Constructor = Be, g.fn[be].noConflict = function () { 4099 return g.fn[be] = we, Be._jQueryInterface 4100 }; 4101 var Ve = "popover", Ye = "bs.popover", ze = "." + Ye, Xe = g.fn[Ve], $e = "bs-popover", Ge = new RegExp("(^|\\s)" + $e + "\\S+", "g"), Je = l({}, Be.Default, { placement: "right", trigger: "click", content: "", template: '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>' }), Ze = l({}, Be.DefaultType, { content: "(string|element|function)" }), tn = "fade", en = "show", nn = ".popover-header", on = ".popover-body", rn = { HIDE: "hide" + ze, HIDDEN: "hidden" + ze, SHOW: "show" + ze, SHOWN: "shown" + ze, INSERTED: "inserted" + ze, CLICK: "click" + ze, FOCUSIN: "focusin" + ze, FOCUSOUT: "focusout" + ze, MOUSEENTER: "mouseenter" + ze, MOUSELEAVE: "mouseleave" + ze }, sn = function (t) { 4102 var e, n; 4103 function i() { 4104 return t.apply(this, arguments) || this 4105 } 4106 n = t, (e = i).prototype = Object.create(n.prototype), (e.prototype.constructor = e).__proto__ = n; 4107 var o = i.prototype; 4108 return o.isWithContent = function () { 4109 return this.getTitle() || this._getContent() 4110 }, o.addAttachmentClass = function (t) { 4111 g(this.getTipElement()).addClass($e + "-" + t) 4112 }, o.getTipElement = function () { 4113 return this.tip = this.tip || g(this.config.template)[0], this.tip 4114 }, o.setContent = function () { 4115 var t = g(this.getTipElement()); 4116 this.setElementContent(t.find(nn), this.getTitle()); 4117 var e = this._getContent(); 4118 "function" == typeof e && (e = e.call(this.element)), this.setElementContent(t.find(on), e), t.removeClass(tn + " " + en) 4119 }, o._getContent = function () { 4120 return this.element.getAttribute("data-content") || this.config.content 4121 }, o._cleanTipClass = function () { 4122 var t = g(this.getTipElement()), e = t.attr("class").match(Ge); 4123 null !== e && 0 < e.length && t.removeClass(e.join("")) 4124 }, i._jQueryInterface = function (n) { 4125 return this.each(function () { 4126 var t = g(this).data(Ye), e = "object" == typeof n ? n : null; 4127 if ((t || !/dispose|hide/.test(n)) && (t || (t = new i(this, e), g(this).data(Ye, t)), "string" == typeof n)) { 4128 if ("undefined" == typeof t[n]) 4129 throw new TypeError('No method named "' + n + '"'); 4130 t[n]() 4131 } 4132 }) 4133 }, s(i, null, [{ 4134 key: "VERSION", get: function () { 4135 return "4.3.1" 4136 } 4137 }, { 4138 key: "Default", get: function () { 4139 return Je 4140 } 4141 }, { 4142 key: "NAME", get: function () { 4143 return Ve 4144 } 4145 }, { 4146 key: "DATA_KEY", get: function () { 4147 return Ye 4148 } 4149 }, { 4150 key: "Event", get: function () { 4151 return rn 4152 } 4153 }, { 4154 key: "EVENT_KEY", get: function () { 4155 return ze 4156 } 4157 }, { 4158 key: "DefaultType", get: function () { 4159 return Ze 4160 } 4161 }]), i 4162 }(Be); 4163 g.fn[Ve] = sn._jQueryInterface, g.fn[Ve].Constructor = sn, g.fn[Ve].noConflict = function () { 4164 return g.fn[Ve] = Xe, sn._jQueryInterface 4165 }; 4166 var an = "scrollspy", ln = "bs.scrollspy", cn = "." + ln, hn = g.fn[an], un = { offset: 10, method: "auto", target: "" }, fn = { offset: "number", method: "string", target: "(string|element)" }, dn = { ACTIVATE: "activate" + cn, SCROLL: "scroll" + cn, LOAD_DATA_API: "load" + cn + ".data-api" }, gn = "dropdown-item", _n = "active", mn = '[data-spy="scroll"]', pn = ".nav, .list-group", vn = ".nav-link", yn = ".nav-item", En = ".list-group-item", Cn = ".dropdown", Tn = ".dropdown-item", Sn = ".dropdown-toggle", bn = "offset", In = "position", Dn = function () { 4167 function n(t, e) { 4168 var n = this; 4169 this._element = t, this._scrollElement = "BODY" === t.tagName ? window : t, this._config = this._getConfig(e), this._selector = this._config.target + " " + vn + "," + this._config.target + " " + En + "," + this._config.target + " " + Tn, this._offsets = [], this._targets = [], this._activeTarget = null, this._scrollHeight = 0, g(this._scrollElement).on(dn.SCROLL, function (t) { 4170 return n._process(t) 4171 }), this.refresh(), this._process() 4172 } 4173 var t = n.prototype; 4174 return t.refresh = function () { 4175 var e = this, t = this._scrollElement === this._scrollElement.window ? bn : In, o = "auto" === this._config.method ? t : this._config.method, r = o === In ? this._getScrollTop() : 0; 4176 this._offsets = [], this._targets = [], this._scrollHeight = this._getScrollHeight(), [].slice.call(document.querySelectorAll(this._selector)).map(function (t) { 4177 var e, n = _.getSelectorFromElement(t); 4178 if (n && (e = document.querySelector(n)), e) { 4179 var i = e.getBoundingClientRect(); 4180 if (i.width || i.height) 4181 return [g(e)[o]().top + r, n] 4182 } 4183 return null 4184 }).filter(function (t) { 4185 return t 4186 }).sort(function (t, e) { 4187 return t[0] - e[0] 4188 }
4188).forEach(function (t) { 4189 e._offsets.push(t[0]), e._targets.push(t[1]) 4190 }) 4191 }, t.dispose = function () { 4192 g.removeData(this._element, ln), g(this._scrollElement).off(cn), this._element = null, this._scrollElement = null, this._config = null, this._selector = null, this._offsets = null, this._targets = null, this._activeTarget = null, this._scrollHeight = null 4193 }, t._getConfig = function (t) { 4194 if ("string" != typeof (t = l({}, un, "object" == typeof t && t ? t : {})).target) { 4195 var e = g(t.target).attr("id"); 4196 e || (e = _.getUID(an), g(t.target).attr("id", e)), t.target = "#" + e 4197 } 4198 return _.typeCheckConfig(an, t, fn), t 4199 }, t._getScrollTop = function () { 4200 return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop 4201 }, t._getScrollHeight = function () { 4202 return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight) 4203 }, t._getOffsetHeight = function () { 4204 return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height 4205 }, t._process = function () { 4206 var t = this._getScrollTop() + this._config.offset, e = this._getScrollHeight(), n = this._config.offset + e - this._getOffsetHeight(); 4207 if (this._scrollHeight !== e && this.refresh(), n <= t) { 4208 var i = this._targets[this._targets.length - 1]; 4209 this._activeTarget !== i && this._activate(i) 4210 } else { 4211 if (this._activeTarget && t < this._offsets[0] && 0 < this._offsets[0]) 4212 return this._activeTarget = null, void this._clear(); 4213 for (var o = this._offsets.length; o--;) { 4214 this._activeTarget !== this._targets[o] && t >= this._offsets[o] && ("undefined" == typeof this._offsets[o + 1] || t < this._offsets[o + 1]) && this._activate(this._targets[o]) 4215 } 4216 } 4217 }, t._activate = function (e) { 4218 this._activeTarget = e, this._clear(); 4219 var t = this._selector.split(",").map(function (t) { 4220 return t + '[data-target="' + e + '"],' + t + '[href="' + e + '"]' 4221 }), n = g([].slice.call(document.querySelectorAll(t.join(",")))); 4222 n.hasClass(gn) ? (n.closest(Cn).find(Sn).addClass(_n), n.addClass(_n)) : (n.addClass(_n), n.parents(pn).prev(vn + ", " + En).addClass(_n), n.parents(pn).prev(yn).children(vn).addClass(_n)), g(this._scrollElement).trigger(dn.ACTIVATE, { relatedTarget: e }) 4223 }, t._clear = function () { 4224 [].slice.call(document.querySelectorAll(this._selector)).filter(function (t) { 4225 return t.classList.contains(_n) 4226 }
4226).forEach(function (t) { 4227 return t.classList.remove(_n) 4228 }) 4229 }, n._jQueryInterface = function (e) { 4230 return this.each(function () { 4231 var t = g(this).data(ln); 4232 if (t || (t = new n(this, "object" == typeof e && e), g(this).data(ln, t)), "string" == typeof e) { 4233 if ("undefined" == typeof t[e]) 4234 throw new TypeError('No method named "' + e + '"'); 4235 t[e]() 4236 } 4237 }) 4238 }, s(n, null, [{ 4239 key: "VERSION", get: function () { 4240 return "4.3.1" 4241 } 4242 }, { 4243 key: "Default", get: function () { 4244 return un 4245 } 4246 }]), n 4247 }(); 4248 g(window).on(dn.LOAD_DATA_API, function () { 4249 for (var t = [].slice.call(document.querySelectorAll(mn)), e = t.length; e--;) { 4250 var n = g(t[e]); 4251 Dn._jQueryInterface.call(n, n.data()) 4252 } 4253 }), g.fn[an] = Dn._jQueryInterface, g.fn[an].Constructor = Dn, g.fn[an].noConflict = function () { 4254 return g.fn[an] = hn, Dn._jQueryInterface 4255 }; 4256 var wn = "bs.tab", An = "." + wn, Nn = g.fn.tab, On = { HIDE: "hide" + An, HIDDEN: "hidden" + An, SHOW: "show" + An, SHOWN: "shown" + An, CLICK_DATA_API: "click" + An + ".data-api" }, kn = "dropdown-menu", Pn = "active", Ln = "disabled", jn = "fade", Hn = "show", Rn = ".dropdown", xn = ".nav, .list-group", Fn = ".active", Un = "> li > .active", Wn = '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]', qn = ".dropdown-toggle", Mn = "> .dropdown-menu .active", Kn = function () { 4257 function i(t) { 4258 this._element = t 4259 } 4260 var t = i.prototype; 4261 return t.show = function () { 4262 var n = this; 4263 if (!(this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && g(this._element).hasClass(Pn) || g(this._element).hasClass(Ln))) { 4264 var t, i, e = g(this._element).closest(xn)[0], o = _.getSelectorFromElement(this._element); 4265 if (e) { 4266 var r = "UL" === e.nodeName || "OL" === e.nodeName ? Un : Fn; 4267 i = (i = g.makeArray(g(e).find(r)))[i.length - 1] 4268 } 4269 var s = g.Event(On.HIDE, { relatedTarget: this._element }), a = g.Event(On.SHOW, { relatedTarget: i }); 4270 if (i && g(i).trigger(s), g(this._element).trigger(a), !a.isDefaultPrevented() && !s.isDefaultPrevented()) { 4271 o && (t = document.querySelector(o)), this._activate(this._element, e); 4272 var l = function () { 4273 var t = g.Event(On.HIDDEN, { relatedTarget: n._element }), e = g.Event(On.SHOWN, { relatedTarget: i }); 4274 g(i).trigger(t), g(n._element).trigger(e) 4275 }; 4276 t ? this._activate(t, t.parentNode, l) : l() 4277 } 4278 } 4279 }, t.dispose = function () { 4280 g.removeData(this._element, wn), this._element = null 4281 }, t._activate = function (t, e, n) { 4282 var i = this, o = (!e || "UL" !== e.nodeName && "OL" !== e.nodeName ? g(e).children(Fn) : g(e).find(Un))[0], r = n && o && g(o).hasClass(jn), s = function () { 4283 return i._transitionComplete(t, o, n) 4284 }; 4285 if (o && r) { 4286 var a = _.getTransitionDurationFromElement(o); 4287 g(o).removeClass(Hn).one(_.TRANSITION_END, s).emulateTransitionEnd(a) 4288 } else 4289 s() 4290 }, t._transitionComplete = function (t, e, n) { 4291 if (e) { 4292 g(e).removeClass(Pn); 4293 var i = g(e.parentNode).find(Mn)[0]; 4294 i && g(i).removeClass(Pn), "tab" === e.getAttribute("role") && e.setAttribute("aria-selected", !1) 4295 } 4296 if (g(t).addClass(Pn), "tab" === t.getAttribute("role") && t.setAttribute("aria-selected", !0), _.reflow(t), t.classList.contains(jn) && t.classList.add(Hn), t.parentNode && g(t.parentNode).hasClass(kn)) { 4297 var o = g(t).closest(Rn)[0]; 4298 if (o) { 4299 var r = [].slice.call(o.querySelectorAll(qn)); 4300 g(r).addClass(Pn) 4301 } 4302 t.setAttribute("aria-expanded", !0) 4303 } 4304 n && n() 4305 }, i._jQueryInterface = function (n) { 4306 return this.each(function () { 4307 var t = g(this), e = t.data(wn); 4308 if (e || (e = new i(this), t.data(wn, e)), "string" == typeof n) { 4309 if ("undefined" == typeof e[n])
4310 throw new TypeError('No method named "' + n + '"'); 4311 e[n]() 4312 } 4313 }) 4314 }, s(i, null, [{ 4315 key: "VERSION", get: function () { 4316 return "4.3.1" 4317 } 4318 }]), i 4319 }(); 4320 g(document).on(On.CLICK_DATA_API, Wn, function (t) { 4321 t.preventDefault(), Kn._jQueryInterface.call(g(this), "show") 4322 }), g.fn.tab = Kn._jQueryInterface, g.fn.tab.Constructor = Kn, g.fn.tab.noConflict = function () { 4323 return g.fn.tab = Nn, Kn._jQueryInterface 4324 }; 4325 var Qn = "toast", Bn = "bs.toast", Vn = "." + Bn, Yn = g.fn[Qn], zn = { CLICK_DISMISS: "click.dismiss" + Vn, HIDE: "hide" + Vn, HIDDEN: "hidden" + Vn, SHOW: "show" + Vn, SHOWN: "shown" + Vn }, Xn = "fade", $n = "hide", Gn = "show", Jn = "showing", Zn = { animation: "boolean", autohide: "boolean", delay: "number" }, ti = { animation: !0, autohide: !0, delay: 500 }, ei = '[data-dismiss="toast"]', ni = function () { 4326 function i(t, e) { 4327 this._element = t, this._config = this._getConfig(e), this._timeout = null, this._setListeners() 4328 } 4329 var t = i.prototype; 4330 return t.show = function () { 4331 var t = this; 4332 g(this._element).trigger(zn.SHOW), this._config.animation && this._element.classList.add(Xn); 4333 var e = function () { 4334 t._element.classList.remove(Jn), t._element.classList.add(Gn), g(t._element).trigger(zn.SHOWN), t._config.autohide && t.hide() 4335 }; 4336 if (this._element.classList.remove($n), this._element.classList.add(Jn), this._config.animation) { 4337 var n = _.getTransitionDurationFromElement(this._element); 4338 g(this._element).one(_.TRANSITION_END, e).emulateTransitionEnd(n) 4339 } else 4340 e() 4341 }, t.hide = function (t) { 4342 var e = this; 4343 this._element.classList.contains(Gn) && (g(this._element).trigger(zn.HIDE), t ? this._close() : this._timeout = setTimeout(function () { 4344 e._close() 4345 }, this._config.delay)) 4346 }, t.dispose = function () { 4347 clearTimeout(this._timeout), this._timeout = null, this._element.classList.contains(Gn) && this._element.classList.remove(Gn), g(this._element).off(zn.CLICK_DISMISS), g.removeData(this._element, Bn), this._element = null, this._config = null 4348 }, t._getConfig = function (t) { 4349 return t = l({}, ti, g(this._element).data(), "object" == typeof t && t ? t : {}), _.typeCheckConfig(Qn, t, this.constructor.DefaultType), t 4350 }, t._setListeners = function () { 4351 var t = this; 4352 g(this._element).on(zn.CLICK_DISMISS, ei, function () { 4353 return t.hide(!0) 4354 }) 4355 }, t._close = function () { 4356 var t = this, e = function () { 4357 t._element.classList.add($n), g(t._element).trigger(zn.HIDDEN) 4358 }; 4359 if (this._element.classList.remove(Gn), this._config.animation) { 4360 var n = _.getTransitionDurationFromElement(this._element); 4361 g(this._element).one(_.TRANSITION_END, e).emulateTransitionEnd(n) 4362 } else 4363 e() 4364 }, i._jQueryInterface = function (n) { 4365 return this.each(function () { 4366 var t = g(this), e = t.data(Bn); 4367 if (e || (e = new i(this, "object" == typeof n && n), t.data(Bn, e)), "string" == typeof n) { 4368 if ("undefined" == typeof e[n]) 4369 throw new TypeError('No method named "' + n + '"'); 4370 e[n](this) 4371 } 4372 }) 4373 }, s(i, null, [{ 4374 key: "VERSION", get: function () { 4375 return "4.3.1" 4376 } 4377 }, { 4378 key: "DefaultType", get: function () { 4379 return Zn 4380 } 4381 }, { 4382 key: "Default", get: function () { 4383 return ti 4384 } 4385 }]), i 4386 }(); 4387 g.fn[Qn] = ni._jQueryInterface, g.fn[Qn].Constructor = ni, g.fn[Qn].noConflict = function () { 4388 return g.fn[Qn] = Yn, ni._jQueryInterface 4389 }, function () { 4390 if ("undefined" == typeof g) 4391 throw new TypeError("Bootstrap's JavaScript requires jQuery. jQuery must be included before Bootstrap's JavaScript."); 4392 var t = g.fn.jquery.split(" ")[0].split("."); 4393 if (t[0] < 2 && t[1] < 9 || 1 === t[0] && 9 === t[1] && t[2] < 1 || 4 <= t[0]) 4394 throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0") 4395 }(), t.Util = _, t.Alert = p, t.Button = P, t.Carousel = lt, t.Collapse = bt, t.Dropdown = Jt, t.Modal = ve, t.Popover = sn, t.Scrollspy = Dn, t.Tab = Kn, t.Toast = ni, t.Tooltip = Be, Object.defineProperty(t, "__esModule", { value: !0 }) 4396}); 4397//# sourceMappingURL=bootstrap.min.js.map 4398/*! 4399 * Notify js 4400 */ 4401!function (t) { 4402 "function" == typeof define && define.amd ? define(["jquery"], t) : t("object" == typeof exports ? require("jquery") : jQuery) 4403}(function (t) { 4404 function s(s) { 4405 var e = !1; 4406 return t('[data-notify="container"]').each(function (i, n) { 4407 var a = t(n), o = a.find('[data-notify="title"]').text().trim(), r = a.find('[data-notify="message"]').html().trim(), l = o === t("<div>" + s.settings.content.title + "</div>").html().trim(), d = r === t("<div>" + s.settings.content.message + "</div>").html().trim(), g = a.hasClass("alert-" + s.settings.type); 4408 return l && d && g && (e = !0), !e 4409 }), e 4410 } 4411 function e(e, n, a) { 4412 var o = { content: { message: "object" == typeof n ? n.message : n, title: n.title ? n.title : "", icon: n.icon ? n.icon : "", url: n.url ? n.url : "#", target: n.target ? n.target : "-" } }; 4413 a = t.extend(!0, {}, o, a), this.settings = t.extend(!0, {}, i, a), this._defaults = i, "-" === this.settings.content.target && (this.settings.content.target = this.settings.url_target), this.animations = { start: "webkitAnimationStart oanimationstart MSAnimationStart animationstart", end: "webkitAnimationEnd oanimationend MSAnimationEnd animationend" }, "number" == typeof this.settings.offset && (this.settings.offset = { x: this.settings.offset, y: this.settings.offset }), (this.settings.allow_duplicates || !this.settings.allow_duplicates && !s(this)) && this.init() 4414 } 4415 var i = { element: "body", position: null, type: "info", allow_dismiss: !0, allow_duplicates: !0, newest_on_top: !1, showProgressbar: !1, placement: { from: "top", align: "right" }, offset: 20, spacing: 10, z_index: 1031, delay: 5e3, timer: 1e3, url_target: "_blank", mouse_over: null, animate: { enter: "animated fadeInDown", exit: "animated fadeOutUp" }, onShow: null, onShown: null, onClose: null, onClosed: null, icon_type: "class", template: '<div data-notify="container" class="col-xs-11 col-sm-4 alert alert-{0}" role="alert"><button type="button" aria-hidden="true" class="close" data-notify="dismiss">×</button><span data-notify="icon"></span> <span data-notify="title">{1}</span> <span data-notify="message">{2}</span><div class="progress" data-notify="progressbar"><div class="progress-bar progress-bar-{0}" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" style="width: 0%;"></div></div><a href="{3}" target="{4}" data-notify="url"></a></div>' }; 4416 String.format = function () { 4417 for (var t = arguments[0], s = 1; s < arguments.length; s++) 4418 t = t.replace(RegExp("\\{" + (s - 1) + "\\}", "gm"), arguments[s]); 4419 return t 4420 }, t.extend(e.prototype, { 4421 init: function () { 4422 var t = this; 4423 this.buildNotify(), this.settings.content.icon && this.setIcon(), "#" != this.settings.content.url && this.styleURL(), this.styleDismiss(), this.placement(), this.bind(), this.notify = { 4424 $ele: this.$ele, update: function (s, e) { 4425 var i = {}; 4426 "string" == typeof s ? i[s] = e : i = s; 4427 for (var n in i) 4428 switch (n) { 4429 case "type": 4430 this.$ele.removeClass("alert-" + t.settings.type), this.$ele.find('[data-notify="progressbar"] > .progress-bar').removeClass("progress-bar-" + t.settings.type), t.settings.type = i[n], this.$ele.addClass("alert-" + i[n]).find('[data-notify="progressbar"] > .progress-bar').addClass("progress-bar-" + i[n]); 4431 break; 4432 case "icon": 4433 var a = this.$ele.find('[data-notify="icon"]'); 4434 "class" === t.settings.icon_type.toLowerCase() ? a.removeClass(t.settings.content.icon).addClass(i[n]) : (a.is("img") || a.find("img"), a.attr("src", i[n])); 4435 break; 4436 case "progress": 4437 var o = t.settings.delay - t.settings.delay * (i[n] / 100); 4438 this.$ele.data("notify-delay", o), this.$ele.find('[data-notify="progressbar"] > div').attr("aria-valuenow", i[n]).css("width", i[n] + "%"); 4439 break; 4440 case "url": 4441 this.$ele.find('[data-notify="url"]').attr("href", i[n]); 4442 break; 4443 case "target": 4444 this.$ele.find('[data-notify="url"]').attr("target", i[n]); 4445 break; 4446 default: 4447 this.$ele.find('[data-notify="' + n + '"]').html(i[n]) 4448 } 4449 var r = this.$ele.outerHeight() + parseInt(t.settings.spacing) + parseInt(t.settings.offset.y); 4450 t.reposition(r) 4451 }, close: function () { 4452 t.close() 4453 } 4454 } 4455 }, buildNotify: function () { 4456 var s = this.settings.content; 4457 this.$ele = t(String.format(this.settings.template, this.settings.type, s.title, s.message, s.url, s.target)), this.$ele.attr("data-notify-position", this.settings.placement.from + "-" + this.settings.placement.align), this.settings.allow_dismiss || this.$ele.find('[data-notify="dismiss"]').css("display", "none"), (this.settings.delay <= 0 && !this.settings.showProgressbar || !this.settings.showProgressbar) && this.$ele.find('[data-notify="progressbar"]').remove() 4458 }, setIcon: function () { 4459 "class" === this.settings.icon_type.toLowerCase() ? this.$ele.find('[data-notify="icon"]').addClass(this.settings.content.icon) : this.$ele.find('[data-notify="icon"]').is("img") ? this.$ele.find('[data-notify="icon"]').attr("src", this.settings.content.icon) : this.$ele.find('[data-notify="icon"]').append('<img src="' + this.settings.content.icon + '" alt="Notify Icon" />') 4460 }, styleDismiss: function () { 4461 this.$ele.find('[data-notify="dismiss"]').css({ position: "absolute", right: "10px", top: "5px", zIndex: this.settings.z_index + 2 }) 4462 }, styleURL: function () { 4463 this.$ele.find('[data-notify="url"]').css({ backgroundImage: "url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)", height: "100%", left: 0, position: "absolute", top: 0, width: "100%", zIndex: this.settings.z_index + 1 }) 4464 }, placement: function () { 4465 var s = this, e = this.settings.offset.y, i = { display: "inline-block", margin: "0px auto", position: this.settings.position ? this.settings.position : "body" === this.settings.element ? "fixed" : "absolute", transition: "all .5s ease-in-out", zIndex: this.settings.z_index }, n = !1, a = this.settings; 4466 switch (t('[data-notify-position="' + this.settings.placement.from + "-" + this.settings.placement.align + '"]:not([data-closing="true"])').each(function () { 4467 e = Math.max(e, parseInt(t(this).css(a.placement.from)) + parseInt(t(this).outerHeight()) + parseInt(a.spacing)) 4468 }), this.settings.newest_on_top === !0 && (e = this.settings.offset.y), i[this.settings.placement.from] = e + "px", this.settings.placement.align) {
4469 case "left": 4470 case "right": 4471 i[this.settings.placement.align] = this.settings.offset.x + "px"; 4472 break; 4473 case "center": 4474 i.left = 0, i.right = 0 4475 } 4476 this.$ele.css(i).addClass(this.settings.animate.enter), t.each(Array("webkit-", "moz-", "o-", "ms-", ""), function (t, e) { 4477 s.$ele[0].style[e + "AnimationIterationCount"] = 1 4478 }), t(this.settings.element).append(this.$ele), this.settings.newest_on_top === !0 && (e = parseInt(e) + parseInt(this.settings.spacing) + this.$ele.outerHeight(), this.reposition(e)), t.isFunction(s.settings.onShow) && s.settings.onShow.call(this.$ele), this.$ele.one(this.animations.start, function () { 4479 n = !0 4480 }).one(this.animations.end, function () { 4481 s.$ele.removeClass(s.settings.animate.enter), t.isFunction(s.settings.onShown) && s.settings.onShown.call(this) 4482 }), setTimeout(function () { 4483 n || t.isFunction(s.settings.onShown) && s.settings.onShown.call(this) 4484 }, 600) 4485 }, bind: function () { 4486 var s = this; 4487 if (this.$ele.find('[data-notify="dismiss"]').on("click", function () { 4488 s.close() 4489 }), this.$ele.mouseover(function () { 4490 t(this).data("data-hover", "true") 4491 }).mouseout(function () { 4492 t(this).data("data-hover", "false") 4493 }), this.$ele.data("data-hover", "false"), this.settings.delay > 0) { 4494 s.$ele.data("notify-delay", s.settings.delay); 4495 var e = setInterval(function () { 4496 var t = parseInt(s.$ele.data("notify-delay")) - s.settings.timer; 4497 if ("false" === s.$ele.data("data-hover") && "pause" === s.settings.mouse_over || "pause" != s.settings.mouse_over) { 4498 var i = (s.settings.delay - t) / s.settings.delay * 100; 4499 s.$ele.data("notify-delay", t), s.$ele.find('[data-notify="progressbar"] > div').attr("aria-valuenow", i).css("width", i + "%") 4500 } 4501 t <= -s.settings.timer && (clearInterval(e), s.close()) 4502 }, s.settings.timer) 4503 } 4504 }, close: function () { 4505 var s = this, e = parseInt(this.$ele.css(this.settings.placement.from)), i = !1; 4506 this.$ele.attr("data-closing", "true").addClass(this.settings.animate.exit), s.reposition(e), t.isFunction(s.settings.onClose) && s.settings.onClose.call(this.$ele), this.$ele.one(this.animations.start, function () { 4507 i = !0 4508 }).one(this.animations.end, function () { 4509 t(this).remove(), t.isFunction(s.settings.onClosed) && s.settings.onClosed.call(this) 4510 }), setTimeout(function () { 4511 i || (s.$ele.remove(), s.settings.onClosed && s.settings.onClosed(s.$ele)) 4512 }, 600) 4513 }, reposition: function (s) { 4514 var e = this, i = '[data-notify-position="' + this.settings.placement.from + "-" + this.settings.placement.align + '"]:not([data-closing="true"])', n = this.$ele.nextAll(i); 4515 this.settings.newest_on_top === !0 && (n = this.$ele.prevAll(i)), n.each(function () { 4516 t(this).css(e.settings.placement.from, s), s = parseInt(s) + parseInt(e.settings.spacing) + t(this).outerHeight() 4517 }) 4518 } 4519 }), t.notify = function (t, s) { 4520 var i = new e(this, t, s); 4521 return i.notify 4522 }, t.notifyDefaults = function (s) { 4523 return i = t.extend(!0, {}, i, s) 4524 }, t.notifyClose = function (s) { 4525 "warning" === s && (s = "danger"), "undefined" == typeof s || "all" === s ? t("[data-notify]").find('[data-notify="dismiss"]').trigger("click") : "success" === s || "info" === s || "warning" === s || "danger" === s ? t(".alert-" + s + "[data-notify]").find('[data-notify="dismiss"]').trigger("click") : s ? t(s + "[data-notify]").find('[data-notify="dismiss"]').trigger("click") : t('[data-notify-position="' + s + '"]').find('[data-notify="dismiss"]').trigger("click") 4526 }, t.notifyCloseExcept = function (s) { 4527 "warning" === s && (s = "danger"), "success" === s || "info" === s || "warning" === s || "danger" === s ? t("[data-notify]").not(".alert-" + s).find('[data-notify="dismiss"]').trigger("click") : t("[data-notify]").not(s).find('[data-notify="dismiss"]').trigger("click") 4528 } 4529}); 4530 4531/*! 4532 * jQuery Validation Plugin v1.14.0 4533 * 4534 * http://jqueryvalidation.org/ 4535 * 4536 * Copyright (c) 2015 Jörn Zaefferer 4537 * Released under the MIT license 4538 */ 4539(function (factory) { 4540 if (typeof define === "function" && define.amd) { 4541 define(["jquery"], factory); 4542 } else { 4543 factory(jQuery); 4544 } 4545}(function ($) { 4546 4547 $.extend($.fn, { 4548 // http://jqueryvalidation.org/validate/ 4549 validate: function (options) { 4550 4551 // if nothing is selected, return nothing; can't chain anyway 4552 if (!this.length) { 4553 if (options && options.debug && window.console) { 4554 console.warn("Nothing selected, can't validate, returning nothing."); 4555 } 4556 return; 4557 } 4558 4559 // check if a validator for this form was already created
4560 var validator = $.data(this[0], "validator"); 4561 if (validator) { 4562 return validator; 4563 } 4564 4565 // Add novalidate tag if HTML5. 4566 this.attr("novalidate", "novalidate"); 4567 4568 validator = new $.validator(options, this[0]); 4569 $.data(this[0], "validator", validator); 4570 4571 if (validator.settings.onsubmit) { 4572 4573 this.on("click.validate", ":submit", function (event) { 4574 if (validator.settings.submitHandler) { 4575 validator.submitButton = event.target; 4576 } 4577 4578 // allow suppressing validation by adding a cancel class to the submit button 4579 if ($(this).hasClass("cancel")) { 4580 validator.cancelSubmit = true; 4581 } 4582 4583 // allow suppressing validation by adding the html5 formnovalidate attribute to the submit button 4584 if ($(this).attr("formnovalidate") !== undefined) { 4585 validator.cancelSubmit = true; 4586 } 4587 }); 4588 4589 // validate the form on submit 4590 this.on("submit.validate", function (event) { 4591 if (validator.settings.debug) { 4592 // prevent form submit to be able to see console output 4593 event.preventDefault(); 4594 } 4595 4596 function handle() { 4597 var hidden, result; 4598 if (validator.settings.submitHandler) { 4599 if (validator.submitButton) { 4600 // insert a hidden input as a replacement for the missing submit button 4601 hidden = $("<input type='hidden'/>") 4602 .attr("name", validator.submitButton.name) 4603 .val($(validator.submitButton).val()) 4604 .appendTo(validator.currentForm); 4605 } 4606 result = validator.settings.submitHandler.call(validator, validator.currentForm, event); 4607 if (validator.submitButton) { 4608 // and clean up afterwards; thanks to no-block-scope, hidden can be referenced 4609 hidden.remove(); 4610 } 4611 if (result !== undefined) { 4612 return result; 4613 } 4614 return false; 4615 } 4616 return true; 4617 } 4618 4619 // prevent submit for invalid forms or custom submit handlers 4620 if (validator.cancelSubmit) { 4621 validator.cancelSubmit = false; 4622 return handle(); 4623 } 4624 if (validator.form()) { 4625 if (validator.pendingRequest) { 4626 validator.formSubmitted = true; 4627 return false; 4628 } 4629 return handle(); 4630 } else { 4631 validator.focusInvalid(); 4632 return false; 4633 } 4634 }); 4635 } 4636 4637 return validator; 4638 }, 4639 // http://jqueryvalidation.org/valid/ 4640 valid: function () { 4641 var valid, validator, errorList; 4642 4643 if ($(this[0]).is("form")) { 4644 valid = this.validate().form(); 4645 } else { 4646 errorList = []; 4647 valid = true; 4648 validator = $(this[0].form).validate(); 4649 this.each(function () { 4650 valid = validator.element(this) && valid; 4651 errorList = errorList.concat(validator.errorList); 4652 }); 4653 validator.errorList = errorList; 4654 } 4655 return valid; 4656 }, 4657 // http://jqueryvalidation.org/rules/ 4658 rules: function (command, argument) { 4659 var element = this[0], 4660 settings, staticRules, existingRules, data, param, filtered; 4661 4662 if (command) { 4663 settings = $.data(element.form, "validator").settings; 4664 staticRules = settings.rules; 4665 existingRules = $.validator.staticRules(element); 4666 switch (command) { 4667 case "add": 4668 $.extend(existingRules, $.validator.normalizeRule(argument)); 4669 // remove messages from rules, but allow them to be set separately 4670 delete existingRules.messages; 4671 staticRules[element.name] = existingRules; 4672 if (argument.messages) { 4673 settings.messages[element.name] = $.extend(settings.messages[element.name], argument.messages); 4674 } 4675 break; 4676 case "remove": 4677 if (!argument) { 4678 delete staticRules[element.name]; 4679 return existingRules; 4680 } 4681 filtered = {}; 4682 $.each(argument.split(/\s/), function (index, method) { 4683 filtered[method] = existingRules[method]; 4684 delete existingRules[method]; 4685 if (method === "required") { 4686 $(element).removeAttr("aria-required"); 4687 } 4688 }); 4689 return filtered; 4690 } 4691 } 4692 4693 data = $.validator.normalizeRules( 4694 $.extend({}, 4695 $.validator.classRules(element), 4696 $.validator.attributeRules(element), 4697 $.validator.dataRules(element), 4698 $.validator.staticRules(element) 4699 ), element); 4700 4701 // make sure required is at front 4702 if (data.required) { 4703 param = data.required; 4704 delete data.required; 4705 data = $.extend({ 4706 required: param 4707 }, data); 4708 $(element).attr("aria-required", "true"); 4709 } 4710 4711 // make sure remote is at back 4712 if (data.remote) { 4713 param = data.remote; 4714 delete data.remote; 4715 data = $.extend(data, { 4716 remote: param 4717 }); 4718 } 4719 4720 return data; 4721 } 4722 }); 4723 4724 // Custom selectors 4725 $.extend($.expr[":"], { 4726 // http://jqueryvalidation.org/blank-selector/ 4727 blank: function (a) { 4728 return !$.trim("" + $(a).val()); 4729 }, 4730 // http://jqueryvalidation.org/filled-selector/ 4731 filled: function (a) { 4732 return !!$.trim("" + $(a).val()); 4733 }, 4734 // http://jqueryvalidation.org/unchecked-selector/ 4735 unchecked: function (a) { 4736 return !$(a).prop("checked"); 4737 } 4738 }); 4739 4740 // constructor for validator 4741 $.validator = function (options, form) { 4742 this.settings = $.extend(true, {}, $.validator.defaults, options); 4743 this.currentForm = form; 4744 this.init(); 4745 }; 4746 4747 // http://jqueryvalidation.org/jQuery.validator.format/ 4748 $.validator.format = function (source, params) { 4749 if (arguments.length === 1) { 4750 return function () { 4751 var args = $.makeArray(arguments); 4752 args.unshift(source); 4753 return $.validator.format.apply(this, args); 4754 }; 4755 } 4756 if (arguments.length > 2 && params.constructor !== Array) { 4757 params = $.makeArray(arguments).slice(1); 4758 } 4759 if (params.constructor !== Array) { 4760 params = [params]; 4761 } 4762 $.each(params, function (i, n) { 4763 source = source.replace(new RegExp("\\{" + i + "\\}", "g"), function () { 4764 return n; 4765 }); 4766 });
4767 return source; 4768 }; 4769 4770 $.extend($.validator, { 4771 defaults: { 4772 messages: {}, 4773 groups: {}, 4774 rules: {}, 4775 lang: $('.language_type').text(), 4776 errorClass: "error", 4777 validClass: "valid", 4778 errorElement: "label", 4779 focusCleanup: false, 4780 focusInvalid: true, 4781 errorContainer: $([]), 4782 errorLabelContainer: $([]), 4783 onsubmit: true, 4784 ignore: ":hidden", 4785 ignoreTitle: false, 4786 onfocusin: function (element) { 4787 this.lastActive = element; 4788 4789 // Hide error label and remove error class on focus if enabled 4790 if (this.settings.focusCleanup) { 4791 if (this.settings.unhighlight) { 4792 this.settings.unhighlight.call(this, element, this.settings.errorClass, this.settings.validClass); 4793 } 4794 this.hideThese(this.errorsFor(element)); 4795 } 4796 }, 4797 onfocusout: function (element) { 4798 if (!this.checkable(element) && (element.name in this.submitted || !this.optional(element))) { 4799 this.element(element); 4800 } 4801 }, 4802 onkeyup: function (element, event) { 4803 // Avoid revalidate the field when pressing one of the following keys 4804 // Shift => 16 4805 // Ctrl => 17 4806 // Alt => 18 4807 // Caps lock => 20 4808 // End => 35 4809 // Home => 36 4810 // Left arrow => 37 4811 // Up arrow => 38 4812 // Right arrow => 39 4813 // Down arrow => 40 4814 // Insert => 45 4815 // Num lock => 144 4816 // AltGr key => 225 4817 var excludedKeys = [ 4818 16, 17, 18, 20, 35, 36, 37, 4819 38, 39, 40, 45, 144, 225 4820 ]; 4821 4822 if (event.which === 9 && this.elementValue(element) === "" || $.inArray(event.keyCode, excludedKeys) !== -1) { 4823 return; 4824 } else if (element.name in this.submitted || element === this.lastElement) { 4825 this.element(element); 4826 } 4827 }, 4828 onclick: function (element) { 4829 // click on selects, radiobuttons and checkboxes 4830 if (element.name in this.submitted) { 4831 this.element(element); 4832 4833 // or option elements, check parent select in that case 4834 } else if (element.parentNode.name in this.submitted) { 4835 this.element(element.parentNode); 4836 } 4837 }, 4838 highlight: function (element, errorClass, validClass) { 4839 if (element.type === "radio") { 4840 this.findByName(element.name).addClass(errorClass).removeClass(validClass); 4841 } else { 4842 $(element).addClass(errorClass).removeClass(validClass); 4843 } 4844 }, 4845 unhighlight: function (element, errorClass, validClass) { 4846 if (element.type === "radio") { 4847 this.findByName(element.name).removeClass(errorClass).addClass(validClass); 4848 } else { 4849 $(element).removeClass(errorClass).addClass(validClass); 4850 } 4851 } 4852 }, 4853 // http://jqueryvalidation.org/jQuery.validator.setDefaults/ 4854 setDefaults: function (settings) { 4855 $.extend($.validator.defaults, settings); 4856 }, 4857 messages: { 4858 en: { 4859 required: "This field is required.", 4860 remote: "Please fix this field.", 4861 email: "Please enter a valid email address.", 4862 url: "Please enter a valid URL.", 4863 date: "Please enter a valid date.", 4864 dateISO: "Please enter a valid date ( ISO ).", 4865 number: "Please enter a valid number.", 4866 digits: "Please enter only digits.", 4867 creditcard: "Please enter a valid credit card number.", 4868 equalTo: "Please enter the same value again.", 4869 maxlength: $.validator.format("Please enter no more than {0} characters."), 4870 minlength: $.validator.format("Please enter at least {0} characters."), 4871 rangelength: $.validator.format("Please enter a value between {0} and {1} characters long."), 4872 range: $.validator.format("Please enter a value between {0} and {1}."), 4873 max: $.validator.format("Please enter a value less than or equal to {0}."), 4874 min: $.validator.format("Please enter a value greater than or equal to {0}.") 4875 }, 4876 tr: { 4877 required: "Bu alan gereklidir",
4878 remote: "Please fix this field", 4879 email: "Geçersiz eposta", 4880 url: "Lütfen geçerli bir adres girin", 4881 date: "Lütfen geçerli bir tarih giriniz", 4882 dateISO: "Please enter a valid date ( ISO )", 4883 number: "Lütfen geçerli bir sayı giriniz", 4884 digits: "Please enter only digits", 4885 creditcard: "Geçerli bir kredi kartı numarası girin", 4886 equalTo: "Åifre eÅleÅmiyor tekrar deneyiniz.", 4887 maxlength: $.validator.format("Lütfen en fazla {0} karakter girin"), 4888 minlength: $.validator.format("Lütfen en az {0} karakter girin."), 4889 rangelength: $.validator.format("Please enter a value between {0} and {1} characters long."), 4890 range: $.validator.format("Please enter a value between {0} and {1}."), 4891 max: $.validator.format("Please enter a value less than or equal to {0}."), 4892 min: $.validator.format("Please enter a value greater than or equal to {0}.") 4893 }, 4894 hr: { 4895 required: "Ovo polje je obavezno.", 4896 remote: "Please fix this field", 4897 email: "Ovo polje treba sadržavati ispravnu email adresu.", 4898 url: "Ovo polje treba sadržavati ispravni url.", 4899 date: "Unesite važeÄi datum.", 4900 dateISO: "Ovo polje treba sadržavati ispravno uneÅ¡en datum (ISO).", 4901 number: "Ovo polje treba sadržavati ispravno upisan broj.", 4902 digits: "Ovo polje treba sadržavati znamenke.", 4903 creditcard: "Geçerli bir kredi kartı numarası girin", 4904 equalTo: "Ova vrijednost treba biti ista.", 4905 maxlength: $.validator.format("Unos je predugaÄak. Treba sadržavati {0} ili manje znakova."), 4906 minlength: $.validator.format("Unos je prekratak. Treba sadržavati {0} ili viÅ¡e znakova."), 4907 rangelength: $.validator.format("Please enter a value between {0} and {1} characters long."), 4908 range: $.validator.format("Vrijednost treba biti izmeÄu {0} i {1}."), 4909 max: $.validator.format("Vrijednost treba biti jednaka ili manja od {0}."), 4910 min: $.validator.format("Vrijednost treba biti jednaka ili veÄa od {0}.") 4911 }, 4912 de: { 4913 required: "Dieses Feld ist erforderlich.", 4914 remote: "Bitte korrigieren Sie dieses Feld.", 4915 email: "Bitte geben Sie eine gültige E-Mail-Adresse ein.", 4916 url: "Bitte geben Sie eine gültige URL ein.", 4917 date: "Bitte geben Sie ein gültiges Datum ein.", 4918 dateISO: "Bitte geben Sie ein gültiges Datum (ISO) ein.", 4919 number: "Bitte geben Sie eine gültige Zahl ein.", 4920 digits: "Bitte geben Sie nur Ziffern ein.", 4921 creditcard: "Bitte geben Sie eine gültige Kreditkartennummer ein.", 4922 equalTo: "Bitte geben Sie denselben Wert erneut ein.", 4923 maxlength: $.validator.format("Bitte nicht mehr als {0} Zeichen eingeben."), 4924 minlength: $.validator.format("Bitte mindestens {0} Zeichen eingeben."), 4925 rangelength: $.validator.format("Bitte einen Wert zwischen {0} und {1} Zeichen eingeben."), 4926 range: $.validator.format("Bitte einen Wert zwischen {0} und {1} eingeben."), 4927 max: $.validator.format("Bitte einen Wert kleiner oder gleich {0} eingeben."), 4928 min: $.validator.format("Bitte einen Wert gröÃer oder gleich {0} eingeben.") 4929 }, 4930 es: { 4931 required: "Este campo es obligatorio.", 4932 remote: "Por favor, corrija este campo.", 4933 email: "Por favor, introduzca una dirección de correo válida.", 4934 url: "Por favor, introduzca una URL válida.", 4935 date: "Por favor, introduzca una fecha válida.", 4936 dateISO: "Por favor, introduzca una fecha válida (ISO).", 4937 number: "Por favor, introduzca un número válido.", 4938 digits: "Por favor, introduzca solo dÃgitos.", 4939 creditcard: "Por favor, introduzca un número de tarjeta de crédito válido.", 4940 equalTo: "Por favor, introduzca el mismo valor nuevamente.", 4941 maxlength: $.validator.format("Por favor, no introduzca más de {0} caracteres."), 4942 minlength: $.validator.format("Por favor, introduzca al menos {0} caracteres."), 4943 rangelength: $.validator.format("Por favor, introduzca un valor entre {0} y {1} caracteres."), 4944 range: $.validator.format("Por favor, introduzca un valor entre {0} y {1}."), 4945 max: $.validator.format("Por favor, introduzca un valor menor o igual a {0}."), 4946 min: $.validator.format("Por favor, introduzca un valor mayor o igual a {0}.") 4947 }, 4948 fr:{ 4949 required: "Ce champ est obligatoire.", 4950 remote: "Veuillez corriger ce champ.", 4951 email: "Veuillez entrer une adresse e-mail valide.", 4952 url: "Veuillez entrer une URL valide.", 4953 date: "Veuillez entrer une date valide.", 4954 dateISO: "Veuillez entrer une date valide (ISO).", 4955 number: "Veuillez entrer un numéro valide.", 4956 digits: "Veuillez entrer uniquement des chiffres.", 4957 creditcard: "Veuillez entrer un numéro de carte de crédit valide.", 4958 equalTo: "Veuillez entrer la même valeur à nouveau.", 4959 maxlength: $.validator.format("Veuillez ne pas entrer plus de {0} caractères."), 4960 minlength: $.validator.format("Veuillez entrer au moins {0} caractères."), 4961 rangelength: $.validator.format("Veuillez entrer une valeur entre {0} et {1} caractères."), 4962 range: $.validator.format("Veuillez entrer une valeur entre {0} et {1}."), 4963 max: $.validator.format("Veuillez entrer une valeur inférieure ou égale à {0}."), 4964 min: $.validator.format("Veuillez entrer une valeur supérieure ou égale à {0}.") 4965 }, 4966 it: { 4967 required: "Questo campo è obbligatorio.", 4968 remote: "Per favore, correggi questo campo.", 4969 email: "Per favore, inserisci un indirizzo email valido.", 4970 url: "Per favore, inserisci un URL valido.", 4971 date: "Per favore, inserisci una data valida.", 4972 dateISO: "Per favore, inserisci una data valida (ISO).", 4973 number: "Per favore, inserisci un numero valido.", 4974 digits: "Per favore, inserisci solo cifre.", 4975 creditcard: "Per favore, inserisci un numero di carta di credito valido.", 4976 equalTo: "Per favore, inserisci di nuovo lo stesso valore.", 4977 maxlength: $.validator.format("Per favore, non inserire più di {0} caratteri."), 4978 minlength: $.validator.format("Per favore, inserisci almeno {0} caratteri."), 4979 rangelength: $.validator.format("Per favore, inserisci un valore tra {0} e {1} caratteri."), 4980 range: $.validator.format("Per favore, inserisci un valore tra {0} e {1}."), 4981 max: $.validator.format("Per favore, inserisci un valore minore o uguale a {0}."), 4982 min: $.validator.format("Per favore, inserisci un valore maggiore o uguale a {0}.") 4983 } 4984 4985 }, 4986 autoCreateRanges: false, 4987 prototype: { 4988 init: function () { 4989 this.labelContainer = $(this.settings.errorLabelContainer); 4990 this.errorContext = this.labelContainer.length && this.labelContainer || $(this.currentForm); 4991 this.containers = $(this.settings.errorContainer).add(this.settings.errorLabelContainer); 4992 this.submitted = {}; 4993 this.valueCache = {}; 4994 this.pendingRequest = 0; 4995 this.pending = {}; 4996 this.invalid = {}; 4997 this.reset(); 4998 4999 var groups = (this.groups = {}), 5000 rules;
5001 $.each(this.settings.groups, function (key, value) { 5002 if (typeof value === "string") { 5003 value = value.split(/\s/); 5004 } 5005 $.each(value, function (index, name) { 5006 groups[name] = key; 5007 }); 5008 }); 5009 rules = this.settings.rules; 5010 $.each(rules, function (key, value) { 5011 rules[key] = $.validator.normalizeRule(value); 5012 }); 5013 5014 function delegate(event) { 5015 var validator = $.data(this.form, "validator"), 5016 eventType = "on" + event.type.replace(/^validate/, ""), 5017 settings = validator.settings; 5018 if (settings[eventType] && !$(this).is(settings.ignore)) { 5019 settings[eventType].call(validator, this, event); 5020 } 5021 } 5022 5023 $(this.currentForm) 5024 .on("focusin.validate focusout.validate keyup.validate", 5025 ":text, [type='password'], [type='file'], select, textarea, [type='number'], [type='search'], " + 5026 "[type='tel'], [type='url'], [type='email'], [type='datetime'], [type='date'], [type='month'], " + 5027 "[type='week'], [type='time'], [type='datetime-local'], [type='range'], [type='color'], " + 5028 "[type='radio'], [type='checkbox']", delegate) 5029 // Support: Chrome, oldIE 5030 // "select" is provided as event.target when clicking a option 5031 .on("click.validate", "select, option, [type='radio'], [type='checkbox']", delegate); 5032 5033 if (this.settings.invalidHandler) { 5034 $(this.currentForm).on("invalid-form.validate", this.settings.invalidHandler); 5035 } 5036 5037 // Add aria-required to any Static/Data/Class required fields before first validation 5038 // Screen readers require this attribute to be present before the initial submission http://www.w3.org/TR/WCAG-TECHS/ARIA2.html 5039 $(this.currentForm).find("[required], [data-rule-required], .required").attr("aria-required", "true"); 5040 }, 5041 // http://jqueryvalidation.org/Validator.form/ 5042 form: function () { 5043 this.checkForm(); 5044 $.extend(this.submitted, this.errorMap); 5045 this.invalid = $.extend({}, this.errorMap); 5046 if (!this.valid()) { 5047 $(this.currentForm).triggerHandler("invalid-form", [this]); 5048 } 5049 this.showErrors(); 5050 return this.valid(); 5051 }, 5052 checkForm: function () { 5053 this.prepareForm(); 5054 for (var i = 0, elements = (this.currentElements = this.elements()); elements[i]; i++) { 5055 this.check(elements[i]); 5056 } 5057 return this.valid(); 5058 }, 5059 // http://jqueryvalidation.org/Validator.element/ 5060 element: function (element) { 5061 var cleanElement = this.clean(element), 5062 checkElement = this.validationTargetFor(cleanElement), 5063 result = true; 5064 5065 this.lastElement = checkElement; 5066 5067 if (checkElement === undefined) { 5068 delete this.invalid[cleanElement.name]; 5069 } else { 5070 this.prepareElement(checkElement); 5071 this.currentElements = $(checkElement); 5072 5073 result = this.check(checkElement) !== false; 5074 if (result) { 5075 delete this.invalid[checkElement.name]; 5076 } else { 5077 this.invalid[checkElement.name] = true; 5078 } 5079 } 5080 // Add aria-invalid status for screen readers 5081 $(element).attr("aria-invalid", !result); 5082 5083 if (!this.numberOfInvalids()) { 5084 // Hide error containers on last error 5085 this.toHide = this.toHide.add(this.containers); 5086 } 5087 this.showErrors(); 5088 return result; 5089 }, 5090 // http://jqueryvalidation.org/Validator.showErrors/ 5091 showErrors: function (errors) { 5092 if (errors) { 5093 // add items to error list and map 5094 $.extend(this.errorMap, errors); 5095 this.errorList = []; 5096 for (var name in errors) { 5097 this.errorList.push({ 5098 message: errors[name], 5099 element: this.findByName(name)[0] 5100 }); 5101 } 5102 // remove items from success list 5103 this.successList = $.grep(this.successList, function (element) { 5104 return !(element.name in errors); 5105 }); 5106 } 5107 if (this.settings.showErrors) { 5108 this.settings.showErrors.call(this, this.errorMap, this.errorList); 5109 } else { 5110 this.defaultShowErrors(); 5111 } 5112 }, 5113 // http://jqueryvalidation.org/Validator.resetForm/ 5114 resetForm: function () { 5115 if ($.fn.resetForm) { 5116 $(this.currentForm).resetForm(); 5117 } 5118 this.submitted = {}; 5119 this.lastElement = null; 5120 this.prepareForm(); 5121 this.hideErrors(); 5122 var i, elements = this.elements() 5123 .removeData("previousValue") 5124 .removeAttr("aria-invalid"); 5125 5126 if (this.settings.unhighlight) { 5127 for (i = 0; elements[i]; i++) { 5128 this.settings.unhighlight.call(this, elements[i], 5129 this.settings.errorClass, ""); 5130 } 5131 } else { 5132 elements.removeClass(this.settings.errorClass); 5133 } 5134 }, 5135 numberOfInvalids: function () { 5136 return this.objectLength(this.invalid); 5137 }, 5138 objectLength: function (obj) { 5139 /* jshint unused: false */ 5140 var count = 0, 5141 i; 5142 for (i in obj) { 5143 count++; 5144 } 5145 return count; 5146 }, 5147 hideErrors: function () { 5148 this.hideThese(this.toHide); 5149 }, 5150 hideThese: function (errors) {
5151 errors.not(this.containers).text(""); 5152 this.addWrapper(errors).hide(); 5153 }, 5154 valid: function () { 5155 return this.size() === 0; 5156 }, 5157 size: function () { 5158 return this.errorList.length; 5159 }, 5160 focusInvalid: function () { 5161 if (this.settings.focusInvalid) { 5162 try { 5163 $(this.findLastActive() || this.errorList.length && this.errorList[0].element || []) 5164 .filter(":visible") 5165 .focus() 5166 // manually trigger focusin event; without it, focusin handler isn't called, findLastActive won't have anything to find 5167 .trigger("focusin"); 5168 } catch (e) { 5169 // ignore IE throwing errors when focusing hidden elements 5170 } 5171 } 5172 }, 5173 findLastActive: function () { 5174 var lastActive = this.lastActive; 5175 return lastActive && $.grep(this.errorList, function (n) { 5176 return n.element.name === lastActive.name; 5177 }).length === 1 && lastActive; 5178 }, 5179 elements: function () { 5180 var validator = this, 5181 rulesCache = {}; 5182 5183 // select all valid inputs inside the form (no submit or reset buttons) 5184 return $(this.currentForm) 5185 .find("input, select, textarea") 5186 .not(":submit, :reset, :image, :disabled") 5187 .not(this.settings.ignore) 5188 .filter(function () { 5189 if (!this.name && validator.settings.debug && window.console) { 5190 console.error("%o has no name assigned", this); 5191 } 5192 5193 // select only the first element for each name, and only those with rules specified 5194 if (this.name in rulesCache || !validator.objectLength($(this).rules())) { 5195 return false; 5196 } 5197 5198 rulesCache[this.name] = true; 5199 return true; 5200 }); 5201 }, 5202 clean: function (selector) { 5203 return $(selector)[0]; 5204 }, 5205 errors: function () { 5206 var errorClass = this.settings.errorClass.split(" ").join("."); 5207 return $(this.settings.errorElement + "." + errorClass, this.errorContext); 5208 }, 5209 reset: function () { 5210 this.successList = []; 5211 this.errorList = []; 5212 this.errorMap = {}; 5213 this.toShow = $([]); 5214 this.toHide = $([]); 5215 this.currentElements = $([]); 5216 }, 5217 prepareForm: function () { 5218 this.reset(); 5219 this.toHide = this.errors().add(this.containers); 5220 }, 5221 prepareElement: function (element) { 5222 this.reset(); 5223 this.toHide = this.errorsFor(element); 5224 }, 5225 elementValue: function (element) { 5226 var val, 5227 $element = $(element), 5228 type = element.type; 5229 5230 if (type === "radio" || type === "checkbox") { 5231 return this.findByName(element.name).filter(":checked").val(); 5232 } else if (type === "number" && typeof element.validity !== "undefined") { 5233 return element.validity.badInput ? false : $element.val(); 5234 } 5235 5236 val = $element.val(); 5237 if (typeof val === "string") { 5238 return val.replace(/\r/g, ""); 5239 } 5240 return val; 5241 }, 5242 check: function (element) { 5243 element = this.validationTargetFor(this.clean(element)); 5244 5245 var rules = $(element).rules(), 5246 rulesCount = $.map(rules, function (n, i) { 5247 return i; 5248 }).length, 5249 dependencyMismatch = false, 5250 val = this.elementValue(element), 5251 result, method, rule; 5252 5253 for (method in rules) { 5254 rule = { 5255 method: method, 5256 parameters: rules[method] 5257 }; 5258 try { 5259 5260 result = $.validator.methods[method].call(this, val, element, rule.parameters); 5261 5262 // if a method indicates that the field is optional and therefore valid, 5263 // don't mark it as valid when there are no other rules 5264 if (result === "dependency-mismatch" && rulesCount === 1) { 5265 dependencyMismatch = true; 5266 continue; 5267 } 5268 dependencyMismatch = false; 5269 5270 if (result === "pending") { 5271 this.toHide = this.toHide.not(this.errorsFor(element)); 5272 return; 5273 } 5274 5275 if (!result) { 5276 this.formatAndAdd(element, rule); 5277 return false; 5278 } 5279 } catch (e) { 5280 if (this.settings.debug && window.console) { 5281 console.log("Exception occurred when checking element " + element.i
vendor: 4,482 bytes, lines 5281-5392
5281d + ", check the '" + rule.method + "' method.", e); 5282 } 5283 if (e instanceof TypeError) { 5284 e.message += ". Exception occurred when checking element " + element.id + ", check the '" + rule.method + "' method."; 5285 } 5286 5287 throw e; 5288 } 5289 } 5290 if (dependencyMismatch) { 5291 return; 5292 } 5293 if (this.objectLength(rules)) { 5294 this.successList.push(element); 5295 } 5296 return true; 5297 }, 5298 // return the custom message for the given element and validation method 5299 // specified in the element's HTML5 data attribute 5300 // return the generic message if present and no method specific message is present 5301 customDataMessage: function (element, method) { 5302 return $(element).data("msg" + method.charAt(0).toUpperCase() + 5303 method.substring(1).toLowerCase()) || $(element).data("msg"); 5304 }, 5305 // return the custom message for the given element name and validation method 5306 customMessage: function (name, method) { 5307 var m = this.settings.messages[name]; 5308 return m && (m.constructor === String ? m : m[method]); 5309 }, 5310 // return the first defined argument, allowing empty strings 5311 findDefined: function () { 5312 for (var i = 0; i < arguments.length; i++) { 5313 if (arguments[i] !== undefined) { 5314 return arguments[i]; 5315 } 5316 } 5317 return undefined; 5318 }, 5319 defaultMessage: function (element, method) { 5320 return this.findDefined( 5321 this.customMessage(element.name, method), 5322 this.customDataMessage(element, method), 5323 // title is never undefined, so handle empty string as undefined 5324 !this.settings.ignoreTitle && element.title || undefined, 5325 $.validator.messages[this.settings.lang][method], 5326 "<strong>Warning: No message defined for " + element.name + "</strong>" 5327 ); 5328 }, 5329 formatAndAdd: function (element, rule) { 5330 var message = this.defaultMessage(element, rule.method), 5331 theregex = /\$?\{(\d+)\}/g; 5332 if (typeof message === "function") { 5333 message = message.call(this, rule.parameters, element); 5334 } else if (theregex.test(message)) { 5335 message = $.validator.format(message.replace(theregex, "{$1}"), rule.parameters); 5336 } 5337 this.errorList.push({ 5338 message: message, 5339 element: element, 5340 method: rule.method 5341 }); 5342 5343 this.errorMap[element.name] = message; 5344 this.submitted[element.name] = message; 5345 }, 5346 addWrapper: function (toToggle) { 5347 if (this.settings.wrapper) { 5348 toToggle = toToggle.add(toToggle.parent(this.settings.wrapper)); 5349 } 5350 return toToggle; 5351 }, 5352 defaultShowErrors: function () { 5353 var i, elements, error; 5354 for (i = 0; this.errorList[i]; i++) { 5355 error = this.errorList[i]; 5356 if (this.settings.highlight) { 5357 this.settings.highlight.call(this, error.element, this.settings.errorClass, this.settings.validClass); 5358 } 5359 this.showLabel(error.element, error.message); 5360 } 5361 if (this.errorList.length) { 5362 this.toShow = this.toShow.add(this.containers); 5363 } 5364 if (this.settings.success) { 5365 for (i = 0; this.successList[i]; i++) { 5366 this.showLabel(this.successList[i]); 5367 } 5368 } 5369 if (this.settings.unhighlight) { 5370 for (i = 0, elements = this.validElements(); elements[i]; i++) { 5371 this.settings.unhighlight.call(this, elements[i], this.settings.errorClass, this.settings.validClass); 5372 } 5373 } 5374 this.toHide = this.toHide.not(this.toShow); 5375 this.hideErrors(); 5376 this.addWrapper(this.toShow).show(); 5377 }, 5378 validElements: function () { 5379 return this.currentElements.not(this.invalidElements()); 5380 }, 5381 invalidElements: function () { 5382 return $(this.errorList).map(function () { 5383 return this.element; 5384 }); 5385 }, 5386 showLabel: function (element, message) { 5387 var place, group, errorID, 5388 error = this.errorsFor(element), 5389 elementID = this.idOrName(element), 5390 describedBy = $(element).attr("aria-describedby"); 5391 if (error.length) { 5392 // refresh error/success class
5393 error.removeClass(this.settings.validClass).addClass(this.settings.errorClass); 5394 // replace message on existing label 5395 error.html(message); 5396 } else { 5397 // create error element 5398 error = $("<" + this.settings.errorElement + ">") 5399 .attr("id", elementID + "-error") 5400 .addClass(this.settings.errorClass) 5401 .html(message || ""); 5402 5403 // Maintain reference to the element to be placed into the DOM 5404 place = error; 5405 if (this.settings.wrapper) { 5406 // make sure the element is visible, even in IE 5407 // actually showing the wrapped element is handled elsewhere 5408 place = error.hide().show().wrap("<" + this.settings.wrapper + "/>").parent(); 5409 } 5410 if (this.labelContainer.length) { 5411 this.labelContainer.append(place); 5412 } else if (this.settings.errorPlacement) { 5413 this.settings.errorPlacement(place, $(element)); 5414 } else { 5415 place.insertAfter(element); 5416 } 5417 5418 // Link error back to the element 5419 if (error.is("label")) { 5420 // If the error is a label, then associate using 'for' 5421 error.attr("for", elementID); 5422 } else if (error.parents("label[for='" + elementID + "']").length === 0) { 5423 // If the element is not a child of an associated label, then it's necessary 5424 // to explicitly apply aria-describedby 5425 5426 errorID = error.attr("id").replace(/(:|\.|\[|\]|\$)/g, "\\$1"); 5427 // Respect existing non-error aria-describedby 5428 if (!describedBy) { 5429 describedBy = errorID; 5430 } else if (!describedBy.match(new RegExp("\\b" + errorID + "\\b"))) { 5431 // Add to end of list if not already present 5432 describedBy += " " + errorID; 5433 } 5434 $(element).attr("aria-describedby", describedBy); 5435 5436 // If this element is grouped, then assign to all elements in the same group 5437 group = this.groups[element.name]; 5438 if (group) { 5439 $.each(this.groups, function (name, testgroup) { 5440 if (testgroup === group) { 5441 $("[name='" + name + "']", this.currentForm) 5442 .attr("aria-describedby", error.attr("id")); 5443 } 5444 }); 5445 } 5446 } 5447 } 5448 if (!message && this.settings.success) { 5449 error.text(""); 5450 if (typeof this.settings.success === "string") { 5451 error.addClass(this.settings.success); 5452 } else { 5453 this.settings.success(error, element); 5454 } 5455 } 5456 this.toShow = this.toShow.add(error); 5457 }, 5458 errorsFor: function (element) { 5459 var name = this.idOrName(element), 5460 describer = $(element).attr("aria-describedby"), 5461 selector = "label[for='" + name + "'], label[for='" + name + "'] *"; 5462 5463 // aria-describedby should directly reference the error element 5464 if (describer) { 5465 selector = selector + ", #" + describer.replace(/\s+/g, ", #"); 5466 } 5467 return this 5468 .errors() 5469 .filter(selector); 5470 }, 5471 idOrName: function (element) { 5472 return this.groups[element.name] || (this.checkable(element) ? element.name : element.id || element.name); 5473 }, 5474 validationTargetFor: function (element) { 5475 5476 // If radio/checkbox, validate first element in group instead 5477 if (this.checkable(element)) { 5478 element = this.findByName(element.name); 5479 } 5480 5481 // Always apply ignore filter 5482 return $(element).not(this.settings.ignore)[0]; 5483 }, 5484 checkable: function (element) { 5485 return (/radio|checkbox/i).test(element.type); 5486 }, 5487 findByName: function (name) { 5488 return $(this.currentForm).find("[name='" + name + "']"); 5489 }, 5490 getLength: function (value, element) { 5491 switch (element.nodeName.toLowerCase()) { 5492 case "select": 5493 return $("option:selected", element).length; 5494 case "input": 5495 if (this.checkable(element)) { 5496 return this.findByName(element.name).filter(":checked").length; 5497 } 5498 } 5499 return value.length; 5500 }, 5501 depend: function (param, element) { 5502 return this.dependTypes[typeof param] ? this.dependTypes[typeof param](param, element) : true; 5503 }, 5504 dependTypes: { 5505 "boolean": function (param) { 5506 return param; 5507 }, 5508 "string": function (param, element) { 5509 return !!$(param, element.form).length; 5510 }, 5511 "function": function (param, element) { 5512 return param(element); 5513 } 5514 }, 5515 optional: function (element) { 5516 var val = this.elementValue(element); 5517 return !$.validator.methods.required.call(this, val, element) && "dependency-mismatch"; 5518 }, 5519 startRequest: function (element) { 5520 if (!this.pending[element.name]) { 5521 this.pendingRequest++; 5522 this.pending[element.name] = true; 5523 } 5524 }, 5525 stopRequest: function (element, valid) { 5526 this.pendingRequest--; 5527 // sometimes synchronization fails, make sure pendingRequest is never < 0 5528 if (this.pendingRequest < 0) { 5529 this.pendingRequest = 0; 5530 } 5531 delete this.pending[element.name]; 5532 if (valid && this.pendingRequest === 0 && this.formSubmitted && this.form()) { 5533 $(this.currentForm).submit(); 5534 this.formSubmitted = false; 5535 } else if (!valid && this.pendingRequest === 0 && this.formSubmitted) { 5536 $(this.currentForm).triggerHandler("invalid-form", [this]); 5537 this.formSubmitted = false; 5538 } 5539 }, 5540 previousValue: function (element) { 5541 return $.data(element, "previousValue") || $.data(element, "previousValue", {
vendor: 8,446 bytes, lines 5542-5795
5542 old: null, 5543 valid: true, 5544 message: this.defaultMessage(element, "remote") 5545 }); 5546 }, 5547 // cleans up all forms and elements, removes validator-specific events 5548 destroy: function () { 5549 this.resetForm(); 5550 5551 $(this.currentForm) 5552 .off(".validate") 5553 .removeData("validator"); 5554 } 5555 5556 }, 5557 classRuleSettings: { 5558 required: { 5559 required: true 5560 }, 5561 email: { 5562 email: true 5563 }, 5564 url: { 5565 url: true 5566 }, 5567 date: { 5568 date: true 5569 }, 5570 dateISO: { 5571 dateISO: true 5572 }, 5573 number: { 5574 number: true 5575 }, 5576 digits: { 5577 digits: true 5578 }, 5579 creditcard: { 5580 creditcard: true 5581 } 5582 }, 5583 addClassRules: function (className, rules) { 5584 if (className.constructor === String) { 5585 this.classRuleSettings[className] = rules; 5586 } else { 5587 $.extend(this.classRuleSettings, className); 5588 } 5589 }, 5590 classRules: function (element) { 5591 var rules = {}, 5592 classes = $(element).attr("class"); 5593 5594 if (classes) { 5595 $.each(classes.split(" "), function () { 5596 if (this in $.validator.classRuleSettings) { 5597 $.extend(rules, $.validator.classRuleSettings[this]); 5598 } 5599 }); 5600 } 5601 return rules; 5602 }, 5603 normalizeAttributeRule: function (rules, type, method, value) { 5604 5605 // convert the value to a number for number inputs, and for text for backwards compability 5606 // allows type="date" and others to be compared as strings 5607 if (/min|max/.test(method) && (type === null || /number|range|text/.test(type))) { 5608 value = Number(value); 5609 5610 // Support Opera Mini, which returns NaN for undefined minlength 5611 if (isNaN(value)) { 5612 value = undefined; 5613 } 5614 } 5615 5616 if (value || value === 0) { 5617 rules[method] = value; 5618 } else if (type === method && type !== "range") { 5619 5620 // exception: the jquery validate 'range' method 5621 // does not test for the html5 'range' type 5622 rules[method] = true; 5623 } 5624 }, 5625 attributeRules: function (element) { 5626 var rules = {}, 5627 $element = $(element), 5628 type = element.getAttribute("type"), 5629 method, value; 5630 5631 for (method in $.validator.methods) { 5632 5633 // support for <input required> in both html5 and older browsers 5634 if (method === "required") { 5635 value = element.getAttribute(method); 5636 5637 // Some browsers return an empty string for the required attribute 5638 // and non-HTML5 browsers might have required="" markup 5639 if (value === "") { 5640 value = true; 5641 } 5642 5643 // force non-HTML5 browsers to return bool 5644 value = !!value; 5645 } else { 5646 value = $element.attr(method); 5647 } 5648 5649 this.normalizeAttributeRule(rules, type, method, value); 5650 } 5651 5652 // maxlength may be returned as -1, 2147483647 ( IE ) and 524288 ( safari ) for text inputs 5653 if (rules.maxlength && /-1|2147483647|524288/.test(rules.maxlength)) { 5654 delete rules.maxlength; 5655 } 5656 5657 return rules; 5658 }, 5659 dataRules: function (element) { 5660 var rules = {}, 5661 $element = $(element), 5662 type = element.getAttribute("type"), 5663 method, value; 5664 5665 for (method in $.validator.methods) { 5666 value = $element.data("rule" + method.charAt(0).toUpperCase() + method.substring(1).toLowerCase()); 5667 this.normalizeAttributeRule(rules, type, method, value); 5668 } 5669 return rules; 5670 }, 5671 staticRules: function (element) { 5672 var rules = {}, 5673 validator = $.data(element.form, "validator"); 5674 5675 if (validator.settings.rules) { 5676 rules = $.validator.normalizeRule(validator.settings.rules[element.name]) || {}; 5677 } 5678 return rules; 5679 }, 5680 normalizeRules: function (rules, element) { 5681 // handle dependency check 5682 $.each(rules, function (prop, val) { 5683 // ignore rule when param is explicitly false, eg. required:false 5684 if (val === false) { 5685 delete rules[prop]; 5686 return; 5687 } 5688 if (val.param || val.depends) { 5689 var keepRule = true; 5690 switch (typeof val.depends) { 5691 case "string": 5692 keepRule = !!$(val.depends, element.form).length; 5693 break; 5694 case "function": 5695 keepRule = val.depends.call(element, element); 5696 break; 5697 } 5698 if (keepRule) { 5699 rules[prop] = val.param !== undefined ? val.param : true; 5700 } else { 5701 delete rules[prop]; 5702 } 5703 } 5704 }); 5705 5706 // evaluate parameters 5707 $.each(rules, function (rule, parameter) { 5708 rules[rule] = $.isFunction(parameter) ? parameter(element) : parameter; 5709 }); 5710 5711 // clean number parameters 5712 $.each(["minlength", "maxlength"], function () { 5713 if (rules[this]) { 5714 rules[this] = Number(rules[this]); 5715 } 5716 }); 5717 $.each(["rangelength", "range"], function () { 5718 var parts; 5719 if (rules[this]) { 5720 if ($.isArray(rules[this])) { 5721 rules[this] = [Number(rules[this][0]), Number(rules[this][1])]; 5722 } else if (typeof rules[this] === "string") { 5723 parts = rules[this].replace(/[\[\]]/g, "").split(/[\s,]+/); 5724 rules[this] = [Number(parts[0]), Number(parts[1])]; 5725 } 5726 } 5727 }); 5728 5729 if ($.validator.autoCreateRanges) { 5730 // auto-create ranges 5731 if (rules.min != null && rules.max != null) { 5732 rules.range = [rules.min, rules.max]; 5733 delete rules.min; 5734 delete rules.max; 5735 } 5736 if (rules.minlength != null && rules.maxlength != null) { 5737 rules.rangelength = [rules.minlength, rules.maxlength]; 5738 delete rules.minlength; 5739 delete rules.maxlength; 5740 } 5741 } 5742 5743 return rules; 5744 }, 5745 // Converts a simple string to a {string: true} rule, e.g., "required" to {required:true} 5746 normalizeRule: function (data) { 5747 if (typeof data === "string") { 5748 var transformed = {}; 5749 $.each(data.split(/\s/), function () { 5750 transformed[this] = true; 5751 }); 5752 data = transformed; 5753 } 5754 return data; 5755 }, 5756 // http://jqueryvalidation.org/jQuery.validator.addMethod/ 5757 addMethod: function (name, method, message) { 5758 $.validator.methods[name] = method; 5759 $.validator.messages[name] = message !== undefined ? message : $.validator.messages[name]; 5760 if (method.length < 3) { 5761 $.validator.addClassRules(name, $.validator.normalizeRule(name)); 5762 } 5763 }, 5764 methods: { 5765 // http://jqueryvalidation.org/required-method/ 5766 required: function (value, element, param) { 5767 // check if dependency is met 5768 if (!this.depend(param, element)) { 5769 return "dependency-mismatch"; 5770 } 5771 if (element.nodeName.toLowerCase() === "select") { 5772 // could be an array for select-multiple or a string, both are fine this way 5773 var val = $(element).val(); 5774 return val && val.length > 0; 5775 } 5776 if (this.checkable(element)) { 5777 return this.getLength(value, element) > 0; 5778 } 5779 return value.length > 0; 5780 }, 5781 // http://jqueryvalidation.org/email-method/ 5782 email: function (value, element) { 5783 // From https://html.spec.whatwg.org/multipage/forms.html#valid-e-mail-address 5784 // Retrieved 2014-01-14 5785 // If you have a problem with this implementation, report a bug against the above spec 5786 // Or use custom methods to implement your own email validation 5787 return this.optional(element) || /^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test(value); 5788 }, 5789 // http://jqueryvalidation.org/url-method/ 5790 url: function (value, element) { 5791 5792 // Copyright (c) 2010-2013 Diego Perini, MIT licensed 5793 // https://gist.github.com/dperini/729294 5794 // see also https://mathiasbynens.be/demo/url-regex 5795 // modified to allow protocol-relative URLs
5796 return this.optional(element) || /^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})).?)(?::\d{2,5})?(?:[/?#]\S*)?$/i.test(value); 5797 }, 5798 // http://jqueryvalidation.org/date-method/ 5799 date: function (value, element) { 5800 return this.optional(element) || !/Invalid|NaN/.test(new Date(value).toString()); 5801 }, 5802 // http://jqueryvalidation.org/dateISO-method/ 5803 dateISO: function (value, element) { 5804 return this.optional(element) || /^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test(value); 5805 }, 5806 // http://jqueryvalidation.org/number-method/ 5807 number: function (value, element) { 5808 return this.optional(element) || /^(?:-?\d+|-?\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(value); 5809 }, 5810 // http://jqueryvalidation.org/digits-method/ 5811 digits: function (value, element) { 5812 return this.optional(element) || /^\d+$/.test(value); 5813 }, 5814 // http://jqueryvalidation.org/creditcard-method/ 5815 // based on http://en.wikipedia.org/wiki/Luhn_algorithm 5816 creditcard: function (value, element) { 5817 if (this.optional(element)) { 5818 return "dependency-mismatch"; 5819 } 5820 // accept only spaces, digits and dashes 5821 if (/[^0-9 \-]+/.test(value)) { 5822 return false; 5823 } 5824 var nCheck = 0, 5825 nDigit = 0, 5826 bEven = false, 5827 n, cDigit; 5828 5829 value = value.replace(/\D/g, ""); 5830 5831 // Basing min and max length on 5832 // http://developer.ean.com/general_info/Valid_Credit_Card_Types 5833 if (value.length < 13 || value.length > 19) { 5834 return false; 5835 } 5836 5837 for (n = value.length - 1; n >= 0; n--) { 5838 cDigit = value.charAt(n); 5839 nDigit = parseInt(cDigit, 10); 5840 if (bEven) { 5841 if ((nDigit *= 2) > 9) { 5842 nDigit -= 9; 5843 } 5844 } 5845 nCheck += nDigit; 5846 bEven = !bEven; 5847 } 5848 5849 return (nCheck % 10) === 0; 5850 }, 5851 // http://jqueryvalidation.org/minlength-method/ 5852 minlength: function (value, element, param) { 5853 var length = $.isArray(value) ? value.length : this.getLength(value, element); 5854 return this.optional(element) || length >= param; 5855 }, 5856 // http://jqueryvalidation.org/maxlength-method/ 5857 maxlength: function (value, element, param) { 5858 var length = $.isArray(value) ? value.length : this.getLength(value, element); 5859 return this.optional(element) || length <= param; 5860 }, 5861 // http://jqueryvalidation.org/rangelength-method/ 5862 rangelength: function (value, element, param) { 5863 var length = $.isArray(value) ? value.length : this.getLength(value, element); 5864 return this.optional(element) || (length >= param[0] && length <= param[1]); 5865 }, 5866 // http://jqueryvalidation.org/min-method/ 5867 min: function (value, element, param) { 5868 return this.optional(element) || value >= param; 5869 }, 5870 // http://jqueryvalidation.org/max-method/ 5871 max: function (value, element, param) { 5872 return this.optional(element) || value <= param; 5873 }, 5874 // http://jqueryvalidation.org/range-method/ 5875 range: function (value, element, param) { 5876 return this.optional(element) || (value >= param[0] && value <= param[1]); 5877 }, 5878 // http://jqueryvalidation.org/equalTo-method/ 5879 equalTo: function (value, element, param) { 5880 // bind to the blur event of the target in order to revalidate whenever the target field is updated 5881 // TODO find a way to bind the event just once, avoiding the unbind-rebind overhead 5882 var target = $(param); 5883 if (this.settings.onfocusout) { 5884 target.off(".validate-equalTo").on("blur.validate-equalTo", function () { 5885 $(element).valid(); 5886 }); 5887 } 5888 return value === target.val(); 5889 }, 5890 // http://jqueryvalidation.org/remote-method/ 5891 remote: function (value, element, param) { 5892 if (this.optional(element)) { 5893 return "dependency-mismatch"; 5894 } 5895 5896 var previous = this.previousValue(element), 5897 validator, data; 5898 5899 if (!this.settings.messages[element.name]) { 5900 this.settings.messages[element.name] = {}; 5901 } 5902 previous.originalMessage = this.settings.messages[element.name].remote; 5903 this.settings.messages[element.name].remote = previous.message; 5904 5905 param = typeof param === "string" && { 5906 url: param 5907 } || param; 5908 5909 if (previous.old === value) { 5910 return previous.valid; 5911 } 5912 5913 previous.old = value; 5914 validator = this;
5915 this.startRequest(element); 5916 data = {}; 5917 data[element.name] = value; 5918 $.ajax($.extend(true, { 5919 mode: "abort", 5920 port: "validate" + element.name, 5921 dataType: "json", 5922 data: data, 5923 context: validator.currentForm, 5924 success: function (response) { 5925 var valid = response === true || response === "true", 5926 errors, message, submitted; 5927 5928 validator.settings.messages[element.name].remote = previous.originalMessage; 5929 if (valid) { 5930 submitted = validator.formSubmitted; 5931 validator.prepareElement(element); 5932 validator.formSubmitted = submitted; 5933 validator.successList.push(element); 5934 delete validator.invalid[element.name]; 5935 validator.showErrors(); 5936 } else { 5937 errors = {}; 5938 message = response || validator.defaultMessage(element, "remote"); 5939 errors[element.name] = previous.message = $.isFunction(message) ? message(value) : message; 5940 validator.invalid[element.name] = true; 5941 validator.showErrors(errors); 5942 } 5943 previous.valid = valid; 5944 validator.stopRequest(element, valid); 5945 } 5946 }, param)); 5947 return "pending"; 5948 } 5949 } 5950 5951 }); 5952 5953 // ajax mode: abort 5954 // usage: $.ajax({ mode: "abort"[, port: "uniqueport"]}); 5955 // if mode:"abort" is used, the previous request on that port (port can be undefined) is aborted via XMLHttpRequest.abort() 5956 5957 var pendingRequests = {}, 5958 ajax; 5959 // Use a prefilter if available (1.5+) 5960 if ($.ajaxPrefilter) { 5961 $.ajaxPrefilter(function (settings, _, xhr) { 5962 var port = settings.port; 5963 if (settings.mode === "abort") { 5964 if (pendingRequests[port]) { 5965 pendingRequests[port].abort(); 5966 } 5967 pendingRequests[port] = xhr; 5968 } 5969 }); 5970 } else { 5971 // Proxy ajax 5972 ajax = $.ajax; 5973 $.ajax = function (settings) { 5974 var mode = ("mode" in settings ? settings : $.ajaxSettings).mode, 5975 port = ("port" in settings ? settings : $.ajaxSettings).port; 5976 if (mode === "abort") { 5977 if (pendingRequests[port]) { 5978 pendingRequests[port].abort(); 5979 } 5980 pendingRequests[port] = ajax.apply(this, arguments); 5981 return pendingRequests[port]; 5982 } 5983 return ajax.apply(this, arguments); 5984 }; 5985 } 5986 5987})); 5988 5989function notify(message, type) { 5990 if (type == 'cookie') { 5991 var basic_noti = { 5992 type: type, 5993 delay: 6000000, 5994 animate: { 5995 enter: 'animated slideInUp', 5996 exit: 'animated slideOutDown' 5997 } 5998 } 5999 } else { 6000 var basic_noti = { 6001 type: type, 6002 delay: $('.notification_popup_time').html(), 6003 animate: { 6004 enter: 'animated slideInUp', 6005 exit: 'animated slideOutDown' 6006 } 6007 } 6008 } 6009 $.notify(message, basic_noti); 6010} 6011$(function () { 6012 $(".validate_form").validate({ 6013 errorPlacement: function (error, element) { 6014 if (typeof element[0]['attributes']['type'] != 'undefined') { 6015 if (element[0]['attributes']['type']['value'] == 'checkbox') { 6016 error.appendTo(element.parent().addClass("has-error")); 6017 error.addClass('d-block'); 6018 } else { 6019 error.appendTo(element.parent().addClass("has-error")); 6020 } 6021 } else { 6022 error.appendTo(element.parent().addClass("has-error")); 6023 } 6024 }, 6025 success: function (label) { 6026 label.parent().removeClass("has-error"); 6027 label.remove(); 6028 } 6029 }); 6030});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.