PageSourceSearch

https://puretive.co/cdn/shop/t/92/assets/swiper-bundle.min.js?v=10779350003255520001788177845

js puretive.co collected 2026-09-26 01:09:09 UTC 253,371 bytes, 7,445 lines download raw bytes

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