PageSourceSearch

https://www.scfai.edu.cn/js/swiper.min.js

js scfai.edu.cn collected 2026-10-02 07:17:05 UTC 228,546 bytes, 4,987 lines download raw bytes

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

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.