PageSourceSearch

https://severlesgroup.ru/bitrix/cache/js/s1/sever/template_280e805…16f2ee9de4217c89214_v1.js?17905941611017538

js severlesgroup.ru collected 2026-10-07 19:30:20 UTC 1,017,538 bytes, 17,971 lines download raw bytes

1
2; /* Start:"a:4:{s:4:"full";s:62:"/local/templates/sever/build/main.e0b7c601.js?1790593303722209";s:6:"source";s:45:"/local/templates/sever/build/main.e0b7c601.js";s:3:"min";s:0:"";s:3:"map";s:0:"";}"*/
3/*! For license information please see main.e0b7c601.js.LICENSE.txt */
4(() => {
5    var e = {
6            755: function (e, t) {
7                var n;
8                !(function (t, n) {
9                    "use strict";
10                    "object" == typeof e.exports
11                        ? (e.exports = t.document
12                              ? n(t, !0)
13                              : function (e) {
14                                    if (!e.document) throw new Error("jQuery requires a window with a document");
15                                    return n(e);
16                                })
17                        : n(t);
18                })("undefined" != typeof window ? window : this, function (i, s) {
19                    "use strict";
20                    var o = [],
21                        r = Object.getPrototypeOf,
22                        a = o.slice,
23                        l = o.flat
24                            ? function (e) {
25                                  return o.flat.call(e);
26                              }
27                            : function (e) {
28                                  return o.concat.apply([], e);
29                              },
30                        c = o.push,
31                        d = o.indexOf,
32                        h = {},
33                        u = h.toString,
34                        p = h.hasOwnProperty,
35                        f = p.toString,
36                        g = f.call(Object),
37                        m = {},
38                        v = function (e) {
39                            return "function" == typeof e && "number" != typeof e.nodeType && "function" != typeof e.item;
40                        },
41                        b = function (e) {
42                            return null != e && e === e.window;
43                        },
44                        y = i.document,
45                        w = { type: !0, src: !0, nonce: !0, noModule: !0 };
46                    function x(e, t, n) {
47                        var i,
48                            s,
49                            o = (n = n || y).createElement("script");
50                        if (((o.text = e), t)) for (i in w) (s = t[i] || (t.getAttribute && t.getAttribute(i))) && o.setAttribute(i, s);
51                        n.head.appendChild(o).parentNode.removeChild(o);
52                    }
53                    function _(e) {
54                        return null == e ? e + "" : "object" == typeof e || "function" == typeof e ? h[u.call(e)] || "object" : typeof e;
55                    }
56                    var C = "3.6.1",
57                        T = function (e, t) {
58                            return new T.fn.init(e, t);
59                        };
60                    function E(e) {
61                        var t = !!e && "length" in e && e.length,
62                            n = _(e);
63                        return !v(e) && !b(e) && ("array" === n || 0 === t || ("number" == typeof t && t > 0 && t - 1 in e));
64                    }
65                    (T.fn = T.prototype = {
66                        jquery: C,
67                        constructor: T,
68                        length: 0,
69                        toArray: function () {
70                            return a.call(this);
71                        },
72                        get: function (e) {
73                            return null == e ? a.call(this) : e < 0 ? this[e + this.length] : this[e];
74                        },
75                        pushStack: function (e) {
76                            var t = T.merge(this.constructor(), e);
77                            return (t.prevObject = this), t;
78                        },
79                        each: function (e) {
80                            return T.each(this, e);
81                        },
82                        map: function (e) {
83                            return this.pushStack(
84                                T.map(this, function (t, n) {
85                                    return e.call(t, n, t);
86                                })
87                            );
88                        },
89                        slice: function () {
90                            return this.pushStack(a.apply(this, arguments));
91                        },
92                        first: function () {
93                            return this.eq(0);
94                        },
95                        last: function () {
96                            return this.eq(-1);
97                        },
98                        even: function () {
99                            return this.pushStack(
100                                T.grep(this, function (e, t) {
101                                    return (t + 1) % 2;
102                                })
103                            );
104                        },
105                        odd: function () {
106                            return this.pushStack(
107                                T.grep(this, function (e, t) {
108                                    return t % 2;
109                                })
110                            );
111                        },
112                        eq: function (e) {
113                            var t = this.length,
114                                n = +e + (e < 0 ? t : 0);
115                            return this.pushStack(n >= 0 && n < t ? [this[n]] : []);
116                        },
117                        end: function () {
118                            return this.prevObject || this.constructor();
119                        },
120                        push: c,
121                        sort: o.sort,
122                        splice: o.splice,
123                    }),
124                        (T.extend = T.fn.extend = function () {
125                            var e,
126                                t,
127                                n,
128                                i,
129                                s,
130                                o,
131                                r = arguments[0] || {},
132                                a = 1,
133                                l = arguments.length,
134                                c = !1;
135                            for ("boolean" == typeof r && ((c = r), (r = arguments[a] || {}), a++), "object" == typeof r || v(r) || (r = {}), a === l && ((r = this), a--); a < l; a++)
136                                if (null != (e = arguments[a]))
137                                    for (t in e)
138                                        (i = e[t]),
139                                            "__proto__" !== t &&
140                                                r !== i &&
141                                                (c && i && (T.isPlainObject(i) || (s = Array.isArray(i)))
142                                                    ? ((n = r[t]), (o = s && !Array.isArray(n) ? [] : s || T.isPlainObject(n) ? n : {}), (s = !1), (r[t] = T.extend(c, o, i)))
143                                                    : void 0 !== i && (r[t] = i));
144                            return r;
145                        }),
146                        T.extend({
147                            expando: "jQuery" + (C + Math.random()).replace(/\D/g, ""),
148                            isReady: !0,
149                            error: function (e) {
150                                throw new Error(e);
151                            },
152                            noop: function () {},
153                            isPlainObject: function (e) {
154                                var t, n;
155                                return !(!e || "[object Object]" !== u.call(e)) && (!(t = r(e)) || ("function" == typeof (n = p.call(t, "constructor") && t.constructor) && f.call(n) === g));
156                            },
157                            isEmptyObject: function (e) {
158                                var t;
159                                for (t in e) return !1;
160                                return !0;
161                            },
162                            globalEval: function (e, t, n) {
163                                x(e, { nonce: t && t.nonce }, n);
164                            },
165                            each: function (e, t) {
166                                var n,
167                                    i = 0;
168                                if (E(e)) for (n = e.length; i < n && !1 !== t.call(e[i], i, e[i]); i++);
169                                else for (i in e) if (!1 === t.call(e[i], i, e[i])) break;
170                                return e;
171                            },
172                            makeArray: function (e, t) {
173                                var n = t || [];
174                                return null != e && (E(Object(e)) ? T.merge(n, "string" == typeof e ? [e] : e) : c.call(n, e)), n;
175                            },
176                            inArray: function (e, t, n) {
177                                return null == t ? -1 : d.call(t, e, n);
178                            },
179                            merge: function (e, t) {
180                                for (var n = +t.length, i = 0, s = e.length; i < n; i++) e[s++] = t[i];
181                                return (e.length = s), e;
182                            },
183                            grep: function (e, t, n) {
184                                for (var i = [], s = 0, o = e.length, r = !n; s < o; s++) !t(e[s], s) !== r && i.push(e[s]);
185                                return i;
186                            },
187                            map: function (e, t, n) {
188                                var i,
189                                    s,
190                                    o = 0,
191                                    r = [];
192                                if (E(e)) for (i = e.length; o < i; o++) null != (s = t(e[o], o, n)) && r.push(s);
193                                else for (o in e) null != (s = t(e[o], o, n)) && r.push(s);
194                                return l(r);
195                            },
196                            guid: 1,
197                            support: m,
198                        }),
199                        "function" == typeof Symbol && (T.fn[Symbol.iterator] = o[Symbol.iterator]),
200                        T.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), function (e, t) {
201                            h["[object " + t + "]"] = t.toLowerCase();
202                        });
203                    var S = (function (e) {
204                        var t,
205                            n,
206                            i,
207                            s,
208                            o,
209                            r,
210                            a,
211                            l,
212                            c,
213                            d,
214                            h,
215                            u,
216                            p,
217                            f,
218                            g,
219                            m,
220                            v,
221                            b,
222                            y,
223                            w = "sizzle" + 1 * new Date(),
224                            x = e.document,
225                            _ = 0,
226                            C = 0,
227                            T = le(),
228                            E = le(),
229                            S = le(),
230                            A = le(),
231                            k = function (e, t) {
232                                return e === t && (h = !0), 0;
233                            },
234                            $ = {}.hasOwnProperty,
235                            L = [],
236                            P = L.pop,
237                            O = L.push,
238                            M = L.push,
239                            D = L.slice,
240                            N = function (e, t) {
241                                for (var n = 0, i = e.length; n < i; n++) if (e[n] === t) return n;
242                                return -1;
243                            },
244                            I = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
245                            z = "[\\x20\\t\\r\\n\\f]",
246                            j = "(?:\\\\[\\da-fA-F]{1,6}[\\x20\\t\\r\\n\\f]?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",
247                            F = "\\[[\\x20\\t\\r\\n\\f]*(" + j + ")(?:" + z + "*([*^$|!~]?=)" + z + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + j + "))|)" + z + "*\\]",
248                            H = ":(" + j + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + F + ")*)|.*)\\)|)",
249                            R = new RegExp(z + "+", "g"),
250                            B = new RegExp("^[\\x20\\t\\r\\n\\f]+|((?:^|[^\\\\])(?:\\\\.)*)[\\x20\\t\\r\\n\\f]+$", "g"),
251                            q = new RegExp("^[\\x20\\t\\r\\n\\f]*,[\\x20\\t\\r\\n\\f]*"),
252                            W = new RegExp("^[\\x20\\t\\r\\n\\f]*([>+~]|[\\x20\\t\\r\\n\\f])[\\x20\\t\\r\\n\\f]*"),
253                            V = new RegExp(z + "|>"),
254                            G = new RegExp(H),
255                            X = new RegExp("^" + j + "$"),
256                            Y = {
257                                ID: new RegExp("^#(" + j + ")"),
258                                CLASS: new RegExp("^\\.(" + j + ")"),
259                                TAG: new RegExp("^(" + j + "|[*])"),
260                                ATTR: new RegExp("^" + F),
261                                PSEUDO: new RegExp("^" + H),
262                                CHILD: new RegExp(
263                                    "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\([\\x20\\t\\r\\n\\f]*(even|odd|(([+-]|)(\\d*)n|)[\\x20\\t\\r\\n\\f]*(?:([+-]|)[\\x20\\t\\r\\n\\f]*(\\d+)|))[\\x20\\t\\r\\n\\f]*\\)|)",
264                                    "i"
265                                ),
266                                bool: new RegExp("^(?:" + I + ")$", "i"),
267                                needsContext: new RegExp("^[\\x20\\t\\r\\n\\f]*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\([\\x20\\t\\r\\n\\f]*((?:-\\d)?\\d*)[\\x20\\t\\r\\n\\f]*\\)|)(?=[^-]|$)", "i"),
268                            },
269                            U = /HTML$/i,
270                            K = /^(?:input|select|textarea|button)$/i,
271                            Z = /^h\d$/i,
272                            Q = /^[^{]+\{\s*\[native \w/,
273                            J = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
274                            ee = /[+~]/,
275                            te = new RegExp("\\\\[\\da-fA-F]{1,6}[\\x20\\t\\r\\n\\f]?|\\\\([^\\r\\n\\f])", "g"),
276                            ne = function (e, t) {
277                                var n = "0x" + e.slice(1) - 65536;
278                                return t || (n < 0 ? String.fromCharCode(n + 65536) : String.fromCharCode((n >> 10) | 55296, (1023 & n) | 56320));
279                            },
280                            ie = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,
281                            se = function (e, t) {
282                                return t ? ("\0" === e ? "�" : e.slice(0, -1) + "\\" + e.charCodeAt(e.length - 1).toString(16) + " ") : "\\" + e;
283                            },
284                            oe = function () {
285                                u();
286                            },
287                            re = we(
288                                function (e) {
289                                    return !0 === e.disabled && "fieldset" === e.nodeName.toLowerCase();
290                                },
291                                { dir: "parentNode", next: "legend" }
292                            );
293                        try {
294                            M.apply((L = D.call(x.childNodes)), x.childNodes), L[x.childNodes.length].nodeType;
295                        } catch (e) {
296                            M = {
297                                apply: L.length
298                                    ? function (e, t) {
299                                          O.apply(e, D.call(t));
300                                      }
301                                    : function (e, t) {
302                                          for (var n = e.length, i = 0; (e[n++] = t[i++]); 
302);
303                                          e.length = n - 1;
304                                      },
305                            };
306                        }
307                        function ae(e, t, i, s) {
308                            var o,
309                                a,
310                                c,
311                                d,
312                                h,
313                                f,
314                                v,
315                                b = t && t.ownerDocument,
316                                x = t ? t.nodeType : 9;
317                            if (((i = i || []), "string" != typeof e || !e || (1 !== x && 9 !== x && 11 !== x))) return i;
318                            if (!s && (u(t), (t = t || p), g)) {
319                                if (11 !== x && (h = J.exec(e)))
320                                    if ((o = h[1])) {
321                                        if (9 === x) {
322                                            if (!(c = t.getElementById(o))) return i;
323                                            if (c.id === o) return i.push(c), i;
324                                        } else if (b && (c = b.getElementById(o)) && y(t, c) && c.id === o) return i.push(c), i;
325                                    } else {
326                                        if (h[2]) return M.apply(i, t.getElementsByTagName(e)), i;
327                                        if ((o = h[3]) && n.getElementsByClassName && t.getElementsByClassName) return M.apply(i, t.getElementsByClassName(o)), i;
328                                    }
329                                if (n.qsa && !A[e + " "] && (!m || !m.test(e)) && (1 !== x || "object" !== t.nodeName.toLowerCase())) {
330                                    if (((v = e), (b = t), 1 === x && (V.test(e) || W.test(e)))) {
331                                        for (((b = (ee.test(e) && ve(t.parentNode)) || t) === t && n.scope) || ((d = t.getAttribute("id")) ? (d = d.replace(ie, se)) : t.setAttribute("id", (d = w))), a = (f = r(e)).length; a--; )
332                                            f[a] = (d ? "#" + d : ":scope") + " " + ye(f[a]);
333                                        v = f.join(",");
334                                    }
335                                    try {
336                                        return M.apply(i, b.querySelectorAll(v)), i;
337                                    } catch (t) {
338                                        A(e, !0);
339                                    } finally {
340                                        d === w && t.removeAttribute("id");
341                                    }
342                                }
343                            }
344                            return l(e.replace(B, "$1"), t, i, s);
345                        }
346                        function le() {
347                            var e = [];
348                            return function t(n, s) {
349                                return e.push(n + " ") > i.cacheLength && delete t[e.shift()], (t[n + " "] = s);
350                            };
351                        }
352                        function ce(e) {
353                            return (e[w] = !0), e;
354                        }
355                        function de(e) {
356                            var t = p.createElement("fieldset");
357                            try {
358                                return !!e(t);
359                            } catch (e) {
360                                return !1;
361                            } finally {
362                                t.parentNode && t.parentNode.removeChild(t), (t = null);
363                            }
364                        }
365                        function he(e, t) {
366                            for (var n = e.split("|"), s = n.length; s--; ) i.attrHandle[n[s]] = t;
367                        }
368                        function ue(e, t) {
369                            var n = t && e,
370                                i = n && 1 === e.nodeType && 1 === t.nodeType && e.sourceIndex - t.sourceIndex;
371                            if (i) return i;
372                            if (n) for (; (n = n.nextSibling); ) if (n === t) return -1;
373                            return e ? 1 : -1;
374                        }
375                        function pe(e) {
376                            return function (t) {
377                                return "input" === t.nodeName.toLowerCase() && t.type === e;
378                            };
379                        }
380                        function fe(e) {
381                            return function (t) {
382                                var n = t.nodeName.toLowerCase();
383                                return ("input" === n || "button" === n) && t.type === e;
384                            };
385                        }
386                        function ge(e) {
387                            return function (t) {
388                                return "form" in t
389                                    ? t.parentNode && !1 === t.disabled
390                                        ? "label" in t
391                                            ? "label" in t.parentNode
392                                                ? t.parentNode.disabled === e
393                                                : t.disabled === e
394                                            : t.isDisabled === e || (t.isDisabled !== !e && re(t) === e)
395                                        : t.disabled === e
396                                    : "label" in t && t.disabled === e;
397                            };
398                        }
399                        function me(e) {
400                            return ce(function (t) {
401                                return (
402                                    (t = +t),
403                                    ce(function (n, i) {
404                                        for (var s, o = e([], n.length, t), r = o.length; r--; ) n[(s = o[r])] && (n[s] = !(i[s] = n[s]));
405                                    })
406                                );
407                            });
408                        }
409                        function ve(e) {
410                            return e && void 0 !== e.getElementsByTagName && e;
411                        }
412                        for (t in ((n = ae.support = {}),
413                        (o = ae.isXML = function (e) {
414                            var t = e && e.namespaceURI,
415                                n = e && (e.ownerDocument || e).documentElement;
416                            return !U.test(t || (n && n.nodeName) || "HTML");
417                        }),
418                        (u = ae.setDocument = function (e) {
419                            var t,
420                                s,
421                                r = e ? e.ownerDocument || e : x;
422                            return r != p && 9 === r.nodeType && r.documentElement
423                                ? ((f = (p = r).documentElement),
424                                  (g = !o(p)),
425                                  x != p && (s = p.defaultView) && s.top !== s && (s.addEventListener ? s.addEventListener("unload", oe, !1) : s.attachEvent && s.attachEvent("onunload", oe)),
426                                  (n.scope = de(function (e) {
427                                      return f.appendChild(e).appendChild(p.createElement("div")), void 0 !== e.querySelectorAll && !e.querySelectorAll(":scope fieldset div").length;
428                                  })),
429                                  (n.attributes = de(function (e) {
430                                      return (e.className = "i"), !e.getAttribute("className");
431                                  })),
432                                  (n.getElementsByTagName = de(function (e) {
433                                      return e.appendChild(p.createComment("")), !e.getElementsByTagName("*").length;
434                                  })),
435                                  (n.getElementsByClassName = Q.test(p.getElementsByClassName)),
436                                  (n.getById = de(function (e) {
437                                      return (f.appendChild(e).id = w), !p.getElementsByName || !p.getElementsByName(w).length;
438                                  })),
439                                  n.getById
440                                      ? ((i.filter.ID = function (e) {
441                                            var t = e.replace(te, ne);
442                                            return function (e) {
443                                                return e.getAttribute("id") === t;
444                                            };
445                                        }),
446                                        (i.find.ID = function (e, t) {
447                                            if (void 0 !== t.getElementById && g) {
448                                                var n = t.getElementById(e);
449                                                return n ? [n] : [];
450                                            }
451                                        }))
452                                      : ((i.filter.ID = function (e) {
453                                            var t = e.replace(te, ne);
454                                            return function (e) {
455                                                var n = void 0 !== e.getAttributeNode && e.getAttributeNode("id");
456                                                return n && n.value === t;
457                                            };
458                                        }),
459                                        (i.find.ID = function (e, t) {
460                                            if (void 0 !== t.getElementById && g) {
461                                                var n,
462                                                    i,
463                                                    s,
464                                                    o = t.getElementById(e);
465                                                if (o) {
466                                                    if ((n = o.getAttributeNode("id")) && n.value === e) return [o];
467                                                    for (s = t.getElementsByName(e), i = 0; (o = s[i++]); ) if ((n = o.getAttributeNode("id")) && n.value === e) return [o];
468                                                }
469                                                return [];
470                                            }
471                                        })),
472                                  (i.find.TAG = n.getElementsByTagName
473                                      ? function (e, t) {
474                                            return void 0 !== t.getElementsByTagName ? t.getElementsByTagName(e) : n.qsa ? t.querySelectorAll(e) : void 0;
475                                        }
476                                      : function (e, t) {
477                                            var n,
478                                                i = [],
479                                                s = 0,
480                                                o = t.getElementsByTagName(e);
481                                            if ("*" === e) {
482                                                for (; (n = o[s++]); ) 1 === n.nodeType && i.push(n);
483                                                return i;
484                                            }
485                                            return o;
486                                        }),
487                                  (i.find.CLASS =
488                                      n.getElementsByClassName &&
489                                      function (e, t) {
490                                          if (void 0 !== t.getElementsByClassName && g) return t.getElementsByClassName(e);
491                                      }),
492                                  (v = []),
493                                  (m = []),
494                                  (n.qsa = Q.test(p.querySelectorAll)) &&
495                                      (de(function (e) {
496                                          var t;
497                                          (f.appendChild(e).innerHTML = "<a id='" + w + "'></a><select id='" + w + "-\r\\' msallowcapture=''><option selected=''></option></select>"),
498                                              e.querySelectorAll("[msallowcapture^='']").length && m.push("[*^$]=[\\x20\\t\\r\\n\\f]*(?:''|\"\")"),
499                                              e.querySelectorAll("[selected]").length || m.push("\\[[\\x20\\t\\r\\n\\f]*(?:value|" + I + ")"),
500                                              e.querySelectorAll("[id~=" + w + "-]").length || m.push("~="),
501                                              (t = p.createElement("input")).setAttribute("name", ""),
502                                              e.appendChild(t),
503                                              e.querySelectorAll("[name='']").length || m.push("\\[[\\x20\\t\\r\\n\\f]*name[\\x20\\t\\r\\n\\f]*=[\\x20\\t\\r\\n\\f]*(?:''|\"\")"),
504                                              e.querySelectorAll(":checked").length || m.push(":checked"),
505                                              e.querySelectorAll("a#" + w + "+*").length || m.push(".#.+[+~]"),
506                                              e.querySelectorAll("\\\f"),
507                                              m.push("[\\r\\n\\f]");
508                                      }),
509                                      de(function (e) {
510                                          e.innerHTML = "<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";
511                                          var t = p.createElement("input");
512                                          t.setAttribute("type", "hidden"),
513                                              e.appendChild(t).setAttribute("name", "D"),
514                                              e.querySelectorAll("[name=d]").length && m.push("name[\\x20\\t\\r\\n\\f]*[*^$|!~]?="),
515                                              2 !== e.querySelectorAll(":enabled").length && m.push(":enabled", ":disabled"),
516                                              (f.appendChild(e).disabled = !0),
517                                              2 !== e.querySelectorAll(":disabled").length && m.push(":enabled", ":disabled"),
518                                              e.querySelectorAll("*,:x"),
519                                              m.push(",.*:");
520                                      })),
521                                  (n.matchesSelector = Q.test((b = f.matches || f.webkitMatchesSelector || f.mozMatchesSelector || f.oMatchesSelector || f.msMatchesSelector))) &&
522                                      de(function (e) {
523                                          (n.disconnectedMatch = b.call(e, "*")), b.call(e, "[s!='']:x"), v.push("!=", H);
524                                      }),
525                                  (m = m.length && new RegExp(m.join("|"))),
526                                  (v = v.length && new RegExp(v.j
526oin("|"))),
527                                  (t = Q.test(f.compareDocumentPosition)),
528                                  (y =
529                                      t || Q.test(f.contains)
530                                          ? function (e, t) {
531                                                var n = 9 === e.nodeType ? e.documentElement : e,
532                                                    i = t && t.parentNode;
533                                                return e === i || !(!i || 1 !== i.nodeType || !(n.contains ? n.contains(i) : e.compareDocumentPosition && 16 & e.compareDocumentPosition(i)));
534                                            }
535                                          : function (e, t) {
536                                                if (t) for (; (t = t.parentNode); ) if (t === e) return !0;
537                                                return !1;
538                                            }),
539                                  (k = t
540                                      ? function (e, t) {
541                                            if (e === t) return (h = !0), 0;
542                                            var i = !e.compareDocumentPosition - !t.compareDocumentPosition;
543                                            return (
544                                                i ||
545                                                (1 & (i = (e.ownerDocument || e) == (t.ownerDocument || t) ? e.compareDocumentPosition(t) : 1) || (!n.sortDetached && t.compareDocumentPosition(e) === i)
546                                                    ? e == p || (e.ownerDocument == x && y(x, e))
547                                                        ? -1
548                                                        : t == p || (t.ownerDocument == x && y(x, t))
549                                                        ? 1
550                                                        : d
551                                                        ? N(d, e) - N(d, t)
552                                                        : 0
553                                                    : 4 & i
554                                                    ? -1
555                                                    : 1)
556                                            );
557                                        }
558                                      : function (e, t) {
559                                            if (e === t) return (h = !0), 0;
560                                            var n,
561                                                i = 0,
562                                                s = e.parentNode,
563                                                o = t.parentNode,
564                                                r = [e],
565                                                a = [t];
566                                            if (!s || !o) return e == p ? -1 : t == p ? 1 : s ? -1 : o ? 1 : d ? N(d, e) - N(d, t) : 0;
567                                            if (s === o) return ue(e, t);
568                                            for (n = e; (n = n.parentNode); ) r.unshift(n);
569                                            for (n = t; (n = n.parentNode); ) a.unshift(n);
570                                            for (; r[i] === a[i]; ) i++;
571                                            return i ? ue(r[i], a[i]) : r[i] == x ? -1 : a[i] == x ? 1 : 0;
572                                        }),
573                                  p)
574                                : p;
575                        }),
576                        (ae.matches = function (e, t) {
577                            return ae(e, null, null, t);
578                        }),
579                        (ae.matchesSelector = function (e, t) {
580                            if ((u(e), n.matchesSelector && g && !A[t + " "] && (!v || !v.test(t)) && (!m || !m.test(t))))
581                                try {
582                                    var i = b.call(e, t);
583                                    if (i || n.disconnectedMatch || (e.document && 11 !== e.document.nodeType)) return i;
584                                } catch (e) {
585                                    A(t, !0);
586                                }
587                            return ae(t, p, null, [e]).length > 0;
588                        }),
589                        (ae.contains = function (e, t) {
590                            return (e.ownerDocument || e) != p && u(e), y(e, t);
591                        }),
592                        (ae.attr = function (e, t) {
593                            (e.ownerDocument || e) != p && u(e);
594                            var s = i.attrHandle[t.toLowerCase()],
595                                o = s && $.call(i.attrHandle, t.toLowerCase()) ? s(e, t, !g) : void 0;
596                            return void 0 !== o ? o : n.attributes || !g ? e.getAttribute(t) : (o = e.getAttributeNode(t)) && o.specified ? o.value : null;
597                        }),
598                        (ae.escape = function (e) {
599                            return (e + "").replace(ie, se);
600                        }),
601                        (ae.error = function (e) {
602                            throw new Error("Syntax error, unrecognized expression: " + e);
603                        }),
604                        (ae.uniqueSort = function (e) {
605                            var t,
606                                i = [],
607                                s = 0,
608                                o = 0;
609                            if (((h = !n.detectDuplicates), (d = !n.sortStable && e.slice(0)), e.sort(k), h)) {
610                                for (; (t = e[o++]); ) t === e[o] && (s = i.push(o));
611                                for (; s--; ) e.splice(i[s], 1);
612                            }
613                            return (d = null), e;
614                        }),
615                        (s = ae.getText = function (e) {
616                            var t,
617                                n = "",
618                                i = 0,
619                                o = e.nodeType;
620                            if (o) {
621                                if (1 === o || 9 === o || 11 === o) {
622                                    if ("string" == typeof e.textContent) return e.textContent;
623                                    for (e = e.firstChild; e; e = e.nextSibling) n += s(e);
624                                } else if (3 === o || 4 === o) return e.nodeValue;
625                            } else for (; (t = e[i++]); ) n += s(t);
626                            return n;
627                        }),
628                        (i = ae.selectors = {
629                            cacheLength: 50,
630                            createPseudo: ce,
631                            match: Y,
632                            attrHandle: {},
633                            find: {},
634                            relative: { ">": { dir: "parentNode", first: !0 }, " ": { dir: "parentNode" }, "+": { dir: "previousSibling", first: !0 }, "~": { dir: "previousSibling" } },
635                            preFilter: {
636                                ATTR: function (e) {
637                                    return (e[1] = e[1].replace(te, ne)), (e[3] = (e[3] || e[4] || e[5] || "").replace(te, ne)), "~=" === e[2] && (e[3] = " " + e[3] + " "), e.slice(0, 4);
638                                },
639                                CHILD: function (e) {
640                                    return (
641                                        (e[1] = e[1].toLowerCase()),
642                                        "nth" === e[1].slice(0, 3)
643                                            ? (e[3] || ae.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])))
644                                            : e[3] && ae.error(e[0]),
645                                        e
646                                    );
647                                },
648                                PSEUDO: function (e) {
649                                    var t,
650                                        n = !e[6] && e[2];
651                                    return Y.CHILD.test(e[0])
652                                        ? null
653                                        : (e[3] ? (e[2] = e[4] || e[5] || "") : n && G.test(n) && (t = r(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));
654                                },
655                            },
656                            filter: {
657                                TAG: function (e) {
658                                    var t = e.replace(te, ne).toLowerCase();
659                                    return "*" === e
660                                        ? function () {
661                                              return !0;
662                                          }
663                                        : function (e) {
664                                              return e.nodeName && e.nodeName.toLowerCase() === t;
665                                          };
666                                },
667                                CLASS: function (e) {
668                                    var t = T[e + " "];
669                                    return (
670                                        t ||
671                                        ((t = new RegExp("(^|[\\x20\\t\\r\\n\\f])" + e + "(" + z + "|$)")) &&
672                                            T(e, function (e) {
673                                                return t.test(("string" == typeof e.className && e.className) || (void 0 !== e.getAttribute && e.getAttribute("class")) || "");
674                                            }))
675                                    );
676                                },
677                                ATTR: function (e, t, n) {
678                                    return function (i) {
679                                        var s = ae.attr(i, e);
680                                        return null == s
681                                            ? "!=" === t
682                                            : !t ||
683                                                  ((s += ""),
684                                                  "=" === t
685                                                      ? s === n
686                                                      : "!=" === t
687                                                      ? s !== n
688                                                      : "^=" === t
689                                                      ? n && 0 === s.indexOf(n)
690                                                      : "*=" === t
691                                                      ? n && s.indexOf(n) > -1
692                                                      : "$=" === t
693                                                      ? n && s.slice(-n.length) === n
694                                                      : "~=" === t
695                                                      ? (" " + s.replace(R, " ") + " ").indexOf(n) > -1
696                                                      : "|=" === t && (s === n || s.slice(0, n.length + 1) === n + "-"));
697                                    };
698                                },
699                                CHILD: function (e, t, n, i, s) {
700                                    var o = "nth" !== e.slice(0, 3),
701                                        r = "last" !== e.slice(-4),
702                                        a = "of-type" === t;
703                                    return 1 === i && 0 === s
704                                        ? function (e) {
705                                              return !!e.parentNode;
706                                          }
707                                        : function (t, n, l) {
708                                              var c,
709                                                  d,
710                                                  h,
711                                                  u,
712                                                  p,
713                                                  f,
714                                                  g = o !== r ? "nextSibling" : "previousSibling",
715                                                  m = t.parentNode,
716                                                  v = a && t.nodeName.toLowerCase(),
717                                                  b = !l && !a,
718                                                  y = !1;
719                                              if (m) {
720                                                  if (o) {
721                                                      for (; g; ) {
722                                                          for (u = t; (u = u[g]);
722 ) if (a ? u.nodeName.toLowerCase() === v : 1 === u.nodeType) return !1;
723                                                          f = g = "only" === e && !f && "nextSibling";
724                                                      }
725                                                      return !0;
726                                                  }
727                                                  if (((f = [r ? m.firstChild : m.lastChild]), r && b)) {
728                                                      for (
729                                                          y = (p = (c = (d = (h = (u = m)[w] || (u[w] = {}))[u.uniqueID] || (h[u.uniqueID] = {}))[e] || [])[0] === _ && c[1]) && c[2], u = p && m.childNodes[p];
730                                                          (u = (++p && u && u[g]) || (y = p = 0) || f.pop());
731
732                                                      )
733                                                          if (1 === u.nodeType && ++y && u === t) {
734                                                              d[e] = [_, p, y];
735                                                              break;
736                                                          }
737                                                  } else if ((b && (y = p = (c = (d = (h = (u = t)[w] || (u[w] = {}))[u.uniqueID] || (h[u.uniqueID] = {}))[e] || [])[0] === _ && c[1]), !1 === y))
738                                                      for (
739                                                          ;
740                                                          (u = (++p && u && u[g]) || (y = p = 0) || f.pop()) &&
741                                                          ((a ? u.nodeName.toLowerCase() !== v : 1 !== u.nodeType) || !++y || (b && ((d = (h = u[w] || (u[w] = {}))[u.uniqueID] || (h[u.uniqueID] = {}))[e] = [_, y]), u !== t));
742
743                                                      );
744                                                  return (y -= s) === i || (y % i == 0 && y / i >= 0);
745                                              }
746                                          };
747                                },
748                                PSEUDO: function (e, t) {
749                                    var n,
750                                        s = i.pseudos[e] || i.setFilters[e.toLowerCase()] || ae.error("unsupported pseudo: " + e);
751                                    return s[w]
752                                        ? s(t)
753                                        : s.length > 1
754                                        ? ((n = [e, e, "", t]),
755                                          i.setFilters.hasOwnProperty(e.toLowerCase())
756                                              ? ce(function (e, n) {
757                                                    for (var i, o = s(e, t), r = o.length; r--; ) e[(i = N(e, o[r]))] = !(n[i] = o[r]);
758                                                })
759                                              : function (e) {
760                                                    return s(e, 0, n);
761                                                })
762                                        : s;
763                                },
764                            },
765                            pseudos: {
766                                not: ce(function (e) {
767                                    var t = [],
768                                        n = [],
769                                        i = a(e.replace(B, "$1"));
770                                    return i[w]
771                                        ? ce(function (e, t, n, s) {
772                                              for (var o, r = i(e, null, s, []), a = e.length; a--; ) (o = r[a]) && (e[a] = !(t[a] = o));
773                                          })
774                                        : function (e, s, o) {
775                                              return (t[0] = e), i(t, null, o, n), (t[0] = null), !n.pop();
776                                          };
777                                }),
778                                has: ce(function (e) {
779                                    return function (t) {
780                                        return ae(e, t).length > 0;
781                                    };
782                                }),
783                                contains: ce(function (e) {
784                                    return (
785                                        (e = e.replace(te, ne)),
786                                        function (t) {
787                                            return (t.textContent || s(t)).indexOf(e) > -1;
788                                        }
789                                    );
790                                }),
791                                lang: ce(function (e) {
792                                    return (
793                                        X.test(e || "") || ae.error("unsupported lang: " + e),
794                                        (e = e.replace(te, ne).toLowerCase()),
795                                        function (t) {
796                                            var n;
797                                            do {
798                                                if ((n = g ? t.lang : t.getAttribute("xml:lang") || t.getAttribute("lang"))) return (n = n.toLowerCase()) === e || 0 === n.indexOf(e + "-");
799                                            } while ((t = t.parentNode) && 1 === t.nodeType);
800                                            return !1;
801                                        }
802                                    );
803                                }),
804                                target: function (t) {
805                                    var n = e.location && e.location.hash;
806                                    return n && n.slice(1) === t.id;
807                                },
808                                root: function (e) {
809                                    return e === f;
810                                },
811                                focus: function (e) {
812                                    return e === p.activeElement && (!p.hasFocus || p.hasFocus()) && !!(e.type || e.href || ~e.tabIndex);
813                                },
814                                enabled: ge(!1),
815                                disabled: ge(!0),
816                                checked: function (e) {
817                                    var t = e.nodeName.toLowerCase();
818                                    return ("input" === t && !!e.checked) || ("option" === t && !!e.selected);
819                                },
820                                selected: function (e) {
821                                    return e.parentNode && e.parentNode.selectedIndex, !0 === e.selected;
822                                },
823                                empty: function (e) {
824                                    for (e = e.firstChild; e; e = e.nextSibling) if (e.nodeType < 6) return !1;
825                                    return !0;
826                                },
827                                parent: function (e) {
828                                    return !i.pseudos.empty(e);
829                                },
830                                header: function (e) {
831                                    return Z.test(e.nodeName);
832                                },
833                                input: function (e) {
834                                    return K.test(e.nodeName);
835                                },
836                                button: function (e) {
837                                    var t = e.nodeName.toLowerCase();
838                                    return ("input" === t && "button" === e.type) || "button" === t;
839                                },
840                                text: function (e) {
841                                    var t;
842                                    return "input" === e.nodeName.toLowerCase() && "text" === e.type && (null == (t = e.getAttribute("type")) || "text" === t.toLowerCase());
843                                },
844                                first: me(function () {
845                                    return [0];
846                                }),
847                                last: me(function (e, t) {
848                                    return [t - 1];
849                                }),
850                                eq: me(function (e, t, n) {
851                                    return [n < 0 ? n + t : n];
852                                }),
853                                even: me(function (e, t) {
854                                    for (var n = 0; n < t; n += 2) e.push(n);
855                                    return e;
856                                }),
857                                odd: me(function (e, t) {
858                                    for (var n = 1; n < t; n += 2) e.push(n);
859                                    return e;
860                                }),
861                                lt: me(function (e, t, n) {
862                                    for (var i = n < 0 ? n + t : n > t ? t : n; --i >= 0; ) e.push(i);
863                                    return e;
864                                }),
865                                gt: me(function (e, t, n) {
866                                    for (var i = n < 0 ? n + t : n; ++i < t; ) e.push(i);
867                                    return e;
868                                }),
869                            },
870                        }),
871                        (i.pseudos.nth = i.pseudos.eq),
872                        { radio: !0, checkbox: !0, file: !0, password: !0, image: !0 }))
873                            i.pseudos[t] = pe(t);
874                        for (t in { submit: !0, reset: !0 }) i.pseudos[t] = fe(t);
875                        function be() {}
876                        function ye(e) {
877                            for (var t = 0, n = e.length, i = ""; t < n; t++) i += e[t].value;
878                            return i;
879                        }
880                        function we(e, t, n) {
881                            var i = t.dir,
882                                s = t.next,
883                                o = s || i,
884                                r = n && "parentNode" === o,
885                                a = C++;
886                            return t.first
887                                ? function (t, n, s) {
888                                      for (;
888 (t = t[i]); ) if (1 === t.nodeType || r) return e(t, n, s);
889                                      return !1;
890                                  }
891                                : function (t, n, l) {
892                                      var c,
893                                          d,
894                                          h,
895                                          u = [_, a];
896                                      if (l) {
897                                          for (; (t = t[i]); ) if ((1 === t.nodeType || r) && e(t, n, l)) return !0;
898                                      } else
899                                          for (; (t = t[i]); )
900                                              if (1 === t.nodeType || r)
901                                                  if (((d = (h = t[w] || (t[w] = {}))[t.uniqueID] || (h[t.uniqueID] = {})), s && s === t.nodeName.toLowerCase())) t = t[i] || t;
902                                                  else {
903                                                      if ((c = d[o]) && c[0] === _ && c[1] === a) return (u[2] = c[2]);
904                                                      if (((d[o] = u), (u[2] = e(t, n, l)))) return !0;
905                                                  }
906                                      return !1;
907                                  };
908                        }
909                        function xe(e) {
910                            return e.length > 1
911                                ? function (t, n, i) {
912                                      for (var s = e.length; s--; ) if (!e[s](t, n, i)) return !1;
913                                      return !0;
914                                  }
915                                : e[0];
916                        }
917                        function _e(e, t, n, i, s) {
918                            for (var o, r = [], a = 0, l = e.length, c = null != t; a < l; a++) (o = e[a]) && ((n && !n(o, i, s)) || (r.push(o), c && t.push(a)));
919                            return r;
920                        }
921                        function Ce(e, t, n, i, s, o) {
922                            return (
923                                i && !i[w] && (i = Ce(i)),
924                                s && !s[w] && (s = Ce(s, o)),
925                                ce(function (o, r, a, l) {
926                                    var c,
927                                        d,
928                                        h,
929                                        u = [],
930                                        p = [],
931                                        f = r.length,
932                                        g =
933                                            o ||
934                                            (function (e, t, n) {
935                                                for (var i = 0, s = t.length; i < s; i++) ae(e, t[i], n);
936                                                return n;
937                                            })(t || "*", a.nodeType ? [a] : a, []),
938                                        m = !e || (!o && t) ? g : _e(g, u, e, a, l),
939                                        v = n ? (s || (o ? e : f || i) ? [] : r) : m;
940                                    if ((n && n(m, v, a, l), i)) for (c = _e(v, p), i(c, [], a, l), d = c.length; d--; ) (h = c[d]) && (v[p[d]] = !(m[p[d]] = h));
941                                    if (o) {
942                                        if (s || e) {
943                                            if (s) {
944                                                for (c = [], d = v.length; d--; ) (h = v[d]) && c.push((m[d] = h));
945                                                s(null, (v = []), c, l);
946                                            }
947                                            for (d = v.length; d--; ) (h = v[d]) && (c = s ? N(o, h) : u[d]) > -1 && (o[c] = !(r[c] = h));
948                                        }
949                                    } else (v = _e(v === r ? v.splice(f, v.length) : v)), s ? s(null, r, v, l) : M.apply(r, v);
950                                })
951                            );
952                        }
953                        function Te(e) {
954                            for (
955                                var t,
956                                    n,
957                                    s,
958                                    o = e.length,
959                                    r = i.relative[e[0].type],
960                                    a = r || i.relative[" "],
961                                    l = r ? 1 : 0,
962                                    d = we(
963                                        function (e) {
964                                            return e === t;
965                                        },
966                                        a,
967                                        !0
968                                    ),
969                                    h = we(
970                                        function (e) {
971                                            return N(t, e) > -1;
972                                        },
973                                        a,
974                                        !0
975                                    ),
976                                    u = [
977                                        function (e, n, i) {
978                                            var s = (!r && (i || n !== c)) || ((t = n).nodeType ? d(e, n, i) : h(e, n, i));
979                                            return (t = null), s;
980                                        },
981                                    ];
982                                l < o;
983                                l++
984                            )
985                                if ((n = i.relative[e[l].type])) u = [we(xe(u), n)];
986                                else {
987                                    if ((n = i.filter[e[l].type].apply(null, e[l].matches))[w]) {
988                                        for (s = ++l; s < o && !i.relative[e[s].type]; s++);
989                                        return Ce(
990                                            l > 1 && xe(u),
991                                            l > 1 && ye(e.slice(0, l - 1).concat({ value: " " === e[l - 2].type ? "*" : "" })).replace(B, "$1"),
992                                            n,
993                                            l < s && Te(e.slice(l, s)),
994                                            s < o && Te((e = e.slice(s))),
995                                            s < o && ye(e)
996                                        );
997                                    }
998                                    u.push(n);
999                                }
1000                            return xe(u);
1001                        }
1002                        return (
1003                            (be.prototype = i.filters = i.pseudos),
1004                            (i.setFilters = new be()),
1005                            (r = ae.tokenize = function (e, t) {
1006                                var n,
1007                                    s,
1008                                    o,
1009                                    r,
1010                                    a,
1011                                    l,
1012                                    c,
1013                                    d = E[e + " "];
1014                                if (d) return t ? 0 : d.slice(0);
1015                                for (a = e, l = [], c = i.preFilter; a; ) {
1016                                    for (r in ((n && !(s = q.exec(a))) || (s && (a = a.slice(s[0].length) || a), l.push((o = []))),
1017                                    (n = !1),
1018                                    (s = W.exec(a)) && ((n = s.shift()), o.push({ value: n, type: s[0].replace(B, " ") }), (a = a.slice(n.length))),
1019                                    i.filter))
1020                                        !(s = Y[r].exec(a)) || (c[r] && !(s = c[r](s))) || ((n = s.shift()), o.push({ value: n, type: r, matches: s }), (a = a.slice(n.length)));
1021                                    if (!n) break;
1022                                }
1023                                return t ? a.length : a ? ae.error(e) : E(e, l).slice(0);
1024                            }),
1025                            (a = ae.compile = function (e, t) {
1026                                var n,
1027                                    s = [],
1028                                    o = [],
1029                                    a = S[e + " "];
1030                                if (!a) {
1031                                    for (t || (t = r(e)), n = t.length; n--; ) (a = Te(t[n]))[w] ? s.push(a) : o.push(a);
1032                                    (a = S(
1033                                        e,
1034                                        (function (e, t) {
1035                                            var n = t.length > 0,
1036                                                s = e.length > 0,
1037                                                o = function (o, r, a, l, d) {
1038                                                    var h,
1039                                                        f,
1040                                                        m,
1041                                                        v = 0,
1042                                                        b = "0",
1043                                                        y = o && [],
1044                                                        w = [],
1045                                                        x = c,
1046                                                        C = o || (s && i.find.TAG("*", d)),
1047                                                        T = (_ += null == x ? 1 : Math.random() || 0.1),
1048                                                        E = C.length;
1049                                                    for (d && (c = r == p || r || d); b !== E && null != (h = C[b]); b++) {
1050                                                        if (s && h) {
1051                                                            for (f = 0, r || h.ownerDocument == p || (u(h), (a = !g)); (m = e[f++]); )
1052                                                                if (m(h, r || p, a)) {
1053                                                                    l.push(h);
1054                                                                    break;
1055                                                                }
1056                                                            d && (_ = T);
1057                                                        }
1058                                                        n && ((h = !m && h) && v--, o && y.push(h));
1059                                                    }
1060                                                    if (((v += b), n && b !== v)) {
1061                                                        for (f = 0; (m = t[f++]); ) m(y, w, r, a);
1062                                                        if (o) {
1063                                                            if (v > 0) for (; b--; ) y[b] || w[b] || (w[b] = P.call(l));
1064                                                            w = _e(w);
1065                                                        }
1066                                                        M.apply(l, w), d && !o && w.length >
1066 0 && v + t.length > 1 && ae.uniqueSort(l);
1067                                                    }
1068                                                    return d && ((_ = T), (c = x)), y;
1069                                                };
1070                                            return n ? ce(o) : o;
1071                                        })(o, s)
1072                                    )),
1073                                        (a.selector = e);
1074                                }
1075                                return a;
1076                            }),
1077                            (l = ae.select = function (e, t, n, s) {
1078                                var o,
1079                                    l,
1080                                    c,
1081                                    d,
1082                                    h,
1083                                    u = "function" == typeof e && e,
1084                                    p = !s && r((e = u.selector || e));
1085                                if (((n = n || []), 1 === p.length)) {
1086                                    if ((l = p[0] = p[0].slice(0)).length > 2 && "ID" === (c = l[0]).type && 9 === t.nodeType && g && i.relative[l[1].type]) {
1087                                        if (!(t = (i.find.ID(c.matches[0].replace(te, ne), t) || [])[0])) return n;
1088                                        u && (t = t.parentNode), (e = e.slice(l.shift().value.length));
1089                                    }
1090                                    for (o = Y.needsContext.test(e) ? 0 : l.length; o-- && ((c = l[o]), !i.relative[(d = c.type)]); )
1091                                        if ((h = i.find[d]) && (s = h(c.matches[0].replace(te, ne), (ee.test(l[0].type) && ve(t.parentNode)) || t))) {
1092                                            if ((l.splice(o, 1), !(e = s.length && ye(l)))) return M.apply(n, s), n;
1093                                            break;
1094                                        }
1095                                }
1096                                return (u || a(e, p))(s, t, !g, n, !t || (ee.test(e) && ve(t.parentNode)) || t), n;
1097                            }),
1098                            (n.sortStable = w.split("").sort(k).join("") === w),
1099                            (n.detectDuplicates = !!h),
1100                            u(),
1101                            (n.sortDetached = de(function (e) {
1102                                return 1 & e.compareDocumentPosition(p.createElement("fieldset"));
1103                            })),
1104                            de(function (e) {
1105                                return (e.innerHTML = "<a href='#'></a>"), "#" === e.firstChild.getAttribute("href");
1106                            }) ||
1107                                he("type|href|height|width", function (e, t, n) {
1108                                    if (!n) return e.getAttribute(t, "type" === t.toLowerCase() ? 1 : 2);
1109                                }),
1110                            (n.attributes &&
1111                                de(function (e) {
1112                                    return (e.innerHTML = "<input/>"), e.firstChild.setAttribute("value", ""), "" === e.firstChild.getAttribute("value");
1113                                })) ||
1114                                he("value", function (e, t, n) {
1115                                    if (!n && "input" === e.nodeName.toLowerCase()) return e.defaultValue;
1116                                }),
1117                            de(function (e) {
1118                                return null == e.getAttribute("disabled");
1119                            }) ||
1120                                he(I, function (e, t, n) {
1121                                    var i;
1122                                    if (!n) return !0 === e[t] ? t.toLowerCase() : (i = e.getAttributeNode(t)) && i.specified ? i.value : null;
1123                                }),
1124                            ae
1125                        );
1126                    })(i);
1127                    (T.find = S), (T.expr = S.selectors), (T.expr[":"] = T.expr.pseudos), (T.uniqueSort = T.unique = S.uniqueSort), (T.text = S.getText), (T.isXMLDoc = S.isXML), (T.contains = S.contains), (T.escapeSelector = S.escape);
1128                    var A = function (e, t, n) {
1129                            for (var i = [], s = void 0 !== n; (e = e[t]) && 9 !== e.nodeType; )
1130                                if (1 === e.nodeType) {
1131                                    if (s && T(e).is(n)) break;
1132                                    i.push(e);
1133                                }
1134                            return i;
1135                        },
1136                        k = function (e, t) {
1137                            for (var n = []; e; e = e.nextSibling) 1 === e.nodeType && e !== t && n.push(e);
1138                            return n;
1139                        },
1140                        $ = T.expr.match.needsContext;
1141                    function L(e, t) {
1142                        return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase();
1143                    }
1144                    var P = /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;
1145                    function O(e, t, n) {
1146                        return v(t)
1147                            ? T.grep(e, function (e, i) {
1148                                  return !!t.call(e, i, e) !== n;
1149                              })
1150                            : t.nodeType
1151                            ? T.grep(e, function (e) {
1152                                  return (e === t) !== n;
1153                              })
1154                            : "string" != typeof t
1155                            ? T.grep(e, function (e) {
1156                                  return d.call(t, e) > -1 !== n;
1157                              })
1158                            : T.filter(t, e, n);
1159                    }
1160                    (T.filter = function (e, t, n) {
1161                        var i = t[0];
1162                        return (
1163                            n && (e = ":not(" + e + ")"),
1164                            1 === t.length && 1 === i.nodeType
1165                                ? T.find.matchesSelector(i, e)
1166                                    ? [i]
1167                                    : []
1168                                : T.find.matches(
1169                                      e,
1170                                      T.grep(t, function (e) {
1171                                          return 1 === e.nodeType;
1172                                      })
1173                                  )
1174                        );
1175                    }),
1176                        T.fn.extend({
1177                            find: function (e) {
1178                                var t,
1179                                    n,
1180                                    i = this.length,
1181                                    s = this;
1182                                if ("string" != typeof e)
1183                                    return this.pushStack(
1184                                        T(e).filter(function () {
1185                                            for (t = 0; t < i; t++) if (T.contains(s[t], this)) return !0;
1186                                        })
1187                                    );
1188                                for (n = this.pushStack([]), t = 0; t < i; t++) T.find(e, s[t], n);
1189                                return i > 1 ? T.uniqueSort(n) : n;
1190                            },
1191                            filter: function (e) {
1192                                return this.pushStack(O(this, e || [], !1));
1193                            },
1194                            not: function (e) {
1195                                return this.pushStack(O(this, e || [], !0));
1196                            },
1197                            is: function (e) {
1198                                return !!O(this, "string" == typeof e && $.test(e) ? T(e) : e || [], !1).length;
1199                            },
1200                        });
1201                    var M,
1202                        D = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;
1203                    ((T.fn.init = function (e, t, n) {
1204                        var i, s;
1205                        if (!e) return this;
1206                        if (((n = n || M), "string" == typeof e)) {
1207                            if (!(i = "<" === e[0] && ">" === e[e.length - 1] && e.length >= 3 ? [null, e, null] : D.exec(e)) || (!i[1] && t)) return !t || t.jquery ? (t || n).find(e) : this.constructor(t).find(e);
1208                            if (i[1]) {
1209                                if (((t = t instanceof T ? t[0] : t), T.merge(this, T.parseHTML(i[1], t && t.nodeType ? t.ownerDocument || t : y, !0)), P.test(i[1]) && T.isPlainObject(t)))
1210                                    for (i in t) v(this[i]) ? this[i](t[i]) : this.attr(i, t[i]);
1211                                return this;
1212                            }
1213                            return (s = y.getElementById(i[2])) && ((this[0] = s), (this.length = 1)), this;
1214                        }
1215                        return e.nodeType ? ((this[0] = e), (this.length = 1), this) : v(e) ? (void 0 !== n.ready ? n.ready(e) : e(T)) : T.makeArray(e, this);
1216                    }).prototype = T.fn),
1217                        (M = T(y));
1218                    var N = /^(?:parents|prev(?:Until|All))/,
1219                        I = { children: !0, contents: !0, next: !0, prev: !0 };
1220                    function z(e, t) {
1221                        for (; (e = e[t]) && 1 !== e.nodeType; );
1222                        return e;
1223                    }
1224                    T.fn.extend({
1225                        has: function (e) {
1226                            var t = T(e, this),
1227                                n = t.length;
1228                            return this.filter(function () {
1229                                for (var e = 0; e < n; e++) if (T.contains(this, t[e])) return !0;
1230                            });
1231                        },
1232                        closest: function (e, t) {
1233                            var n,
1234                                i = 0,
1235                                s = this.length,
1236                                o = [],
1237                                r = "string" != typeof e && T(e);
1238                            if (!$.test(e))
1239                                for (; i < s; i++)
1240                                    for (n = this[i]; n && n !== t; n = n.parentNode)
1241                                        if (n.nodeType < 11 && (r ? r.index(n) > -1 : 1 === n.nodeType && T.find.matchesSelector(n, e))) {
1242                                            o.push(n);
1243                                            break;
1244                                        }
1245                            return this.pushStack(o.length > 1 ? T.uniqueSort(o) : o);
1246                        },
1247                        index: function (e) {
1248                            return e ? ("string" == typeof e ? d.call(T(e), this[0]) : d.call(this, e.jquery ? e[0] : e)) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1;
1249                        },
1250                        add: function (e, t) {
1251                            return this.pushStack(T.uniqueSort(T.merge(this.get(), T(e, t))));
1252                        },
1253                        addBack: function (e) {
1254                            return this.add(null == e ? this.prevObject : this.prevObject.filter(e));
1255                        },
1256                    }),
1257                        T.each(
1258                            {
1259                                parent: function (e) {
1260                                    var t = e.parentNode;
1261                                    return t && 11 !== t.nodeType ? t : null;
1262                                },
1263                                parents: function (e) {
1264                                    return A(e, "parentNode");
1265                                },
1266                                parentsUntil: function (e, t, n) {
1267                                    return A(e, "parentNode", n);
1268                                },
1269                                next: function (e) {
1270                                    return z(e, "nextSibling");
1271                                },
1272                                prev: function (e) {
1273                                    return z(e, "previousSibling");
1274                                },
1275                                nextAll: function (e) {
1276                                    return A(e, "nextSibling");
1277                                },
1278                                prevAll: function (e) {
1279                                    return A(e, "previousSibling");
1280                                },
1281                                nextUntil: function (e, t, n) {
1282                                    return A(e, "nextSibling", n);
1283                                },
1284                                prevUntil: function (e, t, n) {
1285                                    return A(e, "previousSibling", n);
1286                                },
1287                                siblings: function (e) {
1288                                    return k((e.parentNode || {}).firstChild, e);
1289                                },
1290                                children: function (e) {
1291                                    return k(e.firstChild);
1292                                },
1293                                contents: function (e) {
1294                                    return null != e.contentDocument && r(e.contentDocument) ? e.contentDocument : (L(e, "template") && (e = e.content || e), T.merge([], e.childNodes));
1295                                },
1296                            },
1297                            function (e, t) {
1298                                T.fn[e] = function (n, i) {
1299                                    var s = T.map(this, t, n);
1300                                    return "Until" !== e.slice(-5) && (i = n), i && "string" == typeof i && (s = T.filter(i, s)), this.length > 1 && (I[e] || T.uniqueSort(s), N.test(e) && s.reverse()), this.pushStack(s);
1301                                };
1302                            }
1303                        );
1304                    var j = /[^\x20\t\r\n\f]+/g;
1305                    function F(e) {
1306                        return e;
1307                    }
1308                    function H(e) {
1309                        throw e;
1310                    }
1311                    function R(e, t, n, i) {
1312                        var s;
1313                        try {
1314                            e && v((s = e.promise)) ? s.call(e).done(t).fail(n) : e && v((s = e.then)) ? s.call(e, t, n) : t.apply(void 0, [e].slice(i));
1315                        } catch (e) {
1316                            n.apply(void 0, [e]);
1317                        }
1318                    }
1319                    (T.Callbacks = function (e) {
1320                        e =
1321                            "string" == typeof e
1322                                ? (function (e) {
1323                                      var t = {};
1324                                      return (
1325                                          T.each(e.match(j) || [], function (e, n) {
1326                                              t[n] = !0;
1327                                          }),
1328                                          t
1329                                      );
1330                                  })(e)
1331                                : T.extend({}, e);
1332                        var t,
1333                            n,
1334                            i,
1335                            s,
1336                            o = [],
1337                            r = [],
1338                            a = -1,
1339                            l = function () {
1340                                for (s = s || e.once, i = t = !0; r.length; a = -1) for (n = r.shift(); ++a < o.length; ) !1 === o[a].apply(n[0], n[1]) && e.stopOnFalse && ((a = o.length), (n = !1));
1341                                e.memory || (n = !1), (t = !1), s && (o = n ? [] : "");
1342                            },
1343                            c = {
1344                                add: function () {
1345                                    return (
1346                                        o &&
1347                                            (n && !t && ((a = o.length - 1), r.push(n)),
1348                                            (function t(n) {
1349                                                T.each(n, function (n, i) {
1350                                                    v(i) ? (e.unique && c.has(i)) || o.push(i) : i && i.length && "string" !== _(i) && t(i);
1351                                                });
1352                                            })(arguments),
1353                                            n && !t && l()),
1354                                        this
1355                                    );
1356                                },
1357                                remove: function () {
1358                                    return (
1359                                        T.each(arguments, function (e, t) {
1360                                            for (var n; (n = T.inArray(t, o, n)) > -1; ) o.splice(n, 1), n <= a && a--;
1361                                        }),
1362                                        this
1363                                    );
1364                                },
1365                                has: function (e) {
1366                                    return e ? T.inArray(e, o) > -1 : o.length > 0;
1367                                },
1368                                empty: function () {
1369                                    return o && (o = []), this;
1370                                },
1371                                disable: function () {
1372                                    return (s = r = []), (o = n = ""), this;
1373                                },
1374                                disabled: function () {
1375                                    return !o;
1376                                },
1377                                lock: function () {
1378                                    return (s = r = []), n || t || (o = n = ""), this;
1379                                },
1380                                locked: function () {
1381                                    return !!s;
1382                                },
1383                                fireWith: function (e, n) {
1384                                    return s || ((n = [e, (n = n || []).slice ? n.slice() : n]), r.push(n), t || l()), this;
1385                                },
1386                                fire: function () {
1387                                    return c.fireWith(this, arguments), this;
1388                                },
1389                                fired: function () {
1390                                    return !!i;
1391                                },
1392                            };
1393                        return c;
1394                    }),
1395                        T.extend({
1396                            Deferred: function (e) {
1397                                var t = [
1398                                        ["notify", "progress", T.Callbacks("memory"), T.Callbacks("memory"), 2],
1399                                        ["resolve", "done", T.Callbacks("once memory"), T.Callbacks("once memory"), 0, "resolved"],
1400                                        ["reject", "fail", T.Callbacks("once memory"), T.Callbacks("once memory"), 1, "rejected"],
1401                                    ],
1402                                    n = "pending",
1403                                    s = {
1404                                        state: function () {
1405                                            return n;
1406                                        },
1407                                        always: function () {
1408                                            return o.done(arguments).fail(arguments), this;
1409                                        },
1410                                        catch: function (e) {
1411                                            return s.then(null, e);
1412                                        },
1413                                        pipe: function () {
1414                                            var e = arguments;
1415                                            return T.Deferred(function (n) {
1416                                                T.each(t, function (t, i) {
1417                                                    var s = v(e[i[4]]) && e[i[4]];
1418                                                    o[i[1]](function () {
1419                                                        var e = s && s.apply(this, arguments);
1420                                                        e && v(e.promise) ? e.promise().progress(n.notify).done(n.resolve).fail(n.reject) : n[i[0] + "With"](this, s ? [e] : arguments);
1421                                                    });
1422                                                }),
1423                                                    (e = null);
1424                                            }).promise();
1425                                        },
1426                                        then: function (e, n, s) {
1427                                            var o = 0;
1428                                            function r(e, t, n, s) {
1429                                                return function () {
1430                                                    var a = this,
1431                                                        l = arguments,
1432                                                        c = function () {
1433                                                            var i, c;
1434                                                            if (!(e < o)) {
1435                                                                if ((i = n.apply(a, l)) === t.promise()) throw new TypeError("Thenable self-resolution");
1436                                                                (c = i && ("object" == typeof i || "function" == typeof i) && i.then),
1437                                                                    v(c)
1438                                                                        ? s
1439                                                                            ? c.call(i, r(o, t, F, s), r(o, t, H, s))
1440                                                                            : (o++, c.call(i, r(o, t, F, s), r(o, t, H, s), r(o, t, F, t.notifyWith)))
1441                                                                        : (n !== F && ((a = void 0), (l = [i])), (s || t.resolveWith)(a, l));
1442                                                            }
1443                                                        },
1444                                                        d = s
1445                                                            ? c
1446                                                            : function () {
1447                                                                  try {
1448                                                                      c();
1449                                                                  } catch (i) {
1450                                                                      T.Deferred.exceptionHook && T.Deferred.exceptionHook(i, d.stackTrace), e + 1 >= o && (n !== H && ((a = void 0), (l = [i])), t.rejectWith(a, l));
1451                                                                  }
1452                                                              };
1453                                                    e ? d() : (T.Deferred.getStackHook && (d.stackTrace = T.Deferred.getStackHook()), i.setTimeout(d));
1454                                                };
1455                                            }
1456                                            return T.Deferred(function (i) {
1457                                                t[0][3].add(r(0, i, v(s) ? s : F, i.notifyWith)), t[1][3].add(r(0, i, v(e) ? e : F)), t[2][3].add(r(0, i, v(n) ? n : H));
1458                                            }).promise();
1459                                        },
1460                                        promise: function (e) {
1461                                            return null != e ? T.extend(e, s) : s;
1462                                        },
1463                                    },
1464                                    o = {};
1465                                return (
1466                                    T.each(t, function (e, i) {
1467                                        var r = i[2],
1468                                            a = i[5];
1469                                        (s[i[1]] = r.add),
1470                                            a &&
1471                                                r.add(
1472                                                    function () {
1473                                                        n = a;
1474                                                    },
1475                                                    t[3 - e][2].disable,
1476                                                    t[3 - e][3].disable,
1477                                                    t[0][2].lock,
1478                                                    t[0][3].lock
1479                                                ),
1480                                            r.add(i[3].fire),
1481                                            (o[i[0]] = function () {
1482                                                return o[i[0] + "With"](this === o ? void 0 : this, arguments), this;
1483                                            }),
1484                                            (o[i[0] + "With"] = r.fireWith);
1485                                    }),
1486                                    s.promise(o),
1487                                    e && e.call(o, o),
1488                                    o
1489                                );
1490                            },
1491                            when: function (e) {
1492                                var t = arguments.length,
1493                                    n = t,
1494                                    i = Array(n),
1495                                    s = a.call(arguments),
1496                                    o = T.Deferred(),
1497                                    r = function (e) {
1498                                        return function (n) {
1499                                            (i[e] = this), (s[e] = arguments.length > 1 ? a.call(arguments) : n), --t || o.resolveWith(i, s);
1500                                        };
1501                                    };
1502                                if (t <= 1 && (R(e, o.done(r(n)).resolve, o.reject, !t), "pending" === o.state() || v(s[n] && s[n].then))) return o.then();
1503                                for (; n--; ) R(s[n], r(n), o.reject);
1504                                return o.promise();
1505                            },
1506                        });
1507                    var B = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;
1508                    (T.Deferred.exceptionHook = function (e, t) {
1509                        i.console && i.console.warn && e && B.test(e.name) && i.console.warn("jQuery.Deferred exception: " + e.message, e.stack, t);
1510                    }),
1511                        (T.readyException = function (e) {
1512                            i.setTimeout(function () {
1513                                throw e;
1514                            });
1515                        });
1516                    var q = T.Deferred();
1517                    function W() {
1518                        y.removeEventListener("DOMContentLoaded", W), i.removeEventListener("load", W), T.ready();
1519                    }
1520                    (T.fn.ready = function (e) {
1521                        return (
1522                            q.then(e).catch(function (e) {
1523                                T.readyException(e);
1524                            }),
1525                            this
1526                        );
1527                    }),
1528                        T.extend({
1529                            isReady: !1,
1530                            readyWait: 1,
1531                            ready: function (e) {
1532                                (!0 === e ? --T.readyWait : T.isReady) || ((T.isReady = !0), (!0 !== e && --T.readyWait > 0) || q.resolveWith(y, [T]));
1533                            },
1534                        }),
1535                        (T.ready.then = q.then),
1536                        "complete" === y.readyState || ("loading" !== y.readyState && !y.documentElement.doScroll) ? i.setTimeout(T.ready) : (y.addEventListener("DOMContentLoaded", W), i.addEventListener("load", W));
1537                    var V = function (e, t, n, i, s, o, r) {
1538                            var a = 0,
1539                                l = e.length,
1540                                c = null == n;
1541                            if ("object" === _(n)) for (a in ((s 
1541= !0), n)) V(e, t, a, n[a], !0, o, r);
1542                            else if (
1543                                void 0 !== i &&
1544                                ((s = !0),
1545                                v(i) || (r = !0),
1546                                c &&
1547                                    (r
1548                                        ? (t.call(e, i), (t = null))
1549                                        : ((c = t),
1550                                          (t = function (e, t, n) {
1551                                              return c.call(T(e), n);
1552                                          }))),
1553                                t)
1554                            )
1555                                for (; a < l; a++) t(e[a], n, r ? i : i.call(e[a], a, t(e[a], n)));
1556                            return s ? e : c ? t.call(e) : l ? t(e[0], n) : o;
1557                        },
1558                        G = /^-ms-/,
1559                        X = /-([a-z])/g;
1560                    function Y(e, t) {
1561                        return t.toUpperCase();
1562                    }
1563                    function U(e) {
1564                        return e.replace(G, "ms-").replace(X, Y);
1565                    }
1566                    var K = function (e) {
1567                        return 1 === e.nodeType || 9 === e.nodeType || !+e.n
1567odeType;
1568                    };
1569                    function Z() {
1570                        this.expando = T.expando + Z.uid++;
1571                    }
1572                    (Z.uid = 1),
1573                        (Z.prototype = {
1574                            cache: function (e) {
1575                                var t = e[this.expando];
1576                                return t || ((t = {}), K(e) && (e.nodeType ? (e[this.expando] = t) : Object.defineProperty(e, this.expando, { value: t, configurable: !0 }))), t;
1577                            },
1578                            set: function (e, t, n) {
1579                                var i,
1580                                    s = this.cache(e);
1581                                if ("string" == typeof t) s[U(t)] = n;
1582                                else for (i in t) s[U(i)] = t[i];
1583                                return s;
1584                            },
1585                            get: function (e, t) {
1586                                return void 0 === t ? this.cache(e) : e[this.expando] && e[this.expando][U(t)];
1587                            },
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                            },
1591                            remove: function (e, t) {
1592                                var n,
1593                                    i = e[this.expando];
1594                                if (void 0 !== i) {
1595                                    if (void 0 !== t) {
1596                                        n = (t = Array.isArray(t) ? t.map(U) : (t = U(t)) in i ? [t] : t.match(j) || []).length;
1597                                        for (; n--; ) delete i[t[n]];
1598                                    }
1599                                    (void 0 === t || T.isEmptyObject(i)) && (e.nodeType ? (e[this.expando] = void 0) : delete e[this.expando]);
1600                                }
1601                            },
1602                            hasData: function (e) {
1603                                var t = e[this.expando];
1604                                return void 0 !== t && !T.isEmptyObject(t);
1605                            },
1606                        });
1607                    var Q = new Z(),
1608                        J = new Z(),
1609                        ee = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
1610                        te = /[A-Z]/g;
1611                    function ne(e, t, n) {
1612                        var i;
1613                        if (void 0 === n && 1 === e.nodeType)
1614                            if (((i = "data-" + t.replace(te, "-$&").toLowerCase()), "string" == typeof (n = e.getAttribute(i)))) {
1615                                try {
1616                                    n = (function (e) {
1617                                        return "true" === e || ("false" !== e && ("null" === e ? null : e === +e + "" ? +e : ee.test(e) ? JSON.parse(e) : e));
1618                                    })(n);
1619                                } catch (e) {}
1620                                J.set(e, t, n);
1621                            } else n = void 0;
1622                        return n;
1623                    }
1624                    T.extend({
1625                        hasData: function (e) {
1626                            return J.hasData(e) || Q.hasData(e);
1627                        },
1628                        data: function (e, t, n) {
1629                            return J.access(e, t, n);
1630                        },
1631                        removeData: function (e, t) {
1632                            J.remove(e, t);
1633                        },
1634                        _data: function (e, t, n) {
1635                            return Q.access(e, t, n);
1636                        },
1637                        _removeData: function (e, t) {
1638                            Q.remove(e, t);
1639                        },
1640                    }),
1641                        T.fn.extend({
1642                            data: function (e, t) {
1643                                var n,
1644                                    i,
1645                                    s,
1646                                    o = this[0],
1647                                    r = o && o.attributes;
1648                                if (void 0 === e) {
1649                                    if (this.length && ((s = J.get(o)), 1 === o.nodeType && !Q.get(o, "hasDataAttrs"))) {
1650                                        for (n = r.length; n--; ) r[n] && 0 === (i = r[n].name).indexOf("data-") && ((i = U(i.slice(5))), ne(o, i, s[i]));
1651                                        Q.set(o, "hasDataAttrs", !0);
1652                                    }
1653                                    return s;
1654                                }
1655                                return "object" == typeof e
1656                                    ? this.each(function () {
1657                                          J.set(this, e);
1658                                      })
1659                                    : V(
1660                                          this,
1661                                          function (t) {
1662                                              var n;
1663                                              if (o && void 0 === t) return void 0 !== (n = J.get(o, e)) || void 0 !== (n = ne(o, e)) ? n : void 0;
1664                                              this.each(function () {
1665                                                  J.set(this, e, t);
1666                                              });
1667                                          },
1668                                          null,
1669                                          t,
1670                                          arguments.length > 1,
1671                                          null,
1672                                          !0
1673                                      );
1674                            },
1675                            removeData: function (e) {
1676                                return this.each(function () {
1677                                    J.remove(this, e);
1678                                });
1679                            },
1680                        }),
1681                        T.extend({
1682                            queue: function (e, t, n) {
1683                                var i;
1684                                if (e) return (t = (t || "fx") + "queue"), (i = Q.get(e, t)), n && (!i || Array.isArray(n) ? (i = Q.access(e, t, T.makeArray(n))) : i.push(n)), i || [];
1685                            },
1686                            dequeue: function (e, t) {
1687                                t = t || "fx";
1688                                var n = T.queue(e, t),
1689                                    i = n.length,
1690                                    s = n.shift(),
1691                                    o = T._queueHooks(e, t);
1692                                "inprogress" === s && ((s = n.shift()), i--),
1693                                    s &&
1694                                        ("fx" === t && n.unshift("inprogress"),
1695                                        delete o.stop,
1696                                        s.call(
1697                                            e,
1698                                            function () {
1699                                                T.dequeue(e, t);
1700                                            },
1701                                            o
1702                                        )),
1703                                    !i && o && o.empty.fire();
1704                            },
1705                            _queueHooks: function (e, t) {
1706                                var n = t + "queueHooks";
1707                                return (
1708                                    Q.get(e, n) ||
1709                                    Q.access(e, n, {
1710                                        empty: T.Callbacks("once memory").add(function () {
1711                                            Q.remove(e, [t + "queue", n]);
1712                                        }),
1713                                    })
1714                                );
1715                            },
1716                        }),
1717                        T.fn.extend({
1718                            queue: function (e, t) {
1719                                var n = 2;
1720                                return (
1721                                    "string" != typeof e && ((t = e), (e = "fx"), n--),
1722                                    arguments.length < n
1723                                        ? T.queue(this[0], e)
1724                                        : void 0 === t
1725                                        ? this
1726                                        : this.each(function () {
1727                                              var n = T.queue(this, e, t);
1728                                              T._queueHooks(this, e), "fx" === e && "inprogress" !== n[0] && T.dequeue(this, e);
1729                                          })
1730                                );
1731                            },
1732                            dequeue: function (e) {
1733                                return this.each(function () {
1734                                    T.dequeue(this, e);
1735                                });
1736                            },
1737                            clearQueue: function (e) {
1738                                return this.queue(e || "fx", []);
1739                            },
1740                            promise: function (e, t) {
1741                                var n,
1742                                    i = 1,
1743                                    s = T.Deferred(),
1744                                    o = this,
1745                                    r = this.length,
1746                                    a = function () {
1747                                        --i || s.resolveWith(o, [o]);
1748                                    };
1749                                for ("string" != typeof e && ((t = e), (e = void 0)), e = e || "fx"; r--; ) (n = Q.get(o[r], e + "queueHooks")) && n.empty && (i++, n.empty.add(a));
1750                                return a(), s.promise(t);
1751                            },
1752                        });
1753                    var ie = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,
1754                        se = new RegExp("^(?:([+-])=|)(" + ie + ")([a-z
1754%]*)$", "i"),
1755                        oe = ["Top", "Right", "Bottom", "Left"],
1756                        re = y.documentElement,
1757                        ae = function (e) {
1758                            return T.contains(e.ownerDocument, e);
1759                        },
1760                        le = { composed: !0 };
1761                    re.getRootNode &&
1762                        (ae = function (e) {
1763                            return T.contains(e.ownerDocument, e) || e.getRootNode(le) === e.ownerDocument;
1764                        });
1765                    var ce = function (e, t) {
1766                        return "none" === (e = t || e).style.display || ("" === e.style.display && ae(e) && "none" === T.css(e, "display"));
1767                    };
1768                    function de(e, t, n, i) {
1769                        var s,
1770                            o,
1771                            r = 20,
1772                            a = i
1773                                ? function () {
1774                                      return i.cur();
1775                                  }
1776                                : function () {
1777                                      return T.css(e, t, "");
1778                                  },
1779                            l = a(),
1780                            c = (n && n[3]) || (T.cssNumber[t] ? "" : "px"),
1781                            d = e.nodeType && (T.cssNumber[t] || ("px" !== c && +l)) && se.exec(T.css(e, t));
1782                        if (d && d[3] !== c) {
1783                            for (l /= 2, c = c || d[3], d = +l || 1; r--; ) T.style(e, t, d + c), (1 - o) * (1 - (o = a() / l || 0.5)) <= 0 && (r = 0), (d /= o);
1784                            (d *= 2), T.style(e, t, d + c), (n = n || []);
1785                        }
1786                        return n && ((d = +d || +l || 0), (s = n[1] ? d + (n[1] + 1) * n[2] : +n[2]), i && ((i.unit = c), (i.start = d), (i.end = s))), s;
1787                    }
1788                    var he = {};
1789                    function ue(e) {
1790                        var t,
1791                            n = e.ownerDocument,
1792                            i = e.nodeName,
1793                            s = he[i];
1794                        return s || ((t = n.body.appendChild(n.createElement(i))), (s = T.css(t, "dis
1794play")), t.parentNode.removeChild(t), "none" === s && (s = "block"), (he[i] = s), s);
1795                    }
1796                    function pe(e, t) {
1797                        for (var n, i, s = [], o = 0, r = e.length; o < r; o++)
1798                            (i = e[o]).style &&
1799                                ((n = i.style.display),
1800                                t ? ("none" === n && ((s[o] = Q.get(i, "display") || null), s[o] || (i.style.display = "")), "" === i.style.display && ce(i) && (s[o] = ue(i))) : "none" !== n && ((s[o] = "none"), Q.set(i, "display", n)));
1801                        for (o = 0; o < r; o++) null != s[o] && (e[o].style.display = s[o]);
1802                        return e;
1803                    }
1804                    T.fn.extend({
1805                        show: function () {
1806                            return pe(this, !0);
1807                        },
1808                        hide: function () {
1809                            return pe(this);
1810                        },
1811                        toggle: function (e) {
1812                            return "boolean" == typeof e
1813                                ? e
1814                                    ? this.show()
1815                                    : this.hide()
1816                                : this.each(function () {
1817                                      ce(this) ? T(this).show() : T(this).hide();
1818                                  });
1819                        },
1820                    });
1821                    var fe,
1822                        ge,
1823                        me = /^(?:checkbox|radio)$/i,
1824                        ve = /<([a-z][^\/\0>\x20\t\r\n\f]*)/i,
1825                        be = /^$|^module$|\/(?:java|ecma)script/i;
1826                    (fe = y.createDocumentFragment().appendChild(y.createElement("div"))),
1827                        (ge = y.createElement("input")).setAttribute("type", "radio"),
1828                        ge.setAttribute("checked", "checked"),
1829                        ge.setAttribute("name", "t"),
1830                        fe.appendChild(ge),
1831                        (m.checkClone = fe.cloneNode(!0).cloneNode(!0).lastChild.checked),
1832                        (fe.innerHTML = "<textarea>x</textarea>"),
1833                        (m.noCloneChecked = !!fe.cloneNode(!0).lastChild.defaultValue),
1834                        (fe.innerHTML = "<option></option>"),
1835                        (m.option = !!fe.lastChild);
1836                    var ye = {
1837                        thead: [1, "<table>", "</table>"],
1838                        col: [2, "<table><colgroup>", "</colgroup></table>"],
1839                        tr: [2, "<table><tbody>", "</tbody></table>"],
1840                        td: [3, "<table><tbody><tr>", "</tr></tbody></table>"],
1841                        _default: [0, "", ""],
1842                    };
1843                    function we(e, t) {
1844                        var n;
1845                        return (n = void 0 !== e.getElementsByTagName ? e.getElementsByTagName(t || "*") : void 0 !== e.querySelectorAll ? e.querySelectorAll(t || "*") : []), void 0 === t || (t && L(e, t)) ? T.merge([e], n) : n;
1846                    }
1847                    function xe(e, t) {
1848                        for (var n = 0, i = e.length; n < i; n++) Q.set(e[n], "globalEval", !t || Q.get(t[n], "globalEval"));
1849                    }
1850                    (ye.tbody = ye.tfoot = ye.colgroup = ye.caption = ye.thead), (ye.th = ye.td), m.option || (ye.optgroup = ye.option = [1, "<select multiple='multiple'>", "</select>"]);
1851                    var _e = /<|&#?\w+;/;
1852                    function Ce(e, t, n, i, s) {
1853                        for (var o, r, a, l, c, d, h = t.createDocumentFragment(), u = [], p = 0, f = e.length; p < f; p++)
1854                            if ((o = e[p]) || 0 === o)
1855                                if ("object" === _(o)) T.merge(u, o.nodeType ? [o] : o);
1856                                else if (_e.test(o)) {
1857                                    for (r = r || h.appendChild(t.createElement("div")), a = (ve.exec(o) || ["", ""])[1].toLowerCase(), l = ye[a] || ye._default, r.innerHTML = l[1] + T.htmlPrefilter(o) + l[2], d = l[0]; d--; )
1858                                        r = r.lastChild;
1859                                    T.merge(u, r.childNodes), ((r = h.firstChild).textContent = "");
1860                                } else u.push(t.createTextNode(o));
1861                        for (h.textContent = "", p = 0; (o = u[p++]); )
1862                            if (i && T.inArray(o, i) > -1) s && s.push(o);
1863                            else if (((c = ae(o)), (r = we(h.appendChild(o), "script")), c && xe(r), n)) for (d = 0; (o = r[d++]); ) be.test(o.type || "") && n.push(o);
1864                        return h;
1865                    }
1866                    var Te = /^([^.]*)(?:\.(.+)|)/;
1867                    function Ee() {
1868                        return !0;
1869                    }
1870                    function Se() {
1871                        return !1;
1872                    }
1873                    function Ae(e, t) {
1874                        return (
1875                            (e ===
1876                                (function () {
1877                                    try {
1878                                        return y.activeElement;
1879                                    } catch (e) {}
1880                                })()) ==
1881                            ("focus" === t)
1882                        );
1883                    }
1884                    function ke(e, t, n, i, s, o) {
1885                        var r, a;
1886                        if ("object" == typeof t) {
1887                            for (a in ("string" != typeof n && ((i = i || n), (n = void 0)), t)) ke(e, a, n, i, t[a], o);
1888                            return e;
1889                        }
1890                        if ((null == i && null == s ? ((s = n), (i = n = void 0)) : null == s && ("string" == typeof n ? ((s = i), (i = void 0)) : ((s = i), (i = n), (n = void 0))), !1 === s)) s = Se;
1891                        else if (!s) return e;
1892                        return (
1893                            1 === o &&
1894                                ((r = s),
1895                                (s = function (e) {
1896                                    return T().off(e), r.apply(this, arguments);
1897                                }),
1898                                (s.guid = r.guid || (r.guid = T.guid++))),
1899                            e.each(function () {
1900                                T.event.add(this, t, s, i, n);
1901                            })
1902                        );
1903                    }
1904                    function $e(e, t, n) {
1905                        n
1906                            ? (Q.set(e, t, !1),
1907                              T.event.add(e, t, {
1908                                  namespace: !1,
1909                                  handler: function (e) {
1910                                      var i,
1911                                          s,
1912                                          o = Q.get(this, t);
1913                                      if (1 & e.isTrigger && this[t]) {
1914                                          if (o.length) (T.event.special[t] || {}).delegateType && e.stopPropagation();
1915                                          else if (((o = a.call(arguments)), Q.set(this, t, o), (i = n(this, t)), this[t](), o !== (s = Q.get(this, t)) || i ? Q.set(this, t, !1) : (s = {}), o !== s))
1916                                              return e.stopImmediatePropagation(), e.preventDefault(), s && s.value;
1917                                      } else o.length && (Q.set(this, t, { value: T.event.trigger(T.extend(o[0], T.Event.prototype), o.slice(1), this) }), e.stopImmediatePropagation());
1918                                  },
1919                              }))
1920                            : void 0 === Q.get(e, t) && T.event.add(e, t, Ee);
1921                    }
1922                    (T.event = {
1923                        global: {},
1924                        add: function (e, t, n, i, s) {
1925                            var o,
1926                                r,
1927                                a,
1928                                l,
1929                                c,
1930                                d,
1931                                h,
1932                                u,
1933                                p,
1934                                f,
1935                                g,
1936                                m = Q.get(e);
1937                            if (K(e))
1938                                for (
1939                                    n.handler && ((n = (o = n).handler), (s = o.selector)),
1940                                        s && T.find.matchesSelector(re, s),
1941                                        n.guid || (n.guid = T.guid++),
1942                                        (l = m.events) || (l = m.events = Object.create(null)),
1943                                        (r = m.handle) ||
1944                                            (r = m.handle = function (t) {
1945                                                return void 0 !== T && T.event.triggered !== t.type ? T.event.dispatch.apply(e, arguments) : void 0;
1946                                            }),
1947                                        c = (t = (t || "").match(j) || [""]).length;
1948                                    c--;
1949
1950                                )
1951                                    (p = g = (a = Te.exec(t[c]) || [])[1]),
1952                                        (f = (a[2] || "").split(".").sort()),
1953                                        p &&
1954                                            ((h = T.event.special[p] || {}),
1955                                            (p = (s ? h.delegateType : h.bindType) || p),
1956                                            (h = T.event.special[p] || {}),
1957                                            (d = T.extend({ type: p, origType: g, data: i, handler: n, guid: n.guid, selector: s, needsContext: s && T.expr.match.needsContext.test(s), namespace: f.join(".") }, o)),
1958                                            (u = l[p]) || (((u = l[p] = []).delegateCount = 0), (h.setup && !1 !== h.setup.call(e, i, f, r)) || (e.addEventListener && e.addEventListener(p, r))),
1959                                            h.add && (h.add.call(e, d), d.handler.guid || (d.handler.guid = n.guid)),
1960                                            s ? u.splice(u.delegateCount++, 0, d) : u.push(d),
1961                                            (T.event.global[p] = !0));
1962                        },
1963                        remove: function (e, t, n, i, s) {
1964                            var o,
1965                                r,
1966                                a,
1967                                l,
1968                                c,
1969                                d,
1970                                h,
1971                                u,
1972                                p,
1973                                f,
1974                                g,
1975                                m = Q.hasData(e) && Q.get(e);
1976                            if (m && (l = m.events)) {
1977                                for (c = (t = (t || "").match(j) || [""]).length; c--; )
1978                                    if (((p = g = (a = Te.exec(t[c]) || [])[1]), (f = (a[2] || "").split(".").sort()), p)) {
1979                                        for (h = T.event.special[p] || {}, u = l[(p = (i ? h.delegateType : h.bindType) || p)] || [], a = a[2] && new RegExp("(^|\\.)" + f.join("\\.(?:.*\\.|)") + "(\\.|$)"), r = o = u.length; o--; )
1980                                            (d = u[o]),
1981                                                (!s && g !== d.origType) ||
1982                                                    (n && n.guid !== d.guid) ||
1983                                                    (a && !a.test(d.namespace)) ||
1984                                                    (i && i !== d.selector && ("**" !== i || !d.selector)) ||
1985                                                    (u.splice(o, 1), d.selector && u.delegateCount--, h.remove && h.remove.call(e, d));
1986                                        r && !u.length && ((h.teardown && !1 !== h.teardown.call(e, f, m.handle)) || T.removeEvent(e, p, m.handle), delete l[p]);
1987                                    } else for (p in l) T.event.remove(e, p + t[c], n, i, !0);
1988                                T.isEmptyObject(l) && Q.remove(e, "handle events");
1989                            }
1990                        },
1991                        dispatch: function (e) {
1992                            var t,
1993                                n,
1994                                i,
1995                                s,
1996                                o,
1997                                r,
1998                                a = new Array(arguments.length),
1999                                l = T.event.fix(e),
2000                                c = (Q.get(this, "events") || Object.create(null))[l.type] || [],
2001                                d = T.event.special[l.type] || {};
2002                            for (a[0] = l, t = 1; t < arguments.length; t++) a[t] = arguments[t];
2003                            if (((l.delegateTarget = this), !d.preDispatch || !1 !== d.preDispatch.call(this, l))) {
2004                                for (r = T.event.handlers.call(this, l, c), t = 0; (s = r[t++]) && !l.isPropagationStopped(); )
2005                                    for (l.currentTarget = s.elem, n = 0; (o = s.handlers[n++]) && !l.isImmediatePropagationStopped(); )
2006                                        (l.rnamespace && !1 !== o.namespace && !l.rnamespace.test(o.namespace)) ||
2007                                            ((l.handleObj = o),
2008                                            (l.data = o.data),
2009                                            void 0 !== (i = ((T.event.special[o.origType] || {}).handle || o.handler).apply(s.elem, a)) && !1 === (l.result = i) && (l.preventDefault(), l.stopPropagation()));
2010                                return d.postDispatch && d.postDispatch.call(this, l), l.result;
2011                            }
2012                        },
2013                        handlers: function (e, t) {
2014                            var n,
2015                                i,
2016                                s,
2017                                o,
2018                                r,
2019                                a = [],
2020                                l = t.delegateCount,
2021                                c = e.target;
2022                            if (l && c.nodeType && !("click" === e.type && e.button >= 1))
2023                                for (; c !== this; c = c.parentNode || this)
2024                                    if (1 === c.nodeType && ("click" !== e.type || !0 !== c.disabled)) {
2025                                        for (o = [], r = {}, n = 0; n < l; n++) void 0 === r[(s = (i = t[n]).selector + " ")] && (r[s] = i.needsContext ? T(s, this).index(c) > -1 : T.find(s, this, null, [c]).length), r[s] && o.push(i);
2026                                        o.length && a.push({ elem: c, handlers: o });
2027                                    }
2028                            return (c = this), l < t.length && a.push({ elem: c, handlers: t.slice(l) }), a;
2029                        },
2030                        addProp: function (e, t) {
2031                            Object.defineProperty(T.Event.prototype, e, {
2032                                enumerable: !0,
2033                                configurable: !0,
2034                                get: v(t)
2035                                    ? function () {
2036                                          if (this.originalEvent) return t(this.originalEvent);
2037                                      }
2038                                    : function () {
2039                                          if (this.originalEvent) return this.originalEvent[e];
2040                                      },
2041                                set: function (t) {
2042                                    Object.defineProperty(this, e, { enumerable: !0, configurable: !0, writable: !0, value: t });
2043                                },
2044                            });
2045                        },
2046                        fix: function (e) {
2047                            return e[T.expando] ? e : new T.Event(e);
2048                        },
2049                        special: {
2050                            load: { noBubble: !0 },
2051                            click: {
2052                                setup: function (e) {
2053                                    var t = this || e;
2054                                    return me.test(t.type) && t.click && L(t, "input") && $e(t, "click", Ee), !1;
2055                                },
2056                                trigger: function (e) {
2057                                    var t = this || e;
2058                                    return me.test(t.type) && t.click && L(t, "input") && $e(t, "click"), !0;
2059                                },
2060                                _default: function (e) {
2061                                    var t = e.target;
2062                                    return (me.test(t.type) && t.click && L(t, "input") && Q.get(t, "click")) || L(t, "a");
2063                                },
2064                            },
2065                            beforeunload: {
2066                                postDispatch: function (e) {
2067                                    void 0 !== e.result && e.originalEvent && (e.originalEvent.returnValue = e.result);
2068                                },
2069                            },
2070                        },
2071                    }),
2072                        (T.removeEvent = function (e, t, n) {
2073                            e.removeEventListener && e.removeEventListener(t, n);
2074                        }),
2075                        (T.Event = function (e, t) {
2076                            if (!(this instanceof T.Event)) return new T.Event(e, t);
2077                            e && e.type
2078                                ? ((this.originalEvent = e),
2079                                  (this.type = e.type),
2080                                  (this.isDefaultPrevented = e.defaultPrevented || (void 0 === e.defaultPrevented && !1 === e.returnValue) ? Ee : Se),
2081                                  (this.target = e.target && 3 === e.target.nodeType ? e.target.parentNode : e.target),
2082                                  (this.currentTarget = e.currentTarget),
2083                                  (this.relatedTarget = e.relatedTarget))
2084                                : (this.type = e),
2085                                t && T.extend(this, t),
2086                                (this.timeStamp = (e && e.timeStamp) || Date.now()),
2087                                (this[T.expando] = !0);
2088                        }),
2089                        (T.Event.prototype = {
2090                            constructor: T.Event,
2091                            isDefaultPrevented: Se,
2092                            isPropagationStopped: Se,
2093                            isImmediatePropagationStopped: Se,
2094                            isSimulated: !1,
2095                            preventDefault: function () {
2096                                var e = this.originalEvent;
2097                                (this.isDefaultPrevented = Ee), e && !this.isSimulated && e.preventDefault();
2098                            },
2099                            stopPropagation: function () {
2100                                var e = this.originalEvent;
2101                                (this.isPropagationStopped = Ee), e && !this.isSimulated && e.stopPropagation();
2102                            },
2103                            stopImmediatePropagation: function () {
2104                                var e = this.originalEvent;
2105                                (this.isImmediatePropagationStopped = Ee), e && !this.isSimulated && e.stopImmediatePropagation(), this.stopPropagation();
2106                            },
2107                        }),
2108                        T.each(
2109                            {
2110                                altKey: !0,
2111                                bubbles: !0,
2112                                cancelable: !0,
2113                                changedTouches: !0,
2114                                ctrlKey: !0,
2115                                detail: !0,
2116                                eventPhase: !0,
2117                                metaKey: !0,
2118                                pageX: !0,
2119                                pageY: !0,
2120                                shiftKey: !0,
2121                                view: !0,
2122                                char: !0,
2123                                code: !0,
2124                                charCode: !0,
2125                                key: !0,
2126                                keyCode: !0,
2127                                button: !0,
2128                                buttons: !0,
2129                                clientX: !0,
2130                                clientY: !0,
2131                                offsetX: !0,
2132                                offsetY: !0,
2133                                pointerId: !0,
2134                                pointerType: !0,
2135                                screenX: !0,
2136                                screenY: !0,
2137                                targetTouches: !0,
2138                                toElement: !0,
2139                                touches: !0,
2140                                which: !0,
2141                            },
2142                            T.event.addProp
2143                        ),
2144                        T.each({ focus: "focusin", blur: "focusout" }, function (e, t) {
2145                            T.event.special[e] = {
2146                                setup: function () {
2147                                    return $e(this, e, Ae), !1;
2148                                },
2149                                trigger: function () {
2150                                    return $e(this, e), !0;
2151                                },
2152                                _default: function (t) {
2153                                    return Q.get(t.target, e);
2154                                },
2155                                delegateType: t,
2156                            };
2157                        }),
2158                        T.each({ mouseenter: "mouseover", mouseleave: "mouseout", pointerenter: "pointerover", pointerleave: "pointerout" }, function (e, t) {
2159                            T.event.special[e] = {
2160                                delegateType: t,
2161                                bindType: t,
2162                                handle: function (e) {
2163                                    var n,
2164                                        i = this,
2165                                        s = e.relatedTarget,
2166                                        o = e.handleObj;
2167                                    return (s && (s === i || T.contains(i, s))) || ((e.type = o.origType), (n = o.handler.apply(this, arguments)), (e.type = t)), n;
2168                                },
2169                            };
2170                        }),
2171                        T.fn.extend({
2172                            on: function (e, t, n, i) {
2173                                return ke(this, e, t, n, i);
2174                            },
2175                            one: function (e, t, n, i) {
2176                                return ke(this, e, t, n, i, 1);
2177                            },
2178                            off: function (e, t, n) {
2179                                var i, s;
2180                                if (e && e.preventDefault && e.handleObj) return (i = e.handleObj), T(e.delegateTarget).off(i.namespace ? i.origType + "." + i.namespace : i.origType, i.selector, i.handler), this;
2181                                if ("object" == typeof e) {
2182                                    for (s in e) this.off(s, t, e[s]);
2183                                    return this;
2184                                }
2185                                return (
2186                                    (!1 !== t && "function" != typeof t) || ((n = t), (t = void 0)),
2187                                    !1 === n && (n = Se),
2188                                    this.each(function () {
2189                                        T.event.remove(this, e, n, t);
2190                                    })
2191                                );
2192                            },
2193                        });
2194                    var Le = /<script|<style|<link/i,
2195                        Pe = /checked\s*(?:[^=]|=\s*.checked.)/i,
2196                        Oe = /^\s*<!\[CDATA\[|\]\]>\s*$/g;
2197                    function Me(e, t) {
2198                        return (L(e, "table") && L(11 !== t.nodeType ? t : t.firstChild, "tr") && T(e).children("tbody")[0]) || e;
2199                    }
2200                    function De(e) {
2201                        return (e.type = (null !== e.getAttribute("type")) + "/" + e.type), e;
2202                    }
2203                    function Ne(e) {
2204                        return "true/" === (e.type || "").slice(0, 5) ? (e.type = e.type.slice(5)) : e.removeAttribute("type"), e;
2205                    }
2206                    function Ie(e, t) {
2207                        var n, i, s, o, r, a;
2208                        if (1 === t.nodeType) {
2209                            if (Q.hasData(e) && (a = Q.get(e).events)) for (s in (Q.remove(t, "handle events"), a)) for (n = 0, i = a[s].length; n < i; n++) T.event.add(t, s, a[s][n]);
2210                            J.hasData(e) && ((o = J.access(e)), (r = T.extend({}, o)), J.set(t, r));
2211                        }
2212                    }
2213                    function ze(e, t) {
2214                        var n = t.nodeName.toLowerCase();
2215                        "input" === n && me.test(e.type) ? (t.checked = e.checked) : ("input" !== n && "textarea" !== n) || (t.defaultValue = e.defaultValue);
2216                    }
2217                    function je(e, t, n, i) {
2218                        t = l(t);
2219                        var s,
2220                            o,
2221                            r,
2222                            a,
2223                            c,
2224                            d,
2225                            h = 0,
2226                            u = e.length,
2227                            p = u - 1,
2228                            f = t[0],
2229                            g = v(f);
2230                        if (g || (u > 1 && "string" == typeof f && !m.checkClone && Pe.test(f)))
2231                            return e.each(function (s) {
2232                                var o = e.eq(s);
2233                                g && (t[0] = f.call(this, s, o.html())), je(o, t, n, i);
2234                            });
2235                        if (u && ((o = (s = Ce(t, e[0].ownerDocument, !1, e, i)).firstChild), 1 === s.childNodes.length && (s = o), o || i)) {
2236                            for (a = (r = T.map(we(s, "script"), De)).length; h < u; h++) (c = s), h !== p && ((c = T.clone(c, !0, !0)), a && T.merge(r, we(c, "script"))), n.call(e[h], c, h);
2237                            if (a)
2238                                for (d = r[r.length - 1].ownerDocument, T.map(r, Ne), h = 0; h < a; h++)
2239                                    (c = r[h]),
2240                                        be.test(c.type || "") &&
2241                                            !Q.access(c, "globalEval") &&
2242                                            T.contains(d, c) &&
2243                                            (c.src && "module" !== (c.type || "").toLowerCase() ? T._evalUrl && !c.noModule && T._evalUrl(c.src, { nonce: c.nonce || c.getAttribute("nonce") }, d) : x(c.textContent.replace(Oe, ""), c, d));
2244                        }
2245                        return e;
2246                    }
2247                    function Fe(e, t, n) {
2248                        for (var i, s = t ? T.filter(t, e) : e, o = 0; null != (i = s[o]); o++) n || 1 !== i.nodeType || T.cleanData(we(i)), i.parentNode && (n && ae(i) && xe(we(i, "script")), i.parentNode.removeChild(i));
2249                        return e;
2250                    }
2251                    T.extend({
2252                        htmlPrefilter: function (e) {
2253                            return e;
2254                        },
2255                        clone: function (e, t, n) {
2256                            var i,
2257                                s,
2258                                o,
2259                                r,
2260                                a = e.cloneNode(!0),
2261                                l = ae(e);
2262                            if (!(m.noCloneChecked || (1 !== e.nodeType && 11 !== e.nodeType) || T.isXMLDoc(e))) for (r = we(a), i = 0, s = (o = we(e)).length; i < s; i++) ze(o[i], r[i]);
2263                            if (t)
2264                                if (n) for (o = o || we(e), r = r || we(a), i = 0, s = o.length; i < s; i++) Ie(o[i], r[i]);
2265                                else Ie(e, a);
2266                            return (r = we(a, "script")).length > 0 && xe(r, !l && we(e, "script")), a;
2267                        },
2268                        cleanData: function (e) {
2269                            for (var t, n, i, s = T.event.special, o = 0; void 0 !== (n = e[o]); o++)
2270                                if (K(n)) {
2271                                    if ((t = n[Q.expando])) {
2272                                        if (t.events) for (i in t.events) s[i] ? T.event.remove(n, i) : T.removeEvent(n, i, t.handle);
2273                                        n[Q.expando] = void 0;
2274                                    }
2275                                    n[J.expando] && (n[J.expando] = void 0);
2276                                }
2277                        },
2278                    }),
2279                        T.fn.extend({
2280                            detach: function (e) {
2281                                return Fe(this, e, !0);
2282                            },
2283                            remove: function (e) {
2284                                return Fe(this, e);
2285                            },
2286                            text: function (e) {
2287                                return V(
2288                                    this,
2289                                    function (e) {
2290                                        return void 0 === e
2291                                            ? T.text(this)
2292                                            : this.empty().each(function () {
2293                                                  (1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType) || (this.textContent = e);
2294                                              });
2295                                    },
2296                                    null,
2297                                    e,
2298                                    arguments.length
2299                                );
2300                            },
2301                            append: function () {
2302                                return je(this, arguments, function (e) {
2303                                    (1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType) || Me(this, e).appendChild(e);
2304                                });
2305                            },
2306                            prepend: function () {
2307                                return je(this, arguments, function (e) {
2308                                    if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
2309                                        var t = Me(this, e);
2310                                        t.insertBefore(e, t.firstChild);
2311                                    }
2312                                });
2313                            },
2314                            before: function () {
2315                                return je(this, arguments, function (e) {
2316                                    this.parentNode && this.parentNode.insertBefore(e, this);
2317                                });
2318                            },
2319                            after: function () {
2320                                return je(this, arguments, function (e) {
2321                                    this.parentNode && this.parentNode.insertBefore(e, this.nextSibling);
2322                                });
2323                            },
2324                            empty: function () {
2325                                for (var e, t = 0; null != (e = this[t]); t++) 1 === e.nodeType && (T.cleanData(we(e, !1)), (e.textContent = ""));
2326                                return this;
2327                            },
2328                            clone: function (e, t) {
2329                                return (
2330                                    (e = null != e && e),
2331                                    (t = null == t ? e : t),
2332                                    this.map(function () {
2333                                        return T.clone(this, e, t);
2334                                    })
2335                                );
2336                            },
2337                            html: function (e) {
2338                                return V(
2339                                    this,
2340                                    function (e) {
2341                                        var t = this[0] || {},
2342                                            n = 0,
2343                                            i = this.length;
2344                                        if (void 0 === e && 1 === t.nodeType) return t.innerHTML;
2345                                        if ("string" == typeof e && !Le.test(e) && !ye[(ve.exec(e) || ["", ""])[1].toLowerCase()]) {
2346                                            e = T.htmlPrefilter(e);
2347                                            try {
2348                                                for (; n < i; n++) 1 === (t = this[n] || {}).nodeType && (T.cleanData(we(t, !1)), (t.innerHTML = e));
2349                                                t = 0;
2350                                            } catch (e) {}
2351                                        }
2352                                        t && this.empty().append(e);
2353                                    },
2354                                    null,
2355                                    e,
2356                                    arguments.length
2357                                );
2358                            },
2359                            replaceWith: function () {
2360                                var e = [];
2361                                return je(
2362                                    this,
2363                                    arguments,
2364                                    function (t) {
2365                                        var n = this.parentNode;
2366                                        T.inArray(this, e) < 0 && (T.cleanData(we(this)), n && n.replaceChild(t, this));
2367                                    },
2368                                    e
2369                                );
2370                            },
2371                        }),
2372                        T.each({ appendTo: "append", prependTo: "prepe
2372nd", insertBefore: "before", insertAfter: "after", replaceAll: "replaceWith" }, function (e, t) {
2373                            T.fn[e] = function (e) {
2374                                for (var n, i = [], s = T(e), o = s.length - 1, r = 0; r <= o; r++) (n = r === o ? this : this.clone(!0)), T(s[r])[t](n), c.apply(i, n.get());
2375                                return this.pushStack(i);
2376                            };
2377                        });
2378                    var He = new RegExp("^(" + ie + ")(?!px)[a-z%]+$", "i"),
2379                        Re = /^--/,
2380                        Be = function (e) {
2381                            var t = e.ownerDocument.defaultView;
2382                            return (t && t.opener) || (t = i), t.getComputedStyle(e);
2383                        },
2384                        qe = function (e, t, n) {
2385                            var i,
2386                                s,
2387                                o = {};
2388                            for (s in t) (o[s] = e.style[s]), (e.style[s] = t[s]);
2389                            for (s in ((i = n.call(e)), t)) e.style[s] = o[s];
2390                            return i;
2391                        },
2392                        We = new RegExp(oe.join("|"), "i"),
2393                        Ve = new RegExp("^[\\x20\\t\\r\\n\\f]+|((?:^|[^\\\\])(?:\\\\.)*)[\\x20\\t\\r\\n\\f]+$", "g");
2394                    function Ge(e, t, n) {
2395                        var i,
2396                            s,
2397                            o,
2398                            r,
2399                            a = Re.test(t),
2400                            l = e.style;
2401                        return (
2402                            (n = n || Be(e)) &&
2403                                ((r = n.getPropertyValue(t) || n[t]),
2404                                a && (r = r.replace(Ve, "$1")),
2405                                "" !== r || ae(e) || (r = T.style(e, t)),
2406                                !m.pixelBoxStyles() &&
2407                                    He.test(r) &&
2408                                    We.test(t) &&
2409                                    ((i = l.width), (s = l.minWidth), (o = l.maxWidth), (l.minWidth = l.maxWidth = l.width = r), (r = n.width), (l.width = i), (l.minWidth = s), (l.maxWidth = o))),
2410                            void 0 !== r ? r + "" : r
2411                        );
2412                    }
2413                    function Xe(e, t) {
2414                        return {
2415                            get: function () {
2416                                if (!e()) return (this.get = t).apply(this, arguments);
2417                                delete this.get;
2418                            },
2419                        };
2420                    }
2421                    !(function () {
2422                        function e() {
2423                            if (d) {
2424                                (c.style.cssText = "position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0"),
2425                                    (d.style.cssText = "position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%"),
2426                                    re.appendChild(c).appendChild(d);
2427                                var e = i.getComputedStyle(d);
2428                                (n = "1%" !== e.top),
2429                                    (l = 12 === t(e.marginLeft)),
2430                                    (d.style.right = "60%"),
2431                                    (r = 36 === t(e.right)),
2432                                    (s = 36 === t(e.width)),
2433                                    (d.style.position = "absolute"),
2434                                    (o = 12 === t(d.offsetWidth / 3)),
2435                                    re.removeChild(c),
2436                                    (d = null);
2437                            }
2438                        }
2439                        function t(e) {
2440                            return Math.round(parseFloat(e));
2441                        }
2442                        var n,
2443                            s,
2444                            o,
2445                            r,
2446                            a,
2447                            l,
2448                            c = y.createElement("div"),
2449                            d = y.createElement("div");
2450                        d.style &&
2451                            ((d.style.backgroundClip = "content-box"),
2452                            (d.cloneNode(!0).style.backgroundClip = ""),
2453                            (m.clearCloneStyle = "content-box" === d.style.backgroundClip),
2454                            T.extend(m, {
2455                                boxSizingReliable: function () {
2456                                    return e(), s;
2457                                },
2458                                pixelBoxStyles: function () {
2459                                    return e(), r;
2460                                },
2461                                pixelPosition: function () {
2462                                    return e(), n;
2463                                },
2464                                reliableMarginLeft: function () {
2465                                    return e(), l;
2466                                },
2467                                scrollboxSize: function () {
2468                                    return e(), o;
2469                                },
2470                                reliableTrDimensions: function () {
2471                                    var e, t, n, s;
2472                                    return (
2473                                        null == a &&
2474                                            ((e = y.createElement("table")),
2475                                            (t = y.createElement("tr")),
2476                                            (n = y.createElement("div")),
2477                                            (e.style.cssText = "position:absolute;
2477left:-11111px;border-collapse:separate"),
2478                                            (t.style.cssText = "border:1px solid"),
2479                                            (t.style.height = "1px"),
2480                                            (n.style.height = "9px"),
2481                                            (n.style.display = "block"),
2482                                            re.appendChild(e).appendChild(t).appendChild(n),
2483                                            (s = i.getComputedStyle(t)),
2484                                            (a = parseInt(s.height, 10) + parseInt(s.borderTopWidth, 10) + parseInt(s.borderBottomWidth, 10) === t.offsetHeight),
2485                                            re.removeChild(e)),
2486                                        a
2487                                    );
2488                                },
2489                            }));
2490                    })();
2491                    var Ye = ["Webkit", "Moz", "ms"],
2492                        Ue = y.createElement("div").style,
2493                        Ke = {};
2494                    function Ze(e) {
2495                        var t = T.cssProps[e] || Ke[e];
2496                        return (
2497                            t ||
2498                            (e in Ue
2499                                ? e
2500                                : (Ke[e] =
2501                                      (function (e) {
2502                                          for (var t = e[0].toUpperCase() + e.slice(1), n = Ye.length; n--; ) if ((e = Ye[n] + t) in Ue) return e;
2503                                      })(e) || e))
2504                        );
2505                    }
2506                    var Qe = /^(none|table(?!-c[ea]).+)/,
2507                        Je = { position: "absolute", visibility: "hidden", display: "block" },
2508                        et = { letterSpacing: "0", fontWeight: "400" };
2509                    function tt(e, t, n) {
2510                        var i = se.exec(t);
2511                        return i ? Math.max(0, i[2] - (n || 0)) + (i[3] || "px") : t;
2512                    }
2513                    function nt(e, t, n, i, s, o) {
2514                        var r = "width" === t ? 1 : 0,
2515                            a = 0,
2516                            l = 0;
2517                        if (n === (i ? "border" : "content")) return 0;
2518                        for (; r < 4; r += 2)
2519                            "margin" === n && (l += T.css(e, n + oe[r], !0, s)),
2520                                i
2521                                    ? ("content" === n && (l -= T.css(e, "padding" + oe[r], !0, s)), "margin" !== n && (l -= T.css(e, "border" + oe[r] + "Width", !0, s)))
2522                                    : ((l += T.css(e, "padding" + oe[r], !0, s)), "padding" !== n ? (l += T.css(e, "border" + oe[r] + "Width", !0, s)) : (a += T.css(e, "border" + oe[r] + "Width", !0, s)));
2523                        return !i && o >= 0 && (l += Math.max(0, Math.ceil(e["offset" + t[0].toUpperCase() + t.slice(1)] - o - l - a - 0.5)) || 0), l;
2524                    }
2525                    function it(e, t, n) {
2526                        var i = Be(e),
2527                            s = (!m.boxSizingReliable() || n) && "border-box" === T.css(e, "boxSizing", !1, i),
2528                            o = s,
2529                            r = Ge(e, t, i),
2530                            a = "offset" + t[0].toUpperCase() + t.slice(1);
2531                        if (He.test(r)) {
2532                            if (!n) return r;
2533                            r = "auto";
2534                        }
2535                        return (
2536                            ((!m.boxSizingReliable() && s) || (!m.reliableTrDimensions() && L(e, "tr")) || "auto" === r || (!parseFloat(r) && "inline" === T.css(e, "display", !1, i))) &&
2537                                e.getClientRects().length &&
2538                                ((s = "border-box" === T.css(e, "boxSizing", !1, i)), (o = a in e) && (r = e[a])),
2539                            (r = parseFloat(r) || 0) + nt(e, t, n || (s ? "border" : "content"), o, i, r) + "px"
2540                        );
2541                    }
2542                    function st(e, t, n, i, s) {
2543                        return new st.prototype.init(e, t, n, i, s);
2544                    }
2545                    T.extend({
2546                        cssHooks: {
2547                            opacity: {
2548                                get: function (e, t) {
2549                                    if (t) {
2550                                        var n = Ge(e, "opacity");
2551                                        return "" === n ? "1" : n;
2552                                    }
2553                                },
2554                            },
2555                        },
2556                        cssNumber: {
2557                            animationIterationCount: !0,
2558                            columnCount: !0,
2559                            fillOpacity: !0,
2560                            flexGrow: !0,
2561                            flexShrink: !0,
2562                            fontWeight: !0,
2563                            gridArea: !0,
2564                            gridColumn: !0,
2565                            gridColumnEnd: !0,
2566                            gridColumnStart: !0,
2567                            gridRow: !0,
2568                            gridRowEnd: !0,
2569                            gridRowStart: !0,
2570                            lineHeight: !0,
2571                            opacity: !0,
2572                            order: !0,
2573                            orphans: !0,
2574                            widows: !0,
2575                            zIndex: !0,
2576                            zoom: !0,
2577                        },
2578                        cssProps: {},
2579                        style: function (e, t, n, i) {
2580                            if (e && 3 !== e.nodeType && 8 !== e.nodeType && e.style) {
2581                                var s,
2582                                    o,
2583                                    r,
2584                                    a = U(t),
2585                                    l = Re.test(t),
2586                                    c = e.style;
2587                                if ((l || (t = Ze(a)), (r = T.cssHooks[t] || T.cssHooks[a]), void 0 === n)) return r && "get" in r && void 0 !== (s = r.get(e, !1, i)) ? s : c[t];
2588                                "string" === (o = typeof n) && (s = se.exec(n)) && s[1] && ((n = de(e, t, s)), (o = "number")),
2589                                    null != n &&
2590                                        n == n &&
2591                                        ("number" !== o || l || (n += (s && s[3]) || (T.cssNumber[a] ? "" : "px")),
2592                                        m.clearCloneStyle || "" !== n || 0 !== t.indexOf("background") || (c[t] = "inherit"),
2593                                        (r && "set" in r && void 0 === (n = r.set(e, n, i))) || (l ? c.setProperty(t, n) : (c[t] = n)));
2594                            }
2595                        },
2596                        css: function (e, t, n, i) {
2597                            var s,
2598                                o,
2599                                r,
2600                                a = U(t);
2601                            return (
2602                                Re.test(t) || (t = Ze(a)),
2603                                (r = T.cssHooks[t] || T.cssHooks[a]) && "get" in r && (s = r.get(e, !0, n)),
2604                                void 0 === s && (s = Ge(e, t, i)),
2605                                "normal" === s && t in et && (s = et[t]),
2606                                "" === n || n ? ((o = parseFloat(s)), !0 === n || isFinite(o) ? o || 0 : s) : s
2607                            );
2608                        },
2609                    }),
2610                        T.each(["height", "width"], function (e, t) {
2611                            T.cssHooks[t] = {
2612                                get: function (e, n, i) {
2613                                    if (n)
2614                                        return !Qe.test(T.css(e, "display")) || (e.getClientRects().length && e.getBoundingClientRect().width)
2615                                            ? it(e, t, i)
2616                                            : qe(e, Je, function () {
2617                                                  return it(e, t, i);
2618                                              });
2619                                },
2620                                set: function (e, n, i) {
2621                                    var s,
2622                                        o = Be(e),
2623                                        r = !m.scrollboxSize() && "absolute" === o.position,
2624                                        a = (r || i) && "border-box" === T.css(e, "boxSizing", !1, o),
2625                                        l = i ? nt(e, t, i, a, o) : 0;
2626                                    return (
2627                                        a && r && (l -= Math.ceil(e["offset" + t[0].toUpperCase() + t.slice(1)] - parseFloat(o[t]) - nt(e, t, "border", !1, o) - 0.5)),
2628                                        l && (s = se.exec(n)) && "px" !== (s[3] || "px") && ((e.style[t] = n), (n = T.css(e, t))),
2629                                        tt(0, n, l)
2630                                    );
2631                                },
2632                            };
2633                        }),
2634                        (T.cssHooks.marginLeft = Xe(m.reliableMarginLeft, function (e, t) {
2635                            if (t)
2636                                return (
2637                                    (parseFloat(Ge(e, "marginLeft")) ||
2638                                        e.getBoundingClientRect().left -
2639                                            qe(e, { marginLeft: 0 }, function () {
2640                                                return e.getBoundingClientRect().left;
2641                                            })) + "px"
2642                                );
2643                        })),
2644                        T.each({ margin: "", padding: "", border: "Width" }, function (e, t) {
2645                            (T.cssHooks[e + t] = {
2646                                expand: function (n) {
2647                                    for (var i = 0, s = {}, o = "string" == typeof n ? n.split(" ") : [n]; i < 4; i++) s[e + oe[i] + t] = o[i] || o[i - 2] || o[0];
2648                                    return s;
2649                                },
2650                            }),
2651                                "margin" !== e && (T.cssHooks[e + t].set = tt);
2652                        }),
2653                        T.fn.extend({
2654                            css: function (e, t) {
2655                                return V(
2656                                    this,
2657                                    function (e, t, n) {
2658                                        var i,
2659                                            s,
2660                                            o = {},
2661                                            r = 0;
2662                                        if (Array.isArray(t)) {
2663                                            for (i = Be(e), s = t.length; r < s; r++) o[t[r]] = T.css(e, t[r], !1, i);
2664                                            return o;
2665                                        }
2666                                        return void 0 !== n ? T.style(e, t, n) : T.css(e, t);
2667                                    },
2668                                    e,
2669                                    t,
2670                                    arguments.length > 1
2671                                );
2672                            },
2673                        }),
2674                        (T.Tween = st),
2675                        (st.prototype = {
2676                            constructor: st,
2677                            init: function (e, t, n, i, s, o) {
2678                                (this.elem = e), (this.prop = n), (this.easing = s || T.easing._default), (this.options = t), (this.start = this.now = this.cur()), (this.end = i), (this.unit = o || (T.cssNumber[n] ? "" : "px"));
2679                            },
2680                            cur: function () {
2681                                var e = st.propHooks[this.prop];
2682                                return e && e.get ? e.get(this) : st.propHooks._default.get(this);
2683                            },
2684                            run: function (e) {
2685                                var t,
2686                                    n = st.propHooks[this.prop];
2687                                return (
2688                                    this.options.duration ? (this.pos = t = T.easing[this.easing](e, this.options.duration * e, 0, 1, this.options.duration)) : (this.pos = t = e),
2689                                    (this.now = (this.end - this.start) * t + this.start),
2690                                    this.options.step && this.options.step.call(this.elem, this.now, this),
2691                                    n && n.set ? n.set(this) : st.propHooks._default.set(this),
2692                                    this
2693                                );
2694                            },
2695                        }),
2696                        (st.prototype.init.prototype = st.prototype),
2697                        (st.propHooks = {
2698                            _default: {
2699                                get: function (e) {
2700                                    var t;
2701                                    return 1 !== e.elem.nodeType || (null != e.elem[e.prop] && null == e.elem.style[e.prop]) ? e.elem[e.prop] : (t = T.css(e.elem, e.prop, "")) && "auto" !== t ? t : 0;
2702                                },
2703                                set: function (e) {
2704                                    T.fx.step[e.prop] ? T.fx.step[e.prop](e) : 1 !== e.elem.nodeType || (!T.cssHooks[e.prop] && null == e.elem.style[Ze(e.prop)]) ? (e.elem[e.prop] = e.now) : T.style(e.elem, e.prop, e.now + e.unit);
2705                                },
2706                            },
2707                        }),
2708                        (st.propHooks.scrollTop = st.propHooks.scrollLeft = {
2709                            set: function (e) {
2710                                e.elem.nodeType && e.elem.parentNode && (e.elem[e.prop] = e.now);
2711                            },
2712                        }),
2713                        (T.easing = {
2714                            linear: function (e) {
2715                                return e;
2716                            },
2717                            swing: function (e) {
2718                                return 0.5 - Math.cos(e * Math.PI) / 2;
2719                            },
2720                            _default: "swing",
2721                        }),
2722                        (T.fx = st.prototype.init),
2723                        (T.fx.step = {});
2724                    var ot,
2725                        rt,
2726                        at = /^(?:toggle|show|hide)$/,
2727                        lt = /queueHooks$/;
2728                    function ct() {
2729                        rt && (!1 === y.hidden && i.requestAnimationFrame ? i.requestAnimationFrame(ct) : i.setTimeout(ct, T.fx.interval), T.fx.tick());
2730                    }
2731                    function dt() {
2732                        return (
2733                            i.setTimeout(function () {
2734                                ot = void 0;
2735                            }),
2736                            (ot = Date.now())
2737                        );
2738                    }
2739                    function ht(e, t) {
2740                        var n,
2741                            i = 0,
2742                            s = { height: e };
2743                        for (t = t ? 1 : 0; i < 4; i += 2 - t) s["margin" + (n = oe[i])] = s["padding" + n] = e;
2744                        return t && (s.opacity = s.width = e), s;
2745                    }
2746                    function ut(e, t, n) {
2747                        for (var i, s = (pt.tweeners[t] || []).concat(pt.tweeners["*"]), o = 0, r = s.length; o < r; o++) if ((i = s[o].call(n, t, e))) return i;
2748                    }
2749                    function pt(e, t, n) {
2750                        var i,
2751                            s,
2752                            o = 0,
2753                            r = pt.prefilters.length,
2754                            a = T.Deferred().always(function () {
2755                                delete l.elem;
2756                            }),
2757                            l = function () {
2758                                if (s) return !1;
2759                                for (var t = ot || dt(), n = Math.max(0, c.startTime + c.duration - t), i = 1 - (n / c.duration || 0), o = 0, r = c.tweens.length; o < r; o++) c.tweens[o].run(i);
2760                                return a.notifyWith(e, [c, i, n]), i < 1 && r ? n : (r || a.notifyWith(e, [c, 1, 0]), a.resolveWith(e, [c]), !1);
2761                            },
2762                            c = a.promise({
2763                                elem: e,
2764                                props: T.extend({}, t),
2765                                opts: T.extend(!0, { specialEasing: {}, easing: T.easing._default }, n),
2766                                originalProperties: t,
2767                                originalOptions: n,
2768                                startTime: ot || dt(),
2769                                duration: n.duration,
2770                                tweens: [],
2771                                createTween: function (t, n) {
2772                                    var i = T.Tween(e, c.opts, t, n, c.opts.specialEasing[t] || c.opts.easing);
2773                                    return c.tweens.push(i), i;
2774                                },
2775                                stop: function (t) {
2776                                    var n = 0,
2777                                        i = t ? c.tweens.length : 0;
2778                                    if (s) return this;
2779                                    for (s = !0; n < i; n++) c.tweens[n].run(1);
2780                                    return t ? (a.notifyWith(e, [c, 1, 0]), a.resolveWith(e, [c, t])) : a.rejectWith(e, [c, t]), this;
2781                                },
2782                            }),
2783                            d = c.props;
2784                        for (
2785                            !(function (e, t) {
2786                                var n, i, s, o, r;
2787                                for (n in e)
2788                                    if (((s = t[(i = U(n))]), (o = e[n]), Array.isArray(o) && ((s = o[1]), (o = e[n] = o[0])), n !== i && ((e[i] = o), delete e[n]), (r = T.cssHooks[i]) && ("exp
2788and" in r)))
2789                                        for (n in ((o = r.expand(o)), delete e[i], o)) (n in e) || ((e[n] = o[n]), (t[n] = s));
2790                                    else t[i] = s;
2791                            })(d, c.opts.specialEasing);
2792                            o < r;
2793                            o++
2794                        )
2795                            if ((i = pt.prefilters[o].call(c, e, d, c.opts))) return v(i.stop) && (T._queueHooks(c.elem, c.opts.queue).stop = i.stop.bind(i)), i;
2796                        return (
2797                            T.map(d, ut, c),
2798                            v(c.opts.start) && c.opts.start.call(e, c),
2799                            c.progress(c.opts.progress).done(c.opts.done, c.opts.complete).fail(c.opts.fail).always(c.opts.always),
2800                            T.fx.timer(T.extend(l, { elem: e, anim: c, queue: c.opts.queue })),
2801                            c
2802                        );
2803                    }
2804                    (T.Animation = T.extend(pt, {
2805                        tweeners: {
2806                            "*": [
2807                                function (e, t) {
2808                                    var n = this.createTween(e, t);
2809                                    return de(n.elem, e, se.exec(t), n), n;
2810                                },
2811                            ],
2812                        },
2813                        tweener: function (e, t) {
2814                            v(e) ? ((t = e), (e = ["*"])) : (e = e.match(j));
2815                            for (var n, i = 0, s = e.length; i < s; i++) (n = e[i]), (pt.tweeners[n] = pt.tweeners[n] || []), pt.tweeners[n].unshift(t);
2816                        },
2817                        prefilters: [
2818                            function (e, t, n) {
2819                                var i,
2820                                    s,
2821                                    o,
2822                                    r,
2823                                    a,
2824                                    l,
2825                                    c,
2826                                    d,
2827                                    h = "width" in t || "height" in t,
2828                                    u = this,
2829                                    p = {},
2830                                    f = e.style,
2831                                    g = e.nodeType && ce(e),
2832                                    m = Q.get(e, "fxshow");
2833                                for (i in (n.queue ||
2834                                    (null == (r = T._queueHooks(e, "fx")).unqueued &&
2835                                        ((r.unqueued = 0),
2836                                        (a = r.empty.fire),
2837                                        (r.empty.fire = function () {
2838                                            r.unqueued || a();
2839                                        })),
2840                                    r.unqueued++,
2841                                    u.always(function () {
2842                                        u.always(function () {
2843                                            r.unqueued--, T.queue(e, "fx").length || r.empty.fire();
2844                                        });
2845                                    })),
2846                                t))
2847                                    if (((s = t[i]), at.test(s))) {
2848                                        if ((delete t[i], (o = o || "toggle" === s), s === (g ? "hide" : "show"))) {
2849                                            if ("show" !== s || !m || void 0 === m[i]) continue;
2850                                            g = !0;
2851                                        }
2852                                        p[i] = (m && m[i]) || T.style(e, i);
2853                                    }
2854                                if ((l = !T.isEmptyObject(t)) || !T.isEmptyObject(p))
2855                                    for (i in (h &&
2856                                        1 === e.nodeType &&
2857                                        ((n.overflow = [f.overflow, f.overflowX, f.overflowY]),
2858                                        null == (c = m && m.display) && (c = Q.get(e, "display")),
2859                                        "none" === (d = T.css(e, "display")) && (c ? (d = c) : (pe([e], !0), (c = e.style.display || c), (d = T.css(e, "display")), pe([e]))),
2860                                        ("inline" === d || ("inline-block" === d && null != c)) &&
2861                                            "none" === T.css(e, "float") &&
2862                                            (l ||
2863                                                (u.done(function () {
2864                                                    f.display = c;
2865                                                }),
2866                                                null == c && ((d = f.display), (c = "none" === d ? "" : d))),
2867                                            (f.display = "inline-block"))),
2868                                    n.overflow &&
2869                                        ((f.overflow = "hidden"),
2870                                        u.always(function () {
2871                                            (f.overflow = n.overflow[0]), (f.overflowX = n.overflow[1]), (f.overflowY = n.overflow[2]);
2872                                        })),
2873                                    (l = !1),
2874                                    p))
2875                                        l ||
2876                                            (m ? "hidden" in m && (g = m.hidden) : (m = Q.access(e, "fxshow", { display: c })),
2877                                            o && (m.hidden = !g),
2878                                            g && pe([e], !0),
2879                                            u.done(function () {
2880                                                for (i in (g || pe([e]), Q.remove(e, "fxshow"), p)) T.style(e, i, p[i]);
2881                                            })),
2882                                            (l = ut(g ? m[i] : 0, i, u)),
2883                                            i in m || ((m[i] = l.start), g && ((l.end = l.start), (l.start = 0)));
2884                            },
2885                        ],
2886                        prefilter: function (e, t) {
2887                            t ? pt.prefilters.unshift(e) : pt.prefilters.push(e);
2888                        },
2889                    })),
2890                        (T.speed = function (e, t, n) {
2891                            var i = e && "object" == typeof e ? T.extend({}, e) : { complete: n || (!n && t) || (v(e) && e), duration: e, easing: (n && t) || (t && !v(t) && t) };
2892                            return (
2893                                T.fx.off ? (i.duration = 0) : "number" != typeof i.duration && (i.duration in T.fx.speeds ? (i.duration = T.fx.speeds[i.duration]) : (i.duration = T.fx.speeds._default)),
2894                                (null != i.queue && !0 !== i.queue) || (i.queue = "fx"),
2895                                (i.old = i.complete),
2896                                (i.complete = function () {
2897                                    v(i.old) && i.old.call(this), i.queue && T.dequeue(this, i.queue);
2898                                }),
2899                                i
2900                            );
2901                        }),
2902                        T.fn.extend({
2903                            fadeTo: function (e, t, n, i) {
2904                                return this.filter(ce).css("opacity", 0).show().end().animate({ opacity: t }, e, n, i);
2905                            },
2906                            animate: function (e, t, n, i) {
2907                                var s = T.isEmptyObject(e),
2908                                    o = T.speed(t, n, i),
2909                                    r = function () {
2910                                        var t = pt(this, T.extend({}, e), o);
2911                                        (s || Q.get(this, "finish")) && t.stop(!0);
2912                                    };
2913                                return (r.finish = r), s || !1 === o.queue ? this.each(r) : this.queue(o.queue, r);
2914                            },
2915                            stop: function (e, t, n) {
2916                                var i = function (e) {
2917                                    var t = e.stop;
2918                                    delete e.stop, t(n);
2919                                };
2920                                return (
2921                                    "string" != typeof e && ((n = t), (t = e), (e = void 0)),
2922                                    t && this.queue(e || "fx", []),
2923                                    this.each(function () {
2924                                        var t = !0,
2925                                            s = null != e && e + "queueHooks",
2926                                            o = T.timers,
2927                                            r = Q.get(this);
2928                                        if (s) r[s] && r[s].stop && i(r[s]);
2929                                        else for (s in r) r[s] && r[s].stop && lt.test(s) && i(r[s]);
2930                                        for (s = o.length; s--; ) o[s].elem !== this || (null != e && o[s].queue !== e) || (o[s].anim.stop(n), (t = !1), o.splice(s, 1));
2931                                        (!t && n) || T.dequeue(this, e);
2932                                    })
2933                                );
2934                            },
2935                            finish: function (e) {
2936                                return (
2937                                    !1 !== e && (e = e || "fx"),
2938                                    this.each(function () {
2939                                        var t,
2940                                            n = Q.get(this),
2941                                            i = n[e + "queue"],
2942                                            s = n[e + "queueHooks"],
2943                                            o = T.timers,
2944                                            r = i ? i.length : 0;
2945                                        for (n.finish = !0, T.queue(this, e, []), s && s.stop && s.stop.call(this, !0), t = o.length; t--; ) o[t].elem === this && o[t].queue === e && (o[t].anim.stop(!0), o.splice(t, 1));
2946                                        for (t = 0; t < r; t++) i[t] && i[t].finish && i[t].finish.call(this);
2947                                        delete n.finish;
2948                                    })
2949                                );
2950                            },
2951                        }),
2952                        T.each(["toggle", "show", "hide"], function (e, t) {
2953                            var n = T.fn[t];
2954                            T.fn[t] = function (e, i, s) {
2955                                return null == e || "boolean" == typeof e ? n.apply(this, arguments) : this.animate(ht(t, !0), e, i, s);
2956                            };
2957                        }),
2958                        T.each({ slideDown: ht("show"), slideUp: ht("hide"), slideToggle: ht("toggle"), fadeIn: { opacity: "show" }, fadeOut: { opacity: "hide" }, fadeToggle: { opacity: "toggle" } }, function (e, t) {
2959                            T.fn[e] = function (e, n, i) {
2960                                return this.animate(t, e, n, i);
2961                            };
2962                        }),
2963                        (T.timers = []),
2964                        (T.fx.tick = function () {
2965                            var e,
2966                                t = 0,
2967                                n = T.timers;
2968                            for (ot = Date.now(); t < n.length; t++) (e = n[t])() || n[t] !== e || n.splice(t--, 1);
2969                            n.length || T.fx.stop(), (ot = void 0);
2970                        }),
2971                        (T.fx.timer = function (e) {
2972                            T.timers.push(e), T.fx.start();
2973                        }),
2974                        (T.fx.interval = 13),
2975                        (T.fx.start = function () {
2976                            rt || ((rt = !0), ct());
2977                        }),
2978                        (T.fx.stop = function () {
2979                            rt = null;
2980                        }),
2981                        (T.fx.speeds = { slow: 600, fast: 200, _default: 400 }),
2982                        (T.fn.delay = function (e, t) {
2983                            return (
2984                                (e = (T.fx && T.fx.speeds[e]) || e),
2985                                (t = t || "fx"),
2986                                this.queue(t, function (t, n) {
2987                                    var s = i.setTimeout(t, e);
2988                                    n.stop = function () {
2989                                        i.clearTimeout(s);
2990                                    };
2991                                })
2992                            );
2993                        }),
2994                        (function () {
2995                            var e = y.createElement("input"),
2996                                t = y.createElement("select").appendChild(y.createElement("option"));
2997                            (e.type = "checkbox"), (m.checkOn = "" !== e.value), (m.optSelected = t.selected), ((e = y.createElement("input")).value = "t"), (e.type = "radio"), (m.radioValue = "t" === e.value);
2998                        })();
2999                    var ft,
3000                        gt = T.expr.attrHandle;
3001                    T.fn.extend({
3002                        attr: function (e, t) {
3003                            return V(this, T.attr, e, t, arguments.length > 1);
3004                        },
3005                        removeAttr: function (e) {
3006                            return this.each(function () {
3007                                T.removeAttr(this, e);
3008                            });
3009                        },
3010                    }),
3011                        T.extend({
3012                            attr: function (e, t, n) {
3013                                var i,
3014                                    s,
3015                                    o = e.nodeType;
3016                                if (3 !== o && 8 !== o && 2 !== o)
3017                                    return void 0 === e.getAttribute
3018                                        ? T.prop(e, t, n)
3019                                        : ((1 === o && T.isXMLDoc(e)) || (s = T.attrHooks[t.toLowerCase()] || (T.expr.match.bool.test(t) ? ft : void 0)),
3020                                          void 0 !== n
3021                                              ? null === n
3022                                                  ? void T.removeAttr(e, t)
3023                                                  : s && "set" in s && void 0 !== (i = s.set(e, n, t))
3024                                                  ? i
3025                                                  : (e.setAttribute(t, n + ""), n)
3026                                              : s && "get" in s && null !== (i = s.get(e, t))
3027                                              ? i
3028                                              : null == (i = T.find.attr(e, t))
3029                                              ? void 0
3030                                              : i);
3031                            },
3032                            attrHooks: {
3033                                type: {
3034                                    set: function (e, t) {
3035                                        if (!m.radioValue && "radio" === t && L(e, "input")) {
3036                                            var n = e.value;
3037                                            return e.setAttribute("type", t), n && (e.value = n), t;
3038                                        }
3039                                    },
3040                                },
3041                            },
3042                            removeAttr: function (e, t) {
3043                                var n,
3044                                    i = 0,
3045                                    s = t && t.match(j);
3046                                if (s && 1 === e.nodeType) for (; (n = s[i++]); ) e.removeAttribute(n);
3047                            },
3048                        }),
3049                        (ft = {
3050                            set: function (e, t, n) {
3051                                return !1 === t ? T.removeAttr(e, n) : e.setAttribute(n, n), n;
3052                            },
3053                        }),
3054                        T.each(T.expr.match.bool.source.match(/\w+/g), function (e, t) {
3055                            var n = gt[t] || T.find.attr;
3056                            gt[t] = function (e, t, i) {
3057                                var s,
3058                                    o,
3059                                    r = t.toLowerCase();
3060                                return i || ((o = gt[r]), (gt[r] = s), (s = null != n(e, t, i) ? r : null), (gt[r] = o)), s;
3061                            };
3062                        });
3063                    var mt = /^(?:input|select|textarea|button)$/i,
3064                        vt = /^(?:a|area)$/i;
3065                    function bt(e) {
3066                        return (e.match(j) || []).join(" ");
3067                    }
3068                    function yt(e) {
3069                        return (e.getAttribute && e.getAttribute("class")) || "";
3070                    }
3071                    function wt(e) {
3072                        return Array.isArray(e) ? e : ("string" == typeof e && e.match(j)) || [];
3073                    }
3074                    T.fn.extend({
3075                        prop: function (e, t) {
3076                            return V(this, T.prop, e, t, arguments.length > 1);
3077                        },
3078                        removeProp: function (e) {
3079                            return this.each(function () {
3080                                delete this[T.propFix[e] || e];
3081                            });
3082                        },
3083                    }),
3084                        T.extend({
3085                            prop: function (e, t, n) {
3086                                var i,
3087                                    s,
3088                                    o = e.nodeType;
3089                                if (3 !== o && 8 !== o && 2 !== o)
3090                                    return (
3091                                        (1 === o && T.isXMLDoc(e)) || ((t = T.propFix[t] || t), (s = T.propHooks[t])),
3092                                        void 0 !== n ? (s && "set" in s && void 0 !== (i = s.set(e, n, t)) ? i : (e[t] = n)) : s && "get" in s && null !== (i = s.get(e, t)) ? i : e[t]
3093                                    );
3094                            },
3095                            propHooks: {
3096                                tabIndex: {
3097                                    get: function (e) {
3098                                        var t = T.find.attr(e, "tabindex");
3099                                        return t ? parseInt(t, 10) : mt.test(e.nodeName) || (vt.test(e.nodeName) && e.href) ? 0 : -1;
3100                                    },
3101                                },
3102                            },
3103                            propFix: { for: "htmlFor", class: "className" },
3104                        }),
3105                        m.optSelected ||
3106                            (T.propHooks.selected = {
3107                                get: function (e) {
3108                                    var t = e.parentNode;
3109                                    return t && t.parentNode && t.parentNode.selectedIndex, null;
3110                                },
3111                                set: function (e) {
3112                                    var t = e.parentNode;
3113                                    t && (t.selectedIndex, t.parentNode && t.parentNode.selectedIndex);
3114                                },
3115                            }),
3116                        T.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], function () {
3117                            T.propFix[this.toLowerCase()] = this;
3118                        }),
3119                        T.fn.extend({
3120                            addClass: function (e) {
3121                                var t, n, i, s, o, r;
3122                                return v(e)
3123                                    ? this.each(function (t) {
3124                                          T(this).addClass(e.call(this, t, yt(this)));
3125                                      })
3126                                    : (t = wt(e)).length
3127                                    ? this.each(function () {
3128                                          if (((i = yt(this)), (n = 1 === this.nodeType && " " + bt(i) + " "))) {
3129                                              for (o = 0; o < t.length; o++) (s = t[o]), n.indexOf(" " + s + " ") < 0 && (n += s + " ");
3130                                              (r = bt(n)), i !== r && this.setAttribute("class", r);
3131                                          }
3132                                      })
3133                                    : this;
3134                            },
3135                            removeClass: function (e) {
3136                                var t, n, i, s, o, r;
3137                                return v(e)
3138                                    ? this.each(function (t) {
3139                                          T(this).removeClass(e.call(this, t, yt(this)));
3140                                      })
3141                                    : arguments.length
3142                                    ? (t = wt(e)).length
3143                                        ? this.each(function () {
3144                                              if (((i = yt(this)), (n = 1 === this.nodeType && " " + bt(i) + " "))) {
3145                                                  for (o = 0; o < t.length; o++) for (s = t[o]; n.indexOf(" " + s + " ") > -1; ) n = n.replace(" " + s + " ", " ");
3146                                                  (r = bt(n)), i !== r && this.setAttribute("class", r);
3147                                              }
3148                                          })
3149                                        : this
3150                                    : this.attr("class", "");
3151                            },
3152                            toggleClass: function (e, t) {
3153                                var n,
3154                                    i,
3155                                    s,
3156                                    o,
3157                                    r = typeof e,
3158                                    a = "string" === r || Array.isArray(e);
3159                                return v(e)
3160                                    ? this.each(function (n) {
3161                                          T(this).toggleClass(e.call(this, n, yt(this), t), t);
3162                                      })
3163                                    : "boolean" == typeof t && a
3164                                    ? t
3165                                        ? this.addClass(e)
3166                                        : this.removeClass(e)
3167                                    : ((n = wt(e)),
3168                                      this.each(function () {
3169                                          if (a) for (o = T(this), s = 0; s < n.length; s++) (i = n[s]), o.hasClass(i) ? o.removeClass(i) : o.addClass(i);
3170                                          else
3171                                              (void 0 !== e && "boolean" !== r) ||
3172                                                  ((i = yt(this)) && Q.set(this, "__className__", i), this.setAttribute && this.setAttribute("class", i || !1 === e ? "" : Q.get(this, "__className__") || ""));
3173                                      }));
3174                            },
3175                            hasClass: function (e) {
3176                                var t,
3177                                    n,
3178                                    i = 0;
3179                                for (t = " " + e + " "; (n = this[i++]); ) if (1 === n.nodeType && (" " + bt(yt(n)) + " ").indexOf(t) > -1) return !0;
3180                                return !1;
3181                            },
3182                        });
3183                    var xt = /\r/g;
3184                    T.fn.extend({
3185                        val: function (e) {
3186                            var t,
3187                                n,
3188                                i,
3189                                s = this[0];
3190                            return arguments.length
3191                                ? ((i = v(e)),
3192                                  this.each(function (n) {
3193                                      var s;
3194                                      1 === this.nodeType &&
3195                                          (null == (s = i ? e.call(this, n, T(this).val()) : e)
3196                                              ? (s = "")
3197                                              : "number" == typeof s
3198                                              ? (s += "")
3199                                              : Array.isArray(s) &&
3200                                                (s = T.map(s, function (e) {
3201                                                    return null == e ? "" : e + "";
3202                                                })),
3203                                          ((t = T.valHooks[this.type] || T.valHooks[this.nodeName.toLowerCase()]) && "set" in t && void 0 !== t.set(this, s, "value")) || (this.value = s));
3204                                  }))
3205                                : s
3206                                ? (t = T.valHooks[s.type] || T.valHooks[s.nodeName.toLowerCase()]) && "get" in t && void 0 !== (n = t.get(s, "value"))
3207                                    ? n
3208                                    : "string" == typeof (n = s.value)
3209                                    ? n.replace(xt, "")
3210                                    : null == n
3211                                    ? ""
3212                                    : n
3213                                : void 0;
3214                        },
3215                    }),
3216                        T.extend({
3217                            valHooks: {
3218                                option: {
3219                                    get: function (e) {
3220                                        var t = T.find.attr(e, "value");
3221                                        return null != t ? t : bt(T.text(e));
3222                                    },
3223                                },
3224                                select: {
3225                                    get: function (e) {
3226                                        var t,
3227                                            n,
3228                                            i,
3229                                            s = e.options,
3230                                            o = e.selectedIndex,
3231                                            r = "select-one" === e.type,
3232                                            a = r ? null : [],
3233                                            l = r ? o + 1 : s.length;
3234                                        for (i = o < 0 ? l : r ? o : 0; i < l; i++)
3235                                            if (((n = s[i]).selected || i === o) && !n.disabled && (!n.parentNode.disabled || !L(n.parentNode, "optgroup"))) {
3236                                                if (((t = T(n).val()), r)) return t;
3237                                                a.push(t);
3238                                            }
3239                                        return a;
3240                                    },
3241                                    set: function (e, t) {
3242                                        for (var n, i, s = e.options, o = T.makeArray(t), r = s.length; r--; ) ((i = s[r]).selected = T.inArray(T.valHooks.option.get(i), o) > -1) && (n = !0);
3243                                        return n || (e.selectedIndex = -1), o;
3244                                    },
3245                                },
3246                            },
3247                        }),
3248                        T.each(["radio", "checkbox"], function () {
3249                            (T.valHooks[this] = {
3250                                set: function (e, t) {
3251                                    if (Array.isArray(t)) return (e.checked = T.inArray(T(e).val(), t) > -1);
3252                                },
3253                            }),
3254                                m.checkOn ||
3255                                    (T.valHooks[this].get = function (e) {
3256                                        return null === e.getAttribute("value") ? "on" : e.value;
3257                                    });
3258                        }),
3259                        (m.focusin = "onfocusin" in i);
3260                    var _t = /^(?:focusinfocus|focusoutblur)$/,
3261                        Ct = function (e) {
3262                            e.stopPropagation();
3263                        };
3264                    T.extend(T.event, {
3265                        trigger: function (e, t, n, s) {
3266                            var o,
3267                                r,
3268                                a,
3269                                l,
3270                                c,
3271                                d,
3272                                h,
3273                                u,
3274                                f = [n || y],
3275                                g = p.call(e, "type") ? e.type : e,
3276                                m = p.call(e, "namespace") ? e.namespace.split(".") : [];
3277                            if (
3278                                ((r = u = a = n = n || y),
3279                                3 !== n.nodeType &&
3280                                    8 !== n.nodeType &&
3281                                    !_t.test(g + T.event.triggered) &&
3282                                    (g.indexOf(".") > -1 && ((m = g.split(".")), (g = m.shift()), m.sort()),
3283                                    (c = g.indexOf(":") < 0 && "on" + g),
3284                                    ((e = e[T.expando] ? e : new T.Event(g, "object" == typeof e && e)).isTrigger = s ? 2 : 3),
3285                                    (e.namespace = m.join(".")),
3286                                    (e.rnamespace = e.namespace ? new RegExp("(^|\\.)" + m.join("\\.(?:.*\\.|)") + "(\\.|$)") : null),
3287                                    (e.result = void 0),
3288                                    e.target || (e.target = n),
3289                                    (t = null == t ? [e] : T.makeArray(t, [e])),
3290                                    (h = T.event.special[g] || {}),
3291                                    s || !h.trigger || !1 !== h.trigger.apply(n, t)))
3292                            ) {
3293                                if (!s && !h.noBubble && !b(n)) {
3294                                    for (l = h.delegateType || g, _t.test(l + g) || (r = r.parentNode); r; r = r.parentNode) f.push(r), (a = r);
3295                                    a === (n.ownerDocument || y) && f.push(a.defaultView || a.parentWindow || i);
3296                                }
3297                                for (o = 0; (r = f[o++]) && !e.isPropagationStopped(); )
3298                                    (u = r),
3299                                        (e.type = o > 1 ? l : h.bindType || g),
3300                                        (d = (Q.get(r, "events") || Object.create(null))[e.type] && Q.get(r, "handle")) && d.apply(r, t),
3301                                        (d = c && r[c]) && d.apply && K(r) && ((e.result = d.apply(r, t)), !1 === e.result && e.preventDefault());
3302                                return (
3303                                    (e.type = g),
3304                                    s ||
3305                                        e.isDefaultPrevented() ||
3306                                        (h._default && !1 !== h._default.apply(f.pop(), t)) ||
3307                                        !K(n) ||
3308                                        (c &&
3309                                            v(n[g]) &&
3310                                            !b(n) &&
3311                                            ((a = n[c]) && (n[c] = null),
3312                                            (T.event.triggered = g),
3313                                            e.isPropagationStopped() && u.addEventListener(g, Ct),
3314                                            n[g](),
3315                                            e.isPropagationStopped() && u.removeEventListener(g, Ct),
3316                                            (T.event.triggered = void 0),
3317                                            a && (n[c] = a))),
3318                                    e.result
3319                                );
3320                            }
3321                        },
3322                        simulate: function (e, t, n) {
3323                            var i = T.extend(new T.Event(), n, { type: e, isSimulated: !0 });
3324                            T.event.trigger(i, null, t);
3325                        },
3326                    }),
3327                        T.fn.extend({
3328                            trigger: function (e, t) {
3329                                return this.each(function () {
3330                                    T.event.trigger(e, t, this);
3331                                });
3332                            },
3333                            triggerHandler: function (e, t) {
3334                                var n = this[0];
3335                                if (n) return T.event.trigger(e, t, n, !0);
3336                            },
3337                        }),
3338                        m.focusin ||
3339                            T.each({ focus: "focusin", blur: "focusout" }, function (e, t) {
3340                                var n = function (e) {
3341                                    T.event.simulate(t, e.target, T.event.fix(e));
3342                                };
3343                                T.event.special[t] = {
3344                                    setup: function () {
3345                                        var i = this.ownerDocument || this.document || this,
3346                                            s = Q.access(i, t);
3347                                        s || i.addEventListener(e, n, !0), Q.access(i, t, (s || 0) + 1);
3348                                    },
3349                                    teardown: function () {
3350                                        var i = this.ownerDocument || this.document || this,
3351                                            s = Q.access(i, t) - 1;
3352                                        s ? Q.access(i, t, s) : (i.removeEventListener(e, n, !0), Q.remove(i, t));
3353                                    },
3354                                };
3355                            });
3356                    var Tt = i.location,
3357                        Et = { guid: Date.now() },
3358                        St = /\?/;
3359                    T.parseXML = function (e) {
3360                        var t, n;
3361                        if (!e || "string" != typeof e) return null;
3362                        try {
3363                            t = new i.DOMParser().parseFromString(e, "text/xml");
3364                        } catch (e) {}
3365                        return (
3366                            (n = t && t.getElementsByTagName("parsererror")[0]),
3367                            (t && !n) ||
3368                                T.error(
3369                                    "Invalid XML: " +
3370                                        (n
3371                                            ? T.map(n.childNodes, function (e) {
3372                                                  return e.textContent;
3373                                              }).join("\n")
3374                                            : e)
3375                                ),
3376                            t
3377                        );
3378                    };
3379                    var At = /\[\]$/,
3380                        kt = /\r?\n/g,
3381                        $t = /^(?:submit|button|image|reset|file)$/i,
3382                        Lt = /^(?:input|select|textarea|keygen)/i;
3383                    function Pt(e, t, n, i) {
3384                        var s;
3385                        if (Array.isArray(t))
3386                            T.each(t, function (t, s) {
3387                                n || At.test(e) ? i(e, s) : Pt(e + "[" + ("object" == typeof s && null != s ? t : "") + "]", s, n, i);
3388                            });
3389                        else if (n || "object" !== _(t)) i(e, t);
3390                        else for (s in t) Pt(e + "[" + s + "]", t[s], n, i);
3391                    }
3392                    (T.param = function (e, t) {
3393                        var n,
3394                            i = [],
3395                            s = function (e, t) {
3396                                var n = v(t) ? t() : t;
3397                                i[i.length] = encodeURIComponent(e) + "=" + encodeURIComponent(null == n ? "" : n);
3398                            };
3399                        if (null == e) return "";
3400                        if (Array.isArray(e) || (e.jquery && !T.isPlainObject(e)))
3401                            T.each(e, function () {
3402                                s(this.name, this.value);
3403                            });
3404                        else for (n in e) Pt(n, e[n], t, s);
3405                        return i.join("&");
3406                    }),
3407                        T.fn.extend({
3408                            serialize: function () {
3409                                return T.param(this.serializeArray());
3410                            },
3411                            serializeArray: function () {
3412                                return this.map(function () {
3413                                    var e = T.prop(this, "elements");
3414                                    return e ? T.makeArray(e) : this;
3415                                })
3416                                    .filter(function () {
3417                                        var e = this.type;
3418                                        return this.name && !T(this).is(":disabled") && Lt.test(this.nodeName) && !$t.test(e) && (this.checked || !me.test(e));
3419                                    })
3420                                    .map(function (e, t) {
3421                                        var n = T(this).val();
3422                                        return null == n
3423                                            ? null
3424                                            : Array.isArray(n)
3425                                            ? T.map(n, function (e) {
3426                                                  return { name: t.name, value: e.replace(kt, "\r\n") };
3427                                              })
3428                                            : { name: t.name, value: n.replace(kt, "\r\n") };
3429                                    })
3430                                    .get();
3431                            },
3432                        });
3433                    var Ot = /%20/g,
3434                        Mt = /#.*$/,
3435                        Dt = /([?&])_=[^&]*/,
3436                        Nt = /^(.*?):[ \t]*([^\r\n]*)$/gm,
3437                        It = /^(?:GET|HEAD)$/,
3438                        zt = /^\/\//,
3439                        jt = {},
3440                        Ft = {},
3441                        Ht = "*/".concat("*"),
3442                        Rt = y.createElement("a");
3443                    function Bt(e) {
3444                        return function (t, n) {
3445                            "string" != typeof t && ((n = t), (t = "*"));
3446                            var i,
3447                                s = 0,
3448                                o = t.toLowerCase().match(j) || [];
3449                            if (v(n)) for (; (i = o[s++]);
3449 ) "+" === i[0] ? ((i = i.slice(1) || "*"), (e[i] = e[i] || []).unshift(n)) : (e[i] = e[i] || []).push(n);
3450                        };
3451                    }
3452                    function qt(e, t, n, i) {
3453                        var s = {},
3454                            o = e === Ft;
3455                        function r(a) {
3456                            var l;
3457                            return (
3458                                (s[a] = !0),
3459                                T.each(e[a] || [], function (e, a) {
3460                                    var c = a(t, n, i);
3461                                    return "string" != typeof c || o || s[c] ? (o ? !(l = c) : void 0) : (t.dataTypes.unshift(c), r(c), !1);
3462                                }),
3463                                l
3464                            );
3465                        }
3466                        return r(t.dataTypes[0]) || (!s["*"] && r("*"));
3467                    }
3468                    function Wt(e, t) {
3469                        var n,
3470                            i,
3471                            s = T.ajaxSettings.flatOptions || {};
3472                        for (n in t) void 0 !== t[n] && ((s[n] ? e : i || (i = {}))[n] = t[n]);
3473                        return i && T.extend(!0, e, i), e;
3474                    }
3475                    (Rt.href = Tt.href),
3476                        T.extend({
3477                            active: 0,
3478                            lastModified: {},
3479                            etag: {},
3480                            ajaxSettings: {
3481                                url: Tt.href,
3482                                type: "GET",
3483                                isLocal: /^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Tt.protocol),
3484                                global: !0,
3485                                processData: !0,
3486                                async: !0,
3487                                contentType: "application/x-www-form-urlencoded; charset=UTF-8",
3488                                accepts: { "*": Ht, text: "text/plain", html: "text/html", xml: "application/xml, text/xml", json: "application/json, text/javascript" },
3489                                contents: { xml: /\bxml\b/, html: /\bhtml/, json: /\bjson\b/ },
3490                                responseFields: { xml: "responseXML", text: "responseText", json: "responseJSON" },
3491                                converters: { "* text": String, "text html": !0, "text json": JSON.parse, "text xml": T.parseXML },
3492                                flatOptions: { url: !0, context: !0 },
3493                            },
3494                            ajaxSetup: function (e, t) {
3495                                return t ? Wt(Wt(e, T.ajaxSettings), t) : Wt(T.ajaxSettings, e);
3496                            },
3497                            ajaxPrefilter: Bt(jt),
3498                            ajaxTransport: Bt(Ft),
3499                            ajax: function (e, t) {
3500                                "object" == typeof e && ((t = e), (e = void 0)), (t = t || {});
3501                                var n,
3502                                    s,
3503                                    o,
3504                                    r,
3505                                    a,
3506                                    l,
3507                                    c,
3508                                    d,
3509                                    h,
3510                                    u,
3511                                    p = T.ajaxSetup({}, t),
3512                                    f = p.context || p,
3513                                    g = p.context && (f.nodeType || f.jquery) ? T(f) : T.event,
3514                                    m = T.Deferred(),
3515                                    v = T.Callbacks("once memory"),
3516                                    b = p.statusCode || {},
3517                                    w = {},
3518                                    x = {},
3519                                    _ = "canceled",
3520                                    C = {
3521                                        readyState: 0,
3522                                        getResponseHeader: function (e) {
3523                                            var t;
3524                                            if (c) {
3525                                                if (!r) for (r = {}; (t = Nt.exec(o)); ) r[t[1].toLowerCase() + " "] = (r[t[1].toLowerCase() + " "] || []).concat(t[2]);
3526                                                t = r[e.toLowerCase() + " "];
3527                                            }
3528                                            return null == t ? null : t.join(", ");
3529                                        },
3530                                        getAllResponseHeaders: function () {
3531                                            return c ? o : null;
3532                                        },
3533                                        setRequestHeader: function (e, t) {
3534                                            return null == c && ((e = x[e.toLowerCase()] = x[e.toLowerCase()] || e), (w[e] = t)), this;
3535                                        },
3536                                        overrideMimeType: function (e) {
3537                                            return null == c && (p.mimeType = e), this;
3538                                        },
3539                                        statusCode: function (e) {
3540                                            var t;
3541                                            if (e)
3542                                                if (c) C.always(e[C.status]);
3543                                                else for (t in e) b[t] = [b[t], e[t]];
3544                                            return this;
3545                                        },
3546                                        abort: function (e) {
3547                                            var t = e || _;
3548                                            return n && n.abort(t), E(0, t), this;
3549                                        },
3550                                    };
3551                                if (
3552                                    (m.promise(C),
3553                                    (p.url = ((e || p.url || Tt.href) + "").replace(zt, Tt.protocol + "//")),
3554                                    (p.type = t.method || t.type || p.method || p.t
3554ype),
3555                                    (p.dataTypes = (p.dataType || "*").toLowerCase().match(j) || [""]),
3556                                    null == p.crossDomain)
3557                                ) {
3558                                    l = y.createElement("a");
3559                                    try {
3560                                        (l.href = p.url), (l.href = l.href), (p.crossDomain = Rt.protocol + "//" + Rt.host != l.protocol + "//" + l.host);
3561                                    } catch (e) {
3562                                        p.crossDomain = !0;
3563                                    }
3564                                }
3565                                if ((p.data && p.processData && "string" != typeof p.data && (p.data = T.param(p.data, p.traditional)), qt(jt, p, t, C), c)) return C;
3566                                for (h in ((d = T.event && p.global) && 0 == T.active++ && T.event.trigger("ajaxStart"),
3567                                (p.type = p.type.toUpperCase()),
3568                                (p.hasContent = !It.test(p.type)),
3569                                (s = p.url.replace(Mt, "")),
3570                                p.hasContent
3571                                    ? p.data && p.processData && 0 === (p.contentType || "").indexOf("application/x-www-form-urlencoded") && (p.data = p.data.replace(Ot, "+"))
3572                                    : ((u = p.url.slice(s.length)),
3573                                      p.data && (p.processData || "string" == typeof p.data) && ((s += (St.test(s) ? "&" : "?") + p.data), delete p.data),
3574                                      !1 === p.cache && ((s = s.replace(Dt, "$1")), (u = (St.test(s) ? "&" : "?") + "_=" + Et.guid++ + u)),
3575                                      (p.url = s + u)),
3576                                p.ifModified && (T.lastModified[s] && C.setRequestHeader("If-Modified-Since", T.lastModified[s]), T.etag[s] && C.setRequestHeader("If-None-Match", T.etag[s])),
3577                                ((p.data && p.hasContent && !1 !== p.contentType) || t.contentType) && C.setRequestHeader("Content-Type", p.contentType),
3578                                C.setRequestHeader("Accept", p.dataTypes[0] && p.accepts[p.dataTypes[0]] ? p.accepts[p.dataTypes[0]] + ("*" !== p.dataTypes[0] ? ", " + Ht + "; q=0.01" : "") : p.accepts["*"]),
3579                                p.headers))
3580                                    C.setRequestHeader(h, p.headers[h]);
3581                                if (p.beforeSend && (!1 === p.beforeSend.call(f, C, p) || c)) return C.abort();
3582                                if (((_ = "abort"), v.add(p.complete), C.done(p.success), C.fail(p.error), (n = qt(Ft, p, t, C)))) {
3583                                    if (((C.readyState = 1), d && g.trigger("ajaxSend", [C, p]), c)) return C;
3584                                    p.async &&
3585                                        p.timeout > 0 &&
3586                                        (a = i.setTimeout(function () {
3587                                            C.abort("timeout");
3588                                        }, p.timeout));
3589                                    try {
3590                                        (c = !1), n.send(w, E);
3591                                    } catch (e) {
3592                                        if (c) throw e;
3593                                        E(-1, e);
3594                                    }
3595                                } else E(-1, "No Transport");
3596                                function E(e, t, r, l) {
3597                                    var h,
3598                                        u,
3599                                        y,
3600                                        w,
3601                                        x,
3602                                        _ = t;
3603                                    c ||
3604                                        ((c = !0),
3605                                        a && i.clearTimeout(a),
3606                                        (n = void 0),
3607                                        (o = l || ""),
3608                                        (C.readyState = e > 0 ? 4 : 0),
3609                                        (h = (e >= 200 && e < 300) || 304 === e),
3610                                        r &&
3611                                            (w = (function (e, t, n) {
3612                                                for (var i, s, o, r, a = e.contents, l = e.dataTypes; "*" === l[0]; ) l.shift(), void 0 === i && (i = e.mimeType || t.getResponseHeader("Content-Type"));
3613                                                if (i)
3614                                                    for (s in a)
3615                                                        if (a[s] && a[s].test(i)) {
3616                                                            l.unshift(s);
3617                                                            break;
3618                                                        }
3619                                                if (l[0] in n) o = l[0];
3620                                                else {
3621                                                    for (s in n) {
3622                                                        if (!l[0] || e.converters[s + " " + l[0]]) {
3623                                                            o = s;
3624                                                            break;
3625                                                        }
3626                                                        r || (r = s);
3627                                                    }
3628                                                    o = o || r;
3629                                                }
3630                                                if (o) return o !== l[0] && l.unshift(o), n[o];
3631                                            })(p, C, r)),
3632                                        !h && T.inArray("script", p.dataTypes) > -1 && T.inArray("json", p.dataTypes) < 0 && (p.converters["text script"] = function () {}),
3633                                        (w = (function (e, t, n, i) {
3634                                            var s,
3635                                                o,
3636                                                r,
3637                                                a,
3638                                                l,
3639                                                c = {},
3640                                                d = e.dataTypes.slice();
3641                                            if (d[1]) for (r in e.converters) c[r.toLowerCase()] = e.converters[r];
3642                                            for (o = d.shift(); o; )
3643                                                if ((e.responseFields[o] && (n[e.responseFields[o]] = t), !l && i && e.dataFilter && (t = e.dataFilter(t, e.dataType)), (l = o), (o = d.shift())))
3644                                                    if ("*" === o) o = l;
3645                                                    else if ("*" !== l && l !== o) {
3646                                                        if (!(r = c[l + " " + o] || c["* " + o]))
3647                                                            for (s in c)
3648                                                                if ((a = s.split(" "))[1] === o && (r = c[l + " " + a[0]] || c["* " + a[0]])) {
3649                                                                    !0 === r ? (r = c[s]) : !0 !== c[s] && ((o = a[0]), d.unshift(a[1]));
3650                                                                    break;
3651                                                                }
3652                                                        if (!0 !== r)
3653                                                            if (r && e.throws) t = r(t);
3654                                                            else
3655                                                                try {
3656                                                                    t = r(t);
3657                                                                } catch (e) {
3658                                                                    return { state: "parsererror", error: r ? e : "No conversion from " + l + " to " + o };
3659                                                                }
3660                                                    }
3661                                            return { state: "success", data: t };
3662                                        })(p, w, C, h)),
3663                                        h
3664                                            ? (p.ifModified && ((x = C.getResponseHeader("Last-Modified")) && (T.lastModified[s] = x), (x = C.getResponseHeader("etag")) && (T.etag[s] = x)),
3665                                              204 === e || "HEAD" === p.type ? (_ = "nocontent") : 304 === e ? (_ = "notmodified") : ((_ = w.state), (u = w.data), (h = !(y = w.error))))
3666                                            : ((y = _), (!e && _) || ((_ = "error"), e < 0 && (e = 0))),
3667                                        (C.status = e),
3668                                        (C.statusText = (t || _) + ""),
3669                                        h ? m.resolveWith(f, [u, _, C]) : m.rejectWith(f, [C, _, y]),
3670                                        C.statusCode(b),
3671                                        (b = void 0),
3672                                        d && g.trigger(h ? "ajaxSuccess" : "ajaxError", [C, p, h ? u : y]),
3673                                        v.fireWith(f, [C, _]),
3674                                        d && (g.trigger("ajaxComplete", [C, p]), --T.active || T.event.trigger("ajaxStop")));
3675                                }
3676                                return C;
3677                            },
3678                            getJSON: function (e, t, n) {
3679                                return T.get(e, t, n, "json");
3680                            },
3681                            getScript: function (e, t) {
3682                                return T.get(e, void 0, t, "script");
3683                            },
3684                        }),
3685                        T.each(["get", "post"], function (e, t) {
3686                            T[t] = function (e, n, i, s) {
3687                                return v(n) && ((s = s || i), (i = n), (n = void 0)), T.ajax(T.extend({ url: e, type: t, dataType: s, data: n, success: i }, T.isPlainObject(e) && e));
3688                            };
3689                        }),
3690                        T.ajaxPrefilter(function (e) {
3691                            var t;
3692                            for (t in e.headers) "content-type" === t.toLowerCase() && (e.contentType = e.headers[t] || "");
3693                        }),
3694                        (T._evalUrl = function (e, t, n) {
3695                            return T.ajax({
3696                                url: e,
3697                                type: "GET",
3698                                dataType: "script",
3699                                cache: !0,
3700                                async: !1,
3701                                global: !1,
3702                                converters: { "text script": function () {} },
3703                                dataFilter: function (e) {
3704                                    T.globalEval(e, t, n);
3705                                },
3706                            });
3707                        }),
3708                        T.fn.extend({
3709                            wrapAll: function (e) {
3710                                var t;
3711                                return (
3712                                    this[0] &&
3713                                        (v(e) && (e = e.call(this[0])),
3714                                        (t = T(e, this[0].ownerDocument).eq(0).clone(!0)),
3715                                        this[0].parentNode && t.insertBefore(this[0]),
3716                                        t
3717                                            .map(function () {
3718                                                for (var e = this; e.firstElementChild; ) e = e.firstElementChild;
3719                                                return e;
3720                                            })
3721                                            .append(this)),
3722                                    this
3723                                );
3724                            },
3725                            wrapInner: function (e) {
3726                                return v(e)
3727                                    ? this.each(function (t) {
3728                                          T(this).wrapInner(e.call(this, t));
3729                                      })
3730                                    : this.each(function () {
3731                                          var t = T(this),
3732                                              n = t.contents();
3733                                          n.length ? n.wrapAll(e) : t.append(e);
3734                                      });
3735                            },
3736                            wrap: function (e) {
3737                                var t = v(e);
3738                                return this.each(function (n) {
3739                                    T(this).wrapAll(t ? e.call(this, n) : e);
3740                                });
3741                            },
3742                            unwrap: function (e) {
3743                                return (
3744                                    this.parent(e)
3745                                        .not("body")
3746                                        .each(function () {
3747                                            T(this).replaceWith(this.childNodes);
3748                                        }),
3749                                    this
3750                                );
3751                            },
3752                        }),
3753                        (T.expr.pseudos.hidden = function (e) {
3754                            return !T.expr.pseudos.visible(e);
3755                        }),
3756                        (T.expr.pseudos.visible = function (e) {
3757                            return !!(e.offsetWidth || e.offsetHeight || e.getClientRects().length);
3758                        }),
3759                        (T.ajaxSettings.xhr = function () {
3760                            try {
3761                                return new i.XMLHttpRequest();
3762                            } catch (e) {}
3763                        });
3764                    var Vt = { 0: 200, 1223: 204 },
3765                        Gt = T.ajaxSettings.xhr();
3766                    (m.cors = !!Gt && "withCredentials" in Gt),
3767                        (m.ajax = Gt = !!Gt),
3768                        T.ajaxTransport(function (e) {
3769                            var t, n;
3770                            if (m.cors || (Gt && !e.crossDomain))
3771                                return {
3772                                    send: function (s, o) {
3773                                        var r,
3774                                            a = e.xhr();
3775                                        if ((a.open(e.type, e.url, e.async, e.username, e.password), e.xhrFields)) for (r in e.xhrFields) a[r] = e.xhrFields[r];
3776                                        for (r in (e.mimeType && a.overrideMimeType && a.overrideMimeType(e.mimeType), e.crossDomain || s["X-Requested-With"] || (s["X-Requested-With"] = "XMLHttpRequest"), s)) a.setRequestHeader(r, s[r]);
3777                                        (t = function (e) {
3778                                            return function () {
3779                                                t &&
3780                                                    ((t = n = a.onload = a.onerror = a.onabort = a.ontimeout = a.onreadystatechange = null),
3781                                                    "abort" === e
3782                                                        ? a.abort()
3783                                                        : "error" === e
3784                                                        ? "number" != typeof a.status
3785                                                            ? o(0, "error")
3786                                                            : o(a.status, a.statusText)
3787                                                        : o(
3788                                                              Vt[a.status] || a.status,
3789                                                              a.statusText,
3790                                                              "text" !== (a.responseType || "text") || "string" != typeof a.responseText ? { binary: a.response } : { text: a.responseText },
3791                                                              a.getAllResponseHeaders()
3792                                                          ));
3793                                            };
3794                                        }),
3795                                            (a.onload = t()),
3796                                            (n = a.onerror = a.ontimeout = t("error")),
3797                                            void 0 !== a.onabort
3798                                                ? (a.onabort = n)
3799                                                : (a.onreadystatechange = function () {
3800                                                      4 === a.readyState &&
3801                                                          i.setTimeout(function () {
3802                                                              t && n();
3803                                                          });
3804                                                  }),
3805                                            (t = t("abort"));
3806                                        try {
3807                                            a.send((e.hasContent && e.data) || null);
3808                                        } catch (e) {
3809                                            if (t) throw e;
3810                                        }
3811                                    },
3812                                    abort: function () {
3813                                        t && t();
3814                                    },
3815                                };
3816                        }),
3817                        T.ajaxPrefilter(function (e) {
3818                            e.crossDomain && (e.contents.script = !1);
3819                        }),
3820                        T.ajaxSetup({
3821                            accepts: { script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript" },
3822                            contents: { script: /\b(?:java|ecma)script\b/ },
3823                            converters: {
3824                                "text script": function (e) {
3825                                    return T.globalEval(e), e;
3826                                },
3827                            },
3828                        }),
3829                        T.ajaxPrefilter("script", function (e) {
3830                            void 0 === e.cache && (e.cache = !1), e.crossDomain && (e.type = "GET");
3831                        }),
3832                        T.ajaxTransport("script", function (e) {
3833                            var t, n;
3834                            if (e.crossDomain || e.scriptAttrs)
3835                                return {
3836                                    send: function (i, s) {
3837                                        (t = T("<script>")
3838                                            .attr(e.scriptAttrs || {})
3839                                            .prop({ charset: e.scriptCharset, src: e.url })
3840                                            .on(
3841                                                "load error",
3842                                                (n = function (e) {
3843                                                    t.remove(), (n = null), e && s("error" === e.type ? 404 : 200, e.type);
3844                                                })
3845                                            )),
3846                                            y.head.appendChild(t[0]);
3847                                    },
3848                                    abort: function () {
3849                                        n && n();
3850                                    },
3851                                };
3852                        });
3853                    var Xt,
3854                        Yt = [],
3855                        Ut = /(=)\?(?=&|$)|\?\?/;
3856                    T.ajaxSetup({
3857                        jsonp: "callback",
3858                        jsonpCallback: function () {
3859                            var e = Yt.pop() || T.expando + "_" + Et.guid++;
3860                            return (this[e] = !0), e;
3861                        },
3862                    }),
3863                        T.ajaxPrefilter("json jsonp", function (e, t, n) {
3864                            var s,
3865                                o,
3866                                r,
3867                                a = !1 !== e.jsonp && (Ut.test(e.url) ? "url" : "string" == typeof e.data && 0 === (e.contentType || "").indexOf("application/x-www-form-urlencoded") && Ut.test(e.data) && "data");
3868                            if (a || "jsonp" === e.dataTypes[0])
3869                                return (
3870                                    (s = e.jsonpCallback = v(e.jsonpCallback) ? e.jsonpCallback() : e.jsonpCallback),
3871                                    a ? (e[a] = e[a].replace(Ut, "$1" + s)) : !1 !== e.jsonp && (e.url += (St.test(e.url) ? "&" : "?") + e.jsonp + "=" + s),
3872                                    (e.converters["script json"] = function () {
3873                                        return r || T.error(s + " was not called"), r[0];
3874                                    }),
3875                                    (e.dataTypes[0] = "json"),
3876                                    (o = i[s]),
3877                                    (i[s] = function () {
3878                                        r = arguments;
3879                                    }),
3880                                    n.always(function () {
3881                                        void 0 === o ? T(i).removeProp(s) : (i[s] = o), e[s] && ((e.jsonpCallback = t.jsonpCallback), Yt.push(s)), r && v(o) && o(r[0]), (r = o = void 0);
3882                                    }),
3883                                    "script"
3884                                );
3885                        }),
3886                        (m.createHTMLDocument = (((Xt = y.implementation.createHTMLDocument("").body).innerHTML = "<form></form><form></form>"), 2 === Xt.childNodes.length)),
3887                        (T.parseHTML = function (e, t, n) {
3888                            return "string" != typeof e
3889                                ? []
3890                                : ("boolean" == typeof t && ((n = t), (t = !1)),
3891                                  t || (m.createHTMLDocument ? (((i = (t = y.implementation.createHTMLDocument("")).createElement("base")).href = y.location.href), t.head.appendChild(i)) : (t = y)),
3892                                  (o = !n && []),
3893                                  (s = P.exec(e)) ? [t.createElement(s[1])] : ((s = Ce([e], t, o)), o && o.length && T(o).remove(), T.merge([], s.childNodes)));
3894                            var i, s, o;
3895                        }),
3896                        (T.fn.load = function (e, t, n) {
3897                            var i,
3898                                s,
3899                                o,
3900                                r = this,
3901                                a = e.indexOf(" ");
3902                            return (
3903                                a > -1 && ((i = bt(e.slice(a))), (e = e.slice(0, a))),
3904                                v(t) ? ((n = t), (t = void 0)) : t && "object" == typeof t && (s = "POST"),
3905                                r.length > 0 &&
3906                                    T.ajax({ url: e, type: s || "GET", dataType: "html", data: t })
3907                                        .done(function (e) {
3908                                            (o = arguments), r.html(i ? T("<div>").append(T.parseHTML(e)).find(i) : e);
3909                                        })
3910                                        .always(
3911                                            n &&
3912                                                function (e, t) {
3913                                                    r.each(function () {
3914                                                        n.apply(this, o || [e.responseText, t, e]);
3915                                                    });
3916                                                }
3917                                        ),
3918                                this
3919                            );
3920                        }),
3921                        (T.expr.pseudos.animated = function (e) {
3922                            return T.grep(T.timers, function (t) {
3923                                return e === t.elem;
3924                            }).length;
3925                        }),
3926                        (T.offset = {
3927                            setOffset: function (e, t, n) {
3928                                var i,
3929                                    s,
3930                                    o,
3931                                    r,
3932                                    a,
3933                                    l,
3934                                    c = T.css(e, "position"),
3935                                    d = T(e),
3936                                    h = {};
3937                                "static" === c && (e.style.position = "relative"),
3938                                    (a = d.offset()),
3939                                    (o = T.css(e, "top")),
3940                                    (l = T.css(e, "left")),
3941                                    ("absolute" === c || "fixed" === c) && (o + l).indexOf("auto") > -1 ? ((r = (i = d.position()).top), (s = i.left)) : ((r = parseFloat(o) || 0), (s = parseFloat(l) || 0)),
3942                                    v(t) && (t = t.call(e, n, T.extend({}, a))),
3943                                    null != t.top && (h.top = t.top - a.top + r),
3944                                    null != t.left && (h.left = t.left - a.left + s),
3945                                    "using" in t ? t.using.call(e, h) : d.css(h);
3946                            },
3947                        }),
3948                        T.fn.extend({
3949                            offset: function (e) {
3950                                if (arguments.length)
3951                                    return void 0 === e
3952                                        ? this
3953                                        : this.each(function (t) {
3954                                              T.offset.setOffset(this, e, t);
3955                                          });
3956                                var t,
3957                                    n,
3958                                    i = this[0];
3959                                return i ? (i.getClientRects().length ? ((t = i.getBoundingClientRect()), (n = i.ownerDocument.defaultView), { top: t.top + n.pageYOffset, left: t.left + n.pageXOffset }) : { top: 0, left: 0 }) : void 0;
3960                            },
3961                            position: function () {
3962                                if (this[0]) {
3963                                    var e,
3964                                        t,
3965                                        n,
3966                                        i = this[0],
3967                                        s = { top: 0, left: 0 };
3968                                    if ("fixed" === T.css(i, "position")) t = i.getBoundingClientRect();
3969                                    else {
3970                                        for (t = this.offset(), n = i.ownerDocument, e = i.offsetParent || n.documentElement; e && (e === n.body || e === n.documentElement) && "static" === T.css(e, "position"); ) e = e.parentNode;
3971                                        e && e !== i && 1 === e.nodeType && (((s = T(e).offset()).top += T.css(e, "borderTopWidth", !0)), (s.left += T.css(e, "borderLeftWidth", !0)));
3972                                    }
3973                                    return { top: t.top - s.top - T.css(i, "marginTop", !0), left: t.left - s.left - T.css(i, "marginLeft", !0) };
3974                                }
3975                            },
3976                            offsetParent: function () {
3977                                return this.map(function () {
3978                                    for (var e = this.offsetParent; e && "static" === T.css(e, "position"); ) e = e.offsetParent;
3979                                    return e || re;
3980                                });
3981                            },
3982                        }),
3983                        T.each({ scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function (e, t) {
3984                            var n = "pageYOffset" === t;
3985                            T.fn[e] = function (i) {
3986                                return V(
3987                                    this,
3988                                    function (e, i, s) {
3989                                        var o;
3990                                        if ((b(e) ? (o = e) : 9 === e.
3990nodeType && (o = e.defaultView), void 0 === s)) return o ? o[t] : e[i];
3991                                        o ? o.scrollTo(n ? o.pageXOffset : s, n ? s : o.pageYOffset) : (e[i] = s);
3992                                    },
3993                                    e,
3994                                    i,
3995                                    arguments.length
3996                                );
3997                            };
3998                        }),
3999                        T.each(["top", "left"], function (e, t) {
4000                            T.cssHooks[t] = Xe(m.pixelPosition, function (e, n) {
4001                                if (n) return (n = Ge(e, t)), He.test(n) ? T(e).position()[t] + "px" : n;
4002                            });
4003                        }),
4004                        T.each({ Height: "height", Width: "width" }, function (e, t) {
4005                            T.each({ padding: "inner" + e, content: t, "": "outer" + e }, function (n, i) {
4006                                T.fn[i] = function (s, o) {
4007                                    var r = arguments.length && (n || "boolean" != typeof s),
4008                                        a = n || (!0 === s || !0 === o ? "margin" : "border");
4009                                    return V(
4010                                        this,
4011                                        function (t, n, s) {
4012                                            var o;
4013                                            return b(t)
4014                                                ? 0 === i.indexOf("outer")
4015                                                    ? t["inner" + e]
4016                                                    : t.document.documentElement["client" + e]
4017                                                : 9 === t.nodeType
4018                                                ? ((o = t.documentElement), Math.max(t.body["scroll" + e], o["scroll" + e], t.body["offset" + e], o["offset" + e], o["client" + e]))
4019                                                : void 0 === s
4020                                                ? T.css(t, n, a)
4021                                                : T.style(t, n, s, a);
4022                                        },
4023                                        t,
4024                                        r ? s : void 0,
4025                                        r
4026                                    );
4027                                };
4028                            });
4029                        }),
4030                        T.each(["ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], function (e, t) {
4031                            T.fn[t] = function (e) {
4032                                return this.on(t, e);
4033                            };
4034                        }),
4035                        T.fn.extend({
4036                            bind: function (e, t, n) {
4037                                return this.on(e, null, t, n);
4038                            },
4039                            unbind: function (e, t) {
4040                                return this.off(e, null, t);
4041                            },
4042                            delegate: function (e, t, n, i) {
4043                                return this.on(t, e, n, i);
4044                            },
4045                            undelegate: function (e, t, n) {
4046                                return 1 === arguments.length ? this.off(e, "**") : this.off(t, e || "**", n);
4047                            },
4048                            hover: function (e, t) {
4049                                return this.mouseenter(e).mouseleave(t || e);
4050                            },
4051                        }),
4052                        T.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 (
4053                            e,
4054                            t
4055                        ) {
4056                            T.fn[t] = function (e, n) {
4057                                return arguments.length > 0 ? this.on(t, null, e, n) : this.trigger(t);
4058                            };
4059                        });
4060                    var Kt = /^[\s\uFEFF\xA0]+|([^\s\uFEFF\xA0])[\s\uFEFF\xA0]+$/g;
4061                    (T.proxy = function (e, t) {
4062                        var n, i, s;
4063                        if (("string" == typeof t && ((n = e[t]), (t = e), (e = n)), v(e)))
4064                            return (
4065                                (i = a.call(arguments, 2)),
4066                                (s = function () {
4067                                    return e.apply(t || this, i.concat(a.call(arguments)));
4068                                }),
4069                                (s.guid = e.guid = e.guid || T.guid++),
4070                                s
4071                            );
4072                    }),
4073                        (T.holdReady = function (e) {
4074                            e ? T.readyWait++ : T.ready(!0);
4075                        }),
4076                        (T.isArray = Array.isArray),
4077                        (T.parseJSON = JSON.parse),
4078                        (T.nodeName = L),
4079                        (T.isFunction = v),
4080                        (T.isWindow = b),
4081                        (T.camelCase = U),
4082                        (T.type = _),
4083                        (T.now = Date.now),
4084                        (T.isNumeric = function (e) {
4085                            var t = T.type(e);
4086                            return ("number" === t || "string" === t) && !isNaN(e - parseFloat(e));
4087                        }),
4088                        (T.trim = function (e) {
4089                            return null == e ? "" : (e + "").replace(Kt, "$1");
4090                        }),
4091                        void 0 ===
4092                            (n = function () {
4093                                return T;
4094                            }.apply(t, [])) || (e.exports = n);
4095                    var Zt = i.jQuery,
4096                        Qt = i.$;
4097                    return (
4098                        (T.noConflict = function (e) {
4099                            return i.$ === T && (i.$ = Qt), e && i.jQuery === T && (i.jQuery = Zt), T;
4100                        }),
4101                        void 0 === s && (i.jQuery = i.$ = T),
4102                        T
4103                    );
4104                });
4105            },
4106        },
4107        t = {};
4108    function n(i) {
4109        var s = t[i];
4110        if (void 0 !== s) return s.exports;
4111        var o = (t[i] = { exports: {} });
4112        return e[i].call(o.exports, o, o.exports, n), o.exports;
4113    }
4114    (n.n = (e) => {
4115        var t = e && e.__esModule ? () => e.default : () => e;
4116        return n.d(t, { a: t }), t;
4117    }),
4118        (n.d = (e, t) => {
4119            for (var i in t) n.o(t, i) && !n.o(e, i) && Object.defineProperty(e, i, { enumerable: !0, get: t[i] });
4120        }),
4121        (n.g = (function () {
4122            if ("object" == typeof globalThis) return globalThis;
4123            try {
4124                return this || new Function("return this")();
4125            } catch (e) {
4126                if ("object" == typeof window) return window;
4127            }
4128        })()),
4129        (n.o = (e, t) => Object.prototype.hasOwnProperty.call(e, t)),
4130        (n.r = (e) => {
4131            "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(e, "__esModule", { value: !0 });
4132        }),
4133        (() => {
4134            "use strict";
4135            var e = {};
4136            n.r(e),
4137                n.d(e, {
4138                    afterMain: () => at,
4139                    afterRead: () => st,
4140                    afterWrite: () => dt,
4141                    applyStyles: () => vt,
4142                    arrow: () => zt,
4143                    auto: () => Ge,
4144                    basePlacements: () => Xe,
4145                    beforeMain: () => ot,
4146                    beforeRead: () => nt,
4147                    beforeWrite: () => lt,
4148                    bottom: () => qe,
4149                    clippingParents: () => Ke,
4150                    computeStyles: () => Rt,
4151                    createPopper: () => bn,
4152                    createPopperBase: () => vn,
4153                    createPopperLite: () => yn,
4154                    detectOverflow: () => sn,
4155                    end: () => Ue,
4156                    eventListeners: () => qt,
4157                    flip: () => on,
4158                    hide: () => ln,
4159                    left: () => Ve,
4160                    main: () => rt,
4161                    modifierPhases: () => ht,
4162                    offset: () => cn,
4163                    placements: () => tt,
4164                    popper: () => Qe,
4165                    popperGenerator: () => mn,
4166                    popperOffsets: () => dn,
4167                    preventOverflow: () => hn,
4168                    read: () => it,
4169                    reference: () => Je,
4170                    right: () => We,
4171                    start: () => Ye,
4172                    top: () => Be,
4173                    variationPlacements: () => et,
4174                    viewport: () => Ze,
4175                    write: () => ct,
4176                });
4177            var t = n(755),
4178                i = n.n(t);
4179            function s(e) {
4180                return null !== e && "object" == typeof e && "constructor" in e && e.constructor === Object;
4181            }
4182            function o(e = {}, t = {}) {
4183                Object.keys(t).forEach((n) => {
4184                    void 0 === e[n] ? (e[n] = t[n]) : s(t[n]) && s(e[n]) && Object.keys(t[n]).length > 0 && o(e[n], t[n]);
4185                });
4186            }
4187            const r = {
4188                body: {},
4189                addEventListener() {},
4190                removeEventListener() {},
4191                activeElement: { blur() {}, nodeName: "" },
4192                querySelector: () => null,
4193                querySelectorAll: () => [],
4194                getElementById: () => null,
4195                createEvent: () => ({ initEvent() {} }),
4196                createElement: () => ({ children: [], childNodes: [], style: {}, setAttribute() {}, getElementsByTagName: () => [] }),
4197                createElementNS: () => ({}),
4198                importNode: () => null,
4199                location: { hash: "", host: "", hostname: "", href: "", origin: "", pathname: "", protocol: "", search: "" },
4200            };
4201            function a() {
4202                const e = "undefined" != typeof document ? document : {};
4203                return o(e, r), e;
4204            }
4205            const l = {
4206                document: r,
4207                navigator: { userAgent: "" },
4208                location: { hash: "", host: "", hostname: "", href: "", origin: "", pathname: "", protocol: "", search: "" },
4209                history: { replaceState() {}, pushState() {}, go() {}, back() {} },
4210                CustomEvent: function () {
4211                    return this;
4212                },
4213                addEventListener() {},
4214                removeEventListener() {},
4215                getComputedStyle: () => ({ getPropertyValue: () => "" }),
4216                Image() {},
4217                Date() {},
4218                screen: {},
4219                setTimeout() {},
4220                clearTimeout() {},
4221                matchMedia: () => ({}),
4222                requestAnimationFrame: (e) => ("undefined" == typeof setTimeout ? (e(), null) : setTimeout(e, 0)),
4223                cancelAnimationFrame(e) {
4224                    "undefined" != typeof setTimeout && clearTimeout(e);
4225                },
4226            };
4227            function c() {
4228                const e = "undefined" != typeof window ? window : {};
4229                return o(e, l), e;
4230            }
4231            class d extends Array {
4232                constructor(e) {
4233                    "number" == typeof e
4234                        ? super(e)
4235                        : (super(...(e || [])),
4236                          (function (e) {
4237                              const t = e.__proto__;
4238                              Object.defineProperty(e, "__proto__", {
4239                                  get: () => t,
4240                                  set(e) {
4241                                      t.__proto__ = e;
4242                                  },
4243                              });
4244                          })(this));
4245                }
4246            }
4247            function h(e = []) {
4248                const t = [];
4249                return (
4250                    e.forEach((e) => {
4251                        Array.isArray(e) ? t.push(...h(e)) : t.push(e);
4252                    }),
4253                    t
4254                );
4255            }
4256            function u(e, t) {
4257                return Array.prototype.filter.call(e, t);
4258            }
4259            function p(e, t) {
4260                const n = c(),
4261                    i = a();
4262                let s = [];
4263                if (!t && e instanceof d) return e;
4264                if (!e) return new d(s);
4265                if ("string" == typeof e) {
4266                    const n = e.trim();
4267                    if (n.indexOf("<") >= 0 && n.indexOf(">") >= 0) {
4268                        let e = "div";
4269                        0 === n.indexOf("<li") && (e = "ul"),
4270                            0 === n.indexOf("<tr") && (e = "tbody"),
4271                            (0 !== n.indexOf("<td") && 0 !== n.indexOf("<th")) || (e = "tr"),
4272                            0 === n.indexOf("<tbody") && (e = "table"),
4273                            0 === n.indexOf("<option") && (e = "select");
4274                        const t = i.createElement(e);
4275                        t.innerHTML = n;
4276                        for (let e = 0; e < t.childNodes.length; e += 1) s.push(t.childNodes[e]);
4277                    } else
4278                        s = (function (e, t) {
4279                            if ("string" != typeof e) return [e];
4280                            const n = [],
4281                                i = t.querySelectorAll(e);
4282                            for (let e = 0; e < i.length; e += 1) n.push(i[e]);
4283                            return n;
4284                        })(e.trim(), t || i);
4285                } else if (e.nodeType || e === n || e === i) s.push(e);
4286                else if (Array.isArray(e)) {
4287                    if (e instanceof d) return e;
4288                    s = e;
4289                }
4290                return new d(
4291                    (function (e) {
4292                        const t = [];
4293                        for (let n = 0; n < e.length; n += 1) -1 === t.indexOf(e[n]) && t.push(e[n]);
4294                        return t;
4295                    })(s)
4296                );
4297            }
4298            p.fn = d.prototype;
4299            const f = "resize scroll".split(" ");
4300            function g(e) {
4301                return function (...t) {
4302                    if (void 0 === t[0]) {
4303                        for (let t = 0; t < this.length; t += 1) f.indexOf(e) < 0 && (e in this[t] ? this[t][e]() : p(this[t]).trigger(e));
4304                        return this;
4305                    }
4306                    return this.on(e, ...t);
4307                };
4308            }
4309            g("click"),
4310                g("blur"),
4311                g("focus"),
4312                g("focusin"),
4313                g("focusout"),
4314                g("keyup"),
4315                g("keydown"),
4316                g("keypress"),
4317                g("submit"),
4318                g("change"),
4319                g("mousedown"),
4320                g("mousemove"),
4321                g("mouseup"),
4322                g("mouseenter"),
4323                g("mouseleave"),
4324                g("mouseout"),
4325                g("mouseover"),
4326                g("touchstart"),
4327                g("touchend"),
4328                g("touchmove"),
4329                g("resize"),
4330                g("scroll");
4331            const m = {
4332                addClass: function (...e) {
4333                    const t = h(e.map((e) => e.split(" ")));
4334                    return (
4335                        this.forEach((e) => {
4336                            e.classList.add(...t);
4337                        }),
4338                        this
4339                    );
4340                },
4341                removeClass: function (...e) {
4342                    const t = h(e.map((e) => e.split(" ")));
4343                    return (
4344                        this.forEach((e) => {
4345                            e.classList.remove(...t);
4346                        }),
4347                        this
4348                    );
4349                },
4350                hasClass: function (...e) {
4351                    const t = h(e.map((e) => e.split(" ")));
4352                    return u(this, (e) => t.filter((t) => e.classList.contains(t)).length > 0).length > 0;
4353                },
4354                toggleClass: function (...e) {
4355                    const t = h(e.map((e) => e.split(" ")));
4356                    this.forEach((e) => {
4357                        t.forEach((t) => {
4358                            e.classList.toggle(t);
4359                        });
4360                    });
4361                },
4362                attr: function (e, t) {
4363                    if (1 === arguments.length && "string" == typeof e) return this[0] ? this[0].getAttribute(e) : void 0;
4364                    for (let n = 0; n < this.length; n += 1)
4365                        if (2 === arguments.length) this[n].setAttribute(e, t);
4366                        else for (const t in e) (this[n][t] = e[t]), this[n].setAttribute(t, e[t]);
4367                    return this;
4368                },
4369                removeAttr: function (e) {
4370                    for (let t = 0; t < this.length; t += 1) this[t].removeAttribute(e);
4371                    return this;
4372                },
4373                transform: function (e) {
4374                    for (let t = 0; t < this.length; t += 1) this[t].style.transform = e;
4375                    return this;
4376                },
4377                transition: function (e) {
4378                    for (let t = 0; t < this.length; t += 1) this[t].style.transitionDuration = "string" != typeof e ? `${e}ms` : e;
4379                    return this;
4380                },
4381                on: function (...e) {
4382                    let [t, n, i, s] = e;
4383                    function o(e) {
4384                        const t = e.target;
4385                        if (!t) return;
4386                        const s = e.target.dom7EventData || [];
4387                        if ((s.indexOf(e) < 0 && s.unshift(e), p(t).is(n))) i.apply(t, s);
4388                        else {
4389                            const e = p(t).parents();
4390                            for (let t = 0; t < e.length; t += 1) p(e[t]).is(n) && i.apply(e[t], s);
4391                        }
4392                    }
4393                    function r(e) {
4394                        const t = (e && e.target && e.target.dom7EventData) || [];
4395                        t.indexOf(e) < 0 && t.unshift(e), i.apply(this, t);
4396                    }
4397                    "function" == typeof e[1] && (([t, i, s] = e), (n = void 0)), s || (s = !1);
4398                    const a = t.split(" ");
4399                    let l;
4400                    for (let e = 0; e < this.length; e += 1) {
4401                        const t = this[e];
4402                        if (n)
4403                            for (l = 0; l < a.length; l += 1) {
4404                                const e = a[l];
4405                                t.dom7LiveListeners || (t.dom7LiveListeners = {}), t.dom7LiveListeners[e] || (t.dom7LiveListeners[e] = []), t.dom7LiveListeners[e].push({ listener: i, proxyListener: o }), t.addEventListener(e, o, s);
4406                            }
4407                        else
4408                            for (l = 0; l < a.length; l += 1) {
4409                                const e = a[l];
4410                                t.dom7Listeners || (t.dom7Listeners = {}), t.dom7Listeners[e] || (t.dom7Listeners[e] = []), t.dom7Listeners[e].push({ listener: i, proxyListener: r }), t.addEventListener(e, r, s);
4411                            }
4412                    }
4413                    return this;
4414                },
4415                off: function (...e) {
4416                    let [t, n, i, s] = e;
4417                    "function" == typeof e[1] && (([t, i, s] = e), (n = void 0)), s || (s = !1);
4418                    const o = t.split(" ");
4419                    for (let e = 0; e < o.length; e += 1) {
4420                        const t = o[e];
4421                        for (let e = 0; e < this.length; e += 1) {
4422                            const o = this[e];
4423                            let r;
4424                            if ((!n && o.dom7Listeners ? (r = o.dom7Listeners[t]) : n && o.dom7LiveListeners && (r = o.dom7LiveListeners[t]), r && r.length))
4425                                for (let e = r.length - 1; e >= 0; e -= 1) {
4426                                    const n = r[e];
4427          
4427                          (i && n.listener === i) || (i && n.listener && n.listener.dom7proxy && n.listener.dom7proxy === i)
4428                                        ? (o.removeEventListener(t, n.proxyListener, s), r.splice(e, 1))
4429                                        : i || (o.removeEventListener(t, n.proxyListener, s), r.splice(e, 1));
4430                                }
4431                        }
4432                    }
4433                    return this;
4434                },
4435                trigger: function (...e) {
4436                    const t = c(),
4437                        n = e[0].split(" "),
4438                        i = e[1];
4439                    for (let s = 0; s < n.length; s += 1) {
4440                        const o = n[s];
4441                        for (let n = 0; n < this.length; n += 1) {
4442                            const s = this[n];
4443                            if (t.CustomEvent) {
4444                                const n = new t.CustomEvent(o, { detail: i, bubbles: !0, cancelable: !0 });
4445                                (s.dom7EventData = e.filter((e, t) => t > 0)), s.dispatchEvent(n), (s.dom7EventData = []), delete s.dom7EventData;
4446                            }
4447                        }
4448                    }
4449                    return this;
4450                },
4451                transitionEnd: function (e) {
4452                    const t = this;
4453                    return (
4454                        e &&
4455                            t.on("transitionend", function n(i) {
4456                                i.target === this && (e.call(this, i), t.off("transitionend", n));
4457                            }),
4458                        this
4459                    );
4460                },
4461                outerWidth: function (e) {
4462                    if (this.length > 0) {
4463                        if (e) {
4464                            const e = this.styles();
4465                            return this[0].offsetWidth + parseFloat(e.getPropertyValue("margin-right")) + parseFloat(e.getPropertyValue("margin-left"));
4466                        }
4467                        return this[0].offsetWidth;
4468                    }
4469                    return null;
4470                },
4471                outerHeight: function (e) {
4472                    if (this.length > 0) {
4473                        if (e) {
4474                            const e = this.styles();
4475                            return this[0].offsetHeight + parseFloat(e.getPropertyValue("margin-top")) + parseFloat(e.getPropertyValue("margin-bottom"));
4476                        }
4477                        return this[0].offsetHeight;
4478                    }
4479                    return null;
4480                },
4481                styles: function () {
4482                    const e = c();
4483                    return this[0] ? e.getComputedStyle(this[0], null) : {};
4484                },
4485                offset: function () {
4486                    if (this.length > 0) {
4487                        const e = c(),
4488                            t = a(),
4489                            n = this[0],
4490                            i = n.getBoundingClientRect(),
4491                            s = t.body,
4492                            o = n.clientTop || s.clientTop || 0,
4493                            r = n.clientLeft || s.clientLeft || 0,
4494                            l = n === e ? e.scrollY : n.scrollTop,
4495                            d = n === e ? e.scrollX : n.scrollLeft;
4496                        return { top: i.top + l - o, left: i.left + d - r };
4497                    }
4498                    return null;
4499                },
4500                css: function (e, t) {
4501                    const n = c();
4502                    let i;
4503                    if (1 === arguments.length) {
4504                        if ("string" != typeof e) {
4505                            for (i = 0; i < this.length; i += 1) for (const t in e) this[i].style[t] = e[t];
4506                            return this;
4507                        }
4508                        if (this[0]) return n.getComputedStyle(this[0], null).getPropertyValue(e);
4509                    }
4510                    if (2 === arguments.length && "string" == typeof e) {
4511                        for (i = 0; i < this.length; i += 1) this[i].style[e] = t;
4512                        return this;
4513                    }
4514                    return this;
4515                },
4516                each: function (e) {
4517                    return e
4518                        ? (this.forEach((t, n) => {
4519                              e.apply(t, [t, n]);
4520                          }),
4521                          this)
4522                        : this;
4523                },
4524                html: function (e) {
4525                    if (void 0 === e) return this[0] ? this[0].innerHTML : null;
4526                    for (let t = 0; t < this.length; t += 1) this[t].innerHTML = e;
4527                    return this;
4528                },
4529                text: function (e) {
4530                    if (void 0 === e) return this[0] ? this[0].textContent.trim() : null;
4531                    for (let t = 0; t < this.length; t += 1) this[t].textContent = e;
4532                    return this;
4533                },
4534                is: function (e) {
4535                    const t = c(),
4536                        n = a(),
4537                        i = this[0];
4538                    let s, o;
4539                    if (!i || void 0 === e) return !1;
4540                    if ("string" == typeof e) {
4541                        if (i.matches) return i.matches(e);
4542                        if (i.webkitMatchesSelector) return i.webkitMatchesSelector(e);
4543                        if (i.msMatchesSelector) return i.msMatchesSelector(e);
4544                        for (s = p(e), o = 0; o < s.length; o += 1) if (s[o] === i) return !0;
4545                        return !1;
4546                    }
4547                    if (e === n) return i === n;
4548                    if (e === t) return i === t;
4549                    if (e.nodeType || e instanceof d) {
4550                        for (s = e.nodeType ? [e] : e, o = 0; o < s.length; o += 1) if (s[o] === i) return !0;
4551                        return !1;
4552                    }
4553                    return !1;
4554                },
4555                index: function () {
4556                    let e,
4557                        t = this[0];
4558                    if (t) {
4559                        for (e = 0; null !== (t = t.previousSibling); ) 1 === t.nodeType && (e += 1);
4560                        return e;
4561                    }
4562                },
4563                eq: function (e) {
4564                    if (void 0 === e) return this;
4565                    const t = this.length;
4566                    if (e > t - 1) return p([]);
4567                    if (e < 0) {
4568                        const n = t + e;
4569                        return p(n < 0 ? [] : [this[n]]);
4570                    }
4571                    return p([this[e]]);
4572                },
4573                append: function (...e) {
4574                    let t;
4575                    const n = a();
4576                    for (let i = 0; i < e.length; i += 1) {
4577                        t = e[i];
4578                        for (let e = 0; e < this.length; e += 1)
4579                            if ("string" == typeof t) {
4580                                const i = n.createElement("div");
4581                                for (i.innerHTML = t; i.firstChild; ) this[e].appendChild(i.firstChild);
4582                            } else if (t instanceof d) for (let n = 0; n < t.length; n += 1) this[e].appendChild(t[n]);
4583                            else this[e].appendChild(t);
4584                    }
4585                    return this;
4586                },
4587                prepend: function (e) {
4588                    const t = a();
4589                    let n, i;
4590                    for (n = 0; n < this.length; n += 1)
4591                        if ("string" == typeof e) {
4592                            const s = t.createElement("div");
4593                            for (s.innerHTML = e, i = s.childNodes.length - 1; i >= 0; i -= 1) this[n].insertBefore(s.childNodes[i], this[n].childNodes[0]);
4594                        } else if (e instanceof d) for (i = 0; i < e.length; i += 1) this[n].insertBefore(e[i], this[n].childNodes[0]);
4595                        else this[n].insertBefore(e, this[n].childNodes[0]);
4596                    return this;
4597                },
4598                next: function (e) {
4599                    return this.length > 0 ? (e ? (this[0].nextElementSibling && p(this[0].nextElementSibling).is(e) ? p([this[0].nextElementSibling]) : p([])) : this[0].nextElementSibling ? p([this[0].nextElementSibling]) : p([])) : p([]);
4600                },
4601                nextAll: function (e) {
4602                    const t = [];
4603                    let n = this[0];
4604                    if (!n) return p([]);
4605                    for (; n.nextElementSibling; ) {
4606                        const i = n.nextElementSibling;
4607                        e ? p(i).is(e) && t.push(i) : t.push(i), (n = i);
4608                    }
4609                    return p(t);
4610                },
4611                prev: function (e) {
4612                    if (this.length > 0) {
4613                        const t = this[0];
4614                        return e ? (t.previousElementSibling && p(t.previousElementSibling).is(e) ? p([t.previousElementSibling]) : p([])) : t.previousElementSibling ? p([t.previousElementSibling]) : p([]);
4615                    }
4616                    return p([]);
4617                },
4618                prevAll: function (e) {
4619                    const t = [];
4620                    let n = this[0];
4621                    if (!n) return p([]);
4622                    for (; n.previousElementSibling; ) {
4623                        const i = n.previousElementSibling;
4624                        e ? p(i).is(e) && t.push(i) : t.push(i), (n = i);
4625                    }
4626                    return p(t);
4627                },
4628                parent: function (e) {
4629                    const t = [];
4630                    for (let n = 0; n < this.length; n += 1) null !== this[n].parentNode && (e ? p(this[n].parentNode).is(e) && t.push(this[n].parentNode) : t.push(this[n].parentNode));
4631                    return p(t);
4632                },
4633                parents: function (e) {
4634                    const t = [];
4635                    for (let n = 0; n < this.length; n += 1) {
4636                        let i = this[n].parentNode;
4637                        for (; i; ) e ? p(i).is(e) && t.push(i) : t.push(i), (i = i.parentNode);
4638                    }
4639                    return p(t);
4640                },
4641                closest: function (e) {
4642                    let t = this;
4643                    return void 0 === e ? p([]) : (t.is(e) || (t = t.parents(e).eq(0)), t);
4644                },
4645                find: function (e) {
4646                    const t = [];
4647                    for (let n = 0; n < this.length; n += 1) {
4648                        const i = this[n].querySelectorAll(e);
4649                        for (let e = 0; e < i.length; e += 1) t.push(i[e]);
4650                    }
4651                    return p(t);
4652                },
4653                children: function (e) {
4654                    const t = [];
4655                    for (let n = 0; n < this.length; n += 1) {
4656                        const i = this[n].children;
4657                        for (let n = 0; n < i.length; n += 1) (e && !p(i[n]).is(e)) || t.push(i[n]);
4658                    }
4659                    return p(t);
4660                },
4661                filter: function (e) {
4662                    return p(u(this, e));
4663                },
4664                remove: function () {
4665                    for (let e = 0; e < this.length; e += 1) this[e].parentNode && this[e].parentNode.removeChild(this[e]);
4666                    return this;
4667                },
4668            };
4669            Object.keys(m).forEach((e) => {
4670                Object.defineProperty(p.fn, e, { value: m[e], writable: !0 });
4671            });
4672            const v = p;
4673            function b(e, t = 0) {
4674                return setTimeout(e, t);
4675            }
4676            function y() {
4677                return Date.now();
4678            }
4679            function w(e, t = "x") {
4680                const n = c();
4681                let i, s, o;
4682                const r = (function (e) {
4683                    const t = c();
4684                    let n;
4685                    return t.getComputedStyle && (n = t.getComputedStyle(e, null)), !n && e.currentStyle && (n = e.currentStyle), n || (n = e.style), n;
4686                })(e);
4687                return (
4688                    n.WebKitCSSMatrix
4689                        ? ((s = r.transform || r.webkitTransform),
4690                          s.split(",").length > 6 &&
4691                              (s = s
4692                                  .split(", ")
4693                                  .map((e) => e.replace(",", "."))
4694                                  .join(", ")),
4695                          (o = new n.WebKitCSSMatrix("none" === s ? "" : s)))
4696                        : ((o = r.MozTransform || r.OTransform || r.MsTransform || r.msTransform || r.transform || r.getPropertyValue("transform").replace("translate(", "matrix(1, 0, 0, 1,")), (i = o.toString().split(","))),
4697                    "x" === t && (s = n.WebKitCSSMatrix ? o.m41 : 16 === i.length ? parseFloat(i[12]) : parseFloat(i[4])),
4698                    "y" === t && (s = n.WebKitCSSMatrix ? o.m42 : 16 === i.length ? parseFloat(i[13]) : parseFloat(i[5])),
4699                    s || 0
4700                );
4701            }
4702            function x(e) {
4703                return "object" == typeof e && null !== e && e.constructor && "Object" === Object.prototype.toString.call(e).slice(8, -1);
4704            }
4705            function _(...e) {
4706                const t = Object(e[0]),
4707                    n = ["__proto__", "constructor", "prototype"];
4708                for (let s = 1; s < e.length; s += 1) {
4709                    const o = e[s];
4710                    if (null != o && ((i = o), !("undefined" != typeof window && void 0 !== window.HTMLElement ? i instanceof HTMLElement : i && (1 === i.nodeType || 11 === i.nodeType)))) {
4711                        const e = Object.keys(Object(o)).filter((e) => n.indexOf(e) < 0);
4712                        for (let n = 0, i = e.length; n < i; n += 1) {
4713                            const i = e[n],
4714                                s = Object.getOwnPropertyDescriptor(o, i);
4715                            void 0 !== s && s.enumerable && (x(t[i]) && x(o[i]) ? (o[i].__swiper__ ? (t[i] = o[i]) : _(t[i], o[i])) : !x(t[i]) && x(o[i]) ? ((t[i] = {}), o[i].__swiper__ ? (t[i] = o[i]) : _(t[i], o[i])) : (t[i] = o[i]));
4716                        }
4717                    }
4718                }
4719                var i;
4720                return t;
4721            }
4722            function C(e, t, n) {
4723                e.style.setProperty(t, n);
4724            }
4725            function T({ swiper: e, targetPosition: t, side: n }) {
4726                const i = c(),
4727                    s = -e.translate;
4728                let o,
4729                    r = null;
4730                const a = e.params.speed;
4731                (e.wrapperEl.style.scrollSnapType = "none"), i.cancelAnimationFrame(e.cssModeFrameID);
4732                const l = t > s ? "next" : "prev",
4733                    d = (e, t) => ("next" === l && e >= t) || ("prev" === l && e <= t),
4734                    h = () => {
4735                        (o = new Date().getTime()), null === r && (r = o);
4736                        const l = Math.max(Math.min((o - r) / a, 1), 0),
4737                            c = 0.5 - Math.cos(l * Math.PI) / 2;
4738                        let u = s + c * (t - s);
4739                        if ((d(u, t) && (u = t), e.wrapperEl.scrollTo({ [n]: u }), d(u, t)))
4740                            return (
4741                                (e.wrapperEl.style.overflow = "hidden"),
4742                                (e.wrapperEl.style.scrollSnapType = ""),
4743                                setTimeout(() => {
4744                                    (e.wrapperEl.style.overflow = ""), e.wrapperEl.scrollTo({ [n]: u });
4745                                }),
4746                                void i.cancelAnimationFrame(e.cssModeFrameID)
4747                            );
4748                        e.cssModeFrameID = i.requestAnimationFrame(h);
4749                    };
4750                h();
4751            }
4752            let E, S, A;
4753            function k() {
4754                return (
4755                    E ||
4756                        (E = (function () {
4757                            const e = c(),
4758                                t = a();
4759                            return {
4760                                smoothScroll: t.documentElement && "scrollBehavior" in t.documentElement.style,
4761                                touch: !!("ontouchstart" in e || (e.DocumentTouch && t instanceof e.DocumentTouch)),
4762                                passiveListener: (function () {
4763                                    let t = !1;
4764                                    try {
4765                                        const n = Object.defineProperty({}, "passive", {
4766                                            get() {
4767                                                t = !0;
4768                                            },
4769                                        });
4770                                        e.addEventListener("testPassiveListener", null, n);
4771                                    } catch (e) {}
4772                                    return t;
4773                                })(),
4774                                gestures: "ongesturestart" in e,
4775                            };
4776                        })()),
4777                    E
4778                );
4779            }
4780            function $(e = {}) {
4781                return (
4782                    S ||
4783                        (S = (function ({ userAgent: e } = {}) {
4784                            const t = k(),
4785                                n = c(),
4786                                i = n.navigator.platform,
4787                                s = e || n.navigator.userAgent,
4788                                o = { ios: !1, android: !1 },
4789                                r = n.screen.width,
4790                                a = n.screen.height,
4791                                l = s.match(/(Android);?[\s\/]+([\d.]+)?/);
4792                            let d = s.match(/(iPad).*OS\s([\d_]+)/);
4793                            const h = s.match(/(iPod)(.*OS\s([\d_]+))?/),
4794                                u = !d && s.match(/(iPhone\sOS|iOS)\s([\d_]+)/),
4795                                p = "Win32" === i;
4796                            let f = "MacIntel" === i;
4797                            return (
4798                                !d &&
4799                                    f &&
4800                                    t.touch &&
4801                                    ["1024x1366", "1366x1024", "834x1194", "1194x834", "834x1112", "1112x834", "768x1024", "1024x768", "820x1180", "1180x820", "810x1080", "1080x810"].indexOf(`${r}x${a}`) >= 0 &&
4802                                    ((d = s.match(/(Version)\/([\d.]+)/)), d || (d = [0, 1, "13_0_0"]), (f = !1)),
4803                                l && !p && ((o.os = "android"), (o.android = !0)),
4804                                (d || u || h) && ((o.os = "ios"), (o.ios = !0)),
4805                                o
4806                            );
4807                        })(e)),
4808                    S
4809                );
4810            }
4811            function L() {
4812                return (
4813                    A ||
4814                        (A = (function () {
4815                            const e = c();
4816                            return {
4817                                isSafari: (function () {
4818                                    const t = e.navigator.userAgent.toLowerCase();
4819                                    return t.indexOf("safari") >= 0 && t.indexOf("chrome") < 0 && t.indexOf("android") < 0;
4820                                })(),
4821                                isWebView: /(iPhone|iPod|iPad).*AppleWeb
4821Kit(?!.*Safari)/i.test(e.navigator.userAgent),
4822                            };
4823                        })()),
4824                    A
4825                );
4826            }
4827            const P = {
4828                on(e, t, n) {
4829                    const i = this;
4830                    if (!i.eventsListeners || i.destroyed) return i;
4831                    if ("function" != typeof t) return i;
4832                    const s = n ? "unshift" : "push";
4833                    return (
4834                        e.split(" ").forEach((e) => {
4835                            i.eventsListeners[e] || (i.eventsListeners[e] = []), i.eventsListeners[e][s](t);
4836                        }),
4837                        i
4838                    );
4839                },
4840                once(e, t, n) {
4841                    const i = this;
4842                    if (!i.eventsListeners || i.destroyed) return i;
4843                    if ("function" != typeof t) return i;
4844                    function s(...n) {
4845                        i.off(e, s), s.__emitterProxy && delete s.__emitterProxy, t.apply(i, n);
4846                    }
4847                    return (s.__emitterProxy = t), i.on(e, s, n);
4848                },
4849                onAny(e, t) {
4850                    const n = this;
4851                    if (!n.eventsListeners || n.destroyed) return n;
4852                    if ("function" != typeof e) return n;
4853                    const i = t ? "unshift" : "push";
4854                    return n.eventsAnyListeners.indexOf(e) < 0 && n.eventsAnyListeners[i](e), n;
4855                },
4856                offAny(e) {
4857                    const t = this;
4858                    if (!t.eventsListeners || t.destroyed) return t;
4859                    if (!t.eventsAnyListeners) return t;
4860                    const n = t.eventsAnyListeners.indexOf(e);
4861                    return n >= 0 && t.eventsAnyListeners.splice(n, 1), t;
4862                },
4863                off(e, t) {
4864                    const n = this;
4865                    return !n.eventsListeners || n.destroyed
4866                        ? n
4867                        : n.eventsListeners
4868                        ? (e.split(" ").forEach((e) => {
4869                              void 0 === t
4870                                  ? (n.eventsListeners[e] = [])
4871                                  : n.eventsListeners[e] &&
4872                                    n.eventsListeners[e].forEach((i, s) => {
4873                                        (i === t || (i.__emitterProxy && i.__emitterProxy === t)) && n.eventsListeners[e].splice(s, 1);
4874                                    });
4875                          }),
4876                          n)
4877                        : n;
4878                },
4879                emit(...e) {
4880                    const t = this;
4881                    if (!t.eventsListeners || t.destroyed) return t;
4882                    if (!t.eventsListeners) return t;
4883                    let n, i, s;
4884                    "string" == typeof e[0] || Array.isArray(e[0]) ? ((n = e[0]), (i = e.slice(1, e.length)), (s = t)) : ((n = e[0].events), (i = e[0].data), (s = e[0].context || t)), i.unshift(s);
4885                    return (
4886                        (Array.isArray(n) ? n : n.split(" ")).forEach((e) => {
4887                            t.eventsAnyListeners &&
4888                                t.eventsAnyListeners.length &&
4889                                t.eventsAnyListeners.forEach((t) => {
4890                                    t.apply(s, [e, ...i]);
4891                                }),
4892                                t.eventsListeners &&
4893                                    t.eventsListeners[e] &&
4894                                    t.eventsListeners[e].forEach((e) => {
4895                                        e.apply(s, i);
4896                                    });
4897                        }),
4898                        t
4899                    );
4900                },
4901            };
4902            const O = {
4903                updateSize: function () {
4904                    const e = this;
4905                    let t, n;
4906                    const i = e.$el;
4907                    (t = void 0 !== e.params.width && null !== e.params.width ? e.params.width : i[0].clientWidth),
4908                        (n = void 0 !== e.params.height && null !== e.params.height ? e.params.height : i[0].clientHeight),
4909                        (0 === t && e.isHorizontal()) ||
4910                            (0 === n && e.isVertical()) ||
4911                            ((t = t - parseInt(i.css("padding-left") || 0, 10) - parseInt(i.css("padding-right") || 0, 10)),
4912                            (n = n - parseInt(i.css("padding-top") || 0, 10) - parseInt(i.css("padding-bottom") || 0, 10)),
4913                            Number.isNaN(t) && (t = 0),
4914                            Number.isNaN(n) && (n = 0),
4915                            Object.assign(e, { width: t, height: n, size: e.isHorizontal() ? t : n }));
4916                },
4917                updateSlides: function () {
4918                    const e = this;
4919                    function t(t) {
4920                        return e.isHorizontal()
4921                            ? t
4922                            : {
4923                                  width: "height",
4924                                  "margin-top": "margin-left",
4925                                  "margin-bottom ": "margin-right",
4926                                  "margin-left": "margin-top",
4927                                  "margin-right": "margin-bottom",
4928                                  "padding-left": "padding-top",
4929                                  "padding-right": "padding-bottom",
4930                                  marginRight: "marginBottom",
4931                              }[t];
4932                    }
4933                    function n(e, n) {
4934                        return parseFloat(e.getPropertyValue(t(n)) || 0);
4935                    }
4936                    const i = e.params,
4937                        { $wrapperEl: s, size: o, rtlTranslate: r, wrongRTL: a } = e,
4938                        l = e.virtual && i.virtual.enabled,
4939                        c = l ? e.virtual.slides.length : e.slides.length,
4940                        d = s.children(`.${e.params.slideClass}`),
4941                        h = l ? e.virtual.slides.length : d.length;
4942                    let u = [];
4943                    const p = [],
4944                        f = [];
4945                    let g = i.slidesOffsetBefore;
4946                    "function" == typeof g && (g = i.slidesOffsetBefore.call(e));
4947                    let m = i.slidesOffsetAfter;
4948                    "function" == typeof m && (m = i.slidesOffsetAfter.call(e));
4949                    const v = e.snapGrid.length,
4950                        b = e.slidesGrid.length;
4951                    let y = i.spaceBetween,
4952                        w = -g,
4953                        x = 0,
4954                        _ = 0;
4955                    if (void 0 === o) return;
4956                    "string" == typeof y && y.indexOf("%") >= 0 && (y = (parseFloat(y.replace("%", "")) / 100) * o),
4957                        (e.virtualSize = -y),
4958                        r ? d.css({ marginLeft: "", marginBottom: "", marginTop: "" }) : d.css({ marginRight: "", marginBottom: "", marginTop: "" }),
4959                        i.centeredSlides && i.cssMode && (C(e.wrapperEl, "--swiper-centered-offset-before", ""), C(e.wrapperEl, "--swiper-centered-offset-after", ""));
4960                    const T = i.grid && i.grid.rows > 1 && e.grid;
4961                    let E;
4962                    T && e.grid.initSlides(h);
4963                    const S = "auto" === i.slidesPerView && i.breakpoints && Object.keys(i.breakpoints).filter((e) => void 0 !== i.breakpoints[e].slidesPerView).length > 0;
4964                    for (let s = 0; s < h; s += 1) {
4965                        E = 0;
4966                        const r = d.eq(s);
4967                        if ((T && e.grid.updateSlide(s, r, h, t), "none" !== r.css("display"))) {
4968                            if ("auto" === i.slidesPerView) {
4969                                S && (d[s].style[t("width")] = "");
4970                                const o = getComputedStyle(r[0]),
4971                                    a = r[0].style.transform,
4972                                    l = r[0].style.webkitTransform;
4973                                if ((a && (r[0].style.transform = "none"), l && (r[0].style.webkitTransform = "none"), i.roundLengths)) E = e.isHorizontal() ? r.outerWidth(!0) : r.outerHeight(!0);
4974                                else {
4975                                    const e = n(o, "width"),
4976                                        t = n(o, "padding-left"),
4977                                        i = n(o, "padding-right"),
4978                                        s = n(o, "margin-left"),
4979                                        a = n(o, "margin-right"),
4980                                        l = o.getPropertyValue("box-sizing");
4981                                    if (l && "border-box" === l) 
4981E = e + s + a;
4982                                    else {
4983                                        const { clientWidth: n, offsetWidth: o } = r[0];
4984                                        E = e + t + i + s + a + (o - n);
4985                                    }
4986                                }
4987                                a && (r[0].style.transform = a), l && (r[0].style.webkitTransform = l), i.roundLengths && (E = Math.floor(E));
4988                            } else (E = (o - (i.slidesPerView - 1) * y) / i.slidesPerView), i.roundLengths && (E = Math.floor(E)), d[s] && (d[s].style[t("width")] = `${E}px`);
4989                            d[s] && (d[s].swiperSlideSize = E),
4990                                f.push(E),
4991                                i.centeredSlides
4992                                    ? ((w = w + E / 2 + x / 2 + y),
4993                                      0 === x && 0 !== s && (w = w - o / 2 - y),
4994                                      0 === s && (w = w - o / 2 - y),
4995                                      Math.abs(w) < 0.001 && (w = 0),
4996                                      i.roundLengths && (w = Math.floor(w)),
4997                                      _ % i.slidesPerGroup == 0 && u.push(w),
4998                                      p.push(w))
4999                                    : (i.roundLengths && (w = Math.floor(w)), (_ - Math.min(e.params.slidesPerGroupSkip, _)) % e.params.slidesPerGroup == 0 && u.push(w), p.push(w), (w = w + E + y)),
5000                                (e.virtualSize += E + y),
5001                                (x = E),
5002                                (_ += 1);
5003                        }
5004                    }
5005                    if (
5006                        ((e.virtualSize = Math.max(e.virtualSize, o) + m),
5007                        r && a && ("slide" === i.effect || "coverflow" === i.effect) && s.css({ width: `${e.virtualSize + i.spaceBetween}px` }),
5008                        i.setWrapperSize && s.css({ [t("width")]: `${e.virtualSize + i.spaceBetween}px` }),
5009                        T && e.grid.updateWrapperSize(E, u, t),
5010                        !i.centeredSlides)
5011                    ) {
5012                        const t = [];
5013                        for (let n = 0; n < u.length; n += 1) {
5014                            let s = u[n];
5015                            i.roundLengths && (s = Math.floor(s)), u[n] <= e.virtualSize - o && t.push(s);
5016                        }
5017                        (u = t), Math.floor(e.virtualSize - o) - Math.floor(u[u.length - 1]) > 1 && u.push(e.virtualSize - o);
5018                    }
5019                    if ((0 === u.length && (u = [0]), 0 !== i.spaceBetween)) {
5020                        const n = e.isHorizontal() && r ? "marginLeft" : t("marginRight");
5021                        d.filter((e, t) => !i.cssMode || t !== d.length - 1).css({ [n]: `${y}px` });
5022                    }
5023                    if (i.centeredSlides && i.centeredSlidesBounds) {
5024                        let e = 0;
5025                        f.forEach((t) => {
5026                            e += t + (i.spaceBetween ? i.spaceBetween : 0);
5027                        }),
5028                            (e -= i.spaceBetween);
5029                        const t = e - o;
5030                        u = u.map((e) => (e < 0 ? -g : e > t ? t + m : e));
5031                    }
5032                    if (i.centerInsufficientSlides) {
5033                        let e = 0;
5034                        if (
5035                            (f.forEach((t) => {
5036                                e += t + (i.spaceBetween ? i.spaceBetween : 0);
5037                            }),
5038                            (e -= i.spaceBetween),
5039                            e < o)
5040                        ) {
5041                            const t = (o - e) / 2;
5042                            u.forEach((e, n) => {
5043                                u[n] = e - t;
5044                            }),
5045                                p.forEach((e, n) => {
5046                                    p[n] = e + t;
5047                                });
5048                        }
5049                    }
5050                    if ((Object.assign(e, { slides: d, snapGrid: u, slidesGrid: p, slidesSizesGrid: f }
5050), i.centeredSlides && i.cssMode && !i.centeredSlidesBounds)) {
5051                        C(e.wrapperEl, "--swiper-centered-offset-before", -u[0] + "px"), C(e.wrapperEl, "--swiper-centered-offset-after", e.size / 2 - f[f.length - 1] / 2 + "px");
5052                        const t = -e.snapGrid[0],
5053                            n = -e.slidesGrid[0];
5054                        (e.snapGrid = e.snapGrid.map((e) => e + t)), (e.slidesGrid = e.slidesGrid.map((e) => e + n));
5055                    }
5056                    if (
5057                        (h !== c && e.emit("slidesLengthChange"),
5058                        u.length !== v && (e.params.watchOverflow && e.checkOverflow(), e.emit("snapGridLengthChange")),
5059                        p.length !== b && e.emit("slidesGridLengthChange"),
5060                        i.watchSlidesProgress && e.updateSlidesOffset(),
5061                        !(l || i.cssMode || ("slide" !== i.effect && "fade" !== i.effect)))
5062                    ) {
5063                        const t = `${i.containerModifierClass}backface-hidden`,
5064                            n = e.$el.hasClass(t);
5065                        h <= i.maxBackfaceHiddenSlides ? n || e.$el.addClass(t) : n && e.$el.removeClass(t);
5066                    }
5067                },
5068                updateAutoHeight: function (e) {
5069                    const t = this,
5070                        n = [],
5071                        i = t.virtual && t.params.virtual.enabled;
5072                    let s,
5073                        o = 0;
5074                    "number" == typeof e ? t.setTransition(e) : !0 === e && t.setTransition(t.params.speed);
5075                    const r = (e) => (i ? t.slides.filter((t) => parseInt(t.getAttribute("data-swiper-slide-index"), 10) === e)[0] : t.slides.eq(e)[0]);
5076                    if ("auto" !== t.params.slidesPerView && t.params.slidesPerView > 1)
5077                        if (t.params.centeredSlides)
5078                            (t.visibleSlides || v([])).each((e) => {
5079                                n.push(e);
5080                            });
5081                        else
5082                            for (s = 0;
5082 s < Math.ceil(t.params.slidesPerView); s += 1) {
5083                                const e = t.activeIndex + s;
5084                                if (e > t.slides.length && !i) break;
5085                                n.push(r(e));
5086                            }
5087                    else n.push(r(t.activeIndex));
5088                    for (s = 0; s < n.length; s += 1)
5089                        if (void 0 !== n[s]) {
5090                            const e = n[s].offsetHeight;
5091                            o = e > o ? e : o;
5092                        }
5093                    (o || 0 === o) && t.$wrapperEl.css("height", `${o}px`);
5094                },
5095                updateSlidesOffset: function () {
5096                    const e = this,
5097                        t = e.slides;
5098                    for (let n = 0; n < t.length; n += 1) t[n].swiperSlideOffset = e.isHorizontal() ? t[n].offsetLeft : t[n].offsetTop;
5099                },
5100                updateSlidesProgress: function (e = (this && this.translate) || 0) {
5101                    const t = this,
5102                        n = t.params,
5103                        { slides: i, rtlTranslate: s, snapGrid: o } = t;
5104                    if (0 === i.length) return;
5105                    void 0 === i[0].swiperSlideOffset && t.updateSlidesOffset();
5106                    let r = -e;
5107                    s && (r = e), i.removeClass(n.slideVisibleClass), (t.visibleSlidesIndexes = []), (t.visibleSlides = []);
5108                    for (let e = 0; e < i.length; e += 1) {
5109                        const a = i[e];
5110                        let l = a.swiperSlideOffset;
5111                        n.cssMode && n.centeredSlides && (l -= i[0].swiperSlideOffset);
5112                        const c = (r + (n.centeredSlides ? t.minTranslate() : 0) - l) / (a.swiperSlideSize + n.spaceBetween),
5113                            d = (r - o[0] + (n.centeredSlides ? t.minTranslate() : 0) - l) / (a.swiperSlideSize + n.spaceBetween),
5114                            h = -(r - l),
5115                            u = h + t.slidesSizesGrid[e];
5116                        ((h >= 0 && h < t.size - 1) || (u > 1 && u <= t.size) || (h <= 0 && u >= t.size)) && (t.visibleSlides.push(a), t.visibleSlidesIndexes.push(e), i.eq(e).addClass(n.slideVisibleClass)),
5117                            (a.progress = s ? -c : c),
5118                            (a.originalProgress = s ? -d : d);
5119                    }
5120                    t.visibleSlides = v(t.visibleSlides);
5121                },
5122                updateProgress: function (e) {
5123                    const t = this;
5124                    if (void 0 === e) {
5125                        const n = t.rtlTranslate ? -1 : 1;
5126                        e = (t && t.translate && t.translate * n) || 0;
5127                    }
5128                    const n = t.params,
5129                        i = t.maxTranslate() - t.minTranslate();
5130                    let { progress: s, isBeginning: o, isEnd: r } = t;
5131                    const a = o,
5132                        l = r;
5133                    0 === i ? ((s = 0), (o = !0), (r = !0)) : ((s = (e - t.minTranslate()) / i), (o = s <= 0), (r = s >= 1)),
5134                        Object.assign(t, { progress: s, isBeginning: o, isEnd: r }),
5135                        (n.watchSlidesProgress || (n.centeredSlides && n.autoHeight)) && t.updateSlidesProgress(e),
5136                        o && !a && t.emit("reachBeginning toEdge"),
5137                        r && !l && t.emit("reachEnd toEdge"),
5138                        ((a && !o) || (l && !r)) && t.emit("fromEdge"),
5139                        t.emit("progress", s);
5140                },
5141                updateSlidesClasses: function () {
5142                    const e = this,
5143                        { slides: t, params: n, $wrapperEl: i, activeIndex: s, realIndex: o } = e,
5144                        r = e.virtual && n.virtual.enabled;
5145                    let a;
5146                    t.removeClass(`${n.slideActiveClass} ${n.slideNextClass} ${n.slidePrevClass} ${n.slideDuplicateActiveClass} ${n.slideDuplicateNextClass} ${n.slideDuplicatePrevClass}`),
5147                        (a = r ? e.$wrapperEl.find(`.${n.slideClass}[data-swiper-slide-index="${s}"]`) : t.eq(s)),
5148                        a.addClass(n.slideActiveClass),
5149                        n.loop &&
5150                            (a.hasClass(n.slideDuplicateClass)
5151                                ? i.children(`.${n.slideClass}:not(.${n.slideDuplicateClass})[data-swiper-slide-index="${o}"]`).addClass(n.slideDuplicateActiveClass)
5152                                : i.children(`.${n.slideClass}.${n.slideDuplicateClass}[data-swiper-slide-index="${o}"]`).addClass(n.slideDuplicateActiveClass));
5153                    let l = a.nextAll(`.${n.slideClass}`).eq(0).addClass(n.slideNextClass);
5154                    n.loop && 0 === l.length && ((l = t.eq(0)), l.addClass(n.slideNextClass));
5155                    let c = a.prevAll(`.${n.slideClass}`).eq(0).addClass(n.slidePrevClass);
5156                    n.loop && 0 === c.length && ((c = t.eq(-1)), c.addClass(n.slidePrevClass)),
5157                        n.loop &&
5158                            (l.hasClass(n.slideDuplicateClass)
5159                                ? i.children(`.${n.slideClass}:not(.${n.slideDuplicateClass})[data-swiper-slide-index="${l.attr("data-swiper-slide-index")}"]`).addClass(n.slideDuplicateNextClass)
5160                                : i.children(`.${n.slideClass}.${n.slideDuplicateClass}[data-swiper-slide-index="${l.attr("data-swiper-slide-index")}"]`).addClass(n.slideDuplicateNextClass),
5161                            c.hasClass(n.slideDuplicateClass)
5162                                ? i.children(`.${n.slideClass}:not(.${n.slideDuplicateClass})[data-swiper-slide-index="${c.attr("data-swiper-slide-index")}"]`).addClass(n.slideDuplicatePrevClass)
5163                                : i.children(`.${n.slideClass}.${n.slideDuplicateClass}[data-swiper-slide-index="${c.attr("data-swiper-slide-index")}"]`).addClass(n.slideDuplicatePrevClass)),
5164                        e.emitSlidesClasses();
5165                },
5166                updateActiveIndex: function (e) {
5167                    const t = this,
5168                        n = t.rtlTranslate ? t.translate : -t.translate,
5169                        { slidesGrid: i, snapGrid: s, params: o, activeIndex: r, realIndex: a, snapIndex: l } = t;
5170                    let c,
5171                        d = e;
5172                    if (void 0 === d) {
5173                        for (let e = 0; e < i.length; e += 1) void 0 !== i[e + 1] ? (n >= i[e] && n < i[e + 1] - (i[e + 1] - i[e]) / 2 ? (d = e) : n >= i[e] && n < i[e + 1] && (d = e + 1)) : n >= i[e] && (d = e);
5174                        o.normalizeSlideIndex && (d < 0 || void 0 === d) && (d = 0);
5175                    }
5176                    if (s.indexOf(n) >= 0) c = s.indexOf(n);
5177                    else {
5178                        const e = Math.min(o.slidesPerGroupSkip, d);
5179                        c = e + Math.floor((d - e) / o.slidesPerGroup);
5180                    }
5181                    if ((c >= s.length && (c = s.length - 1), d === r)) return void (c !== l && ((t.snapIndex = c), t.emit("snapIndexChange")));
5182                    const h = parseInt(t.slides.eq(d).attr("data-swiper-slide-index") || d, 10);
5183                    Object.assign(t, { snapIndex: c, realIndex: h, previousIndex: r, activeIndex: d }),
5184                        t.emit("activeIndexChange"),
5185                        t.emit("snapIndexChange"),
5186                        a !== h && t.emit("realIndexChange"),
5187                        (t.initialized || t.params.runCallbacksOnInit) && t.emit("slideChange");
5188                },
5189                updateClickedSlide: function (e) {
5190                    const t = this,
5191                        n = t.params,
5192                        i = v(e).closest(`.${n.slideClass}`)[0];
5193                    let s,
5194                        o = !1;
5195                    if (i)
5196                        for (let e = 0; e < t.slides.length; e += 1)
5197                            if (t.slides[e] === i) {
5198                                (o = !0), (s = e);
5199                                break;
5200                            }
5201                    if (!i || !o) return (t.clickedSlide = void 0), void (t.clickedIndex = void 0);
5202                    (t.clickedSlide = i),
5203                        t.virtual && t.params.virtual.enabled ? (t.clickedIndex = parseInt(v(i).attr("data-swiper-slide-index"), 10)) : (t.clickedIndex = s),
5204                        n.slideToClickedSlide && void 0 !== t.clickedIndex && t.clickedIndex !== t.activeIndex && t.slideToClickedSlide();
5205                },
5206            };
5207            const M = {
5208                getTranslate: function (e = this.isHorizontal() ? "x" : "y") {
5209                    const { params: t, rtlTranslate: n, translate: i, $wrapperEl: s } = this;
5210                    if (t.virtualTranslate) return n ? -i : i;
5211                    if (t.cssMode) return i;
5212                    let o = w(s[0], e);
5213                    return n && (o = -o), o || 0;
5214                },
5215                setTranslate: function (e, t) {
5216                    const n = this,
5217                        { rtlTranslate: i, params: s, $wrapperEl: o, wrapperEl: r, progress: a } = n;
5218                    let l,
5219                        c = 0,
5220                        d = 0;
5221                    n.isHorizontal() ? (c = i ? -e : e) : (d = e),
5222                        s.roundLengths && ((c = Math.floor(c)), (d = Math.floor(d))),
5223                        s.cssMode ? (r[n.isHorizontal() ? "scrollLeft" : "scrollTop"] = n.isHorizontal() ? -c : -d) : s.virtualTranslate || o.transform(`translate3d(${c}
5223px, ${d}px, 0px)`),
5224                        (n.previousTranslate = n.translate),
5225                        (n.translate = n.isHorizontal() ? c : d);
5226                    const h = n.maxTranslate() - n.minTranslate();
5227                    (l = 0 === h ? 0 : (e - n.minTranslate()) / h), l !== a && n.updateProgress(e), n.emit("setTranslate", n.translate, t);
5228                },
5229                minTranslate: function () {
5230                    return -this.snapGrid[0];
5231                },
5232                maxTranslate: function () {
5233                    return -this.snapGrid[this.snapGrid.length - 1];
5234                },
5235                translateTo: function (e = 0, t = this.params.speed, n = !0, i = !0, s) {
5236                    const o = this,
5237                        { params: r, wrapperEl: a } = o;
5238                    if (o.animating && r.preventInteractionOnTransition) return !1;
5239                    const l = o.minTranslate(),
5240                        c = o.maxTranslate();
5241                    let d;
5242                    if (((d = i && e > l ? l : i && e < c ? c : e), o.updateProgress(d), r.cssMode)) {
5243                        const e = o.isHorizontal();
5244                        if (0 === t) a[e ? "scrollLeft" : "scrollTop"] = -d;
5245                        else {
5246                            if (!o.support.smoothScroll) return T({ swiper: o, targetPosition: -d, side: e ? "left" : "top" }), !0;
5247                            a.scrollTo({ [e ? "left" : "top"]: -d, behavior: "smooth" });
5248                        }
5249                        return !0;
5250                    }
5251                    return (
5252                        0 === t
5253                            ? (o.setTransition(0), o.setTranslate(d), n && (o.emit("beforeTransitionStart", t, s), o.emit("transitionEnd")))
5254                            : (o.setTransition(t),
5255                              o.setTranslate(d),
5256                              n && (o.emit("beforeTransitionStart", t, s), o.emit("transitionStart")),
5257                              o.animating ||
5258                                  ((o.animating = !0),
5259                                  o.onTranslateToWrapperTransitionEnd ||
5260                                      (o.onTranslateToWrapperTransitionEnd = function (e) {
5261                                          o &&
5262                                              !o.destroyed &&
5263                                              e.target === this &&
5264                                              (o.$wrapperEl[0].removeEventListener("transitionend", o.onTranslateToWrapperTransitionEnd),
5265                                              o.$wrapperEl[0].removeEventListener("webkitTransitionEnd", o.onTranslateToWrapperTransitionEnd),
5266                                              (o.onTranslateToWrapperTransitionEnd = null),
5267                                              delete o.onTranslateToWrapperTransitionEnd,
5268                                              n && o.emit("transitionEnd"));
5269                                      }),
5270                                  o.$wrapperEl[0].addEventListener("transitionend", o.onTranslateToWrapperTransitionEnd),
5271                                  o.$wrapperEl[0].addEventListener("webkitTransitionEnd", o.onTranslateToWrapperTransitionEnd))),
5272                        !0
5273                    );
5274                },
5275            };
5276            function D({ swiper: e, runCallbacks: t, direction: n, step: i }) {
5277                const { activeIndex: s, previousIndex: o } = e;
5278                let r = n;
5279                if ((r || (r = s > o ? "next" : s < o ? "prev" : "reset"), e.emit(`transition${i}`), t && s !== o)) {
5280                    if ("reset" === r) return void e.emit(`slideResetTransition${i}`);
5281                    e.emit(`slideChangeTransition${i}`), "next" === r ? e.emit(`slideNextTransition${i}`) : e.emit(`slidePrevTransition${i}`);
5282                }
5283            }
5284            const N = {
5285                slideTo: function (e = 0, t = this.params.speed, n = !0, i, s) {
5286                    if ("number" != typeof e && "string" != typeof e) throw new Error(`The 'index' argument cannot have type other than 'number' or 'string'. [${typeof e}] given.`);
5287                    if ("string" == typeof e) {
5288                        const t = parseInt(e, 10);
5289                        if (!isFinite(t)) throw new Error(`The passed-in 'index' (string) couldn't be converted to 'number'. [${e}] given.`);
5290                        e = t;
5291                    }
5292                    const o = this;
5293                    let r = e;
5294                    r < 0 && (r = 0);
5295                    const { params: a, snapGrid: l, slidesGrid: c, previousIndex: d, activeIndex: h, rtlTranslate: u, wrapperEl: p, enabled: f } = o;
5296                    if ((o.animating && a.preventInteractionOnTransition) || (!f && !i && !s)) return !1;
5297                    const g = Math.min(o.params.slidesPerGroupSkip, r);
5298                    let m = g + Math.floor((r - g) / o.params.slidesPerGroup);
5299                    m >= l.length && (m = l.length - 1);
5300                    const v = -l[m];
5301                    if (a.normalizeSlideIndex)
5302                        for (let e = 0; e < c.length; e += 1) {
5303                            const t = -Math.floor(100 * v),
5304                                n = Math.floor(100 * c[e]),
5305                                i = Math.floor(100 * c[e + 1]);
5306                            void 0 !== c[e + 1] ? (t >= n && t < i - (i - n) / 2 ? (r = e) : t >= n && t < i && (r = e + 1)) : t >= n && (r = e);
5307                        }
5308                    if (o.initialized && r !== h) {
5309                        if (!o.allowSlideNext && v < o.translate && v < o.minTranslate()) return !1;
5310                        if (!o.allowSlidePrev && v > o.translate && v > o.maxTranslate() && (h || 0) !== r) return !1;
5311                    }
5312                    let b;
5313                    if ((r !== (d || 0) && n && o.emit("beforeSlideChangeStart"), o.updateProgress(v), (b = r > h ? "next" : r < h ? "prev" : "reset"), (u && -v === o.translate) || (!u && v === o.translate)))
5314                        return o.updateActiveIndex(r), a.autoHeight && o.updateAutoHeight(), o.updateSlidesClasses(), "slide" !== a.effect && o.setTranslate(v), "reset" !== b && (o.transitionStart(n, b), o.transitionEnd(n, b)), !1;
5315                    if (a.cssMode) {
5316                        const e = o.isHorizontal(),
5317                            n = u ? v : -v;
5318                        if (0 === t) {
5319                            const t = o.virtual && o.params.virtual.enabled;
5320                            t && ((o.wrapperEl.style.scrollSnapType = "none"), (o._immediateVirtual = !0)),
5321                                (p[e ? "scrollLeft" : "scrollTop"] = n),
5322                                t &&
5323                                    requestAnimationFrame(() => {
5324                                        (o.wrapperEl.style.scrollSnapType = ""), (o._swiperImmediateVirtual = !1);
5325                                    });
5326                        } else {
5327                            if (!o.support.smoothScroll) return T({ swiper: o, targetPosition: n, side: e ? "left" : "top" }), !0;
5328                            p.scrollTo({ [e ? "left" : "top"]: n, behavior: "smooth" });
5329                        }
5330                        return !0;
5331                    }
5332                    return (
5333                        o.setTransition(t),
5334                        o.setTranslate(v),
5335                        o.updateActiveIndex(r),
5336                        o.updateSlidesClasses(),
5337                        o.emit("beforeTransitionStart", t, i),
5338                        o.transitionStart(n, b),
5339                        0 === t
5340                            ? o.transitionEnd(n, b)
5341                            : o.animating ||
5342                              ((o.animating = !0),
5343                              o.onSlideToWrapperTransitionEnd ||
5344                                  (o.onSlideToWrapperTransitionEnd = function (e) {
5345                                      o &&
5346                                          !o.destroyed &&
5347                                          e.target === this &&
5348                                          (o.$wrapperEl[0].removeEventListener("transitionend", o.onSlideToWrapperTransitionEnd),
5349                                          o.$wrapperEl[0].removeEventListener("webkitTransitionEnd", o.onSlideToWrapperTransitionEnd),
5350                                          (o.onSlideToWrapperTransitionEnd = null),
5351                                          delete o.onSlideToWrapperTransitionEnd,
5352                                          o.transitionEnd(n, b));
5353                                  }),
5354                              o.$wrapperEl[0].addEventListener("transitionend", o.onSlideToWrapperTransitionEnd),
5355                              o.$wrapperEl[0].addEventListener("webkitTransitionEnd", o.onSlideToWrapperTransitionEnd)),
5356                        !0
5357                    );
5358                },
5359                slideToLoop: function (e = 0, t = this.params.speed, n = !0, i) {
5360                    if ("string" == typeof e) {
5361                        const t = parseInt(e, 10);
5362                        if (!isFinite(t)) throw new Error(`The passed-in 'index' (string) couldn't be converted to 'number'. [${e}] given.`);
5363                        e = t;
5364                    }
5365                    const s = this;
5366                    let o = e;
5367                    return s.params.loop && (o += s.loopedSlides), s.slideTo(o, t, n, i);
5368                },
5369                slideNext: function (e = this.params.speed, t = !0, n) {
5370                    const i = this,
5371                        { animating: s, enabled: o, params: r } = i;
5372                    if (!o) return i;
5373                    let a = r.slidesPerGroup;
5374                    "auto" === r.slidesPerView && 1 === r.slidesPerGroup && r.slidesPerGroupAuto && (a = Math.max(i.slidesPerViewDynamic("current", !0), 1));
5375                    const l = i.activeIndex < r.slidesPerGroupSkip ? 1 : a;
5376                    if (r.loop) {
5377                        if (s && r.loopPreventsSlide) return !1;
5378                        i.loopFix(), (i._clientLeft = i.$wrapperEl[0].clientLeft);
5379                    }
5380                    return r.rewind && i.isEnd ? i.slideTo(0, e, t, n) : i.slideTo(i.activeIndex + l, e, t, n);
5381                },
5382                slidePrev: function (e = this.params.speed, t = !0, n) {
5383                    const i = this,
5384                        { params: s, animating: o, snapGrid: r, slidesGrid: a, rtlTranslate: l, enabled: c } = i;
5385                    if (!c) return i;
5386                    if (s.loop) {
5387                        if (o && s.loopPreventsSlide) return !1;
5388                        i.loopFix(), (i._clientLeft = i.$wrapperEl[0].clientLeft);
5389                    }
5390                    function d(e) {
5391                        return e < 0 ? -Math.floor(Math.abs(e)) : Math.floor(e);
5392                    }
5393                    const h = d(l ? i.translate : -i.translate),
5394                        u = r.map((e) => d(e));
5395                    let p = r[u.indexOf(h) - 1];
5396                    if (void 0 === p && s.cssMode) {
5397                        let e;
5398                        r.forEach((t, n) => {
5399                            h >= t && (e = n);
5400                        }),
5401                            void 0 !== e && (p = r[e > 0 ? e - 1 : e]);
5402                    }
5403                    let f = 0;
5404                    if (
5405                        (void 0 !== p &&
5406                            ((f = a.indexOf(p)),
5407                            f < 0 && (f = i.activeIndex - 1),
5408                            "auto" === s.slidesPerView && 1 === s.slidesPerGroup && s.slidesPerGroupAuto && ((f = f - i.slidesPerViewDynamic("previous", !0) + 1), (f = Math.max(f, 0)))),
5409                        s.rewind && i.isBeginning)
5410                    ) {
5411                        const s = i.params.virtual && i.params.virtual.enabled && i.virtual ? i.virtual.slides.length - 1 : i.slides.length - 1;
5412                        return i.slideTo(s, e, t, n);
5413                    }
5414                    return i.slideTo(f, e, t, n);
5415                },
5416                slideReset: function (e = this.params.speed, t = !0, n) {
5417                    return this.slideTo(this.activeIndex, e, t, n);
5418                },
5419                slideToClosest: function (e = this.params.speed, t = !0, n, i = 0.5) {
5420                    const s = this;
5421                    let o = s.activeIndex;
5422                    const r = Math.min(s.params.slidesPerGroupSkip, o),
5423                        a = r + Math.floor((o - r) / s.params.slidesPerGroup),
5424                        l = s.rtlTranslate ? s.translate : -s.translate;
5425                    if (l >
5425= s.snapGrid[a]) {
5426                        const e = s.snapGrid[a];
5427                        l - e > (s.snapGrid[a + 1] - e) * i && (o += s.params.slidesPerGroup);
5428                    } else {
5429                        const e = s.snapGrid[a - 1];
5430                        l - e <= (s.snapGrid[a] - e) * i && (o -= s.params.slidesPerGroup);
5431                    }
5432                    return (o = Math.max(o, 0)), (o = Math.min(o, s.slidesGrid.length - 1)), s.slideTo(o, e, t, n);
5433                },
5434                slideToClickedSlide: function () {
5435                    const e = this,
5436                        { params: t, $wrapperEl: n } = e,
5437                        i = "auto" === t.slidesPerView ? e.slidesPerViewDynamic() : t.slidesPerView;
5438                    let s,
5439                        o = e.clickedIndex;
5440                    if (t.loop) {
5441                        if (e.animating) return;
5442                        (s = parseInt(v(e.clickedSlide).attr("data-swiper-slide-index"), 10)),
5443                            t.centeredSlides
5444                                ? o < e.loopedSlides - i / 2 || o > e.slides.length - e.loopedSlides + i / 2
5445                                    ? (e.loopFix(),
5446                                      (o = n.children(`.${t.slideClass}[data-swiper-slide-index="${s}"]:not(.${t.slideDuplicateClass})`).eq(0).index()),
5447                                      b(() => {
5448                                          e.slideTo(o);
5449                                      }))
5450                                    : e.slideTo(o)
5451                                : o > e.slides.length - i
5452                                ? (e.loopFix(),
5453                                  (o = n.children(`.${t.slideClass}[data-swiper-slide-index="${s}"]:not(.${t.slideDuplicateClass})`).eq(0).index()),
5454                                  b(() => {
5455                                      e.slideTo(o);
5456                                  }))
5457                                : e.slideTo(o);
5458                    } else e.slideTo(o);
5459                },
5460            };
5461            const I = {
5462                loopCreate: function () {
5463                    const e = this,
5464                        t = a(),
5465                        { params: n, $wrapperEl: i } = e,
5466                        s = i.children().length > 0 ? v(i.children()[0].parentNode) : i;
5467                    s.children(`.${n.slideClass}.${n.slideDuplicateClass}`).remove();
5468                    let o = s.children(`.${n.slideClass}`);
5469                    if (n.loopFillGroupWithBlank) {
5470                        const e = n.slidesPerGroup - (o.length % n.slidesPerGroup);
5471                        if (e !== n.slidesPerGroup) {
5472                            for (let i = 0; i < e; i += 1) {
5473                                const e = v(t.createElement("div")).addClass(`${n.slideClass} ${n.slideBlankClass}`);
5474                                s.append(e);
5475                            }
5476                            o = s.children(`.${n.slideClass}`);
5477                        }
5478                    }
5479                    "auto" !== n.slidesPerView || n.loopedSlides || (n.loopedSlides = o.length),
5480                        (e.loopedSlides = Math.ceil(parseFloat(n.loopedSlides || n.slidesPerView, 10))),
5481                        (e.loopedSlides += n.loopAdditionalSlides),
5482                        e.loopedSlides > o.length && e.params.loopedSlidesLimit && (e.loopedSlides = o.length);
5483                    const r = [],
5484                        l = [];
5485                    o.each((e, t) => {
5486                        v(e).attr("data-swiper-slide-index", t);
5487                    });
5488                    for (let t = 0; t < e.loopedSlides; t += 1) {
5489                        const e = t - Math.floor(t / o.length) * o.length;
5490                        l.push(o.eq(e)[0]), r.unshift(o.eq(o.length - e - 1)[0]);
5491                    }
5492                    for (let e = 0; e < l.length; e += 1) s.append(v(l[e].cloneNode(!0)).addClass(n.slideDuplicateClass));
5493                    for (let e = r.length - 1; e >= 0; e -= 1) s.prepend(v(r[e].cloneNode(!0)).addClass(n.slideDuplicateClass));
5494                },
5495                loopFix: function () {
5496                    const e = this;
5497                    e.emit("beforeLoopFix");
5498                    const { activeIndex: t, slides: n, loopedSlides: i, allowSlidePrev: s, allowSlideNext: o, snapGrid: r, rtlTranslate: a } = e;
5499                    let l;
5500                    (e.allowSlidePrev = !0), (e.allowSlideNext = !0);
5501                    const c = -r[t] - e.getTranslate();
5502                    if (t < i) {
5503                        (l = n.length - 3 * i + t), (l += i);
5504                        e.slideTo(l, 0, !1, !0) && 0 !== c && e.setTranslate((a ? -e.translate : e.translate) - c);
5505                    } else if (t >= n.length - i) {
5506                        (l = -n.length + t + i), (l += i);
5507                        e.slideTo(l, 0, !1, !0) && 0 !== c && e.setTranslate((a ? -e.translate : e.translate) - c);
5508                    }
5509                    (e.allowSlidePrev = s), (e.allowSlideNext = o), e.emit("loopFix");
5510                },
5511                loopDestroy: function () {
5512                    const { $wrapperEl: e, params: t, slides: n } = this;
5513                    e.children(`.${t.slideClass}.${t.slideDuplicateClass},.${t.slideClass}.${t.slideBlankClass}`).remove(), n.removeAttr("data-swiper-slide-index");
5514                },
5515            };
5516            function z(e) {
5517                const t = this,
5518                    n = a(),
5519                    i = c(),
5520                    s = t.touchEventsData,
5521                    { params: o, touches: r, enabled: l } = t;
5522                if (!l) return;
5523                if (t.animating && o.preventInteractionOnTransition) return;
5524                !t.animating && o.cssMode && o.loop && t.loopFix();
5525                let d = e;
5526                d.originalEvent && (d = d.originalEvent);
5527                let h = v(d.target);
5528                if ("wrapper" === o.touchEventsTarget && !h.closest(t.wrapperEl).length) return;
5529                if (((s.isTouchEvent = "touchstart" === d.type), !s.isTouchEvent && "which" in d && 3 === d.which)) return;
5530                if (!s.isTouchEvent && "button" in d && d.button > 0) return;
5531                if (s.isTouched && s.isMoved) return;
5532                const u = !!o.noSwipingClass && "" !== o.noSwipingClass,
5533                    p = e.composedPath ? e.composedPath() : e.path;
5534                u && d.target && d.target.shadowRoot && p && (h = v(p[0]));
5535                const f = o.noSwipingSelector ? o.noSwipingSelector : `.${o.noSwipingClass}`,
5536                    g = !(!d.target || !d.target.shadowRoot);
5537                if (
5538                    o.noSwiping &&
5539                    (g
5540                        ? (function (e, t = this) {
5541                              return (function t(n) {
5542                                  if (!n || n === a() || n === c()) return null;
5543                                  n.assignedSlot && (n = n.assignedSlot);
5544                                  const i = n.closest(e);
5545                                  return i || n.getRootNode ? i || t(n.getRootNode().host) : null;
5546                              })(t);
5547                          })(f, h[0])
5548                        : h.closest(f)[0])
5549                )
5550                    return void (t.allowClick = !0);
5551                if (o.swipeHandler && !h.closest(o.swipeHandler)[0]) return;
5552                (r.currentX = "touchstart" === d.type ? d.targetTouches[0].pageX : d.pageX), (r.currentY = "touchstart" === d.type ? d.targetTouches[0].pageY : d.pageY);
5553                const m = r.currentX,
5554                    b = r.currentY,
5555                    w = o.edgeSwipeDetection || o.iOSEdgeSwipeDetection,
5556                    x = o.edgeSwipeThreshold || o.iOSEdgeSwipeThreshold;
5557                if (w && (m <= x || m >= i.innerWidth - x)) {
5558                    if ("prevent" !== w) return;
5559                    e.preventDefault();
5560                }
5561                if (
5562                    (Object.assign(s, { isTouched: !0, isMoved: !1, allowTouchCallbacks: !0, isScrolling: void 0, startMoving: void 0 }),
5563                    (r.startX = m),
5564                    (r.startY = b),
5565                    (s.touchStartTime = y()),
5566                    (t.allowClick = !0),
5567                    t.updateSize(),
5568                    (t.swipeDirection = void 0),
5569                    o.threshold > 0 && (s.allowThresholdMove = !1),
5570                    "touchstart" !== d.type)
5571                ) {
5572                    let e = !0;
5573                    h.is(s.focusableElements) && ((e = !1), "SELECT" === h[0].nodeName && (s.isTouched = !1)), n.activeElement && v(n.activeElement).is(s.focusableElements) && n.activeElement !== h[0] && n.activeElement.blur();
5574                    const i = e && t.allowTouchMove && o.touchStartPreventDefault;
5575                    (!o.touchStartForcePreventDefault && !i) || h[0].isContentEditable || d.preventDefault();
5576                }
5577                t.params.freeMode && t.params.freeMode.enabled && t.freeMode && t.animating && !o.cssMode && t.freeMode.onTouchStart(), t.emit("touchStart", d);
5578            }
5579            function j(e) {
5580                const t = a(),
5581                    n = this,
5582                    i = n.touchEventsData,
5583                    { params: s, touches: o, rtlTranslate: r, enabled: l } = n;
5584                if (!l) return;
5585                let c = e;
5586                if ((c.originalEvent && (c = c.originalEvent), !i.isTouched)) return void (i.startMoving && i.isScrolling && n.emit("touchMoveOpposite", c));
5587                if (i.isTouchEvent && "touchmove" !== c.type) return;
5588                const d = "touchmove" === c.type && c.targetTouches && (c.targetTouches[0] || c.changedTouches[0]),
5589                    h = "touchmove" === c.type ? d.pageX : c.pageX,
5590                    u = "touchmove" === c.type ? d.pageY : c.pageY;
5591                if (c.preventedByNestedSwiper) return (o.startX = h), void (o.startY = u);
5592                if (!n.allowTouchMove) return v(c.target).is(i.focusableElements) || (n.allowClick = !1), void (i.isTouched && (Object.assign(o, { startX: h, startY: u, currentX: h, currentY: u }), (i.touchStartTime = y())));
5593                if (i.isTouchEvent && s.touchReleaseOnEdges && !s.loop)
5594                    if (n.isVertical()) {
5595                        if ((u < o.startY && n.translate <= n.maxTranslate()) || (u > o.startY && n.translate >= n.minTranslate())) return (i.isTouched = !1), void (i.isMoved = !1);
5596                    } else if ((h < o.startX && n.translate <= n.maxTranslate()) || (h > o.startX && n.translate >= n.minTranslate())) return;
5597                if (i.isTouchEvent && t.activeElement && c.target === t.activeElement && v(c.target).is(i.focusableElements)) return (i.isMoved = !0), void (n.allowClick = !1);
5598                if ((i.allowTouchCallbacks && n.emit("touchMove", c), c.targetTouches && c.targetTouches.length > 1)) return;
5599                (o.currentX = h), (o.currentY = u);
5600                const p = o.currentX - o.startX,
5601                    f = o.currentY - o.startY;
5602                if (n.params.threshold && Math.sqrt(p ** 2 + f ** 2) < n.params.threshold) return;
5603                if (void 0 === i.isScrolling) {
5604                    let e;
5605                    (n.isHorizontal() && o.currentY === o.startY) || (n.isVertical() && o.currentX === o.startX)
5606                        ? (i.isScrolling = !1)
5607                        : p * p + f * f >= 25 && ((e = (180 * Math.atan2(Math.abs(f), Math.abs(p))) / Math.PI), (i.isScrolling = n.isHorizontal() ? e > s.touchAngle : 90 - e > s.touchAngle));
5608                }
5609                if ((i.isScrolling && n.emit("touchMoveOpposite", c), void 0 === i.startMoving && ((o.currentX === o.startX && o.currentY === o.startY) || (i.startMoving = !0)), i.isScrolling)) return void (i.isTouched = !1);
5610                if (!i.startMoving) return;
5611                (n.allowClick = !1),
5612                    !s.cssMode && c.cancelable && c.preventDefault(),
5613                    s.touchMoveStopPropagation && !s.nested && c.stopPropagation(),
5614                    i.isMoved ||
5615                        (s.loop && !s.cssMode && n.loopFix(),
5616                        (i.startTranslate = n.getTranslate()),
5617                        n.setTransition(0),
5618                        n.animating && n.$wrapperEl.trigger("webkitTransitionEnd transitionend"),
5619                        (i.allowMomentumBounce = !1),
5620                        !s.grabCursor || (!0 !== n.allowSlideNext && !0 !== n.allowSlidePrev) || n.setGrabCursor(!0),
5621                        n.emit("sliderFirstMove", c)),
5622                    n.emit("sliderMove", c),
5623                    (i.isMoved = !0);
5624                let g = n.isHorizontal() ? p : f;
5625                (o.diff = g), (g *= s.touchRatio), r && (g = -g), (n.swipeDirection = g > 0 ? "prev" : "next"), (i.currentTranslate = g + i.startTranslate);
5626                let m = !0,
5627                    b = s.resistanceRatio;
5628                if (
5629                    (s.touchReleaseOnEdges && (b = 0),
5630                    g > 0 && i.currentTranslate > n.minTranslate()
5631                        ? ((m = !1), s.resistance && (i.currentTranslate = n.minTranslate() - 1 + (-n.minTranslate() + i.startTranslate + g) ** b))
5632                        : g < 0 && i.currentTranslate < n.maxTranslate() && ((m = !1), s.resistance && (i.currentTranslate = n.maxTranslate() + 1 - (n.maxTranslate() - i.startTranslate - g) ** b)),
5633                    m && (c.preventedByNestedSwiper = !0),
5634                    !n.allowSlideNext && "next" === n.swipeDirection && i.currentTranslate < i.startTranslate && (i.currentTranslate = i.startTranslate),
5635                    !n.allowSlidePrev && "prev" === n.swipeDirection && i.currentTranslate > i.startTranslate && (i.currentTranslate = i.startTranslate),
5636                    n.allowSlidePrev || n.allowSlideNext || (i.currentTranslate = i.startTranslate),
5637                    s.threshold > 0)
5638                ) {
5639                    if (!(Math.abs(g) > s.threshold || i.allowThresholdMove)) return void (i.currentTranslate = i.startTranslate);
5640                    if (!i.allowThresholdMove)
5641                        return (i.allowThresholdMove = !0), (o.startX = o.currentX), (o.startY = o.currentY), (i.currentTranslate = i.startTranslate), void (o.diff = n.isHorizontal() ? o.currentX - o.startX : o.currentY - o.startY);
5642                }
5643                s.followFinger &&
5644                    !s.cssMode &&
5645                    (((s.freeMode && s.freeMode.enabled && n.freeMode) || s.watchSlidesProgress) && (n.updateActiveIndex(), n.updateSlidesClasses()),
5646                    n.params.freeMode && s.freeMode.enabled && n.freeMode && n.freeMode.onTouchMove(),
5647                    n.updateProgress(i.currentTranslate),
5648                    n.setTranslate(i.currentTranslate));
5649            }
5650            function F(e) {
5651                const t = this,
5652                    n = t.touchEventsData,
5653                    { params: i, touches: s, rtlTranslate: o, slidesGrid: r, enabled: a } = t;
5654                if (!a) return;
5655                let l = e;
5656                if ((l.originalEvent && (l = l.originalEvent), n.allowTouchCallbacks && t.emit("touchEnd", l), (n.allowTouchCallbacks = !1), !n.isTouched))
5657                    return n.isMoved && i.grabCursor && t.setGrabCursor(!1), (n.isMoved = !1), void (n.startMoving = !1);
5658                i.grabCursor && n.isMoved && n.isTouched && (!0 === t.allowSlideNext || !0 === t.allowSlidePrev) && t.setGrabCursor(!1);
5659                const c = y(),
5660                    d = c - n.touchStartTime;
5661                if (t.allowClick) {
5662                    const e = l.path || (l.composedPath && l.composedPath());
5663                    t.updateClickedSlide((e && e[0]) || l.target), t.emit("tap click", l), d < 300 && c - n.lastClickTime < 300 && t.emit("doubleTap doubleClick", l);
5664                }
5665                if (
5666                    ((n.lastClickTime = y()),
5667                    b(() => {
5668                        t.destroyed || (t.allowClick = !0);
5669                    }),
5670                    !n.isTouched || !n.isMoved || !t.swipeDirection || 0 === s.diff || n.currentTranslate === n.startTranslate)
5671                )
5672                    return (n.isTouched = !1), (n.isMoved = !1), void (n.startMoving = !1);
5673                let h;
5674                if (((n.isTouched = !1), (n.isMoved = !1), (n.startMoving = !1), (h = i.followFinger ? (o ? t.translate : -t.translate) : -n.currentTranslate), i.cssMode)) return;
5675                if (t.params.freeMode && i.freeMode.enabled) return void t.freeMode.onTouchEnd({ currentPos: h });
5676                let u = 0,
5677                    p = t.slidesSizesGrid[0];
5678                for (let e = 0; e < r.length; e += e < i.slidesPerGroupSkip ? 1 : i.slidesPerGroup) {
5679                    const t = e < i.slidesPerGroupSkip - 1 ? 1 : i.slidesPerGroup;
5680                    void 0 !== r[e + t] ? h >= r[e] && h < r[e + t] && ((u = e), (p = r[e + t] - r[e])) : h >= r[e] && ((u = e), (p = r[r.length - 1] - r[r.length - 2]));
5681                }
5682                let f = null,
5683                    g = null;
5684                i.rewind && (t.isBeginning ? (g = t.params.virtual && t.params.virtual.enabled && t.virtual ? t.virtual.slides.length - 1 : t.slides.length - 1) : t.isEnd && (f = 0));
5685                const m = (h - r[u]) / p,
5686                    v = u < i.slidesPerGroupSkip - 1 ? 1 : i.slidesPerGroup;
5687                if (d > i.longSwipesMs) {
5688                    if (!i.longSwipes) return void t.slideTo(t.activeIndex);
5689                    "next" === t.swipeDirection && (m >= i.longSwipesRatio ? t.slideTo(i.rewind && t.isEnd ? f : u + v) : t.slideTo(u)),
5690                        "prev" === t.swipeDirection && (m > 1 - i.longSwipesRatio ? t.slideTo(u + v) : null !== g && m < 0 && Math.abs(m) > i.longSwipesRatio ? t.slideTo(g) : t.slideTo(u));
5691                } else {
5692                    if (!i.shortSwipes) return void t.slideTo(t.activeIndex);
5693                    t.navigation && (l.target === t.navigation.nextEl || l.target === t.navigation.prevEl)
5694                        ? l.target === t.navigation.nextEl
5695                            ? t.slideTo(u + v)
5696                            : t.slideTo(u)
5697                        : ("next" === t.swipeDirection && t.slideTo(null !== f ? f : u + v), "prev" === t.swipeDirection && t.slideTo(null !== g ? g : u));
5698                }
5699            }
5700            function H() {
5701                const e = this,
5702                    { params: t, el: n } = e;
5703                if (n && 0 === n.offsetWidth) return;
5704                t.breakpoints && e.setBreakpoint();
5705                const { allowSlideNext: i, allowSlidePrev: s, snapGrid: o } = e;
5706                (e.allowSlideNext = !0),
5707                    (e.allowSlidePrev = !0),
5708                    e.updateSize(),
5709                    e.updateSlides(),
5710                    e.updateSlidesClasses(),
5711                    ("auto" === t.slidesPerView || t.slidesPerView > 1) && e.isEnd && !e.isBeginning && !e.params.centeredSlides ? e.slideTo(e.slides.length - 1, 0, !1, !0) : e.slideTo(e.activeIndex, 0, !1, !0),
5712                    e.autoplay && e.autoplay.running && e.autoplay.paused && e.autoplay.run(),
5713                    (e.allowSlidePrev = s),
5714                    (e.allowSlideNext = i),
5715                    e.params.watchOverflow && o !== e.snapGrid && e.checkOverflow();
5716            }
5717            function R(e) {
5718                const t = this;
5719                t.enabled && (t.allowClick || (t.params.preventClicks && e.preventDefault(), t.params.preventClicksPropagation && t.animating && (e.stopPropagation(), e.stopImmediatePropagation())));
5720            }
5721            function B() {
5722                const e = this,
5723                    { wrapperEl: t, rtlTranslate: n, enabled: i } = e;
5724                if (!i) return;
5725                let s;
5726                (e.previousTranslate = e.translate), e.isHorizontal() ? (e.translate = -t.scrollLeft) : (e.translate = -t.scrollTop), 0 === e.translate && (e.translate = 0), e.updateActiveIndex(), e.updateSlidesClasses();
5727                const o = e.maxTranslate() - e.minTranslate();
5728                (s = 0 === o ? 0 : (e.translate - e.minTranslate()) / o), s !== e.progress && e.updateProgress(n ? -e.translate : e.translate), e.emit("setTranslate", e.translate, !1);
5729            }
5730            let q = !1;
5731            function W() {}
5732            const V = (e, t) => {
5733                const n = a(),
5734                    { params: i, touchEvents: s, el: o, wrapperEl: r, device: l, support: c } = e,
5735                    d = !!i.nested,
5736                    h = "on" === t ? "addEventListener" : "removeEventListener",
5737                    u = t;
5738                if (c.touch) {
5739                    const t = !("touchstart" !== s.start || !c.passiveListener || !i.passiveListeners) && { passive: !0, capture: !1 };
5740                    o[h](s.start, e.onTouchStart, t), o[h](s.move, e.onTouchMove, c.passiveListener ? { passive: !1, capture: d } : d), o[h](s.end, e.onTouchEnd, t), s.cancel && o[h](s.cancel, e.onTouchEnd, t);
5741                } else o[h](s.start, e.onTouchStart, !1), n[h](s.move, e.onTouchMove, d), n[h](s.end, e.onTouchEnd, !1);
5742                (i.preventClicks || i.preventClicksPropagation) && o[h]("click", e.onClick, !0),
5743                    i.cssMode && r[h]("scroll", e.onScroll),
5744                    i.updateOnWindowResize ? e[u](l.ios || l.android ? "resize orientationchange observerUpdate" : "resize observerUpdate", H, !0) : e[u]("observerUpdate", H, !0);
5745            };
5746            const G = {
5747                    attachEvents: function () {
5748                        const e = this,
5749                            t = a(),
5750                            { params: n, support: i } = e;
5751                        (e.onTouchStart = z.bind(e)),
5752                            (e.onTouchMove = j.bind(e)),
5753                            (e.onTouchEnd = F.bind(e)),
5754                            n.cssMode && (e.onScroll = B.bind(e)),
5755                            (e.onClick = R.bind(e)),
5756                            i.touch && !q && (t.addEventListener("touchstart", W), (q = !0)),
5757                            V(e, "on");
5758                    },
5759                    detachEvents: function () {
5760                        V(this, "off");
5761                    },
5762                },
5763                X = (e, t) => e.grid && t.grid && t.grid.rows > 1;
5764            const Y = {
5765                setBreakpoint: function () {
5766                    const e = this,
5767                        { activeIndex: t, initialized: n, loopedSlides: i = 0, params: s, $el: o } = e,
5768                        r = s.breakpoints;
5769                    if (!r || (r && 0 === Object.keys(r).length)) return;
5770                    const a = e.getBreakpoint(r, e.params.breakpointsBase, e.el);
5771                    if (!a || e.currentBreakpoint === a) return;
5772                    const l = (a in r ? r[a] : void 0) || e.originalParams,
5773                        c = X(e, s),
5774                        d = X(e, l),
5775                        h = s.enabled;
5776                    c && !d
5777                        ? (o.removeClass(`${s.containerModifierClass}grid ${s.containerModifierClass}grid-column`), e.emitContainerClasses())
5778                        : !c &&
5779                          d &&
5780                          (o.addClass(`${s.containerModifierClass}grid`),
5781                          ((l.grid.fill && "column" === l.grid.fill) || (!l.grid.fill && "column" === s.grid.fill)) && o.addClass(`${s.containerModifierClass}grid-column`),
5782                          e.emitContainerClasses()),
5783                        ["navigation", "pagination", "scrollbar"].forEach((t) => {
5784                            const n = s[t] && s[t].enabled,
5785                                i = l[t] && l[t].enabled;
5786                            n && !i && e[t].disable(), !n && i && e[t].enable();
5787                        });
5788                    const u = l.direction && l.direction !== s.direction,
5789                        p = s.loop && (l.slidesPerView !== s.slidesPerView || u);
5790                    u && n && e.changeDirection(), _(e.params, l);
5791                    const f = e.params.enabled;
5792                    Object.assign(e, { allowTouchMove: e.params.allowTouchMove, allowSlideNext: e.params.allowSlideNext, allowSlidePrev: e.params.allowSlidePrev }),
5793                        h && !f ? e.disable() : !h && f && e.enable(),
5794                        (e.currentBreakpoint = a),
5795                        e.emit("_beforeBreakpoint", l),
5796                        p && n && (e.loopDestroy(), e.loopCreate(), e.updateSlides(), e.slideTo(t - i + e.loopedSlides, 0, !1)),
5797                        e.emit("breakpoint", l);
5798                },
5799                getBreakpoint: function (e, t = "window", n) {
5800                    if (!e || ("container" === t && !n)) return;
5801                    let i = !1;
5802                    const s = c(),
5803                        o = "window" === t ? s.innerHeight : n.clientHeight,
5804                        r = Object.keys(e).map((e) => {
5805                            if ("string" == typeof e && 0 === e.indexOf("@")) {
5806                                const t = parseFloat(e.substr(1));
5807                                return { value: o * t, point: e };
5808                            }
5809                            return { value: e, point: e };
5810                        });
5811                    r.sort((e, t) => parseInt(e.value, 10) - parseInt(t.value, 10));
5812                    for (let e = 0; e < r.length; e += 1) {
5813                        const { point: o, value: a } = r[e];
5814                        "window" === t ? s.matchMedia(`(min-width: ${a}px)`).matches && (i = o) : a <= n.clientWidth && (i = o);
5815                    }
5816                    return i || "max";
5817                },
5818            };
5819            const U = {
5820                addClasses: function () {
5821                    const e = this,
5822                        { classNames: t, params: n, rtl: i, $el: s, device: o, support: r } = e,
5823                        a = (function (e, t) {
5824                            const n = [];
5825                            return (
5826                                e.forEach((e) => {
5827                                    "object" == typeof e
5828                                        ? Object.keys(e).forEach((i) => {
5829                                              e[i] && n.push(t + i);
5830                                          })
5831                                        : "string" == typeof e && n.push(t + e);
5832                                }),
5833                                n
5834                            );
5835                        })(
5836                            [
5837                                "initialized",
5838                                n.direction,
5839                                { "pointer-events": !r.touch },
5840                                { "free-mode": e.params.freeMode && n.freeMode.enabled },
5841                                { autoheight: n.autoHeight },
5842                                { rtl: i },
5843                                { grid: n.grid && n.grid.rows > 1 },
5844                                { "grid-column": n.grid && n.grid.rows > 1 && "column" === n.grid.fill },
5845                                { android: o.android },
5846                                { ios: o.ios },
5847                                { "css-mode": n.cssMode },
5848                                { centered: n.cssMode && n.centeredSlides },
5849                                { "watch-progress": n.watchSlidesProgress },
5850                            ],
5851                            n.containerModifierClass
5852                        );
5853                    t.push(...a), s.addClass([...t].join(" ")), e.emitContainerClasses();
5854                },
5855                removeClasses: function () {
5856                    const { $el: e, classNames: t } = this;
5857                    e.removeClass(t.join(" ")), this.emitContainerClasses();
5858                },
5859            };
5860            const K = {
5861                loadImage: function (e, t, n, i, s, o) {
5862                    const r = c();
5863                    let a;
5864                    function l() {
5865                        o && o();
5866                    }
5867                    v(e).parent("picture")[0] || (e.complete && s) ? l() : t ? ((a = new r.Image()), (a.onload = l), (a.onerror = l), i && (a.sizes = i), n && (a.srcset = n), t && (a.src = t)) : l();
5868                },
5869                preloadImages: function () {
5870                    const e = this;
5871                    function t() {
5872                        null != e && e && !e.destroyed && (void 0 !== e.imagesLoaded && (e.imagesLoaded += 1), e.imagesLoaded === e.imagesToLoad.length && (e.params.updateOnImagesReady && e.update(
5872), e.emit("imagesReady")));
5873                    }
5874                    e.imagesToLoad = e.$el.find("img");
5875                    for (let n = 0; n < e.imagesToLoad.length; n += 1) {
5876                        const i = e.imagesToLoad[n];
5877                        e.loadImage(i, i.currentSrc || i.getAttribute("src"), i.srcset || i.getAttribute("srcset"), i.sizes || i.getAttribute("sizes"), !0, t);
5878                    }
5879                },
5880            };
5881            const Z = {
5882                init: !0,
5883                direction: "horizontal",
5884                touchEventsTarget: "wrapper",
5885                initialSlide: 0,
5886                speed: 300,
5887                cssMode: !1,
5888                updateOnWindowResize: !0,
5889                resizeObserver: !0,
5890                nested: !1,
5891                createElements: !1,
5892                enabled: !0,
5893                focusableElements: "input, select, option, textarea, button, video, label",
5894                width: null,
5895                height: null,
5896                preventInteractionOnTransition: !1,
5897                userAgent: null,
5898                url: null,
5899                edgeSwipeDetection: !1,
5900                edgeSwipeThreshold: 20,
5901                autoHeight: !1,
5902                setWrapperSize: !1,
5903                virtualTranslate: !1,
5904                effect: "slide",
5905                breakpoints: void 0,
5906                breakpointsBase: "window",
5907                spaceBetween: 0,
5908                slidesPerView: 1,
5909                slidesPerGroup: 1,
5910                slidesPerGroupSkip: 0,
5911                slidesPerGroupAuto: !1,
5912                centeredSlides: !1,
5913                centeredSlidesBounds: !1,
5914                slidesOffsetBefore: 0,
5915                slidesOffsetAfter: 0,
5916                normalizeSlideIndex: !0,
5917                centerInsufficientSlides: !1,
5918                watchOverflow: !0,
5919                roundLengths: !1,
5920                touchRatio: 1,
5921                touchAngle: 45,
5922                simulateTouch: !0,
5923                shortSwipes: !0,
5924                longSwipes: !0,
5925                longSwipesRatio: 0.5,
5926                longSwipesMs: 300,
5927                followFinger: !0,
5928                allowTouchMove: !0,
5929                threshold: 0,
5930                touchMoveStopPropagation: !1,
5931                touchStartPreventDefault: !0,
5932                touchStartForcePreventDefault: !1,
5933                touchReleaseOnEdges: !1,
5934                uniqueNavElements: !0,
5935                resistance: !0,
5936                resistanceRatio: 0.85,
5937                watchSlidesProgress: !1,
5938                grabCursor: !1,
5939                preventClicks: !0,
5940                preventClicksPropagation: !0,
5941                slideToClickedSlide: !1,
5942                preloadImages: !0,
5943                updateOnImagesReady: !0,
5944                loop: !1,
5945                loopAdditionalSlides: 0,
5946                loopedSlides: null,
5947                loopedSlidesLimit: !0,
5948                loopFillGroupWithBlank: !1,
5949                loopPreventsSlide: !0,
5950                rewind: !1,
5951                allowSlidePrev: !0,
5952                allowSlideNext: !0,
5953                swipeHandler: null,
5954                noSwiping: !0,
5955                noSwipingClass: "swiper-no-swiping",
5956                noSwipingSelector: null,
5957                passiveListeners: !0,
5958                maxBackfaceHiddenSlides: 10,
5959                containerModifierClass: "swiper-",
5960                slideClass: "swiper-slide",
5961                slideBlankClass: "swiper-slide-invisible-blank",
5962                slideActiveClass: "swiper-slide-active",
5963                slideDuplicateActiveClass: "swiper-slide-duplicate-active",
5964                slideVisibleClass: "swiper-slide-visible",
5965                slideDuplicateClass: "swiper-slide-duplicate",
5966                slideNextClass: "swiper-slide-next",
5967                slideDuplicateNextClass: "swiper-slide-duplicate-next",
5968                slidePrevClass: "swiper-slide-prev",
5969                slideDuplicatePrevClass: "swiper-slide-duplicate-prev",
5970                wrapperClass: "swiper-wrapper",
5971                runCallbacksOnInit: !0,
5972                _emitClasses: !1,
5973            };
5974            function Q(e, t) {
5975                return function (n = {}) {
5976                    const i = Object.keys(n)[0],
5977                        s = n[i];
5978                    "object" == typeof s && null !== s
5979                        ? (["navigation", "pagination", "scrollbar"].indexOf(i) >= 0 && !0 === e[i] && (e[i] = { auto: !0 }),
5980                          i in e && "enabled" in s ? (!0 === e[i] && (e[i] = { enabled: !0 }), "object" != typeof e[i] || "enabled" in e[i] || (e[i].enabled = !0), e[i] || (e[i] = { enabled: !1 }), _(t, n)) : _(t, n))
5981                        : _(t, n);
5982                };
5983            }
5984            const J = {
5985                    eventsEmitter: P,
5986                    update: O,
5987                    translate: M,
5988                    transition: {
5989                        setTransition: function (e, t) {
5990                            const n = this;
5991                            n.params.cssMode || n.$wrapperEl.transition(e), n.emit("setTransition", e, t);
5992                        },
5993                        transitionStart: function (e = !0, t) {
5994                            const n = this,
5995                                { params: i } = n;
5996                            i.cssMode || (i.autoHeight && n.updateAutoHeight(), D({ swiper: n, runCallbacks: e, direction: t, step: "Start" }));
5997                        },
5998                        transitionEnd: function (e = !0, t) {
5999                            const n = this,
6000                                { params: i } = n;
6001                            (n.animating = !1), i.cssMode || (n.setTransition(0), D({ swiper: n, runCallbacks: e, direction: t, step: "End" }));
6002                        },
6003                    },
6004                    slide: N,
6005                    loop: I,
6006                    grabCursor: {
6007                        setGrabCursor: function (e) {
6008                            const t = this;
6009                            if (t.support.touch || !t.params.simulateTouch || (t.params.watchOverflow && t.isLocked) || t.params.cssMode) return;
6010                            const n = "container" === t.params.touchEventsTarget ? t.el : t.wrapperEl;
6011                            (n.style.cursor = "move"), (n.style.cursor = e ? "grabbing" : "grab");
6012                        },
6013                        unsetGrabCursor: function () {
6014                            const e = this;
6015                            e.support.touch || (e.params.watchOverflow && e.isLocked) || e.params.cssMode || (e["container" === e.params.touchEventsTarget ? "el" : "wrapperEl"].style.cursor = "");
6016                        },
6017                    },
6018                    events: G,
6019                    breakpoints: Y,
6020                    checkOverflow: {
6021                        checkOverflow: function () {
6022                            const e = this,
6023                                { isLocked: t, params: n } = e,
6024                                { slidesOffsetBefore: i } = n;
6025                            if (i) {
6026                                const t = e.slides.length - 1,
6027                                    n = e.slidesGrid[t] + e.slidesSizesGrid[t] + 2 * i;
6028                                e.isLocked = e.size > n;
6029                            } else e.isLocked = 1 === e.snapGrid.length;
6030                            !0 === n.allowSlideNext && (e.allowSlideNext = !e.isLocked),
6031                                !0 === n.allowSlidePrev && (e.allowSlidePrev = !e.isLocked),
6032                                t && t !== e.isLocked && (e.isEnd = !1),
6033                                t !== e.isLocked && e.emit(e.isLocked ? "lock" : "unlock");
6034                        },
6035                    },
6036                    classes: U,
6037                    images: K,
6038                },
6039                ee = {};
6040            class te {
6041                constructor(...e) {
6042                    let t, n;
6043                    if (
6044                        (1 === e.length && e[0].constructor && "Object" === Object.prototype.toString.call(e[0]).slice(8, -1) ? (n = e[0]) : ([t, n] = e), n || (n = {}), (n = _({}, n)), t && !n.el && (n.el = t), n.el && v(n.el).length > 1)
6045                    ) {
6046                        const e = [];
6047                        return (
6048                            v(n.el).each((t) => {
6049                                const i = _({}, n, { el: t });
6050                                e.push(new te(i));
6051                            }),
6052                            e
6053                        );
6054                    }
6055                    const i = this;
6056                    (i.__swiper__ = !0),
6057                        (i.support = k()),
6058                        (i.device = $({ userAgent: n.userAgent })),
6059                        (i.browser = L()),
6060                        (i.eventsListeners = {}),
6061                        (i.eventsAnyListeners = []),
6062                        (i.modules = [...i.__modules__]),
6063                        n.modules && Array.isArray(n.modules) && i.modules.push(...n.modules);
6064                    const s = {};
6065                    i.modules.forEach((e) => {
6066                        e({ swiper: i, extendParams: Q(n, s), on: i.on.bind(i), once: i.once.bind(i), off: i.off.bind(i), emit: i.emit.bind(i) });
6067                    });
6068                    const o = _({}, Z, s);
6069                    return (
6070                        (i.params = _({}, o, ee, n)),
6071                        (i.originalParams = _({}, i.params)),
6072                        (i.passedParams = _({}, n)),
6073                        i.params &&
6074                            i.params.on &&
6075                            Object.keys(i.params.on).forEach((e) => {
6076                                i.on(e, i.params.on[e]);
6077                            }),
6078                        i.params && i.params.onAny && i.onAny(i.params.onAny),
6079                        (i.$ = v),
6080                        Object.assign(i, {
6081                            enabled: i.params.enabled,
6082                            el: t,
6083                            classNames: [],
6084                            slides: v(),
6085                            slidesGrid: [],
6086                            snapGrid: [],
6087                            slidesSizesGrid: [],
6088                            isHorizontal: () => "horizontal" === i.params.direction,
6089                            isVertical: () => "vertical" === i.params.direction,
6090                            activeIndex: 0,
6091                            realIndex: 0,
6092                            isBeginning: !0,
6093                            isEnd: !1,
6094                            translate: 0,
6095                            previousTranslate: 0,
6096                            progress: 0,
6097                            velocity: 0,
6098                            animating: !1,
6099                            allowSlideNext: i.params.allowSlideNext,
6100                            allowSlidePrev: i.params.allowSlidePrev,
6101                            touchEvents: (function () {
6102                                const e = ["touchstart", "touchmove", "touchend", "touchcancel"],
6103                                    t = ["pointerdown", "pointermove", "pointerup"];
6104                                return (
6105                                    (i.touchEventsTouch = { start: e[0], move: e[1], end: e[2], cancel: e[3] }),
6106                                    (i.touchEventsDesktop = { start: t[0], move: t[1], end: t[2] }),
6107                                    i.support.touch || !i.params.simulateTouch ? i.touchEventsTouch : i.touchEventsDesktop
6108                                );
6109                            })(),
6110                            touchEventsData: {
6111                                isTouched: void 0,
6112                                isMoved: void 0,
6113                                allowTouchCallbacks: void 0,
6114                                touchStartTime: void 0,
6115                                isScrolling: void 0,
6116                                currentTranslate: void 0,
6117                                startTranslate: void 0,
6118                                allowThresholdMove: void 0,
6119                                focusableElements: i.params.focusableElements,
6120                                lastClickTime: y(),
6121                                clickTimeout: void 0,
6122                                velocities: [],
6123                                allowMomentumBounce: void 0,
6124                                isTouchEvent: void 0,
6125                                startMoving: void 0,
6126                            },
6127                            allowClick: !0,
6128                            allowTouchMove: i.params.allowTouchMove,
6129                            touches: { startX: 0, startY: 0, currentX: 0, currentY: 0, diff: 0 },
6130                            imagesToLoad: [],
6131                            imagesLoaded: 0,
6132                        }),
6133                        i.emit("_swiper"),
6134                        i.params.init && i.init(),
6135                        i
6136                    );
6137                }
6138                enable() {
6139                    const e = this;
6140                    e.enabled || ((e.enabled = !0), e.params.grabCursor && e.setGrabCursor(), e.emit("enable"));
6141                }
6142                disable() {
6143                    const e = this;
6144                    e.enabled && ((e.enabled = !1), e.params.grabCursor && e.unsetGrabCursor(), e.emit("disable"));
6145                }
6146                setProgress(e, t) {
6147                    const n = this;
6148                    e = Math.min(Math.max(e, 0), 1);
6149                    const i = n.minTranslate(),
6150                        s = (n.maxTranslate() - i) * e + i;
6151                    n.translateTo(s, void 0 === t ? 0 : t), n.updateActiveIndex(), n.updateSlidesClasses();
6152                }
6153                emitContainerClasses() {
6154                    const e = this;
6155                    if (!e.params._emitClasses || !e.el) return;
6156                    const t = e.el.className.split(" ").filter((t) => 0 === t.indexOf("swiper") || 0 === t.indexOf(e.params.containerModifierClass));
6157                    e.emit("_containerClasses", t.join(" "));
6158                }
6159                getSlideClasses(e) {
6160                    const t = this;
6161                    return t.destroyed
6162                        ? ""
6163                        : e.className
6164                              .split(" ")
6165                              .filter((e) => 0 === e.indexOf("swiper-slide") || 0 === e.indexOf(t.params.slideClass))
6166                              .join(" ");
6167                }
6168                emitSlidesClasses() {
6169                    const e = this;
6170                    if (!e.params._emitClasses || !e.el) return;
6171                    const t = [];
6172                    e.slides.each((n) => {
6173                        const i = e.getSlideClasses(n);
6174                        t.push({ slideEl: n, classNames: i }), e.emit("_slideClass", n, i);
6175                    }),
6176                        e.emit("_slideClasses", t);
6177                }
6178                slidesPerViewDynamic(e = "current", t = !1) {
6179                    const { params: n, slides: i, slidesGrid: s, slidesSizesGrid: o, size: r, activeIndex: a } = this;
6180                    let l = 1;
6181                    if (n.centeredSlides) {
6182                        let e,
6183                            t = i[a].swiperSlideSize;
6184                        for (let n = a + 1; n < i.length; n += 1) i[n] && !e && ((t += i[n].swiperSlideSize), (l += 1), t > r && (e = !0));
6185                        for (let n = a - 1; n >= 0; n -= 1) i[n] && !e && ((t += i[n].swiperSlideSize), (l += 1), t > r && (e = !0));
6186                    } else if ("current" === e)
6187                        for (let e = a + 1; e < i.length; e += 1) {
6188                            (t ? s[e] + o[e] - s[a] < r : s[e] - s[a] < r) && (l += 1);
6189                        }
6190                    else
6191                        for (let e = a - 1; e >= 0; e -= 1) {
6192                            s[a] - s[e] < r && (l += 1);
6193                        }
6194                    return l;
6195                }
6196                update() {
6197                    const e = this;
6198                    if (!e || e.destroyed) return;
6199                    const { snapGrid: t, params: n } = e;
6200                    function i() {
6201                        const t = e.rtlTranslate ? -1 * e.translate : e.translate,
6202                            n = Math.min(Math.max(t, e.maxTranslate()), e.minTranslate());
6203                        e.setTranslate(n), e.updateActiveIndex(), e.updateSlidesClasses();
6204                    }
6205                    let s;
6206                    n.breakpoints && e.setBreakpoint(),
6207                        e.updateSize(),
6208                        e.updateSlides(),
6209                        e.updateProgress(),
6210                        e.updateSlidesClasses(),
6211                        e.params.freeMode && e.params.freeMode.enabled
6212                            ? (i(), e.params.autoHeight && e.updateAutoHeight())
6213                            : ((s = ("auto" === e.params.slidesPerView || e.params.slidesPerView > 1) && e.isEnd && !e.params.centeredSlides ? e.slideTo(e.slides.length - 1, 0, !1, !0) : e.slideTo(e.activeIndex, 0, !1, !0)), s || i()),
6214                        n.watchOverflow && t !== e.snapGrid && e.checkOverflow(),
6215                        e.emit("update");
6216                }
6217                changeDirection(e, t = !0) {
6218                    const n = this,
6219                        i = n.params.direction;
6220                    return (
6221                        e || (e = "horizontal" === i ? "vertical" : "horizontal"),
6222                        e === i ||
6223                            ("horizontal" !== e && "vertical" !== e) ||
6224                            (n.$el.removeClass(`${n.params.containerModifierClass}${i}`).addClass(`${n.params.containerModifierClass}${e}`),
6225                            n.emitContainerClasses(),
6226                            (n.params.direction = e),
6227                            n.slides.each((t) => {
6228                                "vertical" === e ? (t.style.width = "") : (t.style.height = "");
6229                            }),
6230                            n.emit("changeDirection"),
6231                            t && n.update()),
6232                        n
6233                    );
6234                }
6235                changeLanguageDirection(e) {
6236                    const t = this;
6237                    (t.rtl && "rtl" === e) ||
6238                        (!t.rtl && "ltr" === e) ||
6239                        ((t.rtl = "rtl" === e),
6240                        (t.rtlTranslate = "horizontal" === t.params.direction && t.rtl),
6241                        t.rtl ? (t.$el.addClass(`${t.params.containerModifierClass}rtl`), (t.el.dir = "rtl")) : (t.$el.removeClass(`${t.params.containerModifierClass}rtl`), (t.el.dir = "ltr")),
6242                        t.update());
6243                }
6244                mount(e) {
6245                    const t = this;
6246                    if (t.mounted) return !0;
6247                    const n = v(e || t.params.el);
6248                    if (!(e = n[0])) return !1;
6249                    e.swiper = t;
6250                    const i = () => `.${(t.params.wrapperClass || "").trim().split(" ").join(".")}`;
6251                    let s = (() => {
6252                        if (e && e.shadowRoot && e.shadowRoot.querySelector) {
6253                            const t = v(e.shadowRoot.querySelector(i()));
6254                            return (t.children = (e) => n.children(e)), t;
6255                        }
6256                        return n.children ? n.children(i()) : v(n).children(i());
6257                    })();
6258                    if (0 === s.length && t.params.createElements) {
6259                        const e = a().createElement("div");
6260                        (s = v(e)),
6261                            (e.className = t.params.wrapperClass),
6262                            n.append(e),
6263                            n.children(`.${t.params.slideClass}`).each((e) => {
6264                                s.append(e);
6265                            });
6266                    }
6267                    return (
6268                        Object.assign(t, {
6269                            $el: n,
6270                            el: e,
6271                            $wrapperEl: s,
6272                            wrapperEl: s[0],
6273                            mounted: !0,
6274                            rtl: "rtl" === e.dir.toLowerCase() || "rtl" === n.css("direction"),
6275                            rtlTranslate: "horizontal" === t.params.direction && ("rtl" === e.dir.toLowerCase() || "rtl" === n.css("direction")),
6276                            wrongRTL: "-webkit-box" === s.css("display"),
6277                        }),
6278                        !0
6279                    );
6280                }
6281                init(e) {
6282                    const t = this;
6283                    if (t.initialized) return t;
6284                    return (
6285                        !1 === t.mount(e) ||
6286                            (t.emit("beforeInit"),
6287                            t.params.breakpoints && t.setBreakpoint(),
6288                            t.addClasses(),
6289                            t.params.loop && t.loopCreate(),
6290                            t.updateSize(),
6291                            t.updateSlides(),
6292                            t.params.watchOverflow && t.checkOverflow(),
6293                            t.params.grabCursor && t.enabled && t.setGrabCursor(
6293),
6294                            t.params.preloadImages && t.preloadImages(),
6295                            t.params.loop ? t.slideTo(t.params.initialSlide + t.loopedSlides, 0, t.params.runCallbacksOnInit, !1, !0) : t.slideTo(t.params.initialSlide, 0, t.params.runCallbacksOnInit, !1, !0),
6296                            t.attachEvents(),
6297                            (t.initialized = !0),
6298                            t.emit("init"),
6299                            t.emit("afterInit")),
6300                        t
6301                    );
6302                }
6303                destroy(e = !0, t = !0) {
6304                    const n = this,
6305                        { params: i, $el: s, $wrapperEl: o, slides: r } = n;
6306                    return (
6307                        void 0 === n.params ||
6308                            n.destroyed ||
6309                            (n.emit("beforeDestroy"),
6310                            (n.initialized = !1),
6311                            n.detachEvents(),
6312                            i.loop && n.loopDestroy(),
6313                            t &&
6314                                (n.removeClasses(),
6315                                s.removeAttr("style"),
6316                                o.removeAttr("style"),
6317                                r && r.length && r.removeClass([i.slideVisibleClass, i.slideActiveClass, i.slideNextClass, i.slidePrevClass].join(" ")).removeAttr("style").removeAttr("data-swiper-slide-index")),
6318                            n.emit("destroy"),
6319                            Object.keys(n.eventsListeners).forEach((e) => {
6320                                n.off(e);
6321                            }),
6322                            !1 !== e &&
6323                                ((n.$el[0].swiper = null),
6324                                (function (e) {
6325                                    const t = e;
6326                                    Object.keys(t).forEach((e) => {
6327                                        try {
6328                                            t[e] = null;
6329                                        } catch (e) {}
6330                                        try {
6331                                            delete t[e];
6332                                        } catch (e) {}
6333                                    });
6334                                })(n)),
6335                            (n.destroyed = !0)),
6336                        null
6337                    );
6338                }
6339                static extendDefaults(e) {
6340                    _(ee, e);
6341                }
6342                static get extendedDefaults() {
6343                    return ee;
6344                }
6345                static get defaults() {
6346                    return Z;
6347                }
6348                static installModule(e) {
6349                    te.prototype.__modules__ || (te.prototype.__modules__ = []);
6350                    const t = te.prototype.__modules__;
6351                    "function" == typeof e && t.indexOf(e) < 0 && t.push(e);
6352                }
6353                static use(e) {
6354                    return Array.isArray(e) ? (e.forEach((e) => te.installModule(e)), te) : (te.installModule(e), te);
6355                }
6356            }
6357            Object.keys(J).forEach((e) => {
6358                Object.keys(J[e]).forEach((t) => {
6359                    te.prototype[t] = J[e][t];
6360                });
6361            }),
6362                te.use([
6363                    function ({ swiper: e, on: t, emit: n }) {
6364                        const i = c();
6365                        let s = null,
6366                            o = null;
6367                        const r = () => {
6368                                e && !e.destroyed && e.initialized && (n("beforeResize"), n("resize"));
6369                            },
6370                            a = () => {
6371                                e && !e.destroyed && e.initialized && n("orientationchange");
6372                            };
6373                        t("init", () => {
6374                            e.params.resizeObserver && void 0 !== i.ResizeObserver
6375                                ? e &&
6376                                  !e.destroyed &&
6377                                  e.initialized &&
6378                                  ((s = new ResizeObserver((t) => {
6379                                      o = i.requestAnimationFrame(() => {
6380                                          const { width: n, height: i } = e;
6381                                          let s = n,
6382                                              o = i;
6383                                          t.forEach(({ contentBoxSize: t, contentRect: n, target: i }) => {
6384                                              (i && i !== e.el) || ((s = n ? n.width : (t[0] || t).inlineSize), (o = n ? n.height : (t[0] || t).blockSize));
6385                                          }),
6386                                              (s === n && o === i) || r();
6387                                      });
6388                                  })),
6389                                  s.observe(e.el))
6390                                : (i.addEventListener("resize", r), i.addEventListener("orientationchange", a));
6391                        }),
6392                            t("destroy", () => {
6393                                o && i.cancelAnimationFrame(o), s && s.unobserve && e.el && (s.unobserve(e.el), (s = null)), i.removeEventListener("resize", r), i.removeEventListener("orientationchange", a);
6394                            });
6395                    },
6396                    function ({ swiper: e, extendParams: t, on: n, emit: i }) {
6397                        const s = [],
6398                            o = c(),
6399                            r = (e, t = {}) => {
6400                                const n = new (o.MutationObserver || o.WebkitMutationObserver)((e) => {
6401                                    if (1 === e.length) return void i("observerUpdate", e[0]);
6402                                    const t = function () {
6403                                        i("observerUpdate", e[0]);
6404                                    };
6405                                    o.requestAnimationFrame ? o.requestAnimationFrame(t) : o.setTimeout(t, 0);
6406                                });
6407                                n.observe(e, { attributes: void 0 === t.attributes || t.attributes, childList: void 0 === t.childList || t.childList, characterData: void 0 === t.characterData || t.characterData }), s.push(n);
6408                            };
6409                        t({ observer: !1, observeParents: !1, observeSlideChildren: !1 }),
6410                            n("init", () => {
6411                                if (e.params.observer) {
6412                                    if (e.params.observeParents) {
6413                                        const t = e.$el.parents();
6414                                        for (let e = 0; e < t.length; e += 1) r(t[e]);
6415                                    }
6416                                    r(e.$el[0], { childList: e.params.observeSlideChildren }), r(e.$wrapperEl[0], { attributes: !1 });
6417                                }
6418                            }),
6419                            n("destroy", () => {
6420                                s.forEach((e) => {
6421                                    e.disconnect();
6422                                }),
6423                                    s.splice(0, s.length);
6424                            });
6425                    },
6426                ]);
6427            const ne = te;
6428            function ie(e, t, n, i) {
6429                const s = a();
6430                return (
6431                    e.params.createElements &&
6432                        Object.keys(i).forEach((o) => {
6433                            if (!n[o] && !0 === n.auto) {
6434                                let r = e.$el.children(`.${i[o]}`)[0];
6435                                r || ((r = s.createElement("div")), (r.className = i[o]), e.$el.append(r)), (n[o] = r), (t[o] = r);
6436                            }
6437                        }),
6438                    n
6439                );
6440            }
6441            function se(e = "") {
6442                return `.${e
6443                    .trim()
6444                    .replace(/([\.:!\/])/g, "\\$1")
6445                    .replace(/ /g, ".")}`;
6446            }
6447            const oe = (e) => "object" == typeof e && null !== e && e.constructor === Object && "[object Object]" === Object.prototype.toString.call(e),
6448                re = (...e) => {
6449                    let t = !1;
6450                    "boolean" == typeof e[0] && (t = e.shift());
6451                    let n = e[0];
6452                    if (!n || "object" != typeof n) throw new Error("extendee must be an object");
6453                    const i = e.slice(1),
6454                        s = i.length;
6455                    for (let e = 0; e < s; e++) {
6456                        const s = i[e];
6457                        for (let e in s)
6458                            if (s.hasOwnProperty(e)) {
6459                                const i = s[e];
6460                                if (t && (Array.isArray(i) || oe(i))) {
6461                                    const t = Array.isArray(i) ? [] : {};
6462                                    n[e] = re(!0, n.hasOwnProperty(e) ? n[e] : t, i);
6463                                } else n[e] = i;
6464                            }
6465                    }
6466                    return n;
6467                },
6468                ae = (e, t = 1e4) => ((e = parseFloat(e) || 0), Math.round((e + Number.EPSILON) * t) / t),
6469                le = function (e) {
6470                    return (
6471                        !!(e && "object" == typeof e && e instanceof Element && e !== document.body) &&
6472                        !e.__Panzoom &&
6473                        ((function (e) {
6474                            const t = getComputedStyle(e)["overflow-y"],
6475                                n = getComputedStyle(e)["overflow-x"],
6476                                i = ("scroll" === t || "auto" === t) && Math.abs(e.scrollHeight - e.clientHeight) > 1,
6477                                s = ("scroll" === n || "auto" === n) && Math.abs(e.scrollWidth - e.clientWidth) > 1;
6478                            return i || s;
6479                        })(e)
6480                            ? e
6481                            : le(e.parentNode))
6482                    );
6483                },
6484                ce =
6485                    ("undefined" != typeof window && window.ResizeObserver) ||
6486                    class {
6487                        constructor(e) {
6488                            (this.observables = []), (this.boundCheck = this.check.bind(this)), this.boundCheck(), (this.callback = e);
6489                        }
6490                        observe(e) {
6491                            if (this.observables.some((t) => t.el === e)) return;
6492                            const t = { el: e, size: { height: e.clientHeight, width: e.clientWidth } };
6493                            this.observables.push(t);
6494                        }
6495                        unobserve(e) {
6496                            this.observables = this.observables.filter((t) => t.el !== e);
6497                        }
6498                        disconnect() {
6499                            this.observables = [];
6500                        }
6501                        check() {
6502                            const e = this.observables
6503                                .filter((e) => {
6504                                    const t = e.el.clientHeight,
6505                                        n = e.el.clientWidth;
6506                                    if (e.size.height !== t || e.size.width !== n) return (e.size.height = t), (e.size.width = n), !0;
6507                                })
6508                                .map((e) => e.el);
6509                            e.length > 0 && this.callback(e), window.requestAnimationFrame(this.boundCheck);
6510                        }
6511                    };
6512            class de {
6513                constructor(e) {
6514                    (this.id = self.Touch && e instanceof Touch ? e.identifier : -1), (this.pageX = e.pageX), (this.pageY = e.pageY), (this.clientX = e.clientX), (this.clientY = e.clientY);
6515                }
6516            }
6517            const he = (e, t) => (t ? Math.sqrt((t.clientX - e.clientX) ** 2 + (t.clientY - e.clientY) ** 2) : 0),
6518                ue = (e, t) => (t ? { clientX: (e.clientX + t.clientX) / 2, clientY: (e.clientY + t.clientY) / 2 } : e);
6519            class pe {
6520                constructor(e, { start: t = () => !0, move: n = () => {}, end: i = () => {} } = {}) {
6521                    (this._element = e),
6522                        (this.startPointers = []),
6523                        (this.currentPointers = []),
6524                        (this._pointerStart = (e) => {
6525                            if (e.buttons > 0 && 0 !== e.button) return;
6526                            const t = new de(e);
6527                            this.currentPointers.some((e) => e.id === t.id) || (this._triggerPointerStart(t, e) && (window.addEventListener("mousemove", this._move), window.addEventListener("mouseup", this._pointerEnd)));
6528                        }),
6529                        (this._touchStart = (e) => {
6530                            for (const t of Array.from(e.changedTouches || [])) this._triggerPointerStart(new de(t), e);
6531                        }),
6532                        (this._move = (e) => {
6533                            const t = this.currentPointers.slice(),
6534                                n = ((e) => "changedTouches" in e)(e) ? Array.from(e.changedTouches).map((e) => new de(e)) : [new de(e)];
6535                            for (const e of n) {
6536                                const t = this.currentPointers.findIndex((t) => t.id === e.id);
6537                                t < 0 || (this.currentPointers[t] = e);
6538                            }
6539                            this._moveCallback(t, this.currentPointers.slice(), e);
6540                        }),
6541                        (this._triggerPointerEnd = (e, t) => {
6542                            const n = this.currentPointers.findIndex((t) => t.id === e.id);
6543                            return !(n < 0 || (this.currentPointers.splice(n, 1), this.startPointers.splice(n, 1), this._endCallback(e, t), 0));
6544                        }),
6545                        (this._pointerEnd = (e) => {
6546                            (e.buttons > 0 && 0 !== e.button) ||
6547                                (this._triggerPointerEnd(new de(e), e) && (window.removeEventListener("mousemove", this._move, { passive: !1 }), window.removeEventListener("mouseup", this._pointerEnd, { passive: !1 })));
6548                        }),
6549                        (this._touchEnd = (e) => {
6550                            for (const t of Array.from(e.changedTouches || [])) this._triggerPointerEnd(new de(t), e);
6551                        }),
6552                        (this._startCallback = t),
6553                        (this._moveCallback = n),
6554                        (this._endCallback = i),
6555                        this._element.addEventListener("mousedown", this._pointerStart, { passive: !1 }),
6556                        this._element.addEventListener("touchstart", this._touchStart, { passive: !1 }),
6557                        this._element.addEventListener("touchmove", this._move, { passive: !1 }),
6558                        this._element.addEventListener("touchend", this._touchEnd),
6559                        this._element.addEventListener("touchcancel", this._touchEnd);
6560                }
6561                stop() {
6562                    this._element.removeEventListener("mousedown", this._pointerStart, { passive: !1 }),
6563                        this._element.removeEventListener("touchstart", this._touchStart, { passive: !1 }),
6564                        this._element.removeEventListener("touchmove", this._move, { passive: !1 }),
6565                        this._element.removeEventListener("touchend", this._touchEnd),
6566                        this._element.removeEventListener("touchcancel", this._touchEnd),
6567                        window.removeEventListener("mousemove", this._move),
6568                        window.removeEventListener("mouseup", this._pointerEnd);
6569                }
6570                _triggerPointerStart(e, t) {
6571                    return !!this._startCallback(e, t) && (this.currentPointers.push(e), this.startPointers.push(e), !0);
6572                }
6573            }
6574            class fe {
6575                constructor(e = {}) {
6576                    (this.options = re(!0, {}, e)), (this.plugins = []), (this.events = {});
6577                    for (const e of ["on", "once"]) for (const t of Object.entries(this.options[e] || {})) this[e](...t);
6578                }
6579                option(e, t, ...n) {
6580                    let i =
6581                        ((s = e = String(e)),
6582                        (o = this.options),
6583                        s.split(".").reduce(function (e, t) {
6584                            return e && e[t];
6585                        }, o));
6586                    var s, o;
6587                    return "function" == typeof i && (i = i.call(this, this, ...n)), void 0 === i ? t : i;
6588                }
6589                localize(e, t = []) {
6590                    return (e = String(e).replace(/\{\{(\w+).?(\w+)?\}\}/g, (e, n, i) => {
6591                        let s = "";
6592                        i ? (s = this.option(`${n[0] + n.toLowerCase().substring(1)}.l10n.${i}`)) : n && (s = this.option(`l10n.${n}`)), s || (s = e);
6593                        for (let e = 0; e < t.length; e++) s = s.split(t[e][0]).join(t[e][1]);
6594                        return s;
6595                    })).replace(/\{\{(.*)\}\}/, (e, t) => t);
6596                }
6597                on(e, t) {
6598                    if (oe(e)) {
6599                        for (const t of Object.entries(e)) this.on(...t);
6600                        return this;
6601                    }
6602                    return (
6603                        String(e)
6604                            .split(" ")
6605                            .forEach((e) => {
6606                                const n = (this.events[e] = this.events[e] || []);
6607                                -1 == n.indexOf(t) && n.push(t);
6608                            }),
6609                        this
6610                    );
6611                }
6612                once(e, t) {
6613                    if (oe(e)) {
6614                        for (const t of Object.entries(e)) this.once(...t);
6615                        return this;
6616                    }
6617                    return (
6618                        String(e)
6619                            .split(" ")
6620                            .forEach((e) => {
6621                                const n = (...i) => {
6622                                    this.off(e, n), t.call(this, this, ...i);
6623                                };
6624                                (n._ = t), this.on(e, n);
6625                            }),
6626                        this
6627                    );
6628                }
6629                off(e, t) {
6630                    if (!oe(e))
6631                        return (
6632                            e.split(" ").forEach((e) => {
6633                                const n = this.events[e];
6634                                if (!n || !n.length) return this;
6635                                let i = -1;
6636                                for (let e = 0, s = n.length; e < s; e++) {
6637                                    const s = n[e];
6638                                    if (s && (s === t || s._ === t)) {
6639                                        i = e;
6640                                        break;
6641                                    }
6642                                }
6643                                -1 != i && n.splice(i, 1);
6644                            }),
6645                            this
6646                        );
6647                    for (const t of Object.entries(e)) this.off(...t);
6648                }
6649                trigger(e, ...t) {
6650                    for (const n of [...(this.events[e] || [])].slice()) if (n && !1 === n.call(this, this, ...t)) return !1;
6651                    for (const n of [...(this.events["*"] || [])].slice()) if (n && !1 === n.call(this, e, this, ...t)) return !1;
6652                    return !0;
6653                }
6654                attachPlugins(e) {
6655                    const t = {};
6656                    for (const [n, i] of Object.entries(e || {})) !1 === this.options[n] || this.plugins[n] || ((this.options[n] = re({}, i.defaults || {}, this.options[n])), (t[n] = new i(this)));
6657                    for (const [e, n] of Object.entries(t)) n.attach(this);
6658                    return (this.plugins = Object.assign({}, this.plugins, t)), this;
6659                }
6660                detachPlugins() {
6661                    for (const e in this.plugins) {
6662                        let t;
6663                        (t = this.plugins[e]) && "function" == typeof t.detach && t.detach(this);
6664                    }
6665                    return (this.plugins = {}), this;
6666                }
6667            }
6668            const ge = {
6669                touch: !0,
6670                zoom: !0,
6671                pinchToZoom: !0,
6672                panOnlyZoomed: !1,
6673                lockAxis: !1,
6674                friction: 0.64,
6675                decelFriction: 0.88,
6676                zoomFriction: 0.74,
6677                bounceForce: 0.2,
6678                baseScale: 1,
6679                minScale: 1,
6680                maxScale: 2,
6681                step: 0.5,
6682                textSelection: !1,
6683                click: "toggleZoom",
6684                wheel: "zoom",
6685                wheelFactor: 42,
6686                wheelLimit: 5,
6687                draggableClass: "is-draggable",
6688                draggingClass: "is-dragging",
6689                ratio: 1,
6690            };
6691            class me extends fe {
6692                constructor(e, t = {}) {
6693                    super(re(!0, {}, ge, t)), (this.state = "init"), (this.$container = e);
6694                    for (const e of ["onLoad", "onWheel", "onClick"]) this[e] = this[e].bind(this);
6695                    this.initLayout(),
6696                        this.resetValues(),
6697                        this.attachPlugins(me.Plugins),
6698                        this.trigger("init"),
6699                        this.updateMetrics(),
6700                        this.attachEvents(),
6701                        this.trigger("ready"),
6702                        !1 === this.option("centerOnStart") ? (this.state = "ready") : this.panTo({ friction: 0 }),
6703                        (e.__Panzoom = this);
6704                }
6705                initLayout() {
6706                    const e = this.$container;
6707                    if (!(e instanceof HTMLElement)) throw new Error("Panzoom: Container not found");
6708                    const t = this.option("content") || e.querySelector(".panzoom__content");
6709                    if (!t) throw new Error("Panzoom: Content not found");
6710                    this.$content = t;
6711                    let n = this.option("viewport") || e.querySelector(".panzoom__viewport");
6712                    n || !1 === this.option("wrapInner") || ((n = document.createElement("div")), n.classList.add("panzoom__viewport"), n.append(...e.childNodes), e.appendChild(n)), (this.$viewport = n || t.parentNode);
6713                }
6714                resetValues() {
6715                    (this.updateRate = this.option("updateRate", /iPhone|iPad|iPod|Android/i.test(navigator.userAgent) ? 250 : 24)),
6716                        (this.container = { width: 0, height: 0 }),
6717                        (this.viewport = { width: 0, height: 0 }),
6718                        (this.content = { origWidth: 0, origHeight: 0, width: 0, height: 0, x: this.option("x", 0), y: this.option("y", 0), scale: this.option("baseScale") }),
6719                        (this.transform = { x: 0, y: 0, scale: 1 }),
6720                        this.resetDragPosition();
6721                }
6722                onLoad(e) {
6723                    this.updateMetrics(), this.panTo({ scale: this.option("baseScale"), friction: 0 }), this.trigger("load", e);
6724                }
6725                onClick(e) {
6726                    if (e.defaultPrevented) return;
6727                    if (document.activeEle
6727ment && document.activeElement.closest("[contenteditable]")) return;
6728                    if (this.option("textSelection") && window.getSelection().toString().length && (!e.target || !e.target.hasAttribute("data-fancybox-close"))) return void e.stopPropagation();
6729                    const t = this.$content.getClientRects()[0];
6730                    if ("ready" !== this.state && (this.dragPosition.midPoint || Math.abs(t.top - this.dragStart.rect.top) > 1 || Math.abs(t.left - this.dragStart.rect.left) > 1)) return e.preventDefault(), void e.stopPropagation();
6731                    !1 !== this.trigger("click", e) && this.option("zoom") && "toggleZoom" === this.option("click") && (e.preventDefault(), e.stopPropagation(), this.zoomWithClick(e));
6732                }
6733                onWheel(e) {
6734                    !1 !== this.trigger("wheel", e) && this.option("zoom") && this.option("wheel") && this.zoomWithWheel(e);
6735                }
6736                zoomWithWheel(e) {
6737                    void 0 === this.changedDelta && (this.changedDelta = 0);
6738                    const t = Math.max(-1, Math.min(1, -e.deltaY || -e.deltaX || e.wheelDelta || -e.detail)),
6739                        n = this.content.scale;
6740                    let i = (n * (100 + t * this.option("wheelFactor"))) / 100;
6741                    if (
6742                        ((t < 0 && Math.abs(n - this.option("minScale")) < 0.01) || (t > 0 && Math.abs(n - this.option("maxScale")) < 0.01)
6743                            ? ((this.changedDelta += Math.abs(t)), (i = n))
6744                            : ((this.changedDelta = 0), (i = Math.max(Math.min(i, this.option("maxScale")), this.option("minScale")))),
6745                        this.changedDelta > this.option("wheelLimit"))
6746                    )
6747                        return;
6748                    if ((e.preventDefault(), i === n)) return;
6749                    const s = this.$content.getBoundingClientRect(),
6750                        o = e.clientX - s.left,
6751                        r = e.clientY - s.top;
6752                    this.zoomTo(i, { x: o, y: r });
6753                }
6754                zoomWithClick(e) {
6755                    const t = this.$content.getClientRects()[0],
6756                        n = e.clientX - t.left,
6757                        i = e.clientY - t.top;
6758                    this.toggleZoom({ x: n, y: i });
6759                }
6760                attachEvents() {
6761                    this.$content.addEventListener("load", this.onLoad),
6762                        this.$container.addEventListener("wheel", this.onWheel, { passive: !1 }),
6763                        this.$container.addEventListener("click", this.onClick, { passive: !1 }),
6764                        this.initObserver();
6765                    const e = new pe(this.$container, {
6766                        start: (t, n) => {
6767                            if (!this.option("touch")) return !1;
6768                            if (this.velocity.scale < 0) return !1;
6769                            const i = n.composedPath()[0];
6770                            if (!e.currentPointers.length) {
6771                                if (-1 !== ["BUTTON", "TEXTAREA", "OPTION", "INPUT", "SELECT", "VIDEO"].indexOf(i.nodeName)) return !1;
6772                                if (
6773                                    this.option("textSelection") &&
6774                                    ((e, t, n) => {
6775                                        const i = e.childNodes,
6776                                            s = document.createRange();
6777                                        for (let e = 0; e < i.length; e++) {
6778                                            const o = i[e];
6779                                            if (o.nodeType !== Node.TEXT_NODE) continue;
6780                                            s.selectNodeContents(o);
6781                                            const r = s.getBoundingClientRect();
6782                                            if (t >= r.left && n >= r.top && t <= r.right && n <= r.bottom) return o;
6783                                        }
6784                                        return !1;
6785                                    })(i, t.clientX, t.clientY)
6786                                )
6787                                    return !1;
6788                            }
6789                            return (
6790                                !le(i) &&
6791                                !1 !== this.trigger("touchStart", n) &&
6792                                ("mousedown" === n.type && n.preventDefault(), (this.state = "pointerdown"), this.resetDragPosition(), (this.dragPosition.midPoint = null), (this.dragPosition.time = Date.now()), !0)
6793                            );
6794                        },
6795                        move: (t, n, i) => {
6796                            if ("pointerdown" !== this.state) return;
6797                            if (!1 === this.trigger("touchMove", i)) return void i.preventDefault();
6798                            if (n.length < 2 && !0 === this.option("panOnlyZoomed") && this.content.width <= this.viewport.width && this.content.height <= this.viewport.height && this.transform.scale <= this.option("baseScale")) return;
6799                            if (n.length > 1 && (!this.option("zoom") || !1 === this.option("pinchToZoom"))) return;
6800                            const s = ue(t[0], t[1]),
6801                                o = ue(n[0], n[1]),
6802                                r = o.clientX - s.clientX,
6803                                a = o.clientY - s.clientY,
6804                                l = he(t[0], t[1]),
6805                                c = he(n[0], n[1]),
6806                                d = l && c ? c / l : 1;
6807                            (this.dragOffset.x += r), (this.dragOffset.y += a), (this.dragOffset.scale *= d), (this.dragOffset.time = Date.now() - this.dragPosition.time);
6808                            const h = 1 === this.dragStart.scale && this.option("lockAxis");
6809                            if (h && !this.lockAxis) {
6810                                if (Math.abs(this.dragOffset.x) < 6 && Math.abs(this.dragOffset.y) < 6) return void i.preventDefault();
6811                                const e = Math.abs((180 * Math.atan2(this.dragOffset.y, this.dragOffset.x)) / Math.PI);
6812                                this.lockAxis = e > 45 && e < 135 ? "y" : "x";
6813                            }
6814                            if ("xy" === h || "y" !== this.lockAxis) {
6815                                if (
6816                                    (i.preventDefault(),
6817                                    i.stopPropagation(),
6818                                    i.stopImmediatePropagation(),
6819                                    this.lockAxis && (this.dragOffset["x" === this.lockAxis ? "y" : "x"] = 0),
6820                                    this.$container.classList.add(this.option("draggingClass")),
6821                                    (this.transform.scale === this.option("baseScale") && "y" === this.lockAxis) || (this.dragPosition.x = this.dragStart.x + this.dragOffset.x),
6822                                    (this.transform.scale === this.option("baseScale") && "x" === this.lockAxis) || (this.dragPosition.y = this.dragStart.y + this.dragOffset.y),
6823                                    (this.dragPosition.scale = this.dragStart.scale * this.dragOffset.scale),
6824                                    n.length > 1)
6825                                ) {
6826                                    const t = ue(e.startPointers[0], e.startPointers[1]),
6827                                        n = t.clientX - this.dragStart.rect.x,
6828                                        i = t.clientY - this.dragStart.rect.y,
6829                                        { deltaX: s, deltaY: r } = this.getZoomDelta(this.content.scale * this.dragOffset.scale, n, i);
6830                                    (this.dragPosition.x -= s), (this.dragPosition.y -= r), (this.dragPosition.midPoint = o);
6831                                } else this.setDragResistance();
6832                                (this.transform = { x: this.dragPosition.x, y: this.dragPosition.y, scale: this.dragPosition.scale }), this.startAnimation();
6833                            }
6834                        },
6835                        end: (t, n) => {
6836                            if ("pointerdown" !== this.state) return;
6837                            if (((this._dragOffset = { ...this.dragOffset }), e.currentPointers.length)) return void this.resetDragPosition();
6838                            if (((this.state = "decel"), (this.friction = this.option("decelFriction")), this.recalculateTransform(), this.$container.classList.remove(this.option("draggingClass")), !1 === this.trigger("touchEnd", n)))
6839                                return;
6840                            if ("decel" !== this.state) return;
6841                            const i = this.option("minScale");
6842                            if (this.transform.scale < i) return void this.zoomTo(i, { friction: 0.64 });
6843                            const s = this.option("maxScale");
6844                            if (this.transform.scale - s > 0.01) {
6845                                const e = this.dragPosition.midPoint || t,
6846                                    n = this.$content.getClientRects()[0];
6847                                this.zoomTo(s, { friction: 0.64, x: e.clientX - n.left, y: e.clientY - n.top });
6848                            }
6849                        },
6850                    });
6851                    this.pointerTracker = e;
6852                }
6853                initObserver() {
6854                    this.resizeObserver ||
6855                        ((this.resizeObserver = new ce(() => {
6856                            this.updateTimer ||
6857                                (this.updateTimer = setTimeout(() => {
6858                                    const e = this.$container.getBoundingClientRect();
6859                                    e.width && e.height
6860                                        ? ((Math.abs(e.width - this.container.width) > 1 || Math.abs(e.height - this.container.height) > 1) &&
6861                                              (this.isAnimating() && this.endAnimation(!0), this.updateMetrics(), this.panTo({ x: this.content.x, y: this.content.y, scale: this.option("baseScale"), friction: 0 })),
6862                                          (this.updateTimer = null))
6863                                        : (this.updateTimer = null);
6864                                }, this.updateRate));
6865                        })),
6866                        this.resizeObserver.observe(this.$container));
6867                }
6868                resetDragPosition() {
6869                    (this.lockAxis = null), (this.friction = this.option("friction")), (this.velocity = { x: 0, y: 0, scale: 0 });
6870                    const { x: e, y: t, scale: n } = this.content;
6871                    (this.dragStart = { rect: this.$content.getBoundingClientRect(), x: e, y: t, scale: n }), (this.dragPosition = { ...this.dragPosition, x: e, y: t, scale: n }), (this.dragOffset = { x: 0, y: 0, scale: 1, time: 0 });
6872                }
6873                updateMetrics(e) {
6874                    !0 !== e && this.trigger("beforeUpdate");
6875                    const t = this.$container,
6876                        n = this.$content,
6877                        i = this.$viewport,
6878                        s = n instanceof HTMLImageElement,
6879                        o = this.option("zoom"),
6880                        r = this.option("resizeParent", o);
6881                    let a = this.option("width"),
6882                        l = this.option("height"),
6883                        c = a || ((d = n), Math.max(parseFloat(d.naturalWi
6883dth || 0), parseFloat((d.width && d.width.baseVal && d.width.baseVal.value) || 0), parseFloat(d.offsetWidth || 0), parseFloat(d.scrollWidth || 0)));
6884                    var d;
6885                    let h = l || ((e) => Math.max(parseFloat(e.naturalHeight || 0), parseFloat((e.height && e.height.baseVal && e.height.baseVal.value) || 0), parseFloat(e.offsetHeight || 0), parseFloat(e.scrollHeight || 0)))(n);
6886                    Object.assign(n.style, { width: a ? `${a}px` : "", height: l ? `${l}px` : "", maxWidth: "", maxHeight: "" }), r && Object.assign(i.style, { width: "", height: "" });
6887                    const u = this.option("ratio");
6888                    (c = ae(c * u)), (h = ae(h * u)), (a = c), (l = h);
6889                    const p = n.getBoundingClientRect(),
6890                        f = i.getBoundingClientRect(),
6891                        g = i == t ? f : t.getBoundingClientRect();
6892                    let m = Math.max(i.offsetWidth, ae(f.width)),
6893                        v = Math.max(i.offsetHeight, ae(f.height)),
6894                        b = window.getComputedStyle(i);
6895                    if (((m -= parseFloat(b.paddingLeft) + parseFloat(b.paddingRight)), (v -= parseFloat(b.paddingTop) + parseFloat(b.paddingBottom)), (this.viewport.width = m), (this.viewport.height = v), o)) {
6896                        if (Math.abs(c - p.width) > 0.1 || Math.abs(h - p.height) > 0.1) {
6897                            const e = ((e, t, n, i) => {
6898                                const s = Math.min(n / e || 0, i / t);
6899                                return { width: e * s || 0, height: t * s || 0 };
6900                            })(c, h, Math.min(c, p.width), Math.min(h, p.height));
6901                            (a = ae(e.width)), (l = ae(e.height));
6902                        }
6903                        Object.assign(n.style, { width: `${a}px`, height: `${l}px`, transform: "" });
6904                    }
6905                    if ((r && (Object.assign(i.style, { width: `${a}px`, height: `${l}px` }), (this.viewport = { ...this.viewport, width: a, height: l })), s && o && "function" != typeof this.options.maxScale)) {
6906                        const e = this.option("maxScale");
6907                        this.options.maxScale = function () {
6908                            return this.content.origWidth > 0 && this.content.fitWidth > 0 ? this.content.origWidth / this.content.fitWidth : e;
6909                        };
6910                    }
6911                    (this.content = { ...this.content, origWidth: c, origHeight: h, fitWidth: a, fitHeight: l, width: a, height: l, scale: 1, isZoomable: o }),
6912                        (this.container = { width: g.width, height: g.height }),
6913                        !0 !== e && this.trigger("afterUpdate");
6914                }
6915                zoomIn(e) {
6916                    this.zoomTo(this.content.scale + (e || this.option("step")));
6917                }
6918                zoomOut(e) {
6919                    this.zoomTo(this.content.scale - (e || this.option("step")));
6920                }
6921                toggleZoom(e = {}) {
6922                    const t = this.option("maxScale"),
6923                        n = this.option("baseScale"),
6924                        i = this.content.scale > n + 0.5 * (t - n) ? n : t;
6925                    this.zoomTo(i, e);
6926                }
6927                zoomTo(e = this.option("baseScale"), { x: t = null, y: n = null } = {}) {
6928                    e = Math.max(Math.min(e, this.option("maxScale")), this.option("minScale"));
6929                    const i = ae(this.content.scale / (this.content.width / this.content.fitWidth), 1e7);
6930                    null === t && (t = this.content.width * i * 0.5), null === n && (n = this.content.height * i * 0.5);
6931                    const { deltaX: s, deltaY: o } = this.getZoomDelta(e, t, n);
6932                    (t = this.content.x - s), (n = this.content.y - o), this.panTo({ x: t, y: n, scale: e, friction: this.option("zoomFriction") });
6933                }
6934                getZoomDelta(e, t = 0, n = 0) {
6935                    const i = this.content.fitWidth * this.content.scale,
6936                        s = this.content.fitHeight * this.content.scale,
6937                        o = t > 0 && i ? t / i : 0,
6938                        r = n > 0 && s ? n / s : 0;
6939                    return { deltaX: (this.content.fitWidth * e - i) * o, deltaY: (this.content.fitHeight * e - s) * r };
6940                }
6941                panTo({ x: e = this.content.x, y: t = this.content.y, scale: n, friction: i = this.option("friction"), ignoreBounds: s = !1 } = {}) {
6942                    if (((n = n || this.content.scale || 1), !s)) {
6943                        const { boundX: i, boundY: s } = this.getBounds(n);
6944                        i && (e = Math.max(Math.min(e, i.to), i.from)), s && (t = Math.max(Math.min(t, s.to), s.from));
6945                    }
6946                    (this.friction = i),
6947                        (this.transform = { ...this.transform, x: e, y: t, scale: n }),
6948                        i
6949                            ? ((this.state = "panning"),
6950                              (this.velocity = { x: (1 / this.friction - 1) * (e - this.content.x), y: (1 / this.friction - 1) * (t - this.content.y), scale: (1 / this.friction - 1) * (n - this.content.scale) }),
6951                              this.startAnimation())
6952                            : this.endAnimation();
6953                }
6954                startAnimation() {
6955                    this.rAF ? cancelAnimationFrame(this.rAF) : this.trigger("startAnimation"), (this.rAF = requestAnimationFrame(() => this.animate()));
6956                }
6957                animate() {
6958                    if (
6959                        (this.setEdgeForce(),
6960                        this.setDragForce(),
6961                        (this.velocity.x *= this.friction),
6962                        (this.velocity.y *= this.friction),
6963                        (this.velocity.scale *= this.friction),
6964                        (this.content.x += this.velocity.x),
6965                        (this.content.y += this.velocity.y),
6966                        (this.content.scale += this.velocity.scale),
6967                        this.isAnimating())
6968                    )
6969                        this.setTransform();
6970                    else if ("pointerdown" !== this.state) return void this.endAnimation();
6971                    this.rAF = requestAnimationFrame(() => this.animate());
6972                }
6973                getBounds(e) {
6974                    let t = this.boundX,
6975                        n = this.boundY;
6976                    if (void 0 !== t && void 0 !== n) return { boundX: t, boundY: n };
6977                    (t = { from: 0, to: 0 }), (n = { from: 0, to: 0 }), (e = e || this.transform.scale);
6978                    const i = this.content.fitWidth * e,
6979                        s = this.content.fitHeight * e,
6980                        o = this.viewport.width,
6981                        r = this.viewport.height;
6982                    if (i < o) {
6983                        const e = ae(0.5 * (o - i));
6984                        (t.from = e), (t.to = e);
6985                    } else t.from = ae(o - i);
6986                    if (s < r) {
6987                        const e = 0.5 * (r - s);
6988                        (n.from = e), (n.to = e);
6989                    } else n.from = ae(r - s);
6990                    return { boundX: t, boundY: n };
6991                }
6992                setEdgeForce() {
6993                    if ("decel" !== this.state) return;
6994                    const e = this.option("bounceForce"),
6995                        { boundX: t, boundY: n } = this.getBounds(Math.max(this.transform.scale, this.content.scale));
6996                    let i, s, o, r;
6997                    if ((t && ((i = this.content.x < t.from), (s = this.content.x > t.to)), n && ((o = this.content.y < n.from), (r = this.content.y > n.to)), i || s)) {
6998                        let n = ((i ? t.from : t.to) - this.content.x) * e;
6999                        const s = this.content.x + (this.velocity.x + n) / this.friction;
7000                        s >= t.from && s <= t.to && (n += this.velocity.x), (this.velocity.x = n), this.recalculateTransform();
7001                    }
7002                    if (o || r) {
7003                        let t = ((o ? n.from : n.to) - this.content.y) * e;
7004                        const i = this.content.y + (t + this.velocity.y) / this.friction;
7005                        i >= n.from && i <= n.to && (t += this.velocity.y), (this.velocity.y = t), this.recalculateTransform();
7006                    }
7007                }
7008                setDragResistance() {
7009                    if ("pointerdown" !== this.state) return;
7010                    const { boundX: e, boundY: t } = this.getBounds(this.dragPosition.scale);
7011                    let n, i, s, o;
7012                    if ((e && ((n = this.dragPosition.x < e.from), (i = this.dragPosition.x > e.to)), t && ((s = this.dragPosition.y < t.from), (o = this.dragPosition.y > t.to)), (n || i) && (!n || !i))) {
7013                        const t = n ? e.from : e.to,
7014                            i = t - this.dragPosition.x;
7015                        this.dragPosition.x = t - 0.3 * i;
7016                    }
7017                    if ((s || o) && (!s || !o)) {
7018                        const e = s ? t.from : t.to,
7019                            n = e - this.dragPosition.y;
7020                        this.dragPosition.y = e - 0.3 * n;
7021                    }
7022                }
7023                setDragForce() {
7024                    "pointerdown" === this.state && ((this.velocity.x = this.dragPosition.x - this.content.x), (this.velocity.y = this.dragPosition.y - this.content.y), (this.velocity.scale = this.dragPosition.scale - this.content.scale));
7025                }
7026                recalculateTransform() {
7027                    (this.transform.x = this.content.x + this.velocity.x / (1 / this.friction - 1)),
7028                        (this.transform.y = this.content.y + this.velocity.y / (1 / this.friction - 1)),
7029                        (this.transform.scale = this.content.scale + this.velocity.scale / (1 / this.friction - 1));
7030                }
7031                isAnimating() {
7032                    return !(!this.friction || !(Math.abs(this.velocity.x) > 0.05 || Math.abs(this.velocity.y) > 0.05 || Math.abs(this.velocity.scale) > 0.05));
7033                }
7034                setTransform(e) {
7035                    let t, n, i;
7036                    if (
7037                        (e
7038                            ? ((t = ae(this.transform.x)), (n = ae(this.transform.y)), (i = this.transform.scale), (this.content = { ...this.content, x: t, y: n, scale: i }))
7039                            : ((t = ae(this.content.x)), (n = ae(this.content.y)), (i = this.content.scale / (this.content.width / this.content.fitWidth)), (this.content = { ...this.content, x: t, y: n })),
7040                        this.trigger("beforeTransform"),
7041                        (t = ae(this.content.x)),
7042                        (n = ae(this.content.y)),
7043                        e && this.option("zoom"))
7044                    ) {
7045                        let e, s;
7046                        (e = ae(this.content.fitWidth * i)),
7047                            (s = ae(this.content.fitHeight * i)),
7048                            (this.content.width = e),
7049                            (this.content.height = s),
7050                            (this.transform = { ...this.transform, width: e, height: s, scale: i }),
7051                            Object.assign(this.$content.style, { width: `${e}px`, height: `${s}px`, maxWidth: "none", maxHeight: "none", transform: `translate3d(${t}px, ${n}px, 0) scale(1)` });
7052                    } else this.$content.style.transform = `translate3d(${t}px, ${n}px, 0) scale(${i})`;
7053                    this.trigger("afterTransform");
7054                }
7055                endAnimation(e) {
7056                    cancelAnimationFrame(this.rAF), (this.rAF = null), (this.velocity = { x: 0, y: 0, scale: 0 }), this.setTransform(!0), (this.state = "ready"), this.handleCursor(
7056), !0 !== e && this.trigger("endAnimation");
7057                }
7058                handleCursor() {
7059                    const e = this.option("draggableClass");
7060                    e &&
7061                        this.option("touch") &&
7062                        (1 == this.option("panOnlyZoomed") && this.content.width <= this.viewport.width && this.content.height <= this.viewport.height && this.transform.scale <= this.option("baseScale")
7063                            ? this.$container.classList.remove(e)
7064                            : this.$container.classList.add(e));
7065                }
7066                detachEvents() {
7067                    this.$content.removeEventListener("load", this.onLoad),
7068                        this.$container.removeEventListener("wheel", this.onWheel, { passive: !1 }),
7069                        this.$container.removeEventListener("click", this.onClick, { passive: !1 }),
7070                        this.pointerTracker && (this.pointerTracker.stop(), (this.pointerTracker = null)),
7071                        this.resizeObserver && (this.resizeObserver.disconnect(), (this.resizeObserver = null));
7072                }
7073                destroy() {
7074                    "destroy" !== this.state &&
7075                        ((this.state = "destroy"), clearTimeout(this.updateTimer), (this.updateTimer = null), cancelAnimationFrame(this.rAF), (this.rAF = null), this.detachEvents(), this.detachPlugins(), this.resetDragPosition());
7076                }
7077            }
7078            (me.version = "4.0.31"), (me.Plugins = {});
7079            const ve = (e, t) => {
7080                let n = 0;
7081                return function (...i) {
7082                    const s = new Date().getTime();
7083                    if (!(s - n < t)) return (n = s), e(...i);
7084                };
7085            };
7086            class be {
7087                constructor(e) {
7088                    (this.$container = null), (this.$prev = null), (this.$next = null), (this.carousel = e), (this.onRefresh = this.onRefresh.bind(this));
7089                }
7090                option(e) {
7091                    return this.carousel.option(`Navigation.${e}`);
7092                }
7093                createButton(e) {
7094                    const t = document.createElement("button");
7095                    t.setAttribute("title", this.carousel.localize(`{{${e.toUpperCase()}}}`));
7096                    const n = this.option("classNames.button") + " " + this.option(`classNames.${e}`);
7097                    return (
7098                        t.classList.add(...n.split(" ")),
7099                        t.setAttribute("tabindex", "0"),
7100                        (t.innerHTML = this.carousel.localize(this.option(`${e}Tpl`))),
7101                        t.addEventListener("click", (t) => {
7102                            t.preventDefault(), t.stopPropagation(), this.carousel["slide" + ("next" === e ? "Next" : "Prev")]();
7103                        }),
7104                        t
7105                    );
7106                }
7107                build() {
7108                    this.$container || ((this.$container = document.createElement("div")), this.$container.classList.add(...this.option("classNames.main").split(" ")), this.carousel.$container.appendChild(this.$container)),
7109                        this.$next || ((this.$next = this.createButton("next")), this.$container.appendChild(this.$next)),
7110                        this.$prev || ((this.$prev = this.createButton("prev")), this.$container.appendChild(this.$prev));
7111                }
7112                onRefresh() {
7113                    const e = this.carousel.pages.length;
7114                    e <= 1 || (e > 1 && this.carousel.elemDimWidth < this.carousel.wrapDimWidth && !Number.isInteger(this.carousel.option("slidesPerPage")))
7115                        ? this.cleanup()
7116                        : (this.build(),
7117                          this.$prev.removeAttribute("disabled"),
7118                          this.$next.removeAttribute("disabled"),
7119                          this.carousel.option("infiniteX", this.carousel.option("infinite")) || (this.carousel.page <= 0 && this.$prev.setAttribute("disabled", ""), this.carousel.page >= e - 1 && this.$next.setAttribute("disabled", "")));
7120                }
7121                cleanup() {
7122                    this.$prev && this.$prev.remove(), (this.$prev = null), this.$next && this.$next.remove(), (this.$next = null), this.$container && this.$container.remove(), (this.$container = null);
7123                }
7124                attach() {
7125                    this.carousel.on("refresh change", this.onRefresh);
7126                }
7127                detach() {
7128                    this.carousel.off("refresh change", this.onRefresh), this.cleanup();
7129                }
7130            }
7131            be.defaults = {
7132                prevTpl: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" tabindex="-1"><path d="M15 3l-9 9 9 9"/></svg>',
7133                nextTpl: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" tabindex="-1"><path d="M9 3l9 9-9 9"/></svg>',
7134                classNames: { main: "carousel__nav", button: "carousel__button", next: "is-next", prev: "is-prev" },
7135            };
7136            class ye {
7137                constructor(e) {
7138                    (this.carousel = e),
7139                        (this.selectedIndex = null),
7140                        (this.friction = 0),
7141                        (this.onNavReady = this.onNavReady.bind(this)),
7142                        (this.onNavClick = this.onNavClick.bind(this)),
7143                        (this.onNavCreateSlide = this.onNavCreateSlide.bind(this)),
7144                        (this.onTargetChange = this.onTargetChange.bind(this));
7145                }
7146                addAsTargetFor(e) {
7147                    (this.target = this.carousel), (this.nav = e), this.attachEvents();
7148                }
7149                addAsNavFor(e) {
7150                    (this.target = e), (this.nav = this.carousel), this.attachEvents();
7151                }
7152                attachEvents() {
7153                    (this.nav.options.initialSlide = this.target.options.initialPage),
7154                        this.nav.on("ready", this.onNavReady),
7155                        this.nav.on("createSlide", this.onNavCreateSlide),
7156                        this.nav.on("Panzoom.click", this.onNavClick),
7157                        this.target.on("change", this.onTargetChange),
7158                        this.target.on("Panzoom.afterUpdate", this.onTargetChange);
7159                }
7160                onNavReady() {
7161                    this.onTargetChange(!0);
7162                }
7163                onNavClick(e, t, n) {
7164                    const i = n.target.closest(".carousel__slide");
7165                    if (!i) return;
7166                    n.stopPropagation();
7167                    const s = parseInt(i.dataset.index, 10),
7168                        o = this.target.findPageForSlide(s);
7169                    this.target.page !== o && this.target.slideTo(o, { friction: this.friction }), this.markSelectedSlide(s);
7170                }
7171                onNavCreateSlide(e, t) {
7172                    t.index === this.selectedIndex && this.markSelectedSlide(t.index);
7173                }
7174                onTargetChange() {
7175                    const e = this.target.pages[this.target.page].indexes[0],
7176                        t = this.nav.findPageForSlide(e);
7177                    this.nav.slideTo(t), this.markSelectedSlide(e);
7178                }
7179                markSelectedSlide(e) {
7180                    (this.selectedIndex = e), [...this.nav.slides].filter((e) => e.$el && e.$el.classList.remove("is-nav-selected"));
7181                    const t = this.nav.slides[e];
7182                    t && t.$el && t.$el.classList.add("is-nav-selected");
7183                }
7184                attach(e) {
7185                    const t = e.options.Sync;
7186                    (t.target || t.nav) && (t.target ? this.addAsNavFor(t.target) : t.nav && this.addAsTargetFor(t.nav), (this.friction = t.friction));
7187                }
7188                detach() {
7189                    this.nav && (this.nav.off("ready", this.onNavReady), this.nav.off("Panzoom.click", this.onNavClick), this.nav.off("createSlide", this.onNavCreateSlide)),
7190                        this.target && (this.target.off("Panzoom.afterUpdate", this.onTargetChange), this.target.off("change", this.onTargetChange));
7191                }
7192            }
7193            ye.defaults = { friction: 0.92 };
7194            const we = {
7195                    Navigation: be,
7196                    Dots: class {
7197                        constructor(e) {
7198                            (this.carousel = e), (this.$list = null), (this.events = { change: this.onChange.bind(this), refresh: this.onRefresh.bind(this) });
7199                        }
7200                        buildList() {
7201                            if (this.carousel.pages.length < this.carousel.option("Dots.minSlideCount")) return;
7202                            const e = document.createElement("ol");
7203                            return (
7204                                e.classList.add("carousel__dots"),
7205                                e.addEventListener("click", (e) => {
7206                                    if (!("page" in e.target.dataset)) return;
7207                                    e.preventDefault(), e.stopPropagation();
7208                                    const t = parseInt(e.target.dataset.page, 10),
7209                                        n = this.carousel;
7210                                    t !== n.page && (n.pages.length < 3 && n.option("infinite") ? n[0 == t ? "slidePrev" : "slideNext"]() : n.slideTo(t));
7211                                }),
7212                                (this.$list = e),
7213                                this.carousel.$container.appendChild(e),
7214                                this.carousel.$container.classList.add("has-dots"),
7215                                e
7216                            );
7217                        }
7218                        removeList() {
7219                            this.$list && (this.$list.parentNode.removeChild(this.$list), (this.$list = null)), this.carousel.$container.classList.remove("has-dots");
7220                        }
7221                        rebuildDots() {
7222                            let e = this.$list;
7223                            const t = !!e,
7224                                n = this.carousel.pages.length;
7225                            if (n < 2) return void (t && this.removeList());
7226                            t || (e = this.buildList());
7227                            const i = this.$list.children.length;
7228                            if (i > n) for (let e = n; e < i; e++) this.$list.removeChild(this.$list.lastChild);
7229                            else {
7230                                for (let e = i; e < n; e++) {
7231                                    const t = document.createElement("li");
7232                                    t.classList.add("carousel__dot"),
7233                                        (t.dataset.page = e),
7234                                        t.setAttribute("role", "button"),
7235                                        t.setAttribute("tabindex", "0"),
7236                                        t.setAttribute("title", this.carousel.localize("{{GOTO}}", [["%d", e + 1]])),
7237                                        t.addEventListener("keydown", (e) => {
7238                                            const n = e.code;
7239                                            let i;
7240                                            "Enter" === n || "NumpadEnter" === n ? (i = t) : "ArrowRight" === n ? (i = t.nextSibling) : "ArrowLeft" === n && (i = t.previousSibling), i && i.click();
7241                                        }),
7242                                        this.$list.appendChild(t);
7243                                }
7244                                this.setActiveDot();
7245                            }
7246                        }
7247                        setActiveDot() {
7248                            if (!this.$list) return;
7249                            this.$list.childNodes.forEach((e) => {
7250                                e.classList.remove("is-selected");
7251                            });
7252                            const e = this.$list.childNodes[this.carousel.page];
7253                            e && e.classList.add("is-selected");
7254                        }
7255                        onChange() {
7256                            this.setActiveDot();
7257                        }
7258                        onRefresh() {
7259                            this.rebuildDots();
7260                        }
7261                        attach() {
7262                            this.carousel.on(this.events);
7263                        }
7264                        detach() {
7265                            this.removeList(), this.carousel.off(this.events), (this.carousel = null);
7266                        }
7267                    },
7268                    Sync: ye,
7269                },
7270                xe = {
7271                    slides: [],
7272                    preload: 0,
7273                    slidesPerPage: "auto",
7274                    initialPage: null,
7275                    initialSlide: null,
7276                    friction: 0.92,
7277                    center: !0,
7278                    infinite: !0,
7279                    fill: !0,
7280                    dragFree: !1,
7281                    prefix: "",
7282                    classNames: { viewport: "carousel__viewport", track: "carousel__track", slide: "carousel__slide", slideSelected: "is-selected" },
7283                    l10n: { NEXT: "Next slide", PREV: "Previous slide", GOTO: "Go to slide #%d" },
7284                };
7285            class _e extends fe {
7286                constructor(e, t = {}) {
7287                    if ((super((t = re(!0, {}, xe, t))), (this.state = "init"), (this.$container = e), !(this.$container instanceof HTMLElement))) throw new Error("No root element provided");
7288                    (this.slideNext = ve(this.slideNext.bind(this), 250)), (this.slidePrev = ve(this.slidePrev.bind(this), 250)), this.init(), (e.__Carousel = this);
7289                }
7290                init() {
7291                    (this.pages = []),
7292                        (this.page = this.pageIndex = null),
7293                        (this.prevPage = this.prevPageIndex = null),
7294                        this.attachPlugins(_e.Plugins),
7295                        this.trigger("init"),
7296                        this.initLayout(),
7297                        this.initSlides(),
7298                        this.updateMetrics(),
7299                        this.$track && this.pages.length && (this.$track.style.transform = `translate3d(${-1 * this.pages[this.page].left}px, 0px, 0) scale(1)`),
7300                        this.manageSlideVisiblity(),
7301                        this.initPanzoom(),
7302                        (this.state = "ready"),
7303                        this.trigger("ready");
7304                }
7305                initLayout() {
7306                    const e = this.option("prefix"),
7307                        t = this.option("classNames");
7308                    (this.$viewport = this.option("viewport") || this.$container.querySelector(`.${e}${t.viewport}`)),
7309                        this.$viewport ||
7310                            ((this.$viewport = document.createElement("div")), this.$viewport.classList.add(...(e + t.viewport).split(" ")), this.$viewport.append(...this.$container.childNodes), this.$container.appendChild(this.$viewport)),
7311                        (this.$track = this.option("track") || this.$container.querySelector(`.${e}${t.track}`)),
7312                        this.$track || ((this.$track = document.createElement("div")), this.$track.classList.add(...(e + t.track).split(" ")), this.$track.append(...this.$viewport.childNodes), this.$viewport.appendChild(this.$track));
7313                }
7314                initSlides() {
7315                    (this.slides = []),
7316                        this.$viewport.querySelectorAll(`.${this.option("prefix")}${this.option("classNames.slide")}`).forEach((e) => {
7317                            const t = { $el: e, isDom: !0 };
7318                            this.slides.push(t), this.trigger("createSlide", t, this.slides.length);
7319                        }),
7320                        Array.isArray(this.options.slides) && (this.slides = re(!0, [...this.slides], this.options.slides));
7321                }
7322                updateMetrics() {
7323                    let e,
7324                        t = 0,
7325                        n = [];
7326                    this.slides.forEach((i, s) => {
7327                        const o = i.$el,
7328                            r = i.isDom || !e ? this.getSlideMetrics(o) : e;
7329                        (i.index = s), (i.width = r), (i.left = t), (e = r), (t += r), n.push(s);
7330                    });
7331                    let i = Math.max(this.$track.offsetWidth, ae(this.$track.getBoundingClientRect().width)),
7332                        s = getComputedStyle(this.$track);
7333                    (i -= parseFloat(s.paddingLeft) + parseFloat(s.paddingRight)), (this.contentWidth = t), (this.viewportWidth = i);
7334                    const o = [],
7335                        r = this.option("slidesPerPage");
7336                    if (Number.isInteger(r) && t > i) for (let e = 0; e < this.slides.length; e += r) o.push({ indexes: n.slice(e, e + r), slides: this.slides.slice(e, e + r) });
7337                    else {
7338                        let e = 0,
7339                            t = 0;
7340                        for (let n = 0; n < this.slides.length; n += 1) {
7341                            let s = this.slides[n];
7342                            (!o.length || t + s.width > i) && (o.push({ indexes: [], slides: [] }), (e = o.length - 1), (t = 0)), (t += s.width), o[e].indexes.push(n), o[e].slides.push(s);
7343                        }
7344                    }
7345                    const a = this.option("center"),
7346                        l = this.option("fill");
7347                    o.forEach((e, n) => {
7348                        (e.index = n),
7349                            (e.width = e.slides.reduce((e, t) => e + t.width, 0)),
7350                            (e.left = e.slides[0].left),
7351                            a && (e.left += 0.5 * (i - e.width) * -1),
7352                            l && !this.option("infiniteX", this.option("infinite")) && t > i && ((e.left = Math.max(e.left, 0)), (e.left = Math.min(e.left, t - i)));
7353                    });
7354                    const c = [];
7355                    let d;
7356                    o.forEach((e) => {
7357                        const t = { ...e };
7358                        d && t.left === d.left ? ((d.width += t.width), (d.slides = [...d.slides, ...t.slides]), (d.indexes = [...d.indexes, ...t.indexes])) : ((t.index = c.length), (d = t), c.push(t));
7359                    }),
7360                        (this.pages = c);
7361                    let h = this.page;
7362                    if (null === h) {
7363                        const e = this.option("initialSlide");
7364                        (h = null !== e ? this.findPageForSlide(e) : parseInt(this.option("initialPage", 0), 10) || 0), c[h] || (h = c.length && h > c.length ? c[c.length - 1].index : 0), (this.page = h), (this.pageIndex = h);
7365                    }
7366                    this.updatePanzoom(), this.trigger("refresh");
7367                }
7368                getSlideMetrics(e) {
7369                    if (!e) {
7370                        const t = this.slides[0];
7371                        ((e = document.createElement("div")).dataset.isTestEl = 1),
7372                            (e.style.visibility = "hidden"),
7373                            e.classList.add(...(this.option("prefix") + this.option("classNames.slide")).split(" ")),
7374                            t.customClass && e.classList.add(...t.customClass.split(" ")),
7375                            this.$track.prepend(e);
7376                    }
7377                    let t = Math.max(e.offsetWidth, ae(e.getBoundingClientRect().width));
7378                    const n = e.currentStyle || window.getComputedStyle(e);
7379                    return (t = t + (parseFloat(n.marginLeft) || 0) + (parseFloat(n.marginRight) || 0)), e.dataset.isTestEl && e.remove(), t;
7380                }
7381                findPageForSlide(e) {
7382                    e = parseInt(e, 10) || 0;
7383                    const t = this.pages.find((t) => t.indexes.indexOf(e) > -1);
7384                    return t ? t.index : null;
7385                }
7386                slideNext() {
7387                    this.slideTo(this.pageIndex + 1);
7388                }
7389                slidePrev() {
7390                    this.slideTo(this.pageIndex - 1);
7391                }
7392                slideTo(e, t = {}) {
7393                    const { x: n = -1 * this.setPage(e, !0), y: 
7393i = 0, friction: s = this.option("friction") } = t;
7394                    (this.Panzoom.content.x === n && !this.Panzoom.velocity.x && s) || (this.Panzoom.panTo({ x: n, y: i, friction: s, ignoreBounds: !0 }), "ready" === this.state && "ready" === this.Panzoom.state && this.trigger("settle"));
7395                }
7396                initPanzoom() {
7397                    this.Panzoom && this.Panzoom.destroy();
7398                    const e = re(
7399                        !0,
7400                        {},
7401                        {
7402                            content: this.$track,
7403                            wrapInner: !1,
7404                            resizeParent: !1,
7405                            zoom: !1,
7406                            click: !1,
7407                            lockAxis: "x",
7408                            x: this.pages.length ? -1 * this.pages[this.page].left : 0,
7409                            centerOnStart: !1,
7410                            textSelection: () => this.option("textSelection", !1),
7411                            panOnlyZoomed: function () {
7412                                return this.content.width <= this.viewport.width;
7413                            },
7414                        },
7415                        this.option("Panzoom")
7416                    );
7417                    (this.Panzoom = new me(this.$container, e)),
7418                        this.Panzoom.on({
7419                            "*": (e, ...t) => this.trigger(`Panzoom.${e}`, ...t),
7420                            afterUpdate: () => {
7421                                this.updatePage();
7422                            },
7423                            beforeTransform: this.onBeforeTransform.bind(this),
7424                            touchEnd: this.onTouchEnd.bind(this),
7425                            endAnimation: () => {
7426                                this.trigger("settle");
7427                            },
7428                        }),
7429                        this.updateMetrics(),
7430                        this.manageSlideVisiblity();
7431                }
7432                updatePanzoom() {
7433                    this.Panzoom &&
7434                        ((this.Panzoom.content = { ...this.Panzoom.content, fitWidth: this.contentWidth, origWidth: this.contentWidth, width: this.contentWidth }),
7435                        this.pages.length > 1 && this.option("infiniteX", this.option("infinite"))
7436                            ? (this.Panzoom.boundX = null)
7437                            : this.pages.length && (this.Panzoom.boundX = { from: -1 * this.pages[this.pages.length - 1].left, to: -1 * this.pages[0].left }),
7438                        this.option("infiniteY", this.option("infinite")) ? (this.Panzoom.boundY = null) : (this.Panzoom.boundY = { from: 0, to: 0 }),
7439                        this.Panzoom.handleCursor());
7440                }
7441                manageSlideVisiblity() {
7442                    const e = this.contentWidth,
7443                        t = this.viewportWidth;
7444                    let n = this.Panzoom ? -1 * this.Panzoom.content.x : this.pages.length ? this.pages[this.page].left : 0;
7445                    const i = this.option("preload"),
7446                        s = this.option("infiniteX", this.option("infinite")),
7447                        o = parseFloat(getComputedStyle(this.$viewport, null).getPropertyValue("padding-left")),
7448                        r = parseFloat(getComputedStyle(this.$viewport, null).getPropertyValue("padding-right"));
7449                    this.slides.forEach((a) => {
7450                        let l,
7451                            c,
7452                            d = 0;
7453                        (l = n - o), (c = n + t + r), (l -= i * (t + o + r)), (c += i * (t + o + r));
7454                        const h = a.left + a.width > l && a.left < c;
7455                        (l = n + e - o), (c = n + e + t + r), (l -= i * (t + o + r));
7456                        const u = s && a.left + a.width > l && a.left < c;
7457                        (l = n - e - o), (c = n - e + t + r), (l -= i * (t + o + r));
7458                        const p = s && a.left + a.width > l && a.left < c;
7459                        u || h || p ? (this.createSlideEl(a), h && (d = 0), u && (d = -1), p && (d = 1), a.left + a.width > n && a.left <= n + t + r && (d = 0)) : this.removeSlideEl(a), (a.hasDiff = d);
7460                    });
7461                    let a = 0,
7462                        l = 0;
7463                    this.slides.forEach((t, n) => {
7464                        let i = 0;
7465                        t.$el ? (n !== a || t.hasDiff ? (i = l + t.hasDiff * e) : (l = 0), (t.$el.style.left = Math.abs(i) > 0.1 ? `${l + t.hasDiff * e}px` : ""), a++) : (l += t.width);
7466                    }),
7467                        this.markSelectedSlides();
7468                }
7469                createSlideEl(e) {
7470                    if (!e) return;
7471                    if (e.$el) {
7472                        let t = e.$el.dataset.index;
7473                        if (!t || parseInt(t, 10) !== e.index) {
7474                            let t;
7475                            (e.$el.dataset.index = e.index),
7476                                e.$el.querySelectorAll("[data-lazy-srcset]").forEach((e) => {
7477                                    e.srcset = e.dataset.lazySrcset;
7478                                }),
7479                                e.$el.querySelectorAll("[data-lazy-src]").forEach((e) => {
7480                                    let t = e.dataset.lazySrc;
7481                                    e instanceof HTMLImageElement ? (e.src = t) : (e.style.backgroundImage = `url('${t}')`);
7482                                }),
7483                                (t = e.$el.dataset.lazySrc) && (e.$el.style.backgroundImage = `url('${t}')`),
7484                                (e.state = "ready");
7485                        }
7486                        return;
7487                    }
7488                    const t = document.createElement("div");
7489                    (t.dataset.index = e.index), t.classList.add(...(this.option("prefix") + this.option("classNames.slide")).split(" ")), e.customClass && t.classList.add(...e.customClass.split(" ")), e.html && (t.innerHTML = e.html);
7490                    const n = [];
7491                    this.slides.forEach((e, t) => {
7492                        e.$el && n.push(t);
7493                    });
7494                    const i = e.index;
7495                    let s = null;
7496                    if (n.length) {
7497                        let e = n.reduce((e, t) => (Math.abs(t - i) < Math.abs(e - i) ? t : e));
7498                        s = this.slides[e];
7499                    }
7500                    return this.$track.insertBefore(t, s && s.$el ? (s.index < e.index ? s.$el.nextSibling : s.$el) : null), (e.$el = t), this.trigger("createSlide", e, i), e;
7501                }
7502                removeSlideEl(e) {
7503                    e.$el && !e.isDom && (this.trigger("removeSlide", e), e.$el.remove(), (e.$el = null));
7504                }
7505                markSelectedSlides() {
7506                    const e = this.option("classNames.slideSelected"),
7507                        t = "aria-hidden";
7508                    this.slides.forEach((n, i) => {
7509                        const s = n.$el;
7510                        if (!s) return;
7511                        const o = this.pages[this.page];
7512                        o && o.indexes && o.indexes.indexOf(i) > -1
7513                            ? (e && !s.classList.contains(e) && (s.classList.add(e), this.trigger("selectSlide", n)), s.removeAttribute(t))
7514                            : (e && s.classList.contains(e) && (s.classList.remove(e), this.trigger("unselectSlide", n)), s.setAttribute(t, !0));
7515                    });
7516                }
7517                updatePage() {
7518                    this.updateMetrics(), this.slideTo(this.page, { friction: 0 });
7519                }
7520                onBeforeTransform() {
7521                    this.option("infiniteX", this.option("infinite")) && this.manageInfiniteTrack(), this.manageSlideVisiblity();
7522                }
7523                manageInfiniteTrack() {
7524                    const e = this.contentWidth,
7525                        t = this.viewportWidth;
7526                    if (!this.option("infiniteX", this.option("infinite")) || this.pages.length < 2 || e < t) return;
7527                    const n = this.Panzoom;
7528                    let i = !1;
7529                    return (
7530                        n.content.x < -1 * (e - t) && ((n.content.x += e), (this.pageIndex = this.pageIndex - this.pages.length), (i = !0)),
7531                        n.content.x > t && ((n.content.x -= e), (this.pageIndex = this.pageIndex + this.pages.length), (i = !0)),
7532                        i && "pointerdown" === n.state && n.resetDragPosition(),
7533                        i
7534                    );
7535                }
7536                onTouchEnd(e, t) {
7537                    const n = this.option("dragFree");
7538                    if (!n && this.pages.length > 1 && e.dragOffset.time < 350 && Math.abs(e.dragOffset.y) < 1 && Math.abs(e.dragOffset.x) > 5) this[e.dragOffset.x < 0 ? "slideNext" : "slidePrev"]();
7539                    else if (n) {
7540                        const [, t] = this.getPageFromPosition(-1 * e.transform.x);
7541                        this.setPage(t);
7542                    } else this.slideToClosest();
7543                }
7544                slideToClosest(e = {}) {
7545                    let [, t] = this.getPageFromPosition(-1 * this.Panzoom.content.x);
7546                    this.slideTo(t, e);
7547                }
7548                getPageFromPosition(e) {
7549                    const t = this.pages.length;
7550                    this.option("center") && (e += 0.5 * this.viewportWidth);
7551                    const n = Math.floor(e / this.contentWidth);
7552                    e -= n * this.contentWidth;
7553                    let i = this.slides.find((t) => t.left <= e && t.left + t.width > e);
7554                    if (i) {
7555                        let e = this.findPageForSlide(i.index);
7556                        return [e, e + n * t];
7557                    }
7558                    return [0, 0];
7559                }
7560                setPage(e, t) {
7561                    let n = 0,
7562                        i = parseInt(e, 10) || 0;
7563                    const s = this.page,
7564                        o = this.pageIndex,
7565                        r = this.pages.length,
7566                        a = this.contentWidth,
7567                        l = this.viewportWidth;
7568                    if (((e = ((i % r) + r) % r), this.option("infiniteX", this.option("infinite")) && a > l)) {
7569                        const s = Math.floor(i / r) || 0,
7570                            o = a;
7571                        if (((n = this.pages[e].left + s * o), !0 === t && r > 2)) {
7572                            let e = -1 * this.Panzoom.content.x;
7573                            const t = n - o,
7574                                s = n + o,
7575                                a = Math.abs(e - n),
7576                                l = Math.abs(e - t),
7577                                c = Math.abs(e - s);
7578                            c < a && c <= l ? ((n = s), (i += r)) : l < a && l < c && ((n = t), (i -= r));
7579                        }
7580                    } else (e = i = Math.max(0, Math.min(i, r - 1))), (n = this.pages.length ? this.pages[e].left : 0);
7581                    return (this.page = e), (this.pageIndex = i), null !== s && e !== s && ((this.prevPage = s), (this.prevPageIndex = o), this.trigger("change", e, s)), n;
7582                }
7583                destroy() {
7584                    (this.state = "destroy"),
7585                        this.slides.forEach((e) => {
7586                            this.removeSlideEl(e);
7587                        }),
7588                        (this.slides = []),
7589                        this.Panzoom.destroy(),
7590                        this.detachPlugins();
7591                }
7592            }
7593            (_e.version = "4.0.31"), (_e.Plugins = we);
7594            const Ce = !("undefined" == typeof window || !window.document || !window.document.createElement);
7595            let Te = null;
7596            const Ee = [
7597                    "a[href]",
7598                    "area[href]",
7599                    'input:not([disabled]):not([type="hidden"]):not([aria-hidden])',
7600                    "select:not([disabled]):not([aria-hidden])",
7601                    "textarea:not([disabled]):not([aria-hidden])",
7602                    "button:not([disabled]):not([aria-hidden])",
7603                    "iframe",
7604                    "object",
7605                    "embed",
7606                    "video",
7607                    "audio",
7608                    "[contenteditable]",
7609                    '[tabindex]:not([tabindex^="-"]):not([disabled]):not([aria-hidden])',
7610                ],
7611                Se = (e) => {
7612                    if (e && Ce) {
7613                        null === Te &&
7614                            document.createElement("div").focus({
7615                                get preventScroll() {
7616                                    return (Te = !0), !1;
7617                                },
7618                            });
7619                        try {
7620                            if (e.setActive) e.setActive();
7621                            else if (Te) e.focus({ preventScroll: !0 });
7622                            else {
7623                                const t = window.pageXOffset || document.body.scrollTop,
7624                                    n = window.pageYOffset || document.body.scrollLeft;
7625                                e.focus(), document.body.scrollTo({ top: t, left: n, behavior: "auto" });
7626                            }
7627                        } catch (e) {}
7628                    }
7629                };
7630            class Ae {
7631                constructor(e) {
7632                    (this.fancybox = e), (this.$container = null), (this.state = "init");
7633                    for (const e of ["onPrepare", "onClosing", "onKeydown"]) this[e] = this[e].bind(this);
7634                    this.events = { prepare: this.onPrepare, closing: this.onClosing, keydown: this.onKeydown };
7635                }
7636                onPrepare() {
7637                    this.getSlides().length < this.fancybox.option("Thumbs.minSlideCount")
7638                        ? (this.state = "disabled")
7639                        : !0 === this.fancybox.option("Thumbs.autoStart") && this.fancybox.Carousel.Panzoom.content.height >= this.fancybox.option("Thumbs.minScreenHeight") && this.build();
7640                }
7641                onClosing() {
7642                    this.Carousel && this.Carousel.Panzoom.detachEvents();
7643                }
7644                onKeydown(e, t) {
7645                    t === e.option("Thumbs.key") && this.toggle();
7646                }
7647                build() {
7648                    if (this.$container) return;
7649                    const e = document.createElement("div");
7650                    e.classList.add("fancybox__thumbs"),
7651                        this.fancybox.$carousel.parentNode.insertBefore(e, this.fancybox.$carousel.nextSibling),
7652                        (this.Carousel = new _e(
7653                            e,
7654                            re(!0, { Dots: !1, Navigation: !1, Sync: { friction: 0 }, infinite: !1, center: !0, fill: !0, dragFree: !0, slidesPerPage: 1, preload: 1 }, this.fancybox.option("Thumbs.Carousel"), {
7655                                Sync: { target: this.fancybox.Carousel },
7656                                slides: this.getSlides(),
7657                            })
7658                        )),
7659                        this.Carousel.Panzoom.on("wheel", (e, t) => {
7660                            t.preventDefault(), this.fancybox[t.deltaY < 0 ? "prev" : "next"]();
7661                        }),
7662                        (this.$container = e),
7663                        (this.state = "visible");
7664                }
7665                getSlides() {
7666                    const e = [];
7667                    for (const t of this.fancybox.items) {
7668                        const n = t.thumb;
7669                        n && e.push({ html: this.fancybox.option("Thumbs.tpl").replace(/\{\{src\}\}/gi, n), customClass: `has-thumb has-${t.type || "image"}` });
7670                    }
7671                    return e;
7672                }
7673                toggle() {
7674                    "visible" === this.state ? this.hide() : "hidden" === this.state ? this.show() : this.build();
7675                }
7676                show() {
7677                    "hidden" === this.state && ((this.$container.style.display = ""), this.Carousel.Panzoom.attachEvents(), (this.state = "visible"));
7678                }
7679                hide() {
7680                    "visible" === this.state && (this.Carousel.Panzoom.detachEvents(), (this.$container.style.display = "none"), (this.state = "hidden"));
7681                }
7682                cleanup() {
7683                    this.Carousel && (this.Carousel.destroy(), (this.Carousel = null)), this.$container && (this.$container.remove(), (this.$container = null)), (this.state = "init");
7684                }
7685                attach() {
7686                    this.fancybox.on(this.events);
7687                }
7688                detach() {
7689                    this.fancybox.off(this.events), this.cleanup();
7690                }
7691            }
7692            Ae.defaults = { minSlideCount: 2, minScreenHeight: 500, autoStart: !0, key: "t", Carousel: {}, tpl: '<div class="fancybox__thumb" style="background-image:url(\'{{src}}\')"></div>' };
7693            const ke = (e, t) => {
7694                    const n = new URL(e),
7695                        i = new URLSearchParams(n.search);
7696                    let s = new URLSearchParams();
7697                    for (const [e, n] of [...i, ...Object.entries(t)]) "t" === e ? s.set("start", parseInt(n)) : s.set(e, n);
7698                    s = s.toString();
7699                    let o = e.match(/#t=((.*)?\d+s)/);
7700                    return o && (s += `#t=${o[1]}`), s;
7701                },
7702                $e = {
7703                    video: { autoplay: !0, ratio: 16 / 9 },
7704                    youtube: { autohide: 1, fs: 1, rel: 0, hd: 1, wmode: "transparent", enablejsapi: 1, html5: 1 },
7705                    vimeo: { hd: 1, show_title: 1, show_byline: 1, show_portrait: 0, fullscreen: 1 },
7706                    html5video: {
7707                        tpl:
7708                            '<video class="fancybox__html5video" playsinline controls controlsList="nodownload" poster="{{poster}}">\n  <source src="{{src}}" type="{{format}}" />Sorry, your browser doesn\'t support embedded videos.</video>',
7709                        format: "",
7710                    },
7711                };
7712            class Le {
7713                constructor(e) {
7714                    this.fancybox = e;
7715                    for (const e of ["onInit", "onReady", "onCreateSlide", "onRemoveSlide", "onSelectSlide", "onUnselectSlide", "onRefresh", "onMessage"]) this[e] = this[e].bind(this);
7716                    this.events = {
7717                        init: this.onInit,
7718                        ready: this.onReady,
7719                        "Carousel.createSlide": this.onCreateSlide,
7720                        "Carousel.removeSlide": this.onRemoveSlide,
7721                        "Carousel.selectSlide": this.onSelectSlide,
7722                        "Carousel.unselectSlide": this.onUnselectSlide,
7723                        "Carousel.refresh": this.onRefresh,
7724                    };
7725                }
7726                onInit() {
7727                    for (const e of this.fancybox.items) this.processType(e);
7728                }
7729                processType(e) {
7730                    if (e.html) return (e.src = e.html), (e.type = "html"), void delete e.html;
7731                    const t = e.src || "";
7732                    let n = e.type || this.fancybox.options.type,
7733                        i = null;
7734                    if (!t || "string" == typeof t) {
7735                        if ((i = t.match(/(?:youtube\.com|youtu\.be|youtube\-nocookie\.com)\/(?:watch\?(?:.*&)?v=|v\/|u\/|embed\/?)?(videoseries\?list=(?:.*)|[\w-]{11}|\?listType=(?:.*)&list=(?:.*))(?:.*)/i))) {
7736                            const s = ke(t, this.fancybox.option("Html.youtube")),
7737                                o = encodeURIComponent(i[1]);
7738                            (e.videoId = o), (e.src = `https://www.youtube-nocookie.com/embed/${o}?${s}`), (e.thumb = e.thumb || `https://i.ytimg.com/vi/${o}/mqdefault.jpg`), (e.vendor = "youtube"), (n = "video");
7739                        } else if ((i = t.match(/^.+vimeo.com\/(?:\/)?([\d]+)(.*)?/))) {
7740                            const s = ke(t, this.fancybox.option("Html.vimeo")),
7741                                o = encodeURIComponent(i[1]);
7742                            (e.videoId = o), (e.src = `https://player.vimeo.com/video/${o}?${s}`), (e.vendor = "vimeo"), (n = "video");
7743                        } else
7744                            (i = t.match(/(?:maps\.)?google\.([a-z]{2,3}(?:\.[a-z]{2})?)\/(?:(?:(?:maps\/(?:place\/(?:.*)\/)?\@(.*),(\d+.?\d+?)z))|(?:\?ll=))(.*)?/i))
7745                                ? ((e.src = `//maps.google.${i[1]}/?ll=${(i[2] ? i[2] + "&z=" + Math.floor(i[3]) + (i[4] ? i[4].replace(/^\//, "&") : "") : i[4] + "").replace(/\?/, "&")}&output=${
7746                                      i[4] && i[4].indexOf("layer=c") > 0 ? "svembed" : "embed"
7747                                  }`),
7748                                  (n = "map"))
7749                                : (i = t.match(/(?:maps\.)?google\.([a-z]{2,3}(?:\.[a-z]{2})?)\/(?:maps\/search\/)(.*)/i)) &&
7750                                  ((e.src = `//maps.google.${i[1]}/maps?q=${i[2].replace("query=", "q=").replace("api=1", "")}&output=embed`), (n = "map"));
7751                        n ||
7752                            ("#" === t.charAt(0)
7753                                ? (n = "inline")
7754                                : (i = t.match(/\.(mp4|mov|ogv|webm)((\?|#).*)?$/i))
7755                                ? ((n = "html5video"), (e.format = e.format || "video/" + ("ogv" === i[1] ? "ogg" : i[1])))
7756                                : t.match(/(^data:image\/[a-z0-9+\/=]*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg|ico)((\?|#).*)?$)/i)
7757                                ? (n = "image")
7758                                : t.match(/\.(pdf)((\?|#).*)?$/i) && (n = "pdf")),
7759                            (e.type = n || this.fancybox.option("defaultType", "image")),
7760                            ("html5video" !== n && "video" !== n) ||
7761                                ((e.video = re({}, this.fancybox.option("Html.video"), e.video)), e._width && e._height ? (e.ratio = parseFloat(e._width) / parseFloat(e._height)) : (e.ratio = e.ratio || e.video.ratio || $e.video.ratio));
7762                    }
7763                }
7764                onReady() {
7765                    this.fancybox.Carousel.slides.forEach((e) => {
7766                        e.$el && (this.setContent(e), e.index === this.fancybox.getSlide().index && this.playVideo(e));
7767                    });
7768                }
7769                onCreateSlide(e, t, n) {
7770                    "ready" === this.fancybox.state && this.setContent(n);
7771                }
7772                loadInlineContent(e) {
7773                    let t;
7774                    if (e.src instanceof HTMLElement) t = e.src;
7775                    else if ("string" == typeof e.src) {
7776                        const n = e.src.split("#", 2),
7777                            i = 2 === n.length && "" === n[0] ? n[1] : n[0];
7778                        t = document.getElementById(i);
7779                    }
7780                    if (t) {
7781                        if ("clone" === e.type || t.$placeHolder) {
7782                            t = t.cloneNode(!0);
7783                            let n = t.getAttribute("id");
7784                            (n = n ? `${n}--clone` : `clone-${this.fancybox.id}-${e.index}`), t.setAttribute("id", n);
7785                        } else {
7786                            const e = document.createElement("div");
7787                            e.classList.add("fancybox-placeholder"), t.parentNode.insertBefore(e, t), (t.$placeHolder = e);
7788                        }
7789                        this.fancybox.setContent(e, t);
7790                    } else this.fancybox.setError(e, "{{ELEMENT_NOT_FOUND}}");
7791                }
7792                loadAjaxContent(e) {
7793                    const t = this.fancybox,
7794                        n = new XMLHttpRequest();
7795                    t.showLoading(e),
7796                        (n.onreadystatechange = function () {
7797                            n.readyState === XMLHttpRequest.DONE &&
7798                                "ready" === t.state &&
7799                                (t.hideLoading(e), 200 === n.status ? t.setContent(e, n.responseText) : t.setError(e, 404 === n.status ? "{{AJAX_NOT_FOUND}}" : "{{AJAX_FORBIDDEN}}"));
7800                        });
7801                    const i = e.ajax || null;
7802                    n.open(i ? "POST" : "GET", e.src), n.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"), n.setRequestHeader("X-Requested-With", "XMLHttpRequest"), n.send(i), (e.xhr = n);
7803                }
7804                loadIframeContent(e) {
7805                    const t = this.fancybox,
7806                        n = document.createElement("iframe");
7807                    if (
7808                        ((n.className = "fancybox__iframe"),
7809                        n.setAttribute("id", `fancybox__iframe_${t.id}_${e.index}`),
7810                        n.setAttribute("allow", "autoplay; fullscreen"),
7811                        n.setAttribute("scrolling", "auto"),
7812                        (e.$iframe = n),
7813                        "iframe" !== e.type || !1 === e.preload)
7814                    )
7815                        return n.setAttribute("src", e.src), this.fancybox.setContent(e, n), void this.resizeIframe(e);
7816                    t.showLoading(e);
7817                    const i = document.createElement("div");
7818                    (i.style.visibility = "hidden"),
7819                        this.fancybox.setContent(e, i),
7820                        i.appendChild(n),
7821                        (n.onerror = () => {
7822                            t.setError(e, "{{IFRAME_ERROR}}");
7823                        }),
7824                        (n.onload = () => {
7825                            t.hideLoading(e);
7826                            let i = !1;
7827                            n.isReady || ((n.isReady = !0), (i = !0)), n.src.length && ((n.parentNode.style.visibility = ""), this.resizeIframe(e), i && t.revealContent(e));
7828                        }),
7829                        n.setAttribute("src", e.src);
7830                }
7831                setAspectRatio(e) {
7832                    const t = e.$content,
7833                        n = e.ratio;
7834                    if (!t) return;
7835                    let i = e._width,
7836                        s = e._height;
7837                    if (n || (i && s)) {
7838                        Object.assign(t.style, { width: i && s ? "100%" : "", height: i && s ? "100%" : "", maxWidth: "", maxHeight: "" });
7839                        let e = t.offsetWidth,
7840                            o = t.offsetHeight;
7841                        if (((i = i || e), (s = s || o), i > e || s > o)) {
7842                            let t = Math.min(e / i, o / s);
7843                            (i *= t), (s *= t);
7844                        }
7845                        Math.abs(i / s - n) > 0.01 && (n < i / s ? (i = s * n) : (s = i / n)), Object.assign(t.style, { width: `${i}px`, height: `${s}px` });
7846                    }
7847                }
7848                resizeIframe(e) {
7849                    const t = e.$iframe;
7850                    if (!t) return;
7851                    let n = e._width || 0,
7852                        i = e._height || 0;
7853                    n && i && (e.autoSize = !1);
7854                    const s = t.parentNode,
7855                        o = s && s.style;
7856                    if (!1 !== e.preload && !1 !== e.autoSize && o)
7857                        try {
7858                            const e = window.getComputedStyle(s),
7859                                r = parseFloat(e.paddingLeft) + parseFloat(e.paddingRight),
7860                                a = parseFloat(e.paddingTop) + parseFloat(e.paddingBottom),
7861                                l = t.contentWindow.document,
7862                                c = l.getElementsByTagName("html")[0],
7863                                d = l.body;
7864                            (o.width = ""), (d.style.overflow = "hidden"), (n = n || c.scrollWidth + r), (o.width = `${n}px`), (d.style.overflow = ""), (o.flex = "0 0 auto"), (o.height = `${d.scrollHeight}px`), (i = c.scrollHeight + a);
7865                        } catch (e) {}
7866                    if (n || i) {
7867                        const e = { flex: "0 1 auto" };
7868                        n && (e.width = `${n}px`), i && (e.height = `${i}px`), Object.assign(o, e);
7869                    }
7870                }
7871                onRefresh(e, t) {
7872                    t.slides.forEach((e) => {
7873                        e.$el && (e.$iframe && this.resizeIframe(e), e.ratio && this.setAspectRatio(e));
7874                    });
7875                }
7876                setContent(e) {
7877                    if (e && !e.isDom) {
7878                        switch (e.type) {
7879                            case "html":
7880                                this.fancybox.setContent(e, e.src);
7881                                break;
7882                            case "html5video":
7883                                this.fancybox.setContent(
7884                                    e,
7885                                    this.fancybox
7886                                        .option("Html.html5video.tpl")
7887                                        .replace(/\{\{src\}\}/gi, e.src)
7888                                        .replace("{{format}}", e.format || (e.html5video && e.html5video.format) || "")
7889                                        .replace("{{poster}}", e.poster || e.thumb || "")
7890                                );
7891                                break;
7892                            case "inline":
7893                            case "clone":
7894                                this.loadInlineContent(e);
7895                                break;
7896                            case "ajax":
7897                                this.loadAjaxContent(e);
7898                                break;
7899                            case "pdf":
7900                            case "video":
7901                            case "map":
7902                                e.preload = !1;
7903                            case "iframe":
7904                                this.loadIframeContent(e);
7905                        }
7906                        e.ratio && this.setAspectRatio(e);
7907                    }
7908                }
7909                onSelectSlide(e, t, n) {
7910                    "ready" === e.state && this.playVideo(n);
7911                }
7912                playVideo(e) {
7913                    if ("html5video" === e.type && e.video.autoplay)
7914                        try {
7915                            const t = e.$el.querySelector("video");
7916                            if (t) {
7917                                const e = t.play();
7918                                void 0 !== e &&
7919                                    e
7920                                        .then(() => {})
7921                                        .catch((e) => {
7922                                            (t.muted = !0), t.play();
7923                                        });
7924                            }
7925                        } catch (e) {}
7926                    if ("video" !== e.type || !e.$iframe || !e.$iframe.contentWindow) return;
7927                    const t = () => {
7928                        if ("done" === e.state && e.$iframe && e.$iframe.contentWindow) {
7929                            let t;
7930                            if (e.$iframe.isReady)
7931                                return (
7932                                    e.video && e.video.autoplay && (t = "youtube" == e.vendor ? { event: "command", func: "playVideo" } : { method: "play", value: "true" }),
7933                                    void (t && e.$iframe.contentWindow.postMessage(JSON.stringify(t), "*"))
7934                                );
7935                            "youtube" === e.vendor && ((t = { event: "listening", id: e.$iframe.getAttribute("id") }), e.$iframe.contentWindow.postMessage(JSON.stringify(t), "*"));
7936                        }
7937                        e.poller = setTimeout(t, 250);
7938                    };
7939                    t();
7940                }
7941                onUnselectSlide(e, t, n) {
7942                    if ("html5video" === n.type) {
7943                        try {
7944                            n.$el.querySelector("video").pause();
7945                        } catch (e) {}
7946                        return;
7947                    }
7948                    let i = !1;
7949                    "vimeo" == n.vendor ? (i = { method: "pause", value: "true" }) : "youtube" === n.vendor && (i = { event: "command", func: "pauseVideo" }),
7950                        i && n.$iframe && n.$iframe.contentWindow && n.$iframe.contentWindow.postMessage(JSON.stringify(i), "*"),
7951                        clearTimeout(n.poller);
7952                }
7953                onRemoveSlide(e, t, n) {
7954                    n.xhr && (n.xhr.abort(), (n.xhr = null)), n.$iframe && ((n.$iframe.onload = n.$iframe.onerror = null), (n.$iframe.
7954src = "//about:blank"), (n.$iframe = null));
7955                    const i = n.$content;
7956                    "inline" === n.type && i && (i.classList.remove("fancybox__content"), "none" !== i.style.display && (i.style.display = "none")), n.$closeButton && (n.$closeButton.remove(), (n.$closeButton = null));
7957                    const s = i && i.$placeHolder;
7958                    s && (s.parentNode.insertBefore(i, s), s.remove(), (i.$placeHolder = null));
7959                }
7960                onMessage(e) {
7961                    try {
7962                        let t = JSON.parse(e.data);
7963                        if ("https://player.vimeo.com" === e.origin) {
7964                            if ("ready" === t.event) for (let t of document.getElementsByClassName("fancybox__iframe")) t.contentWindow === e.source && (t.isReady = 1);
7965                        } else "https://www.youtube-nocookie.com" === e.origin && "onReady" === t.event && (document.getElementById(t.id).isReady = 1);
7966                    } catch (e) {}
7967                }
7968                attach() {
7969                    this.fancybox.on(this.events), window.addEventListener("message", this.onMessage, !1);
7970                }
7971                detach() {
7972                    this.fancybox.off(this.events), window.removeEventListener("message", this.onMessage, !1);
7973                }
7974            }
7975            Le.defaults = $e;
7976            class Pe {
7977                constructor(e) {
7978                    this.fancybox = e;
7979                    for (const e of ["onReady", "onClosing", "onDone", "onPageChange", "onCreateSlide", "onRemoveSlide", "onImageStatusChange"]) this[e] = this[e].bind(this);
7980                    this.events = { ready: this.onReady, closing: this.onClosing, done: this.onDone, "Carousel.change": this.onPageChange, "Carousel.createSlide": this.onCreateSlide, "Carousel.removeSlide": this.onRemoveSlide };
7981                }
7982                onReady() {
7983                    this.fancybox.Carousel.slides.forEach((e) => {
7984                        e.$el && this.setContent(e);
7985                    });
7986                }
7987                onDone(e, t) {
7988                    this.handleCursor(t);
7989                }
7990                onClosing(e) {
7991                    clearTimeout(this.clickTimer),
7992                        (this.clickTimer = null),
7993                        e.Carousel.slides.forEach((e) => {
7994                            e.$image && (e.state = "destroy"), e.Panzoom && e.Panzoom.detachEvents();
7995                        }),
7996                        "closing" === this.fancybox.state && this.canZoom(e.getSlide()) && this.zoomOut();
7997                }
7998                onCreateSlide(e, t, n) {
7999                    "ready" === this.fancybox.state && this.setContent(n);
8000                }
8001                onRemoveSlide(e, t, n) {
8002                    n.$image && (n.$el.classList.remove(e.option("Image.canZoomInClass")), n.$image.remove(), (n.$image = null)),
8003                        n.Panzoom && (n.Panzoom.destroy(), (n.Panzoom = null)),
8004                        n.$el && n.$el.dataset && delete n.$el.dataset.imageFit;
8005                }
8006                setContent(e) {
8007                    if (e.isDom || e.html || (e.type && "image" !== e.type)) return;
8008                    if (e.$image) return;
8009                    (e.type = "image"), (e.state = "loading");
8010                    const t = document.createElement("div");
8011                    t.style.visibility = "hidden";
8012                    const n = document.createElement("img");
8013                    n.addEventListener("load", (t) => {
8014                        t.stopImmediatePropagation(), this.onImageStatusChange(e);
8015                    }),
8016                        n.addEventListener("error", () => {
8017                            this.onImageStatusChange(e);
8018                        }),
8019                        (n.src = e.src),
8020                        (n.alt = ""),
8021                        (n.draggable = !1),
8022                        n.classList.add("fancybox__image"),
8023                        e.srcset && n.setAttribute("srcset", e.srcset),
8024                        e.sizes && n.setAttribute("sizes", e.sizes),
8025                        (e.$image = n);
8026                    const i = this.fancybox.option("Image.wrap");
8027                    if (i) {
8028                        const s = document.createElement("div");
8029                        s.classList.add("string" == typeof i ? i : "fancybox__image-wrap"), s.appendChild(n), t.appendChild(s), (e.$wrap = s);
8030                    } else t.appendChild(n);
8031                    (e.$el.dataset.imageFit = this.fancybox.option("Image.fit")), this.fancybox.setContent(e, t), n.complete || n.error ? this.onImageStatusChange(e) : this.fancybox.showLoading(e);
8032                }
8033                onImageStatusChange(e) {
8034                    const t = e.$image;
8035                    t &&
8036                        "loading" === e.state &&
8037                        (t.complete && t.naturalWidth && t.naturalHeight
8038                            ? (this.fancybox.hideLoading(e),
8039                              "contain" === this.fancybox.option("Image.fit") && this.initSlidePanzoom(e),
8040                              e.$el.addEventListener("wheel", (t) => this.onWheel(e, t), { passive: !1 }),
8041                              e.$content.addEventListener("click", (t) => this.onClick(e, t), { passive: !1 }),
8042                              this.revealContent(e))
8043                            : this.fancybox.setError(e, "{{IMAGE_ERROR}}"));
8044                }
8045                initSlidePanzoom(e) {
8046                    e.Panzoom ||
8047                        ((e.Panzoom = new me(
8048                            e.$el,
8049                            re(!0, this.fancybox.option("Image.Panzoom", {}), {
8050                                viewport: e.$wrap,
8051                                content: e.$image,
8052                                width: e._width,
8053                                height: e._height,
8054                                wrapInner: !1,
8055                                textSelection: !0,
8056                                touch: this.fancybox.option("Image.touch"),
8057                                panOnlyZoomed: !0,
8058                                click: !1,
8059                                wheel: !1,
8060                            })
8061                        )),
8062                        e.Panzoom.on("startAnimation", () => {
8063                            this.fancybox.trigger("Image.startAnimation", e);
8064                        }),
8065                        e.Panzoom.on("endAnimation", () => {
8066                            "zoomIn" === e.state && this.fancybox.done(e), this.handleCursor(e), this.fancybox.trigger("Image.endAnimation", e);
8067                        }),
8068                        e.Panzoom.on("afterUpdate", () => {
8069                            this.handleCursor(e), this.fancybox.trigger("Image.afterUpdate", e);
8070                        }));
8071                }
8072                revealContent(e) {
8073                    null === this.fancybox.Carousel.prevPage && e.index === this.fancybox.options.startIndex && this.canZoom(e) ? this.zoomIn() : this.fancybox.revealContent(e);
8074                }
8075                getZoomInfo(e) {
8076                    const t = e.$thumb.getBoundingClientRect(),
8077                        n = t.width,
8078                        i = t.height,
8079                        s = e.$content.getBoundingClientRect(),
8080                        o = s.width,
8081                        r = s.height,
8082                        a = s.top - t.top,
8083                        l = s.left - t.left;
8084                    let c = this.fancybox.option("Image.zoomOpacity");
8085                    return "auto" === c && (c = Math.abs(n / i - o / r) > 0.1), { top: a, left: l, scale: o && n ? n / o : 1, opacity: c };
8086                }
8087                canZoom(e) {
8088                    const t = this.fancybox,
8089                        n = t.$container;
8090                    if (window.visualViewport && 1 !== window.visualViewport.scale) return !1;
8091                    if (e.Panzoom && !e.Panzoom.content.width) return !1;
8092                    if (!t.option("Image.zoom") || "contain" !== t.option("Image.fit")) return !1;
8093                    const i = e.$thumb;
8094                    if (!i || "loading" === e.state) return !1;
8095                    n.classList.add("fancybox__no-click");
8096                    const s = i.getBoundingClientRect();
8097                    let o;
8098                    if (this.fancybox.option("Image.ignoreCoveredThumbnail")) {
8099                        const e = document.elementFromPoint(s.left + 1, s.top + 1) === i,
8100                            t = document.elementFromPoint(s.right - 1, s.bottom - 1) === i;
8101                        o = e && t;
8102                    } else o = document.elementFromPoint(s.left + 0.5 * s.width, s.top + 0.5 * s.height) === i;
8103                    return n.classList.remove("fancybox__no-click"), o;
8104                }
8105                zoomIn() {
8106                    const e = this.fancybox,
8107                        t = e.getSlide(),
8108                        n = t.Panzoom,
8109                        { top: i, left: s, scale: o, opacity: r } = this.getZoomInfo(t);
8110                    e.trigger("reveal", t),
8111                        n.panTo({ x: -1 * s, y: -1 * i, scale: o, friction: 0, ignoreBounds: !0 }),
8112                        (t.$content.style.visibility = ""),
8113                        (t.state = "zoomIn"),
8114                        !0 === r &&
8115                            n.on("afterTransform", (e) => {
8116                                ("zoomIn" !== t.state && "zoomOut" !== t.state) || (e.$content.style.opacity = Math.min(1, 1 - (1 - e.content.scale) / (1 - o)));
8117                            }),
8118                        n.panTo({ x: 0, y: 0, scale: 1, friction: this.fancybox.option("Image.zoomFriction") });
8119                }
8120                zoomOut() {
8121                    const e = this.fancybox,
8122                        t = e.getSlide(),
8123                        n = t.Panzoom;
8124                    if (!n) return;
8125                    (t.state = "zoomOut"), (e.state = "customClosing"), t.$caption && (t.$caption.style.visibility = "hidden");
8126                    let i = this.fancybox.option("Image.zoomFriction");
8127                    const s = (e) => {
8128                        const { top: s, left: o, scale: r, opacity: a } = this.getZoomInfo(t);
8129                        e || a || (i *= 0.82), n.panTo({ x: -1 * o, y: -1 * s, scale: r, friction: i, ignoreBounds: !0 }), (i *= 0.98);
8130                    };
8131                    window.addEventListener("scroll", s),
8132                        n.once("endAnimation", () => {
8133                            window.removeEventListener("scroll", s), e.destroy();
8134                        }),
8135                        s();
8136                }
8137                handleCursor(e) {
8138                    if ("image" !== e.type || !e.$el) return;
8139                    const t = e.Panzoom,
8140                        n = this.fancybox.option("Image.click", !1, e),
8141                        i = this.fancybox.option("Image.touch"),
8142                        s = e.$el.classList,
8143                        o = this.fancybox.option("Image.canZoomInClass"),
8144                        r = this.fancybox.option("Image.canZoomOutClass");
8145                    s.remove(r), s.remove(o), t && "toggleZoom" === n ? (t && 1 === t.content.scale && t.option("maxScale") - t.content.scale > 0.01 ? s.add(o) : t.content.scale > 1 && !i && s.add(r)) : "close" === n && s.add(r);
8146                }
8147                onWheel(e, t) {
8148                    if ("ready" === this.fancybox.state && !1 !== this.fancybox.trigger("Image.
8148wheel", t))
8149                        switch (this.fancybox.option("Image.wheel")) {
8150                            case "zoom":
8151                                "done" === e.state && e.Panzoom && e.Panzoom.zoomWithWheel(t);
8152                                break;
8153                            case "close":
8154                                this.fancybox.close();
8155                                break;
8156                            case "slide":
8157                                this.fancybox[t.deltaY < 0 ? "prev" : "next"]();
8158                        }
8159                }
8160                onClick(e, t) {
8161                    if ("ready" !== this.fancybox.state) return;
8162                    const n = e.Panzoom;
8163                    if (n && (n.dragPosition.midPoint || 0 !== n.dragOffset.x || 0 !== n.dragOffset.y || 1 !== n.dragOffset.scale)) return;
8164                    if (this.fancybox.Carousel.Panzoom.lockAxis) return !1;
8165                    const i = (n) => {
8166                            switch (n) {
8167                                case "toggleZoom":
8168                                    t.stopPropagation(), e.Panzoom && e.Panzoom.zoomWithClick(t);
8169                                    break;
8170                                case "close":
8171                                    this.fancybox.close();
8172                                    break;
8173                                case "next":
8174                                    t.stopPropagation(), this.fancybox.next();
8175                            }
8176                        },
8177                        s = this.fancybox.option("Image.click"),
8178                        o = this.fancybox.option("Image.doubleClick");
8179                    o
8180                        ? this.clickTimer
8181                            ? (clearTimeout(this.clickTimer), (this.clickTimer = null), i(o))
8182                            : (this.clickTimer = setTimeout(() => {
8183                                  (this.clickTimer = null), i(s);
8184                              }, 300))
8185                        : i(s);
8186                }
8187                onPageChange(e, t) {
8188                    const n = e.getSlide();
8189                    t.slides.forEach((e) => {
8190                        e.Panzoom && "done" === e.state && e.index !== n.index && e.Panzoom.panTo({ x: 0, y: 0, scale: 1, friction: 0.8 });
8191                    });
8192                }
8193                attach() {
8194                    this.fancybox.on(this.events);
8195                }
8196                detach() {
8197                    this.fancybox.off(this.events);
8198                }
8199            }
8200            Pe.defaults = {
8201                canZoomInClass: "can-zoom_in",
8202                canZoomOutClass: "can-zoom_out",
8203                zoom: !0,
8204                zoomOpacity: "auto",
8205                zoomFriction: 0.82,
8206                ignoreCoveredThumbnail: !1,
8207                touch: !0,
8208                click: "toggleZoom",
8209                doubleClick: null,
8210                wheel: "zoom",
8211                fit: "contain",
8212                wrap: !1,
8213                Panzoom: { ratio: 1 },
8214            };
8215            class Oe {
8216                constructor(e) {
8217                    this.fancybox = e;
8218                    for (const e of ["onChange", "onClosing"]) this[e] = this[e].bind(this);
8219                    (this.events = { initCarousel: this.onChange, "Carousel.change": this.onChange, closing: this.onClosing }), (this.hasCreatedHistory = !1), (this.origHash = ""), (this.timer = null);
8220                }
8221                onChange(e) {
8222                    const t = e.Carousel;
8223                    this.timer && clearTimeout(this.timer);
8224                    const n = null === t.prevPage,
8225                        i = e.getSlide(),
8226                        s = new URL(document.URL).hash;
8227                    let o = !1;
8228                    if (i.slug) o = "#" + i.slug;
8229                    else {
8230                        const n = i.$trigger && i.$trigger.dataset,
8231                            s = e.option("slug") || (n && n.fancybox);
8232                        s && s.length && "true" !== s && (o = "#" + s + (t.slides.length > 1 ? "-" + (i.index + 1) : ""));
8233                    }
8234                    n && (this.origHash = s !== o ? s : ""),
8235                        o &&
8236                            s !== o &&
8237                            (this.timer = setTimeout(() => {
8238                                try {
8239                                    window.history[n ? "pushState" : "replaceState"]({}, document.title, window.location.pathname + window.location.search + o), n && (this.hasCreatedHistory = !0);
8240                                } catch (e) {}
8241                            }, 300));
8242                }
8243                onClosing() {
8244                    if ((this.timer && clearTimeout(this.timer), !0 !== this.hasSilentClose))
8245                        try {
8246                            return void window.history.replaceState({}, document.title, window.location.pathname + window.location.search + (this.origHash || ""));
8247                        } catch (e) {}
8248                }
8249                attach(e) {
8250                    e.on(this.events);
8251                }
8252                detach(e) {
8253                    e.off(this.events);
8254                }
8255                static startFromUrl() {
8256                    const e = Oe.Fancybox;
8257                    if (!e || e.getInstance() || !1 === e.defaults.Hash) return;
8258                    const { hash: t, slug: n, index: i } = Oe.getParsedURL();
8259                    if (!n) return;
8260                    let s = document.querySelector(`[data-slug="${t}"]`);
8261                    if ((s && s.dispatchEvent(new CustomEvent("click", { bubbles: !0, cancelable: !0 })), e.getInstance())) return;
8262                    const o = document.querySelectorAll(`[data-fancybox="${n}"]`);
8263                    o.length && (null === i && 1 === o.length ? (s = o[0]) : i && (s = o[i - 1]), s && s.dispatchEvent(new CustomEvent("click", { bubbles: !0, cancelable: !0 })));
8264                }
8265                static onHashChange() {
8266                    const { slug: e, index: t } = Oe.getParsedURL(),
8267                        n = Oe.Fancybox,
8268                        i = n && n.getInstance();
8269                    if (i && i.plugins.Hash) {
8270                        if (e) {
8271                            const n = i.Carousel;
8272                            if (e === i.option("slug")) return n.slideTo(t - 1);
8273                            for (let t of n.slides) if (t.slug && t.slug === e) return n.slideTo(t.index);
8274                            const s = i.getSlide(),
8275                                o = s.$trigger && s.$trigger.dataset;
8276                            if (o && o.fancybox === e) return n.slideTo(t - 1);
8277                        }
8278                        (i.plugins.Hash.hasSilentClose = !0), i.close();
8279                    }
8280                    Oe.startFromUrl();
8281                }
8282                static create(e) {
8283                    function t() {
8284                        window.addEventListener("hashchange", Oe.onHashChange, !1), Oe.startFromUrl();
8285                    }
8286                    (Oe.Fancybox = e),
8287                        Ce &&
8288                            window.requestAnimationFrame(() => {
8289                                /complete|interactive|loaded/.test(document.readyState) ? t() : document.addEventListener("DOMContentLoaded", t);
8290                            });
8291                }
8292                static destroy() {
8293                    window.removeEventListener("hashchange", Oe.onHashChange, !1);
8294                }
8295                static getParsedURL() {
8296                    const e = window.location.hash.substr(1),
8297                        t = e.split("-"),
8298                        n = (t.length > 1 && /^\+?\d+$/.test(t[t.length - 1]) && parseInt(t.pop(-1), 10)) || null;
8299                    return { hash: e, slug: t.join("-"), index: n };
8300                }
8301            }
8302            const Me = {
8303                pageXOffset: 0,
8304                pageYOffset: 0,
8305                element: () => document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement,
8306                activate(e) {
8307                    (Me.pageXOffset = window.pageXOffset),
8308                        (Me.pageYOffset = window.pageYOffset),
8309                        e.requestFullscreen ? e.requestFullscreen() : e.mozRequestFullScreen ? e.mozRequestFullScreen() : e.webkitRequestFullscreen ? e.webkitRequestFullscreen() : e.msRequestFullscreen && e.msRequestFullscreen();
8310                },
8311                deactivate() {
8312                    document.exitFullscreen ? document.exitFullscreen() : document.mozCancelFullScreen ? document.mozCancelFullScreen() : document.webkitExitFullscreen && document.webkitExitFullscreen();
8313                },
8314            };
8315            class De {
8316                constructor(e) {
8317                    (this.fancybox = e), (this.active = !1), (this.handleVisibilityChange = this.handleVisibilityChange.bind(this));
8318                }
8319                isActive() {
8320                    return this.active;
8321                }
8322                setTimer() {
8323                    if (!this.active || this.timer) return;
8324                    const e = this.fancybox.option("slideshow.delay", 3e3);
8325                    this.timer = setTimeout(() => {
8326                        (this.timer = null), this.fancybox.option("infinite") || this.fancybox.getSlide().index !== this.fancybox.Carousel.slides.length - 1 ? this.fancybox.next() : this.fancybox.jumpTo(0, { friction: 0 });
8327                    }, e);
8328                    let t = this.$progress;
8329                    t || ((t = document.createElement("div")), t.classList.add("fancybox__progress"), this.fancybox.$carousel.parentNode.insertBefore(t, this.fancybox.$carousel), (this.$progress = t), t.offsetHeight),
8330                        (t.style.transitionDuration = `${e}ms`),
8331                        (t.style.transform = "scaleX(1)");
8332                }
8333                clearTimer() {
8334                    clearTimeout(this.timer), (this.timer = null), this.$progress && ((this.$progress.style.transitionDuration = ""), (this.$progress.style.transform = ""), this.$progress.offsetHeight);
8335                }
8336                activate() {
8337                    this.active ||
8338                        ((this.active = !0),
8339                        this.fancybox.$container.classList.add("has-slideshow"),
8340                        "done" === this.fancybox.getSlide().state && this.setTimer(),
8341                        document.addEventListener("visibilitychange", this.handleVisibilityChange, !1));
8342                }
8343                handleVisibilityChange() {
8344                    this.deactivate();
8345                }
8346                deactivate() {
8347                    (this.active = !1), this.clearTimer(), this.fancybox.$container.classList.remove("has-slideshow"), document.removeEventListener("visibilitychange", this.handleVisibilityChange, !1);
8348                }
8349                toggle() {
8350                    this.active ? this.deactivate() : this.fancybox.Carousel.slides.length > 1 && this.activate();
8351                }
8352            }
8353            const Ne = {
8354                display: ["counter", "zoom", "slideshow", "fullscreen", "thumbs", "close"],
8355                autoEnable: !0,
8356                items: {
8357                    counter: { position: "left", type: "div", class: "fancybox__counter", html: '<span data-fancybox-index=""></span>&nbsp;/&nbsp;<span data-fancybox-count=""></span>', attr: { tabindex: -1 } },
8358                    prev: { type: "button", class: "fancybox__button--prev", label: "PREV", html: '<svg viewBox="0 0 24 24"><path d="M15 4l-8 8 8 8"/></svg>', attr: { "data-fancybox-prev": "" } },
8359                    next: { type: "button", class: "fancybox__button--next", label: "NEXT", html: '<svg viewBox="0 0 24 24"><path d="M8 4l8 8-8 8"/></svg>', attr: { "data-fancybox-next": "" } },
8360                    fullscreen: {
8361                        type: "button",
8362                        class: "fancybox__button--fullscreen",
8363                        label: "TOGGLE_FULLSCREEN",
8364                        html:
8365                            '<svg viewBox="0 0 24 24">\n                <g><path d="M3 8 V3h5"></path><path d="M21 8V3h-5"></path><path d="M8 21H3v-5"></path><path d="M16 21h5v-5"></path></g>\n                <g><path d="M7 2v5H2M17 2v5h5M2 17h5v5M22 17h-5v5"/></g>\n            </svg>',
8366                        click: function (e) {
8367                            e.preventDefault(), Me.element() ? Me.deactivate() : Me.activate(this.fancybox.$container);
8368                        },
8369                    },
8370                    slideshow: {
8371                        type: "button",
8372                        class: "fancybox__button--slideshow",
8373                        label: "TOGGLE_SLIDESHOW",
8374                        html: '<svg viewBox="0 0 24 24">\n                <g><path d="M6 4v16"/><path d="M20 12L6 20"/><path d="M20 12L6 4"/></g>\n                <g>
8374<path d="M7 4v15M17 4v15"/></g>\n            </svg>',
8375                        click: function (e) {
8376                            e.preventDefault(), this.Slideshow.toggle();
8377                        },
8378                    },
8379                    zoom: {
8380                        type: "button",
8381                        class: "fancybox__button--zoom",
8382                        label: "TOGGLE_ZOOM",
8383                        html: '<svg viewBox="0 0 24 24"><circle cx="10" cy="10" r="7"></circle><path d="M16 16 L21 21"></svg>',
8384                        click: function (e) {
8385                            e.preventDefault();
8386                            const t = this.fancybox.getSlide().Panzoom;
8387                            t && t.toggleZoom();
8388                        },
8389                    },
8390                    download: {
8391                        type: "link",
8392                        label: "DOWNLOAD",
8393                        class: "fancybox__button--download",
8394                        html: '<svg viewBox="0 0 24 24"><path d="M12 15V3m0 12l-4-4m4 4l4-4M2 17l.62 2.48A2 2 0 004.56 21h14.88a2 2 0 001.94-1.51L22 17"/></svg>',
8395                        click: function (e) {
8396                            e.stopPropagation();
8397                        },
8398                    },
8399                    thumbs: {
8400                        type: "button",
8401                        label: "TOGGLE_THUMBS",
8402                        class: "fancybox__button--thumbs",
8403                        html:
8404                            '<svg viewBox="0 0 24 24"><circle cx="4" cy="4" r="1" /><circle cx="12" cy="4" r="1" transform="rotate(90 12 4)"/><circle cx="20" cy="4" r="1" transform="rotate(90 20 4)"/><circle cx="4" cy="12" r="1" transform="rotate(90 4 12)"/><circle cx="12" cy="12" r="1" transform="rotate(90 12 12)"/><circle cx="20" cy="12" r="1" transform="rotate(90 20 12)"/><circle cx="4" cy="20" r="1" transform="rotate(90 4 20)"/><circle cx="12" cy="20" r="1" transform="rotate(90 12 20)"/><circle cx="20" cy="20" r="1" transform="rotate(90 20 20)"/></svg>',
8405                        click: function (e) {
8406                            e.stopPropagation();
8407                            const t = this.fancybox.plugins.Thumbs;
8408                            t && t.toggle();
8409                        },
8410                    },
8411                    close: { type: "button", label: "CLOSE", class: "fancybox__button--close", html: '<svg viewBox="0 0 24 24"><path d="M20 20L4 4m16 0L4 20"></path></svg>', attr: { "data-fancybox-close": "", tabindex: 0 } },
8412                },
8413            };
8414            class Ie {
8415                constructor(e) {
8416                    (this.fancybox = e), (this.$container = null), (this.state = "init");
8417                    for (const e of ["onInit", "onPrepare", "onDone", "onKeydown", "onClosing", "onChange", "onSettle", "onRefresh"]) this[e] = this[e].bind(this);
8418                    this.events = {
8419                        init: this.onInit,
8420                        prepare: this.onPrepare,
8421                        done: this.onDone,
8422                        keydown: this.onKeydown,
8423                        closing: this.onClosing,
8424                        "Carousel.change": this.onChange,
8425                        "Carousel.settle": this.onSettle,
8426                        "Carousel.Panzoom.touchStart": () => this.onRefresh(),
8427                        "Image.startAnimation": (e, t) => this.onRefresh(t),
8428                        "Image.afterUpdate": (e, t) => this.onRefresh(t),
8429                    };
8430                }
8431                onInit() {
8432                    if (this.fancybox.option("Toolbar.autoEnable")) {
8433                        let e = !1;
8434                        for (const t of this.fancybox.items)
8435                            if ("image" === t.type) {
8436                                e = !0;
8437                                break;
8438                            }
8439                        if (!e) return void (this.state = "disabled");
8440                    }
8441                    for (const e of this.fancybox.option("Toolbar.display"))
8442                        if ("close" === (oe(e) ? e.id : e)) {
8443                            this.fancybox.options.closeButton = !1;
8444                            break;
8445                        }
8446                }
8447                onPrepare() {
8448                    const e = this.fancybox;
8449                    if (
8450                        "init" === this.state &&
8451                        (this.build(), this.update(), (this.Slideshow = new De(e)), !e.Carousel.prevPage && (e.option("slideshow.autoStart") && this.Slideshow.activate(), e.option("fullscreen.autoStart") && !Me.element()))
8452                    )
8453                        try {
8454                            Me.activate(e.$container);
8455                        } catch (e) {}
8456                }
8457                onFsChange() {
8458                    window.scrollTo(Me.pageXOffset, Me.pageYOffset);
8459                }
8460                onSettle() {
8461                    const e = this.fancybox,
8462                        t = this.Slideshow;
8463                    t && t.isActive() && (e.getSlide().index !== e.Carousel.slides.length - 1 || e.o
8463ption("infinite") ? "done" === e.getSlide().state && t.setTimer() : t.deactivate());
8464                }
8465                onChange() {
8466                    this.update(), this.Slideshow && this.Slideshow.isActive() && this.Slideshow.clearTimer();
8467                }
8468                onDone(e, t) {
8469                    const n = this.Slideshow;
8470                    t.index === e.getSlide().index && (this.update(), n && n.isActive() && (e.option("infinite") || t.index !== e.Carousel.slides.length - 1 ? n.setTimer() : n.deactivate()));
8471                }
8472                onRefresh(e) {
8473                    (e && e.index !== this.fancybox.getSlide().index) || (this.update(), !this.Slideshow || !this.Slideshow.isActive() || (e && "done" !== e.state) || this.Slideshow.deactivate());
8474                }
8475                onKeydown(e, t, n) {
8476                    " " === t && this.Slideshow && (this.Slideshow.toggle(), n.preventDefault());
8477                }
8478                onClosing() {
8479                    this.Slideshow && this.Slideshow.deactivate(), document.removeEventListener("fullscreenchange", this.onFsChange);
8480                }
8481                createElement(e) {
8482                    let t;
8483                    "div" === e.type ? (t = document.createElement("div")) : ((t = document.createElement("link" === e.type ? "a" : "button")), t.classList.add("carousel__button")),
8484                        (t.innerHTML = e.html),
8485                        t.setAttribute("tabindex", e.tabindex || 0),
8486                        e.class && t.classList.add(...e.class.split(" "));
8487                    for (const n in e.attr) t.setAttribute(n, e.attr[n]);
8488                    e.label && t.setAttribute("title", this.fancybox.localize(`{{${e.label}}}`)),
8489                        e.click && t.addEventListener("click", e.click.bind(this)),
8490                        "prev" === e.id && t.setAttribute("data-fancybox-prev", ""),
8491                        "next" === e.id && t.setAttribute("data-fancybox-next", "");
8492                    const n = t.querySelector("svg");
8493                    return n && (n.setAttribute("role", "img"), n.setAttribute("tabindex", "-1"), n.setAttribute("xmlns", "http://www.w3.org/2000/svg")), t;
8494                }
8495                build() {
8496                    this.cleanup();
8497                    const e = this.fancybox.option("Toolbar.items"),
8498                        t = [
8499                            { position: "left", items: [] },
8500                            { position: "center", items: [] },
8501                            { position: "right", items: [] },
8502                        ],
8503                        n = this.fancybox.plugins.Thumbs;
8504                    for (const i of this.fancybox.option("Toolbar.display")) {
8505                        let s, o;
8506                        if ((oe(i) ? ((s = i.id), (o = re({}, e[s], i))) : ((s = i), (o = e[s])), ["counter", "next", "prev", "slideshow"].includes(s) && this.fancybox.items.length < 2)) continue;
8507                        if ("fullscreen" === s) {
8508                            if (!document.fullscreenEnabled || window.fullScreen) continue;
8509                            document.addEventListener("fullscreenchange", this.onFsChange);
8510                        }
8511                        if ("thumbs" === s && (!n || "disabled" === n.state)) continue;
8512                        if (!o) continue;
8513                        let r = o.position || "right",
8514                            a = t.find((e) => e.position === r);
8515                        a && a.items.push(o);
8516                    }
8517                    const i = document.createElement("div");
8518                    i.classList.add("fancybox__toolbar");
8519                    for (const e of t)
8520                        if (e.items.length) {
8521                            const t = document.createElement("div");
8522                            t.classList.add("fancybox__toolbar__items"), t.classList.add(`fancybox__toolbar__items--${e.position}`);
8523                            for (const n of e.items) t.appendChild(this.createElement(n));
8524                            i.appendChild(t);
8525                        }
8526                    this.fancybox.$carousel.parentNode.insertBefore(i, this.fancybox.$carousel), (this.$container = i);
8527                }
8528                update() {
8529                    const e = this.fancybox.getSlide(),
8530                        t = e.index,
8531                        n = this.fancybox.items.length,
8532                        i = e.downloadSrc || ("image" !== e.type || e.error ? null : e.src);
8533                    for (const e of this.fancybox.$container.querySelectorAll("a.fancybox__button--download"))
8534                        i
8535                            ? (e.removeAttribute("disabled"), e.removeAttribute("tabindex"), e.setAttribute("href", i), e.setAttribute("download", i), e.setAttribute("target", "_blank"))
8536                            : (e.setAttribute("disabled", ""), e.setAttribute("tabindex", -1), e.removeAttribute("href"), e.removeAttribute("download"));
8537                    const s = e.Panzoom,
8538                        o = s && s.option("maxScale") > s.option("baseScale");
8539                    for (const e of this.fancybox.$container.querySelectorAll(".fancybox__button--zoom")) o ? e.removeAttribute("disabled") : e.setAttribute("disabled", "");
8540                    for (const t of this.fancybox.$container.querySelectorAll("[data-fancybox-index]")) t.innerHTML = e.index + 1;
8541                    for (const e of this.fancybox.$container.querySelectorAll("[data-fancybox-count]")) e.innerHTML = n;
8542                    if (!this.fancybox.option("infinite")) {
8543                        for (const e of this.fancybox.$container.querySelectorAll("[data-fancybox-prev]")) 0 === t ? e.setAttribute("disabled", "") : e.removeAttribute("disabled");
8544                        for (const e of this.fancybox.$container.querySelectorAll("[data-fancybox-next]")) t === n - 1 ? e.setAttribute("disabled", "") : e.removeAttribute("disabled");
8545                    }
8546                }
8547                cleanup() {
8548                    this.Slideshow && this.Slideshow.isActive() && this.Slideshow.clearTimer(), this.$container && this.$container.remove(), (this.$container = null);
8549                }
8550                attach() {
8551                    this.fancybox.on(this.events);
8552                }
8553                detach() {
8554                    this.fancybox.off(this.events), this.cleanup();
8555                }
8556            }
8557            Ie.defaults = Ne;
8558            const ze = {
8559                    ScrollLock: class {
8560                        constructor(e) {
8561                            (this.fancybox = e), (this.viewport = null), (this.pendingUpdate = null);
8562                            for (const e of ["onReady", "onResize", "onTouchstart", "onTouchmove"]) this[e] = this[e].bind(this);
8563                        }
8564                        onReady() {
8565                            const e = window.visualViewport;
8566                            e && ((this.viewport = e), (this.startY = 0), e.addEventListener("resize", this.onResize), this.updateViewport()),
8567                                window.addEventListener("touchstart", this.onTouchstart, { passive: !1 }),
8568                                window.addEventListener("touchmove", this.onTouchmove, { passive: !1 }),
8569                                window.addEventListener("wheel", this.onWheel, { passive: !1 });
8570                        }
8571                        onResize() {
8572                            this.updateViewport();
8573                        }
8574                        updateViewport() {
8575                            const e = this.fancybox,
8576                                t = this.viewport,
8577                                n = t.scale || 1,
8578                                i = e.$container;
8579                            if (!i) return;
8580                            let s = "",
8581                                o = "",
8582                                r = "";
8583                            n - 1 > 0.1 && ((s = t.width * n + "px"), (o = t.height * n + "px"), (r = `translate3d(${t.offsetLeft}px, ${t.offsetTop}px, 0) scale(${1 / n})`)),
8584                                (i.style.width = s),
8585                                (i.style.height = o),
8586                                (i.style.transform = r);
8587                        }
8588                        onTouchstart(e) {
8589                            this.startY = e.touches ? e.touches[0].screenY : e.screenY;
8590                        }
8591                        onTouchmove(e) {
8592                            const t = this.startY,
8593                                n = window.innerWidth / window.document.documentElement.clientWidth;
8594                            if (!e.cancelable) return;
8595                            if (e.touches.length > 1 || 1 !== n) return;
8596                            const i = le(e.composedPath()[0]);
8597                            if (!i) return void e.preventDefault();
8598                            const s = window.getComputedStyle(i),
8599                                o = parseInt(s.getPropertyValue("height"), 10),
8600                                r = e.touches ? e.touches[0].screenY : e.screenY,
8601                                a = t <= r && 0 === i.scrollTop,
8602                                l = t >= r && i.scrollHeight - i.scrollTop === o;
8603                            (a || l) && e.preventDefault();
8604                        }
8605                        onWheel(e) {
8606                            le(e.composedPath()[0]) || e.preventDefault();
8607                        }
8608                        cleanup() {
8609                            this.pendingUpdate && (cancelAnimationFrame(this.pendingUpdate), (this.pendingUpdate = null));
8610                            const e = this.viewport;
8611                            e && (e.removeEventListener("resize", this.onResize), (this.viewport = null)),
8612                                window.removeEventListener("touchstart", this.onTouchstart, !1),
8613                                window.removeEventListener("touchmove", this.onTouchmove, !1),
8614                                window.removeEventListener("wheel", this.onWheel, { passive: !1 });
8615                        }
8616                        attach() {
8617                            this.fancybox.on("initLayout", this.onReady);
8618                        }
8619                        detach() {
8620                            this.fancybox.off("initLayout", this.onReady), this.cleanup();
8621                        }
8622                    },
8623                    Thumbs: Ae,
8624                    Html: Le,
8625                    Toolbar: Ie,
8626                    Image: Pe,
8627                    Hash: Oe,
8628                },
8629                je = {
8630                    startIndex: 0,
8631                    preload: 1,
8632                    infinite: !0,
8633                    showClass: "fancybox-zoomInUp",
8634                    hideClass: "fancybox-fadeOut",
8635                    animated: !0,
8636                    hideScrollbar: !0,
8637                    parentEl: null,
8638                    mainClass: null,
8639                    autoFocus: !0,
8640                    trapFocus: !0,
8641                    placeFocusBack: !0,
8642                    click: "close",
8643                    closeButton: "inside",
8644                    dragToClose: !0,
8645                    keyboard: { Escape: "close", Delete: "close", Backspace: "close", PageUp: "next", PageDown: "prev", ArrowUp: "next", ArrowDown: "prev", ArrowRight: "next", ArrowLeft: "prev" },
8646                    template: {
8647                        closeButton: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" tabindex="-1">
8647<path d="M20 20L4 4m16 0L4 20"/></svg>',
8648                        spinner: '<svg xmlns="http://www.w3.org/2000/svg" width="50" height="50" viewBox="25 25 50 50" tabindex="-1"><circle cx="50" cy="50" r="20"/></svg>',
8649                        main: null,
8650                    },
8651                    l10n: {
8652                        CLOSE: "Close",
8653                        NEXT: "Next",
8654                        PREV: "Previous",
8655                        MODAL: "You can close this modal content with the ESC key",
8656                        ERROR: "Something Went Wrong, Please Try Again Later",
8657                        IMAGE_ERROR: "Image Not Found",
8658                        ELEMENT_NOT_FOUND: "HTML Element Not Found",
8659                        AJAX_NOT_FOUND: "Error Loading AJAX : Not Found",
8660                        AJAX_FORBIDDEN: "Error Loading AJAX : Forbidden",
8661                        IFRAME_ERROR: "Error Loading Page",
8662                        TOGGLE_ZOOM: "Toggle zoom level",
8663                        TOGGLE_THUMBS: "Toggle thumbnails",
8664                        TOGGLE_SLIDESHOW: "Toggle slideshow",
8665                        TOGGLE_FULLSCREEN: "Toggle full-screen mode",
8666                        DOWNLOAD: "Download",
8667                    },
8668                },
8669                Fe = new Map();
8670            let He = 0;
8671            class Re extends fe {
8672                constructor(e, t = {}) {
8673                    (e = e.map((e) => (e.width && (e._width = e.width), e.height && (e._height = e.height), e))),
8674                        super(re(!0, {}, je, t)),
8675                        this.bindHandlers(),
8676                        (this.state = "init"),
8677                        this.setItems(e),
8678                        this.attachPlugins(Re.Plugins),
8679                        this.trigger("init"),
8680                        !0 === this.option("hideScrollbar") && this.hideScrollbar(),
8681                        this.initLayout(),
8682                        this.initCarousel(),
8683                        this.attachEvents(),
8684                        Fe.set(this.id, this),
8685                        this.trigger("prepare"),
8686                        (this.state = "ready"),
8687                        this.trigger("ready"),
8688                        this.$container.setAttribute("aria-hidden", "false"),
8689                        this.option("trapFocus") && this.focus();
8690                }
8691                option(e, ...t) {
8692                    const n = this.getSlide();
8693                    let i = n ? n[e] : void 0;
8694                    return void 0 !== i ? ("function" == typeof i && (i = i.call(this, this, ...t)), i) : super.option(e, ...t);
8695                }
8696                bindHandlers() {
8697                    for (const e of ["onMousedown", "onKeydown", "onClick", "onFocus", "onCreateSlide", "onSettle", "onTouchMove", "onTouchEnd", "onTransform"]) this[e] = this[e].bind(this);
8698                }
8699                attachEvents() {
8700                    document.addEventListener("mousedown", this.onMousedown),
8701                        document.addEventListener("keydown", this.onKeydown, !0),
8702                        this.option("trapFocus") && document.addEventListener("focus", this.onFocus, !0),
8703                        this.$container.addEventListener("click", this.onClick);
8704                }
8705                detachEvents() {
8706                    document.removeEventListener("mousedown", this.onMousedown),
8707                        document.removeEventListener("keydown", this.onKeydown, !0),
8708                        document.removeEventListener("focus", this.onFocus, !0),
8709                        this.$container.removeEventListener("click", this.onClick);
8710                }
8711                initLayout() {
8712                    this.$root = this.option("parentEl") || document.body;
8713                    let e = this.option("template.main");
8714                    e && (this.$root.insertAdjacentHTML("beforeend", this.localize(e)), (this.$container = this.$root.querySelector(".fancybox__container"))),
8715                        this.$container || ((this.$container = document.createElement("div")), this.$root.appendChild(this.$container)),
8716                        (this.$container.onscroll = () => ((this.$container.scrollLeft = 0), !1)),
8717                        Object.entries({ class: "fancybox__container", role: "dialog", tabIndex: "-1", "aria-modal": "true", "aria-hidden": "true", "aria-label": this.localize("{{MODAL}}") }
8717).forEach((e) =>
8718                            this.$container.setAttribute(...e)
8719                        ),
8720                        this.option("animated") && this.$container.classList.add("is-animated"),
8721                        (this.$backdrop = this.$container.querySelector(".fancybox__backdrop")),
8722                        this.$backdrop || ((this.$backdrop = document.createElement("div")), this.$backdrop.classList.add("fancybox__backdrop"), this.$container.appendChild(this.$backdrop)),
8723                        (this.$carousel = this.$container.querySelector(".fancybox__carousel")),
8724                        this.$carousel || ((this.$carousel = document.createElement("div")), this.$carousel.classList.add("fancybox__carousel"), this.$container.appendChild(this.$carousel)),
8725                        (this.$container.Fancybox = this),
8726                        (this.id = this.$container.getAttribute("id")),
8727                        this.id || ((this.id = this.options.id || ++He), this.$container.setAttribute("id", "fancybox-" + this.id));
8728                    const t = this.option("mainClass");
8729                    return t && this.$container.classList.add(...t.split(" ")), document.documentElement.classList.add("with-fancybox"), this.trigger("initLayout"), this;
8730                }
8731                setItems(e) {
8732                    const t = [];
8733                    for (const n of e) {
8734                        const e = n.$trigger;
8735                        if (e) {
8736                            const t = e.dataset || {};
8737                            (n.src = t.src || e.getAttribute("href") || n.src), (n.type = t.type || n.type), !n.src && e instanceof HTMLImageElement && (n.src = e.currentSrc || n.$trigger.src);
8738                        }
8739                        let i = n.$thumb;
8740                        if (!i) {
8741                            let e = n.$trigger && n.$trigger.origTarget;
8742                            e && (i = e instanceof HTMLImageElement ? e : e.querySelector("img:not([aria-hidden])")),
8743                                !i && n.$trigger && (i = n.$trigger instanceof HTMLImageElement ? n.$trigger : n.$trigger.querySelector("img:not([aria-hidden])"));
8744                        }
8745                        n.$thumb = i || null;
8746                        let s = n.thumb;
8747                        !s && i && ((s = i.currentSrc || i.src), !s && i.dataset && (s = i.dataset.lazySrc || i.dataset.src)), s || "image" !== n.type || (s = n.src), (n.thumb = s || null), (n.caption = n.caption || ""), t.push(n);
8748                    }
8749                    this.items = t;
8750                }
8751                initCarousel() {
8752                    return (
8753                        (this.Carousel = new _e(
8754                            this.$carousel,
8755                            re(
8756                                !0,
8757                                {},
8758                                {
8759                                    prefix: "",
8760                                    classNames: { viewport: "fancybox__viewport", track: "fancybox__track", slide: "fancybox__slide" },
8761                                    textSelection: !0,
8762                                    preload: this.option("preload"),
8763                                    friction: 0.88,
8764                                    slides: this.items,
8765                                    initialPage: this.options.startIndex,
8766                                    slidesPerPage: 1,
8767                                    infiniteX: this.option("infinite"),
8768                                    infiniteY: !0,
8769                                    l10n: this.option("l10n"),
8770                                    Dots: !1,
8771                                    Navigation: { classNames: { main: "fancybox__nav", button: "carousel__button", next: "is-next", prev: "is-prev" } },
8772                                    Panzoom: {
8773                                        textSelection: !0,
8774                                        panOnlyZoomed: () => this.Carousel && this.Carousel.pages && this.Carousel.pages.length < 2 && !this.option("dragToClose"),
8775                                        lockAxis: () => {
8776                                            if (this.Carousel) {
8777                                                let e = "x";
8778                                                return this.option("dragToClose") && (e += "y"), e;
8779                                            }
8780                                        },
8781                                    },
8782                                    on: { "*": (e, ...t) => this.trigger(`Carousel.${e}`, ...t), init: (e) => (this.Carousel = e), createSlide: this.onCreateSlide, settle: this.onSettle },
8783                                },
8784                                this.option("Carousel")
8785                            )
8786                        )),
8787                        this.option("dragToClose") && this.Carousel.Panzoom.on({ touchMove: this.onTouchMove, afterTransform: this.onTransform, touchEnd: this.onTouchEnd }),
8788                        this.trigger("initCarousel"),
8789                        this
8790                    );
8791                }
8792                onCreateSlide(e, t) {
8793                    let n = t.caption || "";
8794                    if (("function" == typeof this.options.caption && (n = this.options.caption.call(this, this, this.Carousel, t)), "string" == typeof n && n.length)) {
8795                        const e = document.createElement("div"),
8796                            i = `fancybox__caption_${this.id}_${t.index}`;
8797                        (e.className = "fancybox__caption"), (e.innerHTML = n), e.setAttribute("id", i), (t.$caption = t.$el.appendChild(e)), t.$el.classList.add("has-caption"), t.$el.setAttribute("aria-labelledby", i);
8798                    }
8799                }
8800                onSettle() {
8801                    this.option("autoFocus") && this.focus();
8802                }
8803                onFocus(e) {
8804                    this.isTopmost() && this.focus(e);
8805                }
8806                onClick(e) {
8807                    if (e.defaultPrevented) return;
8808                    let t = e.composedPath()[0];
8809                    if (t.matches("[data-fancybox-close]")) return e.preventDefault(), void Re.close(!1, e);
8810                    if (t.matches("[data-fancybox-next]")) return e.preventDefault(), void Re.next();
8811                    if (t.matches("[data-fancybox-prev]")) return e.preventDefault(), void Re.prev();
8812                    const n = document.activeElement;
8813                    if (n) {
8814                        if (n.closest("[contenteditable]")) return;
8815                        t.matches(Ee) || n.blur();
8816                    }
8817                    if (!t.closest(".fancybox__content") && !getSelection().toString().length && !1 !== this.trigger("click", e))
8818                        switch (this.option("click")) {
8819                            case "close":
8820                                this.close();
8821                                break;
8822                            case "next":
8823                                this.next();
8824                        }
8825                }
8826                onTouchMove() {
8827                    const e = this.getSlide().Panzoom;
8828                    return !e || 1 === e.content.scale;
8829                }
8830                onTouchEnd(e) {
8831                    const t = e.dragOffset.y;
8832                    Math.abs(t) >= 150 || (Math.abs(t) >= 35 && e.dragOffset.time < 350)
8833                        ? (this.option("hideClass") && (this.getSlide().hideClass = "fancybox-throwOut" + (e.content.y < 0 ? "Up" : "Down")), this.close())
8834                        : "y" === e.lockAxis && e.panTo({ y: 0 });
8835                }
8836                onTransform(e) {
8837                    if (this.$backdrop) {
8838                        const t = Math.abs(e.content.y),
8839                            n = t < 1 ? "" : Math.max(0.33, Math.min(1, 1 - (t / e.content.fitHeight) * 1.5));
8840                        this.$container.style.setProperty("--fancybox-ts", n ? "0s" : ""), this.$container.style.setProperty("--fancybox-opacity", n);
8841                    }
8842                }
8843                onMousedown() {
8844                    "ready" === this.state && document.body.classList.add("is-using-mouse");
8845                }
8846                onKeydown(e) {
8847                    if (!this.isTopmost()) return;
8848                    document.body.classList.remove("is-using-mouse");
8849                    const t = e.key,
8850                        n = this.option("keyboard");
8851                    if (!n || e.ctrlKey || e.altKey || e.shiftKey) return;
8852                    const i = e.composedPath()[0],
8853                        s = document.activeElement && document.activeElement.classList,
8854                        o = s && s.contains("carousel__button");
8855                    if ("Escape" !== t && !o && (e.target.isContentEditable || -1 !== ["BUTTON", "TEXTAREA", "OPTION", "INPUT", "SELECT", "VIDEO"].indexOf(i.nodeName))) return;
8856                    if (!1 === this.trigger("keydown", t, e)) return;
8857                    const r = n[t];
8858                    "function" == typeof this[r] && this[r]();
8859                }
8860                getSlide() {
8861                    const e = this.Carousel;
8862                    if (!e) return null;
8863                    const t = null === e.page ? e.option("initialPage") : e.page,
8864                        n = e.pages || [];
8865                    return n.length && n[t] ? n[t].slides[0] : null;
8866                }
8867                focus(e) {
8868                    if (Re.ignoreFocusChange) return;
8869                    if (["init", "closing", "customClosing", "destroy"].indexOf(this.state) > -1) return;
8870                    const t = this.$container,
8871                        n = this.getSlide(),
8872                        i = "done" === n.state ? n.$el : null;
8873                    if (i && i.contains(document.activeElement)) return;
8874                    e && e.preventDefault(), (Re.ignoreFocusChange = !0);
8875                    const s = Array.from(t.querySelectorAll(Ee));
8876                    let o,
8877                        r = [];
8878                    for (let e of s) {
8879                        const t = e.offsetParent,
8880                            n = i && i.contains(e),
8881                            s = !this.Carousel.$viewport.contains(e);
8882                        t && (n || s)
8883                            ? (r.push(e),
8884                              void 0 !== e.dataset.origTabindex && ((e.tabIndex = e.dataset.origTabindex), e.removeAttribute("data-orig-tabindex")),
8885                              (e.hasAttribute("autoFocus") || (!o && n && !e.classList.contains("carousel__button"))) && (o = e))
8886                            : ((e.dataset.origTabindex = void 0 === e.dataset.origTabindex ? e.getAttribute("tabindex") : e.dataset.origTabindex), (e.tabIndex = -1));
8887                    }
8888                    e ? (r.indexOf(e.target) > -1 ? (this.lastFocus = e.target) : this.lastFocus === t ? Se(r[r.length - 1]) : Se(t)) : this.option("autoFocus") && o ? Se(o) : r.indexOf(document.activeElement) < 0 && Se(t),
8889                        (this.lastFocus = document.activeElement),
8890                        (Re.ignoreFocusChange = !1);
8891                }
8892                hideScrollbar() {
8893                    if (!Ce) return;
8894                    const e = window.innerWidth - document.documentElement.getBoundingClientRect().width,
8895                        t = "fancybox-style-noscroll";
8896                    let n = document.getElementById(t);
8897                    n ||
8898                        (e > 0 &&
8899                            ((n = document.createElement("style")),
8900                            (n.id = t),
8901                            (n.type = "text/css"),
8902                            (n.innerHTML = `.compensate-for-scrollbar {padding-right: ${e}px;}`),
8903                            document.getElementsByTagName("head")[0].appendChild(n),
8904                            document.body.classList.add("compensate-for-scrollbar")));
8905                }
8906                revealScrollbar() {
8907                    document.body.classList.remove("compensate-for-scrollbar");
8908                    const e = document.getElementById("fancybox-style-noscroll");
8909                    e && e.remove();
8910                }
8911                clearContent(e) {
8912                    this.Carousel.trigger("removeSlide", e),
8913                        e.$content && (e.$content.remove(), (e.$content = null)),
8914                        e.$closeButton && (e.$closeButton.remove(), (e.$closeButton = null)),
8915                        e._className && e.$el.classList.remove(e._className);
8916                }
8917                setContent(e, t, n = {}) {
8918                    let i;
8919                    const s = e.$el;
8920                    if (t instanceof HTMLElement) ["img", "iframe", "video", "audio"].indexOf(t.nodeName.toLowerCase()) > -1 ? ((i = document.createElement("div")), i.appendChild(t)) : (i = t);
8921                    else {
8922                        const e = document.createRange().createContextualFragment(t);
8923                        (i = document.createElement("div")), i.appendChild(e);
8924                    }
8925                    if ((e.filter && !e.error && (i = i.querySelector(e.filter)), i instanceof Element))
8926                        return (
8927                            (e._className = `has-${n.suffix || e.type || "unknown"}`),
8928                            s.classList.add(e._className),
8929                            i.classList.add("fancybox__content"),
8930                            ("none" !== i.style.display && "none" !== getComputedStyle(i).getPropertyValue("display")) || (i.style.display = e.display || this.option("defaultDisplay") || "flex"),
8931                            e.id && i.setAttribute("id", e.id),
8932                            (e.$content = i),
8933                            s.prepend(i),
8934                            this.manageCloseButton(e),
8935                            "loading" !== e.state && this.revealContent(e),
8936                            i
8937                        );
8938                    this.setError(e, "{{ELEMENT_NOT_FOUND}}");
8939                }
8940                manageCloseButton(e) {
8941                    const t = void 0 === e.closeButton ? this.option("closeButton") : e.closeButton;
8942                    if (!t || ("top" === t && this.$closeButton)) return;
8943                    const n = document.createElement("button");
8944                    n.classList.add("carousel__button", "is-close"),
8945                        n.setAttribute("title", this.options.l10n.CLOSE),
8946                        (n.innerHTML = this.option("template.closeButton")),
8947                        n.addEventListener("click", (e) => this.close(e)),
8948                        "inside" === t ? (e.$closeButton && e.$closeButton.remove(), (e.$closeButton = e.$content.appendChild(n))) : (this.$closeButton = this.$container.insertBefore(n, this.$container.firstChild));
8949                }
8950                revealContent(e) {
8951                    this.trigger("reveal", e), (e.$content.style.visibility = "");
8952                    let t = !1;
8953                    e.error || "loading" === e.state || null !== this.Carousel.prevPage || e.index !== this.options.startIndex || (t = void 0 === e.showClass ? this.option("showClass") : e.showClass),
8954                        t
8955                            ? ((e.state = "animating"),
8956                              this.animateCSS(e.$content, t, () => {
8957                                  this.done(e);
8958                              }))
8959                            : this.done(e);
8960                }
8961                animateCSS(e, t, n) {
8962                    if ((e && e.dispatchEvent(new CustomEvent("animationend", { bubbles: !0, cancelable: !0 })), !e || !t)) return void ("function" == typeof n && n());
8963                    const i = function (s) {
8964                        s.currentTarget === this && (e.removeEventListener("animationend", i), n && n(), e.classList.remove(t));
8965                    };
8966                    e.addEventListener("animationend", i), e.classList.add(t);
8967                }
8968                done(e) {
8969                    (e.state = "done"), this.trigger("done", e);
8970                    const t = this.getSlide();
8971                    t && e.index === t.index && this.option("autoFocus") && this.focus();
8972                }
8973                setError(e, t) {
8974                    (e.error = t), this.hideLoading(e), this.clearContent(e);
8975                    const n = document.createElement("div");
8976                    n.classList.add("fancybox-error"), (n.innerHTML = this.localize(t || "<p>{{ERROR}}</p>")), this.setContent(e, n, { suffix: "error" });
8977                }
8978                showLoading(e) {
8979                    (e.state = "loading"), e.$el.classList.add("is-loading");
8980                    let t = e.$el.querySelector(".fancybox__spinner");
8981                    t ||
8982                        ((t = document.createElement("div")),
8983                        t.classList.add("fancybox__spinner"),
8984                        (t.innerHTML = this.option("template.spinner")),
8985                        t.addEventListener("click", () => {
8986                            this.Carousel.Panzoom.velocity || this.close();
8987                        }),
8988                        e.$el.prepend(t));
8989                }
8990                hideLoading(e) {
8991                    const t = e.$el && e.$el.querySelector(".fancybox__spinner");
8992                    t && (t.remove(), e.$el.classList.remove("is-loading")), "loading" === e.state && (this.trigger("load", e), (e.state = "ready"));
8993                }
8994                next() {
8995                    const e = this.Carousel;
8996                    e && e.pages.length > 1 && e.slideNext();
8997                }
8998                prev() {
8999                    const e = this.Carousel;
9000                    e && e.pages.length > 1 && e.slidePrev();
9001                }
9002                jumpTo(...e) {
9003                    this.Carousel && this.Carousel.slideTo(...e);
9004                }
9005                isClosing() {
9006                    return ["closing", "customClosing", "destroy"].includes(this.state);
9007                }
9008                isTopmost() {
9009                    return Re.getInstance().id == this.id;
9010                }
9011                close(e) {
9012                    if ((e && e.preventDefault(), this.isClosing())) return;
9013                    if (!1 === this.trigger("shouldClose", e)) return;
9014                    if (((this.state = "closing"), this.Carousel.Panzoom.destroy(), this.detachEvents(), this.trigger("closing", e), "destroy" === this.state)) return;
9015                    this.$container.setAttribute("aria-hidden", "true"), this.$container.classList.add("is-closing");
9016                    const t = this.getSlide();
9017                    if (
9018                        (this.Carousel.slides.forEach((e) => {
9019                            e.$content && e.index !== t.index && this.Carousel.trigger("removeSlide", e);
9020                        }),
9021                        "closing" === this.state)
9022                    ) {
9023                        const e = void 0 === t.hideClass ? this.option("hideClass") : t.hideClass;
9024                        this.animateCSS(
9025                            t.$content,
9026                            e,
9027                            () => {
9028                                this.destroy();
9029                            },
9030                            !0
9031                        );
9032                    }
9033                }
9034                destroy() {
9035                    if ("destroy" === this.state) return;
9036                    (this.state = "destroy"), this.trigger("destroy");
9037                    const e = this.option("placeFocusBack") ? this.option("triggerTarget", this.getSlide().$trigger) : null;
9038                    this.Carousel.destroy(),
9039                        this.detachPlugins(),
9040                        (this.Carousel = null),
9041                        (this.options = {}),
9042                        (this.events = {}),
9043                        this.$container.remove(),
9044                        (this.$container = this.$backdrop = this.$carousel = null),
9045                        e && Se(e),
9046                        Fe.delete(this.id);
9047                    const t = Re.getInstance();
9048                    t ? t.focus() : (document.documentElement.classList.remove("with-fancybox"), document.body.classList.remove("is-using-mouse"), this.revealScrollbar());
9049                }
9050                static show(e, t = {}) {
9051                    return new Re(e, t);
9052                }
9053                static fromEvent(e, t = {}) {
9054                    if (e.defaultPrevented) return;
9055                    if (e.button && 0 !== e.button) return;
9056                    if (e.ctrlKey || e.metaKey || e.shiftKey) return;
9057                    const n = e.composedPath()[0];
9058                    let i,
9059                        s,
9060                        o,
9061                        r = n;
9062                    if (((r.matches("[data-fancybox-trigger]") || (r = r.closest("[data-fancybox-trigger]"))) && ((t.triggerTarget = r), (i = r && r.dataset && r.dataset.fancyboxTrigger)), i)) {
9063                        const e = document.querySelectorAll(`[data-fancybox="${i}"]`),
9064                            t = parseInt(r.dataset.fancyboxIndex, 10) || 0;
9065                        r = e.length ? e[t] : r;
9066                    }
9067                    Array.from(Re.openers.keys())
9068                        .reverse()
9069                        .some((t) => {
9070                            o = r || n;
9071                            let i = !1;
9072                            try {
9073                                o instanceof Element && ("string" == typeof t || t instanceof String) && (i = o.matches(t) || (o = o.closest(t)));
9074                            } catch (e) {}
9075                            return !!i && (e.preventDefault(), (s = t), !0);
9076                        });
9077                    let a = !1;
9078                    if (s) {
9079                        (t.event = e), (t.target = o), (o.origTarget = n), (a = Re.fromOpener(s, t));
9080                        const i = Re.getInstance();
9081                        i && "ready" === i.state && e.detail && document.body.classList.add("is-using-mouse");
9082                    }
9083                    return a;
9084                }
9085                static fromOpener(e, t = {}) {
9086                    let n = [],
9087                        i = t.startIndex || 0,
9088                        s = t.target || null;
9089                    const o = void 0 !== (t = re({}, t, Re.openers.get(e))).groupAll && t.groupAll,
9090                        r = void 0 === t.groupAttr ? "data-fancybox" : t.groupAttr,
9091                        a = r && s ? s.getAttribute(`${r}`) : "";
9092                    if (!s || a || o) {
9093                        const i = t.root || (s ? s.getRootNode() : document.body);
9094                        n = [].slice.call(i.querySelectorAll(e));
9095                    }
9096                    if ((s && !o && (n = a ? n.filter((e) => e.getAttribute(`${r}`) === a) : [s]), !n.length)) return !1;
9097                    const l = Re.getInstance();
9098                    return (
9099                        !(l && n.indexOf(l.options.$trigger) > -1) &&
9100                        ((i = s ? n.indexOf(s) : i),
9101                        (n = n.map(function (e) {
9102                            const t = ["false", "0", "no", "null", "undefined"],
9103                                n = ["true", "1", "yes"],
9104                                i = Object.assign({}, e.dataset),
9105                                s = {};
9106                            for (let [e, o] of Object.entries(i))
9107                                if ("fancybox" !== e)
9108                                    if ("width" === e || "height" === e) s[`_${e}`] = o;
9109                                    else if ("string" == typeof o || o instanceof String)
9110                                        if (t.indexOf(o) > -1) s[e] = !1;
9111                                        else if (n.indexOf(s[e]) > -1) s[e] = !0;
9112                                        else
9113                                            try {
9114                                                s[e] = JSON.parse(o);
9115                                            } catch (t) {
9116                                                s[e] = o;
9117                                            }
9118                                    else s[e] = o;
9119                            return e instanceof Element && (s.$trigger = e), s;
9120                        })),
9121                        new Re(n, re({}, t, { startIndex: i, $trigger: s })))
9122                    );
9123                }
9124                static bind(e, t = {}) {
9125                    function n() {
9126                        document.body.addEventListener("click", Re.fromEvent, !1);
9127                    }
9128                    Ce && (Re.openers.size || (/complete|interactive|loaded/.test(document.readyState) ? n() : document.addEventListener("DOMContentLoaded", n)), Re.openers.set(e, t));
9129                }
9130                static unbind(e) {
9131                    Re.openers.delete(e), Re.openers.size || Re.destroy();
9132                }
9133                static destroy() {
9134                    let e;
9135                    for (; (e = Re.getInstance()); ) e.destroy();
9136                    (Re.openers = new Map()), document.body.removeEventListener("click", Re.fromEvent, !1);
9137                }
9138                static getInstance(e) {
9139                    return e
9140                        ? Fe.get(e)
9141                        : Array.from(Fe.values())
9142                              .reverse()
9143                              .find((e) => !e.isClosing() && e) || null;
9144                }
9145                static close(e = !0, t) {
9146                    if (e) for (const e of Fe.values()) e.close(t);
9147                    else {
9148                        const e = Re.getInstance();
9149                        e && e.close(t);
9150                    }
9151                }
9152                static next() {
9153                    const e = Re.getInstance();
9154                    e && e.next();
9155                }
9156                static prev() {
9157                    const e = Re.getInstance();
9158                    e && e.prev();
9159                }
9160            }
9161            (Re.version = "4.0.31"), (Re.defaults = je), (Re.openers = new Map()), (Re.Plugins = ze), Re.bind("[data-fancybox]");
9162            for (const [e, t] of Object.entries(Re.Plugins || {})) "function" == typeof t.create && t.create(Re);
9163            var Be = "top",
9164                qe = "bottom",
9165                We = "right",
9166                Ve = "left",
9167                Ge = "auto",
9168                Xe = [Be, qe, We, Ve],
9169                Ye = "start",
9170                Ue = "end",
9171                Ke = "clippingParents",
9172                Ze = "viewport",
9173                Qe = "popper",
9174                Je = "reference",
9175                et = Xe.reduce(function (e, t) {
9176                    return e.concat([t + "-" + Ye, t + "-" + Ue]);
9177                }, []),
9178                tt = [].concat(Xe, [Ge]).reduce(function (e, t) {
9179                    return e.concat([t, t + "-" + Ye, t + "-" + Ue]);
9180                }, []),
9181                nt = "beforeRead",
9182                it = "read",
9183                st = "afterRead",
9184                ot = "beforeMain",
9185                rt = "main",
9186                at = "afterMain",
9187                lt = "beforeWrite",
9188                ct = "write",
9189                dt = "afterWrite",
9190                ht = [nt, it, st, ot, rt, at, lt, ct, dt];
9191            function ut(e) {
9192                return e ? (e.nodeName || "").toLowerCase() : null;
9193            }
9194            function pt(e) {
9195                if (null == e) return window;
9196                if ("[object Window]" !== e.toString()) {
9197                    var t = e.ownerDocument;
9198                    return (t && t.defaultView) || window;
9199                }
9200                return e;
9201            }
9202            function ft(e) {
9203                return e instanceof pt(e).Element || e instanceof Element;
9204            }
9205            function gt(e) {
9206                return e instanceof pt(e).HTMLElement || e instanceof HTMLElement;
9207            }
9208            function mt(e) {
9209                return "undefined" != typeof ShadowRoot && (e instanceof pt(e).ShadowRoot || e instanceof ShadowRoot);
9210            }
9211            const vt = {
9212                name: "applyStyles",
9213                enabled: !0,
9214                phase: "write",
9215                fn: function (e) {
9216                    var t = e.state;
9217                    Object.keys(t.elements).forEach(function (e) {
9218                        var n = t.styles[e] || {},
9219                            i = t.attributes[e] || {},
9220                            s = t.elements[e];
9221                        gt(s) &&
9222                            ut(s) &&
9223                            (Object.assign(s.style, n),
9224                            Object.keys(i).forEach(function (e) {
9225                                var t = i[e];
9226                                !1 === t ? s.removeAttribute(e) : s.setAttribute(e, !0 === t ? "" : t);
9227                            }));
9228                    });
9229                },
9230                effect: function (e) {
9231                    var t = e.state,
9232                        n = { popper: { position: t.options.strategy, left: "0", top: "0", margin: "0" }, arrow: { position: "absolute" }, reference: {} };
9233                    return (
9234                        Object.assign(t.elements.popper.style, n.popper),
9235                        (t.styles = n),
9236                        t.elements.arrow && Object.assign(t.elements.arrow.style, n.arrow),
9237                        function () {
9238                            Object.keys(t.elements).forEach(function (e) {
9239                                var i = t.elements[e],
9240                                    s = t.attributes[e] || {},
9241                                    o = Object.keys(t.styles.hasOwnProperty(e) ? t.styles[e] : n[e]).reduce(function (e, t) {
9242                                        return (e[t] = ""), e;
9243                                    }, {});
9244                                gt(i) &&
9245                                    ut(i) &&
9246                                    (Object.assign(i.style, o),
9247                                    Object.keys(s).forEach(function (e) {
9248                                        i.removeAttribute(e);
9249                                    }));
9250                            });
9251                        }
9252                    );
9253                },
9254                requires: ["computeStyles"],
9255            };
9256            function bt(e) {
9257                return e.split("-")[0];
9258            }
9259            var yt = Math.max,
9260                wt = Math.min,
9261                xt = Math.round;
9262            function _t() {
9263                var e = navigator.userAgentData;
9264                return null != e && e.brands
9265                    ? e.brands
9266                          .map(function (e) {
9267                              return e.brand + "/" + e.version;
9268                          })
9269                          .join(" ")
9270                    : navigator.userAgent;
9271            }
9272            function Ct() {
9273                return !/^((?!chrome|android).)*safari/i.test(_t());
9274            }
9275            function Tt(e, t, n) {
9276                void 0 === t && (t = !1), void 0 === n && (n = !1);
9277                var i = e.getBoundingClientRect(),
9278                    s = 1,
9279                    o = 1;
9280                t && gt(e) && ((s = (e.offsetWidth > 0 && xt(i.width) / e.offsetWidth) || 1), (o = (e.offsetHeight > 0 && xt(i.height) / e.offsetHeight) || 1));
9281                var r = (ft(e) ? pt(e) : window).visualViewport,
9282                    a = !Ct() && n,
9283                    l = (i.left + (a && r ? r.offsetLeft : 0)) / s,
9284                    c = (i.top + (a && r ? r.offsetTop : 0)) / o,
9285                    d = i.width / s,
9286                    h = i.height / o;
9287                return { width: d, height: h, top: c, right: l + d, bottom: c + h, left: l, x: l, y: c };
9288            }
9289            function Et(e) {
9290                var t = Tt(e),
9291                    n = e.offsetWidth,
9292                    i = e.offsetHeight;
9293                return Math.abs(t.width - n) <= 1 && (n = t.width), Math.abs(t.height - i) <= 1 && (i = t.height), { x: e.offsetLeft, y: e.offsetTop, width: n, height: i };
9294            }
9295            function St(e, t) {
9296                var n = t.getRootNode && t.getRootNode();
9297                if (e.contains(t)) return !0;
9298                if (n && mt(n)) {
9299                    var i = t;
9300                    do {
9301                        if (i && e.isSameNode(i)) return !0;
9302                        i = i.parentNode || i.host;
9303                    } while (i);
9304                }
9305                return !1;
9306            }
9307            function At(e) {
9308                return pt(e).getComputedStyle(e);
9309            }
9310            function kt(e) {
9311                return ["table", "td", "th"].indexOf(ut(e)) >= 0;
9312            }
9313            function $t(e) {
9314                return ((ft(e) ? e.ownerDocument : e.document) || window.document).documentElement;
9315            }
9316            function Lt(e) {
9317                return "html" === ut(e) ? e : e.assignedSlot || e.parentNode || (mt(e) ? e.host : null) || $t(e);
9318            }
9319            function Pt(e) {
9320                return gt(e) && "fixed" !== At(e).position ? e.offsetParent : null;
9321            }
9322            function Ot(e) {
9323                for (var t = pt(e), n = Pt(e); n && kt(n) && "static" === At(n).position; ) n = Pt(n);
9324                return n && ("html" === ut(n) || ("body" === ut(n) && "static" === At(n).position))
9325                    ? t
9326                    : n ||
9327                          (function (e) {
9328                              var t = /firefox/i.test(_t());
9329                              if (/Trident/i.test(_t()) && gt(e) && "fixed" === At(e).position) return null;
9330                              var n = Lt(e);
9331                              for (mt(n) && (n = n.host); gt(n) && ["html", "body"].indexOf(ut(n)) < 0; ) {
9332                                  var i = At(n);
9333                                  if (
9334                                      "none" !== i.transform ||
9335                                      "none" !== i.perspective ||
9336                                      "paint" === i.contain ||
9337                                      -1 !== ["transform", "perspective"].indexOf(i.willChange) ||
9338                                      (t && "filter" === i.willChange) ||
9339                                      (t && i.filter && "none" !== i.filter)
9340                                  )
9341                                      return n;
9342                                  n = n.parentNode;
9343                              }
9344                              return null;
9345                          })(e) ||
9346                          t;
9347            }
9348            function Mt(e) {
9349                return ["top", "bottom"].indexOf(e) >= 0 ? "x" : "y";
9350            }
9351            function Dt(e, t, n) {
9352                return yt(e, wt(t, n));
9353            }
9354            function Nt(e) {
9355                return Object.assign({}, { top: 0, right: 0, bottom: 0, left: 0 }, e);
9356            }
9357            function It(e, t) {
9358                return t.reduce(function (t, n) {
9359                    return (t[n] = e), t;
9360                }, {});
9361            }
9362            const zt = {
9363                name: "arrow",
9364                enabled: !0,
9365                phase: "main",
9366                fn: function (e) {
9367                    var t,
9368                        n = e.state,
9369                        i = e.name,
9370                        s = e.options,
9371                        o = n.elements.arrow,
9372                        r = n.modifiersData.popperOffsets,
9373                        a = bt(n.placement),
9374                        l = Mt(a),
9375                        c = [Ve, We].indexOf(a) >= 0 ? "height" : "width";
9376                    if (o && r) {
9377                        var d = (function (e, t) {
9378                                return Nt("number" != typeof (e = "function" == typeof e ? e(Object.assign({}, t.rects, { placement: t.placement })) : e) ? e : It(e, Xe));
9379                            })(s.padding, n),
9380                            h = Et(o),
9381                            u = "y" === l ? Be : Ve,
9382                            p = "y" === l ? qe : We,
9383                            f = n.rects.reference[c] + n.rects.reference[l] - r[l] - n.rects.popper[c],
9384                            g = r[l] - n.rects.reference[l],
9385                            m = Ot(o),
9386                            v = m ? ("y" === l ? m.clientHeight || 0 : m.clientWidth || 0) : 0,
9387                            b = f / 2 - g / 2,
9388                            y = d[u],
9389                            w = v - h[c] - d[p],
9390                            x = v / 2 - h[c] / 2 + b,
9391                            _ = Dt(y, x, w),
9392                            C = l;
9393                        n.modifiersData[i] = (((t = {})[C] = _), (t.centerOffset = _ - x), t);
9394                    }
9395                },
9396                effect: function (e) {
9397                    var t = e.state,
9398                        n = e.options.element,
9399                        i = void 0 === n ? "[data-popper-arrow]" : n;
9400                    null != i && ("string" != typeof i || (i = t.elements.popper.querySelector(i))) && St(t.elements.popper, i) && (t.elements.arrow = i);
9401                },
9402                requires: ["popperOffsets"],
9403                requiresIfExists: ["preventOverflow"],
9404            };
9405            function jt(e) {
9406                return e.split("-")[1];
9407            }
9408            var Ft = { top: "auto", right: "auto", bottom: "auto", left: "auto" };
9409            function Ht(e) {
9410                var t,
9411                    n = e.popper,
9412                    i = e.popperRect,
9413                    s = e.placement,
9414                    o = e.variation,
9415                    r = e.offsets,
9416                    a = e.position,
9417                    l = e.gpuAcceleration,
9418                    c = e.adaptive,
9419                    d = e.roundOffsets,
9420                    h = e.isFixed,
9421                    u = r.x,
9422                    p = void 0 === u ? 0 : u,
9423                    f = r.y,
9424                    g = void 0 === f ? 0 : f,
9425                    m = "function" == typeof d ? d({ x: p, y: g }) : { x: p, y: g };
9426                (p = m.x), (g = m.y);
9427                var v = r.hasOwnProperty("x"),
9428                    b = r.hasOwnProperty("y"),
9429                    y = Ve,
9430                    w = Be,
9431                    x = window;
9432                if (c) {
9433                    var _ = Ot(n),
9434                        C = "clientHeight",
9435                        T = "clientWidth";
9436                    if ((_ === pt(n) && "static" !== At((_ = $t(n))).position && "absolute" === a && ((C = "scrollHeight"), (T = "scrollWidth")), s === Be || ((s === Ve || s === We) && o === Ue)))
9437                        (w = qe), (g -= (h && _ === x && x.visualViewport ? x.visualViewport.height : _[C]) - i.height), (g *= l ? 1 : -1);
9438                    if (s === Ve || ((s === Be || s === qe) && o === Ue)) (y = We), (p -= (h && _ === x && x.visualViewport ? x.visualViewport.width : _[T]) - i.width), (p *= l ? 1 : -1);
9439                }
9440                var E,
9441                    S = Object.assign({ position: a }, c && Ft),
9442                    A =
9443                        !0 === d
9444                            ? (function (e) {
9445                                  var t = e.x,
9446                                      n = e.y,
9447                                      i = window.devicePixelRatio || 1;
9448                                  return { x: xt(t * i) / i || 0, y: xt(n * i) / i || 0 };
9449                              })({ x: p, y: g })
9450                            : { x: p, y: g };
9451                return (
9452                    (p = A.x),
9453                    (g = A.y),
9454                    l
9455                        ? Object.assign({}, S, (((E = {})[w] = b ? "0" : ""), (E[y] = v ? "0" : ""), (E.transform = (x.devicePixelRatio || 1) <= 1 ? "translate(" + p + "px, " + g + "px)" : "translate3d(" + p + "px, " + g + "px, 0)"), E))
9456                        : Object.assign({}, S, (((t = {})[w] = b ? g + "px" : ""), (t[y] = v ? p + "px" : ""), (t.transform = ""), t))
9457                );
9458            }
9459            const Rt = {
9460                name: "computeStyles",
9461                enabled: !0,
9462                phase: "beforeWrite",
9463                fn: function (e) {
9464                    var t = e.state,
9465                        n = e.options,
9466                        i = n.gpuAcceleration,
9467                        s = void 0 === i || i,
9468                        o = n.adaptive,
9469                        r = void 0 === o || o,
9470                        a = n.roundOffsets,
9471                        l = void 0 === a || a,
9472                        c = { placement: bt(t.placement), variation: jt(t.placement), popper: t.elements.popper, popperRect: t.rects.popper, gpuAcceleration: s, isFixed: "fixed" === t.options.strategy };
9473                    null != t.modifiersData.popperOffsets &&
9474                        (t.styles.popper = Object.assign({}, t.styles.popper, Ht(Object.assign({}, c, { offsets: t.modifiersData.popperOffsets, position: t.options.strategy, adaptive: r, roundOffsets: l })))),
9475                        null != t.modifiersData.arrow && (t.styles.arrow = Object.assign({}, t.styles.arrow, Ht(Object.assign({}, c, { offsets: t.modifiersData.arrow, position: "absolute", adaptive: !1, roun
9475dOffsets: l })))),
9476                        (t.attributes.popper = Object.assign({}, t.attributes.popper, { "data-popper-placement": t.placement }));
9477                },
9478                data: {},
9479            };
9480            var Bt = { passive: !0 };
9481            const qt = {
9482                name: "eventListeners",
9483                enabled: !0,
9484                phase: "write",
9485                fn: function () {},
9486                effect: function (e) {
9487                    var t = e.state,
9488                        n = e.instance,
9489                        i = e.options,
9490                        s = i.scroll,
9491                        o = void 0 === s || s,
9492                        r = i.resize,
9493                        a = void 0 === r || r,
9494                        l = pt(t.elements.popper),
9495                        c = [].concat(t.scrollParents.reference, t.scrollParents.popper);
9496                    return (
9497                        o &&
9498                            c.forEach(function (e) {
9499                                e.addEventListener("scroll", n.update, Bt);
9500                            }),
9501                        a && l.addEventListener("resize", n.update, Bt),
9502                        function () {
9503                            o &&
9504                                c.forEach(function (e) {
9505                                    e.removeEventListener("scroll", n.update, Bt);
9506                                }),
9507                                a && l.removeEventListener("resize", n.update, Bt);
9508                        }
9509                    );
9510                },
9511                data: {},
9512            };
9513            var Wt = { left: "right", right: "left", bottom: "top", top: "bottom" };
9514            function Vt(e) {
9515                return e.replace(/left|right|bottom|top/g, function (e) {
9516                    return Wt[e];
9517                });
9518            }
9519            var Gt = { start: "end", end: "start" };
9520            function Xt(e) {
9521                return e.replace(/start|end/g, function (e) {
9522                    return Gt[e];
9523                });
9524            }
9525            function Yt(e) {
9526                var t = pt(e);
9527                return { scrollLeft: t.pageXOffset, scrollTop: t.pageYOffset };
9528            }
9529            function Ut(e) {
9530                return Tt($t(e)).left + Yt(e).scrollLeft;
9531            }
9532            function Kt(e) {
9533                var t = At(e),
9534                    n = t.overflow,
9535                    i = t.overflowX,
9536                    s = t.overflowY;
9537                return /auto|scroll|overlay|hidden/.test(n + s + i);
9538            }
9539            function Zt(e) {
9540                return ["html", "body", "#document"].indexOf(ut(e)) >= 0 ? e.ownerDocument.body : gt(e) && Kt(e) ? e : Zt(Lt(e));
9541            }
9542            function Qt(e, t) {
9543                var n;
9544                void 0 === t && (t = []);
9545                var i = Zt(e),
9546                    s = i === (null == (n = e.ownerDocument) ? void 0 : n.body),
9547                    o = pt(i),
9548                    r = s ? [o].concat(o.visualViewport || [], Kt(i) ? i : []) : i,
9549                    a = t.concat(r);
9550                return s ? a : a.concat(Qt(Lt(r)));
9551            }
9552            function Jt(e) {
9553                return Object.assign({}, e, { left: e.x, top: e.y, right: e.x + e.width, bottom: e.y + e.height });
9554            }
9555            function en(e, t, n) {
9556                return t === Ze
9557                    ? Jt(
9558                          (function (e, t) {
9559                              var n = pt(e),
9560                                  i = $t(e),
9561                                  s = n.visualViewport,
9562                                  o = i.clientWidth,
9563                                  r = i.clientHeight,
9564                                  a = 0,
9565                                  l = 0;
9566                              if (s) {
9567                                  (o = s.width), (r = s.height);
9568                                  var c = Ct();
9569                                  (c || (!c && "fixed" === t)) && ((a = s.offsetLeft), (l = s.offsetTop));
9570                              }
9571                              return { width: o, height: r, x: a + Ut(e), y: l };
9572                          })(e, n)
9573                      )
9574                    : ft(t)
9575                    ? (function (e, t) {
9576                          var n = Tt(e, !1, "fixed" === t);
9577                          return (
9578                              (n.top = n.top + e.clientTop),
9579                              (n.left = n.left + e.clientLeft),
9580                              (n.bottom = n.top + e.clientHeight),
9581                              (n.right = n.left + e.clientWidth),
9582                              (n.width = e.clientWidth),
9583                              (n.height = e.clientHeight),
9584                              (n.x = n.left),
9585                              (n.y = n.top),
9586                              n
9587                          );
9588                      })(t, n)
9589                    : Jt(
9590                          (function (e) {
9591                              var t,
9592                                  n = $t(e),
9593                                  i = Yt(e),
9594                                  s = null == (t = e.ownerDocument) ? void 0 : t.body,
9595                                  o = yt(n.scrollWidth, n.clientWidth, s ? s.scrollWidth : 0, s ? s.clientWidth : 0),
9596                                  r = yt(n.scrollHeight, n.clientHeight, s ? s.scrollHeight : 0, s ? s.clientHeight : 0),
9597                                  a = -i.scrollLeft + Ut(e),
9598                                  l = -i.scrollTop;
9599                              return "rtl" === At(s || n).direction && (a += yt(n.clientWidth, s ? s.clientWidth : 0) - o), { width: o, height: r, x: a, y: l };
9600                          })($t(e))
9601                      );
9602            }
9603            function tn(e, t, n, i) {
9604                var s =
9605                        "clippingParents" === t
9606                            ? (function (e) {
9607                                  var t = Qt(Lt(e)),
9608                                      n = ["absolute", "fixed"].indexOf(At(e).position) >= 0 && gt(e) ? Ot(e) : e;
9609                                  return ft(n)
9610                                      ? t.filter(function (e) {
9611                                            return ft(e) && St(e, n) && "body" !== ut(e);
9612                                        })
9613                                      : [];
9614                              })(e)
9615                            : [].concat(t),
9616                    o = [].concat(s, [n]),
9617                    r = o[0],
9618                    a = o.reduce(function (t, n) {
9619                        var s = en(e, n, i);
9620                        return (t.top = yt(s.top, t.top)), (t.right = wt(s.right, t.right)), (t.bottom = wt(s.bottom, t.bottom)), (t.left = yt(s.left, t.left)), t;
9621                    }, en(e, r, i));
9622                return (a.width = a.right - a.left), (a.height = a.bottom - a.top), (a.x = a.left), (a.y = a.top), a;
9623            }
9624            function nn(e) {
9625                var t,
9626                    n = e.reference,
9627                    i = e.element,
9628                    s = e.placement,
9629                    o = s ? bt(s) : null,
9630                    r = s ? jt(s) : null,
9631                    a = n.x + n.width / 2 - i.width / 2,
9632                    l = n.y + n.height / 2 - i.height / 2;
9633                switch (o) {
9634                    case Be:
9635                        t = { x: a, y: n.y - i.height };
9636                        break;
9637                    case qe:
9638                        t = { x: a, y: n.y + n.height };
9639                        break;
9640                    case We:
9641                        t = { x: n.x + n.width, y: l };
9642                        break;
9643                    case Ve:
9644                        t = { x: n.x - i.width, y: l };
9645                        break;
9646                    default:
9647                        t = { x: n.x, y: n.y };
9648                }
9649                var c = o ? Mt(o) : null;
9650                if (null != c) {
9651                    var d = "y" === c ? "height" : "width";
9652                    switch (r) {
9653                        case Ye:
9654                            t[c] = t[c] - (n[d] / 2 - i[d] / 2);
9655                            break;
9656                        case Ue:
9657                            t[c] = t[c] + (n[d] / 2 - i[d] / 2);
9658                    }
9659                }
9660                return t;
9661            }
9662            function sn(e, t) {
9663                void 0 === t && (t = {});
9664                var n = t,
9665                    i = n.placement,
9666                    s = void 0 === i ? e.placement : i,
9667                    o = n.strategy,
9668                    r = void 0 === o ? e.strategy : o,
9669                    a = n.boundary,
9670                    l = void 0 === a ? Ke : a,
9671                    c = n.rootBoundary,
9672                    d = void 0 === c ? Ze : c,
9673                    h = n.elementContext,
9674                    u = void 0 === h ? Qe : h,
9675                    p = n.altBoundary,
9676                    f = void 0 !== p && p,
9677                    g = n.padding,
9678                    m = void 0 === g ? 0 : g,
9679                    v = Nt("number" != typeof m ? m : It(m, Xe)),
9680                    b = u === Qe ? Je : Qe,
9681                    y = e.rects.popper,
9682                    w = e.elements[f ? b : u],
9683                    x = tn(ft(w) ? w : w.contextElement || $t(e.elements.popper), l, d, r),
9684                    _ = Tt(e.elements.reference),
9685                    C = nn({ reference: _, element: y, strategy: "absolute", placement: s }),
9686                    T = Jt(Object.assign({}, y, C)),
9687                    E = u === Qe ? T : _,
9688                    S = { top: x.top - E.top + v.top, bottom: E.bottom - x.bottom + v.bottom, left: x.left - E.left + v.left, right: E.right - x.right + v.right },
9689                    A = e.modifiersData.offset;
9690                if (u === Qe && A) {
9691                    var k = A[s];
9692                    Object.keys(S).forEach(function (e) {
9693                        var t = [We, qe].indexOf(e) >= 0 ? 1 : -1,
9694                            n = [Be, qe].indexOf(e) >= 0 ? "y" : "x";
9695                        S[e] += k[n] * t;
9696                    });
9697                }
9698                return S;
9699            }
9700            const on = {
9701                name: "flip",
9702                enabled: !0,
9703                phase: "main",
9704                fn: function (e) {
9705                    var t = e.state,
9706                        n = e.options,
9707                        i = e.name;
9708                    if (!t.modifiersData[i]._skip) {
9709                        for (
9710                            var s = n.mainAxis,
9711                                o = void 0 === s || s,
9712                                r = n.altAxis,
9713                                a = void 0 === r || r,
9714                                l = n.fallbackPlacements,
9715                                c = n.padding,
9716                                d = n.boundary,
9717                                h = n.rootBoundary,
9718                                u = n.altBoundary,
9719                                p = n.flipVariations,
9720                                f = void 0 === p || p,
9721                                g = n.allowedAutoPlacements,
9722                                m = t.options.placement,
9723                                v = bt(m),
9724                                b =
9725                                    l ||
9726                                    (v === m || !f
9727                                        ? [Vt(m)]
9728                                        : (function (e) {
9729                                              if (bt(e) === Ge) return [];
9730                                              var t = Vt(e);
9731                                              return [Xt(e), t, Xt(t)];
9732                                          })(m)),
9733                                y = [m].concat(b).reduce(function (e, n) {
9734                                    return e.concat(
9735                                        bt(n) === Ge
9736                                            ? (function (e, t) {
9737                                                  void 0 === t && (t = {});
9738                                                  var n = t,
9739                                                      i = n.placement,
9740                                                      s = n.boundary,
9741                                                      o = n.rootBoundary,
9742                                                      r = n.padding,
9743                                                      a = n.flipVariations,
9744                                                      l = n.allowedAutoPlacements,
9745                                                      c = void 0 === l ? tt : l,
9746                                                      d = jt(i),
9747                                                      h = d
9748                                                          ? a
9749                                                              ? et
9750                                                              : et.filter(function (e) {
9751                                                                    return jt(e) === d;
9752                                                                })
9753                                                          : Xe,
9754                                                      u = h.filter(function (e) {
9755                                                          return c.indexOf(e) >= 0;
9756                                                      });
9757                                                  0 === u.length && (u = h);
9758                                                  var p = u.reduce(function (t, n) {
9759                                                      return (t[n] = sn(e, { placement: n, boundary: s, rootBoundary: o, padding: r })[bt(n)]), t;
9760                                                  }, {});
9761                                                  return Object.keys(p).sort(function (e, t) {
9762                                                      return p[e] - p[t];
9763                                                  });
9764                                              })(t, { placement: n, boundary: d, rootBoundary: h, padding: c, flipVariations: f, allowedAutoPlacements: g })
9765                                            : n
9766                                    );
9767                                }, []),
9768                                w = t.rects.reference,
9769                                x = t.rects.popper,
9770                                _ = new Map(),
9771                                C = !0,
9772                                T = y[0],
9773                                E = 0;
9774                            E < y.length;
9775                            E++
9776                        ) {
9777                            var S = y[E],
9778                                A = bt(S),
9779                                k = jt(S) === Ye,
9780                                $ = [Be, qe].indexOf(A) >= 0,
9781                                L = $ ? "width" : "height",
9782                                P = sn(t, { placement: S, boundary: d, rootBoundary: h, altBoundary: u, padding: c }),
9783                                O = $ ? (k ? We : Ve) : k ? qe : Be;
9784                            w[L] > x[L] && (O = Vt(O));
9785                            var M = Vt(O),
9786                                D = [];
9787                            if (
9788                                (o && D.push(P[A] <= 0),
9789                                a && D.push(P[O] <= 0, P[M] <= 0),
9790                                D.every(function (e) {
9791                                    return e;
9792                                }))
9793                            ) {
9794                                (T = S), (C = !1);
9795                                break;
9796                            }
9797                            _.set(S, D);
9798                        }
9799                        if (C)
9800                            for (
9801                                var N = function (e) {
9802                                        var t = y.find(function (t) {
9803                                            var n = _.get(t);
9804                                            if (n)
9805                                                return n.slice(0, e).every(function (e) {
9806                                                    return e;
9807                                                });
9808                                        });
9809                                        if (t) return (T = t), "break";
9810                                    },
9811                                    I = f ? 3 : 1;
9812                                I > 0;
9813                                I--
9814                            ) {
9815                                if ("break" === N(I)) break;
9816                            }
9817                        t.placement !== T && ((t.modifiersData[i]._skip = !0), (t.placement = T), (t.reset = !0));
9818                    }
9819                },
9820                requiresIfExists: ["offset"],
9821                data: { _skip: !1 },
9822            };
9823            function rn(e, t, n) {
9824                return void 0 === n && (n = { x: 0, y: 0 }), { top: e.top - t.height - n.y, right: e.right - t.width + n.x, bottom: e.bottom - t.height + n.y, left: e.left - t.width - n.x };
9825            }
9826            function an(e) {
9827                return [Be, We, qe, Ve].some(function (t) {
9828                    return e[t] >= 0;
9829                });
9830            }
9831            const ln = {
9832                name: "hide",
9833                enabled: !0,
9834                phase: "main",
9835                requiresIfExists: ["preventOverflow"],
9836                fn: function (e) {
9837                    var t = e.state,
9838                        n = e.name,
9839                        i = t.rects.reference,
9840                        s = t.rects.popper,
9841                        o = t.modifiersData.preventOverflow,
9842                        r = sn(t, { elementContext: "reference" }),
9843                        a = sn(t, { altBoundary: !0 }),
9844                        l = rn(r, i),
9845                        c = rn(a, s, o),
9846                        d = an(l),
9847                        h = an(c);
9848                    (t.modifiersData[n] = { referenceClippingOffsets: l, popperEscapeOffsets: c, isReferenceHidden: d, hasPopperEscaped: h }),
9849                        (t.attributes.popper = Object.assign({}, t.attributes.popper, { "data-popper-reference-hidden": d, "data-popper-escaped": h }));
9850                },
9851            };
9852            const cn = {
9853                name: "offset",
9854                enabled: !0,
9855                phase: "main",
9856                requires: ["popperOffsets"],
9857                fn: function (e) {
9858                    var t = e.state,
9859                        n = e.options,
9860                        i = e.name,
9861                        s = n.offset,
9862                        o = void 0 === s ? [0, 0] : s,
9863                        r = tt.reduce(function (e, n) {
9864                            return (
9865                                (e[n] = (function (e, t, n) {
9866                                    var i = bt(e),
9867                                        s = [Ve, Be].indexOf(i) >= 0 ? -1 : 1,
9868                                        o = "function" == typeof n ? n(Object.assign({}, t, { placement: e })) : n,
9869                                        r = o[0],
9870                                        a = o[1];
9871                                    return (r = r || 0), (a = (a || 0) * s), [Ve, We].indexOf(i) >= 0 ? { x: a, y: r } : { x: r, y: a };
9872                                })(n, t.rects, o)),
9873                                e
9874                            );
9875                        }, {}),
9876                        a = r[t.placement],
9877                        l = a.x,
9878                        c = a.y;
9879                    null != t.modifiersData.popperOffsets && ((t.modifiersData.popperOffsets.x += l), (t.modifiersData.popperOffsets.y += c)), (t.modifiersData[i] = r);
9880                },
9881            };
9882            const dn = {
9883                name: "popperOffsets",
9884                enabled: !0,
9885                phase: "read",
9886                fn: function (e) {
9887                    var t = e.state,
9888                        n = e.name;
9889                    t.modifiersData[n] = nn({ reference: t.rects.reference, element: t.rects.popper, strategy: "absolute", placement: t.placement });
9890                },
9891                data: {},
9892            };
9893            const hn = {
9894                name: "preventOverflow",
9895                enabled: !0,
9896                phase: "main",
9897                fn: function (e) {
9898                    var t = e.state,
9899                        n = e.options,
9900                        i = e.name,
9901                        s = n.mainAxis,
9902                        o = void 0 === s || s,
9903                        r = n.altAxis,
9904                        a = void 0 !== r && r,
9905                        l = n.boundary,
9906                        c = n.rootBoundary,
9907                        d = n.altBoundary,
9908                        h = n.padding,
9909                        u = n.tether,
9910                        p = void 0 === u || u,
9911                        f = n.tetherOffset,
9912                        g = void 0 === f ? 0 : f,
9913                        m = sn(t, { boundary: l, rootBoundary: c, padding: h, altBoundary: d }),
9914                        v = bt(t.placement),
9915                        b = jt(t.placement),
9916                        y = !b,
9917                        w = Mt(v),
9918                        x = "x" === w ? "y" : "x",
9919                        _ = t.modifiersData.popperOffsets,
9920                        C = t.rects.reference,
9921                        T = t.rects.popper,
9922                        E = "function" == typeof g ? g(Object.assign({}, t.rects, { placement: t.placement })) : g,
9923                        S = "number" == typeof E ? { mainAxis: E, altAxis: E } : Object.assign({ mainAxis: 0, altAxis: 0 }, E),
9924                        A = t.modifiersData.offset ? t.modifiersData.offset[t.placement] : null,
9925                        k = { x: 0, y: 0 };
9926                    if (_) {
9927                        if (o) {
9928                            var $,
9929                                L = "y" === w ? Be : Ve,
9930                                P = "y" === w ? qe : We,
9931                                O = "y" === w ? "height" : "width",
9932                                M = _[w],
9933                                D = M + m[L],
9934                                N = M - m[P],
9935                                I = p ? -T[O] / 2 : 0,
9936                                z = b === Ye ? C[O] : T[O],
9937                                j = b === Ye ? -T[O] : -C[O],
9938                                F = t.elements.arrow,
9939                                H = p && F ? Et(F) : { width: 0, height: 0 },
9940                                R = t.modifiersData["arrow#persistent"] ? t.modifiersData["arrow#persistent"].padding : { top: 0, right: 0, bottom: 0, left: 0 },
9941                                B = R[L],
9942                                q = R[P],
9943                                W = Dt(0, C[O], H[O]),
9944                                V = y ? C[O] / 2 - I - W - B - S.mainAxis : z - W - B - S.mainAxis,
9945                                G = y ? -C[O] / 2 + I + W + q + S.mainAxis : j + W + q + S.mainAxis,
9946                                X = t.elements.arrow && Ot(t.elements.arrow),
9947                                Y = X ? ("y" === w ? X.clientTop || 0 : X.clientLeft || 0) : 0,
9948                                U = null != ($ = null == A ? void 0 : A[w]) ? $ : 0,
9949                                K = M + G - U,
9950                                Z = Dt(p ? wt(D, M + V - U - Y) : D, M, p ? yt(N, K) : N);
9951                            (_[w] = Z), (k[w] = Z - M);
9952                        }
9953                        if (a) {
9954                            var Q,
9955                                J = "x" === w ? Be : Ve,
9956                                ee = "x" === w ? qe : We,
9957                                te = _[x],
9958                                ne = "y" === x ? "height" : "width",
9959                                ie = te + m[J],
9960                                se = te - m[ee],
9961                                oe = -1 !== [Be, Ve].indexOf(v),
9962                                re = null != (Q = null == A ? void 0 : A[x]) ? Q : 0,
9963                                ae = oe ? ie : te - C[ne] - T[ne] - re + S.altAxis,
9964                                le = oe ? te + C[ne] + T[ne] - re - S.altAxis : se,
9965                                ce =
9966                                    p && oe
9967                                        ? (function (e, t, n) {
9968                                              var i = Dt(e, t, n);
9969                                              return i > n ? n : i;
9970                                          })(ae, te, le)
9971                                        : Dt(p ? ae : ie, te, p ? le : se);
9972                            (_[x] = ce), (k[x] = ce - te);
9973                        }
9974                        t.modifiersData[i] = k;
9975                    }
9976                },
9977                requiresIfExists: ["offset"],
9978            };
9979            function un(e, t, n) {
9980                void 0 === n && (n = !1);
9981                var i,
9982                    s,
9983                    o = gt(t),
9984                    r =
9985                        gt(t) &&
9986                        (function (e) {
9987                            var t = e.getBoundingClientRect(),
9988                                n = xt(t.width) / e.offsetWidth || 1,
9989                                i = xt(t.height) / e.offsetHeight || 1;
9990                            return 1 !== n || 1 !== i;
9991                        })(t),
9992                    a = $t(t),
9993                    l = Tt(e, r, n),
9994                    c = { scrollLeft: 0, scrollTop: 0 },
9995                    d = { x: 0, y: 0 };
9996                return (
9997                    (o || (!o && !n)) &&
9998                        (("body" !== ut(t) || Kt(a)) && (c = (i = t) !== pt(i) && gt(i) ? { scrollLeft: (s = i).scrollLeft, scrollTop: s.scrollTop } : Yt(i)),
9999                        gt(t) ? (((d = Tt(t, !0)).x += t.clientLeft), (d.y += t.clientTop)) : a && (d.x = Ut(a))),
10000                    { x: l.left + c.scrollLeft - d.x, y: l.top + c.scrollTop - d.y, width: l.width, height: l.height }
10001                );
10002            }
10003            function pn(e) {
10004                var t = new Map(),
10005                    n = new Set(),
10006                    i = [];
10007                function s(e) {
10008                    n.add(e.name),
10009                        [].concat(e.requires || [], e.requiresIfExists || []).forEach(function (e) {
10010                            if (!n.has(e)) {
10011                                var i = t.get(e);
10012                                i && s(i);
10013                            }
10014                        }),
10015                        i.push(e);
10016                }
10017                return (
10018                    e.forEach(function (e) {
10019                        t.set(e.name, e);
10020                    }),
10021                    e.forEach(function (e) {
10022                        n.has(e.name) || s(e);
10023                    }),
10024                    i
10025                );
10026            }
10027            var fn = { placement: "bottom", modifiers: [], strategy: "absolute" };
10028            function gn() {
10029                for (var e = arguments.length, t = new Array(e), n = 0; n < e; n++) t[n] = arguments[n];
10030                return !t.some(function (e) {
10031                    return !(e && "function" == typeof e.getBoundingClientRect);
10032                });
10033            }
10034            function mn(e) {
10035                void 0 === e && (e = {});
10036                var t = e,
10037                    n = t.defaultModifiers,
10038                    i = void 0 === n ? [] : n,
10039                    s = t.defaultOptions,
10040                    o = void 0 === s ? fn : s;
10041                return function (e, t, n) {
10042                    void 0 === n && (n = o);
10043                    var s,
10044                        r,
10045                        a = { placement: "bottom", orderedModifiers: [], options: Object.assign({}, fn, o), modifiersData: {}, elements: { reference: e, popper: t }, attributes: {}, styles: {} },
10046                        l = [],
10047                        c = !1,
10048                        d = {
10049                            state: a,
10050                            setOptions: function (n) {
10051                                var s = "function" == typeof n ? n(a.options) : n;
10052                                h(), (a.options = Object.assign({}, o, a.options, s)), (a.scrollParents = { reference: ft(e) ? Qt(e) : e.contextElement ? Qt(e.contextElement) : [], popper: Qt(t) });
10053                                var r = (function (e) {
10054                                    var t = pn(e);
10055                                    return ht.reduce(function (e, n) {
10056                                        return e.concat(
10057                                            t.filter(function (e) {
10058                                                return e.phase === n;
10059                                            })
10060                                        );
10061                                    }, []);
10062                                })(
10063                                    (function (e) {
10064                                        var t = e.reduce(function (e, t) {
10065                                            var n = e[t.name];
10066                                            return (e[t.name] = n ? Object.assign({}, n, t, { options: Object.assign({}, n.options, t.options), data: Object.assign({}, n.data, t.data) }) : t), e;
10067                                        }, {});
10068                                        return Object.keys(t).map(function (e) {
10069                                            return t[e];
10070                                        });
10071                                    })([].concat(i, a.options.modifiers))
10072                                );
10073                                return (
10074                                    (a.orderedModifiers = r.filter(function (e) {
10075                                        return e.enabled;
10076                                    })),
10077                                    a.orderedModifiers.forEach(function (e) {
10078                                        var t = e.name,
10079                                            n = e.options,
10080                                            i = void 0 === n ? {} : n,
10081                                            s = e.effect;
10082                                        if ("function" == typeof s) {
10083                                            var o = s({ state: a, name: t, instance: d, options: i }),
10084                                                r = function () {};
10085                                            l.push(o || r);
10086                                        }
10087                                    }),
10088                                    d.update()
10089                                );
10090                            },
10091                            forceUpdate: function () {
10092                                if (!c) {
10093                                    var e = a.elements,
10094                                        t = e.reference,
10095                                        n = e.popper;
10096                                    if (gn(t, n)) {
10097                                        (a.rects = { reference: un(t, Ot(n), "fixed" === a.options.strategy), popper: Et(n) }),
10098                                            (a.reset = !1),
10099                                            (a.placement = a.options.placement),
10100                                            a.orderedModifiers.forEach(function (e) {
10101                                                return (a.modifiersData[e.name] = Object.assign({}, e.data));
10102                                            });
10103                                        for (var i = 0; i < a.orderedModifiers.length; i++)
10104                                            if (!0 !== a.reset) {
10105                                                var s = a.orderedModifiers[i],
10106                                                    o = s.fn,
10107                                                    r = s.options,
10108                                                    l = void 0 === r ? {} : r,
10109                                                    h = s.name;
10110                                                "function" == typeof o && (a = o({ state: a, options: l, name: h, instance: d }) || a);
10111                                            } else (a.reset = !1), (i = -1);
10112                                    }
10113                                }
10114                            },
10115                            update:
10116                                ((s = function () {
10117                                    return new Promise(function (e) {
10118                                        d.forceUpdate(), e(a);
10119                                    });
10120                                }),
10121                                function () {
10122                                    return (
10123                                        r ||
10124                                            (r = new Promise(function (e) {
10125                                                Promise.resolve().then(function () {
10126                                                    (r = void 0), e(s());
10127                                                });
10128                                            })),
10129                                        r
10130                                    );
10131                                }),
10132                            destroy: function () {
10133                                h(), (c = !0);
10134                            },
10135                        };
10136                    if (!gn(e, t)) return d;
10137                    function h() {
10138                        l.forEach(function (e) {
10139                            return e();
10140                        }),
10141                            (l = []);
10142                    }
10143                    return (
10144                        d.setOptions(n).then(function (e) {
10145                            !c && n.onFirstUpdate && n.onFirstUpdate(e);
10146                        }),
10147                        d
10148                    );
10149                };
10150            }
10151            var vn = mn(),
10152                bn = mn({ defaultModifiers: [qt, dn, Rt, vt, cn, on, hn, zt, ln] }),
10153                yn = mn({ defaultModifiers: [qt, dn, Rt, vt] }),
10154                wn = n(755);
10155            const xn = "transitionend",
10156                _n = (e) => {
10157                    let t = e.getAttribute("data-bs-target");
10158                    if (!t || "#" === t) {
10159                        let n = e.getAttribute("href");
10160                        if (!n || (!n.includes("#") && !n.startsWith("."))) return null;
10161                        n.includes("#") && !n.startsWith("#") && (n = `#${n.split("#")[1]}`), (t = n && "#" !== n ? n.trim() : null);
10162                    }
10163                    return t;
10164                },
10165                Cn = (e) => {
10166                    const t = _n(e);
10167                    return t && document.querySelector(t) ? t : null;
10168                },
10169                Tn = (e) => {
10170                    const t = _n(e);
10171                    return t ? document.querySelector(t) : null;
10172                },
10173                En = (e) => {
10174                    e.dispatchEvent(new Event(xn));
10175                },
10176                Sn = (e) => !(!e || "object" != typeof e) && (void 0 !== e.jquery && (e = e[0]), void 0 !== e.nodeType),
10177                An = (e) => (Sn(e) ? (e.jquery ? e[0] : e) : "string" == typeof e && e.length > 0 ? document.querySelector(e) : null),
10178                kn = (e) => {
10179                    if (!Sn(e) || 0 === e.getClientRects().length) return !1;
10180                    const t = "visible" === getComputedStyle(e).getPropertyValue("visibility"),
10181                        n = e.closest("details:not([open])");
10182                    if (!n) return t;
10183                    if (n !== e) {
10184                        const t = e.closest("summary");
10185                        if (t && t.parentNode !== n) return !1;
10186                        if (null === t) return !1;
10187                    }
10188                    return t;
10189                },
10190                $n = (e) => !e || e.nodeType !== Node.ELEMENT_NODE || !!e.classList.contains("disabled") || (void 0 !== e.disabled ? e.disabled : e.hasAttribute("disabled") && "false" !== e.getAttribute("disabled")),
10191                Ln = (e) => {
10192                    if (!document.documentElement.attachShadow) return null;
10193                    if ("function" == typeof e.getRootNode) {
10194                        const t = e.getRootNode();
10195                        return t instanceof ShadowRoot ? t : null;
10196                    }
10197                    return e instanceof ShadowRoot ? e : e.parentNode ? Ln(e.parentNode) : null;
10198                },
10199                Pn = () => {},
10200                On = (e) => {
10201                    e.offsetHeight;
10202                },
10203                Mn = () => (wn && !document.body.hasAttribute("data-bs-no-jquery") ? wn : null),
10204                Dn = [],
10205                Nn = () => "rtl" === document.documentElement.dir,
10206                In = (e) => {
10207                    var t;
10208                    (t = () => {
10209                        const t = Mn();
10210                        if (t) {
10211                            const n = e.NAME,
10212                                i = t.fn[n];
10213                            (t.fn[n] = e.jQueryInterface), (t.fn[n].Constructor = e), (t.fn[n].noConflict = () => ((t.fn[n] = i), e.jQueryInterface));
10214                        }
10215                    }),
10216                        "loading" === document.readyState
10217                            ? (Dn.length ||
10218                                  document.addEventListener("DOMContentLoaded", () => {
10219                                      for (const e of Dn) e();
10220                                  }),
10221                              Dn.push(t))
10222                            : t();
10223                },
10224                zn = (e) => {
10225                    "function" == typeof e && e();
10226                },
10227                jn = (e, t, n = !0) => {
10228                    if (!n) return void zn(e);
10229                    const i =
10230                        ((e) => {
10231                            if (!e) return 0;
10232                            let { transitionDuration: t, transitionDelay: n } = window.getComputedStyle(e);
10233                            const i = Number.parseFloat(t),
10234                                s = Number.parseFloat(n);
10235                            return i || s ? ((t = t.split(",")[0]), (n = n.split(",")[0]), 1e3 * (Number.parseFloat(t) + Number.parseFloat(n))) : 0;
10236                        })(t) + 5;
10237                    let s = !1;
10238                    const o = ({ target: n }) => {
10239                        n === t && ((s = !0), t.removeEventListener(xn, o), zn(e));
10240                    };
10241                    t.addEventListener(xn, o),
10242                        setTimeout(() => {
10243                            s || En(t);
10244                        }, i);
10245                },
10246                Fn = (e, t, n, i) => {
10247                    const s = e.length;
10248                    let o = e.indexOf(t);
10249                    return -1 === o ? (!n && i ? e[s - 1] : e[0]) : ((o += n ? 1 : -1), i && (o = (o + s) % s), e[Math.max(0, Math.min(o, s - 1))]);
10250                },
10251                Hn = /[^.]*(?=\..*)\.|.*/,
10252                Rn = /\..*/,
10253                Bn = /::\d+$/,
10254                qn = {};
10255            let Wn = 1;
10256            const Vn = { mouseenter: "mouseover", mouseleave: "mouseout" },
10257                Gn = new Set([
10258                    "click",
10259                    "dblclick",
10260                    "mouseup",
10261                    "mousedown",
10262                    "contextmenu",
10263                    "mousewheel",
10264                    "DOMMouseScroll",
10265                    "mouseover",
10266                    "mouseout",
10267                    "mousemove",
10268                    "selectstart",
10269                    "selectend",
10270                    "keydown",
10271                    "keypress",
10272                    "keyup",
10273                    "orientationchange",
10274                    "touchstart",
10275                    "touchmove",
10276                    "touchend",
10277                    "touchcancel",
10278                    "pointerdown",
10279                    "pointermove",
10280                    "pointerup",
10281                    "pointerleave",
10282                    "pointercancel",
10283                    "gesturestart",
10284                    "gesturechange",
10285                    "gestureend",
10286                    "focus",
10287                    "blur",
10288                    "change",
10289                    "reset",
10290                    "select",
10291                    "submit",
10292                    "focusin",
10293                    "focusout",
10294                    "load",
10295                    "unload",
10296                    "beforeunload",
10297                    "resize",
10298                    "move",
10299                    "DOMContentLoaded",
10300                    "readystatechange",
10301                    "error",
10302                    "abort",
10303                    "scroll",
10304                ]);
10305            function Xn(e, t) {
10306                return (t && `${t}::${Wn++}`) || e.uidEvent || Wn++;
10307            }
10308            function Yn(e) {
10309                const t = Xn(e);
10310                return (e.uidEvent = t), (qn[t] = qn[t] || {}), qn[t];
10311            }
10312            function Un(e, t, n = null) {
10313                return Object.values(e).find((e) => e.callable === t && e.delegationSelector === n);
10314            }
10315            function Kn(e, t, n) {
10316                const i = "string" == typeof t,
10317                    s = i ? n : t || n;
10318                let o = ei(e);
10319                return Gn.has(o) || (o = e), [i, s, o];
10320            }
10321            function Zn(e, t, n, i, s) {
10322                if ("string" != typeof t || !e) return;
10323                let [o, r, a] = Kn(t, n, i);
10324                if (t in Vn) {
10325                    const e = (e) =>
10326                        function (t) {
10327                            if (!t.relatedTarget || (t.relatedTarget !== t.delegateTarget && !t.delegateTarget.contains(t.relatedTarget))) return e.call(this, t);
10328                        };
10329                    r = e(r);
10330                }
10331                const l = Yn(e),
10332                    c = l[a] || (l[a] = {}),
10333                    d = Un(c, r, o ? n : null);
10334                if (d) return void (d.oneOff = d.oneOff && s);
10335                const h = Xn(r, t.replace(Hn, "")),
10336                    u = o
10337                        ? (function (e, t, n) {
10338                              return function i(s) {
10339                                  const o = e.querySelectorAll(t);
10340                                  for (let { target: r } = s; r && r !== this; r = r.parentNode) for (const a of o) if (a === r) return ni(s, { delegateTarget: r }), i.oneOff && ti.off(e, s.type, t, n), n.apply(r, [s]);
10341                              };
10342                          })(e, n, r)
10343                        : (function (e, t) {
10344                              return function n(i) {
10345                                  return ni(i, { delegateTarget: e }), n.oneOff && ti.off(e, i.type, t), t.apply(e, [i]);
10346                              };
10347                          })(e, r);
10348                (u.delegationSelector = o ? n : null), (u.callable = r), (u.oneOff = s), (u.uidEvent = h), (c[h] = u), e.addEventListener(a, u, o);
10349            }
10350            function Qn(e, t, n, i, s) {
10351                const o = Un(t[n], i, s);
10352                o && (e.removeEventListener(n, o, Boolean(s)), delete t[n][o.uidEvent]);
10353            }
10354            function Jn(e, t, n, i) {
10355                const s = t[n] || {};
10356                for (const o of Object.keys(s))
10357                    if (o.includes(i)) {
10358                        const i = s[o];
10359                        Qn(e, t, n, i.callable, i.delegationSelector);
10360                    }
10361            }
10362            function ei(e) {
10363                return (e = e.replace(Rn, "")), Vn[e] || e;
10364            }
10365            const ti = {
10366                on(e, t, n, i) {
10367                    Zn(e, t, n, i, !1);
10368                },
10369                one(e, t, n, i) {
10370                    Zn(e, t, n, i, !0);
10371                },
10372                off(e, t, n, i) {
10373                    if ("string" != typeof t || !e) return;
10374                    const [s, o, r] = Kn(t, n, i),
10375                        a = r !== t,
10376                        l = Yn(e),
10377                        c = l[r] || {},
10378                        d = t.startsWith(".");
10379                    if (void 0 === o) {
10380                        if (d) for (const n of Object.keys(l)) Jn(e, l, n, t.slice(1));
10381                        for (const n of Object.keys(c)) {
10382                            const i = n.replace(Bn, "");
10383                            if (!a || t.includes(i)) {
10384                                const t = c[n];
10385                                Qn(e, l, r, t.callable, t.delegationSelector);
10386                            }
10387                        }
10388                    } else {
10389                        if (!Object.keys(c).length) return;
10390                        Qn(e, l, r, o, s ? n : null);
10391                    }
10392                },
10393                trigger(e, t, n) {
10394                    if ("string" != typeof t || !e) return null;
10395                    const i = Mn();
10396                    let s = null,
10397                        o = !0,
10398                        r = !0,
10399                        a = !1;
10400                    t !== ei(t) && i && ((s = i.Event(t, n)), i(e).trigger(s), (o = !s.isPropagationStopped()), (r = !s.isImmediatePropagationStopped()), (a = s.isDefaultPrevented()));
10401                    let l = new Event(t, { bubbles: o, cancelable: !0 });
10402                    return (l = ni(l, n)), a && l.preventDefault(), r && e.dispatchEvent(l), l.defaultPrevented && s && s.preventDefault(), l;
10403                },
10404            };
10405            function ni(e, t) {
10406                for (const [n, i] of Object.entries(t || {}))
10407                    try {
10408                        e[n] = i;
10409                    } catch (t) {
10410                        Object.defineProperty(e, n, { configurable: !0, get: () => i });
10411                    }
10412                return e;
10413            }
10414            const ii = new Map(),
10415                si = {
10416                    set(e, t, n) {
10417                        ii.has(e) || ii.set(e, new Map());
10418                        const i = ii.get(e);
10419                        i.has(t) || 0 === i.size ? i.set(t, n) : console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(i.keys())[0]}.`);
10420                    },
10421                    get: (e, t) => (ii.has(e) && ii.get(e).get(t)) || null,
10422                    remove(e, t) {
10423                        if (!ii.has(e)) return;
10424                        const n = ii.get(e);
10425                        n.delete(t), 0 === n.size && ii.delete(e);
10426                    },
10427                };
10428            function oi(e) {
10429                if ("true" === e) return !0;
10430                if ("false" === e) return !1;
10431                if (e === Number(e).toString()) return Number(e);
10432                if ("" === e || "null" === e) return null;
10433                if ("string" != typeof e) return e;
10434                try {
10435                    return JSON.parse(decodeURIComponent(e));
10436                } catch (t) {
10437                    return e;
10438                }
10439            }
10440            function ri(e) {
10441                return e.replace(/[A-Z]/g, (e) => `-${e.toLowerCase()}`);
10442            }
10443            const ai = {
10444                setDataAttribute(e, t, n) {
10445                    e.setAttribute(`data-bs-${ri(t)}`, n);
10446                },
10447                removeDataAttribute(e, t) {
10448                    e.removeAttribute(`data-bs-${ri(t)}`);
10449                },
10450                getDataAttributes(e) {
10451                    if (!e) return {};
10452                    const t = {},
10453                        n = Object.keys(e.dataset).filter((e) => e.startsWith("bs") && !e.startsWith("bsConfig"));
10454                    for (const i of n) {
10455                        let n = i.replace(/^bs/, "");
10456                        (n = n.charAt(0).toLowerCase() + n.slice(1, n.length)), (t[n] = oi(e.dataset[i]));
10457                    }
10458                    return t;
10459                },
10460                getDataAttribute: (e, t) => oi(e.getAttribute(`data-bs-${ri(t)}`)),
10461            };
10462            class li {
10463                static get Default() {
10464                    return {};
10465                }
10466                static get DefaultType() {
10467                    return {};
10468                }
10469                static get NAME() {
10470                    throw new Error('You have to implement the static method "NAME", for each component!');
10471                }
10472                _getConfig(e) {
10473                    return (e = this._mergeConfigObj(e)), (e = this._configAfterMerge(e)), this._typeCheckConfig(e), e;
10474                }
10475                _configAfterMerge(e) {
10476                    return e;
10477                }
10478                _mergeConfigObj(e, t) {
10479                    const n = Sn(t) ? ai.getDataAttribute(t, "config") : {};
10480                    return { ...this.constructor.Default, ...("object" == typeof n ? n : {}), ...(Sn(t) ? ai.getDataAttributes(t) : {}), ...("object" == typeof e ? e : {}) };
10481                }
10482                _typeCheckConfig(e, t = this.constructor.DefaultType) {
10483                    for (const i of Object.keys(t)) {
10484                        const s = t[i],
10485                            o = e[i],
10486                            r = Sn(o)
10487                                ? "element"
10488                                : null == (n = o)
10489                                ? `${n}`
10490                                : Object.prototype.toString
10491                                      .call(n)
10492                                      .match(/\s([a-z]+)/i)[1]
10493                                      .toLowerCase();
10494                        if (!new RegExp(s).test(r)) throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${i}" provided type "${r}" but expected type "${s}".`);
10495                    }
10496                    var n;
10497                }
10498            }
10499            class ci extends li {
10500                constructor(e, t) {
10501                    super(), (e = An(e)) && ((this._element = e), (this._config = this._getConfig(t)), si.set(this._element, this.constructor.DATA_KEY, this));
10502                }
10503                dispose() {
10504                    si.remove(this._element, this.constructor.DATA_KEY), ti.off(this._element, this.constructor.EVENT_KEY);
10505                    for (const e of Object.getOwnPropertyNames(this)) this[e] = null;
10506                }
10507                _queueCallback(e, t, n = !0) {
10508                    jn(e, t, n);
10509                }
10510                _getConfig(e) {
10511                    return (e = this._mergeConfigObj(e, this._element)), (e = this._configAfterMerge(e)), this._typeCheckConfig(e), e;
10512                }
10513                static getInstance(e) {
10514                    return si.get(An(e), this.DATA_KEY);
10515                }
10516                static getOrCreateInstance(e, t = {}) {
10517                    return this.getInstance(e) || new this(e, "object" == typeof t ? t : null);
10518                }
10519                static get VERSION() {
10520                    return "5.2.1";
10521                }
10522                static get DATA_KEY() {
10523                    return `bs.${this.NAME}`;
10524                }
10525                static get EVENT_KEY() {
10526                    return `.${this.DATA_KEY}`;
10527                }
10528                static eventName(e) {
10529                    return `${e}${this.EVENT_KEY}`;
10530                }
10531            }
10532            const di = (e, t = "hide") => {
10533                const n = `click.dismiss${e.EVENT_KEY}`,
10534                    i = e.NAME;
10535                ti.on(document, n, `[data-bs-dismiss="${i}"]`, function (n) {
10536                    if ((["A", "AREA"].includes(this.tagName) && n.preventDefault(), $n(this))) return;
10537                    const s = Tn(this) || this.closest(`.${i}`);
10538                    e.getOrCreateInstance(s)[t]();
10539                });
10540            };
10541            class hi extends ci {
10542                static get NAME() {
10543                    return "alert";
10544                }
10545                close() {
10546                    if (ti.trigger(this._element, "close.bs.alert").defaultPrevented) return;
10547                    this._element.classList.remove("show");
10548                    const e = this._element.classList.contains("fade");
10549                    this._queueCallback(() => this._destroyElement(), this._element, e);
10550                }
10551                _destroyElement() {
10552                    this._element.remove(), ti.trigger(this._element, "closed.bs.alert"), this.dispose();
10553                }
10554                static jQueryInterface(e) {
10555                    return this.each(function () {
10556                        const t = hi.getOrCreateInstance(this);
10557                        if ("string" == typeof e) {
10558                            if (void 0 === t[e] || e.startsWith("_") || "constructor" === e) throw new TypeError(`No method n
10558amed "${e}"`);
10559                            t[e](this);
10560                        }
10561                    });
10562                }
10563            }
10564            di(hi, "close"), In(hi);
10565            const ui = '[data-bs-toggle="button"]';
10566            class pi extends ci {
10567                static get NAME() {
10568                    return "button";
10569                }
10570                toggle() {
10571                    this._element.setAttribute("aria-pressed", this._element.classList.toggle("active"));
10572                }
10573                static jQueryInterface(e) {
10574                    return this.each(function () {
10575                        const t = pi.getOrCreateInstance(this);
10576                        "toggle" === e && t[e]();
10577                    });
10578                }
10579            }
10580            ti.on(document, "click.bs.button.data-api", ui, (e) => {
10581                e.preventDefault();
10582                const t = e.target.closest(ui);
10583                pi.getOrCreateInstance(t).toggle();
10584            }),
10585                In(pi);
10586            const fi = {
10587                    find: (e, t = document.documentElement) => [].concat(...Element.prototype.querySelectorAll.call(t, e)),
10588                    findOne: (e, t = document.documentElement) => Element.prototype.querySelector.call(t, e),
10589                    children: (e, t) => [].concat(...e.children).filter((e) => e.matches(t)),
10590                    parents(e, t) {
10591                        const n = [];
10592                        let i = e.parentNode.closest(t);
10593                        for (; i; ) n.push(i), (i = i.parentNode.closest(t));
10594                        return n;
10595                    },
10596                    prev(e, t) {
10597                        let n = e.previousElementSibling;
10598                        for (; n; ) {
10599                            if (n.matches(t)) return [n];
10600                            n = n.previousElementSibling;
10601                        }
10602                        return [];
10603                    },
10604                    next(e, t) {
10605                        let n = e.nextElementSibling;
10606                        for (; n; ) {
10607                            if (n.matches(t)) return [n];
10608                            n = n.nextElementSibling;
10609                        }
10610                        return [];
10611                    },
10612                    focusableChildren(e) {
10613                        const t = ["a", "button", "input", "textarea", "select", "details", "[tabindex]", '[contenteditable="true"]'].map((e) => `${e}:not([tabindex^="-"])`).join(",");
10614                        return this.find(t, e).filter((e) => !$n(e) && kn(e));
10615                    },
10616                },
10617                gi = ".bs.swipe",
10618                mi = { endCallback: null, leftCallback: null, rightCallback: null },
10619                vi = { endCallback: "(function|null)", leftCallback: "(function|null)", right
10619Callback: "(function|null)" };
10620            class bi extends li {
10621                constructor(e, t) {
10622                    super(), (this._element = e), e && bi.isSupported() && ((this._config = this._getConfig(t)), (this._deltaX = 0), (this._supportPointerEvents = Boolean(window.PointerEvent)), this._initEvents());
10623                }
10624                static get Default() {
10625                    return mi;
10626                }
10627                static get DefaultType() {
10628                    return vi;
10629                }
10630                static get NAME() {
10631                    return "swipe";
10632                }
10633                dispose() {
10634                    ti.off(this._element, gi);
10635                }
10636                _start(e) {
10637                    this._supportPointerEvents ? this._eventIsPointerPenTouch(e) && (this._deltaX = e.clientX) : (this._deltaX = e.touches[0].clientX);
10638                }
10639                _end(e) {
10640                    this._eventIsPointerPenTouch(e) && (this._deltaX = e.clientX - this._deltaX), this._handleSwipe(), zn(this._config.endCallback);
10641                }
10642                _move(e) {
10643                    this._deltaX = e.touches && e.touches.length > 1 ? 0 : e.touches[0].clientX - this._deltaX;
10644                }
10645                _handleSwipe() {
10646                    const e = Math.abs(this._deltaX);
10647                    if (e <= 40) return;
10648                    const t = e / this._deltaX;
10649                    (this._deltaX = 0), t && zn(t > 0 ? this._config.rightCallback : this._config.leftCallback);
10650                }
10651                _initEvents() {
10652                    this._supportPointerEvents
10653                        ? (ti.on(this._element, "pointerdown.bs.swipe", (e) => this._start(e)), ti.on(this._element, "pointerup.bs.swipe", (e) => this._end(e)), this._element.classList.add("pointer-event"))
10654                        : (ti.on(this._element, "touchstart.bs.swipe", (e) => this._start(e)), ti.on(this._element, "touchmove.bs.swipe", (e) => this._move(e)), ti.on(this._element, "touchend.bs.swipe", (e) => this._end(e)));
10655                }
10656                _eventIsPointerPenTouch(e) {
10657                    return this._supportPointerEvents && ("pen" === e.pointerType || "touch" === e.pointerType);
10658                }
10659                static isSupported() {
10660                    return "ontouchstart" in document.documentElement || navigator.maxTouchPoints > 0;
10661                }
10662            }
10663            const yi = "next",
10664                wi = "prev",
10665                xi = "left",
10666                _i = "right",
10667                Ci = "slid.bs.carousel",
10668                Ti = "carousel",
10669                Ei = "active",
10670                Si = ".active",
10671                Ai = ".carousel-item",
10672                ki = { ArrowLeft: _i, ArrowRight: xi },
10673                $i = { interval: 5e3, keyboard: !0, pause: "hover", ride: !1, touch: !0, wrap: !0 },
10674                Li = { interval: "(number|boolean)", keyboard: "boolean", pause: "(string|boolean)", ride: "(boolean|string)", touch: "boolean", wrap: "boolean" };
10675            class Pi extends ci {
10676                constructor(e, t) {
10677                    super(e, t),
10678                        (this._interval = null),
10679                        (this._activeElement = null),
10680                        (this._isSliding = !1),
10681                        (this.touchTimeout = null),
10682                        (this._swipeHelper = null),
10683                        (this._indicatorsElement = fi.findOne(".carousel-indicators", this._element)),
10684                        this._addEventListeners(),
10685                        this._config.ride === Ti && this.cycle();
10686                }
10687                static get Default() {
10688                    return $i;
10689                }
10690                static get DefaultType() {
10691                    return Li;
10692                }
10693                static get NAME() {
10694                    return "carousel";
10695                }
10696                next() {
10697                    this._slide(yi);
10698                }
10699                nextWhenVisible() {
10700                    !document.hidden && kn(this._element) && this.next();
10701                }
10702                prev() {
10703                    this._slide(wi);
10704                }
10705                pause() {
10706                    this._isSliding && En(this._element), this._clearInterval();
10707                }
10708                cycle() {
10709                    this._clearInterval(), this._updateInterval(), (this._interval = setInterval(() => this.nextWhenVisible(), this._config.interval));
10710                }
10711                _maybeEnableCycle() {
10712                    this._config.ride && (this._isSliding ? ti.one(this._element, Ci, () => this.cycle()) : this.cycle());
10713                }
10714                to(e) {
10715                    const t = this._getItems();
10716                    if (e > t.length - 1 || e < 0) return;
10717                    if (this._isSliding) return void ti.one(this._element, Ci, () => this.to(e));
10718                    const n = this._getItemIndex(this._getActive());
10719                    if (n === e) return;
10720                    const i = e > n ? yi : wi;
10721                    this._slide(i, t[e]);
10722                }
10723                dispose() {
10724                    this._swipeHelper && this._swipeHelper.dispose(), super.dispose();
10725                }
10726                _configAfterMerge(e) {
10727                    return (e.defaultInterval = e.interval), e;
10728                }
10729                _addEventListeners() {
10730                    this._config.keyboard && ti.on(this._element, "keydown.bs.carousel", (e) => this._keydown(e)),
10731                        "hover" === this._config.pause && (ti.on(this._element, "mouseenter.bs.carousel", () => this.pause()), ti.on(this._element, "mouseleave.bs.carousel", () => this._maybeEnableCycle())),
10732                        this._config.touch && bi.isSupported() && this._addTouchEventListeners();
10733                }
10734                _addTouchEventListeners() {
10735                    for (const e of fi.find(".carousel-item img", this._element)) ti.on(e, "dragstart.bs.carousel", (e) => e.preventDefault());
10736                    const e = {
10737                        leftCallback: () => this._slide(this._directionToOrder(xi)),
10738                        rightCallback: () => this._slide(this._directionToOrder(_i)),
10739                        endCallback: () => {
10740                            "hover" === this._config.pause && (this.pause(), this.touchTimeout && clearTimeout(this.touchTimeout), (this.touchTimeout = setTimeout(() => this._maybeEnableCycle(), 500 + this._config.interval)));
10741                        },
10742                    };
10743                    this._swipeHelper = new bi(this._element, e);
10744                }
10745                _keydown(e) {
10746                    if (/input|textarea/i.test(e.target.tagName)) return;
10747                    const t = ki[e.key];
10748                    t && (e.preventDefault(), this._slide(this._directionToOrder(t)));
10749                }
10750                _getItemIndex(e) {
10751                    return this._getItems().indexOf(e);
10752                }
10753                _setActiveIndicatorElement(e) {
10754                    if (!this._indicatorsElement) return;
10755                    const t = fi.findOne(Si, this._indicatorsElement);
10756                    t.classList.remove(Ei), t.removeAttribute("aria-current");
10757                    const n = fi.findOne(`[data-bs-slide-to="${e}"]`, this._indicatorsElement);
10758                    n && (n.classList.add(Ei), n.setAttribute("aria-current", "true"));
10759                }
10760                _updateInterval() {
10761                    const e = this._activeElement || this._getActive();
10762                    if (!e) return;
10763                    const t = Number.parseInt(e.getAttribute("data-bs-interval"), 10);
10764                    this._config.interval = t || this._config.defaultInterval;
10765                }
10766                _slide(e, t = null) {
10767                    if (this._isSliding) return;
10768                    const n = this._getActive(),
10769                        i = e === yi,
10770                        s = t || Fn(this._getItems(), n, i, this._config.wrap);
10771                    if (s === n) return;
10772                    const o = this._getItemIndex(s),
10773                        r = (t) => ti.trigger(this._element, t, { relatedTarget: s, direction: this._orderToDirection(e), from: this._getItemIndex(n), to: o });
10774                    if (r("slide.bs.carousel").defaultPrevented) return;
10775                    if (!n || !s) return;
10776                    const a = Boolean(this._interval);
10777                    this.pause(), (this._isSliding = !0), this._setActiveIndicatorElement(o), (this._activeElement = s);
10778                    const l = i ? "carousel-item-start" : "carousel-item-end",
10779                        c = i ? "carousel-item-next" : "carousel-item-prev";
10780                    s.classList.add(c), On(s), n.classList.add(l), s.classList.add(l);
10781                    this._queueCallback(
10782                        () => {
10783                            s.classList.remove(l, c), s.classList.add(Ei), n.classList.remove(Ei, c, l), (this._isSliding = !1), r(Ci);
10784                        },
10785                        n,
10786                        this._isAnimated()
10787                    ),
10788                        a && this.cycle();
10789                }
10790                _isAnimated() {
10791                    return this._element.classList.contains("slide");
10792                }
10793                _getActive() {
10794                    return fi.findOne(".active.carousel-item", this._element);
10795                }
10796                _getItems() {
10797                    return fi.find(Ai, this._element);
10798                }
10799                _clearInterval() {
10800                    this._interval && (clearInterval(this._interval), (this._interval = null));
10801                }
10802                _directionToOrder(e) {
10803                    return Nn() ? (e === xi ? wi : yi) : e === xi ? yi : wi;
10804                }
10805                _orderToDirection(e) {
10806                    return Nn() ? (e === wi ? xi : _i) : e === wi ? _i : xi;
10807                }
10808                static jQueryInterface(e) {
10809                    return this.each(function () {
10810                        const t = Pi.getOrCreateInstance(this, e);
10811                        if ("number" != typeof e) {
10812                            if ("string" == typeof e) {
10813                                if (void 0 === t[e] || e.startsWith("_") || "constructor" === e) throw new TypeError(`No method named "${e}"`);
10814                                t[e]();
10815                            }
10816                        } else t.to(e);
10817                    });
10818                }
10819            }
10820            ti.on(document, "click.bs.carousel.data-api", "[data-bs-slide], [data-bs-slide-to]", function (e) {
10821                const t = Tn(this);
10822                if (!t || !t.classList.contains(Ti)) return;
10823                e.preventDefault();
10824                const n = Pi.getOrCreateInstance(t),
10825                    i = this.getAttribute("data-bs-slide-to");
10826                return i ? (n.to(i), void n._maybeEnableCycle()) : "next" === ai.getDataAttribute(this, "slide") ? (n.next(), void n._maybeEnableCycle()) : (n.prev(), void n._maybeEnableCycle());
10827            }),
10828                ti.on(window, "load.bs.carousel.data-api", () => {
10829                    const e = fi.find('[data-bs-ride="carousel"]');
10830                    for (const t of e) Pi.getOrCreateInstance(t);
10831                }),
10832                In(Pi);
10833            const Oi = "show",
10834                Mi = "collapse",
10835                Di = "collapsing",
10836                Ni = '[data-bs-toggle="collapse"]',
10837                Ii = { parent: null, toggle: !0 },
10838                zi = { parent: "(null|element)", toggle: "boolean" };
10839            class ji extends ci {
10840                constructor(e, t) {
10841                    super(e, t), (this._isTransitioning = !1), (this._triggerArray = []);
10842                    const n = fi.find(Ni);
10843                    for (const e of n) {
10844                        const t = Cn(e),
10845                            n = fi.find(t).filter((e) => e === this._element);
10846                        null !== t && n.length && this._triggerArray.push(e);
10847                    }
10848                    this._initializeChildren(), this._config.parent || this._addAriaAndCollapsedClass(this._triggerArray, this._isShown()), this._config.toggle && this.toggle();
10849                }
10850                static get Default() {
10851                    return Ii;
10852                }
10853                static get DefaultType() {
10854                    return zi;
10855                }
10856                static get NAME() {
10857                    return "collapse";
10858                }
10859                toggle() {
10860                    this._isShown() ? this.hide() : this.show();
10861                }
10862                show() {
10863                    if (this._isTransitioning || this._isShown()) return;
10864                    let e = [];
10865                    if (
10866                        (this._config.parent &&
10867                            (e = this._getFirstLevelChildren(".collapse.show, .collapse.collapsing")
10868                                .filter((e) => e !== this._element)
10869                                .map((e) => ji.getOrCreateInstance(e, { toggle: !1 }))),
10870                        e.length && e[0]._isTransitioning)
10871                    )
10872                        return;
10873                    if (ti.trigger(this._element, "show.bs.collapse").defaultPrevented) return;
10874                    for (const t of e) t.hide();
10875                    const t = this._getDimension();
10876                    this._element.classList.remove(Mi), this._element.classList.add(Di), (this._element.style[t] = 0), this._addAriaAndCollapsedClass(this._triggerArray, !0), (this._isTransitioning = !0);
10877                    const n = `scroll${t[0].toUpperCase() + t.slice(1)}`;
10878                    this._queueCallback(
10879                        () => {
10880                            (this._isTransitioning = !1), this._element.classList.remove(Di), this._element.classList.add(Mi, Oi), (this._element.style[t] = ""), ti.trigger(this._element, "shown.bs.collapse");
10881                        },
10882                        this._element,
10883                        !0
10884                    ),
10885                        (this._element.style[t] = `${this._element[n]}px`);
10886                }
10887                hide() {
10888                    if (this._isTransitioning || !this._isShown()) return;
10889                    if (ti.trigger(this._element, "hide.bs.collapse").defaultPrevented) return;
10890                    const e = this._getDimension();
10891                    (this._element.style[e] = `${this._element.getBoundingClientRect()[e]}px`), On(this._element), this._element.classList.add(Di), this._element.classList.remove(Mi, Oi);
10892                    for (const e of this._triggerArray) {
10893                        const t = Tn(e);
10894                        t && !this._isShown(t) && this._addAriaAndCollapsedClass([e], !1);
10895                    }
10896                    this._isTransitioning = !0;
10897                    (this._element.style[e] = ""),
10898                        this._queueCallback(
10899                            () => {
10900                                (this._isTransitioning = !1), this._element.classList.remove(Di), this._element.classList.add(Mi), ti.trigger(this._element, "hidden.bs.collapse");
10901                            },
10902                            this._element,
10903                            !0
10904                        );
10905                }
10906                _isShown(e = this._element) {
10907                    return e.classList.contains(Oi);
10908                }
10909                _configAfterMerge(e) {
10910                    return (e.toggle = Boolean(e.toggle)), (e.parent = An(e.parent)), e;
10911                }
10912                _getDimension() {
10913                    return this._element.classList.contains("collapse-horizontal") ? "width" : "height";
10914                }
10915                _initializeChildren() {
10916                    if (!this._config.parent) return;
10917                    const e = this._getFirstLevelChildren(Ni);
10918                    for (const t of e) {
10919                        const e = Tn(t);
10920                        e && this._addAriaAndCollapsedClass([t], this._isShown(e));
10921                    }
10922                }
10923                _getFirstLevelChildren(e) {
10924                    const t = fi.find(":scope .collapse .collapse", this._config.parent);
10925                    return fi.find(e, this._config.parent).filter((e) => !t.includes(e));
10926                }
10927                _addAriaAndCollapsedClass(e, t) {
10928                    if (e.length) for (const n of e) n.classList.toggle("collapsed", !t), n.setAttribute("aria-expanded", t);
10929                }
10930                static jQueryInterface(e) {
10931                    const t = {};
10932                    return (
10933                        "string" == typeof e && /show|hide/.test(e) && (t.toggle = !1),
10934                        this.each(function () {
10935                            const n = ji.getOrCreateInstance(this, t);
10936                            if ("string" == typeof e) {
10937                                if (void 0 === n[e]) throw new TypeError(`No method n
10937amed "${e}"`);
10938                                n[e]();
10939                            }
10940                        })
10941                    );
10942                }
10943            }
10944            ti.on(document, "click.bs.collapse.data-api", Ni, function (e) {
10945                ("A" === e.target.tagName || (e.delegateTarget && "A" === e.delegateTarget.tagName)) && e.preventDefault();
10946                const t = Cn(this),
10947                    n = fi.find(t);
10948                for (const e of n) ji.getOrCreateInstance(e, { toggle: !1 }).toggle();
10949            }),
10950                In(ji);
10951            const Fi = "dropdown",
10952                Hi = "ArrowUp",
10953                Ri = "ArrowDown",
10954                Bi = "click.bs.dropdown.data-api",
10955                qi = "keydown.bs.dropdown.data-api",
10956                Wi = "show",
10957                Vi = '[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled)',
10958                Gi = `${Vi}.show`,
10959                Xi = ".dropdown-menu",
10960                Yi = Nn() ? "top-end" : "top-start",
10961                Ui = Nn() ? "top-start" : "top-end",
10962                Ki = Nn() ? "bottom-end" : "bottom-start",
10963                Zi = Nn() ? "bottom-start" : "bottom-end",
10964                Qi = Nn() ? "left-start" : "right-start",
10965                Ji = Nn() ? "right-start" : "left-start",
10966                es = { autoClose: !0, boundary: "clippingParents", display: "dynamic", offset: [0, 2], popperConfig: null, reference: "toggle" },
10967                ts = { autoClose: "(boolean|string)", boundary: "(string|element)", display: "string", offset: "(array|string|function)", popperConfig: "(null|object|function)", reference: "(string|element|object)" };
10968            class ns extends ci {
10969                constructor(e, t) {
10970                    super(e, t), (this._popper = null), (this._parent = this._element.parentNode), (this._menu = fi.next(this._element, Xi)[0] || fi.prev(this._element, Xi)[0]), (this._inNavbar = this._detectNavbar());
10971                }
10972                static get Default() {
10973                    return es;
10974                }
10975                static get DefaultType() {
10976                    return ts;
10977                }
10978                static get NAME() {
10979                    return Fi;
10980                }
10981                toggle() {
10982                    return this._isShown() ? this.hide() : this.show();
10983                }
10984                show() {
10985                    if ($n(this._element) || this._isShown()) return;
10986                    const e = { relatedTarget: this._element };
10987                    if (!ti.trigger(this._element, "show.bs.dropdown", e).defaultPrevented) {
10988                        if ((this._createPopper(), "ontouchstart" in document.documentElement && !this._parent.closest(".
10988navbar-nav"))) for (const e of [].concat(...document.body.children)) ti.on(e, "mouseover", Pn);
10989                        this._element.focus(), this._element.setAttribute("aria-expanded", !0), this._menu.classList.add(Wi), this._element.classList.add(Wi), ti.trigger(this._element, "shown.bs.dropdown", e);
10990                    }
10991                }
10992                hide() {
10993                    if ($n(this._element) || !this._isShown()) return;
10994                    const e = { relatedTarget: this._element };
10995                    this._completeHide(e);
10996                }
10997                dispose() {
10998                    this._popper && this._popper.destroy(), super.dispose();
10999                }
11000                update() {
11001                    (this._inNavbar = this._detectNavbar()), this._popper && this._popper.update();
11002                }
11003                _completeHide(e) {
11004                    if (!ti.trigger(this._element, "hide.bs.dropdown", e).defaultPrevented) {
11005                        if ("ontouchstart" in document.documentElement) for (const e of [].concat(...document.body.children)) ti.off(e, "mouseover", Pn);
11006                        this._popper && this._popper.destroy(),
11007                            this._menu.classList.remove(Wi),
11008                            this._element.classList.remove(Wi),
11009                            this._element.setAttribute("aria-expanded", "false"),
11010                            ai.removeDataAttribute(this._menu, "popper"),
11011                            ti.trigger(this._element, "hidden.bs.dropdown", e);
11012                    }
11013                }
11014                _getConfig(e) {
11015                    if ("object" == typeof (e = super._getConfig(e)).reference && !Sn(e.reference) && "function" != typeof e.reference.getBoundingClientRect)
11016                        throw new TypeError(`${Fi.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);
11017                    return e;
11018                }
11019                _createPopper() {
11020                    if (void 0 === e) throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");
11021                    let t = this._element;
11022                    "parent" === this._config.reference ? (t = this._parent) : Sn(this._config.reference) ? (t = An(this._config.reference)) : "object" == typeof this._config.reference && (t = this._config.reference);
11023                    const n = this._getPopperConfig();
11024                    this._popper = bn(t, this._menu, n);
11025                }
11026                _isShown() {
11027                    return this._menu.classList.contains(Wi);
11028                }
11029                _getPlacement() {
11030                    const e = this._parent;
11031                    if (e.classList.contains("dropend")) return Qi;
11032                    if (e.classList.contains("dropstart")) return Ji;
11033                    if (e.classList.contains("dropup-center")) return "top";
11034                    if (e.classList.contains("dropdown-center")) return "bottom";
11035                    const t = "end" === getComputedStyle(this._menu).getPropertyValue("--bs-position").trim();
11036                    return e.classList.contains("dropup") ? (t ? Ui : Yi) : t ? Zi : Ki;
11037                }
11038                _detectNavbar() {
11039                    return null !== this._element.closest(".navbar");
11040                }
11041                _getOffset() {
11042                    const { offset: e } = this._config;
11043                    return "string" == typeof e ? e.split(",").map((e) => Number.parseInt(e, 10)) : "function" == typeof e ? (t) => e(t, this._element) : e;
11044                }
11045                _getPopperConfig() {
11046                    const e = {
11047                        placement: this._getPlacement(),
11048                        modifiers: [
11049                            { name: "preventOverflow", options: { boundary: this._config.boundary } },
11050                            { name: "offset", options: { offset: this._getOffset() } },
11051                        ],
11052                    };
11053                    return (
11054                        (this._inNavbar || "static" === this._config.display) && (ai.setDataAttribute(this._menu, "popper", "static"), (e.modifiers = [{ name: "applyStyles", enabled: !1 }])),
11055                        { ...e, ...("function" == typeof this._config.popperConfig ? this._config.popperConfig(e) : this._config.popperConfig) }
11056                    );
11057                }
11058                _selectMenuItem({ key: e, target: t }) {
11059                    const n = fi.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)", this._menu).filter((e) => kn(e));
11060                    n.length && Fn(n, t, e === Ri, !n.includes(t)).focus();
11061                }
11062                static jQueryInterface(e) {
11063                    return this.each(function () {
11064                        const t = ns.getOrCreateInstance(this, e);
11065                        if ("string" == typeof e) {
11066                            if (void 0 === t[e]) throw new TypeError(`No method named "${e}"`);
11067                            t[e]();
11068                        }
11069                    });
11070                }
11071                static clearMenus(e) {
11072                    if (2 === e.button || ("keyup" === e.type && "Tab" !== e.key)) return;
11073                    const t = fi.find(Gi);
11074                    for (const n of t) {
11075                        const t = ns.getInstance(n);
11076                        if (!t || !1 === t._config.autoClose) continue;
11077                        const i = e.composedPath(),
11078                            s = i.includes(t._menu);
11079                        if (i.includes(t._element) || ("inside" === t._config.autoClose && !s) || ("outside" === t._config.autoClose && s)) continue;
11080                        if (t._menu.contains(e.target) && (("keyup" === e.type && "Tab" === e.key) || /input|select|option|textarea|form/i.test(e.target.tagName))) continue;
11081                        const o = { relatedTarget: t._element };
11082                        "click" === e.type && (o.clickEvent = e), t._completeHide(o);
11083                    }
11084                }
11085                static dataApiKeydownHandler(e) {
11086                    const t = /input|textarea/i.test(e.target.tagName),
11087                        n = "Escape" === e.key,
11088                        i = [Hi, Ri].includes(e.key);
11089                    if (!i && !n) return;
11090                    if (t && !n) return;
11091                    e.preventDefault();
11092                    const s = this.matches(Vi) ? this : fi.prev(this, Vi)[0] || fi.next(this, Vi)[0],
11093                        o = ns.getOrCreateInstance(s);
11094                    if (i) return e.stopPropagation(), o.show(), void o._selectMenuItem(e);
11095                    o._isShown() && (e.stopPropagation(), o.hide(), s.focus());
11096                }
11097            }
11098            ti.on(document, qi, Vi, ns.dataApiKeydownHandler),
11099                ti.on(document, qi, Xi, ns.dataApiKeydownHandler),
11100                ti.on(document, Bi, ns.clearMenus),
11101                ti.on(document, "keyup.bs.dropdown.data-api", ns.clearMenus),
11102                ti.on(document, Bi, Vi, function (e) {
11103                    e.preventDefault(), ns.getOrCreateInstance(this).toggle();
11104                }),
11105                In(ns);
11106            const is = ".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",
11107                ss = ".sticky-top",
11108                os = "padding-right",
11109                rs = "margin-right";
11110            class as {
11111                constructor() {
11112                    this._element = document.body;
11113                }
11114                getWidth() {
11115                    const e = document.documentElement.clientWidth;
11116                    return Math.abs(window.innerWidth - e);
11117                }
11118                hide() {
11119                    const e = this.getWidth();
11120                    this._disableOverFlow(), this._setElementAttributes(this._element, os, (t) => t + e), this._setElementAttributes(is, os, (t) => t + e), this._setElementAttributes(ss, rs, (t) => t - e);
11121                }
11122                reset() {
11123                    this._resetElementAttributes(this._element, "overflow"), this._resetElementAttributes(this._element, os), this._resetElementAttributes(is, os), this._resetElementAttributes(ss, rs);
11124                }
11125                isOverflowing() {
11126                    return this.getWidth() > 0;
11127                }
11128                _disableOverFlow() {
11129                    this._saveInitialAttribute(this._element, "overflow"), (this._element.style.overflow = "hidden");
11130                }
11131                _setElementAttributes(e, t, n) {
11132                    const i = this.getWidth();
11133                    this._applyManipulationCallback(e, (e) => {
11134                        if (e !== this._element && window.innerWidth > e.clientWidth + i) return;
11135                        this._saveInitialAttribute(e, t);
11136                        const s = window.getComputedStyle(e).getPropertyValue(t);
11137                        e.style.setProperty(t, `${n(Number.parseFloat(s))}px`);
11138                    });
11139                }
11140                _saveInitialAttribute(e, t) {
11141                    const n = e.style.getPropertyValue(t);
11142                    n && ai.setDataAttribute(e, t, n);
11143                }
11144                _resetElementAttributes(e, t) {
11145                    this._applyManipulationCallback(e, (e) => {
11146                        const n = ai.getDataAttribute(e, t);
11147                        null !== n ? (ai.removeDataAttribute(e, t), e.style.setProperty(t, n)) : e.style.removeProperty(t);
11148                    });
11149                }
11150                _applyManipulationCallback(e, t) {
11151                    if (Sn(e)) t(e);
11152                    else for (const n of fi.find(e, this._element)) t(n);
11153                }
11154            }
11155            const ls = "backdrop",
11156                cs = "show",
11157                ds = "mousedown.bs.backdrop",
11158                hs = { className: "modal-backdrop", clickCallback: null, isAnimated: !1, isVisible: !0, rootElement: "body" },
11159                us = { className: "string", clickCallback: "(function|null)", isAnimated: "boolean", isVisible: "boolean", rootElement: "(element|string)" };
11160            class ps extends li {
11161                constructor(e) {
11162                    super(), (this._config = this._getConfig(e)), (this._isAppended = !1), (this._element = null);
11163                }
11164                static get Default() {
11165                    return hs;
11166                }
11167                static get DefaultType() {
11168                    return us;
11169                }
11170                static get NAME() {
11171                    return ls;
11172                }
11173                show(e) {
11174                    if (!this._config.isVisible) return void zn(e);
11175                    this._append();
11176                    const t = this._getElement();
11177                    this._config.isAnimated && On(t),
11178                        t.classList.add(cs),
11179                        this._emulateAnimation(() => {
11180                            zn(e);
11181                        });
11182                }
11183                hide(e) {
11184                    this._config.isVisible
11185                        ? (this._getElement().classList.remove(cs),
11186                          this._emulateAnimation(() => {
11187                              this.dispose(), zn(e);
11188                          }))
11189                        : zn(e);
11190                }
11191                dispose() {
11192                    this._isAppended && (ti.off(this._element, ds), this._element.remove(), (this._isAppended = !1));
11193                }
11194                _getElement() {
11195                    if (!this._element) {
11196                        const e = document.createElement("div");
11197                        (e.className = this._config.className), this._config.isAnimated && e.classList.add("fade"), (this._element = e);
11198                    }
11199                    return this._element;
11200                }
11201                _configAfterMerge(e) {
11202                    return (e.rootElement = An(e.rootElement)), e;
11203                }
11204                _append() {
11205                    if (this._isAppended) return;
11206                    const e = this._getElement();
11207                    this._config.rootElement.append(e),
11208                        ti.on(e, ds, () => {
11209                            zn(this._config.clickCallback);
11210                        }),
11211                        (this._isAppended = !0);
11212                }
11213                _emulateAnimation(e) {
11214                    jn(e, this._getElement(), this._config.isAnimated);
11215                }
11216            }
11217            const fs = ".bs.focustrap",
11218                gs = "backward",
11219                ms = { autofocus: !0, trapElement: null },
11220                vs = { autofocus: "boolean", trapElement: "element" };
11221            class bs extends li {
11222                constructor(e) {
11223                    super(), (this._config = this._getConfig(e)), (this._isActive = !1), (this._lastTabNavDirection = null);
11224                }
11225                static get Default() {
11226                    return ms;
11227                }
11228                static get DefaultType() {
11229                    return vs;
11230                }
11231                static get NAME() {
11232                    return "focustrap";
11233                }
11234                activate() {
11235                    this._isActive ||
11236                        (this._config.autofocus && this._config.trapElement.focus(),
11237                        ti.off(document, fs),
11238                        ti.on(document, "focusin.bs.focustrap", (e) => this._handleFocusin(e)),
11239                        ti.on(document, "keydown.tab.bs.focustrap", (e) => this._handleKeydown(e)),
11240                        (this._isActive = !0));
11241                }
11242                deactivate() {
11243                    this._isActive && ((this._isActive = !1), ti.off(document, fs));
11244                }
11245                _handleFocusin(e) {
11246                    const { trapElement: t } = this._config;
11247                    if (e.target === document || e.target === t || t.contains(e.target)) return;
11248                    const n = fi.focusableChildren(t);
11249                    0 === n.length ? t.focus() : this._lastTabNavDirection === gs ? n[n.length - 1].focus() : n[0].focus();
11250                }
11251                _handleKeydown(e) {
11252                    "Tab" === e.key && (this._lastTabNavDirection = e.shiftKey ? gs : "forward");
11253                }
11254            }
11255            const ys = ".bs.modal",
11256                ws = "hidden.bs.modal",
11257                xs = "show.bs.modal",
11258                _s = "modal-open",
11259                Cs = "show",
11260                Ts = "modal-static",
11261                Es = { backdrop: !0, focus: !0, keyboard: !0 },
11262                Ss = { backdrop: "(boolean|string)", focus: "boolean", keyboard: "boolean" };
11263            class As extends ci {
11264                constructor(e, t) {
11265                    super(e, t),
11266                        (this._dialog = fi.findOne(".modal-dialog", this._element)),
11267                        (this._backdrop = this._initializeBackDrop()),
11268                        (this._focustrap = this._initializeFocusTrap()),
11269                        (this._isShown = !1),
11270                        (this._isTransitioning = !1),
11271                        (this._scrollBar = new as()),
11272                        this._addEventListeners();
11273                }
11274                static get Default() {
11275                    return Es;
11276                }
11277                static get DefaultType() {
11278                    return Ss;
11279                }
11280                static get NAME() {
11281                    return "modal";
11282                }
11283                toggle(e) {
11284                    return this._isShown ? this.hide() : this.show(e);
11285                }
11286                show(e) {
11287                    if (this._isShown || this._isTransitioning) return;
11288                    ti.trigger(this._element, xs, { relatedTarget: e }).defaultPrevented ||
11289                        ((this._isShown = !0), (this._isTransitioning = !0), this._scrollBar.hide(), document.body.classList.add(_s), this._adjustDialog(), this._backdrop.show(() => this._showElement(e)));
11290                }
11291                hide() {
11292                    if (!this._isShown || this._isTransitioning) return;
11293                    ti.trigger(this._element, "hide.bs.modal").defaultPrevented ||
11294                        ((this._isShown = !1), (this._isTransitioning = !0), this._focustrap.deactivate(), this._element.classList.remove(Cs), this._queueCallback(() => this._hideModal(), this._element, this._isAnimated()));
11295                }
11296                dispose() {
11297                    for (const e of [window, this._dialog]) ti.off(e, ys);
11298                    this._backdrop.dispose(), this._focustrap.deactivate(), super.dispose();
11299                }
11300                handleUpdate() {
11301                    this._adjustDialog();
11302                }
11303                _initializeBackDrop() {
11304                    return new ps({ isVisible: Boolean(this._config.backdrop), isAnimated: this._isAnimated() });
11305                }
11306                _initializeFocusTrap() {
11307                    return new bs({ trapElement: this._element });
11308                }
11309                _showElement(e) {
11310                    document.body.contains(this._element) || document.body.append(this._element),
11311                        (this._element.style.display = "block"),
11312                        this._element.removeAttribute("aria-hidden"),
11313                        this._element.setAttribute("aria-modal", !0),
11314                        this._element.setAttribute("role", "dialog"),
11315                        (this._element.scrollTop = 0);
11316                    const t = fi.findOne(".modal-body", this._dialog);
11317                    t && (t.scrollTop = 0), On(this._element), this._element.classList.add(Cs);
11318                    this._queueCallback(
11319                        () => {
11320                            this._config.focus && this._focustrap.activate(), (this._isTransitioning = !1), ti.trigger(this._element, "shown.bs.modal", { relatedTarget: e });
11321                        },
11322                        this._dialog,
11323                        this._isAnimated()
11324                    );
11325                }
11326                _addEventListeners() {
11327                    ti.on(this._element, "keydown.dismiss.bs.modal", (e) => {
11328                        if ("Escape" === e.key) return this._config.keyboard ? (e.preventDefault(), void this.hide()) : void this._triggerBackdropTransition();
11329                    }),
11330                        ti.on(window, "resize.bs.modal", () => {
11331                            this._isShown && !this._isTransitioning && this._adjustDialog();
11332                        }),
11333                        ti.on(this._element, "mousedown.dismiss.bs.modal", (e) => {
11334                            ti.one(this._element, "click.dismiss.bs.modal", (t) => {
11335                                this._dialog.contains(e.target) || this._dialog.contains(t.target) || ("static" !== this._config.backdrop ? this._config.backdrop && this.hide() : this._triggerBackdropTransition());
11336                            });
11337                        });
11338                }
11339                _hideModal() {
11340                    (this._element.style.display = "none"),
11341                        this._element.setAttribute("aria-hidden", !0),
11342                        this._element.removeAttribute("aria-modal"),
11343                        this._element.removeAttribute("role"),
11344                        (this._isTransitioning = !1),
11345                        this._backdrop.hide(() => {
11346                            document.body.classList.remove(_s), this._resetAdjustments(), this._scrollBar.reset(), ti.trigger(this._element, ws);
11347                        });
11348                }
11349                _isAnimated() {
11350                    return this._element.classList.contains("fade");
11351                }
11352                _triggerBackdropTransition() {
11353                    if (ti.trigger(this._element, "hidePrevented.bs.modal").defaultPrevented) return;
11354                    const e = this._element.scrollHeight > document.documentElement.clientHeight,
11355                        t = this._element.style.overflowY;
11356                    "hidden" === t ||
11357                        this._element.classList.contains(Ts) ||
11358                        (e || (this._element.style.overflowY = "hidden"),
11359                        this._element.classList.add(Ts),
11360                        this._queueCallback(() => {
11361                            this._element.classList.remove(Ts),
11362                                this._queueCallback(() => {
11363                                    this._element.style.overflowY = t;
11364                                }, this._dialog);
11365                        }, this._dialog),
11366                        this._element.focus());
11367                }
11368                _adjustDialog() {
11369                    const e = this._element.scrollHeight > document.documentElement.clientHeight,
11370                        t = this._scrollBar.getWidth(),
11371                        n = t > 0;
11372                    if (n && !e) {
11373                        const e = Nn() ? "paddingLeft" : "paddingRight";
11374                        this._element.style[e] = `${t}px`;
11375                    }
11376                    if (!n && e) {
11377                        const e = Nn() ? "paddingRight" : "paddingLeft";
11378                        this._element.style[e] = `${t}px`;
11379                    }
11380                }
11381                _resetAdjustments() {
11382                    (this._element.style.paddingLeft = ""), (this._element.style.paddingRight = "");
11383                }
11384                static jQueryInterface(e, t) {
11385                    return this.each(function () {
11386                        const n = As.getOrCreateInstance(this, e);
11387                        if ("string" == typeof e) {
11388                            if (void 0 === n[e]) throw new TypeError(`No method named "${e}"`);
11389                            n[e](t);
11390                        }
11391                    });
11392                }
11393            }
11394            ti.on(document, "click.bs.modal.data-api", '[data-bs-toggle="modal"]', function (e) {
11395                const t = Tn(this);
11396                ["A", "AREA"].includes(this.tagName) && e.preventDefault(),
11397                    ti.one(t, xs, (e) => {
11398                        e.defaultPrevented ||
11399                            ti.one(t, ws, () => {
11400                                kn(this) && this.focus();
11401                            });
11402                    });
11403                const n = fi.findOne(".modal.show");
11404                n && As.getInstance(n).hide();
11405                As.getOrCreateInstance(t).toggle(this);
11406            }),
11407                di(As),
11408                In(As);
11409            const ks = "show",
11410                $s = "showing",
11411                Ls = "hiding",
11412                Ps = ".offcanvas.show",
11413                Os = "hidePrevented.bs.offcanvas",
11414                Ms = "hidden.bs.offcanvas",
11415                Ds = { backdrop: !0, keyboard: !0, scroll: !1 },
11416                Ns = { backdrop: "(boolean|string)", keyboard: "boolean", scroll: "boolean" };
11417            class Is extends ci {
11418                constructor(e, t) {
11419                    super(e, t), (this._isShown = !1), (this._backdrop = this._initializeBackDrop()), (this._focustrap = this._initializeFocusTrap()), this._addEventListeners();
11420                }
11421                static get Default() {
11422                    return Ds;
11423                }
11424                static get DefaultType() {
11425                    return Ns;
11426                }
11427                static get NAME() {
11428                    return "offcanvas";
11429                }
11430                toggle(e) {
11431                    return this._isShown ? this.hide() : this.show(e);
11432                }
11433                show(e) {
11434                    if (this._isShown) return;
11435                    if (ti.trigger(this._element, "show.bs.offcanvas", { relatedTarget: e }).defaultPrevented) return;
11436                    (this._isShown = !0), this._backdrop.show(), this._config.scroll || new as().hide(), this._element.setAttribute("aria-modal", !0), this._element.setAttribute("role", "dialog"), this._element.classList.add($s);
11437                    this._queueCallback(
11438                        () => {
11439                            (this._config.scroll && !this._config.backdrop) || this._focustrap.activate(),
11440                                this._element.classList.add(ks),
11441                                this._element.classList.remove($s),
11442                                ti.trigger(this._element, "shown.bs.offcanvas", { relatedTarget: e });
11443                        },
11444                        this._element,
11445                        !0
11446                    );
11447                }
11448                hide() {
11449                    if (!this._isShown) return;
11450                    if (ti.trigger(this._element, "hide.bs.offcanvas").defaultPrevented) return;
11451                    this._focustrap.deactivate(), this._element.blur(), (this._isShown = !1), this._element.classList.add(Ls), this._backdrop.hide();
11452                    this._queueCallback(
11453                        () => {
11454                            this._element.classList.remove(ks, Ls), this._element.removeAttribute("aria-modal"), this._element.removeAttribute("role"), this._config.scroll || new as().reset(), ti.trigger(this._element, Ms);
11455                        },
11456                        this._element,
11457                        !0
11458                    );
11459                }
11460                dispose() {
11461                    this._backdrop.dispose(), this._focustrap.deactivate(), super.dispose();
11462                }
11463                _initializeBackDrop() {
11464                    const e = Boolean(this._config.backdrop);
11465                    return new ps({
11466                        className: "offcanvas-backdrop",
11467                        isVisible: e,
11468                        isAnimated: !0,
11469                        rootElement: this._element.parentNode,
11470                        clickCallback: e
11471                            ? () => {
11472                                  "static" !== this._config.backdrop ? this.hide() : ti.trigger(this._element, Os);
11473                              }
11474                            : null,
11475                    });
11476                }
11477                _initializeFocusTrap() {
11478                    return new bs({ trapElement: this._element });
11479                }
11480                _addEventListeners() {
11481                    ti.on(this._element, "keydown.dismiss.bs.offcanvas", (e) => {
11482                        "Escape" === e.key && (this._config.keyboard ? this.hide() : ti.trigger(this._element, Os));
11483                    });
11484                }
11485                static jQueryInterface(e) {
11486                    return this.each(function () {
11487                        const t = Is.getOrCreateInstance(this, e);
11488                        if ("string" == typeof e) {
11489                            if (void 0 === t[e] || e.startsWith("_") || "constructor" === e) throw new TypeError(`No method n
11489amed "${e}"`);
11490                            t[e](this);
11491                        }
11492                    });
11493                }
11494            }
11495            ti.on(document, "click.bs.offcanvas.data-api", '[data-bs-toggle="offcanvas"]', function (e) {
11496                const t = Tn(this);
11497                if ((["A", "AREA"].includes(this.tagName) && e.preventDefault(), $n(this))) return;
11498                ti.one(t, Ms, () => {
11499                    kn(this) && this.focus();
11500                });
11501                const n = fi.findOne(Ps);
11502                n && n !== t && Is.getInstance(n).hide();
11503                Is.getOrCreateInstance(t).toggle(this);
11504            }),
11505                ti.on(window, "load.bs.offcanvas.data-api", () => {
11506                    for (const e of fi.find(Ps)) Is.getOrCreateInstance(e).show();
11507                }),
11508                ti.on(window, "resize.bs.offcanvas", () => {
11509                    for (const e of fi.find("[aria-modal][class*=show][class*=offcanvas-]")) "fixed" !== getComputedStyle(e).position && Is.getOrCreateInstance(e).hide();
11510                }),
11511                di(Is),
11512                In(Is);
11513            const zs = new Set(["background", "cite", "href", "itemtype", "longdesc", "poster", "src", "xlink:href"]),
11514                js = /^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i,
11515                Fs = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i,
11516                Hs = (e, t) => {
11517                    const n = e.nodeName.toLowerCase();
11518                    return t.includes(n) ? !zs.has(n) || Boolean(js.test(e.nodeValue) || Fs.test(e.nodeValue)) : t.filter((e) => e instanceof RegExp).some((e) => e.test(n));
11519                },
11520                Rs = {
11521                    "*": ["class", "dir", "id", "lang", "role", /^aria-[\w-]*$/i],
11522                    a: ["target", "href", "title", "rel"],
11523                    area: [],
11524                    b: [],
11525                    br: [],
11526                    col: [],
11527                    code: [],
11528                    div: [],
11529                    em: [],
11530                    hr: [],
11531                    h1: [],
11532                    h2: [],
11533                    h3: [],
11534                    h4: [],
11535                    h5: [],
11536                    h6: [],
11537                    i: [],
11538                    img: ["src", "srcset", "alt", "title", "width", "height"],
11539                    li: [],
11540                    ol: [],
11541                    p: [],
11542                    pre: [],
11543                    s: [],
11544                    small: [],
11545                    span: [],
11546                    sub: [],
11547                    sup: [],
11548                    strong: [],
11549                    u: [],
11550                    ul: [],
11551                };
11552            const Bs = { allowList: Rs, content: {}, extraClass: "", html: !1, sanitize: !0, sanitizeFn: null, template: "<div></div>" },
11553                qs = { allowList: "object", content: "object", extraClass: "(string|function)", html: "boolean", sanitize: "boolean", sanitizeFn: "(null|function)", template: "string" },
11554                Ws = { entry: "(string|element|function|null)", selector: "(string|element)" };
11555            class Vs extends li {
11556                constructor(e) {
11557                    super(), (this._config = this._getConfig(e));
11558                }
11559                static get Default() {
11560                    return Bs;
11561                }
11562                static get DefaultType() {
11563                    return qs;
11564                }
11565                static get NAME() {
11566                    return "TemplateFactory";
11567                }
11568                getContent() {
11569                    return Object.values(this._config.content)
11570                        .map((e) => this._resolvePossibleFunction(e))
11571                        .filter(Boolean);
11572                }
11573                hasContent() {
11574                    return this.getContent().length > 0;
11575                }
11576                changeContent(e) {
11577                    return this._checkContent(e), (this._config.content = { ...this._config.content, ...e }), this;
11578                }
11579                toHtml() {
11580                    const e = document.createElement("div");
11581                    e.innerHTML = this._maybeSanitize(this._config.template);
11582                    for (const [t, n] of Object.entries(this._config.content)) this._setContent(e, n, t);
11583                    const t = e.children[0],
11584                        n = this._resolvePossibleFunction(this._config.extraClass);
11585                    return n && t.classList.add(...n.split(" ")), t;
11586                }
11587                _typeCheckConfig(e) {
11588                    super._typeCheckConfig(e), this._checkContent(e.content);
11589                }
11590                _checkContent(e) {
11591                    for (const [t, n] of Object.entries(e)) super._typeCheckConfig({ selector: t, entry: n }, Ws);
11592                }
11593                _setContent(e, t, n) {
11594                    const i = fi.findOne(n, e);
11595                    i && ((t = this._resolvePossibleFunction(t)) ? (Sn(t) ? this._putElementInTemplate(An(t), i) : this._config.html ? (i.innerHTML = this._maybeSanitize(t)) : (i.textContent = t)) : i.remove());
11596                }
11597                _maybeSanitize(e) {
11598                    return this._config.sanitize
11599                        ? (function (e, t, n) {
11600                              if (!e.length) return e;
11601                              if (n && "function" == typeof n) return n(e);
11602                              const i = new window.DOMParser().parseFromString(e, "text/html"),
11603                                  s = [].concat(...i.body.querySelectorAll("*"));
11604                              for (const e of s) {
11605                                  const n = e.nodeName.toLowerCase();
11606                                  if (!Object.keys(t).includes(n)) {
11607                                      e.remove();
11608                                      continue;
11609                                  }
11610                                  const i = [].concat(...e.attributes),
11611                                      s = [].concat(t["*"] || [], t[n] || []);
11612                                  for (const t of i) Hs(t, s) || e.removeAttribute(t.nodeName);
11613                              }
11614                              return i.body.innerHTML;
11615                          })(e, this._config.allowList, this._config.sanitizeFn)
11616                        : e;
11617                }
11618                _resolvePossibleFunction(e) {
11619                    return "function" == typeof e ? e(this) : e;
11620                }
11621                _putElementInTemplate(e, t) {
11622                    if (this._config.html) return (t.innerHTML = ""), void t.append(e);
11623                    t.textContent = e.textContent;
11624                }
11625            }
11626            const Gs = new Set(["sanitize", "allowList", "sanitizeFn"]),
11627                Xs = "fade",
11628                Ys = "show",
11629                Us = ".modal",
11630                Ks = "hide.bs.modal",
11631                Zs = "hover",
11632                Qs = "focus",
11633                Js = { AUTO: "auto", TOP: "top", RIGHT: Nn() ? "left" : "right", BOTTOM: "bottom", LEFT: Nn() ? "right" : "left" },
11634                eo = {
11635                    allowList: Rs,
11636                    animation: !0,
11637                    boundary: "clippingParents",
11638                    container: !1,
11639                    customClass: "",
11640                    delay: 0,
11641                    fallbackPlacements: ["top", "right", "bottom", "left"],
11642                    html: !1,
11643                    offset: [0, 0],
11644                    placement: "top",
11645                    popperConfig: null,
11646                    sanitize: !0,
11647                    sanitizeFn: null,
11648                    selector: !1,
11649                    template: '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',
11650                    title: "",
11651                    trigger: "hover focus",
11652                },
11653                to = {
11654                    allowList: "object",
11655                    animation: "boolean",
11656                    boundary: "(string|element)",
11657                    container: "(string|element|boolean)",
11658                    customClass: "(string|function)",
11659                    delay: "(number|object)",
11660                    fallbackPlacements: "array",
11661                    html: "boolean",
11662                    offset: "(array|string|function)",
11663                    placement: "(string|function)",
11664                    popperConfig: "(null|object|function)",
11665                    sanitize: "boolean",
11666                    sanitizeFn: "(null|function)",
11667                    selector: "(string|boolean)",
11668                    template: "string",
11669                    title: "(string|element|function)",
11670                    trigger: "string",
11671                };
11672            class no extends ci {
11673                constructor(t, n) {
11674                    if (void 0 === e) throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");
11675                    super(t, n),
11676                        (this._isEnabled = !0),
11677                        (this._timeout = 0),
11678                        (this._isHovered = null),
11679                        (this._activeTrigger = {}),
11680                        (this._popper = null),
11681                        (this._templateFactory = null),
11682                        (this._newContent = null),
11683                        (this.tip = null),
11684                        this._setListeners();
11685                }
11686                static get Default() {
11687                    return eo;
11688                }
11689                static get DefaultType() {
11690                    return to;
11691                }
11692                static get NAME() {
11693                    return "tooltip";
11694                }
11695                enable() {
11696                    this._isEnabled = !0;
11697                }
11698                disable() {
11699                    this._isEnabled = !1;
11700                }
11701                toggleEnabled() {
11702                    this._isEnabled = !this._isEnabled;
11703                }
11704                toggle(e) {
11705                    if (this._isEnabled) {
11706                        if (e) {
11707                            const t = this._initializeOnDelegatedTarget(e);
11708                            return (t._activeTrigger.click = !t._activeTrigger.click), void (t._isWithActiveTrigger() ? t._enter() : t._leave());
11709                        }
11710                        this._isShown() ? this._leave() : this._enter();
11711                    }
11712                }
11713                dispose() {
11714                    clearTimeout(this._timeout),
11715                        ti.off(this._element.closest(Us), Ks, this._hideModalHandler),
11716                        this.tip && this.tip.remove(),
11717                        this._config.originalTitle && this._element.setAttribute("title", this._config.originalTitle),
11718                        this._disposePopper(),
11719                        super.dispose();
11720                }
11721                show() {
11722                    if ("none" === this._element.style.display) throw new Error("Please use show on visible elements");
11723                    if (!this._isWithContent() || !this._isEnabled) return;
11724                    const e = ti.trigger(this._element, this.constructor.eventName("show")),
11725                        t = (Ln(this._element) || this._element.ownerDocument.documentElement).contains(this._element);
11726                    if (e.defaultPrevented || !t) return;
11727                    this.tip && (this.tip.remove(), (this.tip = null));
11728                    const n = this._getTipElement();
11729                    this._element.setAttribute("aria-describedby", n.getAttribute("id"));
11730                    const { container: i } = this._config;
11731                    if (
11732                        (this._element.ownerDocument.documentElement.contains(this.tip) || (i.append(n), ti.trigger(this._element, this.constructor.eventName("inserted"))),
11733                        this._popper ? this._popper.update() : (this._popper = this._createPopper(n)),
11734                        n.classList.add(Ys),
11735                        "ontouchstart" in document.documentElement)
11736                    )
11737                        for (const e of [].concat(...document.body.children)) ti.on(e, "mouseover", Pn);
11738                    this._queueCallback(
11739                        () => {
11740                            ti.trigger(this._element, this.constructor.eventName("shown")), !1 === this._isHovered && this._leave(), (this._isHovered = !1);
11741                        },
11742                        this.tip,
11743                        this._isAnimated()
11744                    );
11745                }
11746                hide() {
11747                    if (!this._isShown()) return;
11748                    if (ti.trigger(this._element, this.constructor.eventName("hide")).defaultPrevented) return;
11749                    const e = this._getTipElement();
11750                    if ((e.classList.remove(Ys), "ontouchstart" in document.documentElement)) for (const e of [].concat(...document.body.children)) ti.off(e, "mouseover", Pn);
11751                    (this._activeTrigger.click = !1), (this._activeTrigger.focus = !1), (this._activeTrigger.hover = !1), (this._isHovered = null);
11752                    this._queueCallback(
11753                        () => {
11754                            this._isWithActiveTrigger() || (this._isHovered || e.remove(), this._element.removeAttribute("aria-describedby"), ti.trigger(this._element, this.constructor.eventName("hidden")), this._disposePopper());
11755                        },
11756                        this.tip,
11757                        this._isAnimated()
11758                    );
11759                }
11760                update() {
11761                    this._popper && this._popper.update();
11762                }
11763                _isWithContent() {
11764                    return Boolean(this._getTitle());
11765                }
11766                _getTipElement() {
11767                    return this.tip || (this.tip = this._createTipElement(this._newContent || this._getContentForTemplate())), this.tip;
11768                }
11769                _createTipElement(e) {
11770                    const t = this._getTemplateFactory(e).toHtml();
11771                    if (!t) return null;
11772                    t.classList.remove(Xs, Ys), t.classList.add(`bs-${this.constructor.NAME}-auto`);
11773                    const n = ((e) => {
11774                        do {
11775                            e += Math.floor(1e6 * Math.random());
11776                        } while (document.getElementById(e));
11777                        return e;
11778                    })(this.constructor.NAME).toString();
11779                    return t.setAttribute("id", n), this._isAnimated() && t.classList.add(Xs), t;
11780                }
11781                setContent(e) {
11782                    (this._newContent = e), this._isShown() && (this._disposePopper(), this.show());
11783                }
11784                _getTemplateFactory(e) {
11785                    return (
11786                        this._templateFactory ? this._templateFactory.changeContent(e) : (this._templateFactory = new Vs({ ...this._config, content: e, extraClass: this._resolvePossibleFunction(this._config.customClass) })),
11787                        this._templateFactory
11788                    );
11789                }
11790                _getContentForTemplate() {
11791                    return { ".tooltip-inner": this._getTitle() };
11792                }
11793                _getTitle() {
11794                    return this._resolvePossibleFunction(this._config.title) || this._config.originalTitle;
11795                }
11796                _initializeOnDelegatedTarget(e) {
11797                    return this.constructor.getOrCreateInstance(e.delegateTarget, this._getDelegateConfig());
11798                }
11799                _isAnimated() {
11800                    return this._config.animation || (this.tip && this.tip.classList.contains(Xs));
11801                }
11802                _isShown() {
11803                    return this.tip && this.tip.classList.contains(Ys);
11804                }
11805                _createPopper(e) {
11806                    const t = "function" == typeof this._config.placement ? this._config.placement.call(this, e, this._element) : this._config.placement,
11807                        n = Js[t.toUpperCase()];
11808                    return bn(this._element, e, this._getPopperConfig(n));
11809                }
11810                _getOffset() {
11811                    const { offset: e } = this._config;
11812                    return "string" == typeof e ? e.split(",").map((e) => Number.parseInt(e, 10)) : "function" == typeof e ? (t) => e(t, this._element) : e;
11813                }
11814                _resolvePossibleFunction(e) {
11815                    return "function" == typeof e ? e.call(this._element) : e;
11816                }
11817                _getPopperConfig(e) {
11818                    const t = {
11819                        placement: e,
11820                        modifiers: [
11821                            { name: "flip", options: { fallbackPlacements: this._config.fallbackPlacements } },
11822                            { name: "offset", options: { offset: this._getOffset() } },
11823                            { name: "preventOverflow", options: { boundary: this._config.boun
11823dary } },
11824                            { name: "arrow", options: { element: `.${this.constructor.NAME}-arrow` } },
11825                            {
11826                                name: "preSetPlacement",
11827                                enabled: !0,
11828                                phase: "beforeMain",
11829                                fn: (e) => {
11830                                    this._getTipElement().setAttribute("data-popper-placement", e.state.placement);
11831                                },
11832                            },
11833                        ],
11834                    };
11835                    return { ...t, ...("function" == typeof this._config.popperConfig ? this._config.popperConfig(t) : this._config.popperConfig) };
11836                }
11837                _setListeners() {
11838                    const e = this._config.trigger.split(" ");
11839                    for (const t of e)
11840                        if ("click" === t) ti.on(this._element, this.constructor.eventName("click"), this._config.selector, (e) => this.toggle(e));
11841                        else if ("manual" !== t) {
11842                            const e = t === Zs ? this.constructor.eventName("mouseenter") : this.constructor.eventName("focusin"),
11843                                n = t === Zs ? this.constructor.eventName("mouseleave") : this.constructor.eventName("focusout");
11844                            ti.on(this._element, e, this._config.selector, (e) => {
11845                                const t = this._initializeOnDelegatedTarget(e);
11846                                (t._activeTrigger["focusin" === e.type ? Qs : Zs] = !0), t._enter();
11847                            }),
11848                                ti.on(this._element, n, this._config.selector, (e) => {
11849                                    const t = this._initializeOnDelegatedTarget(e);
11850                                    (t._activeTrigger["focusout" === e.type ? Qs : Zs] = t._element.contains(e.relatedTarget)), t._leave();
11851                                });
11852                        }
11853                    (this._hideModalHandler = () => {
11854                        this._element && this.hide();
11855                    }),
11856                        ti.on(this._element.closest(Us), Ks, this._hideModalHandler),
11857                        this._config.selector ? (this._config = { ...this._config, trigger: "manual", selector: "" }) : this._fixTitle();
11858                }
11859                _fixTitle() {
11860                    const e = this._config.originalTitle;
11861                    e && (this._element.getAttribute("aria-label") || this._element.textContent.trim() || this._element.setAttribute("aria-label", e), this._element.removeAttribute("title"));
11862                }
11863                _enter() {
11864                    this._isShown() || this._isHovered
11865                        ? (this._isHovered = !0)
11866                        : ((this._isHovered = !0),
11867                          this._setTimeout(() => {
11868                              this._isHovered && this.show();
11869                          }, this._config.delay.show));
11870                }
11871                _leave() {
11872                    this._isWithActiveTrigger() ||
11873                        ((this._isHovered = !1),
11874                        this._setTimeout(() => {
11875                            this._isHovered || this.hide();
11876                        }, this._config.delay.hide));
11877                }
11878                _setTimeout(e, t) {
11879                    clearTimeout(this._timeout), (this._timeout = setTimeout(e, t));
11880                }
11881                _isWithActiveTrigger() {
11882                    return Object.values(this._activeTrigger).includes(!0);
11883                }
11884                _getConfig(e) {
11885                    const t = ai.getDataAttributes(this._element);
11886                    for (const e of Object.keys(t)) Gs.has(e) && delete t[e];
11887                    return (e = { ...t, ...("object" == typeof e && e ? e : {}) }), (e = this._mergeConfigObj(e)), (e = this._configAfterMerge(e)), this._typeCheckConfig(e), e;
11888                }
11889                _configAfterMerge(e) {
11890                    return (
11891                        (e.container = !1 === e.container ? document.body : An(e.container)),
11892                        "number" == typeof e.delay && (e.delay = { show: e.delay, hide: e.delay }),
11893                        (e.originalTitle = this._element.getAttribute("title") || ""),
11894                        "number" == typeof e.title && (e.title = e.title.toString()),
11895                        "number" == typeof e.content && (e.content = e.content.toString()),
11896                        e
11897                    );
11898                }
11899                _getDelegateConfig() {
11900                    const e = {};
11901                    for (const t in this._config) this.constructor.Default[t] !== this._config[t] && (e[t] = this._config[t]);
11902                    return e;
11903                }
11904                _disposePopper() {
11905                    this._popper && (this._popper.destroy(), (this._popper = null));
11906                }
11907                static jQueryInterface(e) {
11908                    return this.each(function () {
11909                        const t = no.getOrCreateInstance(this, e);
11910                        if ("string" == typeof e) {
11911                            if (void 0 === t[e]) throw new TypeError(`No method n
11911amed "${e}"`);
11912                            t[e]();
11913                        }
11914                    });
11915                }
11916            }
11917            In(no);
11918            const io = {
11919                    ...no.Default,
11920                    content: "",
11921                    offset: [0, 8],
11922                    placement: "right",
11923                    template: '<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>',
11924                    trigger: "click",
11925                },
11926                so = { ...no.DefaultType, content: "(null|string|element|function)" };
11927            class oo extends no {
11928                static get Default() {
11929                    return io;
11930                }
11931                static get DefaultType() {
11932                    return so;
11933                }
11934                static get NAME() {
11935                    return "popover";
11936                }
11937                _isWithContent() {
11938                    return this._getTitle() || this._getContent();
11939                }
11940                _getContentForTemplate() {
11941                    return { ".popover-header": this._getTitle(), ".popover-body": this._getContent() };
11942                }
11943                _getContent() {
11944                    return this._resolvePossibleFunction(this._config.content);
11945                }
11946                static jQueryInterface(e) {
11947                    return this.each(function () {
11948                        const t = oo.getOrCreateInstance(this, e);
11949                        if ("string" == typeof e) {
11950                            if (void 0 === t[e]) throw new TypeError(`No method named "${e}"`);
11951                            t[e]();
11952                        }
11953                    });
11954                }
11955            }
11956            In(oo);
11957            const ro = "click.bs.scrollspy",
11958                ao = "active",
11959                lo = "[href]",
11960                co = { offset: null, rootMargin: "0px 0px -25%", smoothScroll: !1, target: null, threshold: [0.1, 0.5, 1] },
11961                ho = { offset: "(number|null)", rootMargin: "string", smoothScroll: "boolean", target: "element", threshold: "array" };
11962            class uo extends ci {
11963                constructor(e, t) {
11964                    super(e, t),
11965                        (this._targetLinks = new Map()),
11966                        (this._observableSections = new Map()),
11967                        (this._rootElement = "visible" === getComputedStyle(this._element).overflowY ? null : this._element),
11968                        (this._activeTarget = null),
11969                        (this._observer = null),
11970                        (this._previousScrollData = { visibleEntryTop: 0, parentScrollTop: 0 }),
11971                        this.refresh();
11972                }
11973                static get Default() {
11974                    return co;
11975                }
11976                static get DefaultType() {
11977                    return ho;
11978                }
11979                static get NAME() {
11980                    return "scrollspy";
11981                }
11982                refresh() {
11983                    this._initializeTargetsAndObservables(), this._maybeEnableSmoothScroll(), this._observer ? this._observer.disconnect() : (this._observer = this._getNewObserver());
11984                    for (const e of this._observableSections.values()) this._observer.observe(e);
11985                }
11986                dispose() {
11987                    this._observer.disconnect(), super.dispose();
11988                }
11989                _configAfterMerge(e) {
11990                    return (
11991                        (e.target = An(e.target) || document.body),
11992                        (e.rootMargin = e.offset ? `${e.offset}px 0px -30%` : e.rootMargin),
11993                        "string" == typeof e.threshold && (e.threshold = e.threshold.split(",").map((e) => Number.parseFloat(e))),
11994                        e
11995                    );
11996                }
11997                _maybeEnableSmoothScroll() {
11998                    this._config.smoothScroll &&
11999                        (ti.off(this._config.target, ro),
12000                        ti.on(this._config.target, ro, lo, (e) => {
12001                            const t = this._observableSections.get(e.target.hash);
12002                            if (t) {
12003                                e.preventDefault();
12004                                const n = this._rootElement || window,
12005                                    i = t.offsetTop - this._element.offsetTop;
12006                                if (n.scrollTo) return void n.scrollTo({ top: i, behavior: "smooth" });
12007                                n.scrollTop = i;
12008                            }
12009                        }));
12010                }
12011                _getNewObserver() {
12012                    const e = { root: this._rootElement, threshold: this._config.threshold, rootMargin: this._config.rootMargin };
12013                    return new IntersectionObserver((e) => this._observerCallback(e), e);
12014                }
12015                _observerCallback(e) {
12016                    const t = (e) => this._targetLinks.get(`#${e.target.id}`),
12017                        n = (e) => {
12018                            (this._previousScrollData.visibleEntryTop = e.target.offsetTop), this._process(t(e));
12019                        },
12020                        i = (this._rootElement || document.documentElement).scrollTop,
12021                        s = i >= this._previousScrollData.parentScrollTop;
12022                    this._previousScrollData.parentScrollTop = i;
12023                    for (const o of e) {
12024                        if (!o.isIntersecting) {
12025                            (this._activeTarget = null), this._clearActiveClass(t(o));
12026                            continue;
12027                        }
12028                        const e = o.target.offsetTop >= this._previousScrollData.visibleEntryTop;
12029                        if (s && e) {
12030                            if ((n(o), !i)) return;
12031                        } else s || e || n(o);
12032                    }
12033                }
12034                _initializeTargetsAndObservables() {
12035                    (this._targetLinks = new Map()), (this._observableSections = new Map());
12036                    const e = fi.find(lo, this._config.target);
12037                    for (const t of e) {
12038                        if (!t.hash || $n(t)) continue;
12039                        const e = fi.findOne(t.hash, this._element);
12040                        kn(e) && (this._targetLinks.set(t.hash, t), this._observableSections.set(t.hash, e));
12041                    }
12042                }
12043                _process(e) {
12044                    this._activeTarget !== e &&
12045                        (this._clearActiveClass(this._config.target), (this._activeTarget = e), e.classList.add(ao), this._activateParents(e), ti.trigger(this._element, "activate.bs.scrollspy", { relatedTarget: e }));
12046                }
12047                _activateParents(e) {
12048                    if (e.classList.contains("dropdown-item")) fi.findOne(".dropdown-toggle", e.closest(".dropdown")).classList.add(ao);
12049                    else for (const t of fi.parents(e, ".nav, .list-group")) for (const e of fi.prev(t, ".nav-link, .nav-item > .nav-link, .list-group-item")) e.classList.add(ao);
12050                }
12051                _clearActiveClass(e) {
12052                    e.classList.remove(ao);
12053                    const t = fi.find("[href].active", e);
12054                    for (const e of t) e.classList.remove(ao);
12055                }
12056                static jQueryInterface(e) {
12057                    return this.each(function () {
12058                        const t = uo.getOrCreateInstance(this, e);
12059                        if ("string" == typeof e) {
12060                            if (void 0 === t[e] || e.startsWith("_") || "constructor" === e) throw new TypeError(`No method n
12060amed "${e}"`);
12061                            t[e]();
12062                        }
12063                    });
12064                }
12065            }
12066            ti.on(window, "load.bs.scrollspy.data-api", () => {
12067                for (const e of fi.find('[data-bs-spy="scroll"]')) uo.getOrCreateInstance(e);
12068            }),
12069                In(uo);
12070            const po = "ArrowLeft",
12071                fo = "ArrowRight",
12072                go = "ArrowUp",
12073                mo = "ArrowDown",
12074                vo = "active",
12075                bo = "fade",
12076                yo = "show",
12077                wo = '[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',
12078                xo = `.nav-link:not(.dropdown-toggle), .list-group-item:not(.dropdown-toggle), [role="tab"]:not(.dropdown-toggle), ${wo}`;
12079            class _o extends ci {
12080                constructor(e) {
12081                    super(e),
12082                        (this._parent = this._element.closest('.list-group, .nav, [role="tablist"]')),
12083                        this._parent && (this._setInitialAttributes(this._parent, this._getChildren()), ti.on(this._element, "keydown.bs.tab", (e) => this._keydown(e)));
12084                }
12085                static get NAME() {
12086                    return "tab";
12087                }
12088                show() {
12089                    const e = this._element;
12090                    if (this._elemIsActive(e)) return;
12091                    const t = this._getActiveElem(),
12092                        n = t ? ti.trigger(t, "hide.bs.tab", { relatedTarget: e }) : null;
12093                    ti.trigger(e, "show.bs.tab", { relatedTarget: t }).defaultPrevented || (n && n.defaultPrevented) || (this._deactivate(t, e), this._activate(e, t));
12094                }
12095                _activate(e, t) {
12096                    if (!e) return;
12097                    e.classList.add(vo), this._activate(Tn(e));
12098                    this._queueCallback(
12099                        () => {
12100                            "tab" === e.getAttribute("role")
12101                                ? (e.focus(), e.removeAttribute("tabindex"), e.setAttribute("aria-selected", !0), this._toggleDropDown(e, !0), ti.trigger(e, "shown.bs.tab", { relatedTarget: t }))
12102                                : e.classList.add(yo);
12103                        },
12104                        e,
12105                        e.classList.contains(bo)
12106                    );
12107                }
12108                _deactivate(e, t) {
12109                    if (!e) return;
12110                    e.classList.remove(vo), e.blur(), this._deactivate(Tn(e));
12111                    this._queueCallback(
12112                        () => {
12113                            "tab" === e.getAttribute("role")
12114                                ? (e.setAttribute("aria-selected", !1), e.setAttribute("tabindex", "-1"), this._toggleDropDown(e, !1), ti.trigger(e, "hidden.bs.tab", { relatedTarget: t }))
12115                                : e.classList.remove(yo);
12116                        },
12117                        e,
12118                        e.classList.contains(bo)
12119                    );
12120                }
12121                _keydown(e) {
12122                    if (![po, fo, go, mo].includes(e.key)) return;
12123                    e.stopPropagation(), e.preventDefault();
12124                    const t = [fo, mo].includes(e.key),
12125                        n = Fn(
12126                            this._getChildren().filter((e) => !$n(e)),
12127                            e.target,
12128                            t,
12129                            !0
12130                        );
12131                    n && _o.getOrCreateInstance(n).show();
12132                }
12133                _getChildren() {
12134                    return fi.find(xo, this._parent);
12135                }
12136                _getActiveElem() {
12137                    return this._getChildren().find((e) => this._elemIsActive(e)) || null;
12138                }
12139                _setInitialAttributes(e, t) {
12140                    this._setAttributeIfNotExists(e, "role", "tablist");
12141                    for (const e of t) this._setInitialAttributesOnChild(e);
12142                }
12143                _setInitialAttributesOnChild(e) {
12144                    e = this._getInnerElement(e);
12145                    const t = this._elemIsActive(e),
12146                        n = this._getOuterElement(e);
12147                    e.setAttribute("aria-selected", t),
12148                        n !== e && this._setAttributeIfNotExists(n, "role", "presentation"),
12149                        t || e.setAttribute("tabindex", "-1"),
12150                        this._setAttributeIfNotExists(e, "role", "tab"),
12151                        this._setInitialAttributesOnTargetPanel(e);
12152                }
12153                _setInitialAttributesOnTargetPanel(e) {
12154                    const t = Tn(e);
12155                    t && (this._setAttributeIfNotExists(t, "role", "tabpanel"), e.id && this._setAttributeIfNotExists(t, "aria-labelledby", `#${e.id}`));
12156                }
12157                _toggleDropDown(e, t) {
12158                    const n = this._getOuterElement(e);
12159                    if (!n.classList.contains("dropdown")) return;
12160                    const i = (e, i) => {
12161                        const s = fi.findOne(e, n);
12162                        s && s.classList.toggle(i, t);
12163                    };
12164                    i(".dropdown-toggle", vo), i(".dropdown-menu", yo), i(".dropdown-item", vo), n.setAttribute("aria-expanded", t);
12165                }
12166                _setAttributeIfNotExists(e, t, n) {
12167                    e.hasAttribute(t) || e.setAttribute(t, n);
12168                }
12169                _elemIsActive(e) {
12170                    return e.classList.contains(vo);
12171                }
12172                _getInnerElement(e) {
12173                    return e.matches(xo) ? e : fi.findOne(xo, e);
12174                }
12175                _getOuterElement(e) {
12176                    return e.closest(".nav-item, .list-group-item") || e;
12177                }
12178                static jQueryInterface(e) {
12179                    return this.each(function () {
12180                        const t = _o.getOrCreateInstance(this);
12181                        if ("string" == typeof e) {
12182                            if (void 0 === t[e] || e.startsWith("_") || "constructor" === e) throw new TypeError(`No method named "${e}"`);
12183                            t[e]();
12184                        }
12185                    });
12186                }
12187            }
12188            ti.on(document, "click.bs.tab", wo, function (e) {
12189                ["A", "AREA"].includes(this.tagName) && e.preventDefault(), $n(this) || _o.getOrCreateInstance(this).show();
12190            }),
12191                ti.on(window, "load.bs.tab", () => {
12192                    for (const e of fi.find('.active[data-bs-toggle="tab"], .active[data-bs-toggle="pill"], .active[data-bs-toggle="list"]')) _o.getOrCreateInstance(e);
12193                }),
12194                In(_o);
12195            const Co = "hide",
12196                To = "show",
12197                Eo = "showing",
12198                So = { animation: "boolean", autohide: "boolean", delay: "number" },
12199                Ao = { animation: !0, autohide: !0, delay: 5e3 };
12200            class ko extends ci {
12201                constructor(e, t) {
12202                    super(e, t), (this._timeout = null), (this._hasMouseInteraction = !1), (this._hasKeyboardInteraction = !1), this._setListeners();
12203                }
12204                static get Default() {
12205                    return Ao;
12206                }
12207                static get DefaultType() {
12208                    return So;
12209                }
12210                static get NAME() {
12211                    return "toast";
12212                }
12213                show() {
12214                    if (ti.trigger(this._element, "show.bs.toast").defaultPrevented) return;
12215                    this._clearTimeout(), this._config.animation && this._element.classList.add("fade");
12216                    this._element.classList.remove(Co),
12217                        On(this._element),
12218                        this._element.classList.add(To, Eo),
12219                        this._queueCallback(
12220                            () => {
12221                                this._element.classList.remove(Eo), ti.trigger(this._element, "shown.bs.toast"), this._maybeScheduleHide();
12222                            },
12223                            this._element,
12224                            this._config.animation
12225                        );
12226                }
12227                hide() {
12228                    if (!this.isShown()) return;
12229                    if (ti.trigger(this._element, "hide.bs.toast").defaultPrevented) return;
12230                    this._element.classList.add(Eo),
12231                        this._queueCallback(
12232                            () => {
12233                                this._element.classList.add(Co), this._element.classList.remove(Eo, To), ti.trigger(this._element, "hidden.bs.toast");
12234                            },
12235                            this._element,
12236                            this._config.animation
12237                        );
12238                }
12239                dispose() {
12240                    this._clearTimeout(), this.isShown() && this._element.classList.remove(To), super.dispose();
12241                }
12242                isShown() {
12243                    return this._element.classList.contains(To);
12244                }
12245                _maybeScheduleHide() {
12246                    this._config.autohide &&
12247                        (this._hasMouseInteraction ||
12248                            this._hasKeyboardInteraction ||
12249                            (this._timeout = setTimeout(() => {
12250                                this.hide();
12251                            }, this._config.delay)));
12252                }
12253                _onInteraction(e, t) {
12254                    switch (e.type) {
12255                        case "mouseover":
12256                        case "mouseout":
12257                            this._hasMouseInteraction = t;
12258                            break;
12259                        case "focusin":
12260                        case "focusout":
12261                            this._hasKeyboardInteraction = t;
12262                    }
12263                    if (t) return void this._clearTimeout();
12264                    const n = e.relatedTarget;
12265                    this._element === n || this._element.contains(n) || this._maybeScheduleHide();
12266                }
12267                _setListeners() {
12268                    ti.on(this._element, "mouseover.bs.toast", (e) => this._onInteraction(e, !0)),
12269                        ti.on(this._element, "mouseout.bs.toast", (e) => this._onInteraction(e, !1)),
12270                        ti.on(this._element, "focusin.bs.toast", (e) => this._onInteraction(e, !0)),
12271                        ti.on(this._element, "focusout.bs.toast", (e) => this._onInteraction(e, !1));
12272                }
12273                _clearTimeout() {
12274                    clearTimeout(this._timeout), (this._timeout = null);
12275                }
12276                static jQueryInterface(e) {
12277                    return this.each(function () {
12278                        const t = ko.getOrCreateInstance(this, e);
12279                        if ("string" == typeof e) {
12280                            if (void 0 === t[e]) throw new TypeError(`No method n
12280amed "${e}"`);
12281                            t[e](this);
12282                        }
12283                    });
12284                }
12285            }
12286            di(ko), In(ko);
12287            n(755);
12288            (n.g.jQuery = n.g.$ = i()),
12289                (n.g.Swiper = ne),
12290                (n.g.SwiperNavigation = function ({ swiper: e, extendParams: t, on: n, emit: i }) {
12291                    function s(t) {
12292                        let n;
12293                        return t && ((n = v(t)), e.params.uniqueNavElements && "string" == typeof t && n.length > 1 && 1 === e.$el.find(t).length && (n = e.$el.find(t))), n;
12294                    }
12295                    function o(t, n) {
12296                        const i = e.params.navigation;
12297                        t &&
12298                            t.length > 0 &&
12299                            (t[n ? "addClass" : "removeClass"](i.disabledClass), t[0] && "BUTTON" === t[0].tagName && (t[0].disabled = n), e.params.watchOverflow && e.enabled && t[e.isLocked ? "addClass" : "removeClass"](i.lockClass));
12300                    }
12301                    function r() {
12302                        if (e.params.loop) return;
12303                        const { $nextEl: t, $prevEl: n } = e.navigation;
12304                        o(n, e.isBeginning && !e.params.rewind), o(t, e.isEnd && !e.params.rewind);
12305                    }
12306                    function a(t) {
12307                        t.preventDefault(), (!e.isBeginning || e.params.loop || e.params.rewind) && (e.slidePrev(), i("navigationPrev"));
12308                    }
12309                    function l(t) {
12310                        t.preventDefault(), (!e.isEnd || e.params.loop || e.params.rewind) && (e.slideNext(), i("navigationNext"));
12311                    }
12312                    function c() {
12313                        const t = e.params.navigation;
12314                        if (((e.params.navigation = ie(e, e.originalParams.navigation, e.params.navigation, { nextEl: "swiper-button-next", prevEl: "swiper-button-prev" })), !t.nextEl && !t.prevEl)) return;
12315                        const n = s(t.nextEl),
12316                            i = s(t.prevEl);
12317                        n && n.length > 0 && n.on("click", l),
12318                            i && i.length > 0 && i.on("click", a),
12319                            Object.assign(e.navigation, { $nextEl: n, nextEl: n && n[0], $prevEl: i, prevEl: i && i[0] }),
12320                            e.enabled || (n && n.addClass(t.lockClass), i && i.addClass(t.lockClass));
12321                    }
12322                    function d() {
12323                        const { $nextEl: t, $prevEl: n } = e.navigation;
12324                        t && t.length && (t.off("click", l), t.removeClass(e.params.navigation.disabledClass)), n && n.length && (n.off("click", a), n.removeClass(e.params.navigation.disabledClass));
12325                    }
12326                    t({
12327                        navigation: {
12328                            nextEl: null,
12329                            prevEl: null,
12330                            hideOnClick: !1,
12331                            disabledClass: "swiper-button-disabled",
12332                            hiddenClass: "swiper-button-hidden",
12333                            lockClass: "swiper-button-lock",
12334                            navigationDisabledClass: "swiper-navigation-disabled",
12335                        },
12336                    }),
12337                        (e.navigation = { nextEl: null, $nextEl: null, prevEl: null, $prevEl: null }),
12338                        n("init", () => {
12339                            !1 === e.params.navigation.enabled ? h() : (c(), r());
12340                        }),
12341                        n("toEdge fromEdge lock unlock", () => {
12342                            r();
12343                        }),
12344                        n("destroy", () => {
12345                            d();
12346                        }),
12347                        n("enable disable", () => {
12348                            const { $nextEl: t, $prevEl: n } = e.navigation;
12349                            t && t[e.enabled ? "removeClass" : "addClass"](e.params.navigation.lockClass), n && n[e.enabled ? "removeClass" : "addClass"](e.params.navigation.lockClass);
12350                        }),
12351                        n("click", (t, n) => {
12352                            const { $nextEl: s, $prevEl: o } = e.navigation,
12353                                r = n.target;
12354                            if (e.params.navigation.hideOnClick && !v(r).is(o) && !v(r).is(s)) {
12355                                if (e.pagination && e.params.pagination && e.params.pagination.clickable && (e.pagination.el === r || e.pagination.el.contains(r))) return;
12356                                let t;
12357                                s ? (t = s.hasClass(e.params.navigation.hiddenClass)) : o && (t = o.hasClass(e.params.navigation.hiddenClass)),
12358                                    i(!0 === t ? "navigationShow" : "navigationHide"),
12359                                    s && s.toggleClass(e.params.navigation.hiddenClass),
12360                                    o && o.toggleClass(e.params.navigation.hiddenClass);
12361                            }
12362                        });
12363                    const h = () => {
12364                        e.$el.addClass(e.params.navigation.navigationDisabledClass), d();
12365                    };
12366                    Object.assign(e.navigation, {
12367                        enable: () => {
12368                            e.$el.removeClass(e.params.navigation.navigationDisabledClass), c(), r();
12369                        },
12370                        disable: h,
12371                        update: r,
12372                        init: c,
12373                        destroy: d,
12374                    });
12375                }),
12376                (n.g.SwiperPagination = function ({ swiper: e, extendParams: t, on: n, emit: i }) {
12377                    const s = "swiper-pagination";
12378                    let o;
12379                    t({
12380                        pagination: {
12381                            el: null,
12382                            bulletElement: "span",
12383                            clickable: !1,
12384                            hideOnClick: !1,
12385                            renderBullet: null,
12386                            renderProgressbar: null,
12387                            renderFraction: null,
12388                            renderCustom: null,
12389                            progressbarOpposite: !1,
12390                            type: "bullets",
12391                            dynamicBullets: !1,
12392                            dynamicMainBullets: 1,
12393                            formatFractionCurrent: (e) => e,
12394                            formatFractionTotal: (e) => e,
12395                            bulletClass: `${s}-bullet`,
12396                            bulletActiveClass: `${s}-bullet-active`,
12397                            modifierClass: `${s}-`,
12398                            currentClass: `${s}-current`,
12399                            totalClass: `${s}-total`,
12400                            hiddenClass: `${s}-hidden`,
12401                            progressbarFillClass: `${s}-progressbar-fill`,
12402                            progressbarOppositeClass: `${s}-progressbar-opposite`,
12403                            clickableClass: `${s}-clickable`,
12404                            lockClass: `${s}-lock`,
12405                            horizontalClass: `${s}-horizontal`,
12406                            verticalClass: `${s}-vertical`,
12407                            paginationDisabledClass: `${s}-disabled`,
12408                        },
12409                    }),
12410                        (e.pagination = { el: null, $el: null, bullets: [] });
12411                    let r = 0;
12412                    function a() {
12413                        return !e.params.pagination.el || !e.pagination.el || !e.pagination.$el || 0 === e.pagination.$el.length;
12414                    }
12415                    function l(t, n) {
12416                        const { bulletActiveClass: i } = e.params.pagination;
12417                        t[n]().addClass(`${i}-${n}`)[n]().addClass(`${i}-${n}-${n}`);
12418                    }
12419                    function c() {
12420                        const t = e.rtl,
12421                            n = e.params.pagination;
12422                        if (a()) return;
12423                        const s = e.virtual && e.params.virtual.enabled ? e.virtual.slides.length : e.slides.length,
12424                            c = e.pagination.$el;
12425                        let d;
12426                        const h = e.params.loop ? Math.ceil((s - 2 * e.loopedSlides) / e.params.slidesPerGroup) : e.snapGrid.length;
12427                        if (
12428                            (e.params.loop
12429                                ? ((d = Math.ceil((e.activeIndex - e.loopedSlides) / e.params.slidesPerGroup)),
12430                                  d > s - 1 - 2 * e.loopedSlides && (d -= s - 2 * e.loopedSlides),
12431                                  d > h - 1 && (d -= h),
12432                                  d < 0 && "bullets" !== e.params.paginationType && (d = h + d))
12433                                : (d = void 0 !== e.snapIndex ? e.snapIndex : e.activeIndex || 0),
12434                            "bullets" === n.type && e.pagination.bullets && e.pagination.bullets.length > 0)
12435                        ) {
12436                            const i = e.pagination.bullets;
12437                            let s, a, h;
12438                            if (
12439                                (n.dynamicBullets &&
12440                                    ((o = i.eq(0)[e.isHorizontal() ? "outerWidth" : "outerHeight"](!0)),
12441                                    c.css(e.isHorizontal() ? "width" : "height", o * (n.dynamicMainBullets + 4) + "px"),
12442                                    n.dynamicMainBullets > 1 && void 0 !== e.previousIndex && ((r += d - (e.previousIndex - e.loopedSlides || 0)), r > n.dynamicMainBullets - 1 ? (r = n.dynamicMainBullets - 1) : r < 0 && (r = 0)),
12443                                    (s = Math.max(d - r, 0)),
12444                                    (a = s + (Math.min(i.length, n.dynamicMainBullets) - 1)),
12445                                    (h = (a + s) / 2)),
12446                                i.removeClass(["", "-next", "-next-next", "-prev", "-prev-prev", "-main"].map((e) => `${n.bulletActiveClass}${e}`).join(" ")),
12447                                c.length > 1)
12448                            )
12449                                i.each((e) => {
12450                                    const t = v(e),
12451                                        i = t.index();
12452                                    i === d && t.addClass(n.bulletActiveClass), n.dynamicBullets && (i >= s && i <= a && t.addClass(`${n.bulletActiveClass}-main`), i === s && l(t, "prev"), i === a && l(t, "next"));
12453                                });
12454                            else {
12455                                const t = i.eq(d),
12456                                    o = t.index();
12457                                if ((t.addClass(n.bulletActiveClass), n.dynamicBullets)) {
12458                                    const t = i.eq(s),
12459                                        r = i.eq(a);
12460                                    for (let e = s; e <= a; e += 1) i.eq(e).addClass(`${n.bulletActiveClass}-main`);
12461                                    if (e.params.loop)
12462                                        if (o >= i.length) {
12463                                            for (let e = n.dynamicMainBullets; e >= 0; e -= 1) i.eq(i.length - e).addClass(`${n.bulletActiveClass}-main`);
12464                                            i.eq(i.length - n.dynamicMainBullets - 1).addClass(`${n.bulletActiveClass}-prev`);
12465                                        } else l(t, "prev"), l(r, "next");
12466                                    else l(t, "prev"), l(r, "next");
12467                                }
12468                            }
12469                            if (n.dynamicBullets) {
12470                                const s = Math.min(i.length, n.dynamicMainBullets + 4),
12471                                    r = (o * s - o) / 2 - h * o,
12472                                    a = t ? "right" : "left";
12473                                i.css(e.isHorizontal() ? a : "top", `${r}px`);
12474                            }
12475                        }
12476                        if (("fraction" === n.type && (c.find(se(n.currentClass)).text(n.formatFractionCurrent(d + 1)), c.find(se(n.totalClass)).text(n.formatFractionTotal(h))), "progressbar" === n.type)) {
12477                            let t;
12478                            t = n.progressbarOpposite ? (e.isHorizontal() ? "vertical" : "horizontal") : e.isHorizontal() ? "horizontal" : "vertical";
12479                            const i = (d + 1) / h;
12480                            let s = 1,
12481                                o = 1;
12482                            "horizontal" === t ? (s = i) : (o = i), c.find(se(n.progressbarFillClass)).transform(`translate3d(0,0,0) scaleX(${s}) scaleY(${o})`).transition(e.params.speed);
12483                        }
12484                        "custom" === n.type && n.renderCustom ? (c.html(n.renderCustom(e, d + 1, h)), i("paginationRender", c[0])) : i("paginationUpdate", c[0]),
12485                            e.params.watchOverflow && e.enabled && c[e.isLocked ? "addClass" : "removeClass"](n.lockClass);
12486                    }
12487                    function d() {
12488                        const t = e.params.pagination;
12489                        if (a()) return;
12490                        const n = e.virtual && e.params.virtual.enabled ? e.virtual.slides.length : e.slides.length,
12491                            s = e.pagination.$el;
12492                        let o = "";
12493                        if ("bullets" === t.type) {
12494                            let i = e.params.loop ? Math.ceil((n - 2 * e.loopedSlides) / e.params.slidesPerGroup) : e.snapGrid.length;
12495                            e.params.freeMode && e.params.freeMode.enabled && !e.params.loop && i > n && (i = n);
12496                            for (let n = 0; n < i; n += 1) t.renderBullet ? (o += t.renderBullet.call(e, n, t.bulletClass)) : (o += `<${t.bulletElement} class="${t.bulletClass}"></${t.bulletElement}>`);
12497                            s.html(o), (e.pagination.bullets = s.find(se(t.bulletClass)));
12498                        }
12499                        "fraction" === t.type && ((o = t.renderFraction ? t.renderFraction.call(e, t.currentClass, t.totalClass) : `<span class="${t.currentClass}"></span> / <span class="${t.totalClass}"></span>`), s.html(o)),
12500                            "progressbar" === t.type && ((o = t.renderProgressbar ? t.renderProgressbar.call(e, t.progressbarFillClass) : `<span class="${t.progressbarFillClass}"></span>`), s.html(o)),
12501                            "custom" !== t.type && i("paginationRender", e.pagination.$el[0]);
12502                    }
12503                    function h() {
12504                        e.params.pagination = ie(e, e.originalParams.pagination, e.params.pagination, { el: "swiper-pagination" });
12505                        const t = e.params.pagination;
12506                        if (!t.el) return;
12507                        let n = v(t.el);
12508                        0 !== n.length &&
12509                            (e.params.uniqueNavElements && "string" == typeof t.el && n.length > 1 && ((n = e.$el.find(t.el)), n.length > 1 && (n = n.filter((t) => v(t).parents(".swiper")[0] === e.el))),
12510                            "bullets" === t.type && t.clickable && n.addClass(t.clickableClass),
12511                            n.addClass(t.modifierClass + t.type),
12512                            n.addClass(e.isHorizontal() ? t.horizontalClass : t.verticalClass),
12513                            "bullets" === t.type && t.dynamicBullets && (n.addClass(`${t.modifierClass}${t.type}-dynamic`), (r = 0), t.dynamicMainBullets < 1 && (t.dynamicMainBullets = 1)),
12514                            "progressbar" === t.type && t.progressbarOpposite && n.addClass(t.progressbarOppositeClass),
12515                            t.clickable &&
12516                                n.on("click", se(t.bulletClass), function (t) {
12517                                    t.preventDefault();
12518                                    let n = v(this).index() * e.params.slidesPerGroup;
12519                                    e.params.loop && (n += e.loopedSlides), e.slideTo(n);
12520                                }),
12521                            Object.assign(e.pagination, { $el: n, el: n[0] }),
12522                            e.enabled || n.addClass(t.lockClass));
12523                    }
12524                    function u() {
12525                        const t = e.params.pagination;
12526                        if (a()) return;
12527                        const n = e.pagination.$el;
12528                        n.removeClass(t.hiddenClass),
12529                            n.removeClass(t.modifierClass + t.type),
12530                            n.removeClass(e.isHorizontal() ? t.horizontalClass : t.verticalClass),
12531                            e.pagination.bullets && e.pagination.bullets.removeClass && e.pagination.bullets.removeClass(t.bulletActiveClass),
12532                            t.clickable && n.off("click", se(t.bulletClass));
12533                    }
12534                    n("init", () => {
12535                        !1 === e.params.pagination.enabled ? p() : (h(), d(), c());
12536                    }),
12537                        n("activeIndexChange", () => {
12538                            (e.params.loop || void 0 === e.snapIndex) && c();
12539                        }),
12540                        n("snapIndexChange", () => {
12541                            e.params.loop || c();
12542                        }),
12543                        n("slidesLengthChange", () => {
12544                            e.params.loop && (d(), c());
12545                        }),
12546                        n("snapGridLengthChange", () => {
12547                            e.params.loop || (d(), c());
12548                        }),
12549                        n("destroy", () => {
12550                            u();
12551                        }),
12552                        n("enable disable", () => {
12553                            const { $el: t } = e.pagination;
12554                            t && t[e.enabled ? "removeClass" : "addClass"](e.params.pagination.lockClass);
12555                        }),
12556                        n("lock unlock", () => {
12557                            c();
12558                        }),
12559                        n("click", (t, n) => {
12560                            const s = n.target,
12561                                { $el: o } = e.pagination;
12562                            if (e.params.pagination.el && e.params.pagination.hideOnClick && o && o.length > 0 && !v(s).hasClass(e.params.pagination.bulletClass)) {
12563                                if (e.navigation && ((e.navigation.nextEl && s === e.navigation.nextEl) || (e.navigation.prevEl && s === e.navigation.prevEl))) return;
12564                                const t = o.hasClass(e.params.pagination.hiddenClass);
12565                                i(!0 === t ? "paginationShow" : "paginationHide"), o.toggleClass(e.params.pagination.hiddenClass);
12566                            }
12567                        });
12568                    const p = () => {
12569                        e.$el.addClass(e.params.pagination.paginationDisabledClass), e.pagination.$el && e.pagination.$el.addClass(e.params.pagination.paginationDisabledClass), u();
12570                    };
12571                    Object.assign(e.pagination, {
12572                        enable: () => {
12573                            e.$el.removeClass(e.params.pagination.paginationDisabledClass), e.pagination.$el && e.pagination.$el.removeClass(e.params.pagination.paginationDisabledClass), h(), d(), c();
12574                        },
12575                        disable: p,
12576                        render: d,
12577                        update: c,
12578                        init: h,
12579                        destroy: u,
12580                    });
12581                }),
12582                (window.Fancybox = { Fancybox: Re }),
12583                (n.g.Fancybox = { Fancybox: Re });
12584        })();
12585})();
12586
12587/* End */
12588;
12589; /* Start:"a:4:{s:4:"full";s:64:"/local/templates/sever/build/common.e0b7c601.js?1790593303256616";s:6:"source";s:47:"/local/templates/sever/build/common.e0b7c601.js";s:3:"min";s:0:"";s:3:"map";s:0:"";}"*/
12590/*! For license information please see common.e0b7c601.js.LICENSE.txt */
12591(() => {
12592    var e = {
12593            503: (e, t, n) => {
12594                var r = n(640),
12595                    i = n(755);
12596                (siteApp = {
12597                    indexSlider: null,
12598                    aboutSlider: null,
12599                    photoSlider: null,
12600                    hitSliders: [],
12601                    deliverySliders: [],
12602                    hint: {},
12603                    init: function () {
12604                        siteApp.initHint(), siteApp.initIndexSlider(), siteApp.initAboutSlider(), siteApp.initLicensesSlider(), siteApp.initPhotosSlider(), siteApp.initDeliverySlider();
12605                    },
12606                    initHint: function () {
12607                        (siteApp.hint = r.UI.Hint.createInstance({ popupParameters: { animation: "" } })), siteApp.hint.init();
12608                    },
12609                    initIndexSlider: function () {
12610                        document.getElementById("index-slider") && (this.aboutSlider = new Swiper("#index-slider", { loop: true, autoplay: true, modules: [SwiperNavigation, SwiperPagination], navigation: { prevEl: ".swiper-button-prev", nextEl: ".swiper-button-next" }, pagination: { clickable: true, el: '.swiper-pagination', type: 'bullets'}, }));
12611                    },
12612                    initAboutSlider: function () {
12613                        document.getElementById("about-slider") && (this.aboutSlider = new Swiper("#about-slider", { modules: [SwiperNavigation], navigation: { prevEl: ".swiper-button-prev", nextEl: ".swiper-button-next" } }));
12614                    },
12615                    initHitSlider: function () {
12616                        if ((hitTabs, tabContent, document.getElementsByClassName("hit-tabs-slider").length)) {
12617                            var e = this;
12618                            i(".hit-tabs-slider").each(function () {
12619                                if (i(this).find(".catalog-item").length > 1) {
12620                                    var t = new Swiper(".hit-tabs-slider", {
12621                                        spaceBetween: 13,
12622                                        modules: [SwiperNavigation],
12623                                        navigation: { prevEl: ".swiper-button-prev", nextEl: ".swiper-button-next" },
12624                                        breakpoints: { 320: { slidesPerView: 1 }, 769: { slidesPerView: 2 }, 1200: { slidesPerView: 3 } },
12625                                    });
12626                                    e.hitSliders.push(t);
12627                                } else i(this).find(".catalog-item").length;
12628                            });
12629                        }
12630                    },
12631                    initLicensesSlider: function () {
12632                        document.getElementById("licenses-slider") &&
12633                            (this.photoSlider = new Swiper("#licenses-slider", {
12634                                spaceBetween: 13,
12635                                modules: [SwiperNavigation],
12636                                navigation: { prevEl: ".swiper-button-prev", nextEl: ".swiper-button-next" },
12637                                breakpoints: { 320: { slidesPerView: 1 }, 550: { slidesPerView: 2 }, 810: { slidesPerView: 3 }, 1060: { slidesPerView: 4 }, 1320: { slidesPerView: 5 } },
12638                            }));
12639                    },
12640                    initPhotosSlider: function () {
12641                        document.getElementById("photos-slider") &&
12642                            (this.photoSlider = new Swiper("#photos-slider", {
12643                                spaceBetween: 13,
12644                                modules: [SwiperNavigation, SwiperPagination],
12645                                navigation: { prevEl: ".swiper-button-prev", nextEl: ".swiper-button-next" },
12646                                pagination: { clickable: !0, el: ".swiper-pagination", type: "bullets" },
12647                                breakpoints: { 320: { slidesPerView: 1 }, 550: { slidesPerView: 2 }, 810: { slidesPerView: 3 }, 1060: { slidesPerView: 4 }, 1320: { slidesPerView: 5 } },
12648                            }));
12649                    },
12650                    initDeliverySlider: function () {
12651                        var e = document.getElementsByClassName("deliveryTabs-slider");
12652                        if (e.length) {
12653                            var t = this;
12654                            i(e).each(function () {
12655                                if (jQury(this).find(".swiper-slide").length > 1) {
12656                                    var e = new Swiper(this, { loop: !1, slidesPerView: 1, modules: [SwiperNavigation], navigation: { prevEl: ".swiper-button-prev", nextEl: ".swiper-button-next" } });
12657                                    t.deliverySliders.push(e);
12658                                }
12659                            });
12660                        }
12661                    },
12662                    hideMobileMenu: function (e) {
12663                        e || (e = i(".menu .mobile_bt")), e && e.hasClass("opened") && e.next(".nav") && e.removeClass("opened").next(".nav").removeClass("opened");
12664                        document.body.classList.remove('menu_open');
12665                    },
12666                }),
12667                    i(document).on("click", ".menu .mobile_bt", function () {
12668                        i(this).next(".nav") && i(this).toggleClass("opened").next(".nav").toggleClass("opened");
12669                        document.body.classList.add('menu_open');
12670                    }),
12671                    i(document).on("click", ".menu .btn-close", function () {
12672                        siteApp.hideMobileMenu();
12673                    }),
12674                    i(document).keyup(function (e) {
12675                        "Escape" === e.key && siteApp.hideMobileMenu();
12676                    }),
12677                    i(document).on("click", ".nav.opened li.dropdown > a", function (e) {
12678                        var t = i(this).parent("li"),
12679                            n = t.siblings("li");
12680                        return (
12681                            !!t.hasClass("opened") ||
12682                            (t.siblings("li"),
12683                            n
12684                                .removeClass("opened")
12685                                .find("li.opened")
12686                                .each(function () {
12687                                    i(this).removeClass("opened");
12688                                }),
12689                            t.addClass("opened"),
12690                            !1)
12691                        );
12692                    }),
12693                    i(window).scroll(function () {
12694                        i(this).scrollTop() > 500 ? i(".back-scroll").addClass("shown") : i(".back-scroll").removeClass("shown");
12695                    }),
12696                    i(document).on("click", ".back-scroll", function (e) {
12697                        return e.preventDefault(), i("html, body").animate({ scrollTop: 0 }, 500), !1;
12698                    }),
12699                    i(window).on("load", siteApp.init),
12700                    i(document).ready(function (e) {
12701                        e(".fancybox, a[rel]").each(function () {
12702                            var t = e(this).data("fancybox"),
12703                                n = e(this).attr("rel");
12704                            t || "nofollow" == n || "alternate" == n || "author" == n || "next" == n || "prev" == n || e(this).attr("data-fancybox", n || "fancybox");
12705                        });
12706                        var t = document.getElementById("form-oneclick");
12707                        t.addEventListener("show.bs.modal", function (e) {
12708                            var n = e.relatedTarget,
12709                                r = n.getAttribute("data-product-name"),
12710                                i = n.getAttribute("data-product-url");
12711                            (t.querySelector('[name="form_hidden_19"]').value = r), (t.querySelector('[name="form_hidden_20"]').value = location.origin + i);
12712                        });
12713                    });
12714            },
12715            755: function (e, t) {
12716                var n;
12717                !(function (t, n) {
12718                    "use strict";
12719                    "object" == typeof e.exports
12720                        ? (e.exports = t.document
12721                              ? n(t, !0)
12722                              : function (e) {
12723                                    if (!e.document) throw new Error("jQuery requires a window with a document");
12724                                    return n(e);
12725                                })
12726                        : n(t);
12727                })("undefined" != typeof window ? window : this, function (r, i) {
12728                    "use strict";
12729                    var o = [],
12730                        s = Object.getPrototypeOf,
12731                        a = o.slice,
12732                        u = o.flat
12733                            ? function (e) {
12734                                  return o.flat.call(e);
12735                              }
12736                            : function (e) {
12737                                  return o.concat.apply([], e);
12738                              },
12739                        l = o.push,
12740                        c = o.indexOf,
12741                        f = {},
12742                        p = f.toString,
12743                        d = f.hasOwnProperty,
12744                        h = d.toString,
12745                        g = h.call(Object),
12746                        v = {},
12747                        m = function (e) {
12748                            return "function" == typeof e && "number" != typeof e.nodeType && "function" != typeof e.item;
12749                        },
12750                        y = function (e) {
12751                            return null != e && e === e.window;
12752                        },
12753                        x = r.document,
12754                        b = { type: !0, src: !0, nonce: !0, noModule: !0 };
12755                    function w(e, t, n) {
12756                        var r,
12757                            i,
12758                            o = (n = n || x).createElement("script");
12759                        if (((o.text = e), t)) for (r in b) (i = t[r] || (t.getAttribute && t.getAttribute(r))) && o.setAttribute(r, i);
12760                        n.head.appendChild(o).parentNode.removeChild(o);
12761                    }
12762                    function T(e) {
12763                        return null == e ? e + "" : "object" == typeof e || "function" == typeof e ? f[p.call(e)] || "object" : typeof e;
12764                    }
12765                    var C = "3.6.1",
12766                        S = function (e, t) {
12767                            return new S.fn.init(e, t);
12768                        };
12769                    function E(e) {
12770                        var t = !!e && "length" in e && e.length,
12771                            n = T(e);
12772                        return !m(e) && !y(e) && ("array" === n || 0 === t || ("number" == typeof t && t > 0 && t - 1 in e));
12773                    }
12774                    (S.fn = S.prototype = {
12775                        jquery: C,
12776                        constructor: S,
12777                        length: 0,
12778                        toArray: function () {
12779                            return a.call(this);
12780                        },
12781                        get: function (e) {
12782                            return null == e ? a.call(this) : e < 0 ? this[e + this.length] : this[e];
12783                        },
12784                        pushStack: function (e) {
12785                            var t = S.merge(this.constructor(), e);
12786                            return (t.prevObject = this), t;
12787                        },
12788                        each: function (e) {
12789                            return S.each(this, e);
12790                        },
12791                        map: function (e) {
12792                            return this.pushStack(
12793                                S.map(this, function (t, n) {
12794                                    return e.call(t, n, t);
12795                                })
12796                            );
12797                        },
12798                        slice: function () {
12799                            return this.pushStack(a.apply(this, arguments));
12800                        },
12801                        first: function () {
12802                            return this.eq(0);
12803                        },
12804                        last: function () {
12805                            return this.eq(-1);
12806                        },
12807                        even: function () {
12808                            return this.pushStack(
12809                                S.grep(this, function (e, t) {
12810                                    return (t + 1) % 2;
12811                                })
12812                            );
12813                        },
12814                        odd: function () {
12815                            return this.pushStack(
12816                                S.grep(this, function (e, t) {
12817                                    return t % 2;
12818                                })
12819                            );
12820                        },
12821                        eq: function (e) {
12822                            var t = this.length,
12823                                n = +e + (e < 0 ? t : 0);
12824                            return this.pushStack(n >= 0 && n < t ? [this[n]] : []);
12825                        },
12826                        end: function () {
12827                            return this.prevObject || this.constructor();
12828                        },
12829                        push: l,
12830                        sort: o.sort,
12831                        splice: o.splice,
12832                    }),
12833                        (S.extend = S.fn.extend = function () {
12834                            var e,
12835                                t,
12836                                n,
12837                                r,
12838                                i,
12839                                o,
12840                                s = arguments[0] || {},
12841                                a = 1,
12842                                u = arguments.length,
12843                                l = !1;
12844                            for ("boolean" == typeof s && ((l = s), (s = arguments[a] || {}), a++), "object" == typeof s || m(s) || (s = {}), a === u && ((s = this), a--); a < u; a++)
12845                                if (null != (e = arguments[a]))
12846                                    for (t in e)
12847                                        (r = e[t]),
12848                                            "__proto__" !== t &&
12849                                                s !== r &&
12850                                                (l && r && (S.isPlainObject(r) || (i = Array.isArray(r)))
12851                                                    ? ((n = s[t]), (o = i && !Array.isArray(n) ? [] : i || S.isPlainObject(n) ? n : {}), (i = !1), (s[t] = S.extend(l, o, r)))
12852                                                    : void 0 !== r && (s[t] = r));
12853                            return s;
12854                        }),
12855                        S.extend({
12856                            expando: "jQuery" + (C + Math.random()).replace(/\D/g, ""),
12857                            isReady: !0,
12858                            error: function (e) {
12859                                throw new Error(e);
12860                            },
12861                            noop: function () {},
12862                            isPlainObject: function (e) {
12863                                var t, n;
12864                                return !(!e || "[object Object]" !== p.call(e)) && (!(t = s(e)) || ("function" == typeof (n = d.call(t, "constructor") && t.constructor) && h.call(n) === g));
12865                            },
12866                            isEmptyObject: function (e) {
12867                                var t;
12868                                for (t in e) return !1;
12869                                return !0;
12870                            },
12871                            globalEval: function (e, t, n) {
12872                                w(e, { nonce: t && t.nonce }, n);
12873                            },
12874                            each: function (e, t) {
12875                                var n,
12876                                    r = 0;
12877                                if (E(e)) for (n = e.length; r < n && !1 !== t.call(e[r], r, e[r]); r++);
12878                                else for (r in e) if (!1 === t.call(e[r], r, e[r])) break;
12879                                return e;
12880                            },
12881                            makeArray: function (e, t) {
12882                                var n = t || [];
12883                                return null != e && (E(Object(e)) ? S.merge(n, "string" == typeof e ? [e] : e) : l.call(n, e)), n;
12884                            },
12885                            inArray: function (e, t, n) {
12886                                return null == t ? -1 : c.call(t, e, n);
12887                            },
12888                            merge: function (e, t) {
12889                                for (var n = +t.length, r = 0, i = e.length; r < n; r++) e[i++] = t[r];
12890                                return (e.length = i), e;
12891                            },
12892                            grep: function (e, t, n) {
12893                                for (var r = [], i = 0, o = e.length, s = !n; i < o; i++) !t(e[i], i) !== s && r.push(e[i]);
12894                                return r;
12895                            },
12896                            map: function (e, t, n) {
12897                                var r,
12898                                    i,
12899                                    o = 0,
12900                                    s = [];
12901                                if (E(e)) for (r = e.length; o < r; o++) null != (i = t(e[o], o, n)) && s.push(i);
12902                                else for (o in e) null != (i = t(e[o], o, n)) && s.push(i);
12903                                return u(s);
12904                            },
12905                            guid: 1,
12906                            support: v,
12907                        }),
12908                        "function" == typeof Symbol && (S.fn[Symbol.iterator] = o[Symbol.iterator]),
12909                        S.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), function (e, t) {
12910                            f["[object " + t + "]"] = t.toLowerCase();
12911                        });
12912                    var A = (function (e) {
12913                        var t,
12914                            n,
12915                            r,
12916                            i,
12917                            o,
12918                            s,
12919                            a,
12920                            u,
12921                            l,
12922                            c,
12923                            f,
12924                            p,
12925                            d,
12926                            h,
12927                            g,
12928                            v,
12929                            m,
12930                            y,
12931                            x,
12932                            b = "sizzle" + 1 * new Date(),
12933                            w = e.document,
12934                            T = 0,
12935                            C = 0,
12936                            S = ue(),
12937                            E = ue(),
12938                            A = ue(),
12939                            k = ue(),
12940                            N = function (e, t) {
12941                                return e === t && (f = !0), 0;
12942                            },
12943                            D = {}.hasOwnProperty,
12944                            j = [],
12945                            q = j.pop,
12946                            L = j.push,
12947                            H = j.push,
12948                            P = j.slice,
12949                            O = function (e, t) {
12950                                for (var n = 0, r = e.length; n < r; n++) if (e[n] === t) return n;
12951                                return -1;
12952                            },
12953                            M = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
12954                            R = "[\\x20\\t\\r\\n\\f]",
12955                            I = "(?:\\\\[\\da-fA-F]{1,6}[\\x20\\t\\r\\n\\f]?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",
12956                            B = "\\[[\\x20\\t\\r\\n\\f]*(" + I + ")(?:" + R + "*([*^$|!~]?=)" + R + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + I + "))|)" + R + "*\\]",
12957                            W = ":(" + I + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + B + ")*)|.*)\\)|)",
12958                            F = new RegExp(R + "+", "g"),
12959                            $ = new RegExp("^[\\x20\\t\\r\\n\\f]+|((?:^|[^\\\\])(?:\\\\.)*)[\\x20\\t\\r\\n\\f]+$", "g"),
12960                            _ = new RegExp("^[\\x20\\t\\r\\n\\f]*,[\\x20\\t\\r\\n\\f]*"),
12961                            V = new RegExp("^[\\x20\\t\\r\\n\\f]*([>+~]|[\\x20\\t\\r\\n\\f])[\\x20\\t\\r\\n\\f]*"),
12962                            z = new RegExp(R + "|>"),
12963                            U = new RegExp(W),
12964                            X = new RegExp("^" + I + "$"),
12965                            G = {
12966                                ID: new RegExp("^#(" + I + ")"),
12967                                CLASS: new RegExp("^\\.(" + I + ")"),
12968                                TAG: new RegExp("^(" + I + "|[*])"),
12969                                ATTR: new RegExp("^" + B),
12970                                PSEUDO: new RegExp("^" + W),
12971                                CHILD: new RegExp(
12972                                    "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\([\\x20\\t\\r\\n\\f]*(even|odd|(([+-]|)(\\d*)n|)[\\x20\\t\\r\\n\\f]*(?:([+-]|)[\\x20\\t\\r\\n\\f]*(\\d+)|))[\\x20\\t\\r\\n\\f]*\\)|)",
12973                                    "i"
12974                                ),
12975                                bool: new RegExp("^(?:" + M + ")$", "i"),
12976                                needsContext: new RegExp("^[\\x20\\t\\r\\n\\f]*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\([\\x20\\t\\r\\n\\f]*((?:-\\d)?\\d*)[\\x20\\t\\r\\n\\f]*\\)|)(?=[^-]|$)", "i"),
12977                            },
12978                            Y = /HTML$/i,
12979                            Q = /^(?:input|select|textarea|button)$/i,
12980                            J = /^h\d$/i,
12981                            K = /^[^{]+\{\s*\[native \w/,
12982                            Z = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
12983                            ee = /[+~]/,
12984                            te = new RegExp("\\\\[\\da-fA-F]{1,6}[\\x20\\t\\r\\n\\f]?|\\\\([^\\r\\n\\f])", "g"),
12985                            ne = function (e, t) {
12986                                var n = "0x" + e.slice(1) - 65536;
12987                                return t || (n < 0 ? String.fromCharCode(n + 65536) : String.fromCharCode((n >> 10) | 55296, (1023 & n) | 56320));
12988                            },
12989                            re = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,
12990                            ie = function (e, t) {
12991                                return t ? ("\0" === e ? "�" : e.slice(0, -1) + "\\" + e.charCodeAt(e.length - 1).toString(16) + " ") : "\\" + e;
12992                            },
12993                            oe = function () {
12994                                p();
12995                            },
12996                            se = be(
12997                                function (e) {
12998                                    return !0 === e.disabled && "fieldset" === e.nodeName.toLowerCase();
12999                                },
13000                                { dir: "parentNode", next: "legend" }
13001                            );
13002                        try {
13003                            H.apply((j = P.call(w.childNodes)), w.childNodes), j[w.childNodes.length].nodeType;
13004                        } catch (e) {
13005                            H = {
13006                                apply: j.length
13007                                    ? function (e, t) {
13008                                          L.apply(e, P.call(t));
13009                                      }
13010                                    : function (e, t) {
13011                                          for (var n = e.length, r = 0; (e[n++] = t[r++]); );
13012                                          e.length = n - 1;
13013                                      },
13014                            };
13015                        }
13016                        function ae(e, t, r, i) {
13017                            var o,
13018                                a,
13019                                l,
13020                                c,
13021                                f,
13022                                h,
13023                                m,
13024                                y = t && t.ownerDocument,
13025                                w = t ? t.nodeType : 9;
13026                            if (((r = r || []), "string" != typeof e || !e || (1 !== w && 9 !== w && 11 !== w))) return r;
13027                            if (!i && (p(t), (t = t || d), g)) {
13028                                if (11 !== w && (f = Z.exec(e)))
13029                                    if ((o = f[1])) {
13030                                        if (9 === w) {
13031                                            if (!(l = t.getElementById(o))) return r;
13032                                            if (l.id === o) return r.push(l), r;
13033                                        } else if (y && (l = y.getElementById(o)) && x(t, l) && l.id === o) return r.push(l), r;
13034                                    } else {
13035                                        if (f[2]) return H.apply(r, t.getElementsByTagName(e)), r;
13036                                        if ((o = f[3]) && n.getElementsByClassName && t.getElementsByClassName) return H.apply(r, t.getElementsByClassName(o)), r;
13037                                    }
13038                                if (n.qsa && !k[e + " "] && (!v || !v.test(e)) && (1 !== w || "object" !== t.nodeName.toLowerCase())) {
13039                                    if (((m = e), (y = t), 1 === w && (z.test(e) || V.test(e)))) {
13040                                        for (((y = (ee.test(e) && me(t.parentNode)) || t) === t && n.scope) || ((c = t.getAttribute("id")) ? (c = c.replace(re, ie)) : t.setAttribute("id", (c = b))), a = (h = s(e)).length; a--; )
13041                                            h[a] = (c ? "#" + c : ":scope") + " " + xe(h[a]);
13042                                        m = h.join(",");
13043                                    }
13044                                    try {
13045                                        return H.apply(r, y.querySelectorAll(m)), r;
13046                                    } catch (t) {
13047                                        k(e, !0);
13048                                    } finally {
13049                                        c === b && t.removeAttribute("id");
13050                                    }
13051                                }
13052                            }
13053                            return u(e.replace($, "$1"), t, r, i);
13054                        }
13055                        function ue() {
13056                            var e = [];
13057                            return function t(n, i) {
13058                                return e.push(n + " ") >
13058 r.cacheLength && delete t[e.shift()], (t[n + " "] = i);
13059                            };
13060                        }
13061                        function le(e) {
13062                            return (e[b] = !0), e;
13063                        }
13064                        function ce(e) {
13065                            var t = d.createElement("fieldset");
13066                            try {
13067                                return !!e(t);
13068                            } catch (e) {
13069                                return !1;
13070                            } finally {
13071                                t.parentNode && t.parentNode.removeChild(t), (t = null);
13072                            }
13073                        }
13074                        function fe(e, t) {
13075                            for (var n = e.split("|"), i = n.length; i--; ) r.attrHandle[n[i]] = t;
13076                        }
13077                        function pe(e, t) {
13078                            var n = t && e,
13079                                r = n && 1 === e.nodeType && 1 === t.nodeType && e.sourceIndex - t.sourceIndex;
13080                            if (r) return r;
13081                            if (n) for (; (n = n.nextSibling); ) if (n === t) return -1;
13082                            return e ? 1 : -1;
13083                        }
13084                        function de(e) {
13085                            return function (t) {
13086                                return "input" === t.nodeName.toLowerCase() && t.type === e;
13087                            };
13088                        }
13089                        function he(e) {
13090                            return function (t) {
13091                                var n = t.nodeName.toLowerCase();
13092                                return ("input" === n || "button" === n) && t.type === e;
13093                            };
13094                        }
13095                        function ge(e) {
13096                            return function (t) {
13097                                return "form" in t
13098                                    ? t.parentNode && !1 === t.disabled
13099                                        ? "label" in t
13100                                            ? "label" in t.parentNode
13101                                                ? t.parentNode.disabled === e
13102                                                : t.disabled === e
13103                                            : t.isDisabled === e || (t.isDisabled !== !e && se(t) === e)
13104                                        : t.disabled === e
13105                                    : "label" in t && t.disabled === e;
13106                            };
13107                        }
13108                        function ve(e) {
13109                            return le(function (t) {
13110                                return (
13111                                    (t = +t),
13112                                    le(function (n, r) {
13113                                        for (var i, o = e([], n.length, t), s = o.length; s--; ) n[(i = o[s])] && (n[i] = !(r[i] = n[i]));
13114                                    })
13115                                );
13116                            });
13117                        }
13118                        function me(e) {
13119                            return e && void 0 !== e.getElementsByTagName && e;
13120                        }
13121                        for (t in ((n = ae.support = {}),
13122                        (o = ae.isXML = function (e) {
13123                            var t = e && e.namespaceURI,
13124                                n = e && (e.ownerDocument || e).documentElement;
13125                            return !Y.test(t || (n && n.nodeName) || "HTML");
13126                        }),
13127                        (p = ae.setDocument = function (e) {
13128                            var t,
13129                                i,
13130                                s = e ? e.ownerDocument || e : w;
13131                            return s != d && 9 === s.nodeType && s.documentElement
13132                                ? ((h = (d = s).documentElement),
13133                                  (g = !o(d)),
13134                                  w != d && (i = d.defaultView) && i.top !== i && (i.addEventListener ? i.addEventListener("unload", oe, !1) : i.attachEvent && i.attachEvent("onunload", oe)),
13135                                  (n.scope = ce(function (e) {
13136                                      return h.appendChild(e).appendChild(d.createElement("div")), void 0 !== e.querySelectorAll && !e.querySelectorAll(":scope fieldset div").length;
13137                                  })),
13138                                  (n.attributes = ce(function (e) {
13139                                      return (e.className = "i"), !e.getAttribute("className");
13140                                  })),
13141                                  (n.getElementsByTagName = ce(function (e) {
13142                                      return e.appendChild(d.createComment("")), !e.getElementsByTagName("*").length;
13143                                  })),
13144                                  (n.getElementsByClassName = K.test(d.getElementsByClassName)),
13145                                  (n.getById = ce(function (e) {
13146                                      return (h.appendChild(e).id = b), !d.getElementsByName || !d.getElementsByName(b).length;
13147                                  })),
13148                                  n.getById
13149                                      ? ((r.filter.ID = function (e) {
13150                                            var t = e.replace(te, ne);
13151                                            return function (e) {
13152                                                return e.getAttribute("id") === t;
13153                                            };
13154                                        }),
13155                                        (r.find.ID = function (e, t) {
13156                                            if (void 0 !== t.getElementById && g) {
13157                                                var n = t.getElementById(e);
13158                                                return n ? [n] : [];
13159                                            }
13160                                        }))
13161                                      : ((r.filter.ID = function (e) {
13162                                            var t = e.replace(te, ne);
13163                                            return function (e) {
13164                                                var n = void 0 !== e.getAttributeNode && e.getAttributeNode("id");
13165                                                return n && n.value === t;
13166                                            };
13167                                        }),
13168                                        (r.find.ID = function (e, t) {
13169                                            if (void 0 !== t.getElementById && g) {
13170                                                var n,
13171                                                    r,
13172                                                    i,
13173                                                    o = t.getElementById(e);
13174                                                if (o) {
13175                                                    if ((n = o.getAttributeNode("id")) && n.value === e) return [o];
13176                                                    for (i = t.getElementsByName(e), r = 0; (o = i[r++]); ) if ((n = o.getAttributeNode("id")) && n.value === e) return [o];
13177                                                }
13178                                                return [];
13179                                            }
13180                                        })),
13181                                  (r.find.TAG = n.getElementsByTagName
13182                                      ? function (e, t) {
13183                                            return void 0 !== t.getElementsByTagName ? t.getElementsByTagName(e) : n.qsa ? t.querySelectorAll(e) : void 0;
13184                                        }
13185                                      : function (e, t) {
13186                                            var n,
13187                                                r = [],
13188                                                i = 0,
13189                                                o = t.getElementsByTagName(e);
13190                                            if ("*" === e) {
13191                                                for (; (n = o[i++]); ) 1 === n.nodeType && r.push(n);
13192                                                return r;
13193                                            }
13194                                            return o;
13195                                        }),
13196                                  (r.find.CLASS =
13197                                      n.getElementsByClassName &&
13198                                      function (e, t) {
13199                                          if (void 0 !== t.getElementsByClassName && g) return t.getElementsByClassName(e);
13200                                      }),
13201                                  (m = []),
13202                                  (v = []),
13203                                  (n.qsa = K.test(d.querySelectorAll)) &&
13204                                      (ce(function (e) {
13205                                          var t;
13206                                          (h.appendChild(e).innerHTML = "<a id='" + b + "'></a><select id='" + b + "-\r\\' msallowcapture=''><option selected=''></option></select>"),
13207                                              e.querySelectorAll("[msallowcapture^='']").length && v.push("[*^$]=[\\x20\\t\\r\\n\\f]*(?:''|\"\")"),
13208                                              e.querySelectorAll("[selected]").length || v.push("\\[[\\x20\\t\\r\\n\\f]*(?:value|" + M + ")"),
13209                                              e.querySelectorAll("[id~=" + b + "-]").length || v.push("~="),
13210                                              (t = d.createElement("input")).setAttribute("name", ""),
13211                                              e.appendChild(t),
13212                                              e.querySelectorAll("[name='']").length || v.push("\\[[\\x20\\t\\r\\n\\f]*name[\\x20\\t\\r\\n\\f]*=[\\x20\\t\\r\\n\\f]*(?:''|\"\")"),
13213                                              e.querySelectorAll(":checked").length || v.push(":checked"),
13214                                              e.querySelectorAll("a#" + b + "+*").length || v.push(".#.+[+~]"),
13215                                              e.querySelectorAll("\\\f"),
13216                                              v.push("[\\r\\n\\f]");
13217                                      }),
13218                                      ce(function (e) {
13219                                          e.innerHTML = "<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";
13220                                          var t = d.createElement("input");
13221                                          t.setAttribute("type", "hidden"),
13222                                              e.appendChild(t).setAttribute("name", "D"),
13223                                              e.querySelectorAll("[name=d]").length && v.push("name[\\x20\\t\\r\\n\\f]*[*^$|!~]?="),
13224                                              2 !== e.querySelectorAll(":enabled").length && v.push(":enabled", ":disabled"),
13225                                              (h.appendChild(e).disabled = !0),
13226                                              2 !== e.querySelectorAll(":disabled").length && v.push(":enabled", ":disabled"),
13227                                              e.querySelectorAll("*,:x"),
13228                                              v.push(",.*:");
13229                                      })),
13230                                  (n.matchesSelector = K.test((y = h.matches || h.webkitMatchesSelector || h.mozMatchesSelector || h.oMatchesSelector || h.msMatchesSelector))) &&
13231                                      ce(function (e) {
13232                                          (n.disconnectedMatch = y.call(e, "*")), y.call(e, "[s!='']:x"), m.push("!=", W);
13233                                      }),
13234                                  (v = v.length && new RegExp(v.j
13234oin("|"))),
13235                                  (m = m.length && new RegExp(m.join("|"))),
13236                                  (t = K.test(h.compareDocumentPosition)),
13237                                  (x =
13238                                      t || K.test(h.contains)
13239                                          ? function (e, t) {
13240                                                var n = 9 === e.nodeType ? e.documentElement : e,
13241                                                    r = t && t.parentNode;
13242                                                return e === r || !(!r || 1 !== r.nodeType || !(n.contains ? n.contains(r) : e.compareDocumentPosition && 16 & e.compareDocumentPosition(r)));
13243                                            }
13244                                          : function (e, t) {
13245                                                if (t) for (; (t = t.parentNode); ) if (t === e) return !0;
13246                                                return !1;
13247                                            }),
13248                                  (N = t
13249                                      ? function (e, t) {
13250                                            if (e === t) return (f = !0), 0;
13251                                            var r = !e.compareDocumentPosition - !t.compareDocumentPosition;
13252                                            return (
13253                                                r ||
13254                                                (1 & (r = (e.ownerDocument || e) == (t.ownerDocument || t) ? e.compareDocumentPosition(t) : 1) || (!n.sortDetached && t.compareDocumentPosition(e) === r)
13255                                                    ? e == d || (e.ownerDocument == w && x(w, e))
13256                                                        ? -1
13257                                                        : t == d || (t.ownerDocument == w && x(w, t))
13258                                                        ? 1
13259                                                        : c
13260                                                        ? O(c, e) - O(c, t)
13261                                                        : 0
13262                                                    : 4 & r
13263                                                    ? -1
13264                                                    : 1)
13265                                            );
13266                                        }
13267                                      : function (e, t) {
13268                                            if (e === t) return (f = !0), 0;
13269                                            var n,
13270                                                r = 0,
13271                                                i = e.parentNode,
13272                                                o = t.parentNode,
13273                                                s = [e],
13274                                                a = [t];
13275                                            if (!i || !o) return e == d ? -1 : t == d ? 1 : i ? -1 : o ? 1 : c ? O(c, e) - O(c, t) : 0;
13276                                            if (i === o) return pe(e, t);
13277                                            for (n = e; (n = n.parentNode); ) s.unshift(n);
13278                                            for (n = t; (n = n.parentNode); ) a.unshift(n);
13279                                            for (; s[r] === a[r]; ) r++;
13280                                            return r ? pe(s[r], a[r]) : s[r] == w ? -1 : a[r] == w ? 1 : 0;
13281                                        }),
13282                                  d)
13283                                : d;
13284                        }),
13285                        (ae.matches = function (e, t) {
13286                            return ae(e, null, null, t);
13287                        }),
13288                        (ae.matchesSelector = function (e, t) {
13289                            if ((p(e), n.matchesSelector && g && !k[t + " "] && (!m || !m.test(t)) && (!v || !v.test(t))))
13290                                try {
13291                                    var r = y.call(e, t);
13292                                    if (r || n.disconnectedMatch || (e.document && 11 !== e.document.nodeType)) return r;
13293                                } catch (e) {
13294                                    k(t, !0);
13295                                }
13296                            return ae(t, d, null, [e]).length > 0;
13297                        }),
13298                        (ae.contains = function (e, t) {
13299                            return (e.ownerDocument || e) != d && p(e), x(e, t);
13300                        }),
13301                        (ae.attr = function (e, t) {
13302                            (e.ownerDocument || e) != d && p(e);
13303                            var i = r.attrHandle[t.toLowerCase()],
13304                                o = i && D.call(r.attrHandle, t.toLowerCase()) ? i(e, t, !g) : void 0;
13305                            return void 0 !== o ? o : n.attributes || !g ? e.getAttribute(t) : (o = e.getAttributeNode(t)) && o.specified ? o.value : null;
13306                        }),
13307                        (ae.escape = function (e) {
13308                            return (e + "").replace(re, ie);
13309                        }),
13310                        (ae.error = function (e) {
13311                            throw new Error("Syntax error, unrecognized expression: " + e);
13312                        }),
13313                        (ae.uniqueSort = function (e) {
13314                            var t,
13315                                r = [],
13316                                i = 0,
13317                                o = 0;
13318                            if (((f = !n.detectDuplicates), (c = !n.sortStable && e.slice(0)), e.sort(N), f)) {
13319                                for (; (t = e[o++]); ) t === e[o] && (i = r.push(o));
13320                                for (; i--; ) e.splice(r[i], 1);
13321                            }
13322                            return (c = null), e;
13323                        }),
13324                        (i = ae.getText = function (e) {
13325                            var t,
13326                                n = "",
13327                                r = 0,
13328                                o = e.nodeType;
13329                            if (o) {
13330                                if (1 === o || 9 === o || 11 === o) {
13331                                    if ("string" == typeof e.textContent) return e.textContent;
13332                                    for (e = e.firstChild; e; e = e.nextSibling) n += i(e);
13333                                } else if (3 === o || 4 === o) return e.nodeValue;
13334                            } else for (; (t = e[r++]); ) n += i(t);
13335                            return n;
13336                        }),
13337                        (r = ae.selectors = {
13338                            cacheLength: 50,
13339                            createPseudo: le,
13340                            match: G,
13341                            attrHandle: {},
13342                            find: {},
13343                            relative: { ">": { dir: "parentNode", first: !0 }, " ": { dir: "parentNode" }, "+": { dir: "previousSibling", first: !0 }, "~": { dir: "previousSibling" } },
13344                            preFilter: {
13345                                ATTR: function (e) {
13346                                    return (e[1] = e[1].replace(te, ne)), (e[3] = (e[3] || e[4] || e[5] || "").replace(te, ne)), "~=" === e[2] && (e[3] = " " + e[3] + " "), e.slice(0, 4);
13347                                },
13348                                CHILD: function (e) {
13349                                    return (
13350                                        (e[1] = e[1].toLowerCase()),
13351                                        "nth" === e[1].slice(0, 3)
13352                                            ? (e[3] || ae.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])))
13353                                            : e[3] && ae.error(e[0]),
13354                                        e
13355                                    );
13356                                },
13357                                PSEUDO: function (e) {
13358                                    var t,
13359                                        n = !e[6] && e[2];
13360                                    return G.CHILD.test(e[0])
13361                                        ? null
13362                                        : (e[3] ? (e[2] = e[4] || e[5] || "") : n && U.test(n) && (t = s(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));
13363                                },
13364                            },
13365                            filter: {
13366                                TAG: function (e) {
13367                                    var t = e.replace(te, ne).toLowerCase();
13368                                    return "*" === e
13369                                        ? function () {
13370                                              return !0;
13371                                          }
13372                                        : function (e) {
13373                                              return e.nodeName && e.nodeName.toLowerCase() === t;
13374                                          };
13375                                },
13376                                CLASS: function (e) {
13377                                    var t = S[e + " "];
13378                                    return (
13379                                        t ||
13380                                        ((t = new RegExp("(^|[\\x20\\t\\r\\n\\f])" + e + "(" + R + "|$)")) &&
13381                                            S(e, function (e) {
13382                                                return t.test(("string" == typeof e.className && e.className) || (void 0 !== e.getAttribute && e.getAttribute("class")) || "");
13383                                            }))
13384                                    );
13385                                },
13386                                ATTR: function (e, t, n) {
13387                                    return function (r) {
13388                                        var i = ae.attr(r, e);
13389                                        return null == i
13390                                            ? "!=" === t
13391                                            : !t ||
13392                                                  ((i += ""),
13393                                                  "=" === t
13394                                                      ? i === n
13395                                                      : "!=" === t
13396                                                      ? i !== n
13397                                                      : "^=" === t
13398                                                      ? n && 0 === i.indexOf(n)
13399                                                      : "*=" === t
13400                                                      ? n && i.indexOf(n) > -1
13401                                                      : "$=" === t
13402                                                      ? n && i.slice(-n.length) === n
13403                                                      : "~=" === t
13404                                                      ? (" " + i.replace(F, " ") + " ").indexOf(n) > -1
13405                                                      : "|=" === t && (i === n || i.slice(0, n.length + 1) === n + "-"));
13406                                    };
13407                                },
13408                                CHILD: function (e, t, n, r, i) {
13409                                    var o = "nth" !== e.slice(0, 3),
13410                                        s = "last" !== e.slice(-4),
13411                                        a = "of-type" === t;
13412                                    return 1 === r && 0 === i
13413                                        ? function (e) {
13414                                              return !!e.parentNode;
13415                                          }
13416                                        : function (t, n, u) {
13417                                              var l,
13418                                                  c,
13419                                                  f,
13420                                                  p,
13421                                                  d,
13422                                                  h,
13423                                                  g = o !== s ? "nextSibling" : "previousSibling",
13424                                                  v = t.parentNode,
13425                                                  m = a && t.nodeName.toLowerCase(),
13426                                                  y = !u && !a,
13427                                                  x = !1;
13428                                              if (v) {
13429                                                  if (o) {
13430                                                      for (; g; ) {
13431                                                          for (p = t; (p = p[g]); ) if (a ? p.nodeName.toLowerCase() === m : 1 === p.nodeType) return !1;
13432                                                          h = g = "only" === e && !h && "nextSibling";
13433                                                      }
13434                                                      return !0;
13435                                                  }
13436                                                  if (((h = [s ? v.firstChild : v.lastChild]), s && y)) {
13437                                                      for (
13438                                                          x = (d = (l = (c = (f = (p = v)[b] || (p[b] = {}))[p.uniqueID] || (f[p.uniqueID] = {}
13438))[e] || [])[0] === T && l[1]) && l[2], p = d && v.childNodes[d];
13439                                                          (p = (++d && p && p[g]) || (x = d = 0) || h.pop());
13440
13441                                                      )
13442                                                          if (1 === p.nodeType && ++x && p === t) {
13443                                                              c[e] = [T, d, x];
13444                                                              break;
13445                                                          }
13446                                                  } else if ((y && (x = d = (l = (c = (f = (p = t)[b] || (p[b] = {}))[p.uniqueID] || (f[p.uniqueID] = {}))[e] || [])[0] === T && l[1]), !1 === x))
13447                                                      for (
13448                                                          ;
13449                                                          (p = (++d && p && p[g]) || (x = d = 0) || h.pop()) &&
13450                                                          ((a ? p.nodeName.toLowerCase() !== m : 1 !== p.nodeType) || !++x || (y && ((c = (f = p[b] || (p[b] = {}))[p.uniqueID] || (f[p.uniqueID] = {}))[e] = [T, x]), p !== t));
13451
13452                                                      );
13453                                                  return (x -= i) === r || (x % r == 0 && x / r >= 0);
13454                                              }
13455                                          };
13456                                },
13457                                PSEUDO: function (e, t) {
13458                                    var n,
13459                                        i = r.pseudos[e] || r.setFilters[e.toLowerCase()] || ae.error("unsupported pseudo: " + e);
13460                                    return i[b]
13461                                        ? i(t)
13462                                        : i.length > 1
13463                                        ? ((n = [e, e, "", t]),
13464                                          r.setFilters.hasOwnProperty(e.toLowerCase())
13465                                              ? le(function (e, n) {
13466                                                    for (var r, o = i(e, t), s = o.length; s--; ) e[(r = O(e, o[s]))] = !(n[r] = o[s]);
13467                                                })
13468                                              : function (e) {
13469                                                    return i(e, 0, n);
13470                                                })
13471                                        : i;
13472                                },
13473                            },
13474                            pseudos: {
13475                                not: le(function (e) {
13476                                    var t = [],
13477                                        n = [],
13478                                        r = a(e.replace($, "$1"));
13479                                    return r[b]
13480                                        ? le(function (e, t, n, i) {
13481                                              for (var o, s = r(e, null, i, []), a = e.length; a--; ) (o = s[a]) && (e[a] = !(t[a] = o));
13482                                          })
13483                                        : function (e, i, o) {
13484                                              return (t[0] = e), r(t, null, o, n), (t[0] = null), !n.pop();
13485                                          };
13486                                }),
13487                                has: le(function (e) {
13488                                    return function (t) {
13489                                        return ae(e, t).length > 0;
13490                                    };
13491                                }),
13492                                contains: le(function (e) {
13493                                    return (
13494                                        (e = e.replace(te, ne)),
13495                                        function (t) {
13496                                            return (t.textContent || i(t)).indexOf(e) > -1;
13497                                        }
13498                                    );
13499                                }),
13500                                lang: le(function (e) {
13501                                    return (
13502                                        X.test(e || "") || ae.error("unsupported lang: " + e),
13503                                        (e = e.replace(te, ne).toLowerCase()),
13504                                        function (t) {
13505                                            var n;
13506                                            do {
13507                                                if ((n = g ? t.lang : t.getAttribute("xml:lang") || t.getAttribute("lang"))) return (n = n.toLowerCase()) === e || 0 === n.indexOf(e + "-");
13508                                            } while ((t = t.parentNode) && 1 === t.nodeType);
13509                                            return !1;
13510                                        }
13511                                    );
13512                                }),
13513                                target: function (t) {
13514                                    var n = e.location && e.location.hash;
13515                                    return n && n.slice(1) === t.id;
13516                                },
13517                                root: function (e) {
13518                                    return e === h;
13519                                },
13520                                focus: function (e) {
13521                                    return e === d.activeElement && (!d.hasFocus || d.hasFocus()) && !!(e.type || e.href || ~e.tabIndex);
13522                                },
13523                                enabled: ge(!1),
13524                                disabled: ge(!0),
13525                                checked: function (e) {
13526                                    var t = e.nodeName.toLowerCase();
13527                                    return ("input" === t && !!e.checked) || ("option" === t && !!e.selected);
13528                                },
13529                                selected: function (e) {
13530                                    return e.parentNode && e.parentNode.selectedIndex, !0 === e.selected;
13531                                },
13532                                empty: function (e) {
13533                                    for (e = e.firstChild; e; e = e.nextSibling) if (e.nodeType < 6) return !1;
13534                                    return !0;
13535                                },
13536                                parent: function (e) {
13537                                    return !r.pseudos.empty(e);
13538                                },
13539                                header: function (e) {
13540                                    return J.test(e.nodeName);
13541                                },
13542                                input: function (e) {
13543                                    return Q.test(e.nodeName);
13544                                },
13545                                button: function (e) {
13546                                    var t = e.nodeName.toLowerCase();
13547                                    return ("input" === t && "button" === e.type) || "button" === t;
13548                                },
13549                                text: function (e) {
13550                                    var t;
13551                                    return "input" === e.nodeName.toLowerCase() && "text" === e.type && (null == (t = e.getAttribute("type")) || "text" === t.toLowerCase());
13552                                },
13553                                first: ve(function () {
13554                                    return [0];
13555                                }),
13556                                last: ve(function (e, t) {
13557                                    return [t - 1];
13558                                }),
13559                                eq: ve(function (e, t, n) {
13560                                    return [n < 0 ? n + t : n];
13561                                }),
13562                                even: ve(function (e, t) {
13563                                    for (var n = 0; n < t; n += 2) e.push(n);
13564                                    return e;
13565                                }),
13566                                odd: ve(function (e, t) {
13567                                    for (var n = 1; n < t; n += 2) e.push(n);
13568                                    return e;
13569                                }),
13570                                lt: ve(function (e, t, n) {
13571                                    for (var r = n < 0 ? n + t : n > t ? t : n; --r >= 0; ) e.push(r);
13572                                    return e;
13573                                }),
13574                                gt: ve(function (e, t, n) {
13575                                    for (var r = n < 0 ? n + t : n; ++r < t; ) e.push(r);
13576                                    return e;
13577                                }),
13578                            },
13579                        }),
13580                        (r.pseudos.nth = r.pseudos.eq),
13581                        { radio: !0, checkbox: !0, file: !0, password: !0, image: !0 }))
13582                            r.pseudos[t] = de(t);
13583                        for (t in { submit: !0, reset: !0 }) r.pseudos[t] = he(t);
13584                        function ye() {}
13585                        function xe(e) {
13586                            for (var t = 0, n = e.length, r = ""; t < n; t++) r += e[t].value;
13587                            return r;
13588                        }
13589                        function be(e, t, n) {
13590                            var r = t.dir,
13591                                i = t.next,
13592                                o = i || r,
13593                                s = n && "parentNode" === o,
13594                                a = C++;
13595                            return t.first
13596                                ? function (t, n, i) {
13597                                      for (; (t = t[r]); ) if (1 === t.nodeType || s) return e(t, n, i);
13598                                      return !1;
13599                                  }
13600                                : function (t, n, u) {
13601                                      var l,
13602                                          c,
13603                                          f,
13604                                          p = [T, a];
13605                                      if (u) {
13606                                          for (; (t = t[r]); ) if ((1 === t.nodeType || s) && e(t, n, u)) return !0;
13607                                      } else
13608                                          for (; (t = t[r]); )
13609                                              if (1 === t.nodeType || s)
13610                                                  if (((c = (f = t[b] || (t[b] = {}))[t.uniqueID] || (f[t.uniqueID] = {})), i && i === t.nodeName.toLowerCase())) t = t[r] || t;
13611                                                  else {
13612                                                      if ((l = c[o]) && l[0] === T && l[1] === a) return (p[2] = l[2]);
13613                                                      if (((c[o] = p), (p[2] = e(t, n, u)))) return !0;
13614                                                  }
13615                                      return !1;
13616                                  };
13617                        }
13618                        function we(e) {
13619                            return e.length > 1
13620                                ? function (t, n, r) {
13621                                      for (var i = e.length; i--; ) if (!e[i](t, n, r)) return !1;
13622                                      return !0;
13623                                  }
13624                                : e[0];
13625                        }
13626                        function Te(e, t, n, r, i) {
13627                            for (var o, s = [], a = 0, u = e.length, l = null != t; a < u; a++) (o = e[a]) && ((n && !n(o, r, i)) || (s.push(o), l && t.push(a)));
13628                            return s;
13629                        }
13630                        function Ce(e, t, n, r, i, o) {
13631                            return (
13632                                r && !r[b] && (r = Ce(r)),
13633                                i && !i[b] && (i = Ce(i, o)),
13634                                le(function (o, s, a, u) {
13635                                    var l,
13636                                        c,
13637                                        f,
13638                                        p = [],
13639                                        d = [],
13640                                        h = s.length,
13641                                        g =
13642                                            o ||
13643                                            (function (e, t, n) {
13644                                                for (var r = 0, i = t.length; r < i; r++) ae(e, t[r], n);
13645                                                return n;
13646                                            })(t || "*", a.nodeType ? [a] : a, []),
13647                                        v = !e || (!o && t) ? g : Te(g, p, e, a, u),
13648                                        m = n ? (i || (o ? e : h || r) ? [] : s) : v;
13649                                    if ((n && n(v, m, a, u), r)) for (l = Te(m, d), r(l, [], a, u), c = l.length; c--; ) (f = l[c]) && (m[d[c]] = !(v[d[c]] = f));
13650                                    if (o) {
13651                                        if (i || e) {
13652                                            if (i) {
13653                                                for (l = [], c = m.length; c--; ) (f = m[c]) && l.push((v[c] = f));
13654                                                i(null, (m = []), l, u);
13655                                            }
13656                                            for (c = m.length; c--; ) (f = m[c]) && (l = i ? O(o, f) : p[c]) > -1 && (o[l] = !(s[l] = f));
13657                                        }
13658                                    } else (m = Te(m === s ? m.splice(h, m.length) : m)), i ? i(null, s, m, u) : H.apply(s, m);
13659                                })
13660                            );
13661                        }
13662                        function Se(e) {
13663                            for (
13664                                var t,
13665                                    n,
13666                                    i,
13667                                    o = e.length,
13668                                    s = r.relative[e[0].type],
13669                                    a = s || r.relative[" "],
13670                                    u = s ? 1 : 0,
13671                                    c = be(
13672                                        function (e) {
13673                                            return e === t;
13674                                        },
13675                                        a,
13676                                        !0
13677                                    ),
13678                                    f = be(
13679                                        function (e) {
13680                                            return O(t, e) > -1;
13681                                        },
13682                                        a,
13683                                        !0
13684                                    ),
13685                                    p = [
13686                                        function (e, n, r) {
13687                                            var i = (!s && (r || n !== l)) || ((t = n).nodeType ? c(e, n, r) : f(e, n, r));
13688                                            return (t = null), i;
13689                                        },
13690                                    ];
13691                                u < o;
13692                                u++
13693                            )
13694                                if ((n = r.relative[e[u].type])) p = [be(we(p), n)];
13695                                else {
13696                                    if ((n = r.filter[e[u].type].apply(null, e[u].matches))[b]) {
13697                                        for (i = ++u; i < o && !r.relative[e[i].type]; i++);
13698                                        return Ce(
13699                                            u > 1 && we(p),
13700                                            u > 1 && xe(e.slice(0, u - 1).concat({ value: " " === e[u - 2].type ? "*" : "" })).replace($, "$1"),
13701                                            n,
13702                                            u < i && Se(e.slice(u, i)),
13703                                            i < o && Se((e = e.slice(i))),
13704                                            i < o && xe(e)
13705                                        );
13706                                    }
13707                                    p.push(n);
13708                                }
13709                            return we(p);
13710                        }
13711                        return (
13712                            (ye.prototype = r.filters = r.pseudos),
13713                            (r.setFilters = new ye()),
13714                            (s = ae.tokenize = function (e, t) {
13715                                var n,
13716                                    i,
13717                                    o,
13718                                    s,
13719                                    a,
13720                                    u,
13721                                    l,
13722                                    c = E[e + " "];
13723                                if (c) return t ? 0 : c.slice(0);
13724                                for (a = e, u = [], l = r.preFilter; a; ) {
13725                                    for (s in ((n && !(i = _.exec(a))) || (i && (a = a.slice(i[0].length) || a), u.push((o = []))),
13726                                    (n = !1),
13727                                    (i = V.exec(a)) && ((n = i.shift()), o.push({ value: n, type: i[0].replace($, " ") }), (a = a.slice(n.length))),
13728                                    r.filter))
13729                                        !(i = G[s].exec(a)) || (l[s] && !(i = l[s](i))) || ((n = i.shift()), o.push({ value: n, type: s, matches: i }), (a = a.slice(n.length)));
13730                                    if (!n) break;
13731                                }
13732                                return t ? a.length : a ? ae.error(e) : E(e, u).slice(0);
13733                            }),
13734                            (a = ae.compile = function (e, t) {
13735                                var n,
13736                                    i = [],
13737                                    o = [],
13738                                    a = A[e + " "];
13739                                if (!a) {
13740                                    for (t || (t = s(e)), n = t.length; n--; ) (a = Se(t[n]))[b] ? i.push(a) : o.push(a);
13741                                    (a = A(
13742                                        e,
13743                                        (function (e, t) {
13744                                            var n = t.length > 0,
13745                                                i = e.length > 0,
13746                                                o = function (o, s, a, u, c) {
13747                                                    var f,
13748                                                        h,
13749                                                        v,
13750                                                        m = 0,
13751                                                        y = "0",
13752                                                        x = o && [],
13753                                                        b = [],
13754                                                        w = l,
13755                                                        C = o || (i && r.find.TAG("*", c)),
13756                                                        S = (T += null == w ? 1 : Math.random() || 0.1),
13757                                                        E = C.length;
13758                                                    for (c && (l = s == d || s || c); y !== E && null != (f = C[y]); y++) {
13759                                                        if (i && f) {
13760                                                            for (h = 0, s || f.ownerDocument == d || (p(f), (a = !g)); (v = e[h++]); )
13761                                                                if (v(f, s || d, a)) {
13762                                                                    u.push(f);
13763                                                                    break;
13764                                                                }
13765                                                            c && (T = S);
13766                                                        }
13767                                                        n && ((f = !v && f) && m--, o && x.push(f));
13768                                                    }
13769                                                    if (((m += y), n && y !== m)) {
13770                                                        for (h = 0; (v = t[h++]); ) v(x, b, s, a);
13771                                                        if (o) {
13772                                                            if (m > 0) for (; y--; ) x[y] || b[y] || (b[y] = q.call(u));
13773                                                            b = Te(b);
13774                                                        }
13775                                                        H.apply(u, b), c && !o && b.length > 0 && m + t.length > 1 && ae.uniqueSort(u);
13776                                                    }
13777                                                    return c && ((T = S), (l = w)), x;
13778                                                };
13779                                            return n ? le(o) : o;
13780                                        })(o, i)
13781                                    )),
13782                                        (a.selector = e);
13783                                }
13784                                return a;
13785                            }),
13786                            (u = ae.select = function (e, t, n, i) {
13787                                var o,
13788                                    u,
13789                                    l,
13790                                    c,
13791                                    f,
13792                                    p = "function" == typeof e && e,
13793                                    d = !i && s((e = p.selector || e));
13794                                if (((n = n || []), 1 === d.length)) {
13795                                    if ((u = d[0] = d[0].slice(0)).length > 2 && "ID" === (l = u[0]).type && 9 === t.nodeType && g && r.relative[u[1].type]) {
13796                                        if (!(t = (r.find.ID(l.matches[0].replace(te, ne), t) || [])[0])) return n;
13797                                        p && (t = t.parentNode), (e = e.slice(u.shift().value.length));
13798                                    }
13799                                    for (o = G.needsContext.test(e) ? 0 : u.length; o-- && ((l = u[o]), !r.relative[(c = l.type)]); )
13800                                        if ((f = r.find[c]) && (i = f(l.matches[0].replace(te, ne), (ee.test(u[0].type) && me(t.parentNode)) || t))) {
13801                                            if ((u.splice(o, 1), !(e = i.length && xe(u)))) return H.apply(n, i), n;
13802                                            break;
13803                                        }
13804                                }
13805                                return (p || a(e, d))(i, t, !g, n, !t || (ee.test(e) && me(t.parentNode)) || t), n;
13806                            }),
13807                            (n.sortStable = b.split("").sort(N).join("") === b),
13808                            (n.detectDuplicates = !!f),
13809                            p(),
13810                            (n.sortDetached = ce(function (e) {
13811                                return 1 & e.compareDocumentPosition(d.createElement("fieldset"));
13812                            })),
13813                            ce(function (e) {
13814                                return (e.innerHTML = "<a href='#'></a>"), "#" === e.firstChild.getAttribute("href");
13815                            }) ||
13816                                fe("type|href|height|width", function (e, t, n) {
13817                                    if (!n) return e.getAttribute(t, "type" === t.toLowerCase() ? 1 : 2);
13818                                }),
13819                            (n.attributes &&
13820                                ce(function (e) {
13821                                    return (e.innerHTML = "<input/>"), e.firstChild.setAttribute("value", ""), "" === e.firstChild.getAttribute("value");
13822                                })) ||
13823                                fe("value", function (e, t, n) {
13824                                    if (!n && "input" === e.nodeName.toLowerCase()) return e.defaultValue;
13825                                }),
13826                            ce(function (e) {
13827                                return null == e.getAttribute("disabled");
13828                            }) ||
13829                                fe(M, function (e, t, n) {
13830                                    var r;
13831                                    if (!n) return !0 === e[t] ? t.toLowerCase() : (r = e.getAttributeNode(t)) && r.specified ? r.value : null;
13832                                }),
13833                            ae
13834                        );
13835                    })(r);
13836                    (S.find = A), (S.expr = A.selectors), (S.expr[":"] = S.expr.pseudos), (S.uniqueSort = S.unique = A.uniqueSort), (S.text = A.getText), (S.isXMLDoc = A.isXML), (S.contains = A.contains), (S.escapeSelector = A.escape);
13837                    var k = function (e, t, n) {
13838                            for (var r = [], i = void 0 !== n; (e = e[t]) && 9 !== e.nodeType; )
13839                                if (1 === e.nodeType) {
13840                                    if (i && S(e).is(n)) break;
13841                                    r.push(e);
13842                                }
13843                            return r;
13844                        },
13845                        N = function (e, t) {
13846                            for (var n = []; e; e = e.nextSibling) 1 === e.nodeType && e !== t && n.push(e);
13847                            return n;
13848                        },
13849                        D = S.expr.match.needsContext;
13850                    function j(e, t) {
13851                        return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase();
13852                    }
13853                    var q = /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;
13854                    function L(e, t, n) {
13855                        return m(t)
13856                            ? S.grep(e, function (e, r) {
13857                                  return !!t.call(e, r, e) !== n;
13858                              })
13859                            : t.nodeType
13860                            ? S.grep(e, function (e) {
13861                                  return (e === t) !== n;
13862                              })
13863                            : "string" != typeof t
13864                            ? S.grep(e, function (e) {
13865                                  return c.call(t, e) > -1 !== n;
13866                              })
13867                            : S.filter(t, e, n);
13868                    }
13869                    (S.filter = function (e, t, n) {
13870                        var r = t[0];
13871                        return (
13872                            n && (e = ":not(" + e + ")"),
13873                            1 === t.length && 1 === r.nodeType
13874                                ? S.find.matchesSelector(r, e)
13875                                    ? [r]
13876                                    : []
13877                                : S.find.matches(
13878                                      e,
13879                                      S.grep(t, function (e) {
13880                                          return 1 === e.nodeType;
13881                                      })
13882                                  )
13883                        );
13884                    }),
13885                        S.fn.extend({
13886                            find: function (e) {
13887                                var t,
13888                                    n,
13889                                    r = this.length,
13890                                    i = this;
13891                                if ("string" != typeof e)
13892                                    return this.pushStack(
13893                                        S(e).filter(function () {
13894                                            for (t = 0; t < r; t++) if (S.contains(i[t], this)) return !0;
13895                                        })
13896                                    );
13897                                for (n = this.pushStack([]), t = 0; t < r; t++) S.find(e, i[t], n);
13898                                return r > 1 ? S.uniqueSort(n) : n;
13899                            },
13900                            filter: function (e) {
13901                                return this.pushStack(L(this, e || [], !1));
13902                            },
13903                            not: function (e) {
13904                                return this.pushStack(L(this, e || [], !0));
13905                            },
13906                            is: function (e) {
13907                                return !!L(this, "string" == typeof e && D.test(e) ? S(e) : e || [], !1).length;
13908                            },
13909                        });
13910                    var H,
13911                        P = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;
13912                    ((S.fn.init = function (e, t, n) {
13913                        var r, i;
13914                        if (!e) return this;
13915                        if (((n = n || H), "string" == typeof e)) {
13916                            if (!(r = "<" === e[0] && ">" === e[e.length - 1] && e.length >= 3 ? [null, e, null] : P.exec(e)) || (!r[1] && t)) return !t || t.jquery ? (t || n).find(e) : this.constructor(t).find(e);
13917                            if (r[1]) {
13918                                if (((t = t instanceof S ? t[0] : t), S.merge(this, S.parseHTML(r[1], t && t.nodeType ? t.ownerDocument || t : x, !0)), q.test(r[1]) && S.isPlainObject(t)))
13919                                    for (r in t) m(this[r]) ? this[r](t[r]) : this.attr(r, t[r]);
13920                                return this;
13921                            }
13922                            return (i = x.getElementById(r[2])) && ((this[0] = i), (this.length = 1)), this;
13923                        }
13924                        return e.nodeType ? ((this[0] = e), (this.length = 1), this) : m(e) ? (void 0 !== n.ready ? n.ready(e) : e(S)) : S.makeArray(e, this);
13925                    }).prototype = S.fn),
13926                        (H = S(x));
13927                    var O = /^(?:parents|prev(?:Until|All))/,
13928                        M = { children: !0, contents: !0, next: !0, prev: !0 };
13929                    function R(e, t) {
13930                        for (; (e = e[t]) && 1 !== e.nodeType; );
13931                        return e;
13932                    }
13933                    S.fn.extend({
13934                        has: function (e) {
13935                            var t = S(e, this),
13936                                n = t.length;
13937                            return this.filter(function () {
13938                                for (var e = 0; e < n; e++) if (S.contains(this, t[e])) return !0;
13939                            });
13940                        },
13941                        closest: function (e, t) {
13942                            var n,
13943                                r = 0,
13944                                i = this.length,
13945                                o = [],
13946                                s = "string" != typeof e && S(e);
13947                            if (!D.test(e))
13948                                for (; r < i; r++)
13949                                    for (n = this[r]; n && n !== t; n = n.parentNode)
13950                                        if (n.nodeType < 11 && (s ? s.index(n) > -1 : 1 === n.nodeType && S.find.matchesSelector(n, e))) {
13951                                            o.push(n);
13952                                            break;
13953                                        }
13954                            return this.pushStack(o.length > 1 ? S.uniqueSort(o) : o);
13955                        },
13956                        index: function (e) {
13957                            return e ? ("string" == typeof e ? c.call(S(e), this[0]) : c.call(this, e.jquery ? e[0] : e)) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1;
13958                        },
13959                        add: function (e, t) {
13960                            return this.pushStack(S.uniqueSort(S.merge(this.get(), S(e, t))));
13961                        },
13962                        addBack: function (e) {
13963                            return this.add(null == e ? this.prevObject : this.prevObject.filter(e));
13964                        },
13965                    }),
13966                        S.each(
13967                            {
13968                                parent: function (e) {
13969                                    var t = e.parentNode;
13970                                    return t && 11 !== t.nodeType ? t : null;
13971                                },
13972                                parents: function (e) {
13973                                    return k(e, "parentNode");
13974                                },
13975                                parentsUntil: function (e, t, n) {
13976                                    return k(e, "parentNode", n);
13977                                },
13978                                next: function (e) {
13979                                    return R(e, "nextSibling");
13980                                },
13981                                prev: function (e) {
13982                                    return R(e, "previousSibling");
13983                                },
13984                                nextAll: function (e) {
13985                                    return k(e, "nextSibling");
13986                                },
13987                                prevAll: function (e) {
13988                                    return k(e, "previousSibling");
13989                                },
13990                                nextUntil: function (e, t, n) {
13991                                    return k(e, "nextSibling", n);
13992                                },
13993                                prevUntil: function (e, t, n) {
13994                                    return k(e, "previousSibling", n);
13995                                },
13996                                siblings: function (e) {
13997                                    return N((e.parentNode || {}).firstChild, e);
13998                                },
13999                                children: function (e) {
14000                                    return N(e.firstChild);
14001                                },
14002                                contents: function (e) {
14003                                    return null != e.contentDocument && s(e.contentDocument) ? e.contentDocument : (j(e, "template") && (e = e.content || e), S.merge([], e.childNodes));
14004                                },
14005                            },
14006                            function (e, t) {
14007                                S.fn[e] = function (n, r) {
14008                                    var i = S.map(this, t, n);
14009                                    return "Until" !== e.slice(-5) && (r = n), r && "string" == typeof r && (i = S.filter(r, i)), this.length > 1 && (M[e] || S.uniqueSort(i), O.test(e) && i.reverse()), this.pushStack(i);
14010                                };
14011                            }
14012                        );
14013                    var I = /[^\x20\t\r\n\f]+/g;
14014                    function B(e) {
14015                        return e;
14016                    }
14017                    function W(e) {
14018                        throw e;
14019                    }
14020                    function F(e, t, n, r) {
14021                        var i;
14022                        try {
14023                            e && m((i = e.promise)) ? i.call(e).done(t).fail(n) : e && m((i = e.then)) ? i.call(e, t, n) : t.apply(void 0, [e].slice(r));
14024                        } catch (e) {
14025                            n.apply(void 0, [e]);
14026                        }
14027                    }
14028                    (S.Callbacks = function (e) {
14029                        e =
14030                            "string" == typeof e
14031                                ? (function (e) {
14032                                      var t = {};
14033                                      return (
14034                                          S.each(e.match(I) || [], function (e, n) {
14035                                              t[n] = !0;
14036                                          }),
14037                                          t
14038                                      );
14039                                  })(e)
14040                                : S.extend({}, e);
14041                        var t,
14042                            n,
14043                            r,
14044                            i,
14045                            o = [],
14046                            s = [],
14047                            a = -1,
14048                            u = function () {
14049                                for (i = i || e.once, r = t = !0; s.length; a = -1) for (n = s.shift(); ++a < o.length; ) !1 === o[a].apply(n[0], n[1]) && e.stopOnFalse && ((a = o.length), (n = !1));
14050                                e.memory || (n = !1), (t = !1), i && (o = n ? [] : "");
14051                            },
14052                            l = {
14053                                add: function () {
14054                                    return (
14055                                        o &&
14056                                            (n && !t && ((a = o.length - 1), s.push(n)),
14057                                            (function t(n) {
14058                                                S.each(n, function (n, r) {
14059                                                    m(r) ? (e.unique && l.has(r)) || o.push(r) : r && r.length && "string" !== T(r) && t(r);
14060                                                });
14061                                            })(arguments),
14062                                            n && !t && u()),
14063                                        this
14064                                    );
14065                                },
14066                                remove: function () {
14067                                    return (
14068                                        S.each(arguments, function (e, t) {
14069                                            for (var n; (n = S.inArray(t, o, n)) > -1; ) o.splice(n, 1), n <= a && a--;
14070                                        }),
14071                                        this
14072                                    );
14073                                },
14074                                has: function (e) {
14075                                    return e ? S.inArray(e, o) > -1 : o.length > 0;
14076                                },
14077                                empty: function () {
14078                                    return o && (o = []), this;
14079                                },
14080                                disable: function () {
14081                                    return (i = s = []), (o = n = ""), this;
14082                                },
14083                                disabled: function () {
14084                                    return !o;
14085                                },
14086                                lock: function () {
14087                                    return (i = s = []), n || t || (o = n = ""), this;
14088                                },
14089                                locked: function () {
14090                                    return !!i;
14091                                },
14092                                fireWith: function (e, n) {
14093                                    return i || ((n = [e, (n = n || []).slice ? n.slice() : n]), s.push(n), t || u()), this;
14094                                },
14095                                fire: function () {
14096                                    return l.fireWith(this, arguments), this;
14097                                },
14098                                fired: function () {
14099                                    return !!r;
14100                                },
14101                            };
14102                        return l;
14103                    }),
14104                        S.extend({
14105                            Deferred: function (e) {
14106                                var t = [
14107                                        ["notify", "progress", S.Callbacks("memory"), S.Callbacks("memory"), 2],
14108                                        ["resolve", "done", S.Callbacks("once memory"), S.Callbacks("once memory"), 0, "resolved"],
14109                                        ["reject", "fail", S.Callbacks("once memory"), S.Callbacks("once memory"), 1, "rejected"],
14110                                    ],
14111                                    n = "pending",
14112                                    i = {
14113                                        state: function () {
14114                                            return n;
14115                                        },
14116                                        always: function () {
14117                                            return o.done(arguments).fail(arguments), this;
14118                                        },
14119                                        catch: function (e) {
14120                                            return i.then(null, e);
14121                                        },
14122                                        pipe: function () {
14123                                            var e = arguments;
14124                                            return S.Deferred(function (n) {
14125                                                S.each(t, function (t, r) {
14126                                                    var i = m(e[r[4]]) && e[r[4]];
14127                                                    o[r[1]](function () {
14128                                                        var e = i && i.apply(this, arguments);
14129                                                        e && m(e.promise) ? e.promise().progress(n.notify).done(n.resolve).fail(n.reject) : n[r[0] + "With"](this, i ? [e] : arguments);
14130                                                    });
14131                                                }),
14132                                                    (e = null);
14133                                            }).promise();
14134                                        },
14135                                        then: function (e, n, i) {
14136                                            var o = 0;
14137                                            function s(e, t, n, i) {
14138                                                return function () {
14139                                                    var a = this,
14140                                                        u = arguments,
14141                                                        l = function () {
14142                                                            var r, l;
14143                                                            if (!(e < o)) {
14144                                                                if ((r = n.apply(a, u)) === t.promise()) throw new TypeError("Thenable self
14144-resolution");
14145                                                                (l = r && ("object" == typeof r || "function" == typeof r) && r.then),
14146                                                                    m(l)
14147                                                                        ? i
14148                                                                            ? l.call(r, s(o, t, B, i), s(o, t, W, i))
14149                                                                            : (o++, l.call(r, s(o, t, B, i), s(o, t, W, i), s(o, t, B, t.notifyWith)))
14150                                                                        : (n !== B && ((a = void 0), (u = [r])), (i || t.resolveWith)(a, u));
14151                                                            }
14152                                                        },
14153                                                        c = i
14154                                                            ? l
14155                                                            : function () {
14156                                                                  try {
14157                                                                      l();
14158                                                                  } catch (r) {
14159                                                                      S.Deferred.exceptionHook && S.Deferred.exceptionHook(r, c.stackTrace), e + 1 >= o && (n !== W && ((a = void 0), (u = [r])), t.rejectWith(a, u));
14160                                                                  }
14161                                                              };
14162                                                    e ? c() : (S.Deferred.getStackHook && (c.stackTrace = S.Deferred.getStackHook()), r.setTimeout(c));
14163                                                };
14164                                            }
14165                                            return S.Deferred(function (r) {
14166                                                t[0][3].add(s(0, r, m(i) ? i : B, r.notifyWith)), t[1][3].add(s(0, r, m(e) ? e : B)), t[2][3].add(s(0, r, m(n) ? n : W));
14167                                            }).promise();
14168                                        },
14169                                        promise: function (e) {
14170                                            return null != e ? S.extend(e, i) : i;
14171                                        },
14172                                    },
14173                                    o = {};
14174                                return (
14175                                    S.each(t, function (e, r) {
14176                                        var s = r[2],
14177                                            a = r[5];
14178                                        (i[r[1]] = s.add),
14179                                            a &&
14180                                                s.add(
14181                                                    function () {
14182                                                        n = a;
14183                                                    },
14184                                                    t[3 - e][2].disable,
14185                                                    t[3 - e][3].disable,
14186                                                    t[0][2].lock,
14187                                                    t[0][3].lock
14188                                                ),
14189                                            s.add(r[3].fire),
14190                                            (o[r[0]] = function () {
14191                                                return o[r[0] + "With"](this === o ? void 0 : this, arguments), this;
14192                                            }),
14193                                            (o[r[0] + "With"] = s.fireWith);
14194                                    }),
14195                                    i.promise(o),
14196                                    e && e.call(o, o),
14197                                    o
14198                                );
14199                            },
14200                            when: function (e) {
14201                                var t = arguments.length,
14202                                    n = t,
14203                                    r = Array(n),
14204                                    i = a.call(arguments),
14205                                    o = S.Deferred(),
14206                                    s = function (e) {
14207                                        return function (n) {
14208                                            (r[e] = this), (i[e] = arguments.length > 1 ? a.call(arguments) : n), --t || o.resolveWith(r, i);
14209                                        };
14210                                    };
14211                                if (t <= 1 && (F(e, o.done(s(n)).resolve, o.reject, !t), "pending" === o.state() || m(i[n] && i[n].then))) return o.then();
14212                                for (; n--; ) F(i[n], s(n), o.reject);
14213                                return o.promise();
14214                            },
14215                        });
14216                    var $ = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;
14217                    (S.Deferred.exceptionHook = function (e, t) {
14218                        r.console && r.console.warn && e && $.test(e.name) && r.console.warn("jQuery.Deferred exception: " + e.message, e.stack, t);
14219                    }),
14220                        (S.readyException = function (e) {
14221                            r.setTimeout(function () {
14222                                throw e;
14223                            });
14224                        });
14225                    var _ = S.Deferred();
14226                    function V() {
14227                        x.removeEventListener("DOMContentLoaded", V), r.removeEventListener("load", V), S.ready();
14228                    }
14229                    (S.fn.ready = function (e) {
14230                        return (
14231                            _.then(e).catch(function (e) {
14232                                S.readyException(e);
14233                            }),
14234                            this
14235                        );
14236                    }),
14237                        S.extend({
14238                            isReady: !1,
14239                            readyWait: 1,
14240                            ready: function (e) {
14241                                (!0 === e ? --S.readyWait : S.isReady) || ((S.isReady = !0), (!0 !== e && --S.readyWait > 0) || _.resolveWith(x, [S]));
14242                            },
14243                        }),
14244                        (S.ready.then = _.then),
14245                        "complete" === x.readyState || ("loading" !== x.readyState && !x.documentElement.doScroll) ? r.setTimeout(S.ready) : (x.addEventListener("DOMContentLoaded", V), r.addEventListener("load", V));
14246                    var z = function (e, t, n, r, i, o, s) {
14247                            var a = 0,
14248                                u = e.length,
14249                                l = null == n;
14250                            if ("object" === T(n)) for (a in ((i = !0), n)) z(e, t, a, n[a], !0, o, s);
14251                            else if (
14252                                void 0 !== r &&
14253                                ((i = !0),
14254                                m(r) || (s = !0),
14255                                l &&
14256                                    (s
14257                                        ? (t.call(e, r), (t = null))
14258                                        : ((l = t),
14259                                          (t = function (e, t, n) {
14260                                              return l.call(S(e), n);
14261                                          }))),
14262                                t)
14263                            )
14264                                for (; a < u;
14264 a++) t(e[a], n, s ? r : r.call(e[a], a, t(e[a], n)));
14265                            return i ? e : l ? t.call(e) : u ? t(e[0], n) : o;
14266                        },
14267                        U = /^-ms-/,
14268                        X = /-([a-z])/g;
14269                    function G(e, t) {
14270                        return t.toUpperCase();
14271                    }
14272                    function Y(e) {
14273                        return e.replace(U, "ms-").replace(X, G);
14274                    }
14275                    var Q = function (e) {
14276                        return 1 === e.nodeType || 9 === e.nodeType || !+e.nodeType;
14277                    };
14278                    function J() {
14279                        this.expando = S.expando + J.uid++;
14280                    }
14281                    (J.uid = 1),
14282                        (J.prototype = {
14283                            cache: function (e) {
14284                                var t = e[this.expando];
14285                                return t || ((t = {}), Q(e) && (e.nodeType ? (e[this.expando] = t) : Object.defineProperty(e, this.expando, { value: t, configurable: !0 }))), t;
14286                            },
14287                            set: function (e, t, n) {
14288                                var r,
14289                                    i = this.cache(e);
14290                                if ("string" == typeof t) i[Y(t)] = n;
14291                                else for (r in t) i[Y(r)] = t[r];
14292                                return i;
14293                            },
14294                            get: function (e, t) {
14295                                return void 0 === t ? this.cache(e) : e[this.expando] && e[this.expando][Y(t)];
14296                            },
14297                            access: function (e, t, n) {
14298                                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);
14299                            },
14300                            remove: function (e, t) {
14301                                var n,
14302                                    r = e[this.expando];
14303                                if (void 0 !== r) {
14304                                    if (void 0 !== t) {
14305                                        n = (t = Array.isArray(t) ? t.map(Y) : (t = Y(t)) in r ? [t] : t.match(I) || []).length;
14306                                        for (; n--; ) delete r[t[n]];
14307                                    }
14308                                    (void 0 === t || S.isEmptyObject(r)) && (e.nodeType ? (e[this.expando] = void 0) : delete e[this.expando]);
14309                                }
14310                            },
14311                            hasData: function (e) {
14312                                var t = e[this.expando];
14313                                return void 0 !== t && !S.isEmptyObject(t);
14314                            },
14315                        });
14316                    var K = new J(),
14317                        Z = new J(),
14318                        ee = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
14319                        te = /[A-Z]/g;
14320                    function ne(e, t, n) {
14321                        var r;
14322                        if (void 0 === n && 1 === e.nodeType)
14323                            if (((r = "data-" + t.replace(te, "-$&").toLowerCase()), "string" == typeof (n = e.getAttribute(r)))) {
14324                                try {
14325                                    n = (function (e) {
14326                                        return "true" === e || ("false" !== e && ("null" === e ? null : e === +e + "" ? +e : ee.test(e) ? JSON.parse(e) : e));
14327                                    })(n);
14328                                } catch (e) {}
14329                                Z.set(e, t, n);
14330                            } else n = void 0;
14331                        return n;
14332                    }
14333                    S.extend({
14334                        hasData: function (e) {
14335                            return Z.hasData(e) || K.hasData(e);
14336                        },
14337                        data: function (e, t, n) {
14338                            return Z.access(e, t, n);
14339                        },
14340                        removeData: function (e, t) {
14341                            Z.remove(e, t);
14342                        },
14343                        _data: function (e, t, n) {
14344                            return K.access(e, t, n);
14345                        },
14346                        _removeData: function (e, t) {
14347                            K.remove(e, t);
14348                        },
14349                    }),
14350                        S.fn.extend({
14351                            data: function (e, t) {
14352                                var n,
14353                                    r,
14354                                    i,
14355                                    o = this[0],
14356                                    s = o && o.attributes;
14357                                if (void 0 === e) {
14358                                    if (this.length && ((i = Z.get(o)), 1 === o.nodeType && !K.get(o, "hasDataAttrs"))) {
14359                                        for (n = s.length; n--; ) s[n] && 0 === (r = s[n].name).indexOf("data-") && ((r = Y(r.slice(5))), ne(o, r, i[r]));
14360                                        K.set(o, "hasDataAttrs", !0);
14361                                    }
14362                                    return i;
14363                                }
14364                                return "object" == typeof e
14365                                    ? this.each(function () {
14366                                          Z.set(this, e);
14367                                      })
14368                                    : z(
14369                                          this,
14370                                          function (t) {
14371                                              var n;
14372                                              if (o && void 0 === t) return void 0 !== (n = Z.get(o, e)) || void 0 !== (n = ne(o, e)) ? n : void 0;
14373                                              this.each(function () {
14374                                                  Z.set(this, e, t);
14375                                              });
14376                                          },
14377                                          null,
14378                                          t,
14379                                          arguments.length > 1,
14380                                          null,
14381                                          !0
14382                                      );
14383                            },
14384                            removeData: function (e) {
14385                                return this.each(function () {
14386                                    Z.remove(this, e);
14387                                });
14388                            },
14389                        }),
14390                        S.extend({
14391                            queue: function (e, t, n) {
14392                                var r;
14393                                if (e) return (t = (t || "fx") + "queue"), (r = K.get(e, t)), n && (!r || Array.isArray(n) ? (r = K.access(e, t, S.makeArray(n))) : r.push(n)), r || [];
14394                            },
14395                            dequeue: function (e, t) {
14396                                t = t || "fx";
14397                                var n = S.queue(e, t),
14398                                    r = n.length,
14399                                    i = n.shift(),
14400                                    o = S._queueHooks(e, t);
14401                                "inprogress" === i && ((i = n.shift()), r--),
14402                                    i &&
14403                                        ("fx" === t && n.unshift("inprogress"),
14404                                        delete o.stop,
14405                                        i.call(
14406                                            e,
14407                                            function () {
14408                                                S.dequeue(e, t);
14409                                            },
14410                                            o
14411                                        )),
14412                                    !r && o && o.empty.fire();
14413                            },
14414                            _queueHooks: function (e, t) {
14415                                var n = t + "queueHooks";
14416                                return (
14417                                    K.get(e, n) ||
14418                                    K.access(e, n, {
14419                                        empty: S.Callbacks("once memory").add(function () {
14420                                            K.remove(e, [t + "queue", n]);
14421                                        }),
14422                                    })
14423                                );
14424                            },
14425                        }),
14426                        S.fn.extend({
14427                            queue: function (e, t) {
14428                                var n = 2;
14429                                return (
14430                                    "string" != typeof e && ((t = e), (e = "fx"), n--),
14431                                    arguments.length < n
14432                                        ? S.queue(this[0], e)
14433                                        : void 0 === t
14434                                        ? this
14435                                        : this.each(function () {
14436                                              var n = S.queue(this, e, t);
14437                                              S._queueHooks(this, e), "fx" === e && "inprogress" !== n[0] && S.dequeue(this, e);
14438                                          })
14439                                );
14440                            },
14441                            dequeue: function (e) {
14442                                return this.each(function () {
14443                                    S.dequeue(this, e);
14444                                });
14445                            },
14446                            clearQueue: function (e) {
14447                                return this.queue(e || "fx", []);
14448                            },
14449                            promise: function (e, t) {
14450                                var n,
14451                                    r = 1,
14452                                    i = S.Deferred(),
14453                                    o = this,
14454                                    s = this.length,
14455                                    a = function () {
14456                                        --r || i.resolveWith(o, [o]);
14457                                    };
14458                                for ("string" != typeof e && ((t = e), (e = void 0)), e = e || "fx"; s--; ) (n = K.get(o[s], e + "queueHooks")) && n.empty && (r++, n.empty.add(a));
14459                                return a(), i.promise(t);
14460                            },
14461                        });
14462                    var re = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,
14463                        ie = new RegExp("^(?:([+-])=|)(" + re + ")([a-z
14463%]*)$", "i"),
14464                        oe = ["Top", "Right", "Bottom", "Left"],
14465                        se = x.documentElement,
14466                        ae = function (e) {
14467                            return S.contains(e.ownerDocument, e);
14468                        },
14469                        ue = { composed: !0 };
14470                    se.getRootNode &&
14471                        (ae = function (e) {
14472                            return S.contains(e.ownerDocument, e) || e.getRootNode(ue) === e.ownerDocument;
14473                        });
14474                    var le = function (e, t) {
14475                        return "none" === (e = t || e).style.display || ("" === e.style.display && ae(e) && "none" === S.css(e, "display"));
14476                    };
14477                    function ce(e, t, n, r) {
14478                        var i,
14479                            o,
14480                            s = 20,
14481                            a = r
14482                                ? function () {
14483                                      return r.cur();
14484                                  }
14485                                : function () {
14486                                      return S.css(e, t, "");
14487                                  },
14488                            u = a(),
14489                            l = (n && n[3]) || (S.cssNumber[t] ? "" : "px"),
14490                            c = e.nodeType && (S.cssNumber[t] || ("px" !== l && +u)) && ie.exec(S.css(e, t));
14491                        if (c && c[3] !== l) {
14492                            for (u /= 2, l = l || c[3], c = +u || 1; s--; ) S.style(e, t, c + l), (1 - o) * (1 - (o = a() / u || 0.5)) <= 0 && (s = 0), (c /= o);
14493                            (c *= 2), S.style(e, t, c + l), (n = n || []);
14494                        }
14495                        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;
14496                    }
14497                    var fe = {};
14498                    function pe(e) {
14499                        var t,
14500                            n = e.ownerDocument,
14501                            r = e.nodeName,
14502                            i = fe[r];
14503                        return i || ((t = n.body.appendChild(n.createElement(r))), (i = S.css(t, "display")), t.parentNode.removeChild(t), "none" === i && (i = "block"), (fe[r] = i), i);
14504                    }
14505                    function de(e, t) {
14506                        for (var n, r, i = [], o = 0, s = e.length; o < s; o++)
14507                            (r = e[o]).style &&
14508                                ((n = r.style.display),
14509                                t ? ("none" === n && ((i[o] = K.get(r, "display") || null), i[o] || (r.style.display = "")), "" === r.style.display && le(r) && (i[o] = pe(r))) : "none" !== n && ((i[o] = "none"), K.set(r, "display", n)));
14510                        for (o = 0; o < s; o++) null != i[o] && (e[o].style.display = i[o]);
14511                        return e;
14512                    }
14513                    S.fn.extend({
14514                        show: function () {
14515                            return de(this, !0);
14516                        },
14517                        hide: function () {
14518                            return de(this);
14519                        },
14520                        toggle: function (e) {
14521                            return "boolean" == typeof e
14522                                ? e
14523                                    ? this.show()
14524                                    : this.hide()
14525                                : this.each(function () {
14526                                      le(this) ? S(this).show() : S(this).hide();
14527                                  });
14528                        },
14529                    });
14530                    var he,
14531                        ge,
14532                        ve = /^(?:checkbox|radio)$/i,
14533                        me = /<([a-z][^\/\0>\x20\t\r\n\f]*)/i,
14534                        ye = /^$|^module$|\/(?:java|ecma)script/i;
14535                    (he = x.createDocumentFragment().appendChild(x.createElement("div"))),
14536                        (ge = x.createElement("input")).setAttribute("type", "radio"),
14537                        ge.setAttribute("checked", "checked"),
14538                        ge.setAttribute("name", "t"),
14539                        he.appendChild(ge),
14540                        (v.checkClone = he.cloneNode(!0).cloneNode(!0).lastChild.checked),
14541                        (he.innerHTML = "<textarea>x</textarea>"),
14542                        (v.noCloneChecked = !!he.cloneNode(!0).lastChild.defaultValue),
14543                        (he.innerHTML = "<option></option>"),
14544                        (v.option = !!he.lastChild);
14545                    var xe = {
14546                        thead: [1, "<table>", "</table>"],
14547                        col: [2, "<table><colgroup>", "</colgroup></table>"],
14548                        tr: [2, "<table><tbody>", "</tbody></table>"],
14549                        td: [3, "<table><tbody><tr>", "</tr></tbody></table>"],
14550                        _default: [0, "", ""],
14551                    };
14552                    function be(e, t) {
14553                        var n;
14554                        return (n = void 0 !== e.getElementsByTagName ? e.getElementsByTagName(t || "*") : void 0 !== e.querySelectorAll ? e.querySelectorAll(t || "*") : []), void 0 === t || (t && j(e, t)) ? S.merge([e], n) : n;
14555                    }
14556                    function we(e, t) {
14557                        for (var n = 0, r = e.length; n < r; n++) K.set(e[n], "globalEval", !t || K.get(t[n], "globalEval"));
14558                    }
14559                    (xe.tbody = xe.tfoot = xe.colgroup = xe.caption = xe.thead), (xe.th = xe.td), v.option || (xe.optgroup = xe.option = [1, "<select multiple='multiple'>", "</select>"]);
14560                    var Te = /<|&#?\w+;/;
14561                    function Ce(e, t, n, r, i) {
14562                        for (var o, s, a, u, l, c, f = t.createDocumentFragment(), p = [], d = 0, h = e.length; d < h; d++)
14563                            if ((o = e[d]) || 0 === o)
14564                                if ("object" === T(o)) S.merge(p, o.nodeType ? [o] : o);
14565                                else if (Te.test(o)) {
14566                                    for (s = s || f.appendChild(t.createElement("div")), a = (me.exec(o) || ["", ""])[1].toLowerCase(), u = xe[a] || xe._default, s.innerHTML = u[1] + S.htmlPrefilter(o) + u[2], c = u[0]; c--; )
14567                                        s = s.lastChild;
14568                                    S.merge(p, s.childNodes), ((s = f.firstChild).textContent = "");
14569                                } else p.push(t.createTextNode(o));
14570                        for (f.textContent = "", d = 0; (o = p[d++]); )
14571                            if (r && S.inArray(o, r) > -1) i && i.push(o);
14572                            else if (((l = ae(o)), (s = be(f.appendChild(o), "script")), l && we(s), n)) for (c = 0; (o = s[c++]); ) ye.test(o.type || "") && n.push(o);
14573                        return f;
14574                    }
14575                    var Se = /^([^.]*)(?:\.(.+)|)/;
14576                    function Ee() {
14577                        return !0;
14578                    }
14579                    function Ae() {
14580                        return !1;
14581                    }
14582                    function ke(e, t) {
14583                        return (
14584                            (e ===
14585                                (function () {
14586                                    try {
14587                                        return x.activeElement;
14588                                    } catch (e) {}
14589                                })()) ==
14590                            ("focus" === t)
14591                        );
14592                    }
14593                    function Ne(e, t, n, r, i, o) {
14594                        var s, a;
14595                        if ("object" == typeof t) {
14596                            for (a in ("string" != typeof n && ((r = r || n), (n = void 0)), t)) Ne(e, a, n, r, t[a], o);
14597                            return e;
14598                        }
14599                        if ((null == r && null == i ? ((i = n), (r = n = void 0)) : null == i && ("string" == typeof n ? ((i = r), (r = void 0)) : ((i = r), (r = n), (n = void 0))), !1 === i)) i = Ae;
14600                        else if (!i) return e;
14601                        return (
14602                            1 === o &&
14603                                ((s = i),
14604                                (i = function (e) {
14605                                    return S().off(e), s.apply(this, arguments);
14606                                }),
14607                                (i.guid = s.guid || (s.guid = S.guid++))),
14608                            e.each(function () {
14609                                S.event.add(this, t, i, r, n);
14610                            })
14611                        );
14612                    }
14613                    function De(e, t, n) {
14614                        n
14615                            ? (K.set(e, t, !1),
14616                              S.event.add(e, t, {
14617                                  namespace: !1,
14618                                  handler: function (e) {
14619                                      var r,
14620                                          i,
14621                                          o = K.get(this, t);
14622                                      if (1 & e.isTrigger && this[t]) {
14623                                          if (o.length) (S.event.special[t] || {}).delegateType && e.stopPropagation();
14624                                          else if (((o = a.call(arguments)), K.set(this, t, o), (r = n(this, t)), this[t](), o !== (i = K.get(this, t)) || r ? K.set(this, t, !1) : (i = {}), o !== i))
14625                                              return e.stopImmediatePropagation(), e.preventDefault(), i && i.value;
14626                                      } else o.length && (K.set(this, t, { value: S.event.trigger(S.extend(o[0], S.Event.prototype), o.slice(1), this) }), e.stopImmediatePropagation());
14627                                  },
14628                              }))
14629                            : void 0 === K.get(e, t) && S.event.add(e, t, Ee);
14630                    }
14631                    (S.event = {
14632                        global: {},
14633                        add: function (e, t, n, r, i) {
14634                            var o,
14635                                s,
14636                                a,
14637                                u,
14638                                l,
14639                                c,
14640                                f,
14641                                p,
14642                                d,
14643                                h,
14644                                g,
14645                                v = K.get(e);
14646                            if (Q(e))
14647                                for (
14648                                    n.handler && ((n = (o = n).handler), (i = o.selector)),
14649                                        i && S.find.matchesSelector(se, i),
14650                                        n.guid || (n.guid = S.guid++),
14651                                        (u = v.events) || (u = v.events = Object.create(null)),
14652                                        (s = v.handle) ||
14653                                            (s = v.handle = function (t) {
14654                                                return void 0 !== S && S.event.triggered !== t.type ? S.event.dispatch.apply(e, arguments) : void 0;
14655                                            }),
14656                                        l = (t = (t || "").match(I) || [""]).length;
14657                                    l--;
14658
14659                                )
14660                                    (d = g = (a = Se.exec(t[l]) || [])[1]),
14661                                        (h = (a[2] || "").split(".").sort()),
14662                                        d &&
14663                                            ((f = S.event.special[d] || {}),
14664                                            (d = (i ? f.delegateType : f.bindType) || d),
14665                                            (f = S.event.special[d] || {}),
14666                                            (c = S.extend({ type: d, origType: g, data: r, handler: n, guid: n.guid, selector: i, needsContext: i && S.expr.match.needsContext.test(i), namespace: h.join(".") }, o)),
14667                                            (p = u[d]) || (((p = u[d] = []).delegateCount = 0), (f.setup && !1 !== f.setup.call(e, r, h, s)) || (e.addEventListener && e.addEventListener(d, s))),
14668                                            f.add && (f.add.call(e, c), c.handler.guid || (c.handler.guid = n.guid)),
14669                                            i ? p.splice(p.delegateCount++, 0, c) : p.push(c),
14670                                            (S.event.global[d] = !0));
14671                        },
14672                        remove: function (e, t, n, r, i) {
14673                            var o,
14674                                s,
14675                                a,
14676                                u,
14677                                l,
14678                                c,
14679                                f,
14680                                p,
14681                                d,
14682                                h,
14683                                g,
14684                                v = K.hasData(e) && K.get(e);
14685                            if (v && (u = v.events)) {
14686                                for (l = (t = (t || "").match(I) || [""]).length; l--; )
14687                                    if (((d = g = (a = Se.exec(t[l]) || [])[1]), (h = (a[2] || "").split(".").sort()), d)) {
14688                                        for (f = S.event.special[d] || {}, p = u[(d = (r ? f.delegateType : f.bindType) || d)] || [], a = a[2] && new RegExp("(^|\\.)" + h.join("\\.(?:.*\\.|)") + "(\\.|$)"), s = o = p.length; o--; )
14689                                            (c = p[o]),
14690                                                (!i && g !== c.origType) ||
14691                                                    (n && n.guid !== c.guid) ||
14692                                                    (a && !a.test(c.namespace)) ||
14693                                                    (r && r !== c.selector && ("**" !== r || !c.selector)) ||
14694                                                    (p.splice(o, 1), c.selector && p.delegateCount--, f.remove && f.remove.call(e, c));
14695                                        s && !p.length && ((f.teardown && !1 !== f.teardown.call(e, h, v.handle)) || S.removeEvent(e, d, v.handle), delete u[d]);
14696                                    } else for (d in u) S.event.remove(e, d + t[l], n, r, !0);
14697                                S.isEmptyObject(u) && K.remove(e, "handle events");
14698                            }
14699                        },
14700                        dispatch: function (e) {
14701                            var t,
14702                                n,
14703                                r,
14704                                i,
14705                                o,
14706                                s,
14707                                a = new Array(arguments.length),
14708                                u = S.event.fix(e),
14709                                l = (K.get(this, "events") || Object.create(null))[u.type] || [],
14710                                c = S.event.special[u.type] || {};
14711                            for (a[0] = u, t = 1; t < arguments.length; t++) a[t] = arguments[t];
14712                            if (((u.delegateTarget = this), !c.preDispatch || !1 !== c.preDispatch.call(this, u))) {
14713                                for (s = S.event.handlers.call(this, u, l), t = 0; (i = s[t++]) && !u.isPropagationStopped(); )
14714                                    for (u.currentTarget = i.elem, n = 0; (o = i.handlers[n++]) && !u.isImmediatePropagationStopped(); )
14715                                        (u.rnamespace && !1 !== o.namespace && !u.rnamespace.test(o.namespace)) ||
14716                                            ((u.handleObj = o),
14717                                            (u.data = o.data),
14718                                            void 0 !== (r = ((S.event.special[o.origType] || {}).handle || o.handler).apply(i.elem, a)) && !1 === (u.result = r) && (u.preventDefault(), u.stopPropagation()));
14719                                return c.postDispatch && c.postDispatch.call(this, u), u.result;
14720                            }
14721                        },
14722                        handlers: function (e, t) {
14723                            var n,
14724                                r,
14725                                i,
14726                                o,
14727                                s,
14728                                a = [],
14729                                u = t.delegateCount,
14730                                l = e.target;
14731                            if (u && l.nodeType && !("click" === e.type && e.button >= 1))
14732                                for (; l !== this; l = l.parentNode || this)
14733                                    if (1 === l.nodeType && ("click" !== e.type || !0 !== l.disabled)) {
14734                                        for (o = [], s = {}, n = 0; n < u; n++) void 0 === s[(i = (r = t[n]).selector + " ")] && (s[i] = r.needsContext ? S(i, this).index(l) > -1 : S.find(i, this, null, [l]).length), s[i] && o.push(r);
14735                                        o.length && a.push({ elem: l, handlers: o });
14736                                    }
14737                            return (l = this), u < t.length && a.push({ elem: l, handlers: t.slice(u) }), a;
14738                        },
14739                        addProp: function (e, t) {
14740                            Object.defineProperty(S.Event.prototype, e, {
14741                                enumerable: !0,
14742                                configurable: !0,
14743                                get: m(t)
14744                                    ? function () {
14745                                          if (this.originalEvent) return t(this.originalEvent);
14746                                      }
14747                                    : function () {
14748                                          if (this.originalEvent) return this.originalEvent[e];
14749                                      },
14750                                set: function (t) {
14751                                    Object.defineProperty(this, e, { enumerable: !0, configurable: !0, writable: !0, value: t });
14752                                },
14753                            });
14754                        },
14755                        fix: function (e) {
14756                            return e[S.expando] ? e : new S.Event(e);
14757                        },
14758                        special: {
14759                            load: { noBubble: !0 },
14760                            click: {
14761                                setup: function (e) {
14762                                    var t = this || e;
14763                                    return ve.test(t.type) && t.click && j(t, "input") && De(t, "click", Ee), !1;
14764                                },
14765                                trigger: function (e) {
14766                                    var t = this || e;
14767                                    return ve.test(t.type) && t.click && j(t, "input") && De(t, "click"), !0;
14768                                },
14769                                _default: function (e) {
14770                                    var t = e.target;
14771                                    return (ve.test(t.type) && t.click && j(t, "input") && K.get(t, "click")) || j(t, "a");
14772                                },
14773                            },
14774                            beforeunload: {
14775                                postDispatch: function (e) {
14776                                    void 0 !== e.result && e.originalEvent && (e.originalEvent.returnValue = e.result);
14777                                },
14778                            },
14779                        },
14780                    }),
14781                        (S.removeEvent = function (e, t, n) {
14782                            e.removeEventListener && e.removeEventListener(t, n);
14783                        }),
14784                        (S.Event = function (e, t) {
14785                            if (!(this instanceof S.Event)) return new S.Event(e, t);
14786                            e && e.type
14787                                ? ((this.originalEvent = e),
14788                                  (this.type = e.type),
14789                                  (this.isDefaultPrevented = e.defaultPrevented || (void 0 === e.defaultPrevented && !1 === e.returnValue) ? Ee : Ae),
14790                                  (this.target = e.target && 3 === e.target.nodeType ? e.target.parentNode : e.target),
14791                                  (this.currentTarget = e.currentTarget),
14792                                  (this.relatedTarget = e.relatedTarget))
14793                                : (this.type = e),
14794                                t && S.extend(this, t),
14795                                (this.timeStamp = (e && e.timeStamp) || Date.now()),
14796                                (this[S.expando] = !0);
14797                        }),
14798                        (S.Event.prototype = {
14799                            constructor: S.Event,
14800                            isDefaultPrevented: Ae,
14801                            isPropagationStopped: Ae,
14802                            isImmediatePropagationStopped: Ae,
14803                            isSimulated: !1,
14804                            preventDefault: function () {
14805                                var e = this.originalEvent;
14806                                (this.isDefaultPrevented = Ee), e && !this.isSimulated && e.preventDefault();
14807                            },
14808                            stopPropagation: function () {
14809                                var e = this.originalEvent;
14810                                (this.isPropagationStopped = Ee), e && !this.isSimulated && e.stopPropagation();
14811                            },
14812                            stopImmediatePropagation: function () {
14813                                var e = this.originalEvent;
14814                                (this.isImmediatePropagationStopped = Ee), e && !this.isSimulated && e.stopImmediatePropagation(), this.stopPropagation();
14815                            },
14816                        }),
14817                        S.each(
14818                            {
14819                                altKey: !0,
14820                                bubbles: !0,
14821                                cancelable: !0,
14822                                changedTouches: !0,
14823                                ctrlKey: !0,
14824                                detail: !0,
14825                                eventPhase: !0,
14826                                metaKey: !0,
14827                                pageX: !0,
14828                                pageY: !0,
14829                                shiftKey: !0,
14830                                view: !0,
14831                                char: !0,
14832                                code: !0,
14833                                charCode: !0,
14834                                key: !0,
14835                                keyCode: !0,
14836                                button: !0,
14837                                buttons: !0,
14838                                clientX: !0,
14839                                clientY: !0,
14840                                offsetX: !0,
14841                                offsetY: !0,
14842                                pointerId: !0,
14843                                pointerType: !0,
14844                                screenX: !0,
14845                                screenY: !0,
14846                                targetTouches: !0,
14847                                toElement: !0,
14848                                touches: !0,
14849                                which: !0,
14850                            },
14851                            S.event.addProp
14852                        ),
14853                        S.each({ focus: "focusin", blur: "focusout" }, function (e, t) {
14854                            S.event.special[e] = {
14855                                setup: function () {
14856                                    return De(this, e, ke), !1;
14857                                },
14858                                trigger: function () {
14859                                    return De(this, e), !0;
14860                                },
14861                                _default: function (t) {
14862                                    return K.get(t.target, e);
14863                                },
14864                                delegateType: t,
14865                            };
14866                        }),
14867                        S.each({ mouseenter: "mouseover", mouseleave: "mouseout", pointerenter: "pointerover", pointerleave: "pointerout" }, function (e, t) {
14868                            S.event.special[e] = {
14869                                delegateType: t,
14870                                bindType: t,
14871                                handle: function (e) {
14872                                    var n,
14873                                        r = this,
14874                                        i = e.relatedTarget,
14875                                        o = e.handleObj;
14876                                    return (i && (i === r || S.contains(r, i))) || ((e.type = o.origType), (n = o.handler.apply(this, arguments)), (e.type = t)), n;
14877                                },
14878                            };
14879                        }),
14880                        S.fn.extend({
14881                            on: function (e, t, n, r) {
14882                                return Ne(this, e, t, n, r);
14883                            },
14884                            one: function (e, t, n, r) {
14885                                return Ne(this, e, t, n, r, 1);
14886                            },
14887                            off: function (e, t, n) {
14888                                var r, i;
14889                                if (e && e.preventDefault && e.handleObj) return (r = e.handleObj), S(e.delegateTarget).off(r.namespace ? r.origType + "." + r.namespace : r.origType, r.selector, r.handler), this;
14890                                if ("object" == typeof e) {
14891                                    for (i in e) this.off(i, t, e[i]);
14892                                    return this;
14893                                }
14894                                return (
14895                                    (!1 !== t && "function" != typeof t) || ((n = t), (t = void 0)),
14896                                    !1 === n && (n = Ae),
14897                                    this.each(function () {
14898                                        S.event.remove(this, e, n, t);
14899                                    })
14900                                );
14901                            },
14902                        });
14903                    var je = /<script|<style|<link/i,
14904                        qe = /checked\s*(?:[^=]|=\s*.checked.)/i,
14905                        Le = /^\s*<!\[CDATA\[|\]\]>\s*$/g;
14906                    function He(e, t) {
14907                        return (j(e, "table") && j(11 !== t.nodeType ? t : t.firstChild, "tr") && S(e).children("tbody")[0]) || e;
14908                    }
14909                    function Pe(e) {
14910                        return (e.type = (null !== e.getAttribute("type")) + "/" + e.type), e;
14911                    }
14912                    function Oe(e) {
14913                        return "true/" === (e.type || "").slice(0, 5) ? (e.type = e.type.slice(5)) : e.removeAttribute("type"), e;
14914                    }
14915                    function Me(e, t) {
14916                        var n, r, i, o, s, a;
14917                        if (1 === t.nodeType) {
14918                            if (K.hasData(e) && (a = K.get(e).events)) for (i in (K.remove(t, "handle events"), a)) for (n = 0, r = a[i].length; n < r; n++) S.event.add(t, i, a[i][n]);
14919                            Z.hasData(e) && ((o = Z.access(e)), (s = S.extend({}, o)), Z.set(t, s));
14920                        }
14921                    }
14922                    function Re(e, t) {
14923                        var n = t.nodeName.toLowerCase();
14924                        "input" === n && ve.test(e.type) ? (t.checked = e.checked) : ("input" !== n && "textarea" !== n) || (t.defaultValue = e.defaultValue);
14925                    }
14926                    function Ie(e, t, n, r) {
14927                        t = u(t);
14928                        var i,
14929                            o,
14930                            s,
14931                            a,
14932                            l,
14933                            c,
14934                            f = 0,
14935                            p = e.length,
14936                            d = p - 1,
14937                            h = t[0],
14938                            g = m(h);
14939                        if (g || (p > 1 && "string" == typeof h && !v.checkClone && qe.test(h)))
14940                            return e.each(function (i) {
14941                                var o = e.eq(i);
14942                                g && (t[0] = h.call(this, i, o.html())), Ie(o, t, n, r);
14943                            });
14944                        if (p && ((o = (i = Ce(t, e[0].ownerDocument, !1, e, r)).firstChild), 1 === i.childNodes.length && (i = o), o || r)) {
14945                            for (a = (s = S.map(be(i, "script"), Pe)).length; f < p; f++) (l = i), f !== d && ((l = S.clone(l, !0, !0)), a && S.merge(s, be(l, "script"))), n.call(e[f], l, f);
14946                            if (a)
14947                                for (c = s[s.length - 1].ownerDocument, S.map(s, Oe), f = 0; f < a; f++)
14948                                    (l = s[f]),
14949                                        ye.test(l.type || "") &&
14950                                            !K.access(l, "globalEval") &&
14951                                            S.contains(c, l) &&
14952                                            (l.src && "module" !== (l.type || "").toLowerCase() ? S._evalUrl && !l.noModule && S._evalUrl(l.src, { nonce: l.nonce || l.getAttribute("nonce") }, c) : w(l.textContent.replace(Le, ""), l, c));
14953                        }
14954                        return e;
14955                    }
14956                    function Be(e, t, n) {
14957                        for (var r, i = t ? S.filter(t, e) : e, o = 0; null != (r = i[o]); o++) n || 1 !== r.nodeType || S.cleanData(be(r)), r.parentNode && (n && ae(r) && we(be(r, "script")), r.parentNode.removeChild(r));
14958                        return e;
14959                    }
14960                    S.extend({
14961                        htmlPrefilter: function (e) {
14962                            return e;
14963                        },
14964                        clone: function (e, t, n) {
14965                            var r,
14966                                i,
14967                                o,
14968                                s,
14969                                a = e.cloneNode(!0),
14970                                u = ae(e);
14971                            if (!(v.noCloneChecked || (1 !== e.nodeType && 11 !== e.nodeType) || S.isXMLDoc(e))) for (s = be(a), r = 0, i = (o = be(e)).length; r < i; r++) Re(o[r], s[r]);
14972                            if (t)
14973                                if (n) for (o = o || be(e), s = s || be(a), r = 0, i = o.length; r < i; r++) Me(o[r], s[r]);
14974                                else Me(e, a);
14975                            return (s = be(a, "script")).length > 0 && we(s, !u && be(e, "script")), a;
14976                        },
14977                        cleanData: function (e) {
14978                            for (var t, n, r, i = S.event.special, o = 0; void 0 !== (n = e[o]); o++)
14979                                if (Q(n)) {
14980                                    if ((t = n[K.expando])) {
14981                                        if (t.events) for (r in t.events) i[r] ? S.event.remove(n, r) : S.removeEvent(n, r, t.handle);
14982                                        n[K.expando] = void 0;
14983                                    }
14984                                    n[Z.expando] && (n[Z.expando] = void 0);
14985                                }
14986                        },
14987                    }),
14988                        S.fn.extend({
14989                            detach: function (e) {
14990                                return Be(this, e, !0);
14991                            },
14992                            remove: function (e) {
14993                                return Be(this, e);
14994                            },
14995                            text: function (e) {
14996                                return z(
14997                                    this,
14998                                    function (e) {
14999                                        return void 0 === e
15000                                            ? S.text(this)
15001                                            : this.empty().each(function () {
15002                                                  (1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType) || (this.textContent = e);
15003                                              });
15004                                    },
15005                                    null,
15006                                    e,
15007                                    arguments.length
15008                                );
15009                            },
15010                            append: function () {
15011                                return Ie(this, arguments, function (e) {
15012                                    (1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType) || He(this, e).appendChild(e);
15013                                });
15014                            },
15015                            prepend: function () {
15016                                return Ie(this, arguments, function (e) {
15017                                    if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
15018                                        var t = He(this, e);
15019                                        t.insertBefore(e, t.firstChild);
15020                                    }
15021                                });
15022                            },
15023                            before: function () {
15024                                return Ie(this, arguments, function (e) {
15025                                    this.parentNode && this.parentNode.insertBefore(e, this);
15026                                });
15027                            },
15028                            after: function () {
15029                                return Ie(this, arguments, function (e) {
15030                                    this.parentNode && this.parentNode.insertBefore(e, this.nextSibling);
15031                                });
15032                            },
15033                            empty: function () {
15034                                for (var e, t = 0; null != (e = this[t]); t++) 1 === e.nodeType && (S.cleanData(be(e, !1)), (e.textContent = ""));
15035                                return this;
15036                            },
15037                            clone: function (e, t) {
15038                                return (
15039                                    (e = null != e && e),
15040                                    (t = null == t ? e : t),
15041                                    this.map(function () {
15042                                        return S.clone(this, e, t);
15043                                    })
15044                                );
15045                            },
15046                            html: function (e) {
15047                                return z(
15048                                    this,
15049                                    function (e) {
15050                                        var t = this[0] || {},
15051                                            n = 0,
15052                                            r = this.length;
15053                                        if (void 0 === e && 1 === t.nodeType) return t.innerHTML;
15054                                        if ("string" == typeof e && !je.test(e) && !xe[(me.exec(e) || ["", ""])[1].toLowerCase()]) {
15055                                            e = S.htmlPrefilter(e);
15056                                            try {
15057                                                for (; n < r; n++) 1 === (t = this[n] || {}).nodeType && (S.cleanData(be(t, !1)), (t.innerHTML = e));
15058                                                t = 0;
15059                                            } catch (e) {}
15060                                        }
15061                                        t && this.empty().append(e);
15062                                    },
15063                                    null,
15064                                    e,
15065                                    arguments.length
15066                                );
15067                            },
15068                            replaceWith: function () {
15069                                var e = [];
15070                                return Ie(
15071                                    this,
15072                                    arguments,
15073                                    function (t) {
15074                                        var n = this.parentNode;
15075                                        S.inArray(this, e) < 0 && (S.cleanData(be(this)), n && n.replaceChild(t, this));
15076                                    },
15077                                    e
15078                                );
15079                            },
15080                        }),
15081                        S.each({ appendTo: "append", prependTo: "prepe
15081nd", insertBefore: "before", insertAfter: "after", replaceAll: "replaceWith" }, function (e, t) {
15082                            S.fn[e] = function (e) {
15083                                for (var n, r = [], i = S(e), o = i.length - 1, s = 0; s <= o; s++) (n = s === o ? this : this.clone(!0)), S(i[s])[t](n), l.apply(r, n.get());
15084                                return this.pushStack(r);
15085                            };
15086                        });
15087                    var We = new RegExp("^(" + re + ")(?!px)[a-z%]+$", "i"),
15088                        Fe = /^--/,
15089                        $e = function (e) {
15090                            var t = e.ownerDocument.defaultView;
15091                            return (t && t.opener) || (t = r), t.getComputedStyle(e);
15092                        },
15093                        _e = function (e, t, n) {
15094                            var r,
15095                                i,
15096                                o = {};
15097                            for (i in t) (o[i] = e.style[i]), (e.style[i] = t[i]);
15098                            for (i in ((r = n.call(e)), t)) e.style[i] = o[i];
15099                            return r;
15100                        },
15101                        Ve = new RegExp(oe.join("|"), "i"),
15102                        ze = new RegExp("^[\\x20\\t\\r\\n\\f]+|((?:^|[^\\\\])(?:\\\\.)*)[\\x20\\t\\r\\n\\f]+$", "g");
15103                    function Ue(e, t, n) {
15104                        var r,
15105                            i,
15106                            o,
15107                            s,
15108                            a = Fe.test(t),
15109                            u = e.style;
15110                        return (
15111                            (n = n || $e(e)) &&
15112                                ((s = n.getPropertyValue(t) || n[t]),
15113                                a && (s = s.replace(ze, "$1")),
15114                                "" !== s || ae(e) || (s = S.style(e, t)),
15115                                !v.pixelBoxStyles() &&
15116                                    We.test(s) &&
15117                                    Ve.test(t) &&
15118                                    ((r = u.width), (i = u.minWidth), (o = u.maxWidth), (u.minWidth = u.maxWidth = u.width = s), (s = n.width), (u.width = r), (u.minWidth = i), (u.maxWidth = o))),
15119                            void 0 !== s ? s + "" : s
15120                        );
15121                    }
15122                    function Xe(e, t) {
15123                        return {
15124                            get: function () {
15125                                if (!e()) return (this.get = t).apply(this, arguments);
15126                                delete this.get;
15127                            },
15128                        };
15129                    }
15130                    !(function () {
15131                        function e() {
15132                            if (c) {
15133                                (l.style.cssText = "position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0"),
15134                                    (c.style.cssText = "position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%"),
15135                                    se.appendChild(l).appendChild(c);
15136                                var e = r.getComputedStyle(c);
15137                                (n = "1%" !== e.top),
15138                                    (u = 12 === t(e.marginLeft)),
15139                                    (c.style.right = "60%"),
15140                                    (s = 36 === t(e.right)),
15141                                    (i = 36 === t(e.width)),
15142                                    (c.style.position = "absolute"),
15143                                    (o = 12 === t(c.offsetWidth / 3)),
15144                                    se.removeChild(l),
15145                                    (c = null);
15146                            }
15147                        }
15148                        function t(e) {
15149                            return Math.round(parseFloat(e));
15150                        }
15151                        var n,
15152                            i,
15153                            o,
15154                            s,
15155                            a,
15156                            u,
15157                            l = x.createElement("div"),
15158                            c = x.createElement("div");
15159                        c.style &&
15160                            ((c.style.backgroundClip = "content-box"),
15161                            (c.cloneNode(!0).style.backgroundClip = ""),
15162                            (v.clearCloneStyle = "content-box" === c.style.backgroundClip),
15163                            S.extend(v, {
15164                                boxSizingReliable: function () {
15165                                    return e(), i;
15166                                },
15167                                pixelBoxStyles: function () {
15168                                    return e(), s;
15169                                },
15170                                pixelPosition: function () {
15171                                    return e(), n;
15172                                },
15173                                reliableMarginLeft: function () {
15174                                    return e(), u;
15175                                },
15176                                scrollboxSize: function () {
15177                                    return e(), o;
15178                                },
15179                                reliableTrDimensions: function () {
15180                                    var e, t, n, i;
15181                                    return (
15182                                        null == a &&
15183                                            ((e = x.createElement("table")),
15184                                            (t = x.createElement("tr")),
15185                                            (n = x.createElement("div")),
15186                                            (e.style.cssText = "position:absolute;
15186left:-11111px;border-collapse:separate"),
15187                                            (t.style.cssText = "border:1px solid"),
15188                                            (t.style.height = "1px"),
15189                                            (n.style.height = "9px"),
15190                                            (n.style.display = "block"),
15191                                            se.appendChild(e).appendChild(t).appendChild(n),
15192                                            (i = r.getComputedStyle(t)),
15193                                            (a = parseInt(i.height, 10) + parseInt(i.borderTopWidth, 10) + parseInt(i.borderBottomWidth, 10) === t.offsetHeight),
15194                                            se.removeChild(e)),
15195                                        a
15196                                    );
15197                                },
15198                            }));
15199                    })();
15200                    var Ge = ["Webkit", "Moz", "ms"],
15201                        Ye = x.createElement("div").style,
15202                        Qe = {};
15203                    function Je(e) {
15204                        var t = S.cssProps[e] || Qe[e];
15205                        return (
15206                            t ||
15207                            (e in Ye
15208                                ? e
15209                                : (Qe[e] =
15210                                      (function (e) {
15211                                          for (var t = e[0].toUpperCase() + e.slice(1), n = Ge.length; n--; ) if ((e = Ge[n] + t) in Ye) return e;
15212                                      })(e) || e))
15213                        );
15214                    }
15215                    var Ke = /^(none|table(?!-c[ea]).+)/,
15216                        Ze = { position: "absolute", visibility: "hidden", display: "block" },
15217                        et = { letterSpacing: "0", fontWeight: "400" };
15218                    function tt(e, t, n) {
15219                        var r = ie.exec(t);
15220                        return r ? Math.max(0, r[2] - (n || 0)) + (r[3] || "px") : t;
15221                    }
15222                    function nt(e, t, n, r, i, o) {
15223                        var s = "width" === t ? 1 : 0,
15224                            a = 0,
15225                            u = 0;
15226                        if (n === (r ? "border" : "content")) return 0;
15227                        for (; s < 4; s += 2)
15228                            "margin" === n && (u += S.css(e, n + oe[s], !0, i)),
15229                                r
15230                                    ? ("content" === n && (u -= S.css(e, "padding" + oe[s], !0, i)), "margin" !== n && (u -= S.css(e, "border" + oe[s] + "Width", !0, i)))
15231                                    : ((u += S.css(e, "padding" + oe[s], !0, i)), "padding" !== n ? (u += S.css(e, "border" + oe[s] + "Width", !0, i)) : (a += S.css(e, "border" + oe[s] + "Width", !0, i)));
15232                        return !r && o >= 0 && (u += Math.max(0, Math.ceil(e["offset" + t[0].toUpperCase() + t.slice(1)] - o - u - a - 0.5)) || 0), u;
15233                    }
15234                    function rt(e, t, n) {
15235                        var r = $e(e),
15236                            i = (!v.boxSizingReliable() || n) && "border-box" === S.css(e, "boxSizing", !1, r),
15237                            o = i,
15238                            s = Ue(e, t, r),
15239                            a = "offset" + t[0].toUpperCase() + t.slice(1);
15240                        if (We.test(s)) {
15241                            if (!n) return s;
15242                            s = "auto";
15243                        }
15244                        return (
15245                            ((!v.boxSizingReliable() && i) || (!v.reliableTrDimensions() && j(e, "tr")) || "auto" === s || (!parseFloat(s) && "inline" === S.css(e, "display", !1, r))) &&
15246                                e.getClientRects().length &&
15247                                ((i = "border-box" === S.css(e, "boxSizing", !1, r)), (o = a in e) && (s = e[a])),
15248                            (s = parseFloat(s) || 0) + nt(e, t, n || (i ? "border" : "content"), o, r, s) + "px"
15249                        );
15250                    }
15251                    function it(e, t, n, r, i) {
15252                        return new it.prototype.init(e, t, n, r, i);
15253                    }
15254                    S.extend({
15255                        cssHooks: {
15256                            opacity: {
15257                                get: function (e, t) {
15258                                    if (t) {
15259                                        var n = Ue(e, "opacity");
15260                                        return "" === n ? "1" : n;
15261                                    }
15262                                },
15263                            },
15264                        },
15265                        cssNumber: {
15266                            animationIterationCount: !0,
15267                            columnCount: !0,
15268                            fillOpacity: !0,
15269                            flexGrow: !0,
15270                            flexShrink: !0,
15271                            fontWeight: !0,
15272                            gridArea: !0,
15273                            gridColumn: !0,
15274                            gridColumnEnd: !0,
15275                            gridColumnStart: !0,
15276                            gridRow: !0,
15277                            gridRowEnd: !0,
15278                            gridRowStart: !0,
15279                            lineHeight: !0,
15280                            opacity: !0,
15281                            order: !0,
15282                            orphans: !0,
15283                            widows: !0,
15284                            zIndex: !0,
15285                            zoom: !0,
15286                        },
15287                        cssProps: {},
15288                        style: function (e, t, n, r) {
15289                            if (e && 3 !== e.nodeType && 8 !== e.nodeType && e.style) {
15290                                var i,
15291                                    o,
15292                                    s,
15293                                    a = Y(t),
15294                                    u = Fe.test(t),
15295                                    l = e.style;
15296                                if ((u || (t = Je(a)), (s = S.cssHooks[t] || S.cssHooks[a]), void 0 === n)) return s && "get" in s && void 0 !== (i = s.get(e, !1, r)) ? i : l[t];
15297                                "string" === (o = typeof n) && (i = ie.exec(n)) && i[1] && ((n = ce(e, t, i)), (o = "number")),
15298                                    null != n &&
15299                                        n == n &&
15300                                        ("number" !== o || u || (n += (i && i[3]) || (S.cssNumber[a] ? "" : "px")),
15301                                        v.clearCloneStyle || "" !== n || 0 !== t.indexOf("background") || (l[t] = "inherit"),
15302                                        (s && "set" in s && void 0 === (n = s.set(e, n, r))) || (u ? l.setProperty(t, n) : (l[t] = n)));
15303                            }
15304                        },
15305                        css: function (e, t, n, r) {
15306                            var i,
15307                                o,
15308                                s,
15309                                a = Y(t);
15310                            return (
15311                                Fe.test(t) || (t = Je(a)),
15312                                (s = S.cssHooks[t] || S.cssHooks[a]) && "get" in s && (i = s.get(e, !0, n)),
15313                                void 0 === i && (i = Ue(e, t, r)),
15314                                "normal" === i && t in et && (i = et[t]),
15315                                "" === n || n ? ((o = parseFloat(i)), !0 === n || isFinite(o) ? o || 0 : i) : i
15316                            );
15317                        },
15318                    }),
15319                        S.each(["height", "width"], function (e, t) {
15320                            S.cssHooks[t] = {
15321                                get: function (e, n, r) {
15322                                    if (n)
15323                                        return !Ke.test(S.css(e, "display")) || (e.getClientRects().length && e.getBoundingClientRect().width)
15324                                            ? rt(e, t, r)
15325                                            : _e(e, Ze, function () {
15326                                                  return rt(e, t, r);
15327                                              });
15328                                },
15329                                set: function (e, n, r) {
15330                                    var i,
15331                                        o = $e(e),
15332                                        s = !v.scrollboxSize() && "absolute" === o.position,
15333                                        a = (s || r) && "border-box" === S.css(e, "boxSizing", !1, o),
15334                                        u = r ? nt(e, t, r, a, o) : 0;
15335                                    return (
15336                                        a && s && (u -= Math.ceil(e["offset" + t[0].toUpperCase() + t.slice(1)] - parseFloat(o[t]) - nt(e, t, "border", !1, o) - 0.5)),
15337                                        u && (i = ie.exec(n)) && "px" !== (i[3] || "px") && ((e.style[t] = n), (n = S.css(e, t))),
15338                                        tt(0, n, u)
15339                                    );
15340                                },
15341                            };
15342                        }),
15343                        (S.cssHooks.marginLeft = Xe(v.reliableMarginLeft, function (e, t) {
15344                            if (t)
15345                                return (
15346                                    (parseFloat(Ue(e, "marginLeft")) ||
15347                                        e.getBoundingClientRect().left -
15348                                            _e(e, { marginLeft: 0 }, function () {
15349                                                return e.getBoundingClientRect().left;
15350                                            })) + "px"
15351                                );
15352                        })),
15353                        S.each({ margin: "", padding: "", border: "Width" }, function (e, t) {
15354                            (S.cssHooks[e + t] = {
15355                                expand: function (n) {
15356                                    for (var r = 0, i = {}, o = "string" == typeof n ? n.split(" ") : [n]; r < 4; r++) i[e + oe[r] + t] = o[r] || o[r - 2] || o[0];
15357                                    return i;
15358                                },
15359                            }),
15360                                "margin" !== e && (S.cssHooks[e + t].set = tt);
15361                        }),
15362                        S.fn.extend({
15363                            css: function (e, t) {
15364                                return z(
15365                                    this,
15366                                    function (e, t, n) {
15367                                        var r,
15368                                            i,
15369                                            o = {},
15370                                            s = 0;
15371                                        if (Array.isArray(t)) {
15372                                            for (r = $e(e), i = t.length; s < i; s++) o[t[s]] = S.css(e, t[s], !1, r);
15373                                            return o;
15374                                        }
15375                                        return void 0 !== n ? S.style(e, t, n) : S.css(e, t);
15376                                    },
15377                                    e,
15378                                    t,
15379                                    arguments.length > 1
15380                                );
15381                            },
15382                        }),
15383                        (S.Tween = it),
15384                        (it.prototype = {
15385                            constructor: it,
15386                            init: function (e, t, n, r, i, o) {
15387                                (this.elem = e), (this.prop = n), (this.easing = i || S.easing._default), (this.options = t), (this.start = this.now = this.cur()), (this.end = r), (this.unit = o || (S.cssNumber[n] ? "" : "px"));
15388                            },
15389                            cur: function () {
15390                                var e = it.propHooks[this.prop];
15391                                return e && e.get ? e.get(this) : it.propHooks._default.get(this);
15392                            },
15393                            run: function (e) {
15394                                var t,
15395                                    n = it.propHooks[this.prop];
15396                                return (
15397                                    this.options.duration ? (this.pos = t = S.easing[this.easing](e, this.options.duration * e, 0, 1, this.options.duration)) : (this.pos = t = e),
15398                                    (this.now = (this.end - this.start) * t + this.start),
15399                                    this.options.step && this.options.step.call(this.elem, this.now, this),
15400                                    n && n.set ? n.set(this) : it.propHooks._default.set(this),
15401                                    this
15402                                );
15403                            },
15404                        }),
15405                        (it.prototype.init.prototype = it.prototype),
15406                        (it.propHooks = {
15407                            _default: {
15408                                get: function (e) {
15409                                    var t;
15410                                    return 1 !== e.elem.nodeType || (null != e.elem[e.prop] && null == e.elem.style[e.prop]) ? e.elem[e.prop] : (t = S.css(e.elem, e.prop, "")) && "auto" !== t ? t : 0;
15411                                },
15412                                set: function (e) {
15413                                    S.fx.step[e.prop] ? S.fx.step[e.prop](e) : 1 !== e.elem.nodeType || (!S.cssHooks[e.prop] && null == e.elem.style[Je(e.prop)]) ? (e.elem[e.prop] = e.now) : S.style(e.elem, e.prop, e.now + e.unit);
15414                                },
15415                            },
15416                        }),
15417                        (it.propHooks.scrollTop = it.propHooks.scrollLeft = {
15418                            set: function (e) {
15419                                e.elem.nodeType && e.elem.parentNode && (e.elem[e.prop] = e.now);
15420                            },
15421                        }),
15422                        (S.easing = {
15423                            linear: function (e) {
15424                                return e;
15425                            },
15426                            swing: function (e) {
15427                                return 0.5 - Math.cos(e * Math.PI) / 2;
15428                            },
15429                            _default: "swing",
15430                        }),
15431                        (S.fx = it.prototype.init),
15432                        (S.fx.step = {});
15433                    var ot,
15434                        st,
15435                        at = /^(?:toggle|show|hide)$/,
15436                        ut = /queueHooks$/;
15437                    function lt() {
15438                        st && (!1 === x.hidden && r.requestAnimationFrame ? r.requestAnimationFrame(lt) : r.setTimeout(lt, S.fx.interval), S.fx.tick());
15439                    }
15440                    function ct() {
15441                        return (
15442                            r.setTimeout(function () {
15443                                ot = void 0;
15444                            }),
15445                            (ot = Date.now())
15446                        );
15447                    }
15448                    function ft(e, t) {
15449                        var n,
15450                            r = 0,
15451                            i = { height: e };
15452                        for (t = t ? 1 : 0; r < 4; r += 2 - t) i["margin" + (n = oe[r])] = i["padding" + n] = e;
15453                        return t && (i.opacity = i.width = e), i;
15454                    }
15455                    function pt(e, t, n) {
15456                        for (var r, i = (dt.tweeners[t] || []).concat(dt.tweeners["*"]), o = 0, s = i.length; o < s; o++) if ((r = i[o].call(n, t, e))) return r;
15457                    }
15458                    function dt(e, t, n) {
15459                        var r,
15460                            i,
15461                            o = 0,
15462                            s = dt.prefilters.length,
15463                            a = S.Deferred().always(function () {
15464                                delete u.elem;
15465                            }),
15466                            u = function () {
15467                                if (i) return !1;
15468                                for (var t = ot || ct(), n = Math.max(0, l.startTime + l.duration - t), r = 1 - (n / l.duration || 0), o = 0, s = l.tweens.length; o < s; o++) l.tweens[o].run(r);
15469                                return a.notifyWith(e, [l, r, n]), r < 1 && s ? n : (s || a.notifyWith(e, [l, 1, 0]), a.resolveWith(e, [l]), !1);
15470                            },
15471                            l = a.promise({
15472                                elem: e,
15473                                props: S.extend({}, t),
15474                                opts: S.extend(!0, { specialEasing: {}, easing: S.easing._default }, n),
15475                                originalProperties: t,
15476                                originalOptions: n,
15477                                startTime: ot || ct(),
15478                                duration: n.duration,
15479                                tweens: [],
15480                                createTween: function (t, n) {
15481                                    var r = S.Tween(e, l.opts, t, n, l.opts.specialEasing[t] || l.opts.easing);
15482                                    return l.tweens.push(r), r;
15483                                },
15484                                stop: function (t) {
15485                                    var n = 0,
15486                                        r = t ? l.tweens.length : 0;
15487                                    if (i) return this;
15488                                    for (i = !0; n < r; n++) l.tweens[n].run(1);
15489                                    return t ? (a.notifyWith(e, [l, 1, 0]), a.resolveWith(e, [l, t])) : a.rejectWith(e, [l, t]), this;
15490                                },
15491                            }),
15492                            c = l.props;
15493                        for (
15494                            !(function (e, t) {
15495                                var n, r, i, o, s;
15496                                for (n in e)
15497                                    if (((i = t[(r = Y(n))]), (o = e[n]), Array.isArray(o) && ((i = o[1]), (o = e[n] = o[0])), n !== r && ((e[r] = o), delete e[n]), (s = S.cssHooks[r]) && ("exp
15497and" in s)))
15498                                        for (n in ((o = s.expand(o)), delete e[r], o)) (n in e) || ((e[n] = o[n]), (t[n] = i));
15499                                    else t[r] = i;
15500                            })(c, l.opts.specialEasing);
15501                            o < s;
15502                            o++
15503                        )
15504                            if ((r = dt.prefilters[o].call(l, e, c, l.opts))) return m(r.stop) && (S._queueHooks(l.elem, l.opts.queue).stop = r.stop.bind(r)), r;
15505                        return (
15506                            S.map(c, pt, l),
15507                            m(l.opts.start) && l.opts.start.call(e, l),
15508                            l.progress(l.opts.progress).done(l.opts.done, l.opts.complete).fail(l.opts.fail).always(l.opts.always),
15509                            S.fx.timer(S.extend(u, { elem: e, anim: l, queue: l.opts.queue })),
15510                            l
15511                        );
15512                    }
15513                    (S.Animation = S.extend(dt, {
15514                        tweeners: {
15515                            "*": [
15516                                function (e, t) {
15517                                    var n = this.createTween(e, t);
15518                                    return ce(n.elem, e, ie.exec(t), n), n;
15519                                },
15520                            ],
15521                        },
15522                        tweener: function (e, t) {
15523                            m(e) ? ((t = e), (e = ["*"])) : (e = e.match(I));
15524                            for (var n, r = 0, i = e.length; r < i; r++) (n = e[r]), (dt.tweeners[n] = dt.tweeners[n] || []), dt.tweeners[n].unshift(t);
15525                        },
15526                        prefilters: [
15527                            function (e, t, n) {
15528                                var r,
15529                                    i,
15530                                    o,
15531                                    s,
15532                                    a,
15533                                    u,
15534                                    l,
15535                                    c,
15536                                    f = "width" in t || "height" in t,
15537                                    p = this,
15538                                    d = {},
15539                                    h = e.style,
15540                                    g = e.nodeType && le(e),
15541                                    v = K.get(e, "fxshow");
15542                                for (r in (n.queue ||
15543                                    (null == (s = S._queueHooks(e, "fx")).unqueued &&
15544                                        ((s.unqueued = 0),
15545                                        (a = s.empty.fire),
15546                                        (s.empty.fire = function () {
15547                                            s.unqueued || a();
15548                                        })),
15549                                    s.unqueued++,
15550                                    p.always(function () {
15551                                        p.always(function () {
15552                                            s.unqueued--, S.queue(e, "fx").length || s.empty.fire();
15553                                        });
15554                                    })),
15555                                t))
15556                                    if (((i = t[r]), at.test(i))) {
15557                                        if ((delete t[r], (o = o || "toggle" === i), i === (g ? "hide" : "show"))) {
15558                                            if ("show" !== i || !v || void 0 === v[r]) continue;
15559                                            g = !0;
15560                                        }
15561                                        d[r] = (v && v[r]) || S.style(e, r);
15562                                    }
15563                                if ((u = !S.isEmptyObject(t)) || !S.isEmptyObject(d))
15564                                    for (r in (f &&
15565                                        1 === e.nodeType &&
15566                                        ((n.overflow = [h.overflow, h.overflowX, h.overflowY]),
15567                                        null == (l = v && v.display) && (l = K.get(e, "display")),
15568                                        "none" === (c = S.css(e, "display")) && (l ? (c = l) : (de([e], !0), (l = e.style.display || l), (c = S.css(e, "display")), de([e]))),
15569                                        ("inline" === c || ("inline-block" === c && null != l)) &&
15570                                            "none" === S.css(e, "float") &&
15571                                            (u ||
15572                                                (p.done(function () {
15573                                                    h.display = l;
15574                                                }),
15575                                                null == l && ((c = h.display), (l = "none" === c ? "" : c))),
15576                                            (h.display = "inline-block"))),
15577                                    n.overflow &&
15578                                        ((h.overflow = "hidden"),
15579                                        p.always(function () {
15580                                            (h.overflow = n.overflow[0]), (h.overflowX = n.overflow[1]), (h.overflowY = n.overflow[2]);
15581                                        })),
15582                                    (u = !1),
15583                                    d))
15584                                        u ||
15585                                            (v ? "hidden" in v && (g = v.hidden) : (v = K.access(e, "fxshow", { display: l })),
15586                                            o && (v.hidden = !g),
15587                                            g && de([e], !0),
15588                                            p.done(function () {
15589                                                for (r in (g || de([e]), K.remove(e, "fxshow"), d)) S.style(e, r, d[r]);
15590                                            })),
15591                                            (u = pt(g ? v[r] : 0, r, p)),
15592                                            r in v || ((v[r] = u.start), g && ((u.end = u.start), (u.start = 0)));
15593                            },
15594                        ],
15595                        prefilter: function (e, t) {
15596                            t ? dt.prefilters.unshift(e) : dt.prefilters.push(e);
15597                        },
15598                    })),
15599                        (S.speed = function (e, t, n) {
15600                            var r = e && "object" == typeof e ? S.extend({}, e) : { complete: n || (!n && t) || (m(e) && e), duration: e, easing: (n && t) || (t && !m(t) && t) };
15601                            return (
15602                                S.fx.off ? (r.duration = 0) : "number" != typeof r.duration && (r.duration in S.fx.speeds ? (r.duration = S.fx.speeds[r.duration]) : (r.duration = S.fx.speeds._default)),
15603                                (null != r.queue && !0 !== r.queue) || (r.queue = "fx"),
15604                                (r.old = r.complete),
15605                                (r.complete = function () {
15606                                    m(r.old) && r.old.call(this), r.queue && S.dequeue(this, r.queue);
15607                                }),
15608                                r
15609                            );
15610                        }),
15611                        S.fn.extend({
15612                            fadeTo: function (e, t, n, r) {
15613                                return this.filter(le).css("opacity", 0).show().end().animate({ opacity: t }, e, n, r);
15614                            },
15615                            animate: function (e, t, n, r) {
15616                                var i = S.isEmptyObject(e),
15617                                    o = S.speed(t, n, r),
15618                                    s = function () {
15619                                        var t = dt(this, S.extend({}, e), o);
15620                                        (i || K.get(this, "finish")) && t.stop(!0);
15621                                    };
15622                                return (s.finish = s), i || !1 === o.queue ? this.each(s) : this.queue(o.queue, s);
15623                            },
15624                            stop: function (e, t, n) {
15625                                var r = function (e) {
15626                                    var t = e.stop;
15627                                    delete e.stop, t(n);
15628                                };
15629                                return (
15630                                    "string" != typeof e && ((n = t), (t = e), (e = void 0)),
15631                                    t && this.queue(e || "fx", []),
15632                                    this.each(function () {
15633                                        var t = !0,
15634                                            i = null != e && e + "queueHooks",
15635                                            o = S.timers,
15636                                            s = K.get(this);
15637                                        if (i) s[i] && s[i].stop && r(s[i]);
15638                                        else for (i in s) s[i] && s[i].stop && ut.test(i) && r(s[i]);
15639                                        for (i = o.length; i--; ) o[i].elem !== this || (null != e && o[i].queue !== e) || (o[i].anim.stop(n), (t = !1), o.splice(i, 1));
15640                                        (!t && n) || S.dequeue(this, e);
15641                                    })
15642                                );
15643                            },
15644                            finish: function (e) {
15645                                return (
15646                                    !1 !== e && (e = e || "fx"),
15647                                    this.each(function () {
15648                                        var t,
15649                                            n = K.get(this),
15650                                            r = n[e + "queue"],
15651                                            i = n[e + "queueHooks"],
15652                                            o = S.timers,
15653                                            s = r ? r.length : 0;
15654                                        for (n.finish = !0, S.queue(this, e, []), i && i.stop && i.stop.call(this, !0), t = o.length; t--; ) o[t].elem === this && o[t].queue === e && (o[t].anim.stop(!0), o.splice(t, 1));
15655                                        for (t = 0; t < s; t++) r[t] && r[t].finish && r[t].finish.call(this);
15656                                        delete n.finish;
15657                                    })
15658                                );
15659                            },
15660                        }),
15661                        S.each(["toggle", "show", "hide"], function (e, t) {
15662                            var n = S.fn[t];
15663                            S.fn[t] = function (e, r, i) {
15664                                return null == e || "boolean" == typeof e ? n.apply(this, arguments) : this.animate(ft(t, 
15664!0), e, r, i);
15665                            };
15666                        }),
15667                        S.each({ slideDown: ft("show"), slideUp: ft("hide"), slideToggle: ft("toggle"), fadeIn: { opacity: "show" }, fadeOut: { opacity: "hide" }, fadeToggle: { opacity: "toggle" } }, function (e, t) {
15668                            S.fn[e] = function (e, n, r) {
15669                                return this.animate(t, e, n, r);
15670                            };
15671                        }),
15672                        (S.timers = []),
15673                        (S.fx.tick = function () {
15674                            var e,
15675                                t = 0,
15676                                n = S.timers;
15677                            for (ot = Date.now(); t < n.length; t++) (e = n[t])() || n[t] !== e || n.splice(t--, 1);
15678                            n.length || S.fx.stop(), (ot = void 0);
15679                        }),
15680                        (S.fx.timer = function (e) {
15681                            S.timers.push(e), S.fx.start();
15682                        }),
15683                        (S.fx.interval = 13),
15684                        (S.fx.start = function () {
15685                            st || ((st = !0), lt());
15686                        }),
15687                        (S.fx.stop = function () {
15688                            st = null;
15689                        }),
15690                        (S.fx.speeds = { slow: 600, fast: 200, _default: 400 }),
15691                        (S.fn.delay = function (e, t) {
15692                            return (
15693                                (e = (S.fx && S.fx.speeds[e]) || e),
15694                                (t = t || "fx"),
15695                                this.queue(t, function (t, n) {
15696                                    var i = r.setTimeout(t, e);
15697                                    n.stop = function () {
15698                                        r.clearTimeout(i);
15699                                    };
15700                                })
15701                            );
15702                        }),
15703                        (function () {
15704                            var e = x.createElement("input"),
15705                                t = x.createElement("select").appendChild(x.createElement("option"));
15706                            (e.type = "checkbox"), (v.checkOn = "" !== e.value), (v.optSelected = t.selected), ((e = x.createElement("input")).value = "t"), (e.type = "radio"), (v.radioValue = "t" === e.value);
15707                        })();
15708                    var ht,
15709                        gt = S.expr.attrHandle;
15710                    S.fn.extend({
15711                        attr: function (e, t) {
15712                            return z(this, S.attr, e, t, arguments.length > 1);
15713                        },
15714                        removeAttr: function (e) {
15715                            return this.each(function () {
15716                                S.removeAttr(this, e);
15717                            });
15718                        },
15719                    }),
15720                        S.extend({
15721                            attr: function (e, t, n) {
15722                                var r,
15723                                    i,
15724                                    o = e.nodeType;
15725                                if (3 !== o && 8 !== o && 2 !== o)
15726                                    return void 0 === e.getAttribute
15727                                        ? S.prop(e, t, n)
15728                                        : ((1 === o && S.isXMLDoc(e)) || (i = S.attrHooks[t.toLowerCase()] || (S.expr.match.bool.test(t) ? ht : void 0)),
15729                                          void 0 !== n
15730                                              ? null === n
15731                                                  ? void S.removeAttr(e, t)
15732                                                  : i && "set" in i && void 0 !== (r = i.set(e, n, t))
15733                                                  ? r
15734                                                  : (e.setAttribute(t, n + ""), n)
15735                                              : i && "get" in i && null !== (r = i.get(e, t))
15736                                              ? r
15737                                              : null == (r = S.find.attr(e, t))
15738                                              ? void 0
15739                                              : r);
15740                            },
15741                            attrHooks: {
15742                                type: {
15743                                    set: function (e, t) {
15744                                        if (!v.radioValue && "radio" === t && j(e, "input")) {
15745                                            var n = e.value;
15746                                            return e.setAttribute("type", t), n && (e.value = n), t;
15747                                        }
15748                                    },
15749                                },
15750                            },
15751                            removeAttr: function (e, t) {
15752                                var n,
15753                                    r = 0,
15754                                    i = t && t.match(I);
15755                                if (i && 1 === e.nodeType) for (; (n = i[r++]); ) e.removeAttribute(n);
15756                            },
15757                        }),
15758                        (ht = {
15759                            set: function (e, t, n) {
15760                                return !1 === t ? S.removeAttr(e, n) : e.setAttribute(n, n), n;
15761                            },
15762                        }),
15763                        S.each(S.expr.match.bool.source.match(/\w+/g), function (e, t) {
15764                            var n = gt[t] || S.find.attr;
15765                            gt[t] = function (e, t, r) {
15766                                var i,
15767                                    o,
15768                                    s = t.toLowerCase();
15769                                return r || ((o = gt[s]), (gt[s] = i), (i = null != n(e, t, r) ? s : null), (gt[s] = o)), i;
15770                            };
15771                        });
15772                    var vt = /^(?:input|select|textarea|button)$/i,
15773                        mt = /^(?:a|area)$/i;
15774                    function yt(e) {
15775                        return (e.match(I) || []).join(" ");
15776                    }
15777                    function xt(e) {
15778                        return (e.getAttribute && e.getAttribute("class")) || "";
15779                    }
15780                    function bt(e) {
15781                        return Array.isArray(e) ? e : ("string" == typeof e && e.match(I)) || [];
15782                    }
15783                    S.fn.extend({
15784                        prop: function (e, t) {
15785                            return z(this, S.prop, e, t, arguments.length > 1);
15786                        },
15787                        removeProp: function (e) {
15788                            return this.each(function () {
15789                                delete this[S.propFix[e] || e];
15790                            });
15791                        },
15792                    }),
15793                        S.extend({
15794                            prop: function (e, t, n) {
15795                                var r,
15796                                    i,
15797                                    o = e.nodeType;
15798                                if (3 !== o && 8 !== o && 2 !== o)
15799                                    return (
15800                                        (1 === o && S.isXMLDoc(e)) || ((t = S.propFix[t] || t), (i = S.propHooks[t])),
15801                                        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]
15802                                    );
15803                            },
15804                            propHooks: {
15805                                tabIndex: {
15806                                    get: function (e) {
15807                                        var t = S.find.attr(e, "tabindex");
15808                                        return t ? parseInt(t, 10) : vt.test(e.nodeName) || (mt.test(e.nodeName) && e.href) ? 0 : -1;
15809                                    },
15810                                },
15811                            },
15812                            propFix: { for: "htmlFor", class: "className" },
15813                        }),
15814                        v.optSelected ||
15815                            (S.propHooks.selected = {
15816                                get: function (e) {
15817                                    var t = e.parentNode;
15818                                    return t && t.parentNode && t.parentNode.selectedIndex, null;
15819                                },
15820                                set: function (e) {
15821                                    var t = e.parentNode;
15822                                    t && (t.selectedIndex, t.parentNode && t.parentNode.selectedIndex);
15823                                },
15824                            }),
15825                        S.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], function () {
15826                            S.propFix[this.toLowerCase()] = this;
15827                        }),
15828                        S.fn.extend({
15829                            addClass: function (e) {
15830                                var t, n, r, i, o, s;
15831                                return m(e)
15832                                    ? this.each(function (t) {
15833                                          S(this).addClass(e.call(this, t, xt(this)));
15834                                      })
15835                                    : (t = bt(e)).length
15836                                    ? this.each(function () {
15837                                          if (((r = xt(this)), (n = 1 === this.nodeType && " " + yt(r) + " "))) {
15838                                              for (o = 0; o < t.length; o++) (i = t[o]), n.indexOf(" " + i + " ") < 0 && (n += i + " ");
15839                                              (s = yt(n)), r !== s && this.setAttribute("class", s);
15840                                          }
15841                                      })
15842                                    : this;
15843                            },
15844                            removeClass: function (e) {
15845                                var t, n, r, i, o, s;
15846                                return m(e)
15847                                    ? this.each(function (t) {
15848                                          S(this).removeClass(e.call(this, t, xt(this)));
15849                                      })
15850                                    : arguments.length
15851                                    ? (t = bt(e)).length
15852                                        ? this.each(function () {
15853                                              if (((r = xt(this)), (n = 1 === this.nodeType && " " + yt(r) + " "))) {
15854                                                  for (o = 0; o < t.length; o++) for (i = t[o]; n.indexOf(" " + i + " ") > -1; ) n = n.replace(" " + i + " ", " ");
15855                                                  (s = yt(n)), r !== s && this.setAttribute("class", s);
15856                                              }
15857                                          })
15858                                        : this
15859                                    : this.attr("class", "");
15860                            },
15861                            toggleClass: function (e, t) {
15862                                var n,
15863                                    r,
15864                                    i,
15865                                    o,
15866                                    s = typeof e,
15867                                    a = "string" === s || Array.isArray(e);
15868                                return m(e)
15869                                    ? this.each(function (n) {
15870                                          S(this).toggleClass(e.call(this, n, xt(this), t), t);
15871                                      })
15872                                    : "boolean" == typeof t && a
15873                                    ? t
15874                                        ? this.addClass(e)
15875                                        : this.removeClass(e)
15876                                    : ((n = bt(e)),
15877                                      this.each(function () {
15878                                          if (a) for (o = S(this), i = 0; i < n.length; i++) (r = n[i]), o.hasClass(r) ? o.removeClass(r) : o.addClass(r);
15879                                          else
15880                                              (void 0 !== e && "boolean" !== s) ||
15881                                                  ((r = xt(this)) && K.set(this, "__className__", r), this.setAttribute && this.setAttribute("class", r || !1 === e ? "" : K.get(this, "__className__") || ""));
15882                                      }));
15883                            },
15884                            hasClass: function (e) {
15885                                var t,
15886                                    n,
15887                                    r = 0;
15888                                for (t = " " + e + " "; (n = this[r++]); ) if (1 === n.nodeType && (" " + yt(xt(n)) + " ").indexOf(t) > -1) return !0;
15889                                return !1;
15890                            },
15891                        });
15892                    var wt = /\r/g;
15893                    S.fn.extend({
15894                        val: function (e) {
15895                            var t,
15896                                n,
15897                                r,
15898                                i = this[0];
15899                            return arguments.length
15900                                ? ((r = m(e)),
15901                                  this.each(function (n) {
15902                                      var i;
15903                                      1 === this.nodeType &&
15904                                          (null == (i = r ? e.call(this, n, S(this).val()) : e)
15905                                              ? (i = "")
15906                                              : "number" == typeof i
15907                                              ? (i += "")
15908                                              : Array.isArray(i) &&
15909                                                (i = S.map(i, function (e) {
15910                                                    return null == e ? "" : e + "";
15911                                                })),
15912                                          ((t = S.valHooks[this.type] || S.valHooks[this.nodeName.toLowerCase()]) && "set" in t && void 0 !== t.set(this, i, "value")) || (this.value = i));
15913                                  }))
15914                                : i
15915                                ? (t = S.valHooks[i.type] || S.valHooks[i.nodeName.toLowerCase()]) && "get" in t && void 0 !== (n = t.get(i, "value"))
15916                                    ? n
15917                                    : "string" == typeof (n = i.value)
15918                                    ? n.replace(wt, "")
15919                                    : null == n
15920                                    ? ""
15921                                    : n
15922                                : void 0;
15923                        },
15924                    }),
15925                        S.extend({
15926                            valHooks: {
15927                                option: {
15928                                    get: function (e) {
15929                                        var t = S.find.attr(e, "value");
15930                                        return null != t ? t : yt(S.text(e));
15931                                    },
15932                                },
15933                                select: {
15934                                    get: function (e) {
15935                                        var t,
15936                                            n,
15937                                            r,
15938                                            i = e.options,
15939                                            o = e.selectedIndex,
15940                                            s = "select-one" === e.type,
15941                                            a = s ? null : [],
15942                                            u = s ? o + 1 : i.length;
15943                                        for (r = o < 0 ? u : s ? o : 0; r < u; r++)
15944                                            if (((n = i[r]).selected || r === o) && !n.disabled && (!n.parentNode.disabled || !j(n.parentNode, "optgroup"))) {
15945                                                if (((t = S(n).val()), s)) return t;
15946                                                a.push(t);
15947                                            }
15948                                        return a;
15949                                    },
15950                                    set: function (e, t) {
15951                                        for (var n, r, i = e.options, o = S.makeArray(t), s = i.length; s--; ) ((r = i[s]).selected = S.inArray(S.valHooks.option.get(r), o) > -1) && (n = !0);
15952                                        return n || (e.selectedIndex = -1), o;
15953                                    },
15954                                },
15955                            },
15956                        }),
15957                        S.each(["radio", "checkbox"], function () {
15958                            (S.valHooks[this] = {
15959                                set: function (e, t) {
15960                                    if (Array.isArray(t)) return (e.checked = S.inArray(S(e).val(), t) > -1);
15961                                },
15962                            }),
15963                                v.checkOn ||
15964                                    (S.valHooks[this].get = function (e) {
15965                                        return null === e.getAttribute("value") ? "on" : e.value;
15966                                    });
15967                        }),
15968                        (v.focusin = "onfocusin" in r);
15969                    var Tt = /^(?:focusinfocus|focusoutblur)$/,
15970                        Ct = function (e) {
15971                            e.stopPropagation();
15972                        };
15973                    S.extend(S.event, {
15974                        trigger: function (e, t, n, i) {
15975                            var o,
15976                                s,
15977                                a,
15978                                u,
15979                                l,
15980                                c,
15981                                f,
15982                                p,
15983                                h = [n || x],
15984                                g = d.call(e, "type") ? e.type : e,
15985                                v = d.call(e, "namespace") ? e.namespace.split(".") : [];
15986                            if (
15987                                ((s = p = a = n = n || x),
15988                                3 !== n.nodeType &&
15989                                    8 !== n.nodeType &&
15990                                    !Tt.test(g + S.event.triggered) &&
15991                                    (g.indexOf(".") > -1 && ((v = g.split(".")), (g = v.shift()), v.sort()),
15992                                    (l = g.indexOf(":") < 0 && "on" 
15992+ g),
15993                                    ((e = e[S.expando] ? e : new S.Event(g, "object" == typeof e && e)).isTrigger = i ? 2 : 3),
15994                                    (e.namespace = v.join(".")),
15995                                    (e.rnamespace = e.namespace ? new RegExp("(^|\\.)" + v.join("\\.(?:.*\\.|)") + "(\\.|$)") : null),
15996                                    (e.result = void 0),
15997                                    e.target || (e.target = n),
15998                                    (t = null == t ? [e] : S.makeArray(t, [e])),
15999                                    (f = S.event.special[g] || {}),
16000                                    i || !f.trigger || !1 !== f.trigger.apply(n, t)))
16001                            ) {
16002                                if (!i && !f.noBubble && !y(n)) {
16003                                    for (u = f.delegateType || g, Tt.test(u + g) || (s = s.parentNode); s; s = s.parentNode) h.push(s), (a = s);
16004                                    a === (n.ownerDocument || x) && h.push(a.defaultView || a.parentWindow || r);
16005                                }
16006                                for (o = 0; (s = h[o++]) && !e.isPropagationStopped(); )
16007                                    (p = s),
16008                                        (e.type = o >
16008 1 ? u : f.bindType || g),
16009                                        (c = (K.get(s, "events") || Object.create(null))[e.type] && K.get(s, "handle")) && c.apply(s, t),
16010                                        (c = l && s[l]) && c.apply && Q(s) && ((e.result = c.apply(s, t)), !1 === e.result && e.preventDefault());
16011                                return (
16012                                    (e.type = g),
16013                                    i ||
16014                                        e.isDefaultPrevented() ||
16015                                        (f._default && !1 !== f._default.apply(h.pop(), t)) ||
16016                                        !Q(n) ||
16017                                        (l &&
16018                                            m(n[g]) &&
16019                                            !y(n) &&
16020                                            ((a = n[l]) && (n[l] = null),
16021                                            (S.event.triggered = g),
16022                                            e.isPropagationStopped() && p.addEventListener(g, Ct),
16023                                            n[g](),
16024                                            e.isPropagationStopped() && p.removeEventListener(g, Ct),
16025                                            (S.event.triggered = void 0),
16026                                            a && (n[l] = a))),
16027                                    e.result
16028                                );
16029                            }
16030                        },
16031                        simulate: function (e, t, n) {
16032                            var r = S.extend(new S.Event(), n, { type: e, isSimulated: !0 });
16033                            S.event.trigger(r, null, t);
16034                        },
16035                    }),
16036                        S.fn.extend({
16037                            trigger: function (e, t) {
16038                                return this.each(function () {
16039                                    S.event.trigger(e, t, this);
16040                                });
16041                            },
16042                            triggerHandler: function (e, t) {
16043                                var n = this[0];
16044                                if (n) return S.event.trigger(e, t, n, !0);
16045                            },
16046                        }),
16047                        v.focusin ||
16048                            S.each({ focus: "focusin", blur: "focusout" }, function (e, t) {
16049                                var n = function (e) {
16050                                    S.event.simulate(t, e.target, S.event.fix(e));
16051                                };
16052                                S.event.special[t] = {
16053                                    setup: function () {
16054                                        var r = this.ownerDocument || this.document || this,
16055                                            i = K.access(r, t);
16056                                        i || r.addEventListener(e, n, !0), K.access(r, t, (i || 0) + 1);
16057                                    },
16058                                    teardown: function () {
16059                                        var r = this.ownerDocument || this.document || this,
16060                                            i = K.access(r, t) - 1;
16061                                        i ? K.access(r, t, i) : (r.removeEventListener(e, n, !0), K.remove(r, t));
16062                                    },
16063                                };
16064                            });
16065                    var St = r.location,
16066                        Et = { guid: Date.now() },
16067                        At = /\?/;
16068                    S.parseXML = function (e) {
16069                        var t, n;
16070                        if (!e || "string" != typeof e) return null;
16071                        try {
16072                            t = new r.DOMParser().parseFromString(e, "text/xml");
16073                        } catch (e) {}
16074                        return (
16075                            (n = t && t.getElementsByTagName("parsererror")[0]),
16076                            (t && !n) ||
16077                                S.error(
16078                                    "Invalid XML: " +
16079                                        (n
16080                                            ? S.map(n.childNodes, function (e) {
16081                                                  return e.textContent;
16082                                              }).join("\n")
16083                                            : e)
16084                                ),
16085                            t
16086                        );
16087                    };
16088                    var kt = /\[\]$/,
16089                        Nt = /\r?\n/g,
16090                        Dt = /^(?:submit|button|image|reset|file)$/i,
16091                        jt = /^(?:input|select|textarea|keygen)/i;
16092                    function qt(e, t, n, r) {
16093                        var i;
16094                        if (Array.isArray(t))
16095                            S.each(t, function (t, i) {
16096                                n || kt.test(e) ? r(e, i) : qt(e + "[" + ("object" == typeof i && null != i ? t : "") + "]", i, n, r);
16097                            });
16098                        else if (n || "object" !== T(t)) r(e, t);
16099                        else for (i in t) qt(e + "[" + i + "]", t[i], n, r);
16100                    }
16101                    (S.param = function (e, t) {
16102                        var n,
16103                            r = [],
16104                            i = function (e, t) {
16105                                var n = m(t) ? t() : t;
16106                                r[r.length] = encodeURIComponent(e) + "=" + encodeURIComponent(null == n ? "" : n);
16107                            };
16108                        if (null == e) return "";
16109                        if (Array.isArray(e) || (e.jquery && !S.isPlainObject(e)))
16110                            S.each(e, function () {
16111                                i(this.name, this.value);
16112                            });
16113                        else for (n in e) qt(n, e[n], t, i);
16114                        return r.join("&");
16115                    }),
16116                        S.fn.extend({
16117                            serialize: function () {
16118                                return S.param(this.serializeArray());
16119                            },
16120                            serializeArray: function () {
16121                                return this.map(function () {
16122                                    var e = S.prop(this, "elements");
16123                                    return e ? S.makeArray(e) : this;
16124                                })
16125                                    .filter(function () {
16126                                        var e = this.type;
16127                                        return this.name && !S(this).is(":disabled") && jt.test(this.nodeName) && !Dt.test(e) && (this.checked || !ve.test(e));
16128                                    })
16129                                    .map(function (e, t) {
16130                                        var n = S(this).val();
16131                                        return null == n
16132                                            ? null
16133                                            : Array.isArray(n)
16134                                            ? S.map(n, function (e) {
16135                                                  return { name: t.name, value: e.replace(Nt, "\r\n") };
16136                                              })
16137                                            : { name: t.name, value: n.replace(Nt, "\r\n") };
16138                                    })
16139                                    .get();
16140                            },
16141                        });
16142                    var Lt = /%20/g,
16143                        Ht = /#.*$/,
16144                        Pt = /([?&])_=[^&]*/,
16145                        Ot = /^(.*?):[ \t]*([^\r\n]*)$/gm,
16146                        Mt = /^(?:GET|HEAD)$/,
16147                        Rt = /^\/\//,
16148                        It = {},
16149                        Bt = {},
16150                        Wt = "*/".concat("*"),
16151                        Ft = x.createElement("a");
16152                    function $t(e) {
16153                        return function (t, n) {
16154                            "string" != typeof t && ((n = t), (t = "*"));
16155                            var r,
16156                                i = 0,
16157                                o = t.toLowerCase().match(I) || [];
16158                            if (m(n)) for (; (r = o[i++]); ) "+" === r[0] ? ((r = r.slice(1) || "*"), (e[r] = e[r] || []).unshift(n)) : (e[r] = e[r] || []).push(n);
16159                        };
16160                    }
16161                    function _t(e, t, n, r) {
16162                        var i = {},
16163                            o = e === Bt;
16164                        function s(a) {
16165                            var u;
16166                            return (
16167                                (i[a] = !0),
16168                                S.each(e[a] || [], function (e, a) {
16169                                    var l = a(t, n, r);
16170                                    return "string" != typeof l || o || i[l] ? (o ? !(u = l) : void 0) : (t.dataTypes.unshift(l), s(l), !1);
16171                                }),
16172                                u
16173                            );
16174                        }
16175                        return s(t.dataTypes[0]) || (!i["*"] && s("*"));
16176                    }
16177                    function Vt(e, t) {
16178                        var n,
16179                            r,
16180                            i = S.ajaxSettings.flatOptions || {};
16181                        for (n in t) void 0 !== t[n] && ((i[n] ? e : r || (r = {}))[n] = t[n]);
16182                        return r && S.extend(!0, e, r), e;
16183                    }
16184                    (Ft.href = St.href),
16185                        S.extend({
16186                            active: 0,
16187                            lastModified: {},
16188                            etag: {},
16189                            ajaxSettings: {
16190                                url: St.href,
16191                                type: "GET",
16192                                isLocal: /^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(St.protocol),
16193                                global: !0,
16194                                processData: !0,
16195                                async: !0,
16196                                contentType: "application/x-www-form-urlencoded; charset=UTF-8",
16197                                accepts: { "*": Wt, text: "text/plain", html: "text/html", xml: "application/xml, text/xml", json: "application/json, text/javascript" },
16198                                contents: { xml: /\bxml\b/, html: /\bhtml/, json: /\bjson\b/ },
16199                                responseFields: { xml: "responseXML", text: "responseText", json: "responseJSON" },
16200                                converters: { "* text": String, "text html": !0, "text json": JSON.parse, "text xml": S.parseXML },
16201                                flatOptions: { url: !0, context: !0 },
16202                            },
16203                            ajaxSetup: function (e, t) {
16204                                return t ? Vt(Vt(e, S.ajaxSettings), t) : Vt(S.ajaxSettings, e);
16205                            },
16206                            ajaxPrefilter: $t(It),
16207                            ajaxTransport: $t(Bt),
16208                            ajax: function (e, t) {
16209                                "object" == typeof e && ((t = e), (e = void 0)), (t = t || {});
16210                                var n,
16211                                    i,
16212                                    o,
16213                                    s,
16214                                    a,
16215                                    u,
16216                                    l,
16217                                    c,
16218                                    f,
16219                                    p,
16220                                    d = S.ajaxSetup({}, t),
16221                                    h = d.context || d,
16222                                    g = d.context && (h.nodeType || h.jquery) ? S(h) : S.event,
16223                                    v = S.Deferred(),
16224                                    m = S.Callbacks("once memory"),
16225                                    y = d.statusCode || {},
16226                                    b = {},
16227                                    w = {},
16228                                    T = "canceled",
16229                                    C = {
16230                                        readyState: 0,
16231                                        getResponseHeader: function (e) {
16232                                            var t;
16233                                            if (l) {
16234                                                if (!s) for (s = {}; (t = Ot.exec(o)); ) s[t[1].toLowerCase() + " "] = (s[t[1].toLowerCase() + " "] || []).concat(t[2]);
16235                                                t = s[e.toLowerCase() + " "];
16236                                            }
16237                                            return null == t ? null : t.join(", ");
16238                                        },
16239                                        getAllResponseHeaders: function () {
16240                                            return l ? o : null;
16241                                        },
16242                                        setRequestHeader: function (e, t) {
16243                                            return null == l && ((e = w[e.toLowerCase()] = w[e.toLowerCase()] || e), (b[e] = t)), this;
16244                                        },
16245                                        overrideMimeType: function (e) {
16246                                            return null == l && (d.mimeType = e), this;
16247                                        },
16248                                        statusCode: function (e) {
16249                                            var t;
16250                                            if (e)
16251                                                if (l) C.always(e[C.status]);
16252                                                else for (t in e) y[t] = [y[t], e[t]];
16253                                            return this;
16254                                        },
16255                                        abort: function (e) {
16256                                            var t = e || T;
16257                                            return n && n.abort(t), E(0, t), this;
16258                                        },
16259                                    };
16260                                if (
16261                                    (v.promise(C),
16262                                    (d.url = ((e || d.url || St.href) + "").replace(Rt, St.protocol + "//")),
16263                                    (d.type = t.method || t.type || d.method || d.type),
16264                                    (d.dataTypes = (d.dataType || "*").toLowerCase().match(I) || [""]),
16265                                    null == d.crossDomain)
16266                                ) {
16267                                    u = x.createElement("a");
16268                                    try {
16269                                        (u.href = d.url), (u.href = u.href), (d.crossDomain = Ft.protocol + "//" + Ft.host != u.protocol + "//" + u.host);
16270                                    } catch (e) {
16271                                        d.crossDomain = !0;
16272                                    }
16273                                }
16274                                if ((d.data && d.processData && "string" != typeof d.data && (d.data = S.param(d.data, d.traditional)), _t(It, d, t, C), l)) return C;
16275                                for (f in ((c = S.event && d.global) && 0 == S.active++ && S.event.trigger("ajaxStart"),
16276                                (d.type = d.type.toUpperCase()),
16277                                (d.hasContent = !Mt.test(d.type)),
16278                                (i = d.url.replace(Ht, "")),
16279                                d.hasContent
16280                                    ? d.data && d.processData && 0 === (d.contentType || "").indexOf("application/x-www-form-urlencoded") && (d.data = d.data.replace(Lt, "+"))
16281                                    : ((p = d.url.slice(i.length)),
16282                                      d.data && (d.processData || "string" == typeof d.data) && ((i += (At.test(i) ? "&" : "?") + d.data), delete d.data),
16283                                      !1 === d.cache && ((i = i.replace(Pt, "$1")), (p = (At.test(i) ? "&" : "?") + "_=" + Et.guid++ + p)),
16284                                      (d.url = i + p)),
16285                                d.ifModified && (S.lastModified[i] && C.setRequestHeader("If-Modified-Since", S.lastModified[i]), S.etag[i] && C.setRequestHeader("If-None-Match", S.etag[i])),
16286                                ((d.data && d.hasContent && !1 !== d.contentType) || t.contentType) && C.setRequestHeader("Content-Type", d.contentType),
16287                                C.setRequestHeader("Accept", d.dataTypes[0] && d.accepts[d.dataTypes[0]] ? d.accepts[d.dataTypes[0]] + ("*" !== d.dataTypes[0] ? ", " + Wt + "; q=0.01" : "") : d.accepts["*"]),
16288                                d.headers))
16289                                    C.setRequestHeader(f, d.headers[f]);
16290                                if (d.beforeSend && (!1 === d.beforeSend.c
16290all(h, C, d) || l)) return C.abort();
16291                                if (((T = "abort"), m.add(d.complete), C.done(d.success), C.fail(d.error), (n = _t(Bt, d, t, C)))) {
16292                                    if (((C.readyState = 1), c && g.trigger("ajaxSend", [C, d]), l)) return C;
16293                                    d.async &&
16294                                        d.timeout > 0 &&
16295                                        (a = r.setTimeout(function () {
16296                                            C.abort("timeout");
16297                                        }, d.timeout));
16298                                    try {
16299                                        (l = !1), n.send(b, E);
16300                                    } catch (e) {
16301                                        if (l) throw e;
16302                                        E(-1, e);
16303                                    }
16304                                } else E(-1, "No Transport");
16305                                function E(e, t, s, u) {
16306                                    var f,
16307                                        p,
16308                                        x,
16309                                        b,
16310                                        w,
16311                                        T = t;
16312                                    l ||
16313                                        ((l = !0),
16314                                        a && r.clearTimeout(a),
16315                                        (n = void 0),
16316                                        (o = u || ""),
16317                                        (C.readyState = e > 0 ? 4 : 0),
16318                                        (f = (e >= 200 && e < 300) || 304 === e),
16319                                        s &&
16320                                            (b = (function (e, t, n) {
16321                                                for (var r, i, o, s, a = e.contents, u = e.dataTypes; "*" === u[0]; ) u.shift(), void 0 === r && (r = e.mimeType || t.getResponseHeader("Content-Type"));
16322                                                if (r)
16323                                                    for (i in a)
16324                                                        if (a[i] && a[i].test(r)) {
16325                                                            u.unshift(i);
16326                                                            break;
16327                                                        }
16328                                                if (u[0] in n) o = u[0];
16329                                                else {
16330                                                    for (i in n) {
16331                                                        if (!u[0] || e.converters[i + " " + u[0]]) {
16332                                                            o = i;
16333                                                            break;
16334                                                        }
16335                                                        s || (s = i);
16336                                                    }
16337                                                    o = o || s;
16338                                                }
16339                                                if (o) return o !== u[0] && u.unshift(o), n[o];
16340                                            })(d, C, s)),
16341                                        !f && S.inArray("script", d.dataTypes) > -1 && S.inArray("json", d.dataTypes) < 0 && (d.converters["text script"] = function () {}),
16342                                        (b = (function (e, t, n, r) {
16343                                            var i,
16344                                                o,
16345                                                s,
16346                                                a,
16347                                                u,
16348                                                l = {},
16349                                                c = e.dataTypes.slice();
16350                                            if (c[1]) for (s in e.converters) l[s.toLowerCase()] = e.converters[s];
16351                                            for (o = c.shift(); o; )
16352                                                if ((e.responseFields[o] && (n[e.responseFields[o]] = t), !u && r && e.dataFilter && (t = e.dataFilter(t, e.dataType)), (u = o), (o = c.shift())))
16353                                                    if ("*" === o) o = u;
16354                                                    else if ("*" !== u && u !== o) {
16355                                                        if (!(s = l[u + " " + o] || l["* " + o]))
16356                                                            for (i in l)
16357                                                                if ((a = i.split(" "))[1] === o && (s = l[u + " " + a[0]] || l["* " + a[0]])) {
16358                                                                    !0 === s ? (s = l[i]) : !0 !== l[i] && ((o = a[0]), c.unshift(a[1]));
16359                                                                    break;
16360                                                                }
16361                                                        if (!0 !== s)
16362                                                            if (s && e.throws) t = s(t);
16363                                                            else
16364                                                                try {
16365                                                                    t = s(t);
16366                                                                } catch (e) {
16367                                                                    return { state: "parsererror", error: s ? e : "No conversion from " + u + " to " + o };
16368                                                                }
16369                                                    }
16370                                            return { state: "success", data: t };
16371                                        })(d, b, C, f)),
16372                                        f
16373                                            ? (d.ifModified && ((w = C.getResponseHeader("Last-Modified")) && (S.lastModified[i] = w), (w = C.getResponseHeader("etag")) && (S.etag[i] = w)),
16374                                              204 === e || "HEAD" === d.t
16374ype ? (T = "nocontent") : 304 === e ? (T = "notmodified") : ((T = b.state), (p = b.data), (f = !(x = b.error))))
16375                                            : ((x = T), (!e && T) || ((T = "error"), e < 0 && (e = 0))),
16376                                        (C.status = e),
16377                                        (C.statusText = (t || T) + ""),
16378                                        f ? v.resolveWith(h, [p, T, C]) : v.rejectWith(h, [C, T, x]),
16379                                        C.statusCode(y),
16380                                        (y = void 0),
16381                                        c && g.trigger(f ? "ajaxSuccess" : "ajaxError", [C, d, f ? p : x]),
16382                                        m.fireWith(h, [C, T]),
16383                                        c && (g.trigger("ajaxComplete", [C, d]), --S.active || S.event.trigger("ajaxStop")));
16384                                }
16385                                return C;
16386                            },
16387                            getJSON: function (e, t, n) {
16388                                return S.get(e, t, n, "json");
16389                            },
16390                            getScript: function (e, t) {
16391                                return S.get(e, void 0, t, "script");
16392                            },
16393                        }),
16394                        S.each(["get", "post"], function (e, t) {
16395                            S[t] = function (e, n, r, i) {
16396                                return m(n) && ((i = i || r), (r = n), (n = void 0)), S.ajax(S.extend({ url: e, type: t, dataType: i, data: n, success: r }, S.isPlainObject(e) && e));
16397                            };
16398                        }),
16399                        S.ajaxPrefilter(function (e) {
16400                            var t;
16401                            for (t in e.headers) "content-type" === t.toLowerCase() && (e.contentType = e.headers[t] || "");
16402                        }),
16403                        (S._evalUrl = function (e, t, n) {
16404                            return S.ajax({
16405                                url: e,
16406                                type: "GET",
16407                                dataType: "script",
16408                                cache: !0,
16409                                async: !1,
16410                                global: !1,
16411                                converters: { "text script": function () {} },
16412                                dataFilter: function (e) {
16413                                    S.globalEval(e, t, n);
16414                                },
16415                            });
16416                        }),
16417                        S.fn.extend({
16418                            wrapAll: function (e) {
16419                                var t;
16420                                return (
16421                                    this[0] &&
16422                                        (m(e) && (e = e.call(this[0])),
16423                                        (t = S(e, this[0].ownerDocument).eq(0).clone(!0)),
16424                                        this[0].parentNode && t.insertBefore(this[0]),
16425                                        t
16426                                            .map(function () {
16427                                                for (var e = this; e.firstElementChild; ) e = e.firstElementChild;
16428                                                return e;
16429                                            })
16430                                            .append(this)),
16431                                    this
16432                                );
16433                            },
16434                            wrapInner: function (e) {
16435                                return m(e)
16436                                    ? this.each(function (t) {
16437                                          S(this).wrapInner(e.call(this, t));
16438                                      })
16439                                    : this.each(function () {
16440                                          var t = S(this),
16441                                              n = t.contents();
16442                                          n.length ? n.wrapAll(e) : t.append(e);
16443                                      });
16444                            },
16445                            wrap: function (e) {
16446                                var t = m(e);
16447                                return this.each(function (n) {
16448                                    S(this).wrapAll(t ? e.call(this, n) : e);
16449                                });
16450                            },
16451                            unwrap: function (e) {
16452                                return (
16453                                    this.parent(e)
16454                                        .not("body")
16455                                        .each(function () {
16456                                            S(this).replaceWith(this.childNodes);
16457                                        }),
16458                                    this
16459                                );
16460                            },
16461                        }),
16462                        (S.expr.pseudos.hidden = function (e) {
16463                            return !S.expr.pseudos.visible(e);
16464                        }),
16465                        (S.expr.pseudos.visible = function (e) {
16466                            return !!(e.offsetWidth || e.offsetHeight || e.getClientRects().length);
16467                        }),
16468                        (S.ajaxSettings.xhr = function () {
16469                            try {
16470                                return new r.XMLHttpRequest();
16471                            } catch (e) {}
16472                        });
16473                    var zt = { 0: 200, 1223: 204 },
16474                        Ut = S.ajaxSettings.xhr();
16475                    (v.cors = !!Ut && "withCredentials" in Ut),
16476                        (v.ajax = Ut = !!Ut),
16477                        S.ajaxTransport(function (e) {
16478                            var t, n;
16479                            if (v.cors || (Ut && !e.crossDomain))
16480                                return {
16481                                    send: function (i, o) {
16482                                        var s,
16483                                            a = e.xhr();
16484                                        if ((a.open(e.type, e.url, e.async, e.username, e.password), e.xhrFields)) for (s in e.xhrFields) a[s] = e.xhrFields[s];
16485                                        for (s in (e.mimeType && a.overrideMimeType && a.overrideMimeType(e.mimeType), e.crossDomain || i["X-Requested-With"] || (i["X-Requested-With"] = "XMLHttpRequest"), i)) a.setRequestHeader(s, i[s]);
16486                                        (t = function (e) {
16487                                            return function () {
16488                                                t &&
16489                                                    ((t = n = a.onload = a.onerror = a.onabort = a.ontimeout = a.onreadystatechange = null),
16490                                                    "abort" === e
16491                                                        ? a.abort()
16492                                                        : "error" === e
16493                                                        ? "number" != typeof a.status
16494                                                            ? o(0, "error")
16495                                                            : o(a.status, a.statusText)
16496                                                        : o(
16497                                                              zt[a.status] || a.status,
16498                                                              a.statusText,
16499                                                              "text" !== (a.responseType || "text") || "string" != typeof a.responseText ? { binary: a.response } : { text: a.responseText },
16500                                                              a.getAllResponseHeaders()
16501                                                          ));
16502                                            };
16503                                        }),
16504                                            (a.onload = t()),
16505                                            (n = a.onerror = a.ontimeout = t("error")),
16506                                            void 0 !== a.onabort
16507                                                ? (a.onabort = n)
16508                                                : (a.onreadystatechange = function () {
16509                                                      4 === a.readyState &&
16510                                                          r.setTimeout(function () {
16511                                                              t && n();
16512                                                          });
16513                                                  }),
16514                                            (t = t("abort"));
16515                                        try {
16516                                            a.send((e.hasContent && e.data) || null);
16517                                        } catch (e) {
16518                                            if (t) throw e;
16519                                        }
16520                                    },
16521                                    abort: function () {
16522                                        t && t();
16523                                    },
16524                                };
16525                        }),
16526                        S.ajaxPrefilter(function (e) {
16527                            e.crossDomain && (e.contents.script = !1);
16528                        }),
16529                        S.ajaxSetup({
16530                            accepts: { script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript" },
16531                            contents: { script: /\b(?:java|ecma)script\b/ },
16532                            converters: {
16533                                "text script": function (e) {
16534                                    return S.globalEval(e), e;
16535                                },
16536                            },
16537                        }),
16538                        S.ajaxPrefilter("script", function (e) {
16539                            void 0 === e.cache && (e.cache = !1), e.crossDomain && (e.type = "GET");
16540                        }),
16541                        S.ajaxTransport("script", function (e) {
16542                            var t, n;
16543                            if (e.crossDomain || e.scriptAttrs)
16544                                return {
16545                                    send: function (r, i) {
16546                                        (t = S("<script>")
16547                                            .attr(e.scriptAttrs || {})
16548                                            .prop({ charset: e.scriptCharset, src: e.url })
16549                                            .on(
16550                                                "load error",
16551                                                (n = function (e) {
16552                                                    t.remove(), (n = null), e && i("error" === e.type ? 404 : 200, e.type);
16553                                                })
16554                                            )),
16555                                            x.head.appendChild(t[0]);
16556                                    },
16557                                    abort: function () {
16558                                        n && n();
16559                                    },
16560                                };
16561                        });
16562                    var Xt,
16563                        Gt = [],
16564                        Yt = /(=)\?(?=&|$)|\?\?/;
16565                    S.ajaxSetup({
16566                        jsonp: "callback",
16567                        jsonpCallback: function () {
16568                            var e = Gt.pop() || S.expando + "_" + Et.guid++;
16569                            return (this[e] = !0), e;
16570                        },
16571                    }),
16572                        S.ajaxPrefilter("json jsonp", function (e, t, n) {
16573                            var i,
16574                                o,
16575                                s,
16576                                a = !1 !== e.jsonp && (Yt.test(e.url) ? "url" : "string" == typeof e.data && 0 === (e.contentType || "").indexOf("application/x-www-form-urlencoded") && Yt.test(e.data) && "data");
16577                            if (a || "jsonp" === e.dataTypes[0])
16578                                return (
16579                                    (i = e.jsonpCallback = m(e.jsonpCallback) ? e.jsonpCallback() : e.jsonpCallback),
16580                                    a ? (e[a] = e[a].replace(Yt, "$1" + i)) : !1 !== e.jsonp && (e.url += (At.test(e.url) ? "&" : "?") + e.jsonp + "=" + i),
16581                                    (e.converters["script json"] = function () {
16582                                        return s || S.error(i + " was not called"), s[0];
16583                                    }),
16584                                    (e.dataTypes[0] = "json"),
16585                                    (o = r[i]),
16586                                    (r[i] = function () {
16587                                        s = arguments;
16588                                    }),
16589                                    n.always(function () {
16590                                        void 0 === o ? S(r).removeProp(i) : (r[i] = o), e[i] && ((e.jsonpCallback = t.jsonpCallback), Gt.push(i)), s && m(o) && o(s[0]), (s = o = void 0);
16591                                    }),
16592                                    "script"
16593                                );
16594                        }),
16595                        (v.createHTMLDocument = (((Xt = x.implementation.createHTMLDocument("").body).innerHTML = "<form></form><form></form>"), 2 === Xt.childNodes.length)),
16596                        (S.parseHTML = function (e, t, n) {
16597                            return "string" != typeof e
16598                                ? []
16599                                : ("boolean" == typeof t && ((n = t), (t = !1)),
16600                                  t || (v.createHTMLDocument ? (((r = (t = x.implementation.createHTMLDocument("")).createElement("base")).href = x.location.href), t.head.appendChild(r)) : (t = x)),
16601                                  (o = !n && []),
16602                                  (i = q.exec(e)) ? [t.createElement(i[1])] : ((i = Ce([e], t, o)), o && o.length && S(o).remove(), S.merge([], i.childNodes)));
16603                            var r, i, o;
16604                        }),
16605                        (S.fn.load = function (e, t, n) {
16606                            var r,
16607                                i,
16608                                o,
16609                                s = this,
16610                                a = e.indexOf(" ");
16611                            return (
16612                                a > -1 && ((r = yt(e.slice(a))), (e = e.slice(0, a))),
16613                                m(t) ? ((n = t), (t = void 0)) : t && "object" == typeof t && (i = "POST"),
16614                                s.length > 0 &&
16615                                    S.ajax({ url: e, type: i || "GET", dataType: "html", data: t })
16616                                        .done(function (e) {
16617                                            (o = arguments), s.html(r ? S("<div>").append(S.parseHTML(e)).find(r) : e);
16618                                        })
16619                                        .always(
16620                                            n &&
16621                                                function (e, t) {
16622                                                    s.each(function () {
16623                                                        n.apply(this, o || [e.responseText, t, e]);
16624                                                    });
16625                                                }
16626                                        ),
16627                                this
16628                            );
16629                        }),
16630                        (S.expr.pseudos.animated = function (e) {
16631                            return S.grep(S.timers, function (t) {
16632                                return e === t.elem;
16633                            }).length;
16634                        }),
16635                        (S.offset = {
16636                            setOffset: function (e, t, n) {
16637                                var r,
16638                                    i,
16639                                    o,
16640                                    s,
16641                                    a,
16642                                    u,
16643                                    l = S.css(e, "position"),
16644                                    c = S(e),
16645                                    f = {};
16646                                "static" === l && (e.style.position = "relative"),
16647                                    (a = c.offset()),
16648                                    (o = S.css(e, "top")),
16649                                    (u = S.css(e, "left")),
16650                                    ("absolute" === l || "fixed" === l) && (
16650o + u).indexOf("auto") > -1 ? ((s = (r = c.position()).top), (i = r.left)) : ((s = parseFloat(o) || 0), (i = parseFloat(u) || 0)),
16651                                    m(t) && (t = t.call(e, n, S.extend({}, a))),
16652                                    null != t.top && (f.top = t.top - a.top + s),
16653                                    null != t.left && (f.left = t.left - a.left + i),
16654                                    "using" in t ? t.using.call(e, f) : c.css(f);
16655                            },
16656                        }),
16657                        S.fn.extend({
16658                            offset: function (e) {
16659                                if (arguments.length)
16660                                    return void 0 === e
16661                                        ? this
16662                                        : this.each(function (t) {
16663                                              S.offset.setOffset(this, e, t);
16664                                          });
16665                                var t,
16666                                    n,
16667                                    r = this[0];
16668                                return r ? (r.getClientRects().length ? ((t = r.getBoundingClientRect()), (n = r.ownerDocument.defaultView), { top: t.top + n.pageYOffset, left: t.left + n.pageXOffset }) : { top: 0, left: 0 }) : void 0;
16669                            },
16670                            position: function () {
16671                                if (this[0]) {
16672                                    var e,
16673                                        t,
16674                                        n,
16675                                        r = this[0],
16676                                        i = { top: 0, left: 0 };
16677                                    if ("fixed" === S.css(r, "position")) t = r.getBoundingClientRect();
16678                                    else {
16679                                        for (t = this.offset(), n = r.ownerDocument, e = r.offsetParent || n.documentElement; e && (e === n.body || e === n.documentElement) && "static" === S.css(e, "position"); ) e = e.parentNode;
16680                                        e && e !== r && 1 === e.nodeType && (((i = S(e).offset()).top += S.css(e, "borderTopWidth", !0)), (i.left += S.css(e, "borderLeftWidth", !0)));
16681                                    }
16682                                    return { top: t.top - i.top - S.css(r, "marginTop", !0), left: t.left - i.left - S.css(r, "marginLeft", !0) };
16683                                }
16684                            },
16685                            offsetParent: function () {
16686                                return this.map(function () {
16687                                    for (var e = this.offsetParent; e && "static" === S.css(e, "position"); ) e = e.offsetParent;
16688                                    return e || se;
16689                                });
16690                            },
16691                        }),
16692                        S.each({ scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function (e, t) {
16693                            var n = "pageYOffset" === t;
16694                            S.fn[e] = function (r) {
16695                                return z(
16696                                    this,
16697                                    function (e, r, i) {
16698                                        var o;
16699                                        if ((y(e) ? (o = e) : 9 === e.
16699nodeType && (o = e.defaultView), void 0 === i)) return o ? o[t] : e[r];
16700                                        o ? o.scrollTo(n ? o.pageXOffset : i, n ? i : o.pageYOffset) : (e[r] = i);
16701                                    },
16702                                    e,
16703                                    r,
16704                                    arguments.length
16705                                );
16706                            };
16707                        }),
16708                        S.each(["top", "left"], function (e, t) {
16709                            S.cssHooks[t] = Xe(v.pixelPosition, function (e, n) {
16710                                if (n) return (n = Ue(e, t)), We.test(n) ? S(e).position()[t] + "px" : n;
16711                            });
16712                        }),
16713                        S.each({ Height: "height", Width: "width" }, function (e, t) {
16714                            S.each({ padding: "inner" + e, content: t, "": "outer" + e }, function (n, r) {
16715                                S.fn[r] = function (i, o) {
16716                                    var s = arguments.length && (n || "boolean" != typeof i),
16717                                        a = n || (!0 === i || !0 === o ? "margin" : "border");
16718                                    return z(
16719                                        this,
16720                                        function (t, n, i) {
16721                                            var o;
16722                                            return y(t)
16723                                                ? 0 === r.indexOf("outer")
16724                                                    ? t["inner" + e]
16725                                                    : t.document.documentElement["client" + e]
16726                                                : 9 === t.nodeType
16727                                                ? ((o = t.documentElement), Math.max(t.body["scroll" + e], o["scroll" + e], t.body["offset" + e], o["offset" + e], o["client" + e]))
16728                                                : void 0 === i
16729                                                ? S.css(t, n, a)
16730                                                : S.style(t, n, i, a);
16731                                        },
16732                                        t,
16733                                        s ? i : void 0,
16734                                        s
16735                                    );
16736                                };
16737                            });
16738                        }),
16739                        S.each(["ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], function (e, t) {
16740                            S.fn[t] = function (e) {
16741                                return this.on(t, e);
16742                            };
16743                        }),
16744                        S.fn.extend({
16745                            bind: function (e, t, n) {
16746                                return this.on(e, null, t, n);
16747                            },
16748                            unbind: function (e, t) {
16749                                return this.off(e, null, t);
16750                            },
16751                            delegate: function (e, t, n, r) {
16752                                return this.on(t, e, n, r);
16753                            },
16754                            undelegate: function (e, t, n) {
16755                                return 1 === arguments.length ? this.off(e, "**") : this.off(t, e || "**", n);
16756                            },
16757                            hover: function (e, t) {
16758                                return this.mouseenter(e).mouseleave(t || e);
16759                            },
16760                        }),
16761                        S.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 (
16762                            e,
16763                            t
16764                        ) {
16765                            S.fn[t] = function (e, n) {
16766                                return arguments.length > 0 ? this.on(t, null, e, n) : this.trigger(t);
16767                            };
16768                        });
16769                    var Qt = /^[\s\uFEFF\xA0]+|([^\s\uFEFF\xA0])[\s\uFEFF\xA0]+$/g;
16770                    (S.proxy = function (e, t) {
16771                        var n, r, i;
16772                        if (("string" == typeof t && ((n = e[t]), (t = e), (e = n)), m(e)))
16773                            return (
16774                                (r = a.call(arguments, 2)),
16775                                (i = function () {
16776                                    return e.apply(t || this, r.concat(a.call(arguments)));
16777                                }),
16778                                (i.guid = e.guid = e.guid || S.guid++),
16779                                i
16780                            );
16781                    }),
16782                        (S.holdReady = function (e) {
16783                            e ? S.readyWait++ : S.ready(!0);
16784                        }),
16785                        (S.isArray = Array.isArray),
16786                        (S.parseJSON = JSON.parse),
16787                        (S.nodeName = j),
16788                        (S.isFunction = m),
16789                        (S.isWindow = y),
16790                        (S.camelCase = Y),
16791                        (S.type = T),
16792                        (S.now = Date.now),
16793                        (S.isNumeric = function (e) {
16794                            var t = S.type(e);
16795                            return ("number" === t || "string" === t) && !isNaN(e - parseFloat(e));
16796                        }),
16797                        (S.trim = function (e) {
16798                            return null == e ? "" : (e + "").replace(Qt, "$1");
16799                        }),
16800                        void 0 ===
16801                            (n = function () {
16802                                return S;
16803                            }.apply(t, [])) || (e.exports = n);
16804                    var Jt = r.jQuery,
16805                        Kt = r.$;
16806                    return (
16807                        (S.noConflict = function (e) {
16808                            return r.$ === S && (r.$ = Kt), e && r.jQuery === S && (r.jQuery = Jt), S;
16809                        }),
16810                        void 0 === i && (r.jQuery = r.$ = S),
16811                        S
16812                    );
16813                });
16814            },
16815            640: (e) => {
16816                "use strict";
16817                e.exports = BX;
16818            },
16819        },
16820        t = {};
16821    function n(r) {
16822        var i = t[r];
16823        if (void 0 !== i) return i.exports;
16824        var o = (t[r] = { exports: {} });
16825        return e[r].call(o.exports, o, o.exports, n), o.exports;
16826    }
16827    (n.n = (e) => {
16828        var t = e && e.__esModule ? () => e.default : () => e;
16829        return n.d(t, { a: t }), t;
16830    }),
16831        (n.d = (e, t) => {
16832            for (var r in t) n.o(t, r) && !n.o(e, r) && Object.defineProperty(e, r, { enumerable: !0, get: t[r] });
16833        }),
16834        (n.o = (e, t) => Object.prototype.hasOwnProperty.call(e, t)),
16835        (() => {
16836            "use strict";
16837            n(503);
16838        })();
16839})();
16840
16841/* End */
16842;
16843; /* Start:"a:4:{s:4:"full";s:96:"/local/templates/sever/components/bitrix/search.suggest.input/.default/script.js?179059330012503";s:6:"source";s:80:"/local/templates/sever/components/bitrix/search.suggest.input/.default/script.js";s:3:"min";s:0:"";s:3:"map";s:0:"";}"*/
16844function JsSuggest(oHandler, sParams, sParser)
16845{
16846	var t = this;
16847
16848	t.oObj = oHandler;
16849	t.sParams = sParams;
16850	// Arrays for data
16851	if (sParser)
16852	{
16853		t.sExp = new RegExp("["+sParser+"]+", "i");
16854	}
16855	else
16856	{
16857		t.sExp = new RegExp(",");
16858	}
16859	t.oLast = {"str":false, "arr":false};
16860	t.oThis = {"str":false, "arr":false};
16861	t.oEl = {"start":false, "end":false};
16862	t.oUnfinedWords = {};
16863	// Flags
16864	t.bReady = true;
16865	t.eFocus = true;
16866	// Array with results & it`s showing
16867	t.aDiv = null;
16868	t.oDiv = null;
16869	// Pointers
16870	t.oActive = null;
16871	t.oPointer = [];
16872	t.oPointer_default = [];
16873	t.oPointer_this = 'input_field';
16874
16875	t.oObj.onblur = function()
16876	{
16877		t.eFocus = false;
16878	};
16879
16880	t.oObj.onfocus = function()
16881	{
16882		if (!t.eFocus)
16883		{
16884			t.eFocus = true;
16885			setTimeout(function(){t.CheckModif('focus')}, 500);
16886		}
16887	};
16888
16889	t.oLast["arr"] = t.oObj.value.split(t.sExp);
16890	t.oLast["str"] = t.oLast["arr"].join(":");
16891
16892	setTimeout(function(){t.CheckModif('this')}, 500);
16893
16894	this.CheckModif = function(__data)
16895	{
16896		var
16897			sThis = false, tmp = 0,
16898			bUnfined = false, word = "",
16899			cursor = {};
16900
16901		if (!t.eFocus)
16902			return;
16903
16904		if (t.bReady && t.oObj.value.length > 0)
16905		{
16906			// Preparing input data
16907			t.oThis["arr"] = t.oObj.value.split(t.sExp);
16908			t.oThis["str"] = t.oThis["arr"].join(":");
16909
16910			// Getting modificated element
16911			if (t.oThis["str"] && (t.oThis["str"] != t.oLast["str"]))
16912			{
16913				cursor['position'] = TCJsUtils.getCursorPosition(t.oObj);
16914				if (cursor['position']['end'] > 0 && !t.sExp.test(t.oObj.value.substr(cursor['position']['end']-1, 1)))
16915				{
16916					cursor['arr'] = t.oObj.value.substr(0, cursor['position']['end']).split(t.sExp);
16917					sThis = t.oThis["arr"][cursor['arr'].length - 1];
16918
16919					t.oEl['start'] = cursor['position']['end'] - cursor['arr'][cursor['arr'].length - 1].length;
16920					t.oEl['end'] = t.oEl['start'] + sThis.length;
16921					t.oEl['content'] = sThis;
16922
16923					t.oLast["arr"] = t.oThis["arr"];
16924					t.oLast["str"] = t.oThis["str"];
16925				}
16926			}
16927			if (sThis)
16928			{
16929				// Checking for UnfinedWords
16930				for (tmp = 2; tmp <= sThis.length; tmp++)
16931				{
16932					word = sThis.substr(0, tmp);
16933					if (t.oUnfinedWords[word] == '!fined')
16934					{
16935						bUnfined = true;
16936						break;
16937					}
16938				}
16939				if (!bUnfined)
16940					t.Send(sThis);
16941			}
16942		}
16943		setTimeout(function(){t.CheckModif('this')}, 500);
16944	};
16945
16946	t.Send = function(sSearch)
16947	{
16948		if (!sSearch)
16949			return false;
16950
16951		var oError = [];
16952		t.bReady = false;
16953		if (BX('wait_container'))
16954		{
16955			BX('wait_container').innerHTML = BX.message('JS_CORE_LOADING');
16956			BX.show(BX('wait_container'));
16957		}
16958		BX.ajax.post(
16959			'/bitrix/components/bitrix/search.suggest.input/search.php',
16960			{"search":sSearch, "params":t.sParams},
16961			function(data)
16962			{
16963				var result = {};
16964				t.bReady = true;
16965
16966				try
16967				{
16968					eval("result = " + data + ";");
16969				}
16970				catch(e)
16971				{
16972					oError['result_unval'] = e;
16973				}
16974
16975				if (TCJsUtils.empty(result))
16976					oError['result_empty'] = 'Empty result';
16977
16978				try
16979				{
16980					if (TCJsUtils.empty(oError) && (typeof result == 'object'))
16981					{
16982						if (!(result.length == 1 && result[0]['NAME'] == t.oEl['content']))
16983						{
16984							t.Show(result);
16985							return;
16986						}
16987					}
16988					else
16989					{
16990						t.oUnfinedWords[t.oEl['content']] = '!fined';
16991					}
16992				}
16993				catch(e)
16994				{
16995					oError['unknown_error'] = e;
16996				}
16997
16998				if(BX('wait_container'))
16999					BX.hide(BX('wait_container'));
17000			}
17001		);
17002	};
17003
17004	t.Show = function(result)
17005	{
17006		t.Destroy();
17007		t.oDiv = document.body.appendChild(document.createElement("DIV"));
17008		t.oDiv.id = t.oObj.id+'_div';
17009
17010		t.oDiv.className = "search-popup";
17011		t.oDiv.style.position = 'absolute';
17012
17013		t.aDiv = t.Print(result);
17014		var pos = TCJsUtils.GetRealPos(t.oObj);
17015		t.oDiv.style.width = parseInt(pos["width"]) + "px";
17016		TCJsUtils.show(t.oDiv, pos["left"], pos["bottom"]);
17017		TCJsUtils.addEvent(document, "click", t.CheckMouse);
17018		TCJsUtils.addEvent(document, "keydown", t.CheckKeyword);
17019	};
17020
17021	t.Print = function(aArr)
17022	{
17023		var aEl = null;
17024		var aResult = {};
17025		var iCnt = 0;
17026		var oDiv = null;
17027		var oSpan = null;
17028		var sPrefix = t.oDiv.id;
17029
17030		for (var tmp_ in aArr)
17031		{
17032			if (aArr.hasOwnProperty(tmp_))
17033			{
17034				// Math
17035				aEl = aArr[tmp_];
17036
17037				var aRes = {};
17038				aRes['ID'] = (aEl['ID'] && aEl['ID'].length > 0) ? aEl['ID'] : iCnt++;
17039				aRes['GID'] = sPrefix + '_' + aRes['ID'];
17040				aRes['NAME'] = TCJsUtils.htmlspecialcharsEx(aEl['NAME']);
17041				aRes['CNT'] = aEl['CNT'];
17042
17043				aResult[aRes['GID']] = aRes;
17044				t.oPointer.push(aRes['GID']);
17045				// Graph
17046				oDiv = t.oDiv.appendChild(document.createElement("DIV"));
17047				oDiv.id = aRes['GID'];
17048				oDiv.name = sPrefix + '_div';
17049
17050				oDiv.className = 'search-popup-row';
17051
17052				oDiv.onmouseover = function(){t.Init(); this.className='search-popup-row-active';};
17053				oDiv.onmouseout = function(){t.Init(); this.className='search-popup-row';};
17054				oDiv.onclick = function(){t.oActive = this.id};
17055
17056				oSpan = oDiv.appendChild(document.createElement("DIV"));
17057				oSpan.id = oDiv.id + '_NAME';
17058				oSpan.className = "search-popup-el search-popup-el-cnt";
17059				oSpan.innerHTML = aRes['CNT'];
17060
17061				oSpan = oDiv.appendChild(document.createElement("DIV"));
17062				oSpan.id = oDiv.id + '_NAME';
17063				oSpan.className = "search-popup-el search-popup-el-name";
17064				oSpan.innerHTML = aRes['NAME'];
17065			}
17066		}
17067		t.oPointer.push('input_field');
17068		t.oPointer_default = t.oPointer;
17069		return aResult;
17070	};
17071
17072	t.Destroy = function()
17073	{
17074		try
17075		{
17076			TCJsUtils.hide(t.oDiv);
17077			t.oDiv.parentNode.removeChild(t.oDiv);
17078		}
17079		catch(e)
17080		{}
17081
17082		t.aDiv = [];
17083		t.oPointer = [];
17084		t.oPointer_default = [];
17085		t.oPointer_this = 'input_field';
17086		t.bReady = true;
17087		t.eFocus = true;
17088		t.oActive = null;
17089
17090		TCJsUtils.removeEvent(document, "click", t.CheckMouse);
17091		TCJsUtils.removeEvent(document, "keydown", t.CheckKeyword);
17092	};
17093
17094	t.Replace = function()
17095	{
17096		if (typeof t.oActive == 'string')
17097		{
17098			var tmp = t.aDiv[t.oActive];
17099			var tmp1 = '';
17100			if (typeof tmp == 'object')
17101			{
17102				var elEntities = document.createElement("span");
17103				elEntities.innerHTML = tmp['NAME'].replace(/&quot;/g, '"').replace(/&amp;/g, '&');
17104				tmp1 = elEntities.innerHTML;
17105			}
17106			//this preserves leading spaces
17107			var start = t.oEl['start'];
17108			while(start < t.oObj.value.length && t.oObj.value.substring(start, start+1) == " ")
17109				start++;
17110
17111			t.oObj.value = t.oObj.value.substring(0, start) + tmp1.replace(/&lt;/g, '<').replace(/&gt;/g, '>') + t.oObj.value.substr(t.oEl['end']);
17112			TCJsUtils.setCursorPosition(t.oObj, start + tmp1.length);
17113		}
17114	};
17115
17116	t.Init = function()
17117	{
17118		t.oActive = false;
17119		t.oPointer = t.oPointer_default;
17120		t.Clear();
17121		t.oPointer_this = 'input_pointer';
17122	};
17123
17124	t.Clear = function()
17125	{
17126		var oEl = t.oDiv.getElementsByTagName("div");
17127		if (oEl.length > 0 && typeof oEl == 'object')
17128		{
17129			for (var ii in oEl)
17130			{
17131				if (oEl.hasOwnProperty(ii))
17132				{
17133					var oE = oEl[ii];
17134					if (oE && (typeof oE == 'object') && (oE.name == t.oDiv.id + '_div'))
17135					{
17136						oE.className = "search-popup-row";
17137					}
17138				}
17139			}
17140		}
17141	};
17142
17143	t.CheckMouse = function()
17144	{
17145		t.Replace();
17146		t.Destroy();
17147	};
17148
17149	t.CheckKeyword = function(e)
17150	{
17151		if (!e)
17152			e = window.event;
17153
17154		var oP = null;
17155		var oEl = null;
17156
17157		if ((37 < e.keyCode && e.keyCode <41) || (e.keyCode == 13))
17158		{
17159			t.Clear();
17160
17161			switch (e.keyCode)
17162			{
17163				case 38:
17164					oP = t.oPointer.pop();
17165					if (t.oPointer_this == oP)
17166					{
17167						t.oPointer.unshift(oP);
17168						oP = t.oPointer.pop();
17169					}
17170
17171					if (oP != 'input_field')
17172					{
17173						t.oActive = oP;
17174						oEl = document.getElementById(oP);
17175						if (typeof oEl == 'object')
17176						{
17177							oEl.className = "search-popup-row-active";
17178						}
17179					}
17180					t.oPointer.unshift(oP);
17181					break;
17182				case 40:
17183					oP = t.oPointer.shift();
17184					if (t.oPointer_this == oP)
17185					{
17186						t.oPointer.push(oP);
17187						oP = t.oPointer.shift();
17188					}
17189					if (oP != 'input_field')
17190					{
17191						t.oActive = oP;
17192						oEl = document.getElementById(oP);
17193						if (typeof oEl == 'object')
17194						{
17195							oEl.className = "search-popup-row-active";
17196						}
17197					}
17198					t.oPointer.push(oP);
17199					break;
17200				case 39:
17201					t.Replace();
17202					t.Destroy();
17203					break;
17204				case 13:
17205					t.Replace();
17206					t.Destroy();
17207					break;
17208			}
17209			t.oPointer_this = oP;
17210		}
17211		else
17212		{
17213			t.Destroy();
17214		}
17215	};
17216}
17217
17218var TCJsUtils =
17219{
17220	arEvents: [],
17221
17222	addEvent: function(el, evname, func)
17223	{
17224		if(el.attachEvent) // IE
17225			el.attachEvent("on" + evname, func);
17226		else if(el.addEventListener) // Gecko / W3C
17227			el.addEventListener(evname, func, false);
17228		else
17229			el["on" + evname] = func;
17230		this.arEvents[this.arEvents.length] = {'element': el, 'event': evname, 'fn': func};
17231	},
17232
17233	removeEvent: function(el, evname, func)
17234	{
17235		if(el.detachEvent) // IE
17236			el.detachEvent("on" + evname, func);
17237		else if(el.removeEventListener) // Gecko / W3C
17238			el.removeEventListener(evname, func, false);
17239		else
17240			el["on" + evname] = null;
17241	},
17242
17243	getCursorPosition: function(oObj)
17244	{
17245		var result = {'start': 0, 'end': 0};
17246		if (!oObj || (typeof oObj != 'object'))
17247			return result;
17248		try
17249		{
17250			if (document.selection != null && oObj.selectionStart == null)
17251			{
17252				oObj.focus();
17253				var oRange = document.selection.createRange();
17254				var oParent = oRange.parentElement();
17255				var sBookmark = oRange.getBookmark();
17256				var sContents = oObj.value;
17257				var sContents_ = oObj.value;
17258				var sMarker = '__' + Math.random() + '__';
17259
17260				while(sContents.indexOf(sMarker) != -1)
17261				{
17262					sMarker = '__' + Math.random() + '__';
17263				}
17264
17265				if (!oParent || oParent == null || (oParent.type != "textarea" && oParent.type != "text"))
17266				{
17267					return result;
17268				}
17269
17270				oRange.text = sMarker + oRange.text + sMarker;
17271				sContents = oObj.value;
17272				result['start'] = sContents.indexOf(sMarker);
17273				sContents = sContents.replace(sMarker, "");
17274				result['end'] = sContents.indexOf(sMarker);
17275				oObj.value = sContents_;
17276				oRange.moveToBookmark(sBookmark);
17277				oRange.select();
17278				return result;
17279			}
17280			else
17281			{
17282				return {
17283					'start': oObj.selectionStart,
17284					'end': oObj.selectionEnd
17285				};
17286			}
17287		}
17288		catch(e){}
17289		return result;
17290	},
17291
17292	setCursorPosition: function(oObj, iPosition)
17293	{
17294		if (typeof oObj != 'object')
17295			return false;
17296
17297		oObj.focus();
17298
17299		try
17300		{
17301			if (document.selection != null && oObj.selectionStart == null)
17302			{
17303				var oRange = document.selection.createRange();
17304				oRange.select();
17305			}
17306			else
17307			{
17308				oObj.selectionStart = iPosition;
17309				oObj.selectionEnd = iPosition;
17310			}
17311			return true;
17312		}
17313		catch(e)
17314		{
17315			return false;
17316		}
17317
17318	},
17319
17320	printArray: function (oObj, sParser, iLevel)
17321	{
17322		try
17323		{
17324			var result = '';
17325			var space = '';
17326
17327			if (iLevel==undefined)
17328				iLevel = 0;
17329			if (!sParser)
17330				sParser = "\n";
17331
17332			for (var j = 0;
17332 j <= iLevel; j++)
17333				space += '  ';
17334
17335			for (var i in oObj)
17336			{
17337				if (oObj.hasOwnProperty(i))
17338				{
17339					if (typeof oObj[i] == 'object')
17340						result += space+i + " = {"+ sParser + TCJsUtils.printArray(oObj[i], sParser, iLevel+1) + ", " + sParser + "}" + sParser;
17341					else
17342						result += space+i + " = " + oObj[i] + "; " + sParser;
17343				}
17344			}
17345
17346			return result;
17347		}
17348		catch(e)
17349		{
17350		}
17351	},
17352
17353	empty: function(oObj)
17354	{
17355		var result = true;
17356		if (oObj)
17357		{
17358			for (var i in oObj)
17359			{
17360				if (oObj.hasOwnProperty(i))
17361				{
17362					result = false;
17363					break;
17364				}
17365			}
17366		}
17367		return result;
17368	},
17369
17370	show: function(oDiv, iLeft, iTop)
17371	{
17372		if (typeof oDiv != 'object')
17373			return;
17374		var zIndex = parseInt(oDiv.style.zIndex);
17375		if(zIndex <= 0 || isNaN(zIndex))
17376			zIndex = 100;
17377		oDiv.style.zIndex = zIndex;
17378		oDiv.style.left = iLeft + "px";
17379		oDiv.style.top = iTop + "px";
17380
17381		return oDiv;
17382	},
17383
17384	hide: function(oDiv)
17385	{
17386		if(oDiv)
17387			oDiv.style.display = 'none';
17388	},
17389
17390	GetRealPos: function(el)
17391	{
17392		if(!el || !el.offsetParent)
17393			return false;
17394
17395		var res = {};
17396		var objParent = el.offsetParent;
17397		res["left"] = el.offsetLeft;
17398		res["top"] = el.offsetTop;
17399		while(objParent && objParent.tagName != "BODY")
17400		{
17401			res["left"] += objParent.offsetLeft;
17402			res["top"] += objParent.offsetTop;
17403			objParent = objParent.offsetParent;
17404		}
17405		res["right"]=res["left"] + el.offsetWidth;
17406		res["bottom"]=res["top"] + el.offsetHeight;
17407		res["width"]=el.offsetWidth;
17408		res["height"]=el.offsetHeight;
17409
17410		return res;
17411	},
17412
17413	htmlspecialcharsEx: function(str)
17414	{
17415		return str.replace(/&amp;/g, '&amp;amp;').replace(/&lt;/g, '&amp;lt;').replace(/&gt;/g, '&amp;gt;').replace(/&quot;/g, '&amp;quot;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;');
17416	},
17417
17418	htmlspecialcharsback: function(str)
17419	{
17420		return str.replace(/&lt;/g, '<').replace(/&gt;/g, '>').replace(/&quot;/g, '"').replace(/&amp;/g, '&');
17421	}
17422};
17423
17424/* End */
17425;
17426; /* Start:"a:4:{s:4:"full";s:102:"/local/templates/sever/components/bitrix/sale.basket.basket.line/.default/script.min.js?17905933003876";s:6:"source";s:83:"/local/templates/sever/components/bitrix/sale.basket.basket.line/.default/script.js";s:3:"min";s:87:"/local/templates/sever/components/bitrix/sale.basket.basket.line/.default/script.min.js";s:3:"map";s:87:"/local/templates/sever/components/bitrix/sale.basket.basket.line/.default/script.map.js";}"*/
17427"use strict";function BitrixSmallCart(){}BitrixSmallCart.prototype={activate:function(){this.cartElement=BX(this.cartId);this.fixedPosition=this.arParams.POSITION_FIXED=="Y";if(this.fixedPosition){this.cartClosed=true;this.maxHeight=false;this.itemRemoved=false;this.verticalPosition=this.arParams.POSITION_VERTICAL;this.horizontalPosition=this.arParams.POSITION_HORIZONTAL;this.topPanelElement=BX("bx-panel");this.fixAfterRender();this.fixAfterRenderClosure=this.closure("fixAfterRender");var t=this.closure("fixCart");this.fixCartClosure=t;if(this.topPanelElement&&this.verticalPosition=="top")BX.addCustomEvent(window,"onTopPanelCollapse",t);var e=null;BX.bind(window,"resize",function(){clearTimeout(e);e=setTimeout(t,200)})}this.setCartBodyClosure=this.closure("setCartBody");BX.addCustomEvent(window,"OnBasketChange",this.closure("refreshCart",{}))},fixAfterRender:function(){this.statusElement=BX(this.cartId+"status");if(this.statusElement){if(this.cartClosed)this.statusElement.innerHTML=this.openMessage;else this.statusElement.innerHTML=this.closeMessage}this.productsElement=BX(this.cartId+"products");this.fixCart()},closure:function(t,e){var i=this;return e?function(){i[t](e)}:function(e){i[t](e)}},toggleOpenCloseCart:function(){if(this.cartClosed){BX.removeClass(this.cartElement,"bx-closed");BX.addClass(this.cartElement,"bx-opener");this.statusElement.innerHTML=this.closeMessage;this.cartClosed=false;this.fixCart()}else{BX.addClass(this.cartElement,"bx-closed");BX.removeClass(this.cartElement,"bx-opener");BX.removeClass(this.cartElement,"bx-max-height");this.statusElement.innerHTML=this.openMessage;this.cartClosed=true;var t=this.cartElement.querySelector("[data-role='basket-item-list']");if(t)t.style.top="auto"}setTimeout(this.fixCartClosure,100)},setVerticalCenter:function(t){var e=t/2-this.cartElement.offsetHeight/2;if(e<5)e=5;this.cartElement.style.top=e+"px"},fixCart:function(){if(this.horizontalPosition=="hcenter"){var t="innerWidth"in window?window.innerWidth:document.documentElement.offsetWidth;var e=t/2-this.cartElement.offsetWidth/2;if(e<5)e=5;this.cartElement.style.left=e+"px"}var i="innerHeight"in window?window.innerHeight:document.documentElement.offsetHeight;switch(this.verticalPosition){case"top":if(this.topPanelElement)this.cartElement.style.top=this.topPanelElement.offsetHeight+5+"px";break;
17427case"vcenter":this.setVerticalCenter(i);break}if(this.productsElement){var s=this.cartElement.querySelector("[data-role='basket-item-list']");if(this.cartClosed){if(this.maxHeight){BX.removeClass(this.cartElement,"bx-max-height");if(s)s.style.top="auto";this.maxHeight=false}}else{if(this.maxHeight){if(this.productsElement.scrollHeight==this.productsElement.clientHeight){BX.removeClass(this.cartElement,"bx-max-height");if(s)s.style.top="auto";this.maxHeight=false}}else{if(this.verticalPosition=="top"||this.verticalPosition=="vcenter"){if(this.cartElement.offsetTop+this.cartElement.offsetHeight>=i){BX.addClass(this.cartElement,"bx-max-height");if(s)s.style.top=82+"px";this.maxHeight=true}}else{if(this.cartElement.offsetHeight>=i){BX.addClass(this.cartElement,"bx-max-height");if(s)s.style.top=82+"px";this.maxHeight=true}}}}if(this.verticalPosition=="vcenter")this.setVerticalCenter(i)}},refreshCart:function(t){if(this.itemRemoved){this.itemRemoved=false;return}t.sessid=BX.bitrix_sessid();t.siteId=this.siteId;t.templateName=this.templateName;t.arParams=this.arParams;BX.ajax({url:this.ajaxPath,method:"POST",dataType:"html",data:t,onsuccess:this.setCartBodyClosure})},setCartBody:function(t){if(this.cartElement)this.cartElement.innerHTML=t.replace(/#CURRENT_URL#/g,this.currentUrl);if(this.fixedPosition)setTimeout(this.fixAfterRenderClosure,100)},removeItemFromCart:function(t){this.refreshCart({sbblRemoveItemFromCart:t});this.itemRemoved=true;BX.onCustomEvent("OnBasketChange")}};
17428/* End */
17429;
17430; /* Start:"a:4:{s:4:"full";s:98:"/local/templates/sever/components/bitrix/catalog.section/calc-form-multi/script.js?179059330020356";s:6:"source";s:82:"/local/templates/sever/components/bitrix/catalog.section/calc-form-multi/script.js";s:3:"min";s:0:"";s:3:"map";s:0:"";}"*/
17431
17432class CalcFormBlock {
17433
17434    constructor(materials, sections, items, updateCallback) {
17435        this.materials = materials
17436        this.sections = sections
17437        this.items = items
17438        this.updateCallback = updateCallback
17439        this.selectedItem = {
17440            price: null,
17441            quantity: null,
17442            measure: null,
17443            id: null,
17444        }
17445
17446        this.materialSelector = this.createMaterialSelector()
17447        this.sectionSelector = this.createSectionSelector()
17448        this.itemSelector = this.createItemSelector()
17449        this.quantityInput = this.createQuantityInput()
17450        this.materialChangeHandler()
17451    }
17452
17453    createMaterialSelector() {
17454        const select = document.createElement('select')
17455        select.setAttribute('name', 'material')
17456        select.setAttribute('class', 'my-sel')
17457        select.setAttribute('id', 'material')
17458        select.innerHTML = this.materials.map(material => `<option value="${material.code}">${material.name}</option>`).join('')
17459        this.materialSelector = select
17460        this.materialSelector.addEventListener('change', () => {
17461            this.materialChangeHandler()
17462        })
17463        return select
17464    }
17465
17466    createSectionSelector() {
17467        const select = document.createElement('select')
17468        select.setAttribute('name', 'section')
17469        select.setAttribute('class', 'my-sel')
17470        select.setAttribute('id', 'section')
17471        select.innerHTML = this.sections.map(section => `
17472            <option value="${section.id}" data-materials="${section.materials.join(',')}">
17473                ${section.name}
17474            </option>
17475        `).join('')
17476        this.sectionSelector = select
17477        this.sectionSelector.addEventListener('change', () => {
17478            this.sectionChangeHandler()
17479        })
17480        return select
17481    }
17482
17483    createItemSelector() {
17484        const select = document.createElement('select')
17485        select.setAttribute('name', 'item')
17486        select.setAttribute('class', 'my-sel')
17487        select.setAttribute('id', 'item')
17488
17489        select.innerHTML = this.items.map(item => `
17490            <option data-material="${item.material}"
17491                    data-section="${item.sections}"
17492                    data-measure="${item.measure}"
17493                    data-price="${item.price}"
17494                    value="${item.id}">
17495                    ${item.name}
17496            </option>
17497        `).join('')
17498
17499        this.itemSelector = select
17500        select.addEventListener('change', () => {
17501            this.itemChangeHandler()
17502        })
17503        return select
17504    }
17505
17506    createQuantityInput() {
17507        const quantityInput = document.createElement('input')
17508        quantityInput.setAttribute('data-entity', 'quantity')
17509        quantityInput.setAttribute('name', 'quantity')
17510        quantityInput.setAttribute('type', 'number')
17511        quantityInput.setAttribute('value', '1')
17512
17513        return quantityInput
17514    }
17515
17516    materialChangeHandler() {
17517        const selectedOption = this.materialSelector.options[this.materialSelector.selectedIndex]
17518        const material = selectedOption.value
17519        let isSectionSelected = false
17520        Array.from(this.sectionSelector.options).forEach(option => {
17521
17522            const materials = option.getAttribute('data-materials').split(',').map(material => material.trim())
17523
17524            if (materials.includes(material)) {
17525                option.style.display = 'block'
17526                if(!isSectionSelected) {
17527                    isSectionSelected = true
17528                    option.selected = true
17529                }
17530            } else {
17531                option.style.display = 'none'
17532            }
17533
17534        })
17535        this.sectionChangeHandler()
17536    }
17537
17538    sectionChangeHandler() {
17539        const selectedOption = this.sectionSelector.options[this.sectionSelector.selectedIndex]
17540        const section = Number.parseInt(selectedOption.value)
17541        let isItemSelected = false
17542        Array.from(this.itemSelector.options).forEach(option => {
17543
17544            const itemSection = Number.parseInt(option.getAttribute('data-section'))
17545
17546            if (itemSection === section) {
17547                option.style.display = 'block'
17548                if(!isItemSelected) {
17549                    isItemSelected = true
17550                    option.selected = true
17551                }
17552            } else {
17553                option.style.display = 'none'
17554            }
17555
17556        })
17557        this.itemChangeHandler()
17558    }
17559
17560    itemChangeHandler() {
17561        const option = this.itemSelector.options[this.itemSelector.selectedIndex]
17562        this.selectedItem.price = Number.parseFloat(option.getAttribute('data-price'))
17563        this.selectedItem.measure = option.getAttribute('data-measure')
17564        this.selectedItem.quantity = 1
17565        this.quantityInput.value = this.selectedItem.quantity
17566        this.selectedItem.id = option.value
17567
17568        this.updateCallback(this.selectedItem)
17569    }
17570
17571    quantityChangeHandler(fn) {
17572        const newValue = fn(this.selectedItem.quantity)
17573        if (newValue > 0) {
17574            this.selectedItem.quantity = newValue
17575        }
17576
17577        this.quantityInput.value = this.selectedItem.quantity
17578        this.updateCallback(this.selectedItem)
17579    }
17580
17581    renderItemSelector(selector, id, labelText, size) {
17582        const col = document.createElement('div')
17583        size.forEach(className => col.classList.add(className))
17584
17585        const formGroup = document.createElement('div')
17586        formGroup.classList.add('form-group')
17587
17588        const label = document.createElement('label')
17589        label.setAttribute('for', id)
17590        label.innerHTML = `<span>${labelText}</span>`
17591
17592        const select = document.createElement('div')
17593        select.classList.add('select')
17594        select.appendChild(selector)
17595
17596        formGroup.appendChild(label)
17597        formGroup.appendChild(select)
17598        col.appendChild(formGroup)
17599        return col
17600    }
17601
17602    renderQuantityBlock(id, labelText, sizes) {
17603        const col = document.createElement('div')
17604        col.classList.add(...sizes)
17605
17606        const label = document.createElement('label')
17607        label.setAttribute('for', id)
17608        label.innerHTML = `<span>${labelText}</span>`
17609
17610        col.appendChild(label)
17611
17612        const quantityBlock = document.createElement('div')
17613        quantityBlock.classList.add('calc-form__form__quantity', 'flex', 'space-between')
17614        col.appendChild(quantityBlock)
17615
17616        const quantityDown = document.createElement('a')
17617        quantityDown.setAttribute('data-entity', 'quantityDown')
17618        quantityDown.setAttribute('id', `calcQuantityDown${id}`)
17619        quantityDown.classList.add('calc-form__form__quantity-minus', 'minus')
17620        quantityDown.innerHTML = '-'
17621        quantityBlock.appendChild(quantityDown)
17622        quantityDown.addEventListener('click', () => {
17623            this.quantityChangeHandler((v) => v - 1)
17624        })
17625
17626
17627        this.quantityInput.setAttribute('id', `calcQuantity${id}`)
17628
17629        const quantityUp = document.createElement('a')
17630        quantityUp.setAttribute('data-entity', 'quantityUp')
17631        quantityUp.setAttribute('id', `calcQuantityUp${id}`)
17632        quantityUp.classList.add('calc-form__form__quantity-plus', 'plus')
17633        quantityUp.innerHTML = '+'
17634
17635        quantityUp.addEventListener('click', () => {
17636            this.quantityChangeHandler((v) => v + 1)
17637        })
17638
17639        quantityBlock.appendChild(quantityDown)
17640        quantityBlock.appendChild(this.quantityInput)
17641        quantityBlock.appendChild(quantityUp)
17642
17643        col.appendChild(quantityBlock)
17644        return col
17645    }
17646
17647    render(id) {
17648
17649        this.materialSelector.setAttribute('name', 'material' + id)
17650        this.sectionSelector.setAttribute('name', 'section' + id)
17651        this.itemSelector.setAttribute('name', 'item' + id)
17652
17653        this.materialSelector.onchange = () => {
17654            console.log('materialChangeHandler')
17655            this.materialChangeHandler()
17656        }
17657
17658        this.sectionSelector.onchange = () => {
17659            console.log('sectionChangeHandler')
17660            this.sectionChangeHandler()
17661        }
17662
17663        this.itemSelector.onchange = () => {
17664            console.log('itemChangeHandler')
17665            this.itemChangeHandler()
17666        }
17667
17668        const wrapper = document.createElement('div')
17669        wrapper.classList.add('row')
17670
17671        wrapper.appendChild(this.renderItemSelector(this.materialSelector, 'material' + id, 'Древесина', ['col-12', 'col-md-6']))
17672        wrapper.appendChild(this.renderItemSelector(this.sectionSelector, 'section' + id , 'Тип', ['col-12', 'col-md-6']))
17673        wrapper.appendChild(this.renderItemSelector(this.itemSelector, 'item' + id, 'Размеры', ['col-12', 'col-md-8']))
17674
17675        wrapper.appendChild(this.renderQuantityBlock("quantity" + id, 'Количество', ['col-12', 'col-md-4']))
17676
17677        return wrapper
17678    }
17679
17680}
17681
17682
17683document.addEventListener('DOMContentLoaded', () => {
17684  document.querySelectorAll('[data-entity="calc"]').forEach(calc => {
17685    const root = calc.querySelector(`.calc-form__items`);
17686    const priceBlock = calc.querySelector(`[data-entity="price"]`);
17687    const addBtn = calc.querySelector(`[data-entity="add"]`);
17688    const removeBtn = calc.querySelector(`[data-entity="remove"]`);
17689    const submit = calc.querySelector(`[data-entity="submit"]`);
17690
17691
17692    const calcFormBlocksList = [];
17693
17694    const updateCalcItemHook = (_) => {
17695        console.log(calcFormBlocksList.map(block => block.selectedItem))
17696        const totalPrice = calcFormBlocksList.reduce((acc, block) => acc + block.selectedItem.price * block.selectedItem.quantity, 0)
17697
17698        priceBlock.innerHTML = `${totalPrice} руб.`
17699
17700        if (calcFormBlocksList.length === 1) {
17701            removeBtn.style.display = 'none'
17702        } else {
17703            removeBtn.style.display = 'block'
17704        }
17705    }
17706
17707    const addCalcItem = () => {
17708        calcFormBlocksList.push(new CalcFormBlock(window.initData.materials, window.initData.sections, window.initData.items, updateCalcItemHook))
17709
17710        const lastBlock = calcFormBlocksList[calcFormBlocksList.length - 1]
17711        lastBlock.updateCallback(lastBlock.selectedItem)
17712        root.appendChild(lastBlock.render(calcFormBlocksList.length - 1))
17713
17714        updateCalcItemHook()
17715    }
17716
17717    const removeCalcItem = () => {
17718        if (calcFormBlocksList.length === 1) return
17719        calcFormBlocksList.pop()
17720
17721        root.removeChild(root.lastChild)
17722
17723        updateCalcItemHook()
17724    }
17725
17726    addCalcItem()
17727
17728    addBtn.addEventListener('click', () => {
17729        addCalcItem()
17730    })
17731
17732    removeBtn.addEventListener('click', () => {
17733        removeCalcItem()
17734    })
17735
17736    submit.addEventListener('click', () => {
17737        const urls = calcFormBlocksList.map(block => {
17738            return {
17739                url: `?action=BUY&id=${block.selectedItem.id}`,
17740                params: {
17741                    'ajax_basket': 'Y',
17742                    'quantity': block.selectedItem.quantity
17743                },
17744                isFinished: false
17745            }
17746        })
17747
17748        urls.forEach(({url, params}, index) => {
17749            BX.ajax({
17750                method: 'POST',
17751                dataType: 'json',
17752                url: url,
17753                data: params,
17754                onsuccess: function(data) {
17755                    urls[index].isFinished = true
17756                    if (urls.every(url => url.isFinished)) {
17757                        window.location.href = '/cart/'
17758                    }
17759                }
17760            });
17761        })
17762    })
17763  })
17764})
17765
17766
17767/* ==========================================================================
17768   Кастомные выпадающие списки калькулятора (tz6, 13.08.2026)
17769
17770   Нативный <select> остаётся в DOM и продолжает нести всю логику каскада
17771   (материал → тип → размер, фильтрация через option.style.display) — поверх
17772   него рисуется свой список, одинаковый во всех браузерах. Заодно чинится
17773   Safari: он игнорирует display:none у <option>, и в нативном списке там
17774   были видны все 478 позиций без фильтрации.
17775
17776   Выбор пункта: select.value + событие change — каскад ядра отрабатывает
17777   как от нативного выбора. Пункты списка строятся заново при КАЖДОМ
17778   открытии из актуального состояния select — поэтому каскадные изменения
17779   (ядро меняет опции напрямую, без событий) всегда отражены.
17780
17781   У длинных списков (от 16 опций — это «Размеры», 478 позиций) в шапке
17782   панели есть поиск: фильтрует без перезагрузки, ё=е.
17783   ========================================================================== */
17784;(function () {
17785    'use strict';
17786
17787    var SEARCH_FROM = 16;
17788
17789    function norm(s) {
17790        /* ё=е, латинская x = кириллическая х (в размерах «14х120» — кириллица,
17791           а с клавиатуры часто набирают латиницей) */
17792        return s.toLowerCase().replace(/ё/g, 'е').replace(/[x×]/g, 'х').trim();
17793    }
17794
17795    /* пословный фильтр: каждое слово запроса должно встретиться в названии */
17796    function matches(text, query) {
17797        var words = query.split(/\s+/).filter(Boolean);
17798        for (var i = 0; i < words.length; i++) {
17799            if (text.indexOf(words[i]) === -1) return false;
17800        }
17801        return true;
17802    }
17803
17804    function visibleOptions(sel) {
17805        return Array.prototype.filter.call(sel.options, function (o) {
17806            return o.style.display !== 'none';
17807        });
17808    }
17809
17810    function closeAll(except) {
17811        document.querySelectorAll('.select.csel-open').forEach(function (w) {
17812            if (w === except) return;
17813            w.classList.remove('csel-open', 'csel-up');
17814            var t = w.querySelector('.csel__toggle');
17815            if (t) t.setAttribute('aria-expanded', 'false');
17816        });
17817    }
17818
17819    function initSelect(sel) {
17820        if (sel.dataset.cselReady) return;
17821        var wrap = sel.closest('.select');
17822        if (!wrap) return;
17823        sel.dataset.cselReady = '1';
17824
17825        var toggle = document.createElement('button');
17826        toggle.type = 'button';
17827        toggle.className = 'csel__toggle';
17828        toggle.setAttribute('aria-haspopup', 'listbox');
17829        toggle.setAttribute('aria-expanded', 'false');
17830
17831        var drop = document.createElement('div');
17832        drop.className = 'csel__drop';
17833
17834        var list = document.createElement('div');
17835        list.className = 'csel__list';
17836        drop.appendChild(list);
17837
17838        var search = null;
17839
17840        wrap.appendChild(toggle);
17841        wrap.appendChild(drop);
17842        wrap.classList.add('csel');
17843
17844        function syncLabel() {
17845            var o = sel.options[sel.selectedIndex];
17846            toggle.textContent = o ? o.textContent.trim() : '';
17847        }
17848
17849        function build(query) {
17850            list.innerHTML = '';
17851            var q = norm(query || '');
17852            visibleOptions(sel).forEach(function (o) {
17853                var text = o.textContent.trim();
17854                if (q && !matches(norm(text), q)) return;
17855                var it = document.createElement('button');
17856                it.type = 'button';
17857                it.className = 'csel__item' + (o.selected ? ' is-selected' : '');
17858                it.textContent = text;
17859                it.addEventListener('click', function () {
17860                    sel.value = o.value;
17861                    sel.dispatchEvent(new Event('change', { bubbles: true }));
17862                    close();
17863                    toggle.focus();
17864                });
17865                list.appendChild(it);
17866            });
17867            if (!list.children.length) {
17868                var empty = document.createElement('div');
17869                empty.className = 'csel__empty';
17870                empty.textContent = 'Ничего не найдено';
17871                list.appendChild(empty);
17872            }
17873        }
17874
17875        function open() {
17876            closeAll(wrap);
17877            if (!search && visibleOptions(sel).length >= SEARCH_FROM) {
17878                search = document.createElement('input');
17879                search.type = 'text';
17880                search.className = 'csel__search';
17881                search.placeholder = 'Поиск по размерам';
17882                search.setAttribute('aria-label', 'Поиск по вариантам');
17883                search.addEventListener('input', function () { build(search.value); });
17884                drop.insertBefore(search, list);
17885            }
17886            if (search) search.value = '';
17887            build('');
17888            wrap.classList.add('csel-open');
17889            toggle.setAttribute('aria-expanded', 'true');
17890
17891            // если снизу не хватает места — раскрываем вверх
17892            var r = toggle.getBoundingClientRect();
17893            var dropH = Math.min(340, drop.scrollHeight || 340);
17894            wrap.classList.toggle('csel-up', r.bottom + dropH > window.innerHeight && r.top > dropH);
17895
17896            if (search) search.focus();
17897        }
17898
17899        function close() {
17900            wrap.classList.remove('csel-open', 'csel-up');
17901            toggle.setAttribute('aria-expanded', 'false');
17902        }
17903
17904        toggle.addEventListener('click', function () {
17905            wrap.classList.contains('csel-open') ? close() : open();
17906        });
17907
17908        /* каскад ядра меняет соседние селекты синхронно из change-обработчика —
17909           после завершения обновляем подписи всех полей ряда */
17910        sel.addEventListener('change', function () {
17911            var row = sel.closest('.row') || document;
17912            setTimeout(function () {
17913                row.querySelectorAll('select[data-csel-ready]').forEach(function (s) {
17914                    var w = s.closest('.select');
17915                    var t = w && w.querySelector('.csel__toggle');
17916                    var o = s.options[s.selectedIndex];
17917                    if (t) t.textContent = o ? o.textContent.trim() : '';
17918                });
17919            }, 0);
17920        });
17921
17922        syncLabel();
17923    }
17924
17925    function initAllIn(root) {
17926        (root || document).querySelectorAll('.calc-form__items select').forEach(initSelect);
17927    }
17928
17929    /* закрытие по настоящему клику вне (автопрокрутка слайдера на главной
17930       каждые 7 с генерирует программные клики — их игнорируем) */
17931    document.addEventListener('click', function (e) {
17932        if (!e.isTrusted) return;
17933        if (e.target && e.target.closest && e.target.closest('.select.csel')) return;
17934        closeAll(null);
17935    });
17936
17937    /* Escape закрывает только раскрытый список; модалка при этом остаётся
17938       открытой (bootstrap слушает keydown позже нас — глушим всплытие) */
17939    document.addEventListener('keydown', function (e) {
17940        if (e.key !== 'Escape' && e.key !== 'Esc' && e.keyCode !== 27) return;
17941        var openWrap = document.querySelector('.select.csel-open');
17942        if (!openWrap) return;
17943        e.stopPropagation();
17944        openWrap.classList.remove('csel-open', 'csel-up');
17945        var t = openWrap.querySelector('.csel__toggle');
17946        if (t) { t.setAttribute('aria-expanded', 'false');
17946 t.focus(); }
17947    }, true);
17948
17949    function boot() {
17950        initAllIn(document);
17951        /* кнопка «Добавить позицию в расчёт» создаёт новые ряды — подхватываем */
17952        document.querySelectorAll('.calc-form__items').forEach(function (rootEl) {
17953            new MutationObserver(function () { initAllIn(rootEl); }).observe(rootEl, { childList: true, subtree: true });
17954        });
17955    }
17956
17957    if (document.readyState === 'loading') {
17958        document.addEventListener('DOMContentLoaded', boot);
17959    } else {
17960        boot();
17961    }
17962})();
17963
17964/* End */
17965;; /* /local/templates/sever/build/main.e0b7c601.js?1790593303722209*/
17966; /* /local/templates/sever/build/common.e0b7c601.js?1790593303256616*/
17967; /* /local/templates/sever/components/bitrix/search.suggest.input/.default/script.js?179059330012503*/
17968; /* /local/templates/sever/components/bitrix/sale.basket.basket.line/.default/script.min.js?17905933003876*/
17969; /* /local/templates/sever/components/bitrix/catalog.section/calc-form-multi/script.js?179059330020356*/
17970
17971//# sourceMappingURL=template_280e805cc2a7416f2ee9de4217c89214.map.js

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.