PageSourceSearch

https://www.qt.io/hubfs/hub_generated/template_assets/1/4641660101…/template_swiper-bundle.min.js

js qt.io collected 2026-10-01 07:35:06 UTC 284,876 bytes, 5,973 lines download raw bytes

1/**
2 * Swiper 8.4.7
3 * Most modern mobile touch slider and framework with hardware accelerated transitions
4 * https://swiperjs.com
5 *
6 * Copyright 2014-2023 Vladimir Kharlampidi
7 *
8 * Released under the MIT License
9 *
10 * Released on: January 30, 2023
11 */
12
13!(function (e, t) {
14    'object' == typeof exports && 'undefined' != typeof module
15        ? (module.exports = t())
16        : 'function' == typeof define && define.amd
17          ? define(t)
18          : ((e = 'undefined' != typeof globalThis ? globalThis : e || self).Swiper = t());
19})(this, function () {
20    'use strict';
21    function e(e) {
22        return null !== e && 'object' == typeof e && 'constructor' in e && e.constructor === Object;
23    }
24    function t(s, a) {
25        (void 0 === s && (s = {}),
26            void 0 === a && (a = {}),
27            Object.keys(a).forEach((i) => {
28                void 0 === s[i] ? (s[i] = a[i]) : e(a[i]) && e(s[i]) && Object.keys(a[i]).length > 0 && t(s[i], a[i]);
29            }));
30    }
31    const s = {
32        body: {},
33        addEventListener() {},
34        removeEventListener() {},
35        activeElement: { blur() {}, nodeName: '' },
36        querySelector: () => null,
37        querySelectorAll: () => [],
38        getElementById: () => null,
39        createEvent: () => ({ initEvent() {} }),
40        createElement: () => ({
41            children: [],
42            childNodes: [],
43            style: {},
44            setAttribute() {},
45            getElementsByTagName: () => [],
46        }),
47        createElementNS: () => ({}),
48        importNode: () => null,
49        location: { hash: '', host: '', hostname: '', href: '', origin: '', pathname: '', protocol: '', search: '' },
50    };
51    function a() {
52        const e = 'undefined' != typeof document ? document : {};
53        return (t(e, s), e);
54    }
55    const i = {
56        document: s,
57        navigator: { userAgent: '' },
58        location: { hash: '', host: '', hostname: '', href: '', origin: '', pathname: '', protocol: '', search: '' },
59        history: { replaceState() {}, pushState() {}, go() {}, back() {} },
60        CustomEvent: function () {
61            return this;
62        },
63        addEventListener() {},
64        removeEventListener() {},
65        getComputedStyle: () => ({ getPropertyValue: () => '' }),
66        Image() {},
67        Date() {},
68        screen: {},
69        setTimeout() {},
70        clearTimeout() {},
71        matchMedia: () => ({}),
72        requestAnimationFrame: (e) => ('undefined' == typeof setTimeout ? (e(), null) : setTimeout(e, 0)),
73        cancelAnimationFrame(e) {
74            'undefined' != typeof setTimeout && clearTimeout(e);
75        },
76    };
77    function r() {
78        const e = 'undefined' != typeof window ? window : {};
79        return (t(e, i), e);
80    }
81    class n extends Array {
82        constructor(e) {
83            'number' == typeof e
84                ? super(e)
85                : (super(...(e || [])),
86                  (function (e) {
87                      const t = e.__proto__;
88                      Object.defineProperty(e, '__proto__', {
89                          get: () => t,
90                          set(e) {
91                              t.__proto__ = e;
92                          },
93                      });
94                  })(this));
95        }
96    }
97    function l(e) {
98        void 0 === e && (e = []);
99        const t = [];
100        return (
101            e.forEach((e) => {
102                Array.isArray(e) ? t.push(...l(e)) : t.push(e);
103            }),
104            t
105        );
106    }
107    function o(e, t) {
108        return Array.prototype.filter.call(e, t);
109    }
110    function d(e, t) {
111        const s = r(),
112            i = a();
113        let l = [];
114        if (!t && e instanceof n) return e;
115        if (!e) return new n(l);
116        if ('string' == typeof e) {
117            const s = e.trim();
118            if (s.indexOf('<') >= 0 && s.indexOf('>') >= 0) {
119                let e = 'div';
120                (0 === s.indexOf('<li') && (e = 'ul'),
121                    0 === s.indexOf('<tr') && (e = 'tbody'),
122                    (0 !== s.indexOf('<td') && 0 !== s.indexOf('<th')) || (e = 'tr'),
123                    0 === s.indexOf('<tbody') && (e = 'table'),
124                    0 === s.indexOf('<option') && (e = 'select'));
125                const t = i.createElement(e);
126                t.innerHTML = s;
127                for (let e = 0; e < t.childNodes.length; e += 1) l.push(t.childNodes[e]);
128            } else
129                l = (function (e, t) {
130                    if ('string' != typeof e) return [e];
131                    const s = [],
132                        a = t.querySelectorAll(e);
133                    for (let e = 0; e < a.length; e += 1) s.push(a[e]);
134                    return s;
135                })(e.trim(), t || i);
136        } else if (e.nodeType || e === s || e === i) l.push(e);
137        else if (Array.isArray(e)) {
138            if (e instanceof n) return e;
139            l = e;
140        }
141        return new n(
142            (function (e) {
143                const t = [];
144                for (let s = 0; s < e.length; s += 1) -1 === t.indexOf(e[s]) && t.push(e[s]);
145                return t;
146            })(l)
147        );
148    }
149    d.fn = n.prototype;
150    const c = {
151        addClass: function () {
152            for (var e = arguments.length, t = new Array(e), s = 0; s < e; s++) t[s] = arguments[s];
153            const a = l(t.map((e) => e.split(' ')));
154            return (
155                this.forEach((e) => {
156                    e.classList.add(...a);
157                }),
158                this
159            );
160        },
161        removeClass: function () {
162            for (var e = arguments.length, t = new Array(e), s = 0; s < e; s++) t[s] = arguments[s];
163            const a = l(t.map((e) => e.split(' ')));
164            return (
165                this.forEach((e) => {
166                    e.classList.remove(...a);
167                }),
168                this
169            );
170        },
171        hasClass: function () {
172            for (var e = arguments.length, t = new Array(e), s = 0; s < e; s++) t[s] = arguments[s];
173            const a = l(t.map((e) => e.split(' ')));
174            return o(this, (e) => a.filter((t) => e.classList.contains(t)).length > 0).length > 0;
175        },
176        toggleClass: function () {
177            for (var e = arguments.length, t = new Array(e), s = 0; s < e; s++) t[s] = arguments[s];
178            const a = l(t.map((e) => e.split(' ')));
179            this.forEach((e) => {
180                a.forEach((t) => {
181                    e.classList.toggle(t);
182                });
183            });
184        },
185        attr: function (e, t) {
186            if (1 === arguments.length && 'string' == typeof e) return this[0] ? this[0].getAttribute(e) : void 0;
187            for (let s = 0; s < this.length; s += 1)
188                if (2 === arguments.length) this[s].setAttribute(e, t);
189                else for (const t in e) ((this[s][t] = e[t]), this[s].setAttribute(t, e[t]));
190            return this;
191        },
192        removeAttr: function (e) {
193            for (let t = 0; t < this.length; t += 1) this[t].removeAttribute(e);
194            return this;
195        },
196        transform: function (e) {
197            for (let t = 0; t < this.length; t += 1) this[t].style.transform = e;
198            return this;
199        },
200        transition: function (e) {
201            for (let t = 0; t < this.length; t += 1)
202                this[t].style.transitionDuration = 'string' != typeof e ? `${e}ms` : e;
203            return this;
204        },
205        on: function () {
206            for (var e = arguments.length, t = new Array(e), s = 0; s < e; s++) t[s] = arguments[s];
207            let [a, i, r, n] = t;
208            function l(e) {
209                const t = e.target;
210                if (!t) return;
211                const s = e.target.dom7EventData || [];
212                if ((s.indexOf(e) < 0 && s.unshift(e), d(t).is(i))) r.apply(t, s);
213                else {
214                    const e = d(t).parents();
215                    for (let t = 0; t < e.length; t += 1) d(e[t]).is(i) && r.apply(e[t], s);
216                }
217            }
218            function o(e) {
219                const t = (e && e.target && e.target.dom7EventData) || [];
220                (t.indexOf(e) < 0 && t.unshift(e), r.apply(this, t));
221            }
222            ('function' == typeof t[1] && (([a, r, n] = t), (i = void 0)), n || (n = !1));
223            const c = a.split(' ');
224            let p;
225            for (let e = 0; e < this.length; e += 1) {
226                const t = this[e];
227                if (i)
228                    for (p = 0; p < c.length; p += 1) {
229                        const e = c[p];
230                        (t.dom7LiveListeners || (t.dom7LiveListeners = {}),
231                            t.dom7LiveListeners[e] || (t.dom7LiveListeners[e] = []),
232                            t.dom7LiveListeners[e].push({ listener: r, proxyListener: l }),
233                            t.addEventListener(e, l, n));
234                    }
235                else
236                    for (p = 0; p < c.length; p += 1) {
237                        const e = c[p];
238                        (t.dom7Listeners || (t.dom7Listeners = {}),
239                            t.dom7Listeners[e] || (t.dom7Listeners[e] = []),
240                            t.dom7Listeners[e].push({ listener: r, proxyListener: o }),
241                            t.addEventListener(e, o, n));
242                    }
243            }
244            return this;
245        },
246        off: function () {
247            for (var e = arguments.length, t = new Array(e), s = 0; s < e; s++) t[s] = arguments[s];
248            let [a, i, r, n] = t;
249            ('function' == typeof t[1] && (([a, r, n] = t), (i = void 0)), n || (n = !1));
250            const l = a.split(' ');
251            for (let e = 0; e < l.length; e += 1) {
252                const t = l[e];
253                for (let e = 0; e < this.length; e += 1) {
254                    const s = this[e];
255                    let a;
256                    if (
257                        (!i && s.dom7Listeners
258                            ? (a = s.dom7Listeners[t])
259                            : i && s.dom7LiveListeners && (a = s.dom7LiveListeners[t]),
260                        a && a.length)
261                    )
262                        for (let e = a.length - 1; e >= 0; e -= 1) {
263                            const i = a[e];
264                            (r && i.listener === r) ||
265                            (r && i.listener && i.listener.dom7proxy && i.listener.dom7proxy === r)
266                                ? (s.removeEventListener(t, i.proxyListener, n), a.splice(e, 1))
267                                : r || (s.removeEventListener(t, i.proxyListener, n), a.splice(e, 1));
268                        }
269                }
270            }
271            return this;
272        },
273        trigger: function () {
274            const e = r();
275            for (var t = arguments.length, s = new Array(t), a = 0; a < t; a++) s[a] = arguments[a];
276            const i = s[0].split(' '),
277                n = s[1];
278            for (let t = 0; t < i.length; t += 1) {
279                const a = i[t];
280                for (let t = 0; t < this.length; t += 1) {
281                    const i = this[t];
282                    if (e.CustomEvent) {
283                        const t = new e.CustomEvent(a, { detail: n, bubbles: !0, cancelable: !0 });
284                        ((i.dom7EventData = s.filter((e, t) => t > 0)),
285                            i.dispatchEvent(t),
286                            (i.dom7EventData = []),
287                            delete i.dom7EventData);
288                    }
289                }
290            }
291            return this;
292        },
293        transitionEnd: function (e) {
294            const t = this;
295            return (
296                e &&
297                    t.on('transitionend', function s(a) {
298                        a.target === this && (e.call(this, a), t.off('transitionend', s));
299                    }),
300                this
301            );
302        },
303        outerWidth: function (e) {
304            if (this.length > 0) {
305                if (e) {
306                    const e = this.styles();
307                    return (
308                        this[0].offsetWidth +
309                        parseFloat(e.getPropertyValue('margin-right')) +
310                        parseFloat(e.getPropertyValue('margin-left'))
311                    );
312                }
313                return this[0].offsetWidth;
314            }
315            return null;
316        },
317        outerHeight: function (e) {
318            if (this.length > 0) {
319                if (e) {
320                    const e = this.styles();
321                    return (
322                        this[0].offsetHeight +
323                        parseFloat(e.getPropertyValue('margin-top')) +
324                        parseFloat(e.getPropertyValue('margin-bottom'))
325                    );
326                }
327                return this[0].offsetHeight;
328            }
329            return null;
330        },
331        styles: function () {
332            const e = r();
333            return this[0] ? e.getComputedStyle(this[0], null) : {};
334        },
335        offset: function () {
336            if (this.length > 0) {
337                const e = r(),
338                    t = a(),
339                    s = this[0],
340                    i = s.getBoundingClientRect(),
341                    n = t.body,
342                    l = s.clientTop || n.clientTop || 0,
343                    o = s.clientLeft || n.clientLeft || 0,
344                    d = s === e ? e.scrollY : s.scrollTop,
345                    c = s === e ? e.scrollX : s.scrollLeft;
346                return { top: i.top + d - l, left: i.left + c - o };
347            }
348            return null;
349        },
350        css: function (e, t) {
351            const s = r();
352            let a;
353            if (1 === arguments.length) {
354                if ('string' != typeof e) {
355                    for (a = 0; a < this.length; a += 1) for (const t in e) this[a].style[t] = e[t];
356                    return this;
357                }
358                if (this[0]) return s.getComputedStyle(this[0], null).getPropertyValue(e);
359            }
360            if (2 === arguments.length && 'string' == typeof e) {
361                for (a = 0; a < this.length; a += 1) this[a].style[e] = t;
362                return this;
363            }
364            return this;
365        },
366        each: function (e) {
367            return e
368                ? (this.forEach((t, s) => {
369                      e.apply(t, [t, s]);
370                  }),
371                  this)
372                : this;
373        },
374        html: function (e) {
375            if (void 0 === e) return this[0] ? this[0].innerHTML : null;
376            for (let t = 0; t < this.length; t += 1) this[t].innerHTML = e;
377            return this;
378        },
379        text: function (e) {
380            if (void 0 === e) return this[0] ? this[0].textContent.trim() : null;
381            for (let t = 0; t < this.length; t += 1) this[t].textContent = e;
382            return this;
383        },
384        is: function (e) {
385            const t = r(),
386                s = a(),
387                i = this[0];
388            let l, o;
389            if (!i || void 0 === e) return !1;
390            if ('string' == typeof e) {
391                if (i.matches) return i.matches(e);
392                if (i.webkitMatchesSelector) return i.webkitMatchesSelector(e);
393                if (i.msMatchesSelector) return i.msMatchesSelector(e);
394                for (l = d(e), o = 0; o < l.length; o += 1) if (l[o] === i) return !0;
395                return !1;
396            }
397            if (e === s) return i === s;
398            if (e === t) return i === t;
399            if (e.nodeType || e instanceof n) {
400                for (l = e.nodeType ? [e] : e, o = 0; o < l.length; o += 1) if (l[o] === i) return !0;
401                return !1;
402            }
403            return !1;
404        },
405        index: function () {
406            let e,
407                t = this[0];
408            if (t) {
409                for (e = 0; null !== (t = t.previousSibling); ) 1 === t.nodeType && (e += 1);
410                return e;
411            }
412        },
413        eq: function (e) {
414            if (void 0 === e) return this;
415            const t = this.length;
416            if (e > t - 1) return d([]);
417            if (e < 0) {
418                const s = t + e;
419                return d(s < 0 ? [] : [this[s]]);
420            }
421            return d([this[e]]);
422        },
423  
423      append: function () {
424            let e;
425            const t = a();
426            for (let s = 0; s < arguments.length; s += 1) {
427                e = s < 0 || arguments.length <= s ? void 0 : arguments[s];
428                for (let s = 0; s < this.length; s += 1)
429                    if ('string' == typeof e) {
430                        const a = t.createElement('div');
431                        for (a.innerHTML = e; a.firstChild; ) this[s].appendChild(a.firstChild);
432                    } else if (e instanceof n) for (let t = 0; t < e.length; t += 1) this[s].appendChild(e[t]);
433                    else this[s].appendChild(e);
434            }
435            return this;
436        },
437        prepend: function (e) {
438            const t = a();
439            let s, i;
440            for (s = 0; s < this.length; s += 1)
441                if ('string' == typeof e) {
442                    const a = t.createElement('div');
443                    for (a.innerHTML = e, i = a.childNodes.length - 1; i >= 0; i -= 1)
444                        this[s].insertBefore(a.childNodes[i], this[s].childNodes[0]);
445                } else if (e instanceof n)
446                    for (i = 0; i < e.length; i += 1) this[s].insertBefore(e[i], this[s].childNodes[0]);
447                else this[s].insertBefore(e, this[s].childNodes[0]);
448            return this;
449        },
450        next: function (e) {
451            return this.length > 0
452                ? e
453                    ? this[0].nextElementSibling && d(this[0].nextElementSibling).is(e)
454                        ? d([this[0].nextElementSibling])
455                        : d([])
456                    : this[0].nextElementSibling
457                      ? d([this[0].nextElementSibling])
458                      : d([])
459                : d([]);
460        },
461        nextAll: function (e) {
462            const t = [];
463            let s = this[0];
464            if (!s) return d([]);
465            for (; s.nextElementSibling; ) {
466                const a = s.nextElementSibling;
467                (e ? d(a).is(e) && t.push(a) : t.push(a), (s = a));
468            }
469            return d(t);
470        },
471        prev: function (e) {
472            if (this.length > 0) {
473                const t = this[0];
474                return e
475                    ? t.previousElementSibling && d(t.previousElementSibling).is(e)
476                        ? d([t.previousElementSibling])
477                        : d([])
478                    : t.previousElementSibling
479                      ? d([t.previousElementSibling])
480                      : d([]);
481            }
482            return d([]);
483        },
484        prevAll: function (e) {
485            const t = [];
486            let s = this[0];
487            if (!s) return d([]);
488            for (; s.previousElementSibling; ) {
489                const a = s.previousElementSibling;
490                (e ? d(a).is(e) && t.push(a) : t.push(a), (s = a));
491            }
492            return d(t);
493        },
494        parent: function (e) {
495            const t = [];
496            for (let s = 0; s < this.length; s += 1)
497                null !== this[s].parentNode &&
498                    (e ? d(this[s].parentNode).is(e) && t.push(this[s].parentNode) : t.push(this[s].parentNode));
499            return d(t);
500        },
501        parents: function (e) {
502            const t = [];
503            for (let s = 0; s < this.length; s += 1) {
504                let a = this[s].parentNode;
505                for (; a; ) (e ? d(a).is(e) && t.push(a) : t.push(a), (a = a.parentNode));
506            }
507            return d(t);
508        },
509        closest: function (e) {
510            let t = this;
511            return void 0 === e ? d([]) : (t.is(e) || (t = t.parents(e).eq(0)), t);
512        },
513        find: function (e) {
514            const t = [];
515            for (let s = 0; s < this.length; s += 1) {
516                const a = this[s].querySelectorAll(e);
517                for (let e = 0; e < a.length; e += 1) t.push(a[e]);
518            }
519            return d(t);
520        },
521        children: function (e) {
522            const t = [];
523            for (let s = 0; s < this.length; s += 1) {
524                const a = this[s].children;
525                for (let s = 0; s < a.length; s += 1) (e && !d(a[s]).is(e)) || t.push(a[s]);
526            }
527            return d(t);
528        },
529        filter: function (e) {
530            return d(o(this, e));
531        },
532        remove: function () {
533            for (let e = 0; e < this.length; e += 1) this[e].parentNode && this[e].parentNode.removeChild(this[e]);
534            return this;
535        },
536    };
537    function p(e, t) {
538        return (void 0 === t && (t = 0), setTimeout(e, t));
539    }
540    function u() {
541        return Date.now();
542    }
543    function h(e, t) {
544        void 0 === t && (t = 'x');
545        const s = r();
546        let a, i, n;
547        const l = (function (e) {
548            const t = r();
549            let s;
550            return (
551                t.getComputedStyle && (s = t.getComputedStyle(e, null)),
552                !s && e.currentStyle && (s = e.currentStyle),
553                s || (s = e.style),
554                s
555            );
556        })(e);
557        return (
558            s.WebKitCSSMatrix
559                ? ((i = l.transform || l.webkitTransform),
560                  i.split(',').length > 6 &&
561                      (i = i
562                          .split(', ')
563                          .map((e) => e.replace(',', '.'))
564                          .join(', ')),
565                  (n = new s.WebKitCSSMatrix('none' === i ? '' : i)))
566                : ((n =
567                      l.MozTransform ||
568                      l.OTransform ||
569                      l.MsTransform ||
570                      l.msTransform ||
571                      l.transform ||
572                      l.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,')),
573                  (a = n.toString().split(','))),
574            'x' === t && (i = s.WebKitCSSMatrix ? n.m41 : 16 === a.length ? parseFloat(a[12]) : parseFloat(a[4])),
575            'y' === t && (i = s.WebKitCSSMatrix ? n.m42 : 16 === a.length ? parseFloat(a[13]) : parseFloat(a[5])),
576            i || 0
577        );
578    }
579    function m(e) {
580        return (
581            'object' == typeof e &&
582            null !== e &&
583            e.constructor &&
584            'Object' === Object.prototype.toString.call(e).slice(8, -1)
585        );
586    }
587    function f(e) {
588        return 'undefined' != typeof window && void 0 !== window.HTMLElement
589            ? e instanceof HTMLElement
590            : e && (1 === e.nodeType || 11 === e.nodeType);
591    }
592    function g() {
593        const e = Object(arguments.length <= 0 ? void 0 : arguments[0]),
594            t = ['__proto__', 'constructor', 'prototype'];
595        for (let s = 1; s < arguments.length; s += 1) {
596            const a = s < 0 || arguments.length <= s ? void 0 : arguments[s];
597            if (null != a && !f(a)) {
598                const s = Object.keys(Object(a)).filter((e) => t.indexOf(e) < 0);
599                for (let t = 0, i = s.length; t < i; t += 1) {
600                    const i = s[t],
601                        r = Object.getOwnPropertyDescriptor(a, i);
602                    void 0 !== r &&
603                        r.enumerable &&
604                        (m(e[i]) && m(a[i])
605                            ? a[i].__swiper__
606                                ? (e[i] = a[i])
607                                : g(e[i], a[i])
608                            : !m(e[i]) && m(a[i])
609                              ? ((e[i] = {}), a[i].__swiper__ ? (e[i] = a[i]) : g(e[i], a[i]))
610                              : (e[i] = a[i]));
611                }
612            }
613        }
614        return e;
615    }
616    function v(e, t, s) {
617        e.style.setProperty(t, s);
618    }
619    function w(e) {
620        let { swiper: t, targetPosition: s, side: a } = e;
621        const i = r(),
622            n = -t.translate;
623        let l,
624            o = null;
625        const d = t.params.speed;
626        ((t.wrapperEl.style.scrollSnapType = 'none'), i.cancelAnimationFrame(t.cssModeFrameID));
627        const c = s > n ? 'next' : 'prev',
628            p = (e, t) => ('next' === c && e >= t) || ('prev' === c && e <= t),
629            u = () => {
630                ((l = new Date().getTime()), null === o && (o = l));
631                const e = Math.max(Math.min((l - o) / d, 1), 0),
632                    r = 0.5 - Math.cos(e * Math.PI) / 2;
633                let c = n + r * (s - n);
634                if ((p(c, s) && (c = s), t.wrapperEl.scrollTo({ [a]: c }), p(c, s)))
635                    return (
636                        (t.wrapperEl.style.overflow = 'hidden'),
637                        (t.wrapperEl.style.scrollSnapType = ''),
638                        setTimeout(() => {
639                            ((t.wrapperEl.style.overflow = ''), t.wrapperEl.scrollTo({ [a]: c }));
640                        }),
641                        void i.cancelAnimationFrame(t.cssModeFrameID)
642                    );
643                t.cssModeFrameID = i.requestAnimationFrame(u);
644            };
645        u();
646    }
647    let b, x, y;
648    function E() {
649        return (
650            b ||
651                (b = (function () {
652                    const e = r(),
653                        t = a();
654                    return {
655                        smoothScroll: t.documentElement && 'scrollBehavior' in t.documentElement.style,
656                        touch: !!('ontouchstart' in e || (e.DocumentTouch && t instanceof e.DocumentTouch)),
657                        passiveListener: (function () {
658                            let t = !1;
659                            try {
660                                const s = Object.defineProperty({}, 'passive', {
661                                    get() {
662                                        t = !0;
663                                    },
664                                });
665                                e.addEventListener('testPassiveListener', null, s);
666                            } catch (e) {}
667                            return t;
668                        })(),
669                        gestures: 'ongesturestart' in e,
670                    };
671                })()),
672            b
673        );
674    }
675    function C(e) {
676        return (
677            void 0 === e && (e = {}),
678            x ||
679                (x = (function (e) {
680                    let { userAgent: t } = void 0 === e ? {} : e;
681                    const s = E(),
682                        a = r(),
683                        i = a.navigator.platform,
684                        n = t || a.navigator.userAgent,
685                        l = { ios: !1, android: !1 },
686                        o = a.screen.width,
687                        d = a.screen.height,
688                        c = n.match(/(Android);?[\s\/]+([\d.]+)?/);
689                    let p = n.match(/(iPad).*OS\s([\d_]+)/);
690                    const u = n.match(/(iPod)(.*OS\s([\d_]+))?/),
691                        h = !p && n.match(/(iPhone\sOS|iOS)\s([\d_]+)/),
692                        m = 'Win32' === i;
693                    let f = 'MacIntel' === i;
694                    return (
695                        !p &&
696                            f &&
697                            s.touch &&
698                            [
699                                '1024x1366',
700                                '1366x1024',
701                                '834x1194',
702                                '1194x834',
703                                '834x1112',
704                                '1112x834',
705                                '768x1024',
706                                '1024x768',
707                                '820x1180',
708                                '1180x820',
709                                '810x1080',
710                                '1080x810',
711                            ].indexOf(`${o}x${d}`) >= 0 &&
712                            ((p = n.match(/(Version)\/([\d.]+)/)), p || (p = [0, 1, '13_0_0']), (f = !1)),
713                        c && !m && ((l.os = 'android'), (l.android = !0)),
714                        (p || h || u) && ((l.os = 'ios'), (l.ios = !0)),
715                        l
716                    );
717                })(e)),
718            x
719        );
720    }
721    function T() {
722        return (
723            y ||
724                (y = (function () {
725                    const e = r();
726                    return {
727                        isSafari: (function () {
728                            const t = e.navigator.userAgent.toLowerCase();
729                            return t.indexOf('safari') >= 0 && t.indexOf('chrome') < 0 && t.indexOf('android') < 0;
730                        })(),
731                        isWebView: /(iPhone|iPod|iPad).*AppleWeb
731Kit(?!.*Safari)/i.test(e.navigator.userAgent),
732                    };
733                })()),
734            y
735        );
736    }
737    Object.keys(c).forEach((e) => {
738        Object.defineProperty(d.fn, e, { value: c[e], writable: !0 });
739    });
740    var $ = {
741        on(e, t, s) {
742            const a = this;
743            if (!a.eventsListeners || a.destroyed) return a;
744            if ('function' != typeof t) return a;
745            const i = s ? 'unshift' : 'push';
746            return (
747                e.split(' ').forEach((e) => {
748                    (a.eventsListeners[e] || (a.eventsListeners[e] = []), a.eventsListeners[e][i](t));
749                }),
750                a
751            );
752        },
753        once(e, t, s) {
754            const a = this;
755            if (!a.eventsListeners || a.destroyed) return a;
756            if ('function' != typeof t) return a;
757            function i() {
758                (a.off(e, i), i.__emitterProxy && delete i.__emitterProxy);
759                for (var s = arguments.length, r = new Array(s), n = 0; n < s; n++) r[n] = arguments[n];
760                t.apply(a, r);
761            }
762            return ((i.__emitterProxy = t), a.on(e, i, s));
763        },
764        onAny(e, t) {
765            const s = this;
766            if (!s.eventsListeners || s.destroyed) return s;
767            if ('function' != typeof e) return s;
768            const a = t ? 'unshift' : 'push';
769            return (s.eventsAnyListeners.indexOf(e) < 0 && s.eventsAnyListeners[a](e), s);
770        },
771        offAny(e) {
772            const t = this;
773            if (!t.eventsListeners || t.destroyed) return t;
774            if (!t.eventsAnyListeners) return t;
775            const s = t.eventsAnyListeners.indexOf(e);
776            return (s >= 0 && t.eventsAnyListeners.splice(s, 1), t);
777        },
778        off(e, t) {
779            const s = this;
780            return !s.eventsListeners || s.destroyed
781                ? s
782                : s.eventsListeners
783                  ? (e.split(' ').forEach((e) => {
784                        void 0 === t
785                            ? (s.eventsListeners[e] = [])
786                            : s.eventsListeners[e] &&
787                              s.eventsListeners[e].forEach((a, i) => {
788                                  (a === t || (a.__emitterProxy && a.__emitterProxy === t)) &&
789                                      s.eventsListeners[e].splice(i, 1);
790                              });
791                    }),
792                    s)
793                  : s;
794        },
795        emit() {
796            const e = this;
797            if (!e.eventsListeners || e.destroyed) return e;
798            if (!e.eventsListeners) return e;
799            let t, s, a;
800            for (var i = arguments.length, r = new Array(i), n = 0; n < i; n++) r[n] = arguments[n];
801            ('string' == typeof r[0] || Array.isArray(r[0])
802                ? ((t = r[0]), (s = r.slice(1, r.length)), (a = e))
803                : ((t = r[0].events), (s = r[0].data), (a = r[0].context || e)),
804                s.unshift(a));
805            return (
806                (Array.isArray(t) ? t : t.split(' ')).forEach((t) => {
807                    (e.eventsAnyListeners &&
808                        e.eventsAnyListeners.length &&
809                        e.eventsAnyListeners.forEach((e) => {
810                            e.apply(a, [t, ...s]);
811                        }),
812                        e.eventsListeners &&
813                            e.eventsListeners[t] &&
814                            e.eventsListeners[t].forEach((e) => {
815                                e.apply(a, s);
816                            }));
817                }),
818                e
819            );
820        },
821    };
822    var S = {
823        updateSize: function () {
824            const e = this;
825            let t, s;
826            const a = e.$el;
827            ((t = void 0 !== e.params.width && null !== e.params.width ? e.params.width : a[0].clientWidth),
828                (s = void 0 !== e.params.height && null !== e.params.height ? e.params.height : a[0].clientHeight),
829                (0 === t && e.isHorizontal()) ||
830                    (0 === s && e.isVertical()) ||
831                    ((t = t - parseInt(a.css('padding-left') || 0, 10) - parseInt(a.css('padding-right') || 0, 10)),
832                    (s = s - parseInt(a.css('padding-top') || 0, 10) - parseInt(a.css('padding-bottom') || 0, 10)),
833                    Number.isNaN(t) && (t = 0),
834                    Number.isNaN(s) && (s = 0),
835                    Object.assign(e, { width: t, height: s, size: e.isHorizontal() ? t : s })));
836        },
837        updateSlides: function () {
838            const e = this;
839            function t(t) {
840                return e.isHorizontal()
841                    ? t
842                    : {
843                          width: 'height',
844                          'margin-top': 'margin-left',
845                          'margin-bottom ': 'margin-right',
846                          'margin-left': 'margin-top',
847                          'margin-right': 'margin-bottom',
848                          'padding-left': 'padding-top',
849                          'padding-right': 'padding-bottom',
850                          marginRight: 'marginBottom',
851                      }[t];
852            }
853            function s(e, s) {
854                return parseFloat(e.getPropertyValue(t(s)) || 0);
855            }
856            const a = e.params,
857                { $wrapperEl: i, size: r, rtlTranslate: n, wrongRTL: l } = e,
858                o = e.virtual && a.virtual.enabled,
859                d = o ? e.virtual.slides.length : e.slides.length,
860                c = i.children(`.${e.params.slideClass}`),
861                p = o ? e.virtual.slides.length : c.length;
862            let u = [];
863            const h = [],
864                m = [];
865            let f = a.slidesOffsetBefore;
866            'function' == typeof f && (f = a.slidesOffsetBefore.call(e));
867            let g = a.slidesOffsetAfter;
868            'function' == typeof g && (g = a.slidesOffsetAfter.call(e));
869            const w = e.snapGrid.length,
870                b = e.slidesGrid.length;
871            let x = a.spaceBetween,
872                y = -f,
873                E = 0,
874                C = 0;
875            if (void 0 === r) return;
876            ('string' == typeof x && x.indexOf('%') >= 0 && (x = (parseFloat(x.replace('%', '')) / 100) * r),
877                (e.virtualSize = -x),
878                n
879                    ? c.css({ marginLeft: '', marginBottom: '', marginTop: '' })
880                    : c.css({ marginRight: '', marginBottom: '', marginTop: '' }),
881                a.centeredSlides &&
882                    a.cssMode &&
883                    (v(e.wrapperEl, '--swiper-centered-offset-before', ''),
884                    v(e.wrapperEl, '--swiper-centered-offset-after', '')));
885            const T = a.grid && a.grid.rows > 1 && e.grid;
886            let $;
887            T && e.grid.initSlides(p);
888            const S =
889                'auto' === a.slidesPerView &&
890                a.breakpoints &&
891                Object.keys(a.breakpoints).filter((e) => void 0 !== a.breakpoints[e].slidesPerView).length > 0;
892            for (let i = 0; i < p; i += 1) {
893                $ = 0;
894                const n = c.eq(i);
895                if ((T && e.grid.updateSlide(i, n, p, t), 'none' !== n.css('display'))) {
896                    if ('auto' === a.slidesPerView) {
897                        S && (c[i].style[t('width')] = '');
898                        const r = getComputedStyle(n[0]),
899                            l = n[0].style.transform,
900                            o = n[0].style.webkitTransform;
901                        if (
902                            (l && (n[0].style.transform = 'none'),
903                            o && (n[0].style.webkitTransform = 'none'),
904                            a.roundLengths)
905                        )
906                            $ = e.isHorizontal() ? n.outerWidth(!0) : n.outerHeight(!0);
907                        else {
908                            const e = s(r, 'width'),
909                                t = s(r, 'padding-left'),
910                                a = s(r, 'padding-right'),
911                                i = s(r, 'margin-left'),
912                                l = s(r, 'margin-right'),
913                                o = r.getPropertyValue('box-sizing');
914                            if (o && 'border-box' === o) $ = e + i + l;
915                            else {
916                                const { clientWidth: s, offsetWidth: r } = n[0];
917                                $ = e + t + a + i + l + (r - s);
918                            }
919                        }
920                        (l && (n[0].style.transform = l),
921                            o && (n[0].style.webkitTransform = o),
922                            a.roundLengths && ($ = Math.floor($)));
923                    } else
924                        (($ = (r - (a.slidesPerView - 1) * x) / a.slidesPerView),
925                            a.roundLengths && ($ = Math.floor($)),
926                            c[i] && (c[i].style[t('width')] = `${$}px`));
927                    (c[i] && (c[i].swiperSlideSize = $),
928                        m.push($),
929                        a.centeredSlides
930                            ? ((y = y + $ / 2 + E / 2 + x),
931                              0 === E && 0 !== i && (y = y - r / 2 - x),
932                              0 === i && (y = y - r / 2 - x),
933                              Math.abs(y) < 0.001 && (y = 0),
934                              a.roundLengths && (y = Math.floor(y)),
935                              C % a.slidesPerGroup == 0 && u.push(y),
936                              h.push(y))
937                            : (a.roundLengths && (y = Math.floor(y)),
938                              (C - Math.min(e.params.slidesPerGroupSkip, C)) % e.params.slidesPerGroup == 0 &&
939                                  u.push(y),
940                              h.push(y),
941                              (y = y + $ + x)),
942                        (e.virtualSize += $ + x),
943                        (E = $),
944                        (C += 1));
945                }
946            }
947            if (
948                ((e.virtualSize = Math.max(e.virtualSize, r) + g),
949                n &&
950                    l &&
951                    ('slide' === a.effect || 'coverflow' === a.effect) &&
952                    i.css({ width: `${e.virtualSize + a.spaceBetween}px` }),
953                a.setWrapperSize && i.css({ [t('width')]: `${e.virtualSize + a.spaceBetween}px` }),
954                T && e.grid.updateWrapperSize($, u, t),
955                !a.centeredSlides)
956            ) {
957                const t = [];
958                for (let s = 0; s < u.length; s += 1) {
959                    let i = u[s];
960                    (a.roundLengths && (i = Math.floor(i)), u[s] <= e.virtualSize - r && t.push(i));
961                }
962                ((u = t), Math.floor(e.virtualSize - r) - Math.floor(u[u.length - 1]) > 1 && u.push(e.virtualSize - r));
963            }
964            if ((0 === u.length && (u = [0]), 0 !== a.spaceBetween)) {
965                const s = e.isHorizontal() && n ? 'marginLeft' : t('marginRight');
966                c.filter((e, t) => !a.cssMode || t !== c.length - 1).css({ [s]: `${x}px` });
967            }
968            if (a.centeredSlides && a.centeredSlidesBounds) {
969                let e = 0;
970                (m.forEach((t) => {
971                    e += t + (a.spaceBetween ? a.spaceBetween : 0);
972                }),
973                    (e -= a.spaceBetween));
974                const t = e - r;
975                u = u.map((e) => (e < 0 ? -f : e > t ? t + g : e));
976            }
977            if (a.centerInsufficientSlides) {
978                let e = 0;
979                if (
980                    (m.forEach((t) => {
981                        e += t + (a.spaceBetween ? a.spaceBetween : 0);
982                    }),
983                    (e -= a.spaceBetween),
984                    e < r)
985                ) {
986                    const t = (r - e) / 2;
987                    (u.forEach((e, s) => {
988                        u[s] = e - t;
989                    }),
990                        h.forEach((e, s) => {
991                            h[s] = e + t;
992                        }));
993                }
994            }
995            if (
996                (Object.assign(e, { slides: c, snapGrid: u, slidesGrid: h, slidesSizesGrid: m }),
997                a.centeredSlides && a.cssMode && !a.centeredSlidesBounds)
998            ) {
999                (v(e.wrapperEl, '--swiper-centered-offset-before', -u[0] + 'px'),
1000                    v(e.wrapperEl, '--swiper-centered-offset-after', e.size / 2 - m[m.length - 1] / 2 + 'px'));
1001                const t = -e.snapGrid[0],
1002                    s = -e.slidesGrid[0];
1003                ((e.snapGrid = e.snapGrid.map((e) => e + t)), (e.slidesGrid = e.slidesGrid.map((e) => e + s)));
1004            }
1005            if (
1006                (p !== d && e.emit('slidesLengthChange'),
1007                u.length !== w && (e.params.watchOverflow && e.checkOverflow(), e.emit('snapGridLengthChange')),
1008                h.length !== b && e.emit('slidesGridLengthChange'),
1009                a.watchSlidesProgress && e.updateSlidesOffset(),
1010                !(o || a.cssMode || ('slide' !== a.effect && 'fade' !== a.effect)))
1011            ) {
1012                const t = `${a.containerModifierClass}backface-hidden`,
1013                    s = e.$el.hasClass(t);
1014                p <= a.maxBackfaceHiddenSlides ? s || e.$el.addClass(t) : s && e.$el.removeClass(t);
1015            }
1016        },
1017        updateAutoHeight: function (e) {
1018            const t = this,
1019                s = [],
1020                a = t.virtual && t.params.virtual.enabled;
1021            let i,
1022                r = 0;
1023            'number' == typeof e ? t.setTransition(e) : !0 === e && t.setTransition(t.params.speed);
1024            const n = (e) =>
1025                a
1026                    ? t.slides.filter((t) => parseInt(t.getAttribute('data-swiper-slide-index'), 10) === e)[0]
1027                    : t.slides.eq(e)[0];
1028            if ('auto' !== t.params.slidesPerView && t.params.slidesPerView > 1)
1029                if (t.params.centeredSlides)
1030                    (t.visibleSlides || d([])).each((e) => {
1031                        s.push(e);
1032                    });
1033                else
1034                    for (i = 0;
1034 i < Math.ceil(t.params.slidesPerView); i += 1) {
1035                        const e = t.activeIndex + i;
1036                        if (e > t.slides.length && !a) break;
1037                        s.push(n(e));
1038                    }
1039            else s.push(n(t.activeIndex));
1040            for (i = 0; i < s.length; i += 1)
1041                if (void 0 !== s[i]) {
1042                    const e = s[i].offsetHeight;
1043                    r = e > r ? e : r;
1044                }
1045            (r || 0 === r) && t.$wrapperEl.css('height', `${r}px`);
1046        },
1047        updateSlidesOffset: function () {
1048            const e = this,
1049                t = e.slides;
1050            for (let s = 0; s < t.length; s += 1)
1051                t[s].swiperSlideOffset = e.isHorizontal() ? t[s].offsetLeft : t[s].offsetTop;
1052        },
1053        updateSlidesProgress: function (e) {
1054            void 0 === e && (e = (this && this.translate) || 0);
1055            const t = this,
1056                s = t.params,
1057                { slides: a, rtlTranslate: i, snapGrid: r } = t;
1058            if (0 === a.length) return;
1059            void 0 === a[0].swiperSlideOffset && t.updateSlidesOffset();
1060            let n = -e;
1061            (i && (n = e), a.removeClass(s.slideVisibleClass), (t.visibleSlidesIndexes = []), (t.visibleSlides = []));
1062            for (let e = 0; e < a.length; e += 1) {
1063                const l = a[e];
1064                let o = l.swiperSlideOffset;
1065                s.cssMode && s.centeredSlides && (o -= a[0].swiperSlideOffset);
1066                const d = (n + (s.centeredSlides ? t.minTranslate() : 0) - o) / (l.swiperSlideSize + s.spaceBetween),
1067                    c =
1068                        (n - r[0] + (s.centeredSlides ? t.minTranslate() : 0) - o) /
1069                        (l.swiperSlideSize + s.spaceBetween),
1070                    p = -(n - o),
1071                    u = p + t.slidesSizesGrid[e];
1072                (((p >= 0 && p < t.size - 1) || (u > 1 && u <= t.size) || (p <= 0 && u >= t.size)) &&
1073                    (t.visibleSlides.push(l), t.visibleSlidesIndexes.push(e), a.eq(e).addClass(s.slideVisibleClass)),
1074                    (l.progress = i ? -d : d),
1075                    (l.originalProgress = i ? -c : c));
1076            }
1077            t.visibleSlides = d(t.visibleSlides);
1078        },
1079        updateProgress: function (e) {
1080            const t = this;
1081            if (void 0 === e) {
1082                const s = t.rtlTranslate ? -1 : 1;
1083                e = (t && t.translate && t.translate * s) || 0;
1084            }
1085            const s = t.params,
1086                a = t.maxTranslate() - t.minTranslate();
1087            let { progress: i, isBeginning: r, isEnd: n } = t;
1088            const l = r,
1089                o = n;
1090            (0 === a ? ((i = 0), (r = !0), (n = !0)) : ((i = (e - t.minTranslate()) / a), (r = i <= 0), (n = i >= 1)),
1091                Object.assign(t, { progress: i, isBeginning: r, isEnd: n }),
1092                (s.watchSlidesProgress || (s.centeredSlides && s.autoHeight)) && t.updateSlidesProgress(e),
1093                r && !l && t.emit('reachBeginning toEdge'),
1094                n && !o && t.emit('reachEnd toEdge'),
1095                ((l && !r) || (o && !n)) && t.emit('fromEdge'),
1096                t.emit('progress', i));
1097        },
1098        updateSlidesClasses: function () {
1099            const e = this,
1100                { slides: t, params: s, $wrapperEl: a, activeIndex: i, realIndex: r } = e,
1101                n = e.virtual && s.virtual.enabled;
1102            let l;
1103            (t.removeClass(
1104                `${s.slideActiveClass} ${s.slideNextClass} ${s.slidePrevClass} ${s.slideDuplicateActiveClass} ${s.slideDuplicateNextClass} ${s.slideDuplicatePrevClass}`
1105            ),
1106                (l = n ? e.$wrapperEl.find(`.${s.slideClass}[data-swiper-slide-index="${i}"]`) : t.eq(i)),
1107                l.addClass(s.slideActiveClass),
1108                s.loop &&
1109                    (l.hasClass(s.slideDuplicateClass)
1110                        ? a
1111                              .children(
1112                                  `.${s.slideClass}:not(.${s.slideDuplicateClass})[data-swiper-slide-index="${r}"]`
1113                              )
1114                              .addClass(s.slideDuplicateActiveClass)
1115                        : a
1116                              .children(`.${s.slideClass}.${s.slideDuplicateClass}[data-swiper-slide-index="${r}"]`)
1117                              .addClass(s.slideDuplicateActiveClass)));
1118            let o = l.nextAll(`.${s.slideClass}`).eq(0).addClass(s.slideNextClass);
1119            s.loop && 0 === o.length && ((o = t.eq(0)), o.addClass(s.slideNextClass));
1120            let d = l.prevAll(`.${s.slideClass}`).eq(0).addClass(s.slidePrevClass);
1121            (s.loop && 0 === d.length && ((d = t.eq(-1)), d.addClass(s.slidePrevClass)),
1122                s.loop &&
1123                    (o.hasClass(s.slideDuplicateClass)
1124                        ? a
1125                              .children(
1126                                  `.${s.slideClass}:not(.${s.slideDuplicateClass})[data-swiper-slide-index="${o.attr('data-swiper-slide-index')}"]`
1127                              )
1128                              .addClass(s.slideDuplicateNextClass)
1129                        : a
1130                              .children(
1131                                  `.${s.slideClass}.${s.slideDuplicateClass}[data-swiper-slide-index="${o.attr('data-swiper-slide-index')}"]`
1132                              )
1133                              .addClass(s.slideDuplicateNextClass),
1134                    d.hasClass(s.slideDuplicateClass)
1135                        ? a
1136                              .children(
1137                                  `.${s.slideClass}:not(.${s.slideDuplicateClass})[data-swiper-slide-index="${d.attr('data-swiper-slide-index')}"]`
1138                              )
1139                              .addClass(s.slideDuplicatePrevClass)
1140                        : a
1141                              .children(
1142                                  `.${s.slideClass}.${s.slideDuplicateClass}[data-swiper-slide-index="${d.attr('data-swiper-slide-index')}"]`
1143                              )
1144                              .addClass(s.slideDuplicatePrevClass)),
1145                e.emitSlidesClasses());
1146        },
1147        updateActiveIndex: function (e) {
1148            const t = this,
1149                s = t.rtlTranslate ? t.translate : -t.translate,
1150                { slidesGrid: a, snapGrid: i, params: r, activeIndex: n, realIndex: l, snapIndex: o } = t;
1151            let d,
1152                c = e;
1153            if (void 0 === c) {
1154                for (let e = 0; e < a.length; e += 1)
1155                    void 0 !== a[e + 1]
1156                        ? s >= a[e] && s < a[e + 1] - (a[e + 1] - a[e]) / 2
1157                            ? (c = e)
1158                            : s >= a[e] && s < a[e + 1] && (c = e + 1)
1159                        : s >= a[e] && (c = e);
1160                r.normalizeSlideIndex && (c < 0 || void 0 === c) && (c = 0);
1161            }
1162            if (i.indexOf(s) >= 0) d = i.indexOf(s);
1163            else {
1164                const e = Math.min(r.slidesPerGroupSkip, c);
1165                d = e + Math.floor((c - e) / r.slidesPerGroup);
1166            }
1167            if ((d >= i.length && (d = i.length - 1), c === n))
1168                return void (d !== o && ((t.snapIndex = d), t.emit('snapIndexChange')));
1169            const p = parseInt(t.slides.eq(c).attr('data-swiper-slide-index') || c, 10);
1170            (Object.assign(t, { snapIndex: d, realIndex: p, previousIndex: n, activeIndex: c }),
1171                t.emit('activeIndexChange'),
1172                t.emit('snapIndexChange'),
1173                l !== p && t.emit('realIndexChange'),
1174                (t.initialized || t.params.runCallbacksOnInit) && t.emit('slideChange'));
1175        },
1176        updateClickedSlide: function (e) {
1177            const t = this,
1178                s = t.params,
1179                a = d(e).closest(`.${s.slideClass}`)[0];
1180            let i,
1181                r = !1;
1182            if (a)
1183                for (let e = 0; e < t.slides.length; e += 1)
1184                    if (t.slides[e] === a) {
1185                        ((r = !0), (i = e));
1186                        break;
1187                    }
1188            if (!a || !r) return ((t.clickedSlide = void 0), void (t.clickedIndex = void 0));
1189            ((t.clickedSlide = a),
1190                t.virtual && t.params.virtual.enabled
1191                    ? (t.clickedIndex = parseInt(d(a).attr('data-swiper-slide-index'), 10))
1192                    : (t.clickedIndex = i),
1193                s.slideToClickedSlide &&
1194                    void 0 !== t.clickedIndex &&
1195                    t.clickedIndex !== t.activeIndex &&
1196                    t.slideToClickedSlide());
1197        },
1198    };
1199    var M = {
1200        getTranslate: function (e) {
1201            void 0 === e && (e = this.isHorizontal() ? 'x' : 'y');
1202            const { params: t, rtlTranslate: s, translate: a, $wrapperEl: i } = this;
1203            if (t.virtualTranslate) return s ? -a : a;
1204            if (t.cssMode) return a;
1205            let r = h(i[0], e);
1206            return (s && (r = -r), r || 0);
1207        },
1208        setTranslate: function (e, t) {
1209            const s = this,
1210                { rtlTranslate: a, params: i, $wrapperEl: r, wrapperEl: n, progress: l } = s;
1211            let o,
1212                d = 0,
1213                c = 0;
1214            (s.isHorizontal() ? (d = a ? -e : e) : (c = e),
1215                i.roundLengths && ((d = Math.floor(d)), (c = Math.floor(c))),
1216                i.cssMode
1217                    ? (n[s.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = s.isHorizontal() ? -d : -c)
1218                    : i.virtualTranslate || r.transform(`translate3d(${d}px, ${c}px, 0px)`),
1219                (s.previousTranslate = s.translate),
1220                (s.translate = s.isHorizontal() ? d : c));
1221            const p = s.maxTranslate() - s.minTranslate();
1222            ((o = 0 === p ? 0 : (e - s.minTranslate()) / p),
1223                o !== l && s.updateProgress(e),
1224                s.emit('setTranslate', s.translate, t));
1225        },
1226        minTranslate: function () {
1227            return -this.snapGrid[0];
1228        },
1229        maxTranslate: function () {
1230            return -this.snapGrid[this.snapGrid.length - 1];
1231        },
1232        translateTo: function (e, t, s, a, i) {
1233            (void 0 === e && (e = 0),
1234                void 0 === t && (t = this.params.speed),
1235                void 0 === s && (s = !0),
1236                void 0 === a && (a = !0));
1237            const r = this,
1238                { params: n, wrapperEl: l } = r;
1239            if (r.animating && n.preventInteractionOnTransition) return !1;
1240            const o = r.minTranslate(),
1241                d = r.maxTranslate();
1242            let c;
1243            if (((c = a && e > o ? o : a && e < d ? d : e), r.updateProgress(c), n.cssMode)) {
1244                const e = r.isHorizontal();
1245                if (0 === t) l[e ? 'scrollLeft' : 'scrollTop'] = -c;
1246                else {
1247                    if (!r.support.smoothScroll)
1248                        return (w({ swiper: r, targetPosition: -c, side: e ? 'left' : 'top' }), !0);
1249                    l.scrollTo({ [e ? 'left' : 'top']: -c, behavior: 'smooth' });
1250                }
1251                return !0;
1252            }
1253            return (
1254                0 === t
1255                    ? (r.setTransition(0),
1256                      r.setTranslate(c),
1257                      s && (r.emit('beforeTransitionStart', t, i), r.emit('transitionEnd')))
1258                    : (r.setTransition(t),
1259                      r.setTranslate(c),
1260                      s && (r.emit('beforeTransitionStart', t, i), r.emit('transitionStart')),
1261                      r.animating ||
1262                          ((r.animating = !0),
1263                          r.onTranslateToWrapperTransitionEnd ||
1264                              (r.onTranslateToWrapperTransitionEnd = function (e) {
1265                                  r &&
1266                                      !r.destroyed &&
1267                                      e.target === this &&
1268                                      (r.$wrapperEl[0].removeEventListener(
1269                                          'transitionend',
1270                                          r.onTranslateToWrapperTransitionEnd
1271                                      ),
1272                                      r.$wrapperEl[0].removeEventListener(
1273                                          'webkitTransitionEnd',
1274                                          r.onTranslateToWrapperTransitionEnd
1275                                      ),
1276                                      (r.onTranslateToWrapperTransitionEnd = null),
1277                                      delete r.onTranslateToWrapperTransitionEnd,
1278                                      s && r.emit('transitionEnd'));
1279                              }),
1280                          r.$wrapperEl[0].addEventListener('transitionend', r.onTranslateToWrapperTransitionEnd),
1281                          r.$wrapperEl[0].addEventListener(
1282                              'webkitTransitionEnd',
1283                              r.onTranslateToWrapperTransitionEnd
1284                          ))),
1285                !0
1286            );
1287        },
1288    };
1289    function P(e) {
1290        let { swiper: t, runCallbacks: s, direction: a, step: i } = e;
1291        const { activeIndex: r, previousIndex: n } = t;
1292        let l = a;
1293        if ((l || (l = r > n ? 'next' : r < n ? 'prev' : 'reset'), t.emit(`transition${i}`), s && r !== n)) {
1294            if ('reset' === l) return void t.emit(`slideResetTransition${i}`);
1295            (t.emit(`slideChangeTransition${i}`),
1296                'next' === l ? t.emit(`slideNextTransition${i}`) : t.emit(`slidePrevTransition${i}`));
1297        }
1298    }
1299    var k = {
1300        slideTo: function (e, t, s, a, i) {
1301            if (
1302                (void 0 === e && (e = 0),
1303                void 0 === t && (t = this.params.speed),
1304                void 0 === s && (s = !0),
1305                'number' != typeof e && 'string' != typeof e)
1306            )
1307                throw new Error(
1308                    `The 'index' argument cannot have type other than 'number' or 'string'. [${typeof e}] given.`
1309                );
1310            if ('string' == typeof e) {
1311                const t = parseInt(e, 10);
1312                if (!isFinite(t))
1313                    throw new Error(`The passed-in 'index' (string) couldn't be converted to 'number'. [${e}] given.`);
1314                e = t;
1315            }
1316            const r = this;
1317            let n = e;
1318            n < 0 && (n = 0);
1319            const {
1320                params: l,
1321                snapGrid: o,
1322                slidesGrid: d,
1323                previousIndex: c,
1324                activeIndex: p,
1325                rtlTranslate: u,
1326                wrapperEl: h,
1327                enabled: m,
1328            } = r;
1329            if ((r.animating && l.preventInteractionOnTransition) || (!m && !a && !i)) return !1;
1330            const f = Math.min(r.params.slidesPerGroupSkip, n);
1331            let g = f + Math.floor((n - f) / r.params.slidesPerGroup);
1332            g >= o.length && (g = o.length - 1);
1333            const v = -o[g];
1334            if (l.normalizeSlideIndex)
1335                for (let e = 0; e < d.length; e += 1) {
1336                    const t = -Math.floor(100 * v),
1337                        s = Math.floor(100 * d[e]),
1338                        a = Math.floor(100 * d[e + 1]);
1339                    void 0 !== d[e + 1]
1340                        ? t >= s && t < a - (a - s) / 2
1341                            ? (n = e)
1342                            : t >= s && t < a && (n = e + 1)
1343                        : t >= s && (n = e);
1344                }
1345            if (r.initialized && n !== p) {
1346                if (!r.allowSlideNext && v < r.translate && v < r.minTranslate()) return !1;
1347                if (!r.allowSlidePrev && v > r.translate && v > r.maxTranslate() && (p || 0) !== n) return !1;
1348            }
1349            let b;
1350            if (
1351                (n !== (c || 0) && s && r.emit('beforeSlideChangeStart'),
1352                r.updateProgress(v),
1353                (b = n > p ? 'next' : n < p ? 'prev' : 'reset'),
1354                (u && -v === r.translate) || (!u && v === r.translate))
1355            )
1356                return (
1357                    r.updateActiveIndex(n),
1358                    l.autoHeight && r.updateAutoHeight(),
1359                    r.updateSlidesClasses(),
1360                    'slide' !== l.effect && r.setTranslate(v),
1361                    'reset' !== b && (r.transitionStart(s, b), r.transitionEnd(s, b)),
1362                    !1
1363                );
1364            if (l.cssMode) {
1365                const e = r.isHorizontal(),
1366                    s = u ? v : -v;
1367                if (0 === t) {
1368                    const t = r.virtual && r.params.virtual.enabled;
1369                    (t && ((r.wrapperEl.style.scrollSnapType = 'none'), (r._immediateVirtual = !0)),
1370                        (h[e ? 'scrollLeft' : 'scrollTop'] = s),
1371                        t &&
1372                            requestAnimationFrame(() => {
1373                                ((r.wrapperEl.style.scrollSnapType = ''), (r._swiperImmediateVirtual = !1));
1374                            }));
1375                } else {
1376                    if (!r.support.smoothScroll)
1377                        return (w({ swiper: r, targetPosition: s, side: e ? 'left' : 'top' }), !0);
1378                    h.scrollTo({ [e ? 'left' : 'top']: s, behavior: 'smooth' });
1379                }
1380                return !0;
1381            }
1382            return (
1383                r.setTransition(t),
1384                r.setTranslate(v),
1385                r.updateActiveIndex(n),
1386                r.updateSlidesClasses(),
1387                r.emit('beforeTransitionStart', t, a),
1388                r.transitionStart(s, b),
1389                0 === t
1390                    ? r.transitionEnd(s, b)
1391                    : r.animating ||
1392                      ((r.animating = !0),
1393                      r.onSlideToWrapperTransitionEnd ||
1394                          (r.onSlideToWrapperTransitionEnd = function (e) {
1395                              r &&
1396                                  !r.destroyed &&
1397                                  e.target === this &&
1398                                  (r.$wrapperEl[0].removeEventListener(
1399                                      'transitionend',
1400                                      r.onSlideToWrapperTransitionEnd
1401                                  ),
1402                                  r.$wrapperEl[0].removeEventListener(
1403                                      'webkitTransitionEnd',
1404                                      r.onSlideToWrapperTransitionEnd
1405                                  ),
1406                                  (r.onSlideToWrapperTransitionEnd = null),
1407                                  delete r.onSlideToWrapperTransitionEnd,
1408                                  r.transitionEnd(s, b));
1409                          }),
1410                      r.$wrapperEl[0].addEventListener('transitionend', r.onSlideToWrapperTransitionEnd),
1411                      r.$wrapperEl[0].addEventListener('webkitTransitionEnd', r.onSlideToWrapperTransitionEnd)),
1412                !0
1413            );
1414        },
1415        slideToLoop: function (e, t, s, a) {
1416            if (
1417                (void 0 === e && (e = 0),
1418                void 0 === t && (t = this.params.speed),
1419                void 0 === s && (s = !0),
1420                'string' == typeof e)
1421            ) {
1422                const t = parseInt(e, 10);
1423                if (!isFinite(t))
1424                    throw new Error(`The passed-in 'index' (string) couldn't be converted to 'number'. [${e}] given.`);
1425                e = t;
1426            }
1427            const i = this;
1428            let r = e;
1429            return (i.params.loop && (r += i.loopedSlides), i.slideTo(r, t, s, a));
1430        },
1431        slideNext: function (e, t, s) {
1432            (void 0 === e && (e = this.params.speed), void 0 === t && (t = !0));
1433            const a = this,
1434                { animating: i, enabled: r, params: n } = a;
1435            if (!r) return a;
1436            let l = n.slidesPerGroup;
1437            'auto' === n.slidesPerView &&
1438                1 === n.slidesPerGroup &&
1439                n.slidesPerGroupAuto &&
1440                (l = Math.max(a.slidesPerViewDynamic('current', !0), 1));
1441            const o = a.activeIndex < n.slidesPerGroupSkip ? 1 : l;
1442            if (n.loop) {
1443                if (i && n.loopPreventsSlide) return !1;
1444                (a.loopFix(), (a._clientLeft = a.$wrapperEl[0].clientLeft));
1445            }
1446            return n.rewind && a.isEnd ? a.slideTo(0, e, t, s) : a.slideTo(a.activeIndex + o, e, t, s);
1447        },
1448        slidePrev: function (e, t, s) {
1449            (void 0 === e && (e = this.params.speed), void 0 === t && (t = !0));
1450            const a = this,
1451                { params: i, animating: r, snapGrid: n, slidesGrid: l, rtlTranslate: o, enabled: d } = a;
1452            if (!d) return a;
1453            if (i.loop) {
1454                if (r && i.loopPreventsSlide) return !1;
1455                (a.loopFix(), (a._clientLeft = a.$wrapperEl[0].clientLeft));
1456            }
1457            function c(e) {
1458                return e < 0 ? -Math.floor(Math.abs(e)) : Math.floor(e);
1459            }
1460            const p = c(o ? a.translate : -a.translate),
1461                u = n.map((e) => c(e));
1462            let h = n[u.indexOf(p) - 1];
1463            if (void 0 === h && i.cssMode) {
1464                let e;
1465                (n.forEach((t, s) => {
1466                    p >= t && (e = s);
1467                }),
1468                    void 0 !== e && (h = n[e > 0 ? e - 1 : e]));
1469            }
1470            let m = 0;
1471            if (
1472                (void 0 !== h &&
1473                    ((m = l.indexOf(h)),
1474                    m < 0 && (m = a.activeIndex - 1),
1475                    'auto' === i.slidesPerView &&
1476                        1 === i.slidesPerGroup &&
1477                        i.slidesPerGroupAuto &&
1478                        ((m = m - a.slidesPerViewDynamic('previous', !0) + 1), (m = Math.max(m, 0)))),
1479                i.rewind && a.isBeginning)
1480            ) {
1481                const i =
1482                    a.params.virtual && a.params.virtual.enabled && a.virtual
1483                        ? a.virtual.slides.length - 1
1484                        : a.slides.length - 1;
1485                return a.slideTo(i, e, t, s);
1486            }
1487            return a.slideTo(m, e, t, s);
1488        },
1489        slideReset: function (e, t, s) {
1490            return (
1491                void 0 === e && (e = this.params.speed),
1492                void 0 === t && (t = !0),
1493                this.slideTo(this.activeIndex, e, t, s)
1494            );
1495        },
1496        slideToClosest: function (e, t, s, a) {
1497            (void 0 === e && (e = this.params.speed), void 0 === t && (t = !0), void 0 === a && (a = 0.5));
1498            const i = this;
1499            let r = i.activeIndex;
1500            const n = Math.min(i.params.slidesPerGroupSkip, r),
1501                l = n + Math.floor((r - n) / i.params.slidesPerGroup),
1502                o = i.rtlTranslate ? i.translate : -i.translate;
1503            if (o >= i.snapGrid[l]) {
1504                const e = i.snapGrid[l];
1505                o - e > (i.snapGrid[l + 1] - e) * a && (r += i.params.slidesPerGroup);
1506            } else {
1507                const e = i.snapGrid[l - 1];
1508                o - e <= (i.snapGrid[l] - e) * a && (r -= i.params.slidesPerGroup);
1509            }
1510            return ((r = Math.max(r, 0)), (r = Math.min(r, i.slidesGrid.length - 1)), i.slideTo(r, e, t, s));
1511        },
1512        slideToClickedSlide: function () {
1513            const e = this,
1514                { params: t, $wrapperEl: s } = e,
1515                a = 'auto' === t.slidesPerView ? e.slidesPerViewDynamic() : t.slidesPerView;
1516            let i,
1517                r = e.clickedIndex;
1518            if (t.loop) {
1519                if (e.animating) return;
1520                ((i = parseInt(d(e.clickedSlide).attr('data-swiper-slide-index'), 10)),
1521                    t.centeredSlides
1522                        ? r < e.loopedSlides - a / 2 || r > e.slides.length - e.loopedSlides + a / 2
1523                            ? (e.loopFix(),
1524                              (r = s
1525                                  .children(
1526                                      `.${t.slideClass}[data-swiper-slide-index="${i}"]:not(.${t.slideDuplicateClass})`
1527                                  )
1528                                  .eq(0)
1529                                  .index()),
1530                              p(() => {
1531                                  e.slideTo(r);
1532                              }))
1533                            : e.slideTo(r)
1534                        : r > e.slides.length - a
1535                          ? (e.loopFix(),
1536                            (r = s
1537                                .children(
1538                                    `.${t.slideClass}[data-swiper-slide-index="${i}"]:not(.${t.slideDuplicateClass})`
1539                                )
1540                                .eq(0)
1541                                .index()),
1542                            p(() => {
1543                                e.slideTo(r);
1544                            }))
1545                          : e.slideTo(r));
1546            } else e.slideTo(r);
1547        },
1548    };
1549    var z = {
1550        loopCreate: function () {
1551            const e = this,
1552                t = a(),
1553                { params: s, $wrapperEl: i } = e,
1554                r = i.children().length > 0 ? d(i.children()[0].parentNode) : i;
1555            r.children(`.${s.slideClass}.${s.slideDuplicateClass}`).remove();
1556            let n = r.children(`.${s.slideClass}`);
1557            if (s.loopFillGroupWithBlank) {
1558                const e = s.slidesPerGroup - (n.length % s.slidesPerGroup);
1559                if (e !== s.slidesPerGroup) {
1560                    for (let a = 0; a < e; a += 1) {
1561                        const e = d(t.createElement('div')).addClass(`${s.slideClass} ${s.slideBlankClass}`);
1562                        r.append(e);
1563                    }
1564                    n = r.children(`.${s.slideClass}`);
1565                }
1566            }
1567            ('auto' !== s.slidesPerView || s.loopedSlides || (s.loopedSlides = n.length),
1568                (e.loopedSlides = Math.ceil(parseFloat(s.loopedSlides || s.slidesPerView, 10))),
1569                (e.loopedSlides += s.loopAdditionalSlides),
1570                e.loopedSlides > n.length && e.params.loopedSlidesLimit && (e.loopedSlides = n.length));
1571            const l = [],
1572                o = [];
1573            n.each((e, t) => {
1574                d(e).attr('data-swiper-slide-index', t);
1575            });
1576            for (let t = 0; t < e.loopedSlides; t += 1) {
1577                const e = t - Math.floor(t / n.length) * n.length;
1578                (o.push(n.eq(e)[0]), l.unshift(n.eq(n.length - e - 1)[0]));
1579            }
1580            for (let e = 0; e < o.length; e += 1) r.append(d(o[e].cloneNode(!0)).addClass(s.slideDuplicateClass));
1581            for (let e = l.length - 1; e >= 0; e -= 1) r.prepend(d(l[e].cloneNode(!0)).addClass(s.slideDuplicateClass));
1582        },
1583        loopFix: function () {
1584            const e = this;
1585            e.emit('beforeLoopFix');
1586            const {
1587                activeIndex: t,
1588                slides: s,
1589                loopedSlides: a,
1590                allowSlidePrev: i,
1591                allowSlideNext: r,
1592                snapGrid: n,
1593                rtlTranslate: l,
1594            } = e;
1595            let o;
1596            ((e.allowSlidePrev = !0), (e.allowSlideNext = !0));
1597            const d = -n[t] - e.getTranslate();
1598            if (t < a) {
1599                ((o = s.length - 3 * a + t), (o += a));
1600                e.slideTo(o, 0, !1, !0) && 0 !== d && e.setTranslate((l ? -e.translate : e.translate) - d);
1601            } else if (t >= s.length - a) {
1602                ((o = -s.length + t + a), (o += a));
1603                e.slideTo(o, 0, !1, !0) && 0 !== d && e.setTranslate((l ? -e.translate : e.translate) - d);
1604            }
1605            ((e.allowSlidePrev = i), (e.allowSlideNext = r), e.emit('loopFix'));
1606        },
1607        loopDestroy: function () {
1608            const { $wrapperEl: e, params: t, slides: s } = this;
1609            (e.children(`.${t.slideClass}.${t.slideDuplicateClass},.${t.slideClass}.${t.slideBlankClass}`).remove(),
1610                s.removeAttr('data-swiper-slide-index'));
1611        },
1612    };
1613    function L(e) {
1614        const t = this,
1615            s = a(),
1616            i = r(),
1617            n = t.touchEventsData,
1618            { params: l, touches: o, enabled: c } = t;
1619        if (!c) return;
1620        if (t.animating && l.preventInteractionOnTransition) return;
1621        !t.animating && l.cssMode && l.loop && t.loopFix();
1622        let p = e;
1623        p.originalEvent && (p = p.originalEvent);
1624        let h = d(p.target);
1625        if ('wrapper' === l.touchEventsTarget && !h.closest(t.wrapperEl).length) return;
1626        if (((n.isTouchEvent = 'touchstart' === p.type), !n.isTouchEvent && 'which' in p && 3 === p.which)) return;
1627        if (!n.isTouchEvent && 'button' in p && p.button > 0) return;
1628        if (n.isTouched && n.isMoved) return;
1629        const m = !!l.noSwipingClass && '' !== l.noSwipingClass,
1630            f = e.composedPath ? e.composedPath() : e.path;
1631        m && p.target && p.target.shadowRoot && f && (h = d(f[0]));
1632        const g = l.noSwipingSelector ? l.noSwipingSelector : `.${l.noSwipingClass}`,
1633            v = !(!p.target || !p.target.shadowRoot);
1634        if (
1635            l.noSwiping &&
1636            (v
1637                ? (function (e, t) {
1638                      return (
1639                          void 0 === t && (t = this),
1640                          (function t(s) {
1641                              if (!s || s === a() || s === r()) return null;
1642                              s.assignedSlot && (s = s.assignedSlot);
1643                              const i = s.closest(e);
1644                              return i || s.getRootNode ? i || t(s.getRootNode().host) : null;
1645                          })(t)
1646                      );
1647                  })(g, h[0])
1648                : h.closest(g)[0])
1649        )
1650            return void (t.allowClick = !0);
1651        if (l.swipeHandler && !h.closest(l.swipeHandler)[0]) return;
1652        ((o.currentX = 'touchstart' === p.type ? p.targetTouches[0].pageX : p.pageX),
1653            (o.currentY = 'touchstart' === p.type ? p.targetTouches[0].pageY : p.pageY));
1654        const w = o.currentX,
1655            b = o.currentY,
1656            x = l.edgeSwipeDetection || l.iOSEdgeSwipeDetection,
1657            y = l.edgeSwipeThreshold || l.iOSEdgeSwipeThreshold;
1658        if (x && (w <= y || w >= i.innerWidth - y)) {
1659            if ('prevent' !== x) return;
1660            e.preventDefault();
1661        }
1662        if (
1663            (Object.assign(n, {
1664                isTouched: !0,
1665                isMoved: !1,
1666                allowTouchCallbacks: !0,
1667                isScrolling: void 0,
1668                startMoving: void 0,
1669            }),
1670            (o.startX = w),
1671            (o.startY = b),
1672            (n.touchStartTime = u()),
1673            (t.allowClick = !0),
1674            t.updateSize(),
1675            (t.swipeDirection = void 0),
1676            l.threshold > 0 && (n.allowThresholdMove = !1),
1677            'touchstart' !== p.type)
1678        ) {
1679            let e = !0;
1680            (h.is(n.focusableElements) && ((e = !1), 'SELECT' === h[0].nodeName && (n.isTouched = !1)),
1681                s.activeElement &&
1682                    d(s.activeElement).is(n.focusableElements) &&
1683                    s.activeElement !== h[0] &&
1684                    s.activeElement.blur());
1685            const a = e && t.allowTouchMove && l.touchStartPreventDefault;
1686            (!l.touchStartForcePreventDefault && !a) || h[0].isContentEditable || p.preventDefault();
1687        }
1688        (t.params.freeMode &&
1689            t.params.freeMode.enabled &&
1690            t.freeMode &&
1691            t.animating &&
1692            !l.cssMode &&
1693            t.freeMode.onTouchStart(),
1694            t.emit('touchStart', p));
1695    }
1696    function O(e) {
1697        const t = a(),
1698            s = this,
1699            i = s.touchEventsData,
1700            { params: r, touches: n, rtlTranslate: l, enabled: o } = s;
1701        if (!o) return;
1702        let c = e;
1703        if ((c.originalEvent && (c = c.originalEvent), !i.isTouched))
1704            return void (i.startMoving && i.isScrolling && s.emit('touchMoveOpposite', c));
1705        if (i.isTouchEvent && 'touchmove' !== c.type) return;
1706        const p = 'touchmove' === c.type && c.targetTouches && (c.targetTouches[0] || c.changedTouches[0]),
1707            h = 'touchmove' === c.type ? p.pageX : c.pageX,
1708            m = 'touchmove' === c.type ? p.pageY : c.pageY;
1709        if (c.preventedByNestedSwiper) return ((n.startX = h), void (n.startY = m));
1710        if (!s.allowTouchMove)
1711            return (
1712                d(c.target).is(i.focusableElements) || (s.allowClick = !1),
1713                void (
1714                    i.isTouched &&
1715                    (Object.assign(n, { startX: h, startY: m, currentX: h, currentY: m }), (i.touchStartTime = u()))
1716                )
1717            );
1718        if (i.isTouchEvent && r.touchReleaseOnEdges && !r.loop)
1719            if (s.isVertical()) {
1720                if (
1721                    (m < n.startY && s.translate <= s.maxTranslate()) ||
1722                    (m > n.startY && s.translate >= s.minTranslate())
1723                )
1724                    return ((i.isTouched = !1), void (i.isMoved = !1));
1725            } else if (
1726                (h < n.startX && s.translate <= s.maxTranslate()) ||
1727                (h > n.startX && s.translate >= s.minTranslate())
1728            )
1729                return;
1730        if (i.isTouchEvent && t.activeElement && c.target === t.activeElement && d(c.target).is(i.focusableElements))
1731            return ((i.isMoved = !0), void (s.allowClick = !1));
1732        if ((i.allowTouchCallbacks && s.emit('touchMove', c), c.targetTouches && c.targetTouches.length > 1)) return;
1733        ((n.currentX = h), (n.currentY = m));
1734        const f = n.currentX - n.startX,
1735            g = n.currentY - n.startY;
1736        if (s.params.threshold && Math.sqrt(f ** 2 + g ** 2) < s.params.threshold) return;
1737        if (void 0 === i.isScrolling) {
1738            let e;
1739            (s.isHorizontal() && n.currentY === n.startY) || (s.isVertical() && n.currentX === n.startX)
1740                ? (i.isScrolling = !1)
1741                : f * f + g * g >= 25 &&
1742                  ((e = (180 * Math.atan2(Math.abs(g), Math.abs(f))) / Math.PI),
1743                  (i.isScrolling = s.isHorizontal() ? e > r.touchAngle : 90 - e > r.touchAngle));
1744        }
1745        if (
1746            (i.isScrolling && s.emit('touchMoveOpposite', c),
1747            void 0 === i.startMoving && ((n.currentX === n.startX && n.currentY === n.startY) || (i.startMoving = !0)),
1748            i.isScrolling)
1749        )
1750            return void (i.isTouched = !1);
1751        if (!i.startMoving) return;
1752        ((s.allowClick = !1),
1753            !r.cssMode && c.cancelable && c.preventDefault(),
1754            r.touchMoveStopPropagation && !r.nested && c.stopPropagation(),
1755            i.isMoved ||
1756                (r.loop && !r.cssMode && s.loopFix(),
1757                (i.startTranslate = s.getTranslat
1757e()),
1758                s.setTransition(0),
1759                s.animating && s.$wrapperEl.trigger('webkitTransitionEnd transitionend'),
1760                (i.allowMomentumBounce = !1),
1761                !r.grabCursor || (!0 !== s.allowSlideNext && !0 !== s.allowSlidePrev) || s.setGrabCursor(!0),
1762                s.emit('sliderFirstMove', c)),
1763            s.emit('sliderMove', c),
1764            (i.isMoved = !0));
1765        let v = s.isHorizontal() ? f : g;
1766        ((n.diff = v),
1767            (v *= r.touchRatio),
1768            l && (v = -v),
1769            (s.swipeDirection = v > 0 ? 'prev' : 'next'),
1770            (i.currentTranslate = v + i.startTranslate));
1771        let w = !0,
1772            b = r.resistanceRatio;
1773        if (
1774            (r.touchReleaseOnEdges && (b = 0),
1775            v > 0 && i.currentTranslate > s.minTranslate()
1776                ? ((w = !1),
1777                  r.resistance &&
1778                      (i.currentTranslate = s.minTranslate() - 1 + (-s.minTranslate() + i.startTranslate + v) ** b))
1779                : v < 0 &&
1780                  i.currentTranslate < s.maxTranslate() &&
1781                  ((w = !1),
1782                  r.resistance &&
1783                      (i.currentTranslate = s.maxTranslate() + 1 - (s.maxTranslate() - i.startTranslate - v) ** b)),
1784            w && (c.preventedByNestedSwiper = !0),
1785            !s.allowSlideNext &&
1786                'next' === s.swipeDirection &&
1787                i.currentTranslate < i.startTranslate &&
1788                (i.currentTranslate = i.startTranslate),
1789            !s.allowSlidePrev &&
1790                'prev' === s.swipeDirection &&
1791                i.currentTranslate > i.startTranslate &&
1792                (i.currentTranslate = i.startTranslate),
1793            s.allowSlidePrev || s.allowSlideNext || (i.currentTranslate = i.startTranslate),
1794            r.threshold > 0)
1795        ) {
1796            if (!(Math.abs(v) > r.threshold || i.allowThresholdMove))
1797                return void (i.currentTranslate = i.startTranslate);
1798            if (!i.allowThresholdMove)
1799                return (
1800                    (i.allowThresholdMove = !0),
1801                    (n.startX = n.currentX),
1802                    (n.startY = n.currentY),
1803                    (i.currentTranslate = i.startTranslate),
1804                    void (n.diff = s.isHorizontal() ? n.currentX - n.startX : n.currentY - n.startY)
1805                );
1806        }
1807        r.followFinger &&
1808            !r.cssMode &&
1809            (((r.freeMode && r.freeMode.enabled && s.freeMode) || r.watchSlidesProgress) &&
1810                (s.updateActiveIndex(), s.updateSlidesClasses()),
1811            s.params.freeMode && r.freeMode.enabled && s.freeMode && s.freeMode.onTouchMove(),
1812            s.updateProgress(i.currentTranslate),
1813            s.setTranslate(i.currentTranslate));
1814    }
1815    function I(e) {
1816        const t = this,
1817            s = t.touchEventsData,
1818            { params: a, touches: i, rtlTranslate: r, slidesGrid: n, enabled: l } = t;
1819        if (!l) return;
1820        let o = e;
1821        if (
1822            (o.originalEvent && (o = o.originalEvent),
1823            s.allowTouchCallbacks && t.emit('touchEnd', o),
1824            (s.allowTouchCallbacks = !1),
1825            !s.isTouched)
1826        )
1827            return (s.isMoved && a.grabCursor && t.setGrabCursor(!1), (s.isMoved = !1), void (s.startMoving = !1));
1828        a.grabCursor &&
1829            s.isMoved &&
1830            s.isTouched &&
1831            (!0 === t.allowSlideNext || !0 === t.allowSlidePrev) &&
1832            t.setGrabCursor(!1);
1833        const d = u(),
1834            c = d - s.touchStartTime;
1835        if (t.allowClick) {
1836            const e = o.path || (o.composedPath && o.composedPath());
1837            (t.updateClickedSlide((e && e[0]) || o.target),
1838                t.emit('tap click', o),
1839                c < 300 && d - s.lastClickTime < 300 && t.emit('doubleTap doubleClick', o));
1840        }
1841        if (
1842            ((s.lastClickTime = u()),
1843            p(() => {
1844                t.destroyed || (t.allowClick = !0);
1845            }),
1846            !s.isTouched || !s.isMoved || !t.swipeDirection || 0 === i.diff || s.currentTranslate === s.startTranslate)
1847        )
1848            return ((s.isTouched = !1), (s.isMoved = !1), void (s.startMoving = !1));
1849        let h;
1850        if (
1851            ((s.isTouched = !1),
1852            (s.isMoved = !1),
1853            (s.startMoving = !1),
1854            (h = a.followFinger ? (r ? t.translate : -t.translate) : -s.currentTranslate),
1855            a.cssMode)
1856        )
1857            return;
1858        if (t.params.freeMode && a.freeMode.enabled) return void t.freeMode.onTouchEnd({ currentPos: h });
1859        let m = 0,
1860            f = t.slidesSizesGrid[0];
1861        for (let e = 0; e < n.length; e += e < a.slidesPerGroupSkip ? 1 : a.slidesPerGroup) {
1862            const t = e < a.slidesPerGroupSkip - 1 ? 1 : a.slidesPerGroup;
1863            void 0 !== n[e + t]
1864                ? h >= n[e] && h < n[e + t] && ((m = e), (f = n[e + t] - n[e]))
1865                : h >= n[e] && ((m = e), (f = n[n.length - 1] - n[n.length - 2]));
1866        }
1867        let g = null,
1868            v = null;
1869        a.rewind &&
1870            (t.isBeginning
1871                ? (v =
1872                      t.params.virtual && t.params.virtual.enabled && t.virtual
1873                          ? t.virtual.slides.length - 1
1874                          : t.slides.length - 1)
1875                : t.isEnd && (g = 0));
1876        const w = (h - n[m]) / f,
1877            b = m < a.slidesPerGroupSkip - 1 ? 1 : a.slidesPerGroup;
1878        if (c > a.longSwipesMs) {
1879            if (!a.longSwipes) return void t.slideTo(t.activeIndex);
1880            ('next' === t.swipeDirection &&
1881                (w >= a.longSwipesRatio ? t.slideTo(a.rewind && t.isEnd ? g : m + b) : t.slideTo(m)),
1882                'prev' === t.swipeDirection &&
1883                    (w > 1 - a.longSwipesRatio
1884                        ? t.slideTo(m + b)
1885                        : null !== v && w < 0 && Math.abs(w) > a.longSwipesRatio
1886                          ? t.slideTo(v)
1887                          : t.slideTo(m)));
1888        } else {
1889            if (!a.shortSwipes) return void t.slideTo(t.activeIndex);
1890            t.navigation && (o.target === t.navigation.nextEl || o.target === t.navigation.prevEl)
1891                ? o.target === t.navigation.nextEl
1892                    ? t.slideTo(m + b)
1893                    : t.slideTo(m)
1894                : ('next' === t.swipeDirection && t.slideTo(null !== g ? g : m + b),
1895                  'prev' === t.swipeDirection && t.slideTo(null !== v ? v : m));
1896        }
1897    }
1898    function A() {
1899        const e = this,
1900            { params: t, el: s } = e;
1901        if (s && 0 === s.offsetWidth) return;
1902        t.breakpoints && e.setBreakpoint();
1903        const { allowSlideNext: a, allowSlidePrev: i, snapGrid: r } = e;
1904        ((e.allowSlideNext = !0),
1905            (e.allowSlidePrev = !0),
1906            e.updateSize(),
1907            e.updateSlides(),
1908            e.updateSlidesClasses(),
1909            ('auto' === t.slidesPerView || t.slidesPerView > 1) && e.isEnd && !e.isBeginning && !e.params.centeredSlides
1910                ? e.slideTo(e.slides.length - 1, 0, !1, !0)
1911                : e.slideTo(e.activeIndex, 0, !1, !0),
1912            e.autoplay && e.autoplay.running && e.autoplay.paused && e.autoplay.run(),
1913            (e.allowSlidePrev = i),
1914            (e.allowSlideNext = a),
1915            e.params.watchOverflow && r !== e.snapGrid && e.checkOverflow());
1916    }
1917    function D(e) {
1918        const t = this;
1919        t.enabled &&
1920            (t.allowClick ||
1921                (t.params.preventClicks && e.preventDefault(),
1922                t.params.preventClicksPropagation &&
1923                    t.animating &&
1924                    (e.stopPropagation(), e.stopImmediatePropagation())));
1925    }
1926    function G() {
1927        const e = this,
1928            { wrapperEl: t, rtlTranslate: s, enabled: a } = e;
1929        if (!a) return;
1930        let i;
1931        ((e.previousTranslate = e.translate),
1932            e.isHorizontal() ? (e.translate = -t.scrollLeft) : (e.translate = -t.scrollTop),
1933            0 === e.translate && (e.translate = 0),
1934            e.updateActiveIndex(),
1935            e.updateSlidesClasses());
1936        const r = e.maxTranslate() - e.minTranslate();
1937        ((i = 0 === r ? 0 : (e.translate - e.minTranslate()) / r),
1938            i !== e.progress && e.updateProgress(s ? -e.translate : e.translate),
1939            e.emit('setTranslate', e.translate, !1));
1940    }
1941    let N = !1;
1942    function B() {}
1943    const H = (e, t) => {
1944        const s = a(),
1945            { params: i, touchEvents: r, el: n, wrapperEl: l, device: o, support: d } = e,
1946            c = !!i.nested,
1947            p = 'on' === t ? 'addEventListener' : 'removeEventListener',
1948            u = t;
1949        if (d.touch) {
1950            const t = !('touchstart' !== r.start || !d.passiveListener || !i.passiveListeners) && {
1951                passive: !0,
1952                capture: !1,
1953            };
1954            (n[p](r.start, e.onTouchStart, t),
1955                n[p](r.move, e.onTouchMove, d.passiveListener ? { passive: !1, capture: c } : c),
1956                n[p](r.end, e.onTouchEnd, t),
1957                r.cancel && n[p](r.cancel, e.onTouchEnd, t));
1958        } else (n[p](r.start, e.onTouchStart, !1), s[p](r.move, e.onTouchMove, c), s[p](r.end, e.onTouchEnd, !1));
1959        ((i.preventClicks || i.preventClicksPropagation) && n[p]('click', e.onClick, !0),
1960            i.cssMode && l[p]('scroll', e.onScroll),
1961            i.updateOnWindowResize
1962                ? e[u](o.ios || o.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', A, !0)
1963                : e[u]('observerUpdate', A, !0));
1964    };
1965    var X = {
1966        attachEvents: function () {
1967            const e = this,
1968                t = a(),
1969                { params: s, support: i } = e;
1970            ((e.onTouchStart = L.bind(e)),
1971                (e.onTouchMove = O.bind(e)),
1972                (e.onTouchEnd = I.bind(e)),
1973                s.cssMode && (e.onScroll = G.bind(e)),
1974                (e.onClick = D.bind(e)),
1975                i.touch && !N && (t.addEventListener('touchstart', B), (N = !0)),
1976                H(e, 'on'));
1977        },
1978        detachEvents: function () {
1979            H(this, 'off');
1980        },
1981    };
1982    const Y = (e, t) => e.grid && t.grid && t.grid.rows > 1;
1983    var R = {
1984        addClasses: function () {
1985            const e = this,
1986                { classNames: t, params: s, rtl: a, $el: i, device: r, support: n } = e,
1987                l = (function (e, t) {
1988                    const s = [];
1989                    return (
1990                        e.forEach((e) => {
1991                            'object' == typeof e
1992                                ? Object.keys(e).forEach((a) => {
1993                                      e[a] && s.push(t + a);
1994                                  })
1995                                : 'string' == typeof e && s.push(t + e);
1996                        }),
1997                        s
1998                    );
1999                })(
2000                    [
2001                        'initialized',
2002                        s.direction,
2003                        { 'pointer-events': !n.touch },
2004                        { 'free-mode': e.params.freeMode && s.freeMode.enabled },
2005                        { autoheight: s.autoHeight },
2006                        { rtl: a },
2007                        { grid: s.grid && s.grid.rows > 1 },
2008                        { 'grid-column': s.grid && s.grid.rows > 1 && 'column' === s.grid.fill },
2009                        { android: r.android },
2010                        { ios: r.ios },
2011                        { 'css-mode': s.cssMode },
2012                        { centered: s.cssMode && s.centeredSlides },
2013                        { 'watch-progress': s.watchSlidesProgress },
2014                    ],
2015                    s.containerModifierClass
2016                );
2017            (t.push(...l), i.addClass([...t].join(' ')), e.emitContainerClasses());
2018        },
2019        removeClasses: function () {
2020            const { $el: e, classNames: t } = this;
2021            (e.removeClass(t.join(' ')), this.emitContainerClasses());
2022        },
2023    };
2024    var W = {
2025        init: !0,
2026        direction: 'horizontal',
2027        touchEventsTarget: 'wrapper',
2028        initialSlide: 0,
2029        speed: 300,
2030        cssMode: !1,
2031        updateOnWindowResize: !0,
2032        resizeObserver: !0,
2033        nested: !1,
2034        createElements: !1,
2035        enabled: !0,
2036        focusableElements: 'input, select, option, textarea, button, video, label',
2037        width: null,
2038        height: null,
2039        preventInteractionOnTransition: !1,
2040        userAgent: null,
2041        url: null,
2042        edgeSwipeDetection: !1,
2043        edgeSwipeThreshold: 20,
2044        autoHeight: !1,
2045        setWrapperSize: !1,
2046        virtualTranslate: !1,
2047        effect: 'slide',
2048        breakpoints: void 0,
2049        breakpointsBase: 'window',
2050        spaceBetween: 0,
2051        slidesPerView: 1,
2052        slidesPerGroup: 1,
2053        slidesPerGroupSkip: 0,
2054        slidesPerGroupAuto: !1,
2055        centeredSlides: !1,
2056        centeredSlidesBounds: !1,
2057        slidesOffsetBefore: 0,
2058        slidesOffsetAfter: 0,
2059        normalizeSlideIndex: !0,
2060        centerInsufficientSlides: !1,
2061        watchOverflow: !0,
2062        roundLengths: !1,
2063        touchRatio: 1,
2064        touchAngle: 45,
2065        simulateTouch: !0,
2066        shortSwipes: !0,
2067        longSwipes: !0,
2068        longSwipesRatio: 0.5,
2069        longSwipesMs: 300,
2070        followFinger: !0,
2071        allowTouchMove: !0,
2072        threshold: 0,
2073        touchMoveStopPropagation: !1,
2074        touchStartPreventDefault: !0,
2075        touchStartForcePreventDefault: !1,
2076        touchReleaseOnEdges: !1,
2077        uniqueNavElements: !0,
2078        resistance: !0,
2079        resistanceRatio: 0.85,
2080        watchSlidesProgress: !1,
2081        grabCursor: !1,
2082        preventClicks: !0,
2083        preventClicksPropagation: !0,
2084        slideToClickedSlide: !1,
2085        preloadImages: !0,
2086        updateOnImagesReady: !0,
2087        loop: !1,
2088        loopAdditionalSlides: 0,
2089        loopedSlides: null,
2090        loopedSlidesLimit: !0,
2091        loopFillGroupWithBlank: !1,
2092        loopPreventsSlide: !0,
2093        rewind: !1,
2094        allowSlidePrev: !0,
2095        allowSlideNext: !0,
2096        swipeHandler: null,
2097        noSwiping: !0,
2098        noSwipingClass: 'swiper-no-swiping',
2099        noSwipingSelector: null,
2100        passiveListeners: !0,
2101        maxBackfaceHiddenSlides: 10,
2102        containerModifierClass: 'swiper-',
2103        slideClass: 'swiper-slide',
2104        slideBlankClass: 'swiper-slide-invisible-blank',
2105        slideActiveClass: 'swiper-slide-active',
2106        slideDuplicateActiveClass: 'swiper-slide-duplicate-active',
2107        slideVisibleClass: 'swiper-slide-visible',
2108        slideDuplicateClass: 'swiper-slide-duplicate',
2109        slideNextClass: 'swiper-slide-next',
2110        slideDuplicateNextClass: 'swiper-slide-duplicate-next',
2111        slidePrevClass: 'swiper-slide-prev',
2112        slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',
2113        wrapperClass: 'swiper-wrapper',
2114        runCallbacksOnInit: !0,
2115        _emitClasses: !1,
2116    };
2117    function q(e, t) {
2118        return function (s) {
2119            void 0 === s && (s = {});
2120            const a = Object.keys(s)[0],
2121                i = s[a];
2122            'object' == typeof i && null !== i
2123                ? (['navigation', 'pagination', 'scrollbar'].indexOf(a) >= 0 && !0 === e[a] && (e[a] = { auto: !0 }),
2124                  a in e && 'enabled' in i
2125                      ? (!0 === e[a] && (e[a] = { enabled: !0 }),
2126                        'object' != typeof e[a] || 'enabled' in e[a] || (e[a].enabled = !0),
2127                        e[a] || (e[a] = { enabled: !1 }),
2128                        g(t, s))
2129                      : g(t, s))
2130                : g(t, s);
2131        };
2132    }
2133    const j = {
2134            eventsEmitter: $,
2135            update: S,
2136            translate: M,
2137            transition: {
2138                setTransition: function (e, t) {
2139                    const s = this;
2140                    (s.params.cssMode || s.$wrapperEl.transition(e), s.emit('setTransition', e, t));
2141                },
2142                transitionStart: function (e, t) {
2143                    void 0 === e && (e = !0);
2144                    const s = this,
2145                        { params: a } = s;
2146                    a.cssMode ||
2147                        (a.autoHeight && s.updateAutoHeight(),
2148                        P({ swiper: s, runCallbacks: e, direction: t, step: 'Start' }));
2149                },
2150                transitionEnd: function (e, t) {
2151                    void 0 === e && (e = !0);
2152                    const s = this,
2153                        { params: a } = s;
2154                    ((s.animating = !1),
2155                        a.cssMode ||
2156                            (s.setTransition(0), P({ swiper: s, runCallbacks: e, direction: t, step: 'End' })));
2157                },
2158            },
2159            slide: k,
2160            loop: z,
2161            grabCursor: {
2162                setGrabCursor: function (e) {
2163                    const t = this;
2164                    if (
2165                        t.support.touch ||
2166                        !t.params.simulateTouch ||
2167                        (t.params.watchOverflow && t.isLocked) ||
2168                        t.params.cssMode
2169                    )
2170                        return;
2171                    const s = 'container' === t.params.touchEventsTarget ? t.el : t.wrapperEl;
2172                    ((s.style.cursor = 'move'), (s.style.cursor = e ? 'grabbing' : 'grab'));
2173                },
2174                unsetGrabCursor: function () {
2175                    const e = this;
2176                    e.support.touch ||
2177                        (e.params.watchOverflow && e.isLocked) ||
2178                        e.params.cssMode ||
2179                        (e['container' === e.params.touchEventsTarget ? 'el' : 'wrapperEl'].style.cursor = '');
2180                },
2181            },
2182            events: X,
2183            breakpoints: {
2184                setBreakpoint: function () {
2185                    const e = this,
2186                        { activeIndex: t, initialized: s, loopedSlides: a = 0, params: i, $el: r } = e,
2187                        n = i.breakpoints;
2188                    if (!n || (n && 0 === Object.keys(n).length)) return;
2189                    const l = e.getBreakpoint(n, e.params.breakpointsBase, e.el);
2190                    if (!l || e.currentBreakpoint === l) return;
2191                    const o = (l in n ? n[l] : void 0) || e.originalParams,
2192                        d = Y(e, i),
2193                        c = Y(e, o),
2194                        p = i.enabled;
2195                    (d && !c
2196                        ? (r.removeClass(`${i.containerModifierClass}grid ${i.containerModifierClass}grid-column`),
2197                          e.emitContainerClasses())
2198                        : !d &&
2199                          c &&
2200                          (r.addClass(`${i.containerModifierClass}grid`),
2201                          ((o.grid.fill && 'column' === o.grid.fill) || (!o.grid.fill && 'column' === i.grid.fill)) &&
2202                              r.addClass(`${i.containerModifierClass}grid-column`),
2203                          e.emitContainerClasses()),
2204                        ['navigation', 'pagination', 'scrollbar'].forEach((t) => {
2205                            const s = i[t] && i[t].enabled,
2206                                a = o[t] && o[t].enabled;
2207                            (s && !a && e[t].disable(), !s && a && e[t].enable());
2208                        }));
2209                    const u = o.direction && o.direction !== i.direction,
2210                        h = i.loop && (o.slidesPerView !== i.slidesPerView || u);
2211                    (u && s && e.changeDirection(), g(e.params, o));
2212                    const m = e.params.enabled;
2213                    (Object.assign(e, {
2214                        allowTouchMove: e.params.allowTouchMove,
2215                        allowSlideNext: e.params.allowSlideNext,
2216                        allowSlidePrev: e.params.allowSlidePrev,
2217                    }),
2218                        p && !m ? e.disable() : !p && m && e.enable(),
2219                        (e.currentBreakpoint = l),
2220                        e.emit('_beforeBreakpoint', o),
2221                        h &&
2222                            s &&
2223                            (e.loopDestroy(),
2224                            e.loopCreate(),
2225                            e.updateSlides(),
2226                            e.slideTo(t - a + e.loopedSlides, 0, !1)),
2227                        e.emit('breakpoint', o));
2228                },
2229                getBreakpoint: function (e, t, s) {
2230                    if ((void 0 === t && (t = 'window'), !e || ('container' === t && !s))) return;
2231                    let a = !1;
2232                    const i = r(),
2233                        n = 'window' === t ? i.innerHeight : s.clientHeight,
2234                        l = Object.keys(e).map((e) => {
2235                            if ('string' == typeof e && 0 === e.indexOf('@')) {
2236                                const t = parseFloat(e.substr(1));
2237                                return { value: n * t, point: e };
2238                            }
2239                            return { value: e, point: e };
2240                        });
2241                    l.sort((e, t) => parseInt(e.value, 10) - parseInt(t.value, 10));
2242                    for (let e = 0; e < l.length; e += 1) {
2243                        const { point: r, value: n } = l[e];
2244                        'window' === t
2245                            ? i.matchMedia(`(min-width: ${n}px)`).matches && (a = r)
2246                            : n <= s.clientWidth && (a = r);
2247                    }
2248                    return a || 'max';
2249                },
2250            },
2251            checkOverflow: {
2252                checkOverflow: function () {
2253                    const e = this,
2254                        { isLocked: t, params: s } = e,
2255                        { slidesOffsetBefore: a } = s;
2256                    if (a) {
2257                        const t = e.slides.length - 1,
2258                            s = e.slidesGrid[t] + e.slidesSizesGrid[t] + 2 * a;
2259                        e.isLocked = e.size > s;
2260                    } else e.isLocked = 1 === e.snapGrid.length;
2261                    (!0 === s.allowSlideNext && (e.allowSlideNext = !e.isLocked),
2262                        !0 === s.allowSlidePrev && (e.allowSlidePrev = !e.isLocked),
2263                        t && t !== e.isLocked && (e.isEnd = !1),
2264                        t !== e.isLocked && e.emit(e.isLocked ? 'lock' : 'unlock'));
2265                },
2266            },
2267            classes: R,
2268            images: {
2269                loadImage: function (e, t, s, a, i, n) {
2270                    const l = r();
2271                    let o;
2272                    function c() {
2273                        n && n();
2274                    }
2275                    d(e).parent('picture')[0] || (e.complete && i)
2276                        ? c()
2277                        : t
2278                          ? ((o = new l.Image()),
2279                            (o.onload = c),
2280                            (o.onerror = c),
2281                            a && (o.sizes = a),
2282                            s && (o.srcset = s),
2283                            t && (o.src = t))
2284                          : c();
2285                },
2286                preloadImages: function () {
2287                    const e = this;
2288                    function t() {
2289                        null != e &&
2290                            e &&
2291                            !e.destroyed &&
2292                            (void 0 !== e.imagesLoaded && (e.imagesLoaded += 1),
2293                            e.imagesLoaded === e.imagesToLoad.length &&
2294                                (e.params.updateOnImagesReady && e.update(
2294), e.emit('imagesReady')));
2295                    }
2296                    e.imagesToLoad = e.$el.find('img');
2297                    for (let s = 0; s < e.imagesToLoad.length; s += 1) {
2298                        const a = e.imagesToLoad[s];
2299                        e.loadImage(
2300                            a,
2301                            a.currentSrc || a.getAttribute('src'),
2302                            a.srcset || a.getAttribute('srcset'),
2303                            a.sizes || a.getAttribute('sizes'),
2304                            !0,
2305                            t
2306                        );
2307                    }
2308                },
2309            },
2310        },
2311        _ = {};
2312    class V {
2313        constructor() {
2314            let e, t;
2315            for (var s = arguments.length, a = new Array(s), i = 0; i < s; i++) a[i] = arguments[i];
2316            if (
2317                (1 === a.length && a[0].constructor && 'Object' === Object.prototype.toString.call(a[0]).slice(8, -1)
2318                    ? (t = a[0])
2319                    : ([e, t] = a),
2320                t || (t = {}),
2321                (t = g({}, t)),
2322                e && !t.el && (t.el = e),
2323                t.el && d(t.el).length > 1)
2324            ) {
2325                const e = [];
2326                return (
2327                    d(t.el).each((s) => {
2328                        const a = g({}, t, { el: s });
2329                        e.push(new V(a));
2330                    }),
2331                    e
2332                );
2333            }
2334            const r = this;
2335            ((r.__swiper__ = !0),
2336                (r.support = E()),
2337                (r.device = C({ userAgent: t.userAgent })),
2338                (r.browser = T()),
2339                (r.eventsListeners = {}),
2340                (r.eventsAnyListeners = []),
2341                (r.modules = [...r.__modules__]),
2342                t.modules && Array.isArray(t.modules) && r.modules.push(...t.modules));
2343            const n = {};
2344            r.modules.forEach((e) => {
2345                e({
2346                    swiper: r,
2347                    extendParams: q(t, n),
2348                    on: r.on.bind(r),
2349                    once: r.once.bind(r),
2350                    off: r.off.bind(r),
2351                    emit: r.emit.bind(r),
2352                });
2353            });
2354            const l = g({}, W, n);
2355            return (
2356                (r.params = g({}, l, _, t)),
2357                (r.originalParams = g({}, r.params)),
2358                (r.passedParams = g({}, t)),
2359                r.params &&
2360                    r.params.on &&
2361                    Object.keys(r.params.on).forEach((e) => {
2362                        r.on(e, r.params.on[e]);
2363                    }),
2364                r.params && r.params.onAny && r.onAny(r.params.onAny),
2365                (r.$ = d),
2366                Object.assign(r, {
2367                    enabled: r.params.enabled,
2368                    el: e,
2369                    classNames: [],
2370                    slides: d(),
2371                    slidesGrid: [],
2372                    snapGrid: [],
2373                    slidesSizesGrid: [],
2374                    isHorizontal: () => 'horizontal' === r.params.direction,
2375                    isVertical: () => 'vertical' === r.params.direction,
2376                    activeIndex: 0,
2377                    realIndex: 0,
2378                    isBeginning: !0,
2379                    isEnd: !1,
2380                    translate: 0,
2381                    previousTranslate: 0,
2382                    progress: 0,
2383                    velocity: 0,
2384                    animating: !1,
2385                    allowSlideNext: r.params.allowSlideNext,
2386                    allowSlidePrev: r.params.allowSlidePrev,
2387                    touchEvents: (function () {
2388                        const e = ['touchstart', 'touchmove', 'touchend', 'touchcancel'],
2389                            t = ['pointerdown', 'pointermove', 'pointerup'];
2390                        return (
2391                            (r.touchEventsTouch = { start: e[0], move: e[1], end: e[2], cancel: e[3] }),
2392                            (r.touchEventsDesktop = { start: t[0], move: t[1], end: t[2] }),
2393                            r.support.touch || !r.params.simulateTouch ? r.touchEventsTouch : r.touchEventsDesktop
2394                        );
2395                    })(),
2396                    touchEventsData: {
2397                        isTouched: void 0,
2398                        isMoved: void 0,
2399                        allowTouchCallbacks: void 0,
2400                        touchStartTime: void 0,
2401                        isScrolling: void 0,
2402                        currentTranslate: void 0,
2403                        startTranslate: void 0,
2404                        allowThresholdMove: void 0,
2405                        focusableElements: r.params.focusableElements,
2406                        lastClickTime: u(),
2407                        clickTimeout: void 0,
2408                        velocities: [],
2409                        allowMomentumBounce: void 0,
2410                        isTouchEvent: void 0,
2411                        startMoving: void 0,
2412                    },
2413                    allowClick: !0,
2414                    allowTouchMove: r.params.allowTouchMove,
2415                    touches: { startX: 0, startY: 0, currentX: 0, currentY: 0, diff: 0 },
2416                    imagesToLoad: [],
2417                    imagesLoaded: 0,
2418                }),
2419                r.emit('_swiper'),
2420                r.params.init && r.init(),
2421                r
2422            );
2423        }
2424        enable() {
2425            const e = this;
2426            e.enabled || ((e.enabled = !0), e.params.grabCursor && e.setGrabCursor(), e.emit('enable'));
2427        }
2428        disable() {
2429            const e = this;
2430            e.enabled && ((e.enabled = !1), e.params.grabCursor && e.unsetGrabCursor(), e.emit('disable'));
2431        }
2432        setProgress(e, t) {
2433            const s = this;
2434            e = Math.min(Math.max(e, 0), 1);
2435            const a = s.minTranslate(),
2436                i = (s.maxTranslate() - a) * e + a;
2437            (s.translateTo(i, void 0 === t ? 0 : t), s.updateActiveIndex(), s.updateSlidesClasses());
2438        }
2439        emitContainerClasses() {
2440            const e = this;
2441            if (!e.params._emitClasses || !e.el) return;
2442            const t = e.el.className
2443                .split(' ')
2444                .filter((t) => 0 === t.indexOf('swiper') || 0 === t.indexOf(e.params.containerModifierClass));
2445            e.emit('_containerClasses', t.join(' '));
2446        }
2447        getSlideClasses(e) {
2448            const t = this;
2449            return t.destroyed
2450                ? ''
2451                : e.className
2452                      .split(' ')
2453                      .filter((e) => 0 === e.indexOf('swiper-slide') || 0 === e.indexOf(t.params.slideClass))
2454                      .join(' ');
2455        }
2456        emitSlidesClasses() {
2457            const e = this;
2458            if (!e.params._emitClasses || !e.el) return;
2459            const t = [];
2460            (e.slides.each((s) => {
2461                const a = e.getSlideClasses(s);
2462                (t.push({ slideEl: s, classNames: a }), e.emit('_slideClass', s, a));
2463            }),
2464                e.emit('_slideClasses', t));
2465        }
2466        slidesPerViewDynamic(e, t) {
2467            (void 0 === e && (e = 'current'), void 0 === t && (t = !1));
2468            const { params: s, slides: a, slidesGrid: i, slidesSizesGrid: r, size: n, activeIndex: l } = this;
2469            let o = 1;
2470            if (s.centeredSlides) {
2471                let e,
2472                    t = a[l].swiperSlideSize;
2473                for (let s = l + 1; s < a.length; s += 1)
2474                    a[s] && !e && ((t += a[s].swiperSlideSize), (o += 1), t > n && (e = !0));
2475                for (let s = l - 1; s >= 0; s -= 1)
2476                    a[s] && !e && ((t += a[s].swiperSlideSize), (o += 1), t > n && (e = !0));
2477            } else if ('current' === e)
2478                for (let e = l + 1; e < a.length; e += 1) {
2479                    (t ? i[e] + r[e] - i[l] < n : i[e] - i[l] < n) && (o += 1);
2480                }
2481            else
2482                for (let e = l - 1; e >= 0; e -= 1) {
2483                    i[l] - i[e] < n && (o += 1);
2484                }
2485            return o;
2486        }
2487        update() {
2488            const e = this;
2489            if (!e || e.destroyed) return;
2490            const { snapGrid: t, params: s } = e;
2491            function a() {
2492                const t = e.rtlTranslate ? -1 * e.translate : e.translate,
2493                    s = Math.min(Math.max(t, e.maxTranslate()), e.minTranslate());
2494                (e.setTranslate(s), e.updateActiveIndex(), e.updateSlidesClasses());
2495            }
2496            let i;
2497            (s.breakpoints && e.setBreakpoint(),
2498                e.updateSize(),
2499                e.updateSlides(),
2500                e.updateProgress(),
2501                e.updateSlidesClasses(),
2502                e.params.freeMode && e.params.freeMode.enabled
2503                    ? (a(), e.params.autoHeight && e.updateAutoHeight())
2504                    : ((i =
2505                          ('auto' === e.params.slidesPerView || e.params.slidesPerView > 1) &&
2506                          e.isEnd &&
2507                          !e.params.centeredSlides
2508                              ? e.slideTo(e.slides.length - 1, 0, !1, !0)
2509                              : e.slideTo(e.activeIndex, 0, !1, !0)),
2510                      i || a()),
2511                s.watchOverflow && t !== e.snapGrid && e.checkOverflow(),
2512                e.emit('update'));
2513        }
2514        changeDirection(e, t) {
2515            void 0 === t && (t = !0);
2516            const s = this,
2517                a = s.params.direction;
2518            return (
2519                e || (e = 'horizontal' === a ? 'vertical' : 'horizontal'),
2520                e === a ||
2521                    ('horizontal' !== e && 'vertical' !== e) ||
2522                    (s.$el
2523                        .removeClass(`${s.params.containerModifierClass}${a}`)
2524                        .addClass(`${s.params.containerModifierClass}${e}`),
2525                    s.emitContainerClasses(),
2526                    (s.params.direction = e),
2527                    s.slides.each((t) => {
2528                        'vertical' === e ? (t.style.width = '') : (t.style.height = '');
2529                    }),
2530                    s.emit('changeDirection'),
2531                    t && s.update()),
2532                s
2533            );
2534        }
2535        changeLanguageDirection(e) {
2536            const t = this;
2537            (t.rtl && 'rtl' === e) ||
2538                (!t.rtl && 'ltr' === e) ||
2539                ((t.rtl = 'rtl' === e),
2540                (t.rtlTranslate = 'horizontal' === t.params.direction && t.rtl),
2541                t.rtl
2542                    ? (t.$el.addClass(`${t.params.containerModifierClass}rtl`), (t.el.dir = 'rtl'))
2543                    : (t.$el.removeClass(`${t.params.containerModifierClass}rtl`), (t.el.dir = 'ltr')),
2544                t.update());
2545        }
2546        mount(e) {
2547            const t = this;
2548            if (t.mounted) return !0;
2549            const s = d(e || t.params.el);
2550            if (!(e = s[0])) return !1;
2551            e.swiper = t;
2552            const i = () => `.${(t.params.wrapperClass || '').trim().split(' ').join('.')}`;
2553            let r = (() => {
2554                if (e && e.shadowRoot && e.shadowRoot.querySelector) {
2555                    const t = d(e.shadowRoot.querySelector(i()));
2556                    return ((t.children = (e) => s.children(e)), t);
2557                }
2558                return s.children ? s.children(i()) : d(s).children(i());
2559            })();
2560            if (0 === r.length && t.params.createElements) {
2561                const e = a().createElement('div');
2562                ((r = d(e)),
2563                    (e.className = t.params.wrapperClass),
2564                    s.append(e),
2565                    s.children(`.${t.params.slideClass}`).each((e) => {
2566                        r.append(e);
2567                    }));
2568            }
2569            return (
2570                Object.assign(t, {
2571                    $el: s,
2572                    el: e,
2573                    $wrapperEl: r,
2574                    wrapperEl: r[0],
2575                    mounted: !0,
2576                    rtl: 'rtl' === e.dir.toLowerCase() || 'rtl' === s.css('direction'),
2577                    rtlTranslate:
2578                        'horizontal' === t.params.direction &&
2579                        ('rtl' === e.dir.toLowerCase() || 'rtl' === s.css('direction')),
2580                    wrongRTL: '-webkit-box' === r.css('display'),
2581                }),
2582                !0
2583            );
2584        }
2585        init(e) {
2586            const t = this;
2587            if (t.initialized) return t;
2588            return (
2589                !1 === t.mount(e) ||
2590                    (t.emit('beforeInit'),
2591                    t.params.breakpoints && t.setBreakpoint(),
2592                    t.addClasses(),
2593                    t.params.loop && t.loopCreate(),
2594                    t.updateSize(),
2595                    t.updateSlides(),
2596                    t.params.watchOverflow && t.checkOverflow(),
2597                    t.params.grabCursor && t.enabled && t.setGrabCursor(),
2598                    t.params.preloadImages && t.preloadImages(),
2599                    t.params.loop
2600                        ? t.slideTo(t.params.initialSlide + t.loopedSlides, 0, t.params.runCallbacksOnInit, !1, !0)
2601                        : t.slideTo(t.params.initialSlide, 0, t.params.runCallbacksOnInit, !1, !0),
2602                    t.attachEvents(),
2603                    (t.initialized = !0),
2604                    t.emit('init'),
2605                    t.emit('afterInit')),
2606                t
2607            );
2608        }
2609        destroy(e, t) {
2610            (void 0 === e && (e = !0), void 0 === t && (t = !0));
2611            const s = this,
2612                { params: a, $el: i, $wrapperEl: r, slides: n } = s;
2613            return (
2614                void 0 === s.params ||
2615                    s.destroyed ||
2616                    (s.emit('beforeDestroy'),
2617                    (s.initialized = !1),
2618                    s.detachEvents(),
2619                    a.loop && s.loopDestroy(),
2620                    t &&
2621                        (s.removeClasses(),
2622                        i.removeAttr('style'),
2623                        r.removeAttr('style'),
2624                        n &&
2625                            n.length &&
2626                            n
2627                                .removeClass(
2628                                    [a.slideVisibleClass, a.slideActiveClass, a.slideNextClass, a.slidePrevClass].join(
2629                                        ' '
2630                                    )
2631                                )
2632                                .removeAttr('style')
2633                                .removeAttr('data-swiper-slide-index')),
2634                    s.emit('destroy'),
2635                    Object.keys(s.eventsListeners).forEach((e) => {
2636                        s.off(e);
2637                    }),
2638                    !1 !== e &&
2639                        ((s.$el[0].swiper = null),
2640                        (function (e) {
2641                            const t = e;
2642                            Object.keys(t).forEach((e) => {
2643                                try {
2644                                    t[e] = null;
2645                                } catch (e) {}
2646                                try {
2647                                    delete t[e];
2648                                } catch (e) {}
2649                            });
2650                        })(s)),
2651                    (s.destroyed = !0)),
2652                null
2653            );
2654        }
2655        static extendDefaults(e) {
2656            g(_, e);
2657        }
2658        static get extendedDefaults() {
2659            return _;
2660        }
2661        static get defaults() {
2662            return W;
2663        }
2664        static installModule(e) {
2665            V.prototype.__modules__ || (V.prototype.__modules__ = []);
2666            const t = V.prototype.__modules__;
2667            'function' == typeof e && t.indexOf(e) < 0 && t.push(e);
2668        }
2669        static use(e) {
2670            return Array.isArray(e) ? (e.forEach((e) => V.installModule(e)), V) : (V.installModule(e), V);
2671        }
2672    }
2673    function F(e, t, s, i) {
2674        const r = a();
2675        return (
2676            e.params.createElements &&
2677                Object.keys(i).forEach((a) => {
2678                    if (!s[a] && !0 === s.auto) {
2679                        let n = e.$el.children(`.${i[a]}`)[0];
2680                        (n || ((n = r.createElement('div')), (n.className = i[a]), e.$el.append(n)),
2681                            (s[a] = n),
2682                            (t[a] = n));
2683                    }
2684                }),
2685            s
2686        );
2687    }
2688    function U(e) {
2689        return (
2690            void 0 === e && (e = ''),
2691            `.${e
2692                .trim()
2693                .replace(/([\.:!\/])/g, '\\$1')
2694                .replace(/ /g, '.')}`
2695        );
2696    }
2697    function K(e) {
2698        const t = this,
2699            { $wrapperEl: s, params: a } = t;
2700        if ((a.loop && t.loopDestroy(), 'object' == typeof e && 'length' in e))
2701            for (let t = 0; t < e.length; t += 1) e[t] && s.append(e[t]);
2702        else s.append(e);
2703        (a.loop && t.loopCreate(), a.observer || t.update());
2704    }
2705    function Z(e) {
2706        const t = this,
2707            { params: s, $wrapperEl: a, activeIndex: i } = t;
2708        s.loop && t.loopDestroy();
2709        let r = i + 1;
2710        if ('object' == typeof e && 'length' in e) {
2711            for (let t = 0; t < e.length; t += 1) e[t] && a.prepend(e[t]);
2712            r = i + e.length;
2713        } else a.prepend(e);
2714        (s.loop && t.loopCreate(), s.observer || t.update(), t.slideTo(r, 0, !1));
2715    }
2716    function Q(e, t) {
2717        const s = this,
2718            { $wrapperEl: a, params: i, activeIndex: r } = s;
2719        let n = r;
2720        i.loop && ((n -= s.loopedSlides), s.loopDestroy(), (s.slides = a.children(`.${i.slideClass}`)));
2721        const l = s.slides.length;
2722        if (e <= 0) return void s.prependSlide(t);
2723        if (e >= l) return void s.appendSlide(t);
2724        let o = n > e ? n + 1 : n;
2725        const d = [];
2726        for (let t = l - 1; t >= e; t -= 1) {
2727            const e = s.slides.eq(t);
2728            (e.remove(), d.unshift(e));
2729        }
2730        if ('object' == typeof t && 'length' in t) {
2731            for (let e = 0; e < t.length; e += 1) t[e] && a.append(t[e]);
2732            o = n > e ? n + t.length : n;
2733        } else a.append(t);
2734        for (let e = 0; e < d.length; e += 1) a.append(d[e]);
2735        (i.loop && s.loopCreate(),
2736            i.observer || s.update(),
2737            i.loop ? s.slideTo(o + s.loopedSlides, 0, !1) : s.slideTo(o, 0, !1));
2738    }
2739    function J(e) {
2740        const t = this,
2741            { params: s, $wrapperEl: a, activeIndex: i } = t;
2742        let r = i;
2743        s.loop && ((r -= t.loopedSlides), t.loopDestroy(), (t.slides = a.children(`.${s.slideClass}`)));
2744        let n,
2745            l = r;
2746        if ('object' == typeof e && 'length' in e) {
2747            for (let s = 0; s < e.length; s += 1)
2748                ((n = e[s]), t.slides[n] && t.slides.eq(n).remove(), n < l && (l -= 1));
2749            l = Math.max(l, 0);
2750        } else ((n = e), t.slides[n] && t.slides.eq(n).remove(), n < l && (l -= 1), (l = Math.max(l, 0)));
2751        (s.loop && t.loopCreate(),
2752            s.observer || t.update(),
2753            s.loop ? t.slideTo(l + t.loopedSlides, 0, !1) : t.slideTo(l, 0, !1));
2754    }
2755    function ee() {
2756        const e = this,
2757            t = [];
2758        for (let s = 0; s < e.slides.length; s += 1) t.push(s);
2759        e.removeSlide(t);
2760    }
2761    function te(e) {
2762        const {
2763            effect: t,
2764            swiper: s,
2765            on: a,
2766            setTranslate: i,
2767            setTransition: r,
2768            overwriteParams: n,
2769            perspective: l,
2770            recreateShadows: o,
2771            getEffectParams: d,
2772        } = e;
2773        let c;
2774        (a('beforeInit', () => {
2775            if (s.params.effect !== t) return;
2776            (s.classNames.push(`${s.params.containerModifierClass}${t}`),
2777                l && l() && s.classNames.push(`${s.params.containerModifierClass}3d`));
2778            const e = n ? n() : {};
2779            (Object.assign(s.params, e), Object.assign(s.originalParams, e));
2780        }),
2781            a('setTranslate', () => {
2782                s.params.effect === t && i();
2783            }),
2784            a('setTransition', (e, a) => {
2785                s.params.effect === t && r(a);
2786            }),
2787            a('transitionEnd', () => {
2788                if (s.params.effect === t && o) {
2789                    if (!d || !d().slideShadows) return;
2790                    (s.slides.each((e) => {
2791                        s.$(e)
2792                            .find(
2793                                '.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left'
2794                            )
2795                            .remove();
2796                    }),
2797                        o());
2798                }
2799            }),
2800            a('virtualUpdate', () => {
2801                s.params.effect === t &&
2802                    (s.slides.length || (c = !0),
2803                    requestAnimationFrame(() => {
2804                        c && s.slides && s.slides.length && (i(), (c = !1));
2805                    }));
2806            }));
2807    }
2808    function se(e, t) {
2809        return e.transformEl
2810            ? t.find(e.transformEl).css({ 'backface-visibility': 'hidden', '-webkit-backface-visibility': 'hidden' })
2811            : t;
2812    }
2813    function ae(e) {
2814        let { swiper: t, duration: s, transformEl: a, allSlides: i } = e;
2815        const { slides: r, activeIndex: n, $wrapperEl: l } = t;
2816        if (t.params.virtualTranslate && 0 !== s) {
2817            let e,
2818                s = !1;
2819            ((e = i ? (a ? r.find(a) : r) : a ? r.eq(n).find(a) : r.eq(n)),
2820                e.transitionEnd(() => {
2821                    if (s) return;
2822                    if (!t || t.destroyed) return;
2823                    ((s = !0), (t.animating = !1));
2824                    const e = ['webkitTransitionEnd', 'transitionend'];
2825                    for (let t = 0; t < e.length; t += 1) l.trigger(e[t]);
2826                }));
2827        }
2828    }
2829    function ie(e, t, s) {
2830        const a = 'swiper-slide-shadow' + (s ? `-${s}` : ''),
2831            i = e.transformEl ? t.find(e.transformEl) : t;
2832        let r = i.children(`.${a}`);
2833        return (r.length || ((r = d(`<div class="swiper-slide-shadow${s ? `-${s}` : ''}"></div>`)), i.append(r)), r);
2834    }
2835    (Object.keys(j).forEach((e) => {
2836        Object.keys(j[e]).forEach((t) => {
2837            V.prototype[t] = j[e][t];
2838        });
2839    }),
2840        V.use([
2841            function (e) {
2842                let { swiper: t, on: s, emit: a } = e;
2843                const i = r();
2844                let n = null,
2845                    l = null;
2846                const o = () => {
2847                        t && !t.destroyed && t.initialized && (a('beforeResize'), a('resize'));
2848                    },
2849                    d = () => {
2850                        t && !t.destroyed && t.initialized && a('orientationchange');
2851                    };
2852                (s('init', () => {
2853                    t.params.resizeObserver && void 0 !== i.ResizeObserver
2854                        ? t &&
2855                          !t.destroyed &&
2856                          t.initialized &&
2857                          ((n = new ResizeObserver((e) => {
2858                              l = i.requestAnimationFrame(() => {
2859                                  const { width: s, height: a } = t;
2860                                  let i = s,
2861                                      r = a;
2862                                  (e.forEach((e) => {
2863                                      let { contentBoxSize: s, contentRect: a, target: n } = e;
2864                                      (n && n !== t.el) ||
2865                                          ((i = a ? a.width : (s[0] || s).inlineSize),
2866                                          (r = a ? a.height : (s[0] || s).blockSize));
2867                                  }),
2868                                      (i === s && r === a) || o());
2869                              });
2870                          })),
2871                          n.observe(t.el))
2872                        : (i.addEventListener('resize', o), i.addEventListener('orientationchange', d));
2873                }),
2874                    s('destroy', () => {
2875                        (l && i.cancelAnimationFrame(l),
2876                            n && n.unobserve && t.el && (n.unobserve(t.el), (n = null)),
2877                            i.removeEventListener('resize', o),
2878                            i.removeEventListener('orientationchange', d));
2879                    }));
2880            },
2881            function (e) {
2882                let { swiper: t, extendParams: s, on: a, emit: i } = e;
2883                const n = [],
2884                    l = r(),
2885                    o = function (e, t) {
2886                        void 0 === t && (t = {});
2887                        const s = new (l.MutationObserver || l.WebkitMutationObserver)((e) => {
2888                            if (1 === e.length) return void i('observerUpdate', e[0]);
2889                            const t = function () {
2890                                i('observerUpdate', e[0]);
2891                            };
2892                            l.requestAnimationFrame ? l.requestAnimationFrame(t) : l.setTimeout(t, 0);
2893                        });
2894                        (s.observe(e, {
2895                            attributes: void 0 === t.attributes || t.attributes,
2896                            childList: void 0 === t.childList || t.childList,
2897                            characterData: void 0 === t.characterData || t.characterData,
2898                        }),
2899                            n.push(s));
2900                    };
2901                (s({ observer: !1, observeParents: !1, observeSlideChildren: !1 }),
2902                    a('init', () => {
2903                        if (t.params.observer) {
2904                            if (t.params.observeParents) {
2905                                const e = t.$el.parents();
2906                                for (let t = 0; t < e.length; t += 1) o(e[t]);
2907                            }
2908                            (o(t.$el[0], { childList: t.params.observeSlideChildren }),
2909                                o(t.$wrapperEl[0], { attributes: !1 }));
2910                        }
2911                    }),
2912                    a('destroy', () => {
2913                        (n.forEach((e) => {
2914                            e.disconnect();
2915                        }),
2916                            n.splice(0, n.length));
2917                    }));
2918            },
2919        ]));
2920    const re = [
2921        function (e) {
2922            let t,
2923                { swiper: s, extendParams: a, on: i, emit: r }
2923 = e;
2924            function n(e, t) {
2925                const a = s.params.virtual;
2926                if (a.cache && s.virtual.cache[t]) return s.virtual.cache[t];
2927                const i = a.renderSlide
2928                    ? d(a.renderSlide.call(s, e, t))
2929                    : d(`<div class="${s.params.slideClass}" data-swiper-slide-index="${t}">${e}</div>`);
2930                return (
2931                    i.attr('data-swiper-slide-index') || i.attr('data-swiper-slide-index', t),
2932                    a.cache && (s.virtual.cache[t] = i),
2933                    i
2934                );
2935            }
2936            function l(e) {
2937                const { slidesPerView: t, slidesPerGroup: a, centeredSlides: i } = s.params,
2938                    { addSlidesBefore: l, addSlidesAfter: o } = s.params.virtual,
2939                    { from: d, to: c, slides: p, slidesGrid: u, offset: h } = s.virtual;
2940                s.params.cssMode || s.updateActiveIndex();
2941                const m = s.activeIndex || 0;
2942                let f, g, v;
2943                ((f = s.rtlTranslate ? 'right' : s.isHorizontal() ? 'left' : 'top'),
2944                    i
2945                        ? ((g = Math.floor(t / 2) + a + o), (v = Math.floor(t / 2) + a + l))
2946                        : ((g = t + (a - 1) + o), (v = a + l)));
2947                const w = Math.max((m || 0) - v, 0),
2948                    b = Math.min((m || 0) + g, p.length - 1),
2949                    x = (s.slidesGrid[w] || 0) - (s.slidesGrid[0] || 0);
2950                function y() {
2951                    (s.updateSlides(),
2952                        s.updateProgress(),
2953                        s.updateSlidesClasses(),
2954                        s.lazy && s.params.lazy.enabled && s.lazy.load(),
2955                        r('virtualUpdate'));
2956                }
2957                if (
2958                    (Object.assign(s.virtual, { from: w, to: b, offset: x, slidesGrid: s.slidesGrid }),
2959                    d === w && c === b && !e)
2960                )
2961                    return (
2962                        s.slidesGrid !== u && x !== h && s.slides.css(f, `${x}px`),
2963                        s.updateProgress(),
2964                        void r('virtualUpdate')
2965                    );
2966                if (s.params.virtual.renderExternal)
2967                    return (
2968                        s.params.virtual.renderExternal.call(s, {
2969                            offset: x,
2970                            from: w,
2971                            to: b,
2972                            slides: (function () {
2973                                const e = [];
2974                                for (let t = w; t <= b; t += 1) e.push(p[t]);
2975                                return e;
2976                            })(),
2977                        }),
2978                        void (s.params.virtual.renderExternalUpdate ? y() : r('virtualUpdate'))
2979                    );
2980                const E = [],
2981                    C = [];
2982                if (e) s.$wrapperEl.find(`.${s.params.slideClass}`).remove();
2983                else
2984                    for (let e = d; e <= c; e += 1)
2985                        (e < w || e > b) &&
2986                            s.$wrapperEl.find(`.${s.params.slideClass}[data-swiper-slide-index="${e}"]`).remove();
2987                for (let t = 0; t < p.length; t += 1)
2988                    t >= w && t <= b && (void 0 === c || e ? C.push(t) : (t > c && C.push(t), t < d && E.push(t)));
2989                (C.forEach((e) => {
2990                    s.$wrapperEl.append(n(p[e], e));
2991                }),
2992                    E.sort((e, t) => t - e).forEach((e) => {
2993                        s.$wrapperEl.prepend(n(p[e], e));
2994                    }),
2995                    s.$wrapperEl.children('.swiper-slide').css(f, `${x}px`),
2996                    y());
2997            }
2998            (a({
2999                virtual: {
3000                    enabled: !1,
3001                    slides: [],
3002                    cache: !0,
3003                    renderSlide: null,
3004                    renderExternal: null,
3005                    renderExternalUpdate: !0,
3006                    addSlidesBefore: 0,
3007                    addSlidesAfter: 0,
3008                },
3009            }),
3010                (s.virtual = { cache: {}, from: void 0, to: void 0, slides: [], offset: 0, slidesGrid: [] }),
3011                i('beforeInit', () => {
3012                    s.params.virtual.enabled &&
3013                        ((s.virtual.slides = s.params.virtual.slides),
3014                        s.classNames.push(`${s.params.containerModifierClass}virtual`),
3015                        (s.params.watchSlidesProgress = !0),
3016                        (s.originalParams.watchSlidesProgress = !0),
3017                        s.params.initialSlide || l());
3018                }),
3019                i('setTranslate', () => {
3020                    s.params.virtual.enabled &&
3021                        (s.params.cssMode && !s._immediateVirtual
3022                            ? (clearTimeout(t),
3023                              (t = setTimeout(() => {
3024                                  l();
3025                              }, 100)))
3026                            : l());
3027                }),
3028                i('init update resize', () => {
3029                    s.params.virtual.enabled &&
3030                        s.params.cssMode &&
3031                        v(s.wrapperEl, '--swiper-virtual-size', `${s.virtualSize}px`);
3032                }),
3033                Object.assign(s.virtual, {
3034                    appendSlide: function (e) {
3035                        if ('object' == typeof e && 'length' in e)
3036                            for (let t = 0; t < e.length; t += 1) e[t] && s.virtual.slides.push(e[t]);
3037                        else s.virtual.slides.push(e);
3038                        l(!0);
3039                    },
3040                    prependSlide: function (e) {
3041                        const t = s.activeIndex;
3042                        let a = t + 1,
3043                            i = 1;
3044                        if (Array.isArray(e)) {
3045                            for (let t = 0; t < e.length; t += 1) e[t] && s.virtual.slides.unshift(e[t]);
3046                            ((a = t + e.length), (i = e.length));
3047                        } else s.virtual.slides.unshift(e);
3048                        if (s.params.virtual.cache) {
3049                            const e = s.virtual.cache,
3050                                t = {};
3051                            (Object.keys(e).forEach((s) => {
3052                                const a = e[s],
3053                                    r = a.attr('data-swiper-slide-index');
3054                                (r && a.attr('data-swiper-slide-index', parseInt(r, 10) + i),
3055                                    (t[parseInt(s, 10) + i] = a));
3056                            }),
3057                                (s.virtual.cache = t));
3058                        }
3059                        (l(!0), s.slideTo(a, 0));
3060                    },
3061                    removeSlide: function (e) {
3062                        if (null == e) return;
3063                        let t = s.activeIndex;
3064                        if (Array.isArray(e))
3065                            for (let a = e.length - 1; a >= 0; a -= 1)
3066                                (s.virtual.slides.splice(e[a], 1),
3067                                    s.params.virtual.cache && delete s.virtual.cache[e[a]],
3068                                    e[a] < t && (t -= 1),
3069                                    (t = Math.max(t, 0)));
3070                        else
3071                            (s.virtual.slides.splice(e, 1),
3072                                s.params.virtual.cache && delete s.virtual.cache[e],
3073                                e < t && (t -= 1),
3074                                (t = Math.max(t, 0)));
3075                        (l(!0), s.slideTo(t, 0));
3076                    },
3077                    removeAllSlides: function () {
3078                        ((s.virtual.slides = []),
3079                            s.params.virtual.cache && (s.virtual.cache = {}),
3080                            l(!0),
3081                            s.slideTo(0, 0));
3082                    },
3083                    update: l,
3084                }));
3085        },
3086        function (e) {
3087            let { swiper: t, extendParams: s, on: i, emit: n } = e;
3088            const l = a(),
3089                o = r();
3090            function c(e) {
3091                if (!t.enabled) return;
3092                const { rtlTranslate: s } = t;
3093                let a = e;
3094                a.originalEvent && (a = a.originalEvent);
3095                const i = a.keyCode || a.charCode,
3096                    r = t.params.keyboard.pageUpDown,
3097                    d = r && 33 === i,
3098                    c = r && 34 === i,
3099                    p = 37 === i,
3100                    u = 39 === i,
3101                    h = 38 === i,
3102                    m = 40 === i;
3103                if (!t.allowSlideNext && ((t.isHorizontal() && u) || (t.isVertical() && m) || c)) return !1;
3104                if (!t.allowSlidePrev && ((t.isHorizontal() && p) || (t.isVertical() && h) || d)) return !1;
3105                if (
3106                    !(
3107                        a.shiftKey ||
3108                        a.altKey ||
3109                        a.ctrlKey ||
3110                        a.metaKey ||
3111                        (l.activeElement &&
3112                            l.activeElement.nodeName &&
3113                            ('input' === l.activeElement.nodeName.toLowerCase() ||
3114                                'textarea' === l.activeElement.nodeName.toLowerCase()))
3115                    )
3116                ) {
3117                    if (t.params.keyboard.onlyInViewport && (d || c || p || u || h || m)) {
3118                        let e = !1;
3119                        if (
3120                            t.$el.parents(`.${t.params.slideClass}`).length > 0 &&
3121                            0 === t.$el.parents(`.${t.params.slideActiveClass}`).length
3122                        )
3123                            return;
3124                        const a = t.$el,
3125                            i = a[0].clientWidth,
3126                            r = a[0].clientHeight,
3127                            n = o.innerWidth,
3128                            l = o.innerHeight,
3129                            d = t.$el.offset();
3130                        s && (d.left -= t.$el[0].scrollLeft);
3131                        const c = [
3132                            [d.left, d.top],
3133                            [d.left + i, d.top],
3134                            [d.left, d.top + r],
3135                            [d.left + i, d.top + r],
3136                        ];
3137                        for (let t = 0; t < c.length; t += 1) {
3138                            const s = c[t];
3139                            if (s[0] >= 0 && s[0] <= n && s[1] >= 0 && s[1] <= l) {
3140                                if (0 === s[0] && 0 === s[1]) continue;
3141                                e = !0;
3142                            }
3143                        }
3144                        if (!e) return;
3145                    }
3146                    (t.isHorizontal()
3147                        ? ((d || c || p || u) && (a.preventDefault ? a.preventDefault() : (a.returnValue = !1)),
3148                          (((c || u) && !s) || ((d || p) && s)) && t.slideNext(),
3149                          (((d || p) && !s) || ((c || u) && s)) && t.slidePrev())
3150                        : ((d || c || h || m) && (a.preventDefault ? a.preventDefault() : (a.returnValue = !1)),
3151                          (c || m) && t.slideNext(),
3152                          (d || h) && t.slidePrev()),
3153                        n('keyPress', i));
3154                }
3155            }
3156            function p() {
3157                t.keyboard.enabled || (d(l).on('keydown', c), (t.keyboard.enabled = !0));
3158            }
3159            function u() {
3160                t.keyboard.enabled && (d(l).off('keydown', c), (t.keyboard.enabled = !1));
3161            }
3162            ((t.keyboard = { enabled: !1 }),
3163                s({ keyboard: { enabled: !1, onlyInViewport: !0, pageUpDown: !0 } }),
3164                i('init', () => {
3165                    t.params.keyboard.enabled && p();
3166                }),
3167                i('destroy', () => {
3168                    t.keyboard.enabled && u();
3169                }),
3170                Object.assign(t.keyboard, { enable: p, disable: u }));
3171        },
3172        function (e) {
3173            let { swiper: t, extendParams: s, on: a, emit: i } = e;
3174            const n = r();
3175            let l;
3176            (s({
3177                mousewheel: {
3178                    enabled: !1,
3179                    releaseOnEdges: !1,
3180                    invert: !1,
3181                    forceToAxis: !1,
3182                    sensitivity: 1,
3183                    eventsTarget: 'container',
3184                    thresholdDelta: null,
3185                    thresholdTime: null,
3186                },
3187            }),
3188                (t.mousewheel = { enabled: !1 }));
3189            let o,
3190                c = u();
3191            const h = [];
3192            function m() {
3193                t.enabled && (t.mouseEntered = !0);
3194            }
3195            function f() {
3196                t.enabled && (t.mouseEntered = !1);
3197            }
3198            function g(e) {
3199                return (
3200                    !(t.params.mousewheel.thresholdDelta && e.delta < t.params.mousewheel.thresholdDelta) &&
3201                    !(t.params.mousewheel.thresholdTime && u() - c < t.params.mousewheel.thresholdTime) &&
3202                    ((e.delta >= 6 && u() - c < 60) ||
3203                        (e.direction < 0
3204                            ? (t.isEnd && !t.params.loop) || t.animating || (t.slideNext(), i('scroll', e.raw))
3205                            : (t.isBeginning && !t.params.loop) || t.animating || (t.slidePrev(), i('scroll', e.raw)),
3206                        (c = new n.Date().getTime()),
3207                        !1))
3208                );
3209            }
3210            function v(e) {
3211                let s = e,
3212                    a = !0;
3213                if (!t.enabled) return;
3214                const r = t.params.mousewheel;
3215                t.params.cssMode && s.preventDefault();
3216                let n = t.$el;
3217                if (
3218                    ('container' !== t.params.mousewheel.eventsTarget && (n = d(t.params.mousewheel.eventsTarget)),
3219                    !t.mouseEntered && !n[0].contains(s.target) && !r.releaseOnEdges)
3220                )
3221                    return !0;
3222                s.originalEvent && (s = s.originalEvent);
3223                let c = 0;
3224                const m = t.rtlTranslate ? -1 : 1,
3225                    f = (function (e) {
3226                        let t = 0,
3227                            s = 0,
3228                            a = 0,
3229                            i = 0;
3230                        return (
3231                            'detail' in e && (s = e.detail),
3232                            'wheelDelta' in e && (s = -e.wheelDelta / 120),
3233                            'wheelDeltaY' in e && (s = -e.wheelDeltaY / 120),
3234                            'wheelDeltaX' in e && (t = -e.wheelDeltaX / 120),
3235                            'axis' in e && e.axis === e.HORIZONTAL_AXIS && ((t = s), (s = 0)),
3236                            (a = 10 * t),
3237                            (i = 10 * s),
3238                            'deltaY' in e && (i = e.deltaY),
3239                            'deltaX' in e && (a = e.deltaX),
3240                            e.shiftKey && !a && ((a = i), (i = 0)),
3241                            (a || i) &&
3242                                e.deltaMode &&
3243                                (1 === e.deltaMode ? ((a *= 40), (i *= 40)) : ((a *= 800), (i *= 800))),
3244                            a && !t && (t = a < 1 ? -1 : 1),
3245                            i && !s && (s = i < 1 ? -1 : 1),
3246                            { spinX: t, spinY: s, pixelX: a, pixelY: i }
3247                        );
3248                    })(s);
3249                if (r.forceToAxis)
3250                    if (t.isHorizontal()) {
3251                        if (!(Math.abs(f.pixelX) > Math.abs(f.pixelY))) return !0;
3252                        c = -f.pixelX * m;
3253                    } else {
3254                        if (!(Math.abs(f.pixelY) > Math.abs(f.pixelX))) return !0;
3255                        c = -f.pixelY;
3256                    }
3257                else c = Math.abs(f.pixelX) > Math.abs(f.pixelY) ? -f.pixelX * m : -f.pixelY;
3258                if (0 === c) return !0;
3259                r.invert && (c = -c);
3260                let v = t.getTranslate() + c * r.sensitivity;
3261                if (
3262                    (v >= t.minTranslate() && (v = t.mi
3262nTranslate()),
3263                    v <= t.maxTranslate() && (v = t.maxTranslate()),
3264                    (a = !!t.params.loop || !(v === t.minTranslate() || v === t.maxTranslate())),
3265                    a && t.params.nested && s.stopPropagation(),
3266                    t.params.freeMode && t.params.freeMode.enabled)
3267                ) {
3268                    const e = { time: u(), delta: Math.abs(c), direction: Math.sign(c) },
3269                        a = o && e.time < o.time + 500 && e.delta <= o.delta && e.direction === o.direction;
3270                    if (!a) {
3271                        ((o = void 0), t.params.loop && t.loopFix());
3272                        let n = t.getTranslate() + c * r.sensitivity;
3273                        const d = t.isBeginning,
3274                            u = t.isEnd;
3275                        if (
3276                            (n >= t.minTranslate() && (n = t.minTranslate()),
3277                            n <= t.maxTranslate() && (n = t.maxTranslate()),
3278                            t.setTransition(0),
3279                            t.setTranslate(n),
3280                            t.updateProgress(),
3281                            t.updateActiveIndex(),
3282                            t.updateSlidesClasses(),
3283                            ((!d && t.isBeginning) || (!u && t.isEnd)) && t.updateSlidesClasses(),
3284                            t.params.freeMode.sticky)
3285                        ) {
3286                            (clearTimeout(l), (l = void 0), h.length >= 15 && h.shift());
3287                            const s = h.length ? h[h.length - 1] : void 0,
3288                                a = h[0];
3289                            if ((h.push(e), s && (e.delta > s.delta || e.direction !== s.direction))) h.splice(0);
3290                            else if (
3291                                h.length >= 15 &&
3292                                e.time - a.time < 500 &&
3293                                a.delta - e.delta >= 1 &&
3294                                e.delta <= 6
3295                            ) {
3296                                const s = c > 0 ? 0.8 : 0.2;
3297                                ((o = e),
3298                                    h.splice(0),
3299                                    (l = p(() => {
3300                                        t.slideToClosest(t.params.speed, !0, void 0, s);
3301                                    }, 0)));
3302                            }
3303                            l ||
3304                                (l = p(() => {
3305                                    ((o = e), h.splice(0), t.slideToClosest(t.params.speed, !0, void 0, 0.5));
3306                                }, 500));
3307                        }
3308                        if (
3309                            (a || i('scroll', s),
3310                            t.params.autoplay && t.params.autoplayDisableOnInteraction && t.autoplay.stop(),
3311                            n === t.minTranslate() || n === t.maxTranslate())
3312                        )
3313                            return !0;
3314                    }
3315                } else {
3316                    const s = { time: u(), delta: Math.abs(c), direction: Math.sign(c), raw: e };
3317                    h.length >= 2 && h.shift();
3318                    const a = h.length ? h[h.length - 1] : void 0;
3319                    if (
3320                        (h.push(s),
3321                        a ? (s.direction !== a.direction || s.delta > a.delta || s.time > a.time + 150) && g(s) : g(s),
3322                        (function (e) {
3323                            const s = t.params.mousewheel;
3324                            if (e.direction < 0) {
3325                                if (t.isEnd && !t.params.loop && s.releaseOnEdges) return !0;
3326                            } else if (t.isBeginning && !t.params.loop && s.releaseOnEdges) return !0;
3327                            return !1;
3328                        })(s))
3329                    )
3330                        return !0;
3331                }
3332                return (s.preventDefault ? s.preventDefault() : (s.returnValue = !1), !1);
3333            }
3334            function w(e) {
3335                let s = t.$el;
3336                ('container' !== t.params.mousewheel.eventsTarget && (s = d(t.params.mousewheel.eventsTarget)),
3337                    s[e]('mouseenter', m),
3338                    s[e]('mouseleave', f),
3339                    s[e]('wheel', v));
3340            }
3341            function b() {
3342                return t.params.cssMode
3343                    ? (t.wrapperEl.removeEventListener('wheel', v), !0)
3344                    : !t.mousewheel.enabled && (w('on'), (t.mousewheel.enabled = !0), !0);
3345            }
3346            function x() {
3347                return t.params.cssMode
3348                    ? (t.wrapperEl.addEventListener(event, v), !0)
3349                    : !!t.mousewheel.enabled && (w('off'), (t.mousewheel.enabled = !1), !0);
3350            }
3351            (a('init', () => {
3352                (!t.params.mousewheel.enabled && t.params.cssMode && x(), t.params.mousewheel.enabled && b());
3353            }),
3354                a('destroy', () => {
3355                    (t.params.cssMode && b(), t.mousewheel.enabled && x());
3356                }),
3357                Object.assign(t.mousewheel, { enable: b, disable: x }));
3358        },
3359        function (e) {
3360            let { swiper: t, extendParams: s, on: a, emit: i } = e;
3361            function r(e) {
3362                let s;
3363                return (
3364                    e &&
3365                        ((s = d(e)),
3366                        t.params.uniqueNavElements &&
3367                            'string' == typeof e &&
3368                            s.length > 1 &&
3369                            1 === t.$el.find(e).length &&
3370                            (s = t.$el.find(e))),
3371                    s
3372                );
3373            }
3374            function n(e, s) {
3375                const a = t.params.navigation;
3376                e &&
3377                    e.length > 0 &&
3378                    (e[s ? 'addClass' : 'removeClass'](a.disabledClass),
3379                    e[0] && 'BUTTON' === e[0].tagName && (e[0].disabled = s),
3380                    t.params.watchOverflow && t.enabled && e[t.isLocked ? 'addClass' : 'removeClass'](a.lockClass));
3381            }
3382            function l() {
3383                if (t.params.loop) return;
3384                const { $nextEl: e, $prevEl: s } = t.navigation;
3385                (n(s, t.isBeginning && !t.params.rewind), n(e, t.isEnd && !t.params.rewind));
3386            }
3387            function o(e) {
3388                (e.preventDefault(),
3389                    (!t.isBeginning || t.params.loop || t.params.rewind) && (t.slidePrev(), i('navigationPrev')));
3390            }
3391            function c(e) {
3392                (e.preventDefault(),
3393                    (!t.isEnd || t.params.loop || t.params.rewind) && (t.slideNext(), i('navigationNext')));
3394            }
3395            function p() {
3396                const e = t.params.navigation;
3397                if (
3398                    ((t.params.navigation = F(t, t.originalParams.navigation, t.params.navigation, {
3399                        nextEl: 'swiper-button-next',
3400                        prevEl: 'swiper-button-prev',
3401                    })),
3402                    !e.nextEl && !e.prevEl)
3403                )
3404                    return;
3405                const s = r(e.nextEl),
3406                    a = r(e.prevEl);
3407                (s && s.length > 0 && s.on('click', c),
3408                    a && a.length > 0 && a.on('click', o),
3409                    Object.assign(t.navigation, { $nextEl: s, nextEl: s && s[0], $prevEl: a, prevEl: a && a[0] }),
3410                    t.enabled || (s && s.addClass(e.lockClass), a && a.addClass(e.lockClass)));
3411            }
3412            function u() {
3413                const { $nextEl: e, $prevEl: s } = t.navigation;
3414                (e && e.length && (e.off('click', c), e.removeClass(t.params.navigation.disabledClass)),
3415                    s && s.length && (s.off('click', o), s.removeClass(t.params.navigation.disabledClass)));
3416            }
3417            (s({
3418                navigation: {
3419                    nextEl: null,
3420                    prevEl: null,
3421                    hideOnClick: !1,
3422                    disabledClass: 'swiper-button-disabled',
3423                    hiddenClass: 'swiper-button-hidden',
3424                    lockClass: 'swiper-button-lock',
3425                    navigationDisabledClass: 'swiper-navigation-disabled',
3426                },
3427            }),
3428                (t.navigation = { nextEl: null, $nextEl: null, prevEl: null, $prevEl: null }),
3429                a('init', () => {
3430                    !1 === t.params.navigation.enabled ? h() : (p(), l());
3431                }),
3432                a('toEdge fromEdge lock unlock', () => {
3433                    l();
3434                }),
3435                a('destroy', () => {
3436                    u();
3437                }),
3438                a('enable disable', () => {
3439                    const { $nextEl: e, $prevEl: s } = t.navigation;
3440                    (e && e[t.enabled ? 'removeClass' : 'addClass'](t.params.navigation.lockClass),
3441                        s && s[t.enabled ? 'removeClass' : 'addClass'](t.params.navigation.lockClass));
3442                }),
3443                a('click', (e, s) => {
3444                    const { $nextEl: a, $prevEl: r } = t.navigation,
3445                        n = s.target;
3446                    if (t.params.navigation.hideOnClick && !d(n).is(r) && !d(n).is(a)) {
3447                        if (
3448                            t.pagination &&
3449                            t.params.pagination &&
3450                            t.params.pagination.clickable &&
3451                            (t.pagination.el === n || t.pagination.el.contains(n))
3452                        )
3453                            return;
3454                        let e;
3455                        (a
3456                            ? (e = a.hasClass(t.params.navigation.hiddenClass))
3457                            : r && (e = r.hasClass(t.params.navigation.hiddenClass)),
3458                            i(!0 === e ? 'navigationShow' : 'navigationHide'),
3459                            a && a.toggleClass(t.params.navigation.hiddenClass),
3460                            r && r.toggleClass(t.params.navigation.hiddenClass));
3461                    }
3462                }));
3463            const h = () => {
3464                (t.$el.addClass(t.params.navigation.navigationDisabledClass), u());
3465            };
3466            Object.assign(t.navigation, {
3467                enable: () => {
3468                    (t.$el.removeClass(t.params.navigation.navigationDisabledClass), p(), l());
3469                },
3470                disable: h,
3471                update: l,
3472                init: p,
3473                destroy: u,
3474            });
3475        },
3476        function (e) {
3477            let { swiper: t, extendParams: s, on: a, emit: i } = e;
3478            const r = 'swiper-pagination';
3479            let n;
3480            (s({
3481                pagination: {
3482                    el: null,
3483                    bulletElement: 'span',
3484                    clickable: !1,
3485                    hideOnClick: !1,
3486                    renderBullet: null,
3487                    renderProgressbar: null,
3488                    renderFraction: null,
3489                    renderCustom: null,
3490                    progressbarOpposite: !1,
3491                    type: 'bullets',
3492                    dynamicBullets: !1,
3493                    dynamicMainBullets: 1,
3494                    formatFractionCurrent: (e) => e,
3495                    formatFractionTotal: (e) => e,
3496                    bulletClass: `${r}-bullet`,
3497                    bulletActiveClass: `${r}-bullet-active`,
3498                    modifierClass: `${r}-`,
3499                    currentClass: `${r}-current`,
3500                    totalClass: `${r}-total`,
3501                    hiddenClass: `${r}-hidden`,
3502                    progressbarFillClass: `${r}-progressbar-fill`,
3503                    progressbarOppositeClass: `${r}-progressbar-opposite`,
3504                    clickableClass: `${r}-clickable`,
3505                    lockClass: `${r}-lock`,
3506                    horizontalClass: `${r}-horizontal`,
3507                    verticalClass: `${r}-vertical`,
3508                    paginationDisabledClass: `${r}-disabled`,
3509                },
3510            }),
3511                (t.pagination = { el: null, $el: null, bullets: [] }));
3512            let l = 0;
3513            function o() {
3514                return (
3515                    !t.params.pagination.el || !t.pagination.el || !t.pagination.$el || 0 === t.pagination.$el.length
3516                );
3517            }
3518            function c(e, s) {
3519                const { bulletActiveClass: a } = t.params.pagination;
3520                e[s]().addClass(`${a}-${s}`)[s]().addClass(`${a}-${s}-${s}`);
3521            }
3522            function p() {
3523                const e = t.rtl,
3524                    s = t.params.pagination;
3525                if (o()) return;
3526                const a = t.virtual && t.params.virtual.enabled ? t.virtual.slides.length : t.slides.length,
3527                    r = t.pagination.$el;
3528                let p;
3529                const u = t.params.loop
3530                    ? Math.ceil((a - 2 * t.loopedSlides) / t.params.slidesPerGroup)
3531                    : t.snapGrid.length;
3532                if (
3533                    (t.params.loop
3534                        ? ((p = Math.ceil((t.activeIndex - t.loopedSlides) / t.params.slidesPerGroup)),
3535                          p > a - 1 - 2 * t.loopedSlides && (p -= a - 2 * t.loopedSlides),
3536                          p > u - 1 && (p -= u),
3537                          p < 0 && 'bullets' !== t.params.paginationType && (p = u + p))
3538                        : (p = void 0 !== t.snapIndex ? t.snapIndex : t.activeIndex || 0),
3539                    'bullets' === s.type && t.pagination.bullets && t.pagination.bullets.length > 0)
3540                ) {
3541                    const a = t.pagination.bullets;
3542                    let i, o, u;
3543                    if (
3544                        (s.dynamicBullets &&
3545                            ((n = a.eq(0)[t.isHorizontal() ? 'outerWidth' : 'outerHeight'](!0)),
3546                            r.css(t.isHorizontal() ? 'width' : 'height', n * (s.dynamicMainBullets + 4) + 'px'),
3547                            s.dynamicMainBullets > 1 &&
3548                                void 0 !== t.previousIndex &&
3549                                ((l += p - (t.previousIndex - t.loopedSlides || 0)),
3550                                l > s.dynamicMainBullets - 1 ? (l = s.dynamicMainBullets - 1) : l < 0 && (l = 0)),
3551                            (i = Math.max(p - l, 0)),
3552                            (o = i + (Math.min(a.length, s.dynamicMainBullets) - 1)),
3553                            (u = (o + i) / 2)),
3554                        a.removeClass(
3555                            ['', '-next', '-next-next', '-prev', '-prev-prev', '-main']
3556                                .map((e) => `${s.bulletActiveClass}${e}`)
3557                                .join(' ')
3558                        ),
3559                        r.length > 1)
3560                    )
3561                        a.each((e) => {
3562                            const t = d(e),
3563                                a = t.index();
3564                            (a === p && t.addClass(s.bulletActiveClass),
3565                                s.dynamicBullets &&
3566                                    (a >= i && a <= o && t.addClass(`${s.bulletActiveClass}-main`),
3567                                    a === i && c(t, 'prev'),
3568                                    a === o && c(t, 'next')));
3569                        });
3570                    else {
3571                        const e = a.eq(p),
3572                            r = e.index();
3573                        if ((e.addClass(s.bulletActiveClass), s.dynamicBullets)) {
3574                            const e = a.eq(i),
3575                                n = a.eq(o);
3576                            for (let e = i; e <= o; e += 1) a.eq(e).addClass(`${s.bulletActiveClass}-main`);
3577                            if (t.params.loop)
3578                                if (r >= a.length) {
3579                                    for (let e = s.dynamicMainBullets; e >= 0; e -= 1)
3580                                        a.eq(a.length - e).addClass(`${s.bulletActiveClass}-main`);
3581                                    a.eq(a.length - s.dynamicMainBullets - 1).addClass(`${s.bulletActiveClass}-prev`);
3582                                } else (c(e, 'prev'), c(n, 'next'));
3583                            else (c(e, 'prev'), c(n, 'next'));
3584                        }
3585    
3585                }
3586                    if (s.dynamicBullets) {
3587                        const i = Math.min(a.length, s.dynamicMainBullets + 4),
3588                            r = (n * i - n) / 2 - u * n,
3589                            l = e ? 'right' : 'left';
3590                        a.css(t.isHorizontal() ? l : 'top', `${r}px`);
3591                    }
3592                }
3593                if (
3594                    ('fraction' === s.type &&
3595                        (r.find(U(s.currentClass)).text(s.formatFractionCurrent(p + 1)),
3596                        r.find(U(s.totalClass)).text(s.formatFractionTotal(u))),
3597                    'progressbar' === s.type)
3598                ) {
3599                    let e;
3600                    e = s.progressbarOpposite
3601                        ? t.isHorizontal()
3602                            ? 'vertical'
3603                            : 'horizontal'
3604                        : t.isHorizontal()
3605                          ? 'horizontal'
3606                          : 'vertical';
3607                    const a = (p + 1) / u;
3608                    let i = 1,
3609                        n = 1;
3610                    ('horizontal' === e ? (i = a) : (n = a),
3611                        r
3612                            .find(U(s.progressbarFillClass))
3613                            .transform(`translate3d(0,0,0) scaleX(${i}) scaleY(${n})`)
3614                            .transition(t.params.speed));
3615                }
3616                ('custom' === s.type && s.renderCustom
3617                    ? (r.html(s.renderCustom(t, p + 1, u)), i('paginationRender', r[0]))
3618                    : i('paginationUpdate', r[0]),
3619                    t.params.watchOverflow && t.enabled && r[t.isLocked ? 'addClass' : 'removeClass'](s.lockClass));
3620            }
3621            function u() {
3622                const e = t.params.pagination;
3623                if (o()) return;
3624                const s = t.virtual && t.params.virtual.enabled ? t.virtual.slides.length : t.slides.length,
3625                    a = t.pagination.$el;
3626                let r = '';
3627                if ('bullets' === e.type) {
3628                    let i = t.params.loop
3629                        ? Math.ceil((s - 2 * t.loopedSlides) / t.params.slidesPerGroup)
3630                        : t.snapGrid.length;
3631                    t.params.freeMode && t.params.freeMode.enabled && !t.params.loop && i > s && (i = s);
3632                    for (let s = 0; s < i; s += 1)
3633                        e.renderBullet
3634                            ? (r += e.renderBullet.call(t, s, e.bulletClass))
3635                            : (r += `<${e.bulletElement} class="${e.bulletClass}"></${e.bulletElement}>`);
3636                    (a.html(r), (t.pagination.bullets = a.find(U(e.bulletClass))));
3637                }
3638                ('fraction' === e.type &&
3639                    ((r = e.renderFraction
3640                        ? e.renderFraction.call(t, e.currentClass, e.totalClass)
3641                        : `<span class="${e.currentClass}"></span> / <span class="${e.totalClass}"></span>`),
3642                    a.html(r)),
3643                    'progressbar' === e.type &&
3644                        ((r = e.renderProgressbar
3645                            ? e.renderProgressbar.call(t, e.progressbarFillClass)
3646                            : `<span class="${e.progressbarFillClass}"></span>`),
3647                        a.html(r)),
3648                    'custom' !== e.type && i('paginationRender', t.pagination.$el[0]));
3649            }
3650            function h() {
3651                t.params.pagination = F(t, t.originalParams.pagination, t.params.pagination, {
3652                    el: 'swiper-pagination',
3653                });
3654                const e = t.params.pagination;
3655                if (!e.el) return;
3656                let s = d(e.el);
3657                0 !== s.length &&
3658                    (t.params.uniqueNavElements &&
3659                        'string' == typeof e.el &&
3660                        s.length > 1 &&
3661                        ((s = t.$el.find(e.el)),
3662                        s.length > 1 && (s = s.filter((e) => d(e).parents('.swiper')[0] === t.el))),
3663                    'bullets' === e.type && e.clickable && s.addClass(e.clickableClass),
3664                    s.addClass(e.modifierClass + e.type),
3665                    s.addClass(t.isHorizontal() ? e.horizontalClass : e.verticalClass),
3666                    'bullets' === e.type &&
3667                        e.dynamicBullets &&
3668                        (s.addClass(`${e.modifierClass}${e.type}-dynamic`),
3669                        (l = 0),
3670                        e.dynamicMainBullets < 1 && (e.dynamicMainBullets = 1)),
3671                    'progressbar' === e.type && e.progressbarOpposite && s.addClass(e.progressbarOppositeClass),
3672                    e.clickable &&
3673                        s.on('click', U(e.bulletClass), function (e) {
3674                            e.preventDefault();
3675                            let s = d(this).index() * t.params.slidesPerGroup;
3676                            (t.params.loop && (s += t.loopedSlides), t.slideTo(s));
3677                        }),
3678                    Object.assign(t.pagination, { $el: s, el: s[0] }),
3679                    t.enabled || s.addClass(e.lockClass));
3680            }
3681            function m() {
3682                const e = t.params.pagination;
3683                if (o()) return;
3684                const s = t.pagination.$el;
3685                (s.removeClass(e.hiddenClass),
3686                    s.removeClass(e.modifierClass + e.type),
3687                    s.removeClass(t.isHorizontal() ? e.horizontalClass : e.verticalClass),
3688                    t.pagination.bullets &&
3689                        t.pagination.bullets.removeClass &&
3690                        t.pagination.bullets.removeClass(e.bulletActiveClass),
3691                    e.clickable && s.off('click', U(e.bulletClass)));
3692            }
3693            (a('init', () => {
3694                !1 === t.params.pagination.enabled ? f() : (h(), u(), p());
3695            }),
3696                a('activeIndexChange', () => {
3697                    (t.params.loop || void 0 === t.snapIndex) && p();
3698                }),
3699                a('snapIndexChange', () => {
3700                    t.params.loop || p();
3701                }),
3702                a('slidesLengthChange', () => {
3703                    t.params.loop && (u(), p());
3704                }),
3705                a('snapGridLengthChange', () => {
3706                    t.params.loop || (u(), p());
3707                }),
3708                a('destroy', () => {
3709                    m();
3710                }),
3711                a('enable disable', () => {
3712                    const { $el: e } = t.pagination;
3713                    e && e[t.enabled ? 'removeClass' : 'addClass'](t.params.pagination.lockClass);
3714                }),
3715                a('lock unlock', () => {
3716                    p();
3717                }),
3718                a('click', (e, s) => {
3719                    const a = s.target,
3720                        { $el: r } = t.pagination;
3721                    if (
3722                        t.params.pagination.el &&
3723                        t.params.pagination.hideOnClick &&
3724                        r &&
3725                        r.length > 0 &&
3726                        !d(a).hasClass(t.params.pagination.bulletClass)
3727                    ) {
3728                        if (
3729                            t.navigation &&
3730                            ((t.navigation.nextEl && a === t.navigation.nextEl) ||
3731                                (t.navigation.prevEl && a === t.navigation.prevEl))
3732                        )
3733                            return;
3734                        const e = r.hasClass(t.params.pagination.hiddenClass);
3735                        (i(!0 === e ? 'paginationShow' : 'paginationHide'),
3736                            r.toggleClass(t.params.pagination.hiddenClass));
3737                    }
3738                }));
3739            const f = () => {
3740                (t.$el.addClass(t.params.pagination.paginationDisabledClass),
3741                    t.pagination.$el && t.pagination.$el.addClass(t.params.pagination.paginationDisabledClass),
3742                    m());
3743            };
3744            Object.assign(t.pagination, {
3745                enable: () => {
3746                    (t.$el.removeClass(t.params.pagination.paginationDisabledClass),
3747                        t.pagination.$el && t.pagination.$el.removeClass(t.params.pagination.paginationDisabledClass),
3748                        h(),
3749                        u(),
3750                        p());
3751                },
3752                disable: f,
3753                render: u,
3754                update: p,
3755                init: h,
3756                destroy: m,
3757            });
3758        },
3759        function (e) {
3760            let { swiper: t, extendParams: s, on: i, emit: r }
3760 = e;
3761            const n = a();
3762            let l,
3763                o,
3764                c,
3765                u,
3766                h = !1,
3767                m = null,
3768                f = null;
3769            function g() {
3770                if (!t.params.scrollbar.el || !t.scrollbar.el) return;
3771                const { scrollbar: e, rtlTranslate: s, progress: a } = t,
3772                    { $dragEl: i, $el: r } = e,
3773                    n = t.params.scrollbar;
3774                let l = o,
3775                    d = (c - o) * a;
3776                (s
3777                    ? ((d = -d), d > 0 ? ((l = o - d), (d = 0)) : -d + o > c && (l = c + d))
3778                    : d < 0
3779                      ? ((l = o + d), (d = 0))
3780                      : d + o > c && (l = c - d),
3781                    t.isHorizontal()
3782                        ? (i.transform(`translate3d(${d}px, 0, 0)`), (i[0].style.width = `${l}px`))
3783                        : (i.transform(`translate3d(0px, ${d}px, 0)`), (i[0].style.height = `${l}px`)),
3784                    n.hide &&
3785                        (clearTimeout(m),
3786                        (r[0].style.opacity = 1),
3787                        (m = setTimeout(() => {
3788                            ((r[0].style.opacity = 0), r.transition(400));
3789                        }, 1e3))));
3790            }
3791            function v() {
3792                if (!t.params.scrollbar.el || !t.scrollbar.el) return;
3793                const { scrollbar: e } = t,
3794                    { $dragEl: s, $el: a } = e;
3795                ((s[0].style.width = ''),
3796                    (s[0].style.height = ''),
3797                    (c = t.isHorizontal() ? a[0].offsetWidth : a[0].offsetHeight),
3798                    (u =
3799                        t.size /
3800                        (t.virtualSize + t.params.slidesOffsetBefore - (t.params.centeredSlides ? t.snapGrid[0] : 0))),
3801                    (o = 'auto' === t.params.scrollbar.dragSize ? c * u : parseInt(t.params.scrollbar.dragSize, 10)),
3802                    t.isHorizontal() ? (s[0].style.width = `${o}px`) : (s[0].style.height = `${o}px`),
3803                    (a[0].style.display = u >= 1 ? 'none' : ''),
3804                    t.params.scrollbar.hide && (a[0].style.opacity = 0),
3805                    t.params.watchOverflow &&
3806                        t.enabled &&
3807                        e.$el[t.isLocked ? 'addClass' : 'removeClass'](t.params.scrollbar.lockClass));
3808            }
3809            function w(e) {
3810                return t.isHorizontal()
3811                    ? 'touchstart' === e.type || 'touchmove' === e.type
3812                        ? e.targetTouches[0].clientX
3813                        : e.clientX
3814                    : 'touchstart' === e.type || 'touchmove' === e.type
3815                      ? e.targetTouches[0].clientY
3816                      : e.clientY;
3817            }
3818            function b(e) {
3819                const { scrollbar: s, rtlTranslate: a } = t,
3820                    { $el: i } = s;
3821                let r;
3822                ((r = (w(e) - i.offset()[t.isHorizontal() ? 'left' : 'top'] - (null !== l ? l : o / 2)) / (c - o)),
3823                    (r = Math.max(Math.min(r, 1), 0)),
3824                    a && (r = 1 - r));
3825                const n = t.minTranslate() + (t.maxTranslate() - t.minTranslate()) * r;
3826                (t.updateProgress(n), t.setTranslate(n), t.updateActiveIndex(), t.updateSlidesClasses());
3827            }
3828            function x(e) {
3829                const s = t.params.scrollbar,
3830                    { scrollbar: a, $wrapperEl: i } = t,
3831                    { $el: n, $dragEl: o } = a;
3832                ((h = !0),
3833                    (l =
3834                        e.target === o[0] || e.target === o
3835                            ? w(e) - e.target.getBoundingClientRect()[t.isHorizontal() ? 'left' : 'top']
3836                            : null),
3837                    e.preventDefault(),
3838                    e.stopPropagation(),
3839                    i.transition(100),
3840                    o.transition(100),
3841                    b(e),
3842                    clearTimeout(f),
3843                    n.transition(0),
3844                    s.hide && n.css('opacity', 1),
3845                    t.params.cssMode && t.$wrapperEl.css('scroll-snap-type', 'none'),
3846                    r('scrollbarDragStart', e));
3847            }
3848            function y(e) {
3849                const { scrollbar: s, $wrapperEl: a } = t,
3850                    { $el: i, $dragEl: n } = s;
3851                h &&
3852                    (e.preventDefault ? e.preventDefault() : (e.returnValue = !1),
3853                    b(e),
3854                    a.transition(0),
3855                    i.transition(0),
3856                    n.transition(0),
3857                    r('scrollbarDragMove', e));
3858            }
3859            function E(e) {
3860                const s = t.params.scrollbar,
3861                    { scrollbar: a, $wrapperEl: i } = t,
3862                    { $el: n } = a;
3863                h &&
3864                    ((h = !1),
3865                    t.params.cssMode && (t.$wrapperEl.css('scroll-snap-type', ''), i.transition('')),
3866                    s.hide &&
3867                        (clearTimeout(f),
3868                        (f = p(() => {
3869                            (n.css('opacity', 0), n.transition(400));
3870                        }, 1e3))),
3871                    r('scrollbarDragEnd', e),
3872                    s.snapOnRelease && t.slideToClosest());
3873            }
3874            function C(e) {
3875                const { scrollbar: s, touchEventsTouch: a, touchEventsDesktop: i, params: r, support: l } = t,
3876                    o = s.$el;
3877                if (!o) return;
3878                const d = o[0],
3879                    c = !(!l.passiveListener || !r.passiveListeners) && { passive: !1, capture: !1 },
3880                    p = !(!l.passiveListener || !r.passiveListeners) && { passive: !0, capture: !1 };
3881                if (!d) return;
3882                const u = 'on' === e ? 'addEventListener' : 'removeEventListener';
3883                l.touch
3884                    ? (d[u](a.start, x, c), d[u](a.move, y, c), d[u](a.end, E, p))
3885                    : (d[u](i.start, x, c), n[u](i.move, y, c), n[u](i.end, E, p));
3886            }
3887            function T() {
3888                const { scrollbar: e, $el: s } = t;
3889                t.params.scrollbar = F(t, t.originalParams.scrollbar, t.params.scrollbar, { el: 'swiper-scrollbar' });
3890                const a = t.params.scrollbar;
3891                if (!a.el) return;
3892                let i = d(a.el);
3893                (t.params.uniqueNavElements &&
3894                    'string' == typeof a.el &&
3895                    i.length > 1 &&
3896                    1 === s.find(a.el).length &&
3897                    (i = s.find(a.el)),
3898                    i.addClass(t.isHorizontal() ? a.horizontalClass : a.verticalClass));
3899                let r = i.find(`.${t.params.scrollbar.dragClass}`);
3900                (0 === r.length && ((r = d(`<div class="${t.params.scrollbar.dragClass}"></div>`)), i.append(r)),
3901                    Object.assign(e, { $el: i, el: i[0], $dragEl: r, dragEl: r[0] }),
3902                    a.draggable && t.params.scrollbar.el && t.scrollbar.el && C('on'),
3903                    i && i[t.enabled ? 'removeClass' : 'addClass'](t.params.scrollbar.lockClass));
3904            }
3905            function $() {
3906                const e = t.params.scrollbar,
3907                    s = t.scrollbar.$el;
3908                (s && s.removeClass(t.isHorizontal() ? e.horizontalClass : e.verticalClass),
3909                    t.params.scrollbar.el && t.scrollbar.el && C('off'));
3910            }
3911            (s({
3912                scrollbar: {
3913                    el: null,
3914                    dragSize: 'auto',
3915                    hide: !1,
3916                    draggable: !1,
3917                    snapOnRelease: !0,
3918                    lockClass: 'swiper-scrollbar-lock',
3919                    dragClass: 'swiper-scrollbar-drag',
3920                    scrollbarDisabledClass: 'swiper-scrollbar-disabled',
3921                    horizontalClass: 'swiper-scrollbar-horizontal',
3922                    verticalClass: 'swiper-scrollbar-vertical',
3923                },
3924            }),
3925                (t.scrollbar = { el: null, dragEl: null, $el: null, $dragEl: null }),
3926                i('init', () => {
3927                    !1 === t.params.scrollbar.enabled ? S() : (T(), v(), g());
3928                }),
3929                i('update resize observerUpdate lock unlock', () => {
3930                    v();
3931                }),
3932                i('setTranslate', () => {
3933                    g();
3934                }),
3935                i('setTransition', (e, s) => {
3936                    !(function (e) {
3937                        t.params.scrollbar.el && t.scrollbar.el && t.scrollbar.$dragEl.transition(e);
3938                    })(s);
3939                }),
3940                i('enable disable', () => {
3941                    const { $el: e } = t.scrollbar;
3942                    e && e[t.enabled ? 'removeClass' : 'addClass'](t.params.scrollbar.lockClass);
3943                }),
3944                i('destroy', () => {
3945                    $();
3946                }));
3947            const S = () => {
3948                (t.$el.addClass(t.params.scrollbar.scrollbarDisabledClass),
3949                    t.scrollbar.$el && t.scrollbar.$el.addClass(t.params.scrollbar.scrollbarDisabledClass),
3950                    $());
3951            };
3952            Object.assign(t.scrollbar, {
3953                enable: () => {
3954                    (t.$el.removeClass(t.params.scrollbar.scrollbarDisabledClass),
3955                        t.scrollbar.$el && t.scrollbar.$el.removeClass(t.params.scrollbar.scrollbarDisabledClass),
3956                        T(),
3957                        v(),
3958                        g());
3959                },
3960                disable: S,
3961                updateSize: v,
3962                setTranslate: g,
3963                init: T,
3964                destroy: $,
3965            });
3966        },
3967        function (e) {
3968            let { swiper: t, extendParams: s, on: a } = e;
3969            s({ parallax: { enabled: !1 } });
3970            const i = (e, s) => {
3971                    const { rtl: a } = t,
3972                        i = d(e),
3973                        r = a ? -1 : 1,
3974                        n = i.attr('data-swiper-parallax') || '0';
3975                    let l = i.attr('data-swiper-parallax-x'),
3976                        o = i.attr('data-swiper-parallax-y');
3977                    const c = i.attr('data-swiper-parallax-scale'),
3978                        p = i.attr('data-swiper-parallax-opacity');
3979                    if (
3980                        (l || o
3981                            ? ((l = l || '0'), (o = o || '0'))
3982                            : t.isHorizontal()
3983                              ? ((l = n), (o = '0'))
3984                              : ((o = n), (l = '0')),
3985                        (l = l.indexOf('%') >= 0 ? parseInt(l, 10) * s * r + '%' : l * s * r + 'px'),
3986                        (o = o.indexOf('%') >= 0 ? parseInt(o, 10) * s + '%' : o * s + 'px'),
3987                        null != p)
3988                    ) {
3989                        const e = p - (p - 1) * (1 - Math.abs(s));
3990                        i[0].style.opacity = e;
3991                    }
3992                    if (null == c) i.transform(`translate3d(${l}, ${o}, 0px)`);
3993                    else {
3994                        const e = c - (c - 1) * (1 - Math.abs(s));
3995                        i.transform(`translate3d(${l}, ${o}, 0px) scale(${e})`);
3996                    }
3997                },
3998                r = () => {
3999                    const { $el: e, slides: s, progress: a, snapGrid: r } = t;
4000                    (e
4001                        .children(
4002                            '[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]'
4003                        )
4004                        .each((e) => {
4005                            i(e, a);
4006                        }),
4007                        s.each((e, s) => {
4008                            let n = e.progress;
4009                            (t.params.slidesPerGroup > 1 &&
4010                                'auto' !== t.params.slidesPerView &&
4011                                (n += Math.ceil(s / 2) - a * (r.length - 1)),
4012                                (n = Math.min(Math.max(n, -1), 1)),
4013                                d(e)
4014                                    .find(
4015                                        '[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]'
4016                                    )
4017                                    .each((e) => {
4018                                        i(e, n);
4019                                    }));
4020                        }));
4021                };
4022            (a('beforeInit', () => {
4023                t.params.parallax.enabled &&
4024                    ((t.params.watchSlidesProgress = !0), (t.originalParams.watchSlidesProgress = !0));
4025            }),
4026                a('init', () => {
4027                    t.params.parallax.enabled && r();
4028                }),
4029                a('setTranslate', () => {
4030                    t.params.parallax.enabled && r();
4031                }),
4032                a('setTransition', (e, s) => {
4033                    t.params.parallax.enabled &&
4034                        (function (e) {
4035                            void 0 === e && (e = t.params.speed);
4036                            const { $el: s } = t;
4037                            s.find(
4038                                '[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]'
4039                            ).each((t) => {
4040                                const s = d(t);
4041                                let a = parseInt(s.attr('data-swiper-parallax-duration'), 10) || e;
4042                                (0 === e && (a = 0), s.transition(a));
4043                            });
4044                        })(s);
4045                }));
4046        },
4047        function (e) {
4048            let { swiper: t, extendParams: s, on: a, emit: i } = e;
4049            const n = r();
4050            (s({
4051                zoom: {
4052                    enabled: !1,
4053                    maxRatio: 3,
4054                    minRatio: 1,
4055                    toggle: !0,
4056                    containerClass: 'swiper-zoom-container',
4057                    zoomedSlideClass: 'swiper-slide-zoomed',
4058                },
4059            }),
4060                (t.zoom = { enabled: !1 }));
4061            let l,
4062                o,
4063                c,
4064                p = 1,
4065                u = !1;
4066            const m = {
4067                    $slideEl: void 0,
4068                    slideWidth: void 0,
4069                    slideHeight: void 0,
4070                    $imageEl: void 0,
4071                    $imageWrapEl: void 0,
4072                    maxRatio: 3,
4073                },
4074                f = {
4075                    isTouched: void 0,
4076                    isMoved: void 0,
4077                    currentX: void 0,
4078                    currentY: void 0,
4079                    minX: void 0,
4080                    minY: void 0,
4081                    maxX: void 0,
4082                    maxY: void 0,
4083                    width: void 0,
4084                    height: void 0,
4085                    startX: void 0,
4086                    startY: void 0,
4087                    touchesStart: {},
4088                    touchesCurrent: {},
4089                },
4090                g = { x: void 0, y: void 0, prevPositionX: void 0, prevPositionY: void 0, prevTime: void 0 };
4091            let v = 1;
4092            function w(e) {
4093                if (e.targetTouches.length < 2) return 1;
4094                const t = e.targetTouches[0].pageX,
4095                    s = e.targetTouches[0].pageY,
4096                    a = e.targetTouches[1].pageX,
4097                    i = e.targetTouches[1].pageY;
4098                return Math.sqrt((a - t) ** 2 + (i - s) ** 2);
4099            }
4100            function b(e) {
4101                const s = t.support,
4102                    a = t.params.zoom;
4103                if (((o = !1), (c = !1), !s.gestures)) {
4104                    if ('touchstart' !== e.type || ('touchstart' === e.type && e.targetTouches.length < 2)) return;
4105                    ((o = !0), (m.scaleStart = w(e)));
4106                }
4107                (m.$slideEl && m.$slideEl.length) ||
4108                ((m.$slideEl = d(e.target).closest(`.${t.params.slideClass}`)),
4109                0 === m.$slideEl.length && (m.$slideE
4109l = t.slides.eq(t.activeIndex)),
4110                (m.$imageEl = m.$slideEl
4111                    .find(`.${a.containerClass}`)
4112                    .eq(0)
4113                    .find('picture, img, svg, canvas, .swiper-zoom-target')
4114                    .eq(0)),
4115                (m.$imageWrapEl = m.$imageEl.parent(`.${a.containerClass}`)),
4116                (m.maxRatio = m.$imageWrapEl.attr('data-swiper-zoom') || a.maxRatio),
4117                0 !== m.$imageWrapEl.length)
4118                    ? (m.$imageEl && m.$imageEl.transition(0), (u = !0))
4119                    : (m.$imageEl = void 0);
4120            }
4121            function x(e) {
4122                const s = t.support,
4123                    a = t.params.zoom,
4124                    i = t.zoom;
4125                if (!s.gestures) {
4126                    if ('touchmove' !== e.type || ('touchmove' === e.type && e.targetTouches.length < 2)) return;
4127                    ((c = !0), (m.scaleMove = w(e)));
4128                }
4129                m.$imageEl && 0 !== m.$imageEl.length
4130                    ? (s.gestures ? (i.scale = e.scale * p) : (i.scale = (m.scaleMove / m.scaleStart) * p),
4131                      i.scale > m.maxRatio && (i.scale = m.maxRatio - 1 + (i.scale - m.maxRatio + 1) ** 0.5),
4132                      i.scale < a.minRatio && (i.scale = a.minRatio + 1 - (a.minRatio - i.scale + 1) ** 0.5),
4133                      m.$imageEl.transform(`translate3d(0,0,0) scale(${i.scale})`))
4134                    : 'gesturechange' === e.type && b(e);
4135            }
4136            function y(e) {
4137                const s = t.device,
4138                    a = t.support,
4139                    i = t.params.zoom,
4140                    r = t.zoom;
4141                if (!a.gestures) {
4142                    if (!o || !c) return;
4143                    if ('touchend' !== e.type || ('touchend' === e.type && e.changedTouches.length < 2 && !s.android))
4144                        return;
4145                    ((o = !1), (c = !1));
4146                }
4147                m.$imageEl &&
4148                    0 !== m.$imageEl.length &&
4149                    ((r.scale = Math.max(Math.min(r.scale, m.maxRatio), i.minRatio)),
4150                    m.$imageEl.transition(t.params.speed).transform(`translate3d(0,0,0) scale(${r.scale})`),
4151                    (p = r.scale),
4152                    (u = !1),
4153                    1 === r.scale && (m.$slideEl = void 0));
4154            }
4155            function E(e) {
4156                const s = t.zoom;
4157                if (!m.$imageEl || 0 === m.$imageEl.length) return;
4158                if (((t.allowClick = !1), !f.isTouched || !m.$slideEl)) return;
4159                f.isMoved ||
4160                    ((f.width = m.$imageEl[0].offsetWidth),
4161                    (f.height = m.$imageEl[0].offsetHeight),
4162                    (f.startX = h(m.$imageWrapEl[0], 'x') || 0),
4163                    (f.startY = h(m.$imageWrapEl[0], 'y') || 0),
4164                    (m.slideWidth = m.$slideEl[0].offsetWidth),
4165                    (m.slideHeight = m.$slideEl[0].offsetHeight),
4166                    m.$imageWrapEl.transition(0));
4167                const a = f.width * s.scale,
4168                    i = f.height * s.scale;
4169                if (!(a < m.slideWidth && i < m.slideHeight)) {
4170                    if (
4171                        ((f.minX = Math.min(m.slideWidth / 2 - a / 2, 0)),
4172                        (f.maxX = -f.minX),
4173                        (f.minY = Math.min(m.slideHeight / 2 - i / 2, 0)),
4174                        (f.maxY = -f.minY),
4175                        (f.touchesCurrent.x = 'touchmove' === e.type ? e.targetTouches[0].pageX : e.pageX),
4176                        (f.touchesCurrent.y = 'touchmove' === e.type ? e.targetTouches[0].pageY : e.pageY),
4177                        !f.isMoved && !u)
4178                    ) {
4179                        if (
4180                            t.isHorizontal() &&
4181                            ((Math.floor(f.minX) === Math.floor(f.startX) && f.touchesCurrent.x < f.touchesStart.x) ||
4182                                (Math.floor(f.maxX) === Math.floor(f.startX) && f.touchesCurrent.x > f.touchesStart.x))
4183                        )
4184                            return void (f.isTouched = !1);
4185                        if (
4186                            !t.isHorizontal() &&
4187                            ((Math.floor(f.minY) === Math.floor(f.startY) && f.touchesCurrent.y < f.touchesStart.y) ||
4188                                (Math.floor(f.maxY) === Math.floor(f.startY) && f.touchesCurrent.y > f.touchesStart.y))
4189                        )
4190                            return void (f.isTouched = !1);
4191                    }
4192                    (e.cancelable && e.preventDefault(),
4193                        e.stopPropagation(),
4194                        (f.isMoved = !0),
4195                        (f.currentX = f.touchesCurrent.x - f.touchesStart.x + f.startX),
4196                        (f.currentY = f.touchesCurrent.y - f.touchesStart.y + f.startY),
4197                        f.currentX < f.minX && (f.currentX = f.minX + 1 - (f.minX - f.currentX + 1) ** 0.8),
4198                        f.currentX > f.maxX && (f.currentX = f.maxX - 1 + (f.currentX - f.maxX + 1) ** 0.8),
4199                        f.currentY < f.minY && (f.currentY = f.minY + 1 - (f.minY - f.currentY + 1) ** 0.8),
4200                        f.currentY > f.maxY && (f.currentY = f.maxY - 1 + (f.currentY - f.maxY + 1) ** 0.8),
4201                        g.prevPositionX || (g.prevPositionX = f.touchesCurrent.x),
4202                        g.prevPositionY || (g.prevPositionY = f.touchesCurrent.y),
4203                        g.prevTime || (g.prevTime = Date.now()),
4204                        (g.x = (f.touchesCurrent.x - g.prevPositionX) / (Date.now() - g.prevTime) / 2),
4205                        (g.y = (f.touchesCurrent.y - g.prevPositionY) / (Date.now() - g.prevTime) / 2),
4206                        Math.abs(f.touchesCurrent.x - g.prevPositionX) < 2 && (g.x = 0),
4207                        Math.abs(f.touchesCurrent.y - g.prevPositionY) < 2 && (g.y = 0),
4208                        (g.prevPositionX = f.touchesCurrent.x),
4209                        (g.prevPositionY = f.touchesCurrent.y),
4210                        (g.prevTime = Date.now()),
4211                        m.$imageWrapEl.transform(`translate3d(${f.currentX}px, ${f.currentY}px,0)`));
4212                }
4213            }
4214            function C() {
4215                const e = t.zoom;
4216                m.$slideEl &&
4217                    t.previousIndex !== t.activeIndex &&
4218                    (m.$imageEl && m.$imageEl.transform('translate3d(0,
42180,0) scale(1)'),
4219                    m.$imageWrapEl && m.$imageWrapEl.transform('translate3d(0,0,0)'),
4220                    (e.scale = 1),
4221                    (p = 1),
4222                    (m.$slideEl = void 0),
4223                    (m.$imageEl = void 0),
4224                    (m.$imageWrapEl = void 0));
4225            }
4226            function T(e) {
4227                const s = t.zoom,
4228                    a = t.params.zoom;
4229                if (
4230                    (m.$slideEl ||
4231                        (e && e.target && (m.$slideEl = d(e.target).closest(`.${t.params.slideClass}`)),
4232                        m.$slideEl ||
4233                            (t.params.virtual && t.params.virtual.enabled && t.virtual
4234                                ? (m.$slideEl = t.$wrapperEl.children(`.${t.params.slideActiveClass}`))
4235                                : (m.$slideEl = t.slides.eq(t.activeIndex))),
4236                        (m.$imageEl = m.$slideEl
4237                            .find(`.${a.containerClass}`)
4238                            .eq(0)
4239                            .find('picture, img, svg, canvas, .swiper-zoom-target')
4240                            .eq(0)),
4241                        (m.$imageWrapEl = m.$imageEl.parent(`.${a.containerClass}`))),
4242                    !m.$imageEl || 0 === m.$imageEl.length || !m.$imageWrapEl || 0 === m.$imageWrapEl.length)
4243                )
4244                    return;
4245                let i, r, l, o, c, u, h, g, v, w, b, x, y, E, C, T, $, S;
4246                (t.params.cssMode &&
4247                    ((t.wrapperEl.style.overflow = 'hidden'), (t.wrapperEl.style.touchAction = 'none')),
4248                    m.$slideEl.addClass(`${a.zoomedSlideClass}`),
4249                    void 0 === f.touchesStart.x && e
4250                        ? ((i = 'touchend' === e.type ? e.changedTouches[0].pageX : e.pageX),
4251                          (r = 'touchend' === e.type ? e.changedTouches[0].pageY : e.pageY))
4252                        : ((i = f.touchesStart.x), (r = f.touchesStart.y)),
4253                    (s.scale = m.$imageWrapEl.attr('data-swiper-zoom') || a.maxRatio),
4254                    (p = m.$imageWrapEl.attr('data-swiper-zoom') || a.maxRatio),
4255                    e
4256                        ? (($ = m.$slideEl[0].offsetWidth),
4257                          (S = m.$slideEl[0].offsetHeight),
4258                          (l = m.$slideEl.offset().left + n.scrollX),
4259                          (o = m.$slideEl.offset().top + n.scrollY),
4260                          (c = l + $ / 2 - i),
4261                          (u = o + S / 2 - r),
4262                          (v = m.$imageEl[0].offsetWidth),
4263                          (w = m.$imageEl[0].offsetHeight),
4264                          (b = v * s.scale),
4265                          (x = w * s.scale),
4266                          (y = Math.min($ / 2 - b / 2, 0)),
4267                          (E = Math.min(S / 2 - x / 2, 0)),
4268                          (C = -y),
4269                          (T = -E),
4270                          (h = c * s.scale),
4271                          (g = u * s.scale),
4272                          h < y && (h = y),
4273                          h > C && (h = C),
4274                          g < E && (g = E),
4275                          g > T && (g = T))
4276                        : ((h = 0), (g = 0)),
4277                    m.$imageWrapEl.transition(300).transform(`translate3d(${h}px, ${g}px,0)`),
4278                    m.$imageEl.transition(300).transform(`translate3d(0,0,0) scale(${s.scale})`));
4279            }
4280            function $() {
4281                const e = t.zoom,
4282                    s = t.params.zoom;
4283                (m.$slideEl ||
4284                    (t.params.virtual && t.params.virtual.enabled && t.virtual
4285                        ? (m.$slideEl = t.$wrapperEl.children(`.${t.params.slideActiveClass}`))
4286                        : (m.$slideEl = t.slides.eq(t.activeIndex)),
4287                    (m.$imageEl = m.$slideEl
4288                        .find(`.${s.containerClass}`)
4289                        .eq(0)
4290                        .find('picture, img, svg, canvas, .swiper-zoom-target')
4291                        .eq(0)),
4292                    (m.$imageWrapEl = m.$imageEl.parent(`.${s.containerClass}`))),
4293                    m.$imageEl &&
4294                        0 !== m.$imageEl.length &&
4295                        m.$imageWrapEl &&
4296                        0 !== m.$imageWrapEl.length &&
4297                        (t.params.cssMode && ((t.wrapperEl.style.overflow = ''), (t.wrapperEl.style.touchAction = '')),
4298                        (e.scale = 1),
4299                        (p = 1),
4300                        m.$imageWrapEl.transition(300).transform('translate3d(0,0,0)'),
4301                        m.$imageEl.transition(300).transform('translate3d(0,0,0) scale(1)'),
4302                        m.$slideEl.removeClass(`${s.zoomedSlideClass}`),
4303                        (m.$slideEl = void 0)));
4304            }
4305            function S(e) {
4306                const s = t.zoom;
4307                s.scale && 1 !== s.scale ? $() : T(e);
4308            }
4309            function M() {
4310                const e = t.support;
4311                return {
4312                    passiveListener: !(
4313                        'touchstart' !== t.touchEvents.start ||
4314                        !e.passiveListener ||
4315                        !t.params.passiveListeners
4316                    ) && { passive: !0, capture: !1 },
4317                    activeListenerWithCapture: !e.passiveListener || { passive: !1, capture: !0 },
4318                };
4319            }
4320            function P() {
4321                return `.${t.params.slideClass}`;
4322            }
4323            function k(e) {
4324                const { passiveListener: s } = M(),
4325                    a = P();
4326                (t.$wrapperEl[e]('gesturestart', a, b, s),
4327                    t.$wrapperEl[e]('gesturechange', a, x, s),
4328                    t.$wrapperEl[e]('gestureend', a, y, s));
4329            }
4330            function z() {
4331                l || ((l = !0), k('on'));
4332            }
4333            function L() {
4334                l && ((l = !1), k('off'));
4335            }
4336            function O() {
4337                const e = t.zoom;
4338                if (e.enabled) return;
4339                e.enabled = !0;
4340                const s = t.support,
4341                    { passiveListener: a, activeListenerWithCapture: i } = M(),
4342                    r = P();
4343                (s.gestures
4344                    ? (t.$wrapperEl.on(t.touchEvents.start, z, a), t.$wrapperEl.on(t.touchEvents.end, L, a))
4345                    : 'touchstart' === t.touchEvents.start &&
4346                      (t.$wrapperEl.on(t.touchEvents.start, r, b, a),
4347                      t.$wrapperEl.on(t.touchEvents.move, r, x, i),
4348                      t.$wrapperEl.on(t.touchEvents.end, r, y, a),
4349                      t.touchEvents.cancel && t.$wrapperEl.on(t.touchEvents.cancel, r, y, a)),
4350                    t.$wrapperEl.on(t.touchEvents.move, `.${t.params.zoom.containerClass}`, E, i));
4351            }
4352            function I() {
4353                const e = t.zoom;
4354                if (!e.enabled) return;
4355                const s = t.support;
4356                e.enabled = !1;
4357                const { passiveListener: a, activeListenerWithCapture: i } = M(),
4358                    r = P();
4359                (s.gestures
4360                    ? (t.$wrapperEl.off(t.touchEvents.start, z, a), t.$wrapperEl.off(t.touchEvents.end, L, a))
4361                    : 'touchstart' === t.touchEvents.start &&
4362                      (t.$wrapperEl.off(t.touchEvents.start, r, b, a),
4363                      t.$wrapperEl.off(t.touchEvents.move, r, x, i),
4364                      t.$wrapperEl.off(t.touchEvents.end, r, y, a),
4365                      t.touchEvents.cancel && t.$wrapperEl.off(t.touchEvents.cancel, r, y, a)),
4366                    t.$wrapperEl.off(t.touchEvents.move, `.${t.params.zoom.containerClass}`, E, i));
4367            }
4368            (Object.defineProperty(t.zoom, 'scale', {
4369                get: () => v,
4370                set(e) {
4371                    if (v !== e) {
4372                        const t = m.$imageEl ? m.$imageEl[0] : void 0,
4373                            s = m.$slideEl ? m.$slideEl[0] : void 0;
4374                        i('zoomChange', e, t, s);
4375                    }
4376                    v = e;
4377                },
4378            }),
4379                a('init', () => {
4380                    t.params.zoom.enabled && O();
4381                }),
4382                a('destroy', () => {
4383                    I();
4384                }),
4385                a('touchStart', (e, s) => {
4386                    t.zoom.enabled &&
4387                        (function (e) {
4388                            const s = t.device;
4389                            m.$imageEl &&
4390                                0 !== m.$imageEl.length &&
4391                                (f.isTouched ||
4392                                    (s.android && e.cancelable && e.preventDefault(),
4393                                    (f.isTouched = !0),
4394                                    (f.touchesStart.x = 'touchstart' === e.type ? e.targetTouches[0].pageX : e.pageX),
4395                                    (f.touchesStart.y = 'touchstart' === e.type ? e.targetTouches[0].pageY : e.pageY)));
4396                        })(s);
4397                }),
4398                a('touchEnd', (e, s) => {
4399                    t.zoom.enabled &&
4400                        (function () {
4401                            const e = t.zoom;
4402                            if (!m.$imageEl || 0 === m.$imageEl.length) return;
4403                            if (!f.isTouched || !f.isMoved) return ((f.isTouched = !1), void (f.isMoved = !1));
4404                            ((f.isTouched = !1), (f.isMoved = !1));
4405                            let s = 300,
4406                                a = 300;
4407                            const i = g.x * s,
4408                                r = f.currentX + i,
4409                                n = g.y * a,
4410                                l = f.currentY + n;
4411                            (0 !== g.x && (s = Math.abs((r - f.currentX) / g.x)),
4412                                0 !== g.y && (a = Math.abs((l - f.currentY) / g.y)));
4413                            const o = Math.max(s, a);
4414                            ((f.currentX = r), (f.currentY = l));
4415                            const d = f.width * e.scale,
4416                                c = f.height * e.scale;
4417                            ((f.minX = Math.min(m.slideWidth / 2 - d / 2, 0)),
4418                                (f.maxX = -f.minX),
4419                                (f.minY = Math.min(m.slideHeight / 2 - c / 2, 0)),
4420                                (f.maxY = -f.minY),
4421                                (f.currentX = Math.max(Math.min(f.currentX, f.maxX), f.minX)),
4422                                (f.currentY = Math.max(Math.min(f.currentY, f.maxY), f.minY)),
4423                                m.$imageWrapEl
4424                                    .transition(o)
4425                                    .transform(`translate3d(${f.currentX}px, ${f.currentY}px,0)`));
4426                        })();
4427                }),
4428                a('doubleTap', (e, s) => {
4429                    !t.animating && t.params.zoom.enabled && t.zoom.enabled && t.params.zoom.toggle && S(s);
4430                }),
4431                a('transitionEnd', () => {
4432                    t.zoom.enabled && t.params.zoom.enabled && C();
4433                }),
4434                a('slideChange', () => {
4435                    t.zoom.enabled && t.params.zoom.enabled && t.params.cssMode && C();
4436                }),
4437                Object.assign(t.zoom, { enable: O, disable: I, in: T, out: $, toggle: S }));
4438        },
4439        function (e) {
4440            let { swiper: t, extendParams: s, on: a, emit: i } = e;
4441            (s({
4442                lazy: {
4443                    checkInView: !1,
4444                    enabled: !1,
4445                    loadPrevNext: !1,
4446                    loadPrevNextAmount: 1,
4447                    loadOnTransitionStart: !1,
4448                    scrollingElement: '',
4449                    elementClass: 'swiper-lazy',
4450                    loadingClass: 'swiper-lazy-loading',
4451                    loadedClass: 'swiper-lazy-loaded',
4452                    preloaderClass: 'swiper-lazy-preloader',
4453                },
4454            }),
4455                (t.lazy = {}));
4456            let n = !1,
4457                l = !1;
4458            function o(e, s) {
4459                void 0 === s && (s = !0);
4460                const a = t.params.lazy;
4461                if (void 0 === e) return;
4462                if (0 === t.slides.length) return;
4463                const r =
4464                        t.virtual && t.params.virtual.enabled
4465                            ? t.$wrapperEl.children(`.${t.params.slideClass}[data-swiper-slide-index="${e}"]`)
4466                            : t.slides.eq(e),
4467                    n = r.find(`.${a.elementClass}:not(.${a.loadedClass}):not(.${a.loadingClass})`);
4468                (!r.hasClass(a.elementClass) || r.hasClass(a.loadedClass) || r.hasClass(a.loadingClass) || n.push(r[0]),
4469                    0 !== n.length &&
4470                        n.each((e) => {
4471                            const n = d(e);
4472                            n.addClass(a.loadingClass);
4473                            const l = n.attr('data-background'),
4474                                c = n.attr('data-src'),
4475                                p = n.attr('data-srcset'),
4476                                u = n.attr('data-sizes'),
4477                                h = n.parent('picture');
4478                            (t.loadImage(n[0], c || l, p, u, !1, () => {
4479                                if (null != t && t && (!t || t.params) && !t.destroyed) {
4480                                    if (
4481                                        (l
4482                                            ? (n.css('background-image', `url("${l}")`),
4483                                              n.removeAttr('data-background'))
4484                                            : (p && (n.attr('srcset', p), n.removeAttr('data-srcset')),
4485                                              u && (n.attr('sizes', u), n.removeAttr('data-sizes')),
4486                                              h.length &&
4487                                                  h.children('source').each((e) => {
4488                                                      const t = d(e);
4489                                                      t.attr('data-srcset') &&
4490                                                          (t.attr('srcset', t.attr('data-srcset')),
4491                                                          t.removeAttr('data-srcset'));
4492                                                  }),
4493                                              c && (n.attr('src', c), n.removeAttr('data-src'))),
4494                                        n.addClass(a.loadedClass).removeClass(a.loadingClass),
4495                                        r.find(`.${a.preloaderClass}`).remove(),
4496                                        t.params.loop && s)
4497                                    ) {
4498                                        const e = r.attr('data-swiper-slide-index');
4499                                        if (r.hasClass(t.params.slideDuplicateClass)) {
4500                                            o(
4501                                                t.$wrapperEl
4502                                                    .children(
4503                                                        `[data-swiper-slide-index="${e}"]:not(.${t.params.slideDuplicateClass})`
4504                                                    )
4505                                                    .index(),
4506                                                !1
4507                                            );
4508                                        } else {
4509                                            o(
4510                                                t.$wrapperEl
4511                                                    .children(
4512                                                        `.${t.params.slideDuplicateClass}[data-swiper-slide-index="${e}"]`
4513                                                    )
4514                                                    .index(),
4515                                                !1
4516                                            );
4517                                        }
4518                                    }
4519                                    (i('lazyImageReady', r[0], n[0]), t.params.autoHeight && t.updateAutoHeight());
4520                                }
4521                            }),
4522                                i('lazyImageLoad', r[0], n[0]));
4523                        }));
4524            }
4525            function c() {
4526                const { $wrapperEl: e, params: s, slides: a, activeIndex: i } = t,
4527                    r = t.virtual && s.virtual.enabled,
4528                    n = s.lazy;
4529                let c = s.slidesPerView;
4530                function p(t) {
4531                    if (r) {
4532                        if (e.children(`.${s.slideClass}[data-swiper-slide-index="${t}"]`).length) return !0;
4533                    } else if (a[t]) return !0;
4534                    return !1;
4535                }
4536                function u(e) {
4537                    return r ? d(e).attr('data-swiper-slide-index') : d(e).index();
4538                }
4539                if (('auto' === c && (c = 0), l || (l = !0), t.params.watchSlidesProgress))
4540                    e.children(`.${s.slideVisibleClass}`).each((e) => {
4541                        o(r ? d(e).attr('data-swiper-slide-index') : d(e).index());
4542                    });
4543                else if (c > 1) for (let e = i; e < i + c; e += 1) p(e) && o(e);
4544                else o(i);
4545                if (n.loadPrevNext)
4546                    if (c > 1 || (n.loadPrevNextAmount && n.loadPrevNextAmount > 1)) {
4547                        const e = n.loadPrevNextAmount,
4548                            t = Math.ceil(c),
4549                            s = Math.min(i + t + Math.max(e, t), a.length),
4550                            r = Math.max(i - Math.max(t, e), 0);
4551                        for (let e = i + t; e < s; e += 1) p(e) && o(e);
4552                        for (let e = r; e < i; e += 1) p(e) && o(e);
4553                    } else {
4554                        const t = e.children(`.${s.slideNextClass}`);
4555                        t.length > 0 && o(u(t));
4556                        const a = e.children(`.${s.slidePrevClass}`);
4557                        a.length > 0 && o(u(a));
4558                    }
4559            }
4560            function p() {
4561                const e = r();
4562                if (!t || t.destroyed) return;
4563                const s = t.params.lazy.scrollingElement ? d(t.params.lazy.scrollingElement) : d(e),
4564                    a = s[0] === e,
4565                    i = a ? e.innerWidth : s[0].offsetWidth,
4566                    l = a ? e.innerHeight : s[0].offsetHeight,
4567                    o = t.$el.offset(),
4568                    { rtlTranslate: u } = t;
4569                let h = !1;
4570                u && (o.left -= t.$el[0].scrollLeft);
4571                const m = [
4572                    [o.left, o.top],
4573                    [o.left + t.width, o.top],
4574                    [o.left, o.top + t.height],
4575                    [o.left + t.width, o.top + t.height],
4576                ];
4577                for (let e = 0; e < m.length; e += 1) {
4578                    const t = m[e];
4579                    if (t[0] >= 0 && t[0] <= i && t[1] >= 0 && t[1] <= l) {
4580                        if (0 === t[0] && 0 === t[1]) continue;
4581                        h = !0;
4582                    }
4583                }
4584                const f = !(
4585                    'touchstart' !== t.touchEvents.start ||
4586                    !t.support.passiveListener ||
4587                    !t.params.passiveListeners
4588                ) && { passive: !0, capture: !1 };
4589                h ? (c(), s.off('scroll', p, f)) : n || ((n = !0), s.on('scroll', p, f));
4590            }
4591            (a('beforeInit', () => {
4592                t.params.lazy.enabled && t.params.preloadImages && (t.params.preloadImages = !1);
4593            }),
4594                a('init', () => {
4595                    t.params.lazy.enabled && (t.params.lazy.checkInView ? p() : c());
4596                }),
4597                a('scroll', () => {
4598                    t.params.freeMode && t.params.freeMode.enabled && !t.params.freeMode.sticky && c();
4599                }),
4600                a('scrollbarDragMove resize _freeModeNoMomentumRelease', () => {
4601                    t.params.lazy.enabled && (t.params.lazy.checkInView ? p() : c());
4602                }),
4603                a('transitionStart', () => {
4604                    t.params.lazy.enabled &&
4605                        (t.params.lazy.loadOnTransitionStart || (!t.params.lazy.loadOnTransitionStart && !l)) &&
4606                        (t.params.lazy.checkInView ? p() : c());
4607                }),
4608                a('transitionEnd', () => {
4609                    t.params.lazy.enabled &&
4610                        !t.params.lazy.loadOnTransitionStart &&
4611                        (t.params.lazy.checkInView ? p() : c());
4612                }),
4613                a('slideChange', () => {
4614                    const {
4615                        lazy: e,
4616                        cssMode: s,
4617                        watchSlidesProgress: a,
4618                        touchReleaseOnEdges: i,
4619                        resistanceRatio: r,
4620                    } = t.params;
4621                    e.enabled && (s || (a && (i || 0 === r))) && c();
4622                }),
4623                a('destroy', () => {
4624                    t.$el && t.$el.find(`.${t.params.lazy.loadingClass}`).removeClass(t.params.lazy.loadingClass);
4625                }),
4626                Object.assign(t.lazy, { load: c, loadInSlide: o }));
4627        },
4628        function (e) {
4629            let { swiper: t, extendParams: s, on: a } = e;
4630            function i(e, t) {
4631                const s = (function () {
4632                    let e, t, s;
4633                    return (a, i) => {
4634                        for (t = -1, e = a.length; e - t > 1;
4634 ) ((s = (e + t) >> 1), a[s] <= i ? (t = s) : (e = s));
4635                        return e;
4636                    };
4637                })();
4638                let a, i;
4639                return (
4640                    (this.x = e),
4641                    (this.y = t),
4642                    (this.lastIndex = e.length - 1),
4643                    (this.interpolate = function (e) {
4644                        return e
4645                            ? ((i = s(this.x, e)),
4646                              (a = i - 1),
4647                              ((e - this.x[a]) * (this.y[i] - this.y[a])) / (this.x[i] - this.x[a]) + this.y[a])
4648                            : 0;
4649                    }),
4650                    this
4651                );
4652            }
4653            function r() {
4654                t.controller.control &&
4655                    t.controller.spline &&
4656                    ((t.controller.spline = void 0), delete t.controller.spline);
4657            }
4658            (s({ controller: { control: void 0, inverse: !1, by: 'slide' } }),
4659                (t.controller = { control: void 0 }),
4660                a('beforeInit', () => {
4661                    t.controller.control = t.params.controller.control;
4662                }),
4663                a('update', () => {
4664                    r();
4665                }),
4666                a('resize', () => {
4667                    r();
4668                }),
4669                a('observerUpdate', () => {
4670                    r();
4671                }),
4672                a('setTranslate', (e, s, a) => {
4673                    t.controller.control && t.controller.setTranslate(s, a);
4674                }),
4675                a('setTransition', (e, s, a) => {
4676                    t.controller.control && t.controller.setTransition(s, a);
4677                }),
4678                Object.assign(t.controller, {
4679                    setTranslate: function (e, s) {
4680                        const a = t.controller.control;
4681                        let r, n;
4682                        const l = t.constructor;
4683                        function o(e) {
4684                            const s = t.rtlTranslate ? -t.translate : t.translate;
4685                            ('slide' === t.params.controller.by &&
4686                                (!(function (e) {
4687                                    t.controller.spline ||
4688                                        (t.controller.spline = t.params.loop
4689                                            ? new i(t.slidesGrid, e.slidesGrid)
4690                                            : new i(t.snapGrid, e.snapGrid));
4691                                })(e),
4692                                (n = -t.controller.spline.interpolate(-s))),
4693                                (n && 'container' !== t.params.controller.by) ||
4694                                    ((r =
4695                                        (e.maxTranslate() - e.minTranslate()) / (t.maxTranslate() - t.minTranslate())),
4696                                    (n = (s - t.minTranslate()) * r + e.minTranslate())),
4697                                t.params.controller.inverse && (n = e.maxTranslate() - n),
4698                                e.updateProgress(n),
4699                                e.setTranslate(n, t),
4700                                e.updateActiveIndex(),
4701                                e.updateSlidesClasses());
4702                        }
4703                        if (Array.isArray(a))
4704                            for (let e = 0; e < a.length; e += 1) a[e] !== s && a[e] instanceof l && o(a[e]);
4705                        else a instanceof l && s !== a && o(a);
4706                    },
4707                    setTransition: function (e, s) {
4708                        const a = t.constructor,
4709                            i = t.controller.control;
4710                        let r;
4711                        function n(s) {
4712                            (s.setTransition(e, t),
4713                                0 !== e &&
4714                                    (s.transitionStart(),
4715                                    s.params.autoHeight &&
4716                                        p(() => {
4717                                            s.updateAutoHeight();
4718                                        }),
4719                                    s.$wrapperEl.transitionEnd(() => {
4720                                        i &&
4721                                            (s.params.loop && 'slide' === t.params.controller.by && s.loopFix(),
4722                                            s.transitionEnd());
4723                                    })));
4724                        }
4725                        if (Array.isArray(i))
4726                            for (r = 0; r < i.length; r += 1) i[r] !== s && i[r] instanceof a && n(i[r]);
4727                        else i instanceof a && s !== i && n(i);
4728                    },
4729                }));
4730        },
4731        function (e) {
4732            let { swiper: t, extendParams: s, on: a } = e;
4733            (s({
4734                a11y: {
4735                    enabled: !0,
4736                    notificationClass: 'swiper-notification',
4737                    prevSlideMessage: 'Previous slide',
4738                    nextSlideMessage: 'Next slide',
4739                    firstSlideMessage: 'This is the first slide',
4740                    lastSlideMessage: 'This is the last slide',
4741                    paginationBulletMessage: 'Go to slide ',
4742                    slideLabelMessage: ' / ',
4743                    containerMessage: null,
4744                    containerRoleDescriptionMessage: null,
4745                    itemRoleDescriptionMessage: null,
4746                    slideRole: 'group',
4747                    id: null,
4748                },
4749            }),
4750                (t.a11y = { clicked: !1 }));
4751            let i = null;
4752            function r(e) {
4753                const t = i;
4754                0 !== t.length && (t.html(''), t.html(e));
4755            }
4756            function n(e) {
4757                e.attr('tabIndex', '0');
4758            }
4759            function l(e) {
4760                e.attr('tabIndex', '-1');
4761            }
4762            function o(e, t) {
4763                e.attr('role', t);
4764            }
4765            function c(e, t) {
4766                e.attr('aria-roledescription', t);
4767            }
4768            function p(e, t) {
4769                e.attr('aria-label', t);
4770            }
4771            function u(e) {
4772                e.attr('aria-disabled', !0);
4773            }
4774            function h(e) {
4775                e.attr('aria-disabled', !1);
4776            }
4777            function m(e) {
4778                if (13 !== e.keyCode && 32 !== e.keyCode) return;
4779                const s = t.params.a11y,
4780                    a = d(e.target);
4781                (t.navigation &&
4782                    t.navigation.$nextEl &&
4783                    a.is(t.navigation.$nextEl) &&
4784                    ((t.isEnd && !t.params.loop) || t.slideNext(),
4785                    t.isEnd ? r(s.lastSlideMessage) : r(s.nextSlideMessage)),
4786                    t.navigation &&
4787                        t.navigation.$prevEl &&
4788                        a.is(t.navigation.$prevEl) &&
4789                        ((t.isBeginning && !t.params.loop) || t.slidePrev(),
4790                        t.isBeginning ? r(s.firstSlideMessage) : r(s.prevSlideMessage)),
4791                    t.pagination && a.is(U(t.params.pagination.bulletClass)) && a[0].click());
4792            }
4793            function f() {
4794                return t.pagination && t.pagination.bullets && t.pagination.bullets.length;
4795            }
4796            function g() {
4797                return f() && t.params.pagination.clickable;
4798            }
4799            const v = (e, t, s) => {
4800                    (n(e),
4801                        'BUTTON' !== e[0].tagName && (o(e, 'button'), e.on('keydown', m)),
4802                        p(e, s),
4803                        (function (e, t) {
4804                            e.attr('aria-controls', t);
4805                        })(e, t));
4806                },
4807                w = () => {
4808                    t.a11y.clicked = !0;
4809                },
4810                b = () => {
4811                    requestAnimationFrame(() => {
4812                        requestAnimationFrame(() => {
4813                            t.destroyed || (t.a11y.clicked = !1);
4814                        });
4815                    });
4816                },
4817                x = (e) => {
4818                    if (t.a11y.clicked) return;
4819                    const s = e.target.closest(`.${t.params.slideClass}`);
4820                    if (!s || !t.slides.includes(s)) return;
4821                    const a = t.slides.indexOf(s) === t.activeIndex,
4822                        i = t.params.watchSlidesProgress && t.visibleSlides && t.visibleSlides.includes(s);
4823                    a ||
4824                        i ||
4825                        (e.sourceCapabilities && e.sourceCapabilities.firesTouchEvents) ||
4826                        (t.isHorizontal() ? (t.el.scrollLeft = 0) : (t.el.scrollTop = 0),
4827                        t.slideTo(t.slides.indexOf(s), 0));
4828                },
4829                y = () => {
4830                    const e = t.params.a11y;
4831                    (e.itemRoleDescriptionMessage && c(d(t.slides), e.itemRoleDescriptionMessage),
4832                        e.slideRole && o(d(t.slides), e.slideRole));
4833                    const s = t.params.loop
4834                        ? t.slides.filter((e) => !e.classList.contains(t.params.slideDuplicateClass)).length
4835                        : t.slides.length;
4836                    e.slideLabelMessage &&
4837                        t.slides.each((a, i) => {
4838                            const r = d(a),
4839                                n = t.params.loop ? parseInt(r.attr('data-swiper-slide-index'), 10) : i;
4840                            p(
4841                                r,
4842                                e.slideLabelMessage.replace(/\{\{index\}\}/, n + 1).replace(/\{\{slidesLength\}\}/, s)
4843                            );
4844                        });
4845                },
4846                E = () => {
4847                    const e = t.params.a11y;
4848                    t.$el.append(i);
4849                    const s = t.$el;
4850                    (e.containerRoleDescriptionMessage && c(s, e.containerRoleDescriptionMessage),
4851                        e.containerMessage && p(s, e.containerMessage));
4852                    const a = t.$wrapperEl,
4853                        r =
4854                            e.id ||
4855                            a.attr('id') ||
4856                            `swiper-wrapper-${((n = 16), void 0 === n && (n = 16), 'x'.repeat(n).replace(/x/g, () => Math.round(16 * Math.random()).toString(16)))}`;
4857                    var n;
4858                    const l = t.params.autoplay && t.params.autoplay.enabled ? 'off' : 'polite';
4859                    var o;
4860                    let d, u;
4861                    ((o = r),
4862                        a.attr('id', o),
4863                        (function (e, t) {
4864                            e.attr('aria-live', t);
4865                        })(a, l),
4866                        y(),
4867                        t.navigation && t.navigation.$nextEl && (d = t.navigation.$nextEl),
4868                        t.navigation && t.navigation.$prevEl && (u = t.navigation.$prevEl),
4869                        d && d.length && v(d, r, e.nextSlideMessage),
4870                        u && u.length && v(u, r, e.prevSlideMessage),
4871                        g() && t.pagination.$el.on('keydown', U(t.params.pagination.bulletClass), m),
4872                        t.$el.on('focus', x, !0),
4873                        t.$el.on('pointerdown', w, !0),
4874                        t.$el.on('pointerup', b, !0));
4875                };
4876            (a('beforeInit', () => {
4877                i = d(
4878                    `<span class="${t.params.a11y.notificationClass}" aria-live="assertive" aria-atomic="true"></span>`
4879                );
4880            }),
4881                a('afterInit', () => {
4882                    t.params.a11y.enabled && E();
4883                }),
4884                a('slidesLengthChange snapGridLengthChange slidesGridLengthChange', () => {
4885                    t.params.a11y.enabled && y();
4886                }),
4887                a('fromEdge toEdge afterInit lock unlock', () => {
4888                    t.params.a11y.enabled &&
4889                        (function () {
4890                            if (t.params.loop || t.params.rewind || !t.navigation) return;
4891                            const { $nextEl: e, $prevEl: s } = t.navigation;
4892                            (s && s.length > 0 && (t.isBeginning ? (u(s), l(s)) : (h(s), n(s))),
4893                                e && e.length > 0 && (t.isEnd ? (u(e), l(e)) : (h(e), n(e))));
4894                        })();
4895                }),
4896                a('paginationUpdate', () => {
4897                    t.params.a11y.enabled &&
4898                        (function () {
4899                            const e = t.params.a11y;
4900                            f() &&
4901                                t.pagination.bullets.each((s) => {
4902                                    const a = d(s);
4903                                    (t.params.pagination.clickable &&
4904                                        (n(a),
4905                                        t.params.pagination.renderBullet ||
4906                                            (o(a, 'button'),
4907                                            p(a, e.paginationBulletMessage.replace(/\{\{index\}\}/, a.index() + 1)))),
4908                                        a.is(`.${t.params.pagination.bulletActiveClass}`)
4909                                            ? a.attr('aria-current', 'true')
4910                                            : a.removeAttr('aria-current'));
4911                                });
4912                        })();
4913                }),
4914                a('destroy', () => {
4915                    t.params.a11y.enabled &&
4916                        (function () {
4917                            let e, s;
4918                            (i && i.length > 0 && i.remove(),
4919                                t.navigation && t.navigation.$nextEl && (e = t.navigation.$nextEl),
4920                                t.navigation && t.navigation.$prevEl && (s = t.navigation.$prevEl),
4921                                e && e.off('keydown', m),
4922                                s && s.off('keydown', m),
4923                                g() && t.pagination.$el.off('keydown', U(t.params.pagination.bulletClass), m),
4924                                t.$el.off('focus', x, !0),
4925                                t.$el.off('pointerdown', w, !0),
4926                                t.$el.off('pointerup', b, !0));
4927                        })();
4928                }));
4929        },
4930        function (e) {
4931            let { swiper: t, extendParams: s, on: a } = e;
4932            s({ history: { enabled: !1, root: '', replaceState: !1, key: 'slides', keepQuery: !1 } });
4933            let i = !1,
4934                n = {};
4935            const l = (e) =>
4936                    e
4937                        .toString()
4938                        .replace(/\s+/g, '-')
4939                        .replace(/[^\w-]+/g, '')
4940                        .replace(/--+/g, '-')
4941                        .replace(/^-+/, '')
4942                        .replace(/-+$/, ''),
4943                o = (e) => {
4944                    const t = r();
4945                    let s;
4946                    s = e ? new URL(e) : t.location;
4947                    const a = s.pathname
4948                            .slice(1)
4949                            .split('/')
4950                            .filter((e) => '' !== e),
4951                        i = a.length;
4952                    return { key: a[i - 2], value: a[i - 1] };
4953                },
4954                d = (e, s) => {
4955                    const a = r();
4956                    if (!i || !t.params.history.enabled) return;
4957                    let n;
4958                    n = t.params.url ? new URL(t.params.url) : a.location;
4959                    const o = t.slides.eq(s);
4960                    let d = l(o.attr('data-history'));
4961                    if (t.params.history.root.length > 0) {
4962                        let s = t.params.history.root;
4963                        ('/' === s[s.length - 1] && (s = s.slice(0, s.length - 1)), (d = `${s}/${e}/${d}`));
4964                    } else n.pathname.includes(e) || (d = `${e}/${d}
4964`);
4965                    t.params.history.keepQuery && (d += n.search);
4966                    const c = a.history.state;
4967                    (c && c.value === d) ||
4968                        (t.params.history.replaceState
4969                            ? a.history.replaceState({ value: d }, null, d)
4970                            : a.history.pushState({ value: d }, null, d));
4971                },
4972                c = (e, s, a) => {
4973                    if (s)
4974                        for (let i = 0, r = t.slides.length; i < r; i += 1) {
4975                            const r = t.slides.eq(i);
4976                            if (l(r.attr('data-history')) === s && !r.hasClass(t.params.slideDuplicateClass)) {
4977                                const s = r.index();
4978                                t.slideTo(s, e, a);
4979                            }
4980                        }
4981                    else t.slideTo(0, e, a);
4982                },
4983                p = () => {
4984                    ((n = o(t.params.url)), c(t.params.speed, n.value, !1));
4985                };
4986            (a('init', () => {
4987                t.params.history.enabled &&
4988                    (() => {
4989                        const e = r();
4990                        if (t.params.history) {
4991                            if (!e.history || !e.history.pushState)
4992                                return ((t.params.history.enabled = !1), void (t.params.hashNavigation.enabled = !0));
4993                            ((i = !0),
4994                                (n = o(t.params.url)),
4995                                (n.key || n.value) &&
4996                                    (c(0, n.value, t.params.runCallbacksOnInit),
4997                                    t.params.history.replaceState || e.addEventListener('popstate', p)));
4998                        }
4999                    })();
5000            }),
5001                a('destroy', () => {
5002                    t.params.history.enabled &&
5003                        (() => {
5004                            const e = r();
5005                            t.params.history.replaceState || e.removeEventListener('popstate', p);
5006                        })();
5007                }),
5008                a('transitionEnd _freeModeNoMomentumRelease', () => {
5009                    i && d(t.params.history.key, t.activeIndex);
5010                }),
5011                a('slideChange', () => {
5012                    i && t.params.cssMode && d(t.params.history.key, t.activeIndex);
5013                }));
5014        },
5015        function (e) {
5016            let { swiper: t, extendParams: s, emit: i, on: n } = e,
5017                l = !1;
5018            const o = a(),
5019                c = r();
5020            s({ hashNavigation: { enabled: !1, replaceState: !1, watchState: !1 } });
5021            const p = () => {
5022                    i('hashChange');
5023                    const e = o.location.hash.replace('#', '');
5024                    if (e !== t.slides.eq(t.activeIndex).attr('data-hash')) {
5025                        const s = t.$wrapperEl.children(`.${t.params.slideClass}[data-hash="${e}"]`).index();
5026                        if (void 0 === s) return;
5027                        t.slideTo(s);
5028                    }
5029                },
5030                u = () => {
5031                    if (l && t.params.hashNavigation.enabled)
5032                        if (t.params.hashNavigation.replaceState && c.history && c.history.replaceState)
5033                            (c.history.replaceState(
5034                                null,
5035                                null,
5036                                `#${t.slides.eq(t.activeIndex).attr('data-hash')}` || ''
5037                            ),
5038                                i('hashSet'));
5039                        else {
5040                            const e = t.slides.eq(t.activeIndex),
5041                                s = e.attr('data-hash') || e.attr('data-history');
5042                            ((o.location.hash = s || ''), i('hashSet'));
5043                        }
5044                };
5045            (n('init', () => {
5046                t.params.hashNavigation.enabled &&
5047                    (() => {
5048                        if (!t.params.hashNavigation.enabled || (t.params.history && t.params.history.enabled)) return;
5049                        l = !0;
5050                        const e = o.location.hash.replace('#', '');
5051                        if (e) {
5052                            const s = 0;
5053                            for (let a = 0, i = t.slides.length; a < i; a += 1) {
5054                                const i = t.slides.eq(a);
5055                                if (
5056                                    (i.attr('data-hash') || i.attr('data-history')) === e &&
5057                                    !i.hasClass(t.params.slideDuplicateClass)
5058                                ) {
5059                                    const e = i.index();
5060                                    t.slideTo(e, s, t.params.runCallbacksOnInit, !0);
5061                                }
5062                            }
5063                        }
5064                        t.params.hashNavigation.watchState && d(c).on('hashchange', p);
5065                    })();
5066            }),
5067                n('destroy', () => {
5068                    t.params.hashNavigation.enabled && t.params.hashNavigation.watchState && d(c).off('hashchange', p);
5069                }),
5070                n('transitionEnd _freeModeNoMomentumRelease', () => {
5071                    l && u();
5072                }),
5073                n('slideChange', () => {
5074                    l && t.params.cssMode && u();
5075                }));
5076        },
5077        function (e) {
5078            let t,
5079                { swiper: s, extendParams: i, on: r, emit: n } = e;
5080            function l() {
5081                if (!s.size) return ((s.autoplay.running = !1), void (s.autoplay.paused = !1));
5082                const e = s.slides.eq(s.activeIndex);
5083                let a = s.params.autoplay.delay;
5084                (e.attr('data-swiper-autoplay') && (a = e.attr('data-swiper-autoplay') || s.params.autoplay.delay),
5085                    clearTimeout(t),
5086                    (t = p(() => {
5087                        let e;
5088                        (s.params.autoplay.reverseDirection
5089                            ? s.params.loop
5090                                ? (s.loopFix(), (e = s.slidePrev(s.params.speed, !0, !0)), n('autoplay'))
5091                                : s.isBeginning
5092                                  ? s.params.autoplay.stopOnLastSlide
5093                                      ? d()
5094                                      : ((e = s.slideTo(s.slides.length - 1, s.params.speed, !0, !0)), n('autoplay'))
5095                                  : ((e = s.slidePrev(s.params.speed, !0, !0)), n('autoplay'))
5096                            : s.params.loop
5097                              ? (s.loopFix(), (e = s.slideNext(s.params.speed, !0, !0)), n('autoplay'))
5098                              : s.isEnd
5099                                ? s.params.autoplay.stopOnLastSlide
5100                                    ? d()
5101                                    : ((e = s.slideTo(0, s.params.speed, !0, !0)), n('autoplay'))
5102                                : ((e = s.slideNext(s.params.speed, !0, !0)), n('autoplay')),
5103                            ((s.params.cssMode && s.autoplay.running) || !1 === e) && l());
5104                    }, a)));
5105            }
5106            function o() {
5107                return void 0 === t && !s.autoplay.running && ((s.autoplay.running = !0), n('autoplayStart'), l(), !0);
5108            }
5109            function d() {
5110                return (
5111                    !!s.autoplay.running &&
5112                    void 0 !== t &&
5113                    (t && (clearTimeout(t), (t = void 0)), (s.autoplay.running = !1), n('autoplayStop'), !0)
5114                );
5115            }
5116            function c(e) {
5117                s.autoplay.running &&
5118                    (s.autoplay.paused ||
5119                        (t && clearTimeout(t),
5120                        (s.autoplay.paused = !0),
5121                        0 !== e && s.params.autoplay.waitForTransition
5122                            ? ['transitionend', 'webkitTransitionEnd'].forEach((e) => {
5123                                  s.$wrapperEl[0].addEventListener(e, h);
5124                              })
5125                            : ((s.autoplay.paused = !1), l())));
5126            }
5127            function u() {
5128                const e = a();
5129                ('hidden' === e.visibilityState && s.autoplay.running && c(),
5130                    'visible' === e.visibilityState && s.autoplay.paused && (l(), (s.autoplay.paused = !1)));
5131            }
5132            function h(e) {
5133                s &&
5134                    !s.destroyed &&
5135                    s.$wrapperEl &&
5136                    e.target === s.$wrapperEl[0] &&
5137                    (['transitionend', 'webkitTransitionEnd'].forEach((e) => {
5138                        s.$wrapperEl[0].removeEventListener(e, h);
5139                    }),
5140                    (s.autoplay.paused = !1),
5141                    s.autoplay.running ? l() : d());
5142            }
5143            function m() {
5144                (s.params.autoplay.disableOnInteraction ? d() : (n('autoplayPause'), c()),
5145                    ['transitionend', 'webkitTransitionEnd'].forEach((e) => {
5146                        s.$wrapperEl[0].removeEventListener(e, h);
5147                    }));
5148            }
5149            function f() {
5150                s.params.autoplay.disableOnInteraction || ((s.autoplay.paused = !1), n('autoplayResume'), l());
5151            }
5152            ((s.autoplay = { running: !1, paused: !1 }),
5153                i({
5154                    autoplay: {
5155                        enabled: !1,
5156                        delay: 3e3,
5157                        waitForTransition: !0,
5158                        disableOnInteraction: !0,
5159                        stopOnLastSlide: !1,
5160                        reverseDirection: !1,
5161                        pauseOnMouseEnter: !1,
5162                    },
5163                }),
5164                r('init', () => {
5165                    if (s.params.autoplay.enabled) {
5166                        o();
5167                        (a().addEventListener('visibilitychange', u),
5168                            s.params.autoplay.pauseOnMouseEnter &&
5169                                (s.$el.on('mouseenter', m), s.$el.on('mouseleave', f)));
5170                    }
5171                }),
5172                r('beforeTransitionStart', (e, t, a) => {
5173                    s.autoplay.running && (a || !s.params.autoplay.disableOnInteraction ? s.autoplay.pause(t) : d());
5174                }),
5175                r('sliderFirstMove', () => {
5176                    s.autoplay.running && (s.params.autoplay.disableOnInteraction ? d() : c());
5177                }),
5178                r('touchEnd', () => {
5179                    s.params.cssMode && s.autoplay.paused && !s.params.autoplay.disableOnInteraction && l();
5180                }),
5181                r('destroy', () => {
5182                    (s.$el.off('mouseenter', m), s.$el.off('mouseleave', f), s.autoplay.running && d());
5183                    a().removeEventListener('visibilitychange', u);
5184                }),
5185                Object.assign(s.autoplay, { pause: c, run: l, start: o, stop: d }));
5186        },
5187        function (e) {
5188            let { swiper: t, extendParams: s, on: a } = e;
5189            s({
5190                thumbs: {
5191                    swiper: null,
5192                    multipleActiveThumbs: !0,
5193                    autoScrollOffset: 0,
5194                    slideThumbActiveClass: 'swiper-slide-thumb-active',
5195                    thumbsContainerClass: 'swiper-thumbs',
5196                },
5197            });
5198            let i = !1,
5199                r = !1;
5200            function n() {
5201                const e = t.thumbs.swiper;
5202                if (!e || e.destroyed) return;
5203                const s = e.clickedIndex,
5204                    a = e.clickedSlide;
5205                if (a && d(a).hasClass(t.params.thumbs.slideThumbActiveClass)) return;
5206                if (null == s) return;
5207                let i;
5208                if (
5209                    ((i = e.params.loop ? parseInt(d(e.clickedSlide).attr('data-swiper-slide-index'), 10) : s),
5210                    t.params.loop)
5211                ) {
5212                    let e = t.activeIndex;
5213                    t.slides.eq(e).hasClass(t.params.slideDuplicateClass) &&
5214                        (t.loopFix(), (t._clientLeft = t.$wrapperEl[0].clientLeft), (e = t.activeIndex));
5215                    const s = t.slides.eq(e).prevAll(`[data-swiper-slide-index="${i}"]`).eq(0).index(),
5216                        a = t.slides.eq(e).nextAll(`[data-swiper-slide-index="${i}"]`).eq(0).index();
5217                    i = void 0 === s ? a : void 0 === a ? s : a - e < e - s ? a : s;
5218                }
5219                t.slideTo(i);
5220            }
5221            function l() {
5222                const { thumbs: e } = t.params;
5223                if (i) return !1;
5224                i = !0;
5225                const s = t.constructor;
5226                if (e.swiper instanceof s)
5227                    ((t.thumbs.swiper = e.swiper),
5228                        Object.assign(t.thumbs.swiper.originalParams, {
5229                            watchSlidesProgress: !0,
5230                            slideToClickedSlide: !1,
5231                        }),
5232                        Object.assign(t.thumbs.swiper.params, { watchSlidesProgress: !0, slideToClickedSlide: !1 }));
5233                else if (m(e.swiper)) {
5234                    const a = Object.assign({}, e.swiper);
5235                    (Object.assign(a, { watchSlidesProgress: !0, slideToClickedSlide: !1 }),
5236                        (t.thumbs.swiper = new s(a)),
5237                        (r = !0));
5238                }
5239                return (
5240                    t.thumbs.swiper.$el.addClass(t.params.thumbs.thumbsContainerClass),
5241                    t.thumbs.swiper.on('tap', n),
5242                    !0
5243                );
5244            }
5245            function o(e) {
5246                const s = t.thumbs.swiper;
5247                if (!s || s.destroyed) return;
5248                const a = 'auto' === s.params.slidesPerView ? s.slidesPerViewDynamic() : s.params.slidesPerView;
5249                let i = 1;
5250                const r = t.params.thumbs.slideThumbActiveClass;
5251                if (
5252                    (t.params.slidesPerView > 1 && !t.params.centeredSlides && (i = t.params.slidesPerView),
5253                    t.params.thumbs.multipleActiveThumbs || (i = 1),
5254                    (i = Math.floor(i)),
5255                    s.slides.removeClass(r),
5256                    s.params.loop || (s.params.virtual && s.params.virtual.enabled))
5257                )
5258                    for (let e = 0; e < i; e += 1)
5259                        s.$wrapperEl.children(`[data-swiper-slide-index="${t.realIndex + e}"]`).addClass(r);
5260                else for (let e = 0; e < i; e += 1) s.slides.eq(t.realIndex + e).addClass(r);
5261                const n = t.params.thumbs.autoScrollOffset,
5262                    l = n && !s.params.loop;
5263                if (t.realIndex !== s.realIndex || l) {
5264                    let i,
5265                        r,
5266                        o = s.activeIndex;
5267                    if (s.params.loop) {
5268                        s.slides.eq(o).hasClass(s.params.slideDuplicateClass) &&
5269                            (s.loopFix(), (s._clientLeft = s.$wrapperEl[0].clientLeft), (o = s.activeIndex));
5270                        const e = s.slides.eq(o).prevAll(`[data-swiper-slide-index="${t.realIndex}"]`).eq(0).index(),
5271                            a = s.slides.eq(o).nextAll(`[data-swiper-slide-index="${t.realIndex}"]`).eq(0).index();
5272                        ((i =
5273                            void 0 === e
5274                                ? a
5275                                : void 0 === a
5276                                  ? e
5277                                  : a - o == o - e
5278                                    ? s.params.slidesPerGroup > 1
5279                                        ? a
5280                                        : o
5281                                    : a - o < o - e
5282                                      ? a
5283                                      : e),
5284                            (r = t.activeIndex > t.previousIndex ? 'next' : 'prev'));
5285                    } else ((i = t.realIndex), (r = i > t.previousIndex ? 'next' : 'prev'));
5286                    (l && (i += 'next' === r ? n : -1 * n),
5287                        s.visibleSlidesIndexes &&
5288                            s.visibleSlidesIndexes.indexOf(i) < 0 &&
5289                            (s.params.centeredSlides
5290                                ? (i = i > o ? i - Math.floor(a / 2) + 1 : i + Math.floor(a / 2) - 1)
5291                                : i > o && s.params.slidesPerGroup,
5292                            s.slideTo(i, e ? 0 : void 0)));
5293                }
5294            }
5295            ((t.thumbs = { swiper: null }),
5296                a('beforeInit', () => {
5297                    const { thumbs: e } = t.params;
5298                    e && e.swiper && (l(), o(!0));
5299                }),
5300                a('slideChange update resize observerUpdate', () => {
5301                    o();
5302                }),
5303                a('setTransition', (e, s) => {
5304                    const a = t.thumbs.swiper;
5305                    a && !a.destroyed && a.setTransition(s);
5306                }),
5307                a('beforeDestroy', () => {
5308                    const e = t.thumbs.swiper;
5309                    e && !e.destroyed && r && e.destroy();
5310                }),
5311                Object.assign(t.thumbs, { init: l, update: o }));
5312        },
5313        function (e) {
5314            let { swiper: t, extendParams: s, emit: a, once: i } = e;
5315            (s({
5316                freeMode: {
5317                    enabled: !1,
5318                    momentum: !0,
5319                    momentumRatio: 1,
5320                    momentumBounce: !0,
5321                    momentumBounceRatio: 1,
5322                    momentumVelocityRatio: 1,
5323                    sticky: !1,
5324                    minimumVelocity: 0.02,
5325                },
5326            }),
5327                Object.assign(t, {
5328                    freeMode: {
5329                        onTouchStart: function () {
5330                            const e = t.getTranslate();
5331                            (t.setTranslate(e),
5332                                t.setTransition(0),
5333                                (t.touchEventsData.velocities.length = 0),
5334                                t.freeMode.onTouchEnd({ currentPos: t.rtl ? t.translate : -t.translate }));
5335                        },
5336                        onTouchMove: function () {
5337                            const { touchEventsData: e, touches: s } = t;
5338                            (0 === e.velocities.length &&
5339                                e.velocities.push({
5340                                    position: s[t.isHorizontal() ? 'startX' : 'startY'],
5341                                    time: e.touchStartTime,
5342                                }),
5343                                e.velocities.push({
5344                                    position: s[t.isHorizontal() ? 'currentX' : 'currentY'],
5345                                    time: u(),
5346                                }));
5347                        },
5348                        onTouchEnd: function (e) {
5349                            let { currentPos: s } = e;
5350                            const { params: r, $wrapperEl: n, rtlTranslate: l, snapGrid: o, touchEventsData: d } = t,
5351                                c = u() - d.touchStartTime;
5352                            if (s < -t.minTranslate()) t.slideTo(t.activeIndex);
5353                            else if (s > -t.maxTranslate())
5354                                t.slides.length < o.length ? t.slideTo(o.length - 1) : t.slideTo(t.slides.length - 1);
5355                            else {
5356                                if (r.freeMode.momentum) {
5357                                    if (d.velocities.length > 1) {
5358                                        const e = d.velocities.pop(),
5359                                            s = d.velocities.pop(),
5360                                            a = e.position - s.position,
5361                                            i = e.time - s.time;
5362                                        ((t.velocity = a / i),
5363                                            (t.velocity /= 2),
5364                                            Math.abs(t.velocity) < r.freeMode.minimumVelocity && (t.velocity = 0),
5365                                            (i > 150 || u() - e.time > 300) && (t.velocity = 0));
5366                                    } else t.velocity = 0;
5367                                    ((t.velocity *= r.freeMode.momentumVelocityRatio), (d.velocities.length = 0));
5368                                    let e = 1e3 * r.freeMode.momentumRatio;
5369                                    const s = t.velocity * e;
5370                                    let c = t.translate + s;
5371                                    l && (c = -c);
5372                                    let p,
5373                                        h = !1;
5374                                    const m = 20 * Math.abs(t.velocity) * r.freeMode.momentumBounceRatio;
5375                                    let f;
5376                                    if (c < t.maxTranslate())
5377                                        (r.freeMode.momentumBounce
5378                                            ? (c + t.maxTranslate() < -m && (c = t.maxTranslate() - m),
5379                                              (p = t.maxTranslate()),
5380                                              (h = !0),
5381                                              (d.allowMomentumBounce = !0))
5382                                            : (c = t.maxTranslate()),
5383                                            r.loop && r.centeredSlides && (f = !0));
5384                                    else if (c > t.minTranslate())
5385                                        (r.freeMode.momentumBounce
5386                                            ? (c - t.minTranslate() > m && (c = t.minTranslate() + m),
5387                                              (p = t.minTranslate()),
5388                                              (h = !0),
5389                                              (d.allowMomentumBounce = !0))
5390                                            : (c = t.minTranslate()),
5391                                            r.loop && r.centeredSlides && (f = !0));
5392                                    else if (r.freeMode.sticky) {
5393                                        let e;
5394                                        for (let t = 0; t < o.length; t += 1)
5395                                            if (o[t] > -c) {
5396                                                e = t;
5397                                                break;
5398                                            }
5399                                        ((c =
5400                                            Math.abs(o[e] - c) < Math.abs(o[e - 1] - c) || 'next' === t.swipeDirection
5401                                                ? o[e]
5402                                                : o[e - 1]),
5403                                            (c = -c));
5404                                    }
5405                                    if (
5406                                        (f &&
5407                                            i('transitionEnd', () => {
5408                                                t.loopFix();
5409                                            }),
5410                                        0 !== t.velocity)
5411                                    ) {
5412                                        if (
5413                                            ((e = l
5414                                                ? Math.abs((-c - t.translate) / t.velocity)
5415                                                : Math.abs((c - t.translate) / t.velocity)),
5416                                            r.freeMode.sticky)
5417                                        ) {
5418                                            const s = Math.abs((l ? -c : c) - t.translate),
5419                                                a = t.slidesSizesGrid[t.activeIndex];
5420                                            e = s < a ? r.speed : s < 2 * a ? 1.5 * r.speed : 2.5 * r.speed;
5421                                        }
5422                                    } else if (r.freeMode.sticky) return void t.slideToClosest();
5423                                    (r.freeMode.momentumBounce && h
5424                                        ? (t.updateProgress(p),
5425                                          t.setTransition(e),
5426                                          t.setTranslate(c),
5427                                          t.transitionStart(!0, t.swipeDirection),
5428                                          (t.animating = !0),
5429                                          n.transitionEnd(() => {
5430                                              t &&
5431                                                  !t.destroyed &&
5432                                                  d.allowMomentumBounce &&
5433                                                  (a('momentumBounce'),
5434                                                  t.setTransition(r.speed),
5435                                                  setTimeout(() => {
5436                                                      (t.setTranslate(p),
5437                                                          n.transitionEnd(() => {
5438                                                              t && !t.destroyed && t.transitionEnd();
5439                                                          }));
5440                                                  }, 0));
5441                                          }))
5442                                        : t.velocity
5443                                          ? (a('_freeModeNoMomentumRelease'),
5444                                            t.updateProgress(c),
5445                                            t.setTransition(e),
5446                                            t.setTranslate(c),
5447                                            t.transitionStart(!0, t.swipeDirection),
5448                                            t.animating ||
5449                                                ((t.animating = !0),
5450                                                n.transitionEnd(() => {
5451                                                    t && !t.destroyed && t.transitionEnd();
5452                                                })))
5453                                          : t.updateProgress(c),
5454                                        t.updateActiveIndex(),
5455                                        t.updateSlidesClasses());
5456                                } else {
5457                                    if (r.freeMode.sticky) return void t.slideToClosest();
5458                                    r.freeMode && a('_freeModeNoMomentumRelease');
5459                                }
5460                                (!r.freeMode.momentum || c >= r.longSwipesMs) &&
5461                                    (t.updateProgress(), t.updateActiveIndex(), t.updateSlidesClasses());
5462                            }
5463                        },
5464                    },
5465                }));
5466        },
5467        function (e) {
5468            let t,
5469                s,
5470                a,
5471                { swiper: i, extendParams: r } = e;
5472            (r({ grid: { rows: 1, fill: 'column' } }),
5473                (i.grid = {
5474                    initSlides: (e) => {
5475                        const { slidesPerView: r } = i.params,
5476                            { rows: n, fill: l } = i.params.grid;
5477                        ((s = t / n),
5478                            (a = Math.floor(e / n)),
5479                            (t = Math.floor(e / n) === e / n ? e : Math.
5479ceil(e / n) * n),
5480                            'auto' !== r && 'row' === l && (t = Math.max(t, r * n)));
5481                    },
5482                    updateSlide: (e, r, n, l) => {
5483                        const { slidesPerGroup: o, spaceBetween: d } = i.params,
5484                            { rows: c, fill: p } = i.params.grid;
5485                        let u, h, m;
5486                        if ('row' === p && o > 1) {
5487                            const s = Math.floor(e / (o * c)),
5488                                a = e - c * o * s,
5489                                i = 0 === s ? o : Math.min(Math.ceil((n - s * c * o) / c), o);
5490                            ((m = Math.floor(a / i)),
5491                                (h = a - m * i + s * o),
5492                                (u = h + (m * t) / c),
5493                                r.css({ '-webkit-order': u, order: u }));
5494                        } else
5495                            'column' === p
5496                                ? ((h = Math.floor(e / c)),
5497                                  (m = e - h * c),
5498                                  (h > a || (h === a && m === c - 1)) && ((m += 1), m >= c && ((m = 0), (h += 1))))
5499                                : ((m = Math.floor(e / s)), (h = e - m * s));
5500                        r.css(l('margin-top'), 0 !== m ? d && `${d}px` : '');
5501                    },
5502                    updateWrapperSize: (e, s, a) => {
5503                        const { spaceBetween: r, centeredSlides: n, roundLengths: l } = i.params,
5504                            { rows: o } = i.params.grid;
5505                        if (
5506                            ((i.virtualSize = (e + r) * t),
5507                            (i.virtualSize = Math.ceil(i.virtualSize / o) - r),
5508                            i.$wrapperEl.css({ [a('width')]: `${i.virtualSize + r}px` }),
5509                            n)
5510                        ) {
5511                            s.splice(0, s.length);
5512                            const e = [];
5513                            for (let t = 0; t < s.length; t += 1) {
5514                                let a = s[t];
5515                                (l && (a = Math.floor(a)), s[t] < i.virtualSize + s[0] && e.push(a));
5516                            }
5517                            s.push(...e);
5518                        }
5519                    },
5520                }));
5521        },
5522        function (e) {
5523            let { swiper: t } = e;
5524            Object.assign(t, {
5525                appendSlide: K.bind(t),
5526                prependSlide: Z.bind(t),
5527                addSlide: Q.bind(t),
5528                removeSlide: J.bind(t),
5529                removeAllSlides: ee.bind(t),
5530            });
5531        },
5532        function (e) {
5533            let { swiper: t, extendParams: s, on: a } = e;
5534            (s({ fadeEffect: { crossFade: !1, transformEl: null } }),
5535                te({
5536                    effect: 'fade',
5537                    swiper: t,
5538                    on: a,
5539                    setTranslate: () => {
5540                        const { slides: e } = t,
5541                            s = t.params.fadeEffect;
5542                        for (let a = 0; a < e.length; a += 1) {
5543                            const e = t.slides.eq(a);
5544                            let i = -e[0].swiperSlideOffset;
5545                            t.params.virtualTranslate || (i -= t.translate);
5546                            let r = 0;
5547                            t.isHorizontal() || ((r = i), (i = 0));
5548                            const n = t.params.fadeEffect.crossFade
5549                                ? Math.max(1 - Math.abs(e[0].progress), 0)
5550                                : 1 + Math.min(Math.max(e[0].progress, -1), 0);
5551                            se(s, e).css({ opacity: n }).transform(`translate3d(${i}px, ${r}px, 0px)`);
5552                        }
5553                    },
5554                    setTransition: (e) => {
5555                        const { transformEl: s } = t.params.fadeEffect;
5556                        ((s ? t.slides.find(s) : t.slides).transition(e),
5557                            ae({ swiper: t, duration: e, transformEl: s, allSlides: !0 }));
5558                    },
5559                    overwriteParams: () => ({
5560                        slidesPerView: 1,
5561                        slidesPerGroup: 1,
5562                        watchSlidesProgress: !0,
5563                        spaceBetween: 0,
5564                        virtualTranslate: !t.params.cssMode,
5565                    }),
5566                }));
5567        },
5568        function (e) {
5569            let { swiper: t, extendParams: s, on: a } = e;
5570            s({ cubeEffect: { slideShadows: !0, shadow: !0, shadowOffset: 20, shadowScale: 0.94 } });
5571            const i = (e, t, s) => {
5572                let a = s ? e.find('.swiper-slide-shadow-left') : e.find('.swiper-slide-shadow-top'),
5573                    i = s ? e.find('.swiper-slide-shadow-right') : e.find('.swiper-slide-shadow-bottom');
5574                (0 === a.length &&
5575                    ((a = d(`<div class="swiper-slide-shadow-${s ? 'left' : 'top'}"></div>`)), e.append(a)),
5576                    0 === i.length &&
5577                        ((i = d(`<div class="swiper-slide-shadow-${s ? 'right' : 'bottom'}"></div>`)), e.append(i)),
5578                    a.length && (a[0].style.opacity = Math.max(-t, 0)),
5579                    i.length && (i[0].style.opacity = Math.max(t, 0)));
5580            };
5581            te({
5582                effect: 'cube',
5583                swiper: t,
5584                on: a,
5585                setTranslate: () => {
5586                    const {
5587                            $el: e,
5588                            $wrapperEl: s,
5589                            slides: a,
5590                            width: r,
5591                            height: n,
5592                            rtlTranslate: l,
5593                            size: o,
5594                            browser: c,
5595                        } = t,
5596                        p = t.params.cubeEffect,
5597                        u = t.isHorizontal(),
5598                        h = t.virtual && t.params.virtual.enabled;
5599                    let m,
5600                        f = 0;
5601                    p.shadow &&
5602                        (u
5603                            ? ((m = s.find('.swiper-cube-shadow')),
5604                              0 === m.length && ((m = d('<div class="swiper-cube-shadow"></div>')), s.append(m)),
5605                              m.css({ height: `${r}px` }))
5606                            : ((m = e.find('.swiper-cube-shadow')),
5607                              0 === m.length && ((m = d('<div class="swiper-cube-shadow"></div>')), e.append(m))));
5608                    for (let e = 0; e < a.length; e += 1) {
5609                        const t = a.eq(e);
5610                        let s = e;
5611                        h && (s = parseInt(t.attr('data-swiper-slide-index'), 10));
5612                        let r = 90 * s,
5613                            n = Math.floor(r / 360);
5614                        l && ((r = -r), (n = Math.floor(-r / 360)));
5615                        const d = Math.max(Math.min(t[0].progress, 1), -1);
5616                        let c = 0,
5617                            m = 0,
5618                            g = 0;
5619                        (s % 4 == 0
5620                            ? ((c = 4 * -n * o), (g = 0))
5621                            : (s - 1) % 4 == 0
5622                              ? ((c = 0), (g = 4 * -n * o))
5623                              : (s - 2) % 4 == 0
5624                                ? ((c = o + 4 * n * o), (g = o))
5625                                : (s - 3) % 4 == 0 && ((c = -o), (g = 3 * o + 4 * o * n)),
5626                            l && (c = -c),
5627                            u || ((m = c), (c = 0)));
5628                        const v = `rotateX(${u ? 0 : -r}deg) rotateY(${u ? r : 0}deg) translate3d(${c}
5628px, ${m}px, ${g}px)`;
5629                        (d <= 1 && d > -1 && ((f = 90 * s + 90 * d), l && (f = 90 * -s - 90 * d)),
5630                            t.transform(v),
5631                            p.slideShadows && i(t, d, u));
5632                    }
5633                    if (
5634                        (s.css({
5635                            '-webkit-transform-origin': `50% 50% -${o / 2}px`,
5636                            'transform-origin': `50% 50% -${o / 2}px`,
5637                        }),
5638                        p.shadow)
5639                    )
5640                        if (u)
5641                            m.transform(
5642                                `translate3d(0px, ${r / 2 + p.shadowOffset}px, ${-r / 2}px) rotateX(90deg) rotateZ(0deg) scale(${p.shadowScale})`
5643                            );
5644                        else {
5645                            const e = Math.abs(f) - 90 * Math.floor(Math.abs(f) / 90),
5646                                t =
5647                                    1.5 -
5648                                    (Math.sin((2 * e * Math.PI) / 360) / 2 + Math.cos((2 * e * Math.PI) / 360) / 2),
5649                                s = p.shadowScale,
5650                                a = p.shadowScale / t,
5651                                i = p.shadowOffset;
5652                            m.transform(
5653                                `scale3d(${s}, 1, ${a}) translate3d(0px, ${n / 2 + i}px, ${-n / 2 / a}px) rotateX(-90deg)`
5654                            );
5655                        }
5656                    const g = c.isSafari || c.isWebView ? -o / 2 : 0;
5657                    (s.transform(
5658                        `translate3d(0px,0,${g}px) rotateX(${t.isHorizontal() ? 0 : f}deg) rotateY(${t.isHorizontal() ? -f : 0}deg)`
5659                    ),
5660                        s[0].style.setProperty('--swiper-cube-translate-z', `${g}px`));
5661                },
5662                setTransition: (e) => {
5663                    const { $el: s, slides: a } = t;
5664                    (a
5665                        .transition(e)
5666                        .find(
5667                            '.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left'
5668                        )
5669                        .transition(e),
5670                        t.params.cubeEffect.shadow && !t.isHorizontal() && s.find('.swiper-cube-shadow').transition(e));
5671                },
5672                recreateShadows: () => {
5673                    const e = t.isHorizontal();
5674                    t.slides.each((t) => {
5675                        const s = Math.max(Math.min(t.progress, 1), -1);
5676                        i(d(t), s, e);
5677                    });
5678                },
5679                getEffectParams: () => t.params.cubeEffect,
5680                perspective: () => !0,
5681                overwriteParams: () => ({
5682                    slidesPerView: 1,
5683                    slidesPerGroup: 1,
5684                    watchSlidesProgress: !0,
5685                    resistanceRatio: 0,
5686                    spaceBetween: 0,
5687                    centeredSlides: !1,
5688                    virtualTranslate: !0,
5689                }),
5690            });
5691        },
5692        function (e) {
5693            let { swiper: t, extendParams: s, on: a } = e;
5694            s({ flipEffect: { slideShadows: !0, limitRotation: !0, transformEl: null } });
5695            const i = (e, s, a) => {
5696                let i = t.isHorizontal() ? e.find('.swiper-slide-shadow-left') : e.find('.swiper-slide-shadow-top'),
5697                    r = t.isHorizontal() ? e.find('.swiper-slide-shadow-right') : e.find('.swiper-slide-shadow-bottom');
5698                (0 === i.length && (i = ie(a, e, t.isHorizontal() ? 'left' : 'top')),
5699                    0 === r.length && (r = ie(a, e, t.isHorizontal() ? 'right' : 'bottom')),
5700                    i.length && (i[0].style.opacity = Math.max(-s, 0)),
5701                    r.length && (r[0].style.opacity = Math.max(s, 0)));
5702            };
5703            te({
5704                effect: 'flip',
5705                swiper: t,
5706                on: a,
5707                setTranslate: () => {
5708                    const { slides: e, rtlTranslate: s } = t,
5709                        a = t.params.flipEffect;
5710                    for (let r = 0; r < e.length; r += 1) {
5711                        const n = e.eq(r);
5712                        let l = n[0].progress;
5713                        t.params.flipEffect.limitRotation && (l = Math.max(Math.min(n[0].progress, 1), -1));
5714                        const o = n[0].swiperSlideOffset;
5715                        let d = -180 * l,
5716                            c = 0,
5717                            p = t.params.cssMode ? -o - t.translate : -o,
5718                            u = 0;
5719                        (t.isHorizontal() ? s && (d = -d) : ((u = p), (p = 0), (c = -d), (d = 0)),
5720                            (n[0].style.zIndex = -Math.abs(Math.round(l)) + e.length),
5721                            a.slideShadows && i(n, l, a));
5722                        const h = `translate3d(${p}px, ${u}
5722px, 0px) rotateX(${c}deg) rotateY(${d}deg)`;
5723                        se(a, n).transform(h);
5724                    }
5725                },
5726                setTransition: (e) => {
5727                    const { transformEl: s } = t.params.flipEffect;
5728                    ((s ? t.slides.find(s) : t.slides)
5729                        .transition(e)
5730                        .find(
5731                            '.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left'
5732                        )
5733                        .transition(e),
5734                        ae({ swiper: t, duration: e, transformEl: s }));
5735                },
5736                recreateShadows: () => {
5737                    const e = t.params.flipEffect;
5738                    t.slides.each((s) => {
5739                        const a = d(s);
5740                        let r = a[0].progress;
5741                        (t.params.flipEffect.limitRotation && (r = Math.max(Math.min(s.progress, 1), -1)), i(a, r, e));
5742                    });
5743                },
5744                getEffectParams: () => t.params.flipEffect,
5745                perspective: () => !0,
5746                overwriteParams: () => ({
5747                    slidesPerView: 1,
5748                    slidesPerGroup: 1,
5749                    watchSlidesProgress: !0,
5750                    spaceBetween: 0,
5751                    virtualTranslate: !t.params.cssMode,
5752                }),
5753            });
5754        },
5755        function (e) {
5756            let { swiper: t, extendParams: s, on: a } = e;
5757            (s({
5758                coverflowEffect: {
5759                    rotate: 50,
5760                    stretch: 0,
5761                    depth: 100,
5762                    scale: 1,
5763                    modifier: 1,
5764                    slideShadows: !0,
5765                    transformEl: null,
5766                },
5767            }),
5768                te({
5769                    effect: 'coverflow',
5770                    swiper: t,
5771                    on: a,
5772                    setTranslate: () => {
5773                        const { width: e, height: s, slides: a, slidesSizesGrid: i } = t,
5774                            r = t.params.coverflowEffect,
5775                            n = t.isHorizontal(),
5776                            l = t.translate,
5777                            o = n ? e / 2 - l : s / 2 - l,
5778                            d = n ? r.rotate : -r.rotate,
5779                            c = r.depth;
5780                        for (let e = 0, t = a.length; e < t; e += 1) {
5781                            const t = a.eq(e),
5782                                s = i[e],
5783                                l = (o - t[0].swiperSlideOffset - s / 2) / s,
5784                                p = 'function' == typeof r.modifier ? r.modifier(l) : l * r.modifier;
5785                            let u = n ? d * p : 0,
5786                                h = n ? 0 : d * p,
5787                                m = -c * Math.abs(p),
5788                                f = r.stretch;
5789                            'string' == typeof f && -1 !== f.indexOf('%') && (f = (parseFloat(r.stretch) / 100) * s);
5790                            let g = n ? 0 : f * p,
5791                                v = n ? f * p : 0,
5792                                w = 1 - (1 - r.scale) * Math.abs(p);
5793                            (Math.abs(v) < 0.001 && (v = 0),
5794                                Math.abs(g) < 0.001 && (g = 0),
5795                                Math.abs(m) < 0.001 && (m = 0),
5796                                Math.abs(u) < 0.001 && (u = 0),
5797                                Math.abs(h) < 0.001 && (h = 0),
5798                                Math.abs(w) < 0.001 && (w = 0));
5799                            const b = `translate3d(${v}px,${g}px,${m}px)  rotateX(${h}deg) rotateY(${u}deg) scale(${w})`;
5800                            if (
5801                                (se(r, t).transform(b),
5802                                (t[0].style.zIndex = 1 - Math.abs(Math.round(p))),
5803                                r.slideShadows)
5804                            ) {
5805                                let e = n ? t.find('.swiper-slide-shadow-left') : t.find('.swiper-slide-shadow-top'),
5806                                    s = n
5807                                        ? t.find('.swiper-slide-shadow-right')
5808                                        : t.find('.swiper-slide-shadow-bottom');
5809                                (0 === e.length && (e = ie(r, t, n ? 'left' : 'top')),
5810                                    0 === s.length && (s = ie(r, t, n ? 'right' : 'bottom')),
5811                                    e.length && (e[0].style.opacity = p > 0 ? p : 0),
5812                                    s.length && (s[0].style.opacity = -p > 0 ? -p : 0));
5813                            }
5814                        }
5815                    },
5816                    setTransition: (e) => {
5817                        const { transformEl: s } = t.params.coverflowEffect;
5818                        (s ? t.slides.find(s) : t.slides)
5819                            .transition(e)
5820                            .find(
5821                                '.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left'
5822                            )
5823                            .transition(e);
5824                    },
5825                    perspective: () => !0,
5826                    overwriteParams: () => ({ watchSlidesProgress: !0 }),
5827                }));
5828        },
5829        function (e) {
5830            let { swiper: t, extendParams: s, on: a } = e;
5831            s({
5832                creativeEffect: {
5833                    transformEl: null,
5834                    limitProgress: 1,
5835                    shadowPerProgress: !1,
5836                    progressMultiplier: 1,
5837                    perspective: !0,
5838                    prev: { translate: [0, 0, 0], rotate: [0, 0, 0], opacity: 1, scale: 1 },
5839                    next: { translate: [0, 0, 0], rotate: [0, 0, 0], opacity: 1, scale: 1 },
5840                },
5841            });
5842            const i = (e) => ('string' == typeof e ? e : `${e}px`);
5843            te({
5844                effect: 'creative',
5845                swiper: t,
5846                on: a,
5847                setTranslate: () => {
5848                    const { slides: e, $wrapperEl: s, slidesSizesGrid: a } = t,
5849                        r = t.params.creativeEffect,
5850                        { progressMultiplier: n } = r,
5851                        l = t.params.centeredSlides;
5852                    if (l) {
5853                        const e = a[0] / 2 - t.params.slidesOffsetBefore || 0;
5854                        s.transform(`translateX(calc(50% - ${e}px))`);
5855                    }
5856                    for (let s = 0; s < e.length; s += 1) {
5857                        const a = e.eq(s),
5858                            o = a[0].progress,
5859                            d = Math.min(Math.max(a[0].progress, -r.limitProgress), r.limitProgress);
5860                        let c = d;
5861                        l || (c = Math.min(Math.max(a[0].originalProgress, -r.limitProgress), r.limitProgress));
5862                        const p = a[0].swiperSlideOffset,
5863                            u = [t.params.cssMode ? -p - t.translate : -p, 0, 0],
5864                            h = [0, 0, 0];
5865                        let m = !1;
5866                        t.isHorizontal() || ((u[1] = u[0]), (u[0] = 0));
5867                        let f = { translate: [0, 0, 0], rotate: [0, 0, 0], scale: 1, opacity: 1 };
5868                        (d < 0 ? ((f = r.next), (m = !0)) : d > 0 && ((f = r.prev), (m = !0)),
5869                            u.forEach((e, t) => {
5870                                u[t] = `calc(${e}px + (${i(f.translate[t])} * ${Math.abs(d * n)}))`;
5871                            }),
5872                            h.forEach((e, t) => {
5873                                h[t] = f.rotate[t] * Math.abs(d * n);
5874                            }),
5875                            (a[0].style.zIndex = -Math.abs(Math.round(o)) + e.length));
5876                        const g = u.join(', '),
5877                            v = `rotateX(${h[0]}deg) rotateY(${h[1]}deg) rotateZ(${h[2]}deg)`,
5878                            w = c < 0 ? `scale(${1 + (1 - f.scale) * c * n})` : `scale(${1 - (1 - f.scale) * c * n})`,
5879                            b = c < 0 ? 1 + (1 - f.opacity) * c * n : 1 - (1 - f.opacity) * c * n,
5880                            x = `translate3d(${g}) ${v} ${w}`;
5881                        if ((m && f.shadow) || !m) {
5882                            let e = a.children('.swiper-slide-shadow');
5883                            if ((0 === e.length && f.shadow && (e = ie(r, a)), e.length)) {
5884                                const t = r.shadowPerProgress ? d * (1 / r.limitProgress) : d;
5885                                e[0].style.opacity = Math.min(Math.max(Math.abs(t), 0), 1);
5886                            }
5887                        }
5888                        const y = se(r, a);
5889                        (y.transform(x).css({ opacity: b }), f.origin && y.css('transform-origin', f.origin));
5890                    }
5891                },
5892                setTransition: (e) => {
5893                    const { transformEl: s } = t.params.creativeEffect;
5894                    ((s ? t.slides.find(s) : t.slides).transition(e).find('.swiper-slide-shadow').transition(e),
5895                        ae({ swiper: t, duration: e, transformEl: s, allSlides: !0 }));
5896                },
5897                perspective: () => t.params.creativeEffect.perspective,
5898                overwriteParams: () => ({ watchSlidesProgress: !0, virtualTranslate: !t.params.cssMode }),
5899            });
5900        },
5901        function (e) {
5902            let { swiper: t, extendParams: s, on: a } = e;
5903            (s({
5904                cardsEffect: { slideShadows: !0, transformEl: null, rotate: !0, perSlideRotate: 2, perSlideOffset: 8 },
5905            }),
5906                te({
5907                    effect: 'cards',
5908                    swiper: t,
5909                    on: a,
5910                    setTranslate: () => {
5911                        const { slides: e, activeIndex: s } = t,
5912                            a = t.params.cardsEffect,
5913                            { startTranslate: i, isTouched: r } = t.touchEventsData,
5914                            n = t.translate;
5915                        for (let l = 0; l < e.length; l += 1) {
5916                            const o = e.eq(l),
5917                                d = o[0].progress,
5918                                c = Math.min(Math.max(d, -4), 4);
5919                            let p = o[0].swiperSlideOffset;
5920                            (t.params.centeredSlides &&
5921                                !t.params.cssMode &&
5922                                t.$wrapperEl.transform(`translateX(${t.minTranslate()}px)`),
5923                                t.params.centeredSlides && t.params.cssMode && (p -= e[0].swiperSlideOffset));
5924                            let u = t.params.cssMode ? -p - t.translate : -p,
5925                                h = 0;
5926                            const m = -100 * Math.abs(c);
5927                            let f = 1,
5928                                g = -a.perSlideRotate * c,
5929                                v = a.perSlideOffset - 0.75 * Math.abs(c);
5930                            const w = t.virtual && t.params.virtual.enabled ? t.virtual.from + l : l,
5931                                b = (w === s || w === s - 1) && c > 0 && c < 1 && (r || t.params.cssMode) && n < i,
5932                                x = (w === s || w === s + 1) && c < 0 && c > -1 && (r || t.params.cssMode) && n > i;
5933                            if (b || x) {
5934                                const e = (1 - Math.abs((Math.abs(c) - 0.5) / 0.5)) ** 0.5;
5935                                ((g += -28 * c * e), (f += -0.5 * e), (v += 96 * e), (h = -25 * e * Math.abs(c) + '%'));
5936                            }
5937                            if (
5938                                ((u =
5939                                    c < 0
5940                                        ? `calc(${u}px + (${v * Math.abs(c)}%))`
5941                                        : c > 0
5942                                          ? `calc(${u}px + (-${v * Math.abs(c)}%))`
5943                                          : `${u}px`),
5944                                !t.isHorizontal())
5945                            ) {
5946                                const e = h;
5947                                ((h = u), (u = e));
5948                            }
5949                            const y = c < 0 ? '' + (1 + (1 - f) * c) : '' + (1 - (1 - f) * c),
5950                                E = `\n        translate3d(${u}, ${h}, ${m}px)\n        rotateZ(${a.rotate ? g : 0}deg)\n        scale(${y})\n      `;
5951                            if (a.slideShadows) {
5952                                let e = o.find('.swiper-slide-shadow');
5953                                (0 === e.length && (e = ie(a, o)),
5954                                    e.length &&
5955                                        (e[0].style.opacity = Math.min(Math.max((Math.abs(c) - 0.5) / 0.5, 0), 1)));
5956                            }
5957                            o[0].style.zIndex = -Math.abs(Math.round(d)) + e.length;
5958                            se(a, o).transform(E);
5959                        }
5960                    },
5961                    setTransition: (e) => {
5962                        const { transformEl: s } = t.params.cardsEffect;
5963                        ((s ? t.slides.find(s) : t.slides).transition(e).find('.swiper-slide-shadow').transition(e),
5964                            ae({ swiper: t, duration: e, transformEl: s }));
5965                    },
5966                    perspective: () => !0,
5967                    overwriteParams: () => ({ watchSlidesProgress: !0, virtualTranslate: !t.params.cssMode }),
5968                }));
5969        },
5970    ];
5971    return (V.use(re), V);
5972});
5973//# sourceMappingURL=swiper-bundle.min.js.map

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.