PageSourceSearch

https://deepcool.com/public/new/js/own/dpc.js

js deepcool.com collected 2026-09-28 08:06:50 UTC 167,052 bytes, 4,044 lines download raw bytes

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

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.