/*!

* imagesLoaded PACKAGED v3.1.8
* JavaScript is all like "You images are done yet or what?"
* MIT License
*/

(function() {

function e() {}
function t(e, t) {
  for (var n = e.length; n--; ) if (e[n].listener === t) return n;
  return -1;
}
function n(e) {
  return function() {
    return this[e].apply(this, arguments);
  };
}
var i = e.prototype,
  r = this,
  o = r.EventEmitter;
(i.getListeners = function(e) {
  var t,
    n,
    i = this._getEvents();
  if ("object" == typeof e) {
    t = {};
    for (n in i) i.hasOwnProperty(n) && e.test(n) && (t[n] = i[n]);
  } else t = i[e] || (i[e] = []);
  return t;
}),
  (i.flattenListeners = function(e) {
    var t,
      n = [];
    for (t = 0; e.length > t; t += 1) n.push(e[t].listener);
    return n;
  }),
  (i.getListenersAsObject = function(e) {
    var t,
      n = this.getListeners(e);
    return n instanceof Array && ((t = {}), (t[e] = n)), t || n;
  }),
  (i.addListener = function(e, n) {
    var i,
      r = this.getListenersAsObject(e),
      o = "object" == typeof n;
    for (i in r)
      r.hasOwnProperty(i) &&
        -1 === t(r[i], n) &&
        r[i].push(o ? n : { listener: n, once: !1 });
    return this;
  }),
  (i.on = n("addListener")),
  (i.addOnceListener = function(e, t) {
    return this.addListener(e, { listener: t, once: !0 });
  }),
  (i.once = n("addOnceListener")),
  (i.defineEvent = function(e) {
    return this.getListeners(e), this;
  }),
  (i.defineEvents = function(e) {
    for (var t = 0; e.length > t; t += 1) this.defineEvent(e[t]);
    return this;
  }),
  (i.removeListener = function(e, n) {
    var i,
      r,
      o = this.getListenersAsObject(e);
    for (r in o)
      o.hasOwnProperty(r) &&
        ((i = t(o[r], n)), -1 !== i && o[r].splice(i, 1));
    return this;
  }),
  (i.off = n("removeListener")),
  (i.addListeners = function(e, t) {
    return this.manipulateListeners(!1, e, t);
  }),
  (i.removeListeners = function(e, t) {
    return this.manipulateListeners(!0, e, t);
  }),
  (i.manipulateListeners = function(e, t, n) {
    var i,
      r,
      o = e ? this.removeListener : this.addListener,
      s = e ? this.removeListeners : this.addListeners;
    if ("object" != typeof t || t instanceof RegExp)
      for (i = n.length; i--; ) o.call(this, t, n[i]);
    else
      for (i in t)
        t.hasOwnProperty(i) &&
          (r = t[i]) &&
          ("function" == typeof r ? o.call(this, i, r) : s.call(this, i, r));
    return this;
  }),
  (i.removeEvent = function(e) {
    var t,
      n = typeof e,
      i = this._getEvents();
    if ("string" === n) delete i[e];
    else if ("object" === n)
      for (t in i) i.hasOwnProperty(t) && e.test(t) && delete i[t];
    else delete this._events;
    return this;
  }),
  (i.removeAllListeners = n("removeEvent")),
  (i.emitEvent = function(e, t) {
    var n,
      i,
      r,
      o,
      s = this.getListenersAsObject(e);
    for (r in s)
      if (s.hasOwnProperty(r))
        for (i = s[r].length; i--; )
          (n = s[r][i]),
            n.once === !0 && this.removeListener(e, n.listener),
            (o = n.listener.apply(this, t || [])),
            o === this._getOnceReturnValue() &&
              this.removeListener(e, n.listener);
    return this;
  }),
  (i.trigger = n("emitEvent")),
  (i.emit = function(e) {
    var t = Array.prototype.slice.call(arguments, 1);
    return this.emitEvent(e, t);
  }),
  (i.setOnceReturnValue = function(e) {
    return (this._onceReturnValue = e), this;
  }),
  (i._getOnceReturnValue = function() {
    return this.hasOwnProperty("_onceReturnValue")
      ? this._onceReturnValue
      : !0;
  }),
  (i._getEvents = function() {
    return this._events || (this._events = {});
  }),
  (e.noConflict = function() {
    return (r.EventEmitter = o), e;
  }),
  "function" == typeof define && define.amd
    ? define("eventEmitter/EventEmitter", [], function() {
        return e;
      })
    : "object" == typeof module && module.exports
    ? (module.exports = e)
    : (this.EventEmitter = e);

}.call(this),

(function(e) {
  function t(t) {
    var n = e.event;
    return (n.target = n.target || n.srcElement || t), n;
  }
  var n = document.documentElement,
    i = function() {};
  n.addEventListener
    ? (i = function(e, t, n) {
        e.addEventListener(t, n, !1);
      })
    : n.attachEvent &&
      (i = function(e, n, i) {
        (e[n + i] = i.handleEvent
          ? function() {
              var n = t(e);
              i.handleEvent.call(i, n);
            }
          : function() {
              var n = t(e);
              i.call(e, n);
            }),
          e.attachEvent("on" + n, e[n + i]);
      });
  var r = function() {};
  n.removeEventListener
    ? (r = function(e, t, n) {
        e.removeEventListener(t, n, !1);
      })
    : n.detachEvent &&
      (r = function(e, t, n) {
        e.detachEvent("on" + t, e[t + n]);
        try {
          delete e[t + n];
        } catch (i) {
          e[t + n] = void 0;
        }
      });
  var o = { bind: i, unbind: r };
  "function" == typeof define && define.amd
    ? define("eventie/eventie", o)
    : (e.eventie = o);
})(this),
(function(e, t) {
  "function" == typeof define && define.amd
    ? define(["eventEmitter/EventEmitter", "eventie/eventie"], function(
        n,
        i
      ) {
        return t(e, n, i);
      })
    : "object" == typeof exports
    ? (module.exports = t(
        e,
        require("wolfy87-eventemitter"),
        require("eventie")
      ))
    : (e.imagesLoaded = t(e, e.EventEmitter, e.eventie));
})(window, function(e, t, n) {
  function i(e, t) {
    for (var n in t) e[n] = t[n];
    return e;
  }
  function r(e) {
    return "[object Array]" === d.call(e);
  }
  function o(e) {
    var t = [];
    if (r(e)) t = e;
    else if ("number" == typeof e.length)
      for (var n = 0, i = e.length; i > n; n++) t.push(e[n]);
    else t.push(e);
    return t;
  }
  function s(e, t, n) {
    if (!(this instanceof s)) return new s(e, t);
    "string" == typeof e && (e = document.querySelectorAll(e)),
      (this.elements = o(e)),
      (this.options = i({}, this.options)),
      "function" == typeof t ? (n = t) : i(this.options, t),
      n && this.on("always", n),
      this.getImages(),
      a && (this.jqDeferred = new a.Deferred());
    var r = this;
    setTimeout(function() {
      r.check();
    });
  }
  function f(e) {
    this.img = e;
  }
  function c(e) {
    (this.src = e), (v[e] = this);
  }
  var a = e.jQuery,
    u = e.console,
    h = u !== void 0,
    d = Object.prototype.toString;
  (s.prototype = new t()),
    (s.prototype.options = {}),
    (s.prototype.getImages = function() {
      this.images = [];
      for (var e = 0, t = this.elements.length; t > e; e++) {
        var n = this.elements[e];
        "IMG" === n.nodeName && this.addImage(n);
        var i = n.nodeType;
        if (i && (1 === i || 9 === i || 11 === i))
          for (
            var r = n.querySelectorAll("img"), o = 0, s = r.length;
            s > o;
            o++
          ) {
            var f = r[o];
            this.addImage(f);
          }
      }
    }),
    (s.prototype.addImage = function(e) {
      var t = new f(e);
      this.images.push(t);
    }),
    (s.prototype.check = function() {
      function e(e, r) {
        return (
          t.options.debug && h && u.log("confirm", e, r),
          t.progress(e),
          n++,
          n === i && t.complete(),
          !0
        );
      }
      var t = this,
        n = 0,
        i = this.images.length;
      if (((this.hasAnyBroken = !1), !i)) return this.complete(), void 0;
      for (var r = 0; i > r; r++) {
        var o = this.images[r];
        o.on("confirm", e), o.check();
      }
    }),
    (s.prototype.progress = function(e) {
      this.hasAnyBroken = this.hasAnyBroken || !e.isLoaded;
      var t = this;
      setTimeout(function() {
        t.emit("progress", t, e),
          t.jqDeferred && t.jqDeferred.notify && t.jqDeferred.notify(t, e);
      });
    }),
    (s.prototype.complete = function() {
      var e = this.hasAnyBroken ? "fail" : "done";
      this.isComplete = !0;
      var t = this;
      setTimeout(function() {
        if ((t.emit(e, t), t.emit("always", t), t.jqDeferred)) {
          var n = t.hasAnyBroken ? "reject" : "resolve";
          t.jqDeferred[n](t);
        }
      });
    }),
    a &&
      (a.fn.imagesLoaded = function(e, t) {
        var n = new s(this, e, t);
        return n.jqDeferred.promise(a(this));
      }),
    (f.prototype = new t()),
    (f.prototype.check = function() {
      var e = v[this.img.src] || new c(this.img.src);
      if (e.isConfirmed)
        return this.confirm(e.isLoaded, "cached was confirmed"), void 0;
      if (this.img.complete && void 0 !== this.img.naturalWidth)
        return (
          this.confirm(0 !== this.img.naturalWidth, "naturalWidth"), void 0
        );
      var t = this;
      e.on("confirm", function(e, n) {
        return t.confirm(e.isLoaded, n), !0;
      }),
        e.check();
    }),
    (f.prototype.confirm = function(e, t) {
      (this.isLoaded = e), this.emit("confirm", this, t);
    });
  var v = {};
  return (
    (c.prototype = new t()),
    (c.prototype.check = function() {
      if (!this.isChecked) {
        var e = new Image();
        n.bind(e, "load", this),
          n.bind(e, "error", this),
          (e.src = this.src),
          (this.isChecked = !0);
      }
    }),
    (c.prototype.handleEvent = function(e) {
      var t = "on" + e.type;
      this[t] && this[t](e);
    }),
    (c.prototype.onload = function(e) {
      this.confirm(!0, "onload"), this.unbindProxyEvents(e);
    }),
    (c.prototype.onerror = function(e) {
      this.confirm(!1, "onerror"), this.unbindProxyEvents(e);
    }),
    (c.prototype.confirm = function(e, t) {
      (this.isConfirmed = !0),
        (this.isLoaded = e),
        this.emit("confirm", this, t);
    }),
    (c.prototype.unbindProxyEvents = function(e) {
      n.unbind(e.target, "load", this), n.unbind(e.target, "error", this);
    }),
    s
  );
}));

/*

* jQuery Easing v1.3.2 - http://gsgd.co.uk/sandbox/jquery/easing/
* Open source under the BSD License.
* Copyright © 2008 George McGinley Smith
* All rights reserved.
* https://raw.github.com/gdsmith/jquery-easing/master/LICENSE
*/

(function(h) {

h.easing.jswing = h.easing.swing;
h.extend(h.easing, {
  def: "easeOutQuad",
  swing: function(e, a, c, b, d) {
    return h.easing[h.easing.def](e, a, c, b, d);
  },
  easeInQuad: function(e, a, c, b, d) {
    return b * (a /= d) * a + c;
  },
  easeOutQuad: function(e, a, c, b, d) {
    return -b * (a /= d) * (a - 2) + c;
  },
  easeInOutQuad: function(e, a, c, b, d) {
    return 1 > (a /= d / 2)
      ? (b / 2) * a * a + c
      : (-b / 2) * (--a * (a - 2) - 1) + c;
  },
  easeInCubic: function(e, a, c, b, d) {
    return b * (a /= d) * a * a + c;
  },
  easeOutCubic: function(e, a, c, b, d) {
    return b * ((a = a / d - 1) * a * a + 1) + c;
  },
  easeInOutCubic: function(e, a, c, b, d) {
    return 1 > (a /= d / 2)
      ? (b / 2) * a * a * a + c
      : (b / 2) * ((a -= 2) * a * a + 2) + c;
  },
  easeInQuart: function(e, a, c, b, d) {
    return b * (a /= d) * a * a * a + c;
  },
  easeOutQuart: function(e, a, c, b, d) {
    return -b * ((a = a / d - 1) * a * a * a - 1) + c;
  },
  easeInOutQuart: function(e, a, c, b, d) {
    return 1 > (a /= d / 2)
      ? (b / 2) * a * a * a * a + c
      : (-b / 2) * ((a -= 2) * a * a * a - 2) + c;
  },
  easeInQuint: function(e, a, c, b, d) {
    return b * (a /= d) * a * a * a * a + c;
  },
  easeOutQuint: function(e, a, c, b, d) {
    return b * ((a = a / d - 1) * a * a * a * a + 1) + c;
  },
  easeInOutQuint: function(e, a, c, b, d) {
    return 1 > (a /= d / 2)
      ? (b / 2) * a * a * a * a * a + c
      : (b / 2) * ((a -= 2) * a * a * a * a + 2) + c;
  },
  easeInSine: function(e, a, c, b, d) {
    return -b * Math.cos((a / d) * (Math.PI / 2)) + b + c;
  },
  easeOutSine: function(e, a, c, b, d) {
    return b * Math.sin((a / d) * (Math.PI / 2)) + c;
  },
  easeInOutSine: function(e, a, c, b, d) {
    return (-b / 2) * (Math.cos((Math.PI * a) / d) - 1) + c;
  },
  easeInExpo: function(e, a, c, b, d) {
    return 0 == a ? c : b * Math.pow(2, 10 * (a / d - 1)) + c;
  },
  easeOutExpo: function(e, a, c, b, d) {
    return a == d ? c + b : b * (-Math.pow(2, (-10 * a) / d) + 1) + c;
  },
  easeInOutExpo: function(e, a, c, b, d) {
    return 0 == a
      ? c
      : a == d
      ? c + b
      : 1 > (a /= d / 2)
      ? (b / 2) * Math.pow(2, 10 * (a - 1)) + c
      : (b / 2) * (-Math.pow(2, -10 * --a) + 2) + c;
  },
  easeInCirc: function(e, a, c, b, d) {
    return -b * (Math.sqrt(1 - (a /= d) * a) - 1) + c;
  },
  easeOutCirc: function(e, a, c, b, d) {
    return b * Math.sqrt(1 - (a = a / d - 1) * a) + c;
  },
  easeInOutCirc: function(e, a, c, b, d) {
    return 1 > (a /= d / 2)
      ? (-b / 2) * (Math.sqrt(1 - a * a) - 1) + c
      : (b / 2) * (Math.sqrt(1 - (a -= 2) * a) + 1) + c;
  },
  easeInElastic: function(e, a, c, b, d) {
    e = 1.70158;
    var f = 0,
      g = b;
    if (0 == a) return c;
    if (1 == (a /= d)) return c + b;
    f || (f = 0.3 * d);
    g < Math.abs(b)
      ? ((g = b), (e = f / 4))
      : (e = (f / (2 * Math.PI)) * Math.asin(b / g));
    return (
      -(
        g *
        Math.pow(2, 10 * --a) *
        Math.sin((2 * (a * d - e) * Math.PI) / f)
      ) + c
    );
  },
  easeOutElastic: function(e, a, c, b, d) {
    e = 1.70158;
    var f = 0,
      g = b;
    if (0 == a) return c;
    if (1 == (a /= d)) return c + b;
    f || (f = 0.3 * d);
    g < Math.abs(b)
      ? ((g = b), (e = f / 4))
      : (e = (f / (2 * Math.PI)) * Math.asin(b / g));
    return (
      g * Math.pow(2, -10 * a) * Math.sin((2 * (a * d - e) * Math.PI) / f) +
      b +
      c
    );
  },
  easeInOutElastic: function(e, a, c, b, d) {
    e = 1.70158;
    var f = 0,
      g = b;
    if (0 == a) return c;
    if (2 == (a /= d / 2)) return c + b;
    f || (f = 0.3 * d * 1.5);
    g < Math.abs(b)
      ? ((g = b), (e = f / 4))
      : (e = (f / (2 * Math.PI)) * Math.asin(b / g));
    return 1 > a
      ? -0.5 *
          g *
          Math.pow(2, 10 * --a) *
          Math.sin((2 * (a * d - e) * Math.PI) / f) +
          c
      : g *
          Math.pow(2, -10 * --a) *
          Math.sin((2 * (a * d - e) * Math.PI) / f) *
          0.5 +
          b +
          c;
  },
  easeInBack: function(e, a, c, b, d, f) {
    void 0 == f && (f = 1.70158);
    return b * (a /= d) * a * ((f + 1) * a - f) + c;
  },
  easeOutBack: function(e, a, c, b, d, f) {
    void 0 == f && (f = 1.70158);
    return b * ((a = a / d - 1) * a * ((f + 1) * a + f) + 1) + c;
  },
  easeInOutBack: function(e, a, c, b, d, f) {
    void 0 == f && (f = 1.70158);
    return 1 > (a /= d / 2)
      ? (b / 2) * a * a * (((f *= 1.525) + 1) * a - f) + c
      : (b / 2) * ((a -= 2) * a * (((f *= 1.525) + 1) * a + f) + 2) + c;
  },
  easeInBounce: function(e, a, c, b, d) {
    return b - h.easing.easeOutBounce(e, d - a, 0, b, d) + c;
  },
  easeOutBounce: function(e, a, c, b, d) {
    return (a /= d) < 1 / 2.75
      ? 7.5625 * b * a * a + c
      : a < 2 / 2.75
      ? b * (7.5625 * (a -= 1.5 / 2.75) * a + 0.75) + c
      : a < 2.5 / 2.75
      ? b * (7.5625 * (a -= 2.25 / 2.75) * a + 0.9375) + c
      : b * (7.5625 * (a -= 2.625 / 2.75) * a + 0.984375) + c;
  },
  easeInOutBounce: function(e, a, c, b, d) {
    return a < d / 2
      ? 0.5 * h.easing.easeInBounce(e, 2 * a, 0, b, d) + c
      : 0.5 * h.easing.easeOutBounce(e, 2 * a - d, 0, b, d) + 0.5 * b + c;
  }
});

})(jQuery);

/*

    _ _      _       _
___| (_) ___| | __  (_)___

/ __| | |/ __| |/ / | / __| __ \ | | (__| < _ | __ \ |__/|_|__||_(_)/ |_/

                  |__/

Version: 1.9.0
 Author: Ken Wheeler
Website: http://kenwheeler.github.io
   Docs: http://kenwheeler.github.io/slick
   Repo: http://github.com/kenwheeler/slick
 Issues: http://github.com/kenwheeler/slick/issues

*/

(function(i) {

"use strict";
"function" == typeof define && define.amd
  ? define(["jquery"], i)
  : "undefined" != typeof exports
  ? (module.exports = i(require("jquery")))
  : i(jQuery);

})(function(i) {

"use strict";
var e = window.Slick || {};
(e = (function() {
  function e(e, o) {
    var s,
      n = this;
    (n.defaults = {
      accessibility: !0,
      adaptiveHeight: !1,
      appendArrows: i(e),
      appendDots: i(e),
      arrows: !0,
      asNavFor: null,
      prevArrow:
        '<button class="slick-prev" aria-label="Previous" type="button">Previous</button>',
      nextArrow:
        '<button class="slick-next" aria-label="Next" type="button">Next</button>',
      autoplay: !1,
      autoplaySpeed: 3e3,
      centerMode: !1,
      centerPadding: "50px",
      cssEase: "ease",
      customPaging: function(e, t) {
        return i('<button type="button" />').text(t + 1);
      },
      dots: !1,
      dotsClass: "slick-dots",
      draggable: !0,
      easing: "linear",
      edgeFriction: 0.35,
      fade: !1,
      focusOnSelect: !1,
      focusOnChange: !1,
      infinite: !0,
      initialSlide: 0,
      lazyLoad: "ondemand",
      mobileFirst: !1,
      pauseOnHover: !0,
      pauseOnFocus: !0,
      pauseOnDotsHover: !1,
      respondTo: "window",
      responsive: null,
      rows: 1,
      rtl: !1,
      slide: "",
      slidesPerRow: 1,
      slidesToShow: 1,
      slidesToScroll: 1,
      speed: 500,
      swipe: !0,
      swipeToSlide: !1,
      touchMove: !0,
      touchThreshold: 5,
      useCSS: !0,
      useTransform: !0,
      variableWidth: !1,
      vertical: !1,
      verticalSwiping: !1,
      waitForAnimate: !0,
      zIndex: 1e3
    }),
      (n.initials = {
        animating: !1,
        dragging: !1,
        autoPlayTimer: null,
        currentDirection: 0,
        currentLeft: null,
        currentSlide: 0,
        direction: 1,
        $dots: null,
        listWidth: null,
        listHeight: null,
        loadIndex: 0,
        $nextArrow: null,
        $prevArrow: null,
        scrolling: !1,
        slideCount: null,
        slideWidth: null,
        $slideTrack: null,
        $slides: null,
        sliding: !1,
        slideOffset: 0,
        swipeLeft: null,
        swiping: !1,
        $list: null,
        touchObject: {},
        transformsEnabled: !1,
        unslicked: !1
      }),
      i.extend(n, n.initials),
      (n.activeBreakpoint = null),
      (n.animType = null),
      (n.animProp = null),
      (n.breakpoints = []),
      (n.breakpointSettings = []),
      (n.cssTransitions = !1),
      (n.focussed = !1),
      (n.interrupted = !1),
      (n.hidden = "hidden"),
      (n.paused = !0),
      (n.positionProp = null),
      (n.respondTo = null),
      (n.rowCount = 1),
      (n.shouldClick = !0),
      (n.$slider = i(e)),
      (n.$slidesCache = null),
      (n.transformType = null),
      (n.transitionType = null),
      (n.visibilityChange = "visibilitychange"),
      (n.windowWidth = 0),
      (n.windowTimer = null),
      (s = i(e).data("slick") || {}),
      (n.options = i.extend({}, n.defaults, o, s)),
      (n.currentSlide = n.options.initialSlide),
      (n.originalSettings = n.options),
      "undefined" != typeof document.mozHidden
        ? ((n.hidden = "mozHidden"),
          (n.visibilityChange = "mozvisibilitychange"))
        : "undefined" != typeof document.webkitHidden &&
          ((n.hidden = "webkitHidden"),
          (n.visibilityChange = "webkitvisibilitychange")),
      (n.autoPlay = i.proxy(n.autoPlay, n)),
      (n.autoPlayClear = i.proxy(n.autoPlayClear, n)),
      (n.autoPlayIterator = i.proxy(n.autoPlayIterator, n)),
      (n.changeSlide = i.proxy(n.changeSlide, n)),
      (n.clickHandler = i.proxy(n.clickHandler, n)),
      (n.selectHandler = i.proxy(n.selectHandler, n)),
      (n.setPosition = i.proxy(n.setPosition, n)),
      (n.swipeHandler = i.proxy(n.swipeHandler, n)),
      (n.dragHandler = i.proxy(n.dragHandler, n)),
      (n.keyHandler = i.proxy(n.keyHandler, n)),
      (n.instanceUid = t++),
      (n.htmlExpr = /^(?:\s*(<[\w\W]+>)[^>]*)$/),
      n.registerBreakpoints(),
      n.init(!0);
  }
  var t = 0;
  return e;
})()),
  (e.prototype.activateADA = function() {
    var i = this;
    i.$slideTrack
      .find(".slick-active")
      .attr({ "aria-hidden": "false" })
      .find("a, input, button, select")
      .attr({ tabindex: "0" });
  }),
  (e.prototype.addSlide = e.prototype.slickAdd = function(e, t, o) {
    var s = this;
    if ("boolean" == typeof t) (o = t), (t = null);
    else if (t < 0 || t >= s.slideCount) return !1;
    s.unload(),
      "number" == typeof t
        ? 0 === t && 0 === s.$slides.length
          ? i(e).appendTo(s.$slideTrack)
          : o
          ? i(e).insertBefore(s.$slides.eq(t))
          : i(e).insertAfter(s.$slides.eq(t))
        : o === !0
        ? i(e).prependTo(s.$slideTrack)
        : i(e).appendTo(s.$slideTrack),
      (s.$slides = s.$slideTrack.children(this.options.slide)),
      s.$slideTrack.children(this.options.slide).detach(),
      s.$slideTrack.append(s.$slides),
      s.$slides.each(function(e, t) {
        i(t).attr("data-slick-index", e);
      }),
      (s.$slidesCache = s.$slides),
      s.reinit();
  }),
  (e.prototype.animateHeight = function() {
    var i = this;
    if (
      1 === i.options.slidesToShow &&
      i.options.adaptiveHeight === !0 &&
      i.options.vertical === !1
    ) {
      var e = i.$slides.eq(i.currentSlide).outerHeight(!0);
      i.$list.animate({ height: e }, i.options.speed);
    }
  }),
  (e.prototype.animateSlide = function(e, t) {
    var o = {},
      s = this;
    s.animateHeight(),
      s.options.rtl === !0 && s.options.vertical === !1 && (e = -e),
      s.transformsEnabled === !1
        ? s.options.vertical === !1
          ? s.$slideTrack.animate(
              { left: e },
              s.options.speed,
              s.options.easing,
              t
            )
          : s.$slideTrack.animate(
              { top: e },
              s.options.speed,
              s.options.easing,
              t
            )
        : s.cssTransitions === !1
        ? (s.options.rtl === !0 && (s.currentLeft = -s.currentLeft),
          i({ animStart: s.currentLeft }).animate(
            { animStart: e },
            {
              duration: s.options.speed,
              easing: s.options.easing,
              step: function(i) {
                (i = Math.ceil(i)),
                  s.options.vertical === !1
                    ? ((o[s.animType] = "translate(" + i + "px, 0px)"),
                      s.$slideTrack.css(o))
                    : ((o[s.animType] = "translate(0px," + i + "px)"),
                      s.$slideTrack.css(o));
              },
              complete: function() {
                t && t.call();
              }
            }
          ))
        : (s.applyTransition(),
          (e = Math.ceil(e)),
          s.options.vertical === !1
            ? (o[s.animType] = "translate3d(" + e + "px, 0px, 0px)")
            : (o[s.animType] = "translate3d(0px," + e + "px, 0px)"),
          s.$slideTrack.css(o),
          t &&
            setTimeout(function() {
              s.disableTransition(), t.call();
            }, s.options.speed));
  }),
  (e.prototype.getNavTarget = function() {
    var e = this,
      t = e.options.asNavFor;
    return t && null !== t && (t = i(t).not(e.$slider)), t;
  }),
  (e.prototype.asNavFor = function(e) {
    var t = this,
      o = t.getNavTarget();
    null !== o &&
      "object" == typeof o &&
      o.each(function() {
        var t = i(this).slick("getSlick");
        t.unslicked || t.slideHandler(e, !0);
      });
  }),
  (e.prototype.applyTransition = function(i) {
    var e = this,
      t = {};
    e.options.fade === !1
      ? (t[e.transitionType] =
          e.transformType + " " + e.options.speed + "ms " + e.options.cssEase)
      : (t[e.transitionType] =
          "opacity " + e.options.speed + "ms " + e.options.cssEase),
      e.options.fade === !1 ? e.$slideTrack.css(t) : e.$slides.eq(i).css(t);
  }),
  (e.prototype.autoPlay = function() {
    var i = this;
    i.autoPlayClear(),
      i.slideCount > i.options.slidesToShow &&
        (i.autoPlayTimer = setInterval(
          i.autoPlayIterator,
          i.options.autoplaySpeed
        ));
  }),
  (e.prototype.autoPlayClear = function() {
    var i = this;
    i.autoPlayTimer && clearInterval(i.autoPlayTimer);
  }),
  (e.prototype.autoPlayIterator = function() {
    var i = this,
      e = i.currentSlide + i.options.slidesToScroll;
    i.paused ||
      i.interrupted ||
      i.focussed ||
      (i.options.infinite === !1 &&
        (1 === i.direction && i.currentSlide + 1 === i.slideCount - 1
          ? (i.direction = 0)
          : 0 === i.direction &&
            ((e = i.currentSlide - i.options.slidesToScroll),
            i.currentSlide - 1 === 0 && (i.direction = 1))),
      i.slideHandler(e));
  }),
  (e.prototype.buildArrows = function() {
    var e = this;
    e.options.arrows === !0 &&
      ((e.$prevArrow = i(e.options.prevArrow).addClass("slick-arrow")),
      (e.$nextArrow = i(e.options.nextArrow).addClass("slick-arrow")),
      e.slideCount > e.options.slidesToShow
        ? (e.$prevArrow
            .removeClass("slick-hidden")
            .removeAttr("aria-hidden tabindex"),
          e.$nextArrow
            .removeClass("slick-hidden")
            .removeAttr("aria-hidden tabindex"),
          e.htmlExpr.test(e.options.prevArrow) &&
            e.$prevArrow.prependTo(e.options.appendArrows),
          e.htmlExpr.test(e.options.nextArrow) &&
            e.$nextArrow.appendTo(e.options.appendArrows),
          e.options.infinite !== !0 &&
            e.$prevArrow
              .addClass("slick-disabled")
              .attr("aria-disabled", "true"))
        : e.$prevArrow
            .add(e.$nextArrow)
            .addClass("slick-hidden")
            .attr({ "aria-disabled": "true", tabindex: "-1" }));
  }),
  (e.prototype.buildDots = function() {
    var e,
      t,
      o = this;
    if (o.options.dots === !0 && o.slideCount > o.options.slidesToShow) {
      for (
        o.$slider.addClass("slick-dotted"),
          t = i("<ul />").addClass(o.options.dotsClass),
          e = 0;
        e <= o.getDotCount();
        e += 1
      )
        t.append(i("<li />").append(o.options.customPaging.call(this, o, e)));
      (o.$dots = t.appendTo(o.options.appendDots)),
        o.$dots
          .find("li")
          .first()
          .addClass("slick-active");
    }
  }),
  (e.prototype.buildOut = function() {
    var e = this;
    (e.$slides = e.$slider
      .children(e.options.slide + ":not(.slick-cloned)")
      .addClass("slick-slide")),
      (e.slideCount = e.$slides.length),
      e.$slides.each(function(e, t) {
        i(t)
          .attr("data-slick-index", e)
          .data("originalStyling", i(t).attr("style") || "");
      }),
      e.$slider.addClass("slick-slider"),
      (e.$slideTrack =
        0 === e.slideCount
          ? i('<div class="slick-track"/>').appendTo(e.$slider)
          : e.$slides.wrapAll('<div class="slick-track"/>').parent()),
      (e.$list = e.$slideTrack.wrap('<div class="slick-list"/>').parent()),
      e.$slideTrack.css("opacity", 0),
      (e.options.centerMode !== !0 && e.options.swipeToSlide !== !0) ||
        (e.options.slidesToScroll = 1),
      i("img[data-lazy]", e.$slider)
        .not("[src]")
        .addClass("slick-loading"),
      e.setupInfinite(),
      e.buildArrows(),
      e.buildDots(),
      e.updateDots(),
      e.setSlideClasses(
        "number" == typeof e.currentSlide ? e.currentSlide : 0
      ),
      e.options.draggable === !0 && e.$list.addClass("draggable");
  }),
  (e.prototype.buildRows = function() {
    var i,
      e,
      t,
      o,
      s,
      n,
      r,
      l = this;
    if (
      ((o = document.createDocumentFragment()),
      (n = l.$slider.children()),
      l.options.rows > 0)
    ) {
      for (
        r = l.options.slidesPerRow * l.options.rows,
          s = Math.ceil(n.length / r),
          i = 0;
        i < s;
        i++
      ) {
        var d = document.createElement("div");
        for (e = 0; e < l.options.rows; e++) {
          var a = document.createElement("div");
          for (t = 0; t < l.options.slidesPerRow; t++) {
            var c = i * r + (e * l.options.slidesPerRow + t);
            n.get(c) && a.appendChild(n.get(c));
          }
          d.appendChild(a);
        }
        o.appendChild(d);
      }
      l.$slider.empty().append(o),
        l.$slider
          .children()
          .children()
          .children()
          .css({
            width: 100 / l.options.slidesPerRow + "%",
            display: "inline-block"
          });
    }
  }),
  (e.prototype.checkResponsive = function(e, t) {
    var o,
      s,
      n,
      r = this,
      l = !1,
      d = r.$slider.width(),
      a = window.innerWidth || i(window).width();
    if (
      ("window" === r.respondTo
        ? (n = a)
        : "slider" === r.respondTo
        ? (n = d)
        : "min" === r.respondTo && (n = Math.min(a, d)),
      r.options.responsive &&
        r.options.responsive.length &&
        null !== r.options.responsive)
    ) {
      s = null;
      for (o in r.breakpoints)
        r.breakpoints.hasOwnProperty(o) &&
          (r.originalSettings.mobileFirst === !1
            ? n < r.breakpoints[o] && (s = r.breakpoints[o])
            : n > r.breakpoints[o] && (s = r.breakpoints[o]));
      null !== s
        ? null !== r.activeBreakpoint
          ? (s !== r.activeBreakpoint || t) &&
            ((r.activeBreakpoint = s),
            "unslick" === r.breakpointSettings[s]
              ? r.unslick(s)
              : ((r.options = i.extend(
                  {},
                  r.originalSettings,
                  r.breakpointSettings[s]
                )),
                e === !0 && (r.currentSlide = r.options.initialSlide),
                r.refresh(e)),
            (l = s))
          : ((r.activeBreakpoint = s),
            "unslick" === r.breakpointSettings[s]
              ? r.unslick(s)
              : ((r.options = i.extend(
                  {},
                  r.originalSettings,
                  r.breakpointSettings[s]
                )),
                e === !0 && (r.currentSlide = r.options.initialSlide),
                r.refresh(e)),
            (l = s))
        : null !== r.activeBreakpoint &&
          ((r.activeBreakpoint = null),
          (r.options = r.originalSettings),
          e === !0 && (r.currentSlide = r.options.initialSlide),
          r.refresh(e),
          (l = s)),
        e || l === !1 || r.$slider.trigger("breakpoint", [r, l]);
    }
  }),
  (e.prototype.changeSlide = function(e, t) {
    var o,
      s,
      n,
      r = this,
      l = i(e.currentTarget);
    switch (
      (l.is("a") && e.preventDefault(),
      l.is("li") || (l = l.closest("li")),
      (n = r.slideCount % r.options.slidesToScroll !== 0),
      (o = n
        ? 0
        : (r.slideCount - r.currentSlide) % r.options.slidesToScroll),
      e.data.message)
    ) {
      case "previous":
        (s = 0 === o ? r.options.slidesToScroll : r.options.slidesToShow - o),
          r.slideCount > r.options.slidesToShow &&
            r.slideHandler(r.currentSlide - s, !1, t);
        break;
      case "next":
        (s = 0 === o ? r.options.slidesToScroll : o),
          r.slideCount > r.options.slidesToShow &&
            r.slideHandler(r.currentSlide + s, !1, t);
        break;
      case "index":
        var d =
          0 === e.data.index
            ? 0
            : e.data.index || l.index() * r.options.slidesToScroll;
        r.slideHandler(r.checkNavigable(d), !1, t),
          l.children().trigger("focus");
        break;
      default:
        return;
    }
  }),
  (e.prototype.checkNavigable = function(i) {
    var e,
      t,
      o = this;
    if (((e = o.getNavigableIndexes()), (t = 0), i > e[e.length - 1]))
      i = e[e.length - 1];
    else
      for (var s in e) {
        if (i < e[s]) {
          i = t;
          break;
        }
        t = e[s];
      }
    return i;
  }),
  (e.prototype.cleanUpEvents = function() {
    var e = this;
    e.options.dots &&
      null !== e.$dots &&
      (i("li", e.$dots)
        .off("click.slick", e.changeSlide)
        .off("mouseenter.slick", i.proxy(e.interrupt, e, !0))
        .off("mouseleave.slick", i.proxy(e.interrupt, e, !1)),
      e.options.accessibility === !0 &&
        e.$dots.off("keydown.slick", e.keyHandler)),
      e.$slider.off("focus.slick blur.slick"),
      e.options.arrows === !0 &&
        e.slideCount > e.options.slidesToShow &&
        (e.$prevArrow && e.$prevArrow.off("click.slick", e.changeSlide),
        e.$nextArrow && e.$nextArrow.off("click.slick", e.changeSlide),
        e.options.accessibility === !0 &&
          (e.$prevArrow && e.$prevArrow.off("keydown.slick", e.keyHandler),
          e.$nextArrow && e.$nextArrow.off("keydown.slick", e.keyHandler))),
      e.$list.off("touchstart.slick mousedown.slick", e.swipeHandler),
      e.$list.off("touchmove.slick mousemove.slick", e.swipeHandler),
      e.$list.off("touchend.slick mouseup.slick", e.swipeHandler),
      e.$list.off("touchcancel.slick mouseleave.slick", e.swipeHandler),
      e.$list.off("click.slick", e.clickHandler),
      i(document).off(e.visibilityChange, e.visibility),
      e.cleanUpSlideEvents(),
      e.options.accessibility === !0 &&
        e.$list.off("keydown.slick", e.keyHandler),
      e.options.focusOnSelect === !0 &&
        i(e.$slideTrack)
          .children()
          .off("click.slick", e.selectHandler),
      i(window).off(
        "orientationchange.slick.slick-" + e.instanceUid,
        e.orientationChange
      ),
      i(window).off("resize.slick.slick-" + e.instanceUid, e.resize),
      i("[draggable!=true]", e.$slideTrack).off(
        "dragstart",
        e.preventDefault
      ),
      i(window).off("load.slick.slick-" + e.instanceUid, e.setPosition);
  }),
  (e.prototype.cleanUpSlideEvents = function() {
    var e = this;
    e.$list.off("mouseenter.slick", i.proxy(e.interrupt, e, !0)),
      e.$list.off("mouseleave.slick", i.proxy(e.interrupt, e, !1));
  }),
  (e.prototype.cleanUpRows = function() {
    var i,
      e = this;
    e.options.rows > 0 &&
      ((i = e.$slides.children().children()),
      i.removeAttr("style"),
      e.$slider.empty().append(i));
  }),
  (e.prototype.clickHandler = function(i) {
    var e = this;
    e.shouldClick === !1 &&
      (i.stopImmediatePropagation(), i.stopPropagation(), i.preventDefault());
  }),
  (e.prototype.destroy = function(e) {
    var t = this;
    t.autoPlayClear(),
      (t.touchObject = {}),
      t.cleanUpEvents(),
      i(".slick-cloned", t.$slider).detach(),
      t.$dots && t.$dots.remove(),
      t.$prevArrow &&
        t.$prevArrow.length &&
        (t.$prevArrow
          .removeClass("slick-disabled slick-arrow slick-hidden")
          .removeAttr("aria-hidden aria-disabled tabindex")
          .css("display", ""),
        t.htmlExpr.test(t.options.prevArrow) && t.$prevArrow.remove()),
      t.$nextArrow &&
        t.$nextArrow.length &&
        (t.$nextArrow
          .removeClass("slick-disabled slick-arrow slick-hidden")
          .removeAttr("aria-hidden aria-disabled tabindex")
          .css("display", ""),
        t.htmlExpr.test(t.options.nextArrow) && t.$nextArrow.remove()),
      t.$slides &&
        (t.$slides
          .removeClass(
            "slick-slide slick-active slick-center slick-visible slick-current"
          )
          .removeAttr("aria-hidden")
          .removeAttr("data-slick-index")
          .each(function() {
            i(this).attr("style", i(this).data("originalStyling"));
          }),
        t.$slideTrack.children(this.options.slide).detach(),
        t.$slideTrack.detach(),
        t.$list.detach(),
        t.$slider.append(t.$slides)),
      t.cleanUpRows(),
      t.$slider.removeClass("slick-slider"),
      t.$slider.removeClass("slick-initialized"),
      t.$slider.removeClass("slick-dotted"),
      (t.unslicked = !0),
      e || t.$slider.trigger("destroy", [t]);
  }),
  (e.prototype.disableTransition = function(i) {
    var e = this,
      t = {};
    (t[e.transitionType] = ""),
      e.options.fade === !1 ? e.$slideTrack.css(t) : e.$slides.eq(i).css(t);
  }),
  (e.prototype.fadeSlide = function(i, e) {
    var t = this;
    t.cssTransitions === !1
      ? (t.$slides.eq(i).css({ zIndex: t.options.zIndex }),
        t.$slides
          .eq(i)
          .animate({ opacity: 1 }, t.options.speed, t.options.easing, e))
      : (t.applyTransition(i),
        t.$slides.eq(i).css({ opacity: 1, zIndex: t.options.zIndex }),
        e &&
          setTimeout(function() {
            t.disableTransition(i), e.call();
          }, t.options.speed));
  }),
  (e.prototype.fadeSlideOut = function(i) {
    var e = this;
    e.cssTransitions === !1
      ? e.$slides
          .eq(i)
          .animate(
            { opacity: 0, zIndex: e.options.zIndex - 2 },
            e.options.speed,
            e.options.easing
          )
      : (e.applyTransition(i),
        e.$slides.eq(i).css({ opacity: 0, zIndex: e.options.zIndex - 2 }));
  }),
  (e.prototype.filterSlides = e.prototype.slickFilter = function(i) {
    var e = this;
    null !== i &&
      ((e.$slidesCache = e.$slides),
      e.unload(),
      e.$slideTrack.children(this.options.slide).detach(),
      e.$slidesCache.filter(i).appendTo(e.$slideTrack),
      e.reinit());
  }),
  (e.prototype.focusHandler = function() {
    var e = this;
    e.$slider
      .off("focus.slick blur.slick")
      .on("focus.slick", "*", function(t) {
        var o = i(this);
        setTimeout(function() {
          e.options.pauseOnFocus &&
            o.is(":focus") &&
            ((e.focussed = !0), e.autoPlay());
        }, 0);
      })
      .on("blur.slick", "*", function(t) {
        i(this);
        e.options.pauseOnFocus && ((e.focussed = !1), e.autoPlay());
      });
  }),
  (e.prototype.getCurrent = e.prototype.slickCurrentSlide = function() {
    var i = this;
    return i.currentSlide;
  }),
  (e.prototype.getDotCount = function() {
    var i = this,
      e = 0,
      t = 0,
      o = 0;
    if (i.options.infinite === !0)
      if (i.slideCount <= i.options.slidesToShow) ++o;
      else
        for (; e < i.slideCount; )
          ++o,
            (e = t + i.options.slidesToScroll),
            (t +=
              i.options.slidesToScroll <= i.options.slidesToShow
                ? i.options.slidesToScroll
                : i.options.slidesToShow);
    else if (i.options.centerMode === !0) o = i.slideCount;
    else if (i.options.asNavFor)
      for (; e < i.slideCount; )
        ++o,
          (e = t + i.options.slidesToScroll),
          (t +=
            i.options.slidesToScroll <= i.options.slidesToShow
              ? i.options.slidesToScroll
              : i.options.slidesToShow);
    else
      o =
        1 +
        Math.ceil(
          (i.slideCount - i.options.slidesToShow) / i.options.slidesToScroll
        );
    return o - 1;
  }),
  (e.prototype.getLeft = function(i) {
    var e,
      t,
      o,
      s,
      n = this,
      r = 0;
    return (
      (n.slideOffset = 0),
      (t = n.$slides.first().outerHeight(!0)),
      n.options.infinite === !0
        ? (n.slideCount > n.options.slidesToShow &&
            ((n.slideOffset = n.slideWidth * n.options.slidesToShow * -1),
            (s = -1),
            n.options.vertical === !0 &&
              n.options.centerMode === !0 &&
              (2 === n.options.slidesToShow
                ? (s = -1.5)
                : 1 === n.options.slidesToShow && (s = -2)),
            (r = t * n.options.slidesToShow * s)),
          n.slideCount % n.options.slidesToScroll !== 0 &&
            i + n.options.slidesToScroll > n.slideCount &&
            n.slideCount > n.options.slidesToShow &&
            (i > n.slideCount
              ? ((n.slideOffset =
                  (n.options.slidesToShow - (i - n.slideCount)) *
                  n.slideWidth *
                  -1),
                (r = (n.options.slidesToShow - (i - n.slideCount)) * t * -1))
              : ((n.slideOffset =
                  (n.slideCount % n.options.slidesToScroll) *
                  n.slideWidth *
                  -1),
                (r = (n.slideCount % n.options.slidesToScroll) * t * -1))))
        : i + n.options.slidesToShow > n.slideCount &&
          ((n.slideOffset =
            (i + n.options.slidesToShow - n.slideCount) * n.slideWidth),
          (r = (i + n.options.slidesToShow - n.slideCount) * t)),
      n.slideCount <= n.options.slidesToShow &&
        ((n.slideOffset = 0), (r = 0)),
      n.options.centerMode === !0 && n.slideCount <= n.options.slidesToShow
        ? (n.slideOffset =
            (n.slideWidth * Math.floor(n.options.slidesToShow)) / 2 -
            (n.slideWidth * n.slideCount) / 2)
        : n.options.centerMode === !0 && n.options.infinite === !0
        ? (n.slideOffset +=
            n.slideWidth * Math.floor(n.options.slidesToShow / 2) -
            n.slideWidth)
        : n.options.centerMode === !0 &&
          ((n.slideOffset = 0),
          (n.slideOffset +=
            n.slideWidth * Math.floor(n.options.slidesToShow / 2))),
      (e =
        n.options.vertical === !1
          ? i * n.slideWidth * -1 + n.slideOffset
          : i * t * -1 + r),
      n.options.variableWidth === !0 &&
        ((o =
          n.slideCount <= n.options.slidesToShow || n.options.infinite === !1
            ? n.$slideTrack.children(".slick-slide").eq(i)
            : n.$slideTrack
                .children(".slick-slide")
                .eq(i + n.options.slidesToShow)),
        (e =
          n.options.rtl === !0
            ? o[0]
              ? (n.$slideTrack.width() - o[0].offsetLeft - o.width()) * -1
              : 0
            : o[0]
            ? o[0].offsetLeft * -1
            : 0),
        n.options.centerMode === !0 &&
          ((o =
            n.slideCount <= n.options.slidesToShow ||
            n.options.infinite === !1
              ? n.$slideTrack.children(".slick-slide").eq(i)
              : n.$slideTrack
                  .children(".slick-slide")
                  .eq(i + n.options.slidesToShow + 1)),
          (e =
            n.options.rtl === !0
              ? o[0]
                ? (n.$slideTrack.width() - o[0].offsetLeft - o.width()) * -1
                : 0
              : o[0]
              ? o[0].offsetLeft * -1
              : 0),
          (e += (n.$list.width() - o.outerWidth()) / 2))),
      e
    );
  }),
  (e.prototype.getOption = e.prototype.slickGetOption = function(i) {
    var e = this;
    return e.options[i];
  }),
  (e.prototype.getNavigableIndexes = function() {
    var i,
      e = this,
      t = 0,
      o = 0,
      s = [];
    for (
      e.options.infinite === !1
        ? (i = e.slideCount)
        : ((t = e.options.slidesToScroll * -1),
          (o = e.options.slidesToScroll * -1),
          (i = 2 * e.slideCount));
      t < i;
    )
      s.push(t),
        (t = o + e.options.slidesToScroll),
        (o +=
          e.options.slidesToScroll <= e.options.slidesToShow
            ? e.options.slidesToScroll
            : e.options.slidesToShow);
    return s;
  }),
  (e.prototype.getSlick = function() {
    return this;
  }),
  (e.prototype.getSlideCount = function() {
    var e,
      t,
      o,
      s,
      n = this;
    return (
      (s = n.options.centerMode === !0 ? Math.floor(n.$list.width() / 2) : 0),
      (o = n.swipeLeft * -1 + s),
      n.options.swipeToSlide === !0
        ? (n.$slideTrack.find(".slick-slide").each(function(e, s) {
            var r, l, d;
            if (
              ((r = i(s).outerWidth()),
              (l = s.offsetLeft),
              n.options.centerMode !== !0 && (l += r / 2),
              (d = l + r),
              o < d)
            )
              return (t = s), !1;
          }),
          (e = Math.abs(i(t).attr("data-slick-index") - n.currentSlide) || 1))
        : n.options.slidesToScroll
    );
  }),
  (e.prototype.goTo = e.prototype.slickGoTo = function(i, e) {
    var t = this;
    t.changeSlide({ data: { message: "index", index: parseInt(i) } }, e);
  }),
  (e.prototype.init = function(e) {
    var t = this;
    i(t.$slider).hasClass("slick-initialized") ||
      (i(t.$slider).addClass("slick-initialized"),
      t.buildRows(),
      t.buildOut(),
      t.setProps(),
      t.startLoad(),
      t.loadSlider(),
      t.initializeEvents(),
      t.updateArrows(),
      t.updateDots(),
      t.checkResponsive(!0),
      t.focusHandler()),
      e && t.$slider.trigger("init", [t]),
      t.options.accessibility === !0 && t.initADA(),
      t.options.autoplay && ((t.paused = !1), t.autoPlay());
  }),
  (e.prototype.initADA = function() {
    var e = this,
      t = Math.ceil(e.slideCount / e.options.slidesToShow),
      o = e.getNavigableIndexes().filter(function(i) {
        return i >= 0 && i < e.slideCount;
      });
    e.$slides
      .add(e.$slideTrack.find(".slick-cloned"))
      .attr({ "aria-hidden": "true", tabindex: "-1" })
      .find("a, input, button, select")
      .attr({ tabindex: "-1" }),
      null !== e.$dots &&
        (e.$slides.not(e.$slideTrack.find(".slick-cloned")).each(function(t) {
          var s = o.indexOf(t);
          if (
            (i(this).attr({
              role: "tabpanel",
              id: "slick-slide" + e.instanceUid + t,
              tabindex: -1
            }),
            s !== -1)
          ) {
            var n = "slick-slide-control" + e.instanceUid + s;
            i("#" + n).length && i(this).attr({ "aria-describedby": n });
          }
        }),
        e.$dots
          .attr("role", "tablist")
          .find("li")
          .each(function(s) {
            var n = o[s];
            i(this).attr({ role: "presentation" }),
              i(this)
                .find("button")
                .first()
                .attr({
                  role: "tab",
                  id: "slick-slide-control" + e.instanceUid + s,
                  "aria-controls": "slick-slide" + e.instanceUid + n,
                  "aria-label": s + 1 + " of " + t,
                  "aria-selected": null,
                  tabindex: "-1"
                });
          })
          .eq(e.currentSlide)
          .find("button")
          .attr({ "aria-selected": "true", tabindex: "0" })
          .end());
    for (var s = e.currentSlide, n = s + e.options.slidesToShow; s < n; s++)
      e.options.focusOnChange
        ? e.$slides.eq(s).attr({ tabindex: "0" })
        : e.$slides.eq(s).removeAttr("tabindex");
    e.activateADA();
  }),
  (e.prototype.initArrowEvents = function() {
    var i = this;
    i.options.arrows === !0 &&
      i.slideCount > i.options.slidesToShow &&
      (i.$prevArrow
        .off("click.slick")
        .on("click.slick", { message: "previous" }, i.changeSlide),
      i.$nextArrow
        .off("click.slick")
        .on("click.slick", { message: "next" }, i.changeSlide),
      i.options.accessibility === !0 &&
        (i.$prevArrow.on("keydown.slick", i.keyHandler),
        i.$nextArrow.on("keydown.slick", i.keyHandler)));
  }),
  (e.prototype.initDotEvents = function() {
    var e = this;
    e.options.dots === !0 &&
      e.slideCount > e.options.slidesToShow &&
      (i("li", e.$dots).on(
        "click.slick",
        { message: "index" },
        e.changeSlide
      ),
      e.options.accessibility === !0 &&
        e.$dots.on("keydown.slick", e.keyHandler)),
      e.options.dots === !0 &&
        e.options.pauseOnDotsHover === !0 &&
        e.slideCount > e.options.slidesToShow &&
        i("li", e.$dots)
          .on("mouseenter.slick", i.proxy(e.interrupt, e, !0))
          .on("mouseleave.slick", i.proxy(e.interrupt, e, !1));
  }),
  (e.prototype.initSlideEvents = function() {
    var e = this;
    e.options.pauseOnHover &&
      (e.$list.on("mouseenter.slick", i.proxy(e.interrupt, e, !0)),
      e.$list.on("mouseleave.slick", i.proxy(e.interrupt, e, !1)));
  }),
  (e.prototype.initializeEvents = function() {
    var e = this;
    e.initArrowEvents(),
      e.initDotEvents(),
      e.initSlideEvents(),
      e.$list.on(
        "touchstart.slick mousedown.slick",
        { action: "start" },
        e.swipeHandler
      ),
      e.$list.on(
        "touchmove.slick mousemove.slick",
        { action: "move" },
        e.swipeHandler
      ),
      e.$list.on(
        "touchend.slick mouseup.slick",
        { action: "end" },
        e.swipeHandler
      ),
      e.$list.on(
        "touchcancel.slick mouseleave.slick",
        { action: "end" },
        e.swipeHandler
      ),
      e.$list.on("click.slick", e.clickHandler),
      i(document).on(e.visibilityChange, i.proxy(e.visibility, e)),
      e.options.accessibility === !0 &&
        e.$list.on("keydown.slick", e.keyHandler),
      e.options.focusOnSelect === !0 &&
        i(e.$slideTrack)
          .children()
          .on("click.slick", e.selectHandler),
      i(window).on(
        "orientationchange.slick.slick-" + e.instanceUid,
        i.proxy(e.orientationChange, e)
      ),
      i(window).on(
        "resize.slick.slick-" + e.instanceUid,
        i.proxy(e.resize, e)
      ),
      i("[draggable!=true]", e.$slideTrack).on("dragstart", e.preventDefault),
      i(window).on("load.slick.slick-" + e.instanceUid, e.setPosition),
      i(e.setPosition);
  }),
  (e.prototype.initUI = function() {
    var i = this;
    i.options.arrows === !0 &&
      i.slideCount > i.options.slidesToShow &&
      (i.$prevArrow.show(), i.$nextArrow.show()),
      i.options.dots === !0 &&
        i.slideCount > i.options.slidesToShow &&
        i.$dots.show();
  }),
  (e.prototype.keyHandler = function(i) {
    var e = this;
    i.target.tagName.match("TEXTAREA|INPUT|SELECT") ||
      (37 === i.keyCode && e.options.accessibility === !0
        ? e.changeSlide({
            data: { message: e.options.rtl === !0 ? "next" : "previous" }
          })
        : 39 === i.keyCode &&
          e.options.accessibility === !0 &&
          e.changeSlide({
            data: { message: e.options.rtl === !0 ? "previous" : "next" }
          }));
  }),
  (e.prototype.lazyLoad = function() {
    function e(e) {
      i("img[data-lazy]", e).each(function() {
        var e = i(this),
          t = i(this).attr("data-lazy"),
          o = i(this).attr("data-srcset"),
          s = i(this).attr("data-sizes") || r.$slider.attr("data-sizes"),
          n = document.createElement("img");
        (n.onload = function() {
          e.animate({ opacity: 0 }, 100, function() {
            o && (e.attr("srcset", o), s && e.attr("sizes", s)),
              e.attr("src", t).animate({ opacity: 1 }, 200, function() {
                e.removeAttr("data-lazy data-srcset data-sizes").removeClass(
                  "slick-loading"
                );
              }),
              r.$slider.trigger("lazyLoaded", [r, e, t]);
          });
        }),
          (n.onerror = function() {
            e
              .removeAttr("data-lazy")
              .removeClass("slick-loading")
              .addClass("slick-lazyload-error"),
              r.$slider.trigger("lazyLoadError", [r, e, t]);
          }),
          (n.src = t);
      });
    }
    var t,
      o,
      s,
      n,
      r = this;
    if (
      (r.options.centerMode === !0
        ? r.options.infinite === !0
          ? ((s = r.currentSlide + (r.options.slidesToShow / 2 + 1)),
            (n = s + r.options.slidesToShow + 2))
          : ((s = Math.max(
              0,
              r.currentSlide - (r.options.slidesToShow / 2 + 1)
            )),
            (n = 2 + (r.options.slidesToShow / 2 + 1) + r.currentSlide))
        : ((s = r.options.infinite
            ? r.options.slidesToShow + r.currentSlide
            : r.currentSlide),
          (n = Math.ceil(s + r.options.slidesToShow)),
          r.options.fade === !0 && (s > 0 && s--, n <= r.slideCount && n++)),
      (t = r.$slider.find(".slick-slide").slice(s, n)),
      "anticipated" === r.options.lazyLoad)
    )
      for (
        var l = s - 1, d = n, a = r.$slider.find(".slick-slide"), c = 0;
        c < r.options.slidesToScroll;
        c++
      )
        l < 0 && (l = r.slideCount - 1),
          (t = t.add(a.eq(l))),
          (t = t.add(a.eq(d))),
          l--,
          d++;
    e(t),
      r.slideCount <= r.options.slidesToShow
        ? ((o = r.$slider.find(".slick-slide")), e(o))
        : r.currentSlide >= r.slideCount - r.options.slidesToShow
        ? ((o = r.$slider
            .find(".slick-cloned")
            .slice(0, r.options.slidesToShow)),
          e(o))
        : 0 === r.currentSlide &&
          ((o = r.$slider
            .find(".slick-cloned")
            .slice(r.options.slidesToShow * -1)),
          e(o));
  }),
  (e.prototype.loadSlider = function() {
    var i = this;
    i.setPosition(),
      i.$slideTrack.css({ opacity: 1 }),
      i.$slider.removeClass("slick-loading"),
      i.initUI(),
      "progressive" === i.options.lazyLoad && i.progressiveLazyLoad();
  }),
  (e.prototype.next = e.prototype.slickNext = function() {
    var i = this;
    i.changeSlide({ data: { message: "next" } });
  }),
  (e.prototype.orientationChange = function() {
    var i = this;
    i.checkResponsive(), i.setPosition();
  }),
  (e.prototype.pause = e.prototype.slickPause = function() {
    var i = this;
    i.autoPlayClear(), (i.paused = !0);
  }),
  (e.prototype.play = e.prototype.slickPlay = function() {
    var i = this;
    i.autoPlay(),
      (i.options.autoplay = !0),
      (i.paused = !1),
      (i.focussed = !1),
      (i.interrupted = !1);
  }),
  (e.prototype.postSlide = function(e) {
    var t = this;
    if (
      !t.unslicked &&
      (t.$slider.trigger("afterChange", [t, e]),
      (t.animating = !1),
      t.slideCount > t.options.slidesToShow && t.setPosition(),
      (t.swipeLeft = null),
      t.options.autoplay && t.autoPlay(),
      t.options.accessibility === !0 &&
        (t.initADA(), t.options.focusOnChange))
    ) {
      var o = i(t.$slides.get(t.currentSlide));
      o.attr("tabindex", 0).focus();
    }
  }),
  (e.prototype.prev = e.prototype.slickPrev = function() {
    var i = this;
    i.changeSlide({ data: { message: "previous" } });
  }),
  (e.prototype.preventDefault = function(i) {
    i.preventDefault();
  }),
  (e.prototype.progressiveLazyLoad = function(e) {
    e = e || 1;
    var t,
      o,
      s,
      n,
      r,
      l = this,
      d = i("img[data-lazy]", l.$slider);
    d.length
      ? ((t = d.first()),
        (o = t.attr("data-lazy")),
        (s = t.attr("data-srcset")),
        (n = t.attr("data-sizes") || l.$slider.attr("data-sizes")),
        (r = document.createElement("img")),
        (r.onload = function() {
          s && (t.attr("srcset", s), n && t.attr("sizes", n)),
            t
              .attr("src", o)
              .removeAttr("data-lazy data-srcset data-sizes")
              .removeClass("slick-loading"),
            l.options.adaptiveHeight === !0 && l.setPosition(),
            l.$slider.trigger("lazyLoaded", [l, t, o]),
            l.progressiveLazyLoad();
        }),
        (r.onerror = function() {
          e < 3
            ? setTimeout(function() {
                l.progressiveLazyLoad(e + 1);
              }, 500)
            : (t
                .removeAttr("data-lazy")
                .removeClass("slick-loading")
                .addClass("slick-lazyload-error"),
              l.$slider.trigger("lazyLoadError", [l, t, o]),
              l.progressiveLazyLoad());
        }),
        (r.src = o))
      : l.$slider.trigger("allImagesLoaded", [l]);
  }),
  (e.prototype.refresh = function(e) {
    var t,
      o,
      s = this;
    (o = s.slideCount - s.options.slidesToShow),
      !s.options.infinite && s.currentSlide > o && (s.currentSlide = o),
      s.slideCount <= s.options.slidesToShow && (s.currentSlide = 0),
      (t = s.currentSlide),
      s.destroy(!0),
      i.extend(s, s.initials, { currentSlide: t }),
      s.init(),
      e || s.changeSlide({ data: { message: "index", index: t } }, !1);
  }),
  (e.prototype.registerBreakpoints = function() {
    var e,
      t,
      o,
      s = this,
      n = s.options.responsive || null;
    if ("array" === i.type(n) && n.length) {
      s.respondTo = s.options.respondTo || "window";
      for (e in n)
        if (((o = s.breakpoints.length - 1), n.hasOwnProperty(e))) {
          for (t = n[e].breakpoint; o >= 0; )
            s.breakpoints[o] &&
              s.breakpoints[o] === t &&
              s.breakpoints.splice(o, 1),
              o--;
          s.breakpoints.push(t), (s.breakpointSettings[t] = n[e].settings);
        }
      s.breakpoints.sort(function(i, e) {
        return s.options.mobileFirst ? i - e : e - i;
      });
    }
  }),
  (e.prototype.reinit = function() {
    var e = this;
    (e.$slides = e.$slideTrack
      .children(e.options.slide)
      .addClass("slick-slide")),
      (e.slideCount = e.$slides.length),
      e.currentSlide >= e.slideCount &&
        0 !== e.currentSlide &&
        (e.currentSlide = e.currentSlide - e.options.slidesToScroll),
      e.slideCount <= e.options.slidesToShow && (e.currentSlide = 0),
      e.registerBreakpoints(),
      e.setProps(),
      e.setupInfinite(),
      e.buildArrows(),
      e.updateArrows(),
      e.initArrowEvents(),
      e.buildDots(),
      e.updateDots(),
      e.initDotEvents(),
      e.cleanUpSlideEvents(),
      e.initSlideEvents(),
      e.checkResponsive(!1, !0),
      e.options.focusOnSelect === !0 &&
        i(e.$slideTrack)
          .children()
          .on("click.slick", e.selectHandler),
      e.setSlideClasses(
        "number" == typeof e.currentSlide ? e.currentSlide : 0
      ),
      e.setPosition(),
      e.focusHandler(),
      (e.paused = !e.options.autoplay),
      e.autoPlay(),
      e.$slider.trigger("reInit", [e]);
  }),
  (e.prototype.resize = function() {
    var e = this;
    i(window).width() !== e.windowWidth &&
      (clearTimeout(e.windowDelay),
      (e.windowDelay = window.setTimeout(function() {
        (e.windowWidth = i(window).width()),
          e.checkResponsive(),
          e.unslicked || e.setPosition();
      }, 50)));
  }),
  (e.prototype.removeSlide = e.prototype.slickRemove = function(i, e, t) {
    var o = this;
    return (
      "boolean" == typeof i
        ? ((e = i), (i = e === !0 ? 0 : o.slideCount - 1))
        : (i = e === !0 ? --i : i),
      !(o.slideCount < 1 || i < 0 || i > o.slideCount - 1) &&
        (o.unload(),
        t === !0
          ? o.$slideTrack.children().remove()
          : o.$slideTrack
              .children(this.options.slide)
              .eq(i)
              .remove(),
        (o.$slides = o.$slideTrack.children(this.options.slide)),
        o.$slideTrack.children(this.options.slide).detach(),
        o.$slideTrack.append(o.$slides),
        (o.$slidesCache = o.$slides),
        void o.reinit())
    );
  }),
  (e.prototype.setCSS = function(i) {
    var e,
      t,
      o = this,
      s = {};
    o.options.rtl === !0 && (i = -i),
      (e = "left" == o.positionProp ? Math.ceil(i) + "px" : "0px"),
      (t = "top" == o.positionProp ? Math.ceil(i) + "px" : "0px"),
      (s[o.positionProp] = i),
      o.transformsEnabled === !1
        ? o.$slideTrack.css(s)
        : ((s = {}),
          o.cssTransitions === !1
            ? ((s[o.animType] = "translate(" + e + ", " + t + ")"),
              o.$slideTrack.css(s))
            : ((s[o.animType] = "translate3d(" + e + ", " + t + ", 0px)"),
              o.$slideTrack.css(s)));
  }),
  (e.prototype.setDimensions = function() {
    var i = this;
    i.options.vertical === !1
      ? i.options.centerMode === !0 &&
        i.$list.css({ padding: "0px " + i.options.centerPadding })
      : (i.$list.height(
          i.$slides.first().outerHeight(!0) * i.options.slidesToShow
        ),
        i.options.centerMode === !0 &&
          i.$list.css({ padding: i.options.centerPadding + " 0px" })),
      (i.listWidth = i.$list.width()),
      (i.listHeight = i.$list.height()),
      i.options.vertical === !1 && i.options.variableWidth === !1
        ? ((i.slideWidth = Math.ceil(i.listWidth / i.options.slidesToShow)),
          i.$slideTrack.width(
            Math.ceil(
              i.slideWidth * i.$slideTrack.children(".slick-slide").length
            )
          ))
        : i.options.variableWidth === !0
        ? i.$slideTrack.width(5e3 * i.slideCount)
        : ((i.slideWidth = Math.ceil(i.listWidth)),
          i.$slideTrack.height(
            Math.ceil(
              i.$slides.first().outerHeight(!0) *
                i.$slideTrack.children(".slick-slide").length
            )
          ));
    var e = i.$slides.first().outerWidth(!0) - i.$slides.first().width();
    i.options.variableWidth === !1 &&
      i.$slideTrack.children(".slick-slide").width(i.slideWidth - e);
  }),
  (e.prototype.setFade = function() {
    var e,
      t = this;
    t.$slides.each(function(o, s) {
      (e = t.slideWidth * o * -1),
        t.options.rtl === !0
          ? i(s).css({
              position: "relative",
              right: e,
              top: 0,
              zIndex: t.options.zIndex - 2,
              opacity: 0
            })
          : i(s).css({
              position: "relative",
              left: e,
              top: 0,
              zIndex: t.options.zIndex - 2,
              opacity: 0
            });
    }),
      t.$slides
        .eq(t.currentSlide)
        .css({ zIndex: t.options.zIndex - 1, opacity: 1 });
  }),
  (e.prototype.setHeight = function() {
    var i = this;
    if (
      1 === i.options.slidesToShow &&
      i.options.adaptiveHeight === !0 &&
      i.options.vertical === !1
    ) {
      var e = i.$slides.eq(i.currentSlide).outerHeight(!0);
      i.$list.css("height", e);
    }
  }),
  (e.prototype.setOption = e.prototype.slickSetOption = function() {
    var e,
      t,
      o,
      s,
      n,
      r = this,
      l = !1;
    if (
      ("object" === i.type(arguments[0])
        ? ((o = arguments[0]), (l = arguments[1]), (n = "multiple"))
        : "string" === i.type(arguments[0]) &&
          ((o = arguments[0]),
          (s = arguments[1]),
          (l = arguments[2]),
          "responsive" === arguments[0] && "array" === i.type(arguments[1])
            ? (n = "responsive")
            : "undefined" != typeof arguments[1] && (n = "single")),
      "single" === n)
    )
      r.options[o] = s;
    else if ("multiple" === n)
      i.each(o, function(i, e) {
        r.options[i] = e;
      });
    else if ("responsive" === n)
      for (t in s)
        if ("array" !== i.type(r.options.responsive))
          r.options.responsive = [s[t]];
        else {
          for (e = r.options.responsive.length - 1; e >= 0; )
            r.options.responsive[e].breakpoint === s[t].breakpoint &&
              r.options.responsive.splice(e, 1),
              e--;
          r.options.responsive.push(s[t]);
        }
    l && (r.unload(), r.reinit());
  }),
  (e.prototype.setPosition = function() {
    var i = this;
    i.setDimensions(),
      i.setHeight(),
      i.options.fade === !1
        ? i.setCSS(i.getLeft(i.currentSlide))
        : i.setFade(),
      i.$slider.trigger("setPosition", [i]);
  }),
  (e.prototype.setProps = function() {
    var i = this,
      e = document.body.style;
    (i.positionProp = i.options.vertical === !0 ? "top" : "left"),
      "top" === i.positionProp
        ? i.$slider.addClass("slick-vertical")
        : i.$slider.removeClass("slick-vertical"),
      (void 0 === e.WebkitTransition &&
        void 0 === e.MozTransition &&
        void 0 === e.msTransition) ||
        (i.options.useCSS === !0 && (i.cssTransitions = !0)),
      i.options.fade &&
        ("number" == typeof i.options.zIndex
          ? i.options.zIndex < 3 && (i.options.zIndex = 3)
          : (i.options.zIndex = i.defaults.zIndex)),
      void 0 !== e.OTransform &&
        ((i.animType = "OTransform"),
        (i.transformType = "-o-transform"),
        (i.transitionType = "OTransition"),
        void 0 === e.perspectiveProperty &&
          void 0 === e.webkitPerspective &&
          (i.animType = !1)),
      void 0 !== e.MozTransform &&
        ((i.animType = "MozTransform"),
        (i.transformType = "-moz-transform"),
        (i.transitionType = "MozTransition"),
        void 0 === e.perspectiveProperty &&
          void 0 === e.MozPerspective &&
          (i.animType = !1)),
      void 0 !== e.webkitTransform &&
        ((i.animType = "webkitTransform"),
        (i.transformType = "-webkit-transform"),
        (i.transitionType = "webkitTransition"),
        void 0 === e.perspectiveProperty &&
          void 0 === e.webkitPerspective &&
          (i.animType = !1)),
      void 0 !== e.msTransform &&
        ((i.animType = "msTransform"),
        (i.transformType = "-ms-transform"),
        (i.transitionType = "msTransition"),
        void 0 === e.msTransform && (i.animType = !1)),
      void 0 !== e.transform &&
        i.animType !== !1 &&
        ((i.animType = "transform"),
        (i.transformType = "transform"),
        (i.transitionType = "transition")),
      (i.transformsEnabled =
        i.options.useTransform && null !== i.animType && i.animType !== !1);
  }),
  (e.prototype.setSlideClasses = function(i) {
    var e,
      t,
      o,
      s,
      n = this;
    if (
      ((t = n.$slider
        .find(".slick-slide")
        .removeClass("slick-active slick-center slick-current")
        .attr("aria-hidden", "true")),
      n.$slides.eq(i).addClass("slick-current"),
      n.options.centerMode === !0)
    ) {
      var r = n.options.slidesToShow % 2 === 0 ? 1 : 0;
      (e = Math.floor(n.options.slidesToShow / 2)),
        n.options.infinite === !0 &&
          (i >= e && i <= n.slideCount - 1 - e
            ? n.$slides
                .slice(i - e + r, i + e + 1)
                .addClass("slick-active")
                .attr("aria-hidden", "false")
            : ((o = n.options.slidesToShow + i),
              t
                .slice(o - e + 1 + r, o + e + 2)
                .addClass("slick-active")
                .attr("aria-hidden", "false")),
          0 === i
            ? t
                .eq(t.length - 1 - n.options.slidesToShow)
                .addClass("slick-center")
            : i === n.slideCount - 1 &&
              t.eq(n.options.slidesToShow).addClass("slick-center")),
        n.$slides.eq(i).addClass("slick-center");
    } else
      i >= 0 && i <= n.slideCount - n.options.slidesToShow
        ? n.$slides
            .slice(i, i + n.options.slidesToShow)
            .addClass("slick-active")
            .attr("aria-hidden", "false")
        : t.length <= n.options.slidesToShow
        ? t.addClass("slick-active").attr("aria-hidden", "false")
        : ((s = n.slideCount % n.options.slidesToShow),
          (o = n.options.infinite === !0 ? n.options.slidesToShow + i : i),
          n.options.slidesToShow == n.options.slidesToScroll &&
          n.slideCount - i < n.options.slidesToShow
            ? t
                .slice(o - (n.options.slidesToShow - s), o + s)
                .addClass("slick-active")
                .attr("aria-hidden", "false")
            : t
                .slice(o, o + n.options.slidesToShow)
                .addClass("slick-active")
                .attr("aria-hidden", "false"));
    ("ondemand" !== n.options.lazyLoad &&
      "anticipated" !== n.options.lazyLoad) ||
      n.lazyLoad();
  }),
  (e.prototype.setupInfinite = function() {
    var e,
      t,
      o,
      s = this;
    if (
      (s.options.fade === !0 && (s.options.centerMode = !1),
      s.options.infinite === !0 &&
        s.options.fade === !1 &&
        ((t = null), s.slideCount > s.options.slidesToShow))
    ) {
      for (
        o =
          s.options.centerMode === !0
            ? s.options.slidesToShow + 1
            : s.options.slidesToShow,
          e = s.slideCount;
        e > s.slideCount - o;
        e -= 1
      )
        (t = e - 1),
          i(s.$slides[t])
            .clone(!0)
            .attr("id", "")
            .attr("data-slick-index", t - s.slideCount)
            .prependTo(s.$slideTrack)
            .addClass("slick-cloned");
      for (e = 0; e < o + s.slideCount; e += 1)
        (t = e),
          i(s.$slides[t])
            .clone(!0)
            .attr("id", "")
            .attr("data-slick-index", t + s.slideCount)
            .appendTo(s.$slideTrack)
            .addClass("slick-cloned");
      s.$slideTrack
        .find(".slick-cloned")
        .find("[id]")
        .each(function() {
          i(this).attr("id", "");
        });
    }
  }),
  (e.prototype.interrupt = function(i) {
    var e = this;
    i || e.autoPlay(), (e.interrupted = i);
  }),
  (e.prototype.selectHandler = function(e) {
    var t = this,
      o = i(e.target).is(".slick-slide")
        ? i(e.target)
        : i(e.target).parents(".slick-slide"),
      s = parseInt(o.attr("data-slick-index"));
    return (
      s || (s = 0),
      t.slideCount <= t.options.slidesToShow
        ? void t.slideHandler(s, !1, !0)
        : void t.slideHandler(s)
    );
  }),
  (e.prototype.slideHandler = function(i, e, t) {
    var o,
      s,
      n,
      r,
      l,
      d = null,
      a = this;
    if (
      ((e = e || !1),
      !(
        (a.animating === !0 && a.options.waitForAnimate === !0) ||
        (a.options.fade === !0 && a.currentSlide === i)
      ))
    )
      return (
        e === !1 && a.asNavFor(i),
        (o = i),
        (d = a.getLeft(o)),
        (r = a.getLeft(a.currentSlide)),
        (a.currentLeft = null === a.swipeLeft ? r : a.swipeLeft),
        a.options.infinite === !1 &&
        a.options.centerMode === !1 &&
        (i < 0 || i > a.getDotCount() * a.options.slidesToScroll)
          ? void (
              a.options.fade === !1 &&
              ((o = a.currentSlide),
              t !== !0 && a.slideCount > a.options.slidesToShow
                ? a.animateSlide(r, function() {
                    a.postSlide(o);
                  })
                : a.postSlide(o))
            )
          : a.options.infinite === !1 &&
            a.options.centerMode === !0 &&
            (i < 0 || i > a.slideCount - a.options.slidesToScroll)
          ? void (
              a.options.fade === !1 &&
              ((o = a.currentSlide),
              t !== !0 && a.slideCount > a.options.slidesToShow
                ? a.animateSlide(r, function() {
                    a.postSlide(o);
                  })
                : a.postSlide(o))
            )
          : (a.options.autoplay && clearInterval(a.autoPlayTimer),
            (s =
              o < 0
                ? a.slideCount % a.options.slidesToScroll !== 0
                  ? a.slideCount - (a.slideCount % a.options.slidesToScroll)
                  : a.slideCount + o
                : o >= a.slideCount
                ? a.slideCount % a.options.slidesToScroll !== 0
                  ? 0
                  : o - a.slideCount
                : o),
            (a.animating = !0),
            a.$slider.trigger("beforeChange", [a, a.currentSlide, s]),
            (n = a.currentSlide),
            (a.currentSlide = s),
            a.setSlideClasses(a.currentSlide),
            a.options.asNavFor &&
              ((l = a.getNavTarget()),
              (l = l.slick("getSlick")),
              l.slideCount <= l.options.slidesToShow &&
                l.setSlideClasses(a.currentSlide)),
            a.updateDots(),
            a.updateArrows(),
            a.options.fade === !0
              ? (t !== !0
                  ? (a.fadeSlideOut(n),
                    a.fadeSlide(s, function() {
                      a.postSlide(s);
                    }))
                  : a.postSlide(s),
                void a.animateHeight())
              : void (t !== !0 && a.slideCount > a.options.slidesToShow
                  ? a.animateSlide(d, function() {
                      a.postSlide(s);
                    })
                  : a.postSlide(s)))
      );
  }),
  (e.prototype.startLoad = function() {
    var i = this;
    i.options.arrows === !0 &&
      i.slideCount > i.options.slidesToShow &&
      (i.$prevArrow.hide(), i.$nextArrow.hide()),
      i.options.dots === !0 &&
        i.slideCount > i.options.slidesToShow &&
        i.$dots.hide(),
      i.$slider.addClass("slick-loading");
  }),
  (e.prototype.swipeDirection = function() {
    var i,
      e,
      t,
      o,
      s = this;
    return (
      (i = s.touchObject.startX - s.touchObject.curX),
      (e = s.touchObject.startY - s.touchObject.curY),
      (t = Math.atan2(e, i)),
      (o = Math.round((180 * t) / Math.PI)),
      o < 0 && (o = 360 - Math.abs(o)),
      o <= 45 && o >= 0
        ? s.options.rtl === !1
          ? "left"
          : "right"
        : o <= 360 && o >= 315
        ? s.options.rtl === !1
          ? "left"
          : "right"
        : o >= 135 && o <= 225
        ? s.options.rtl === !1
          ? "right"
          : "left"
        : s.options.verticalSwiping === !0
        ? o >= 35 && o <= 135
          ? "down"
          : "up"
        : "vertical"
    );
  }),
  (e.prototype.swipeEnd = function(i) {
    var e,
      t,
      o = this;
    if (((o.dragging = !1), (o.swiping = !1), o.scrolling))
      return (o.scrolling = !1), !1;
    if (
      ((o.interrupted = !1),
      (o.shouldClick = !(o.touchObject.swipeLength > 10)),
      void 0 === o.touchObject.curX)
    )
      return !1;
    if (
      (o.touchObject.edgeHit === !0 &&
        o.$slider.trigger("edge", [o, o.swipeDirection()]),
      o.touchObject.swipeLength >= o.touchObject.minSwipe)
    ) {
      switch ((t = o.swipeDirection())) {
        case "left":
        case "down":
          (e = o.options.swipeToSlide
            ? o.checkNavigable(o.currentSlide + o.getSlideCount())
            : o.currentSlide + o.getSlideCount()),
            (o.currentDirection = 0);
          break;
        case "right":
        case "up":
          (e = o.options.swipeToSlide
            ? o.checkNavigable(o.currentSlide - o.getSlideCount())
            : o.currentSlide - o.getSlideCount()),
            (o.currentDirection = 1);
      }
      "vertical" != t &&
        (o.slideHandler(e),
        (o.touchObject = {}),
        o.$slider.trigger("swipe", [o, t]));
    } else
      o.touchObject.startX !== o.touchObject.curX &&
        (o.slideHandler(o.currentSlide), (o.touchObject = {}));
  }),
  (e.prototype.swipeHandler = function(i) {
    var e = this;
    if (
      !(
        e.options.swipe === !1 ||
        ("ontouchend" in document && e.options.swipe === !1) ||
        (e.options.draggable === !1 && i.type.indexOf("mouse") !== -1)
      )
    )
      switch (
        ((e.touchObject.fingerCount =
          i.originalEvent && void 0 !== i.originalEvent.touches
            ? i.originalEvent.touches.length
            : 1),
        (e.touchObject.minSwipe = e.listWidth / e.options.touchThreshold),
        e.options.verticalSwiping === !0 &&
          (e.touchObject.minSwipe = e.listHeight / e.options.touchThreshold),
        i.data.action)
      ) {
        case "start":
          e.swipeStart(i);
          break;
        case "move":
          e.swipeMove(i);
          break;
        case "end":
          e.swipeEnd(i);
      }
  }),
  (e.prototype.swipeMove = function(i) {
    var e,
      t,
      o,
      s,
      n,
      r,
      l = this;
    return (
      (n = void 0 !== i.originalEvent ? i.originalEvent.touches : null),
      !(!l.dragging || l.scrolling || (n && 1 !== n.length)) &&
        ((e = l.getLeft(l.currentSlide)),
        (l.touchObject.curX = void 0 !== n ? n[0].pageX : i.clientX),
        (l.touchObject.curY = void 0 !== n ? n[0].pageY : i.clientY),
        (l.touchObject.swipeLength = Math.round(
          Math.sqrt(Math.pow(l.touchObject.curX - l.touchObject.startX, 2))
        )),
        (r = Math.round(
          Math.sqrt(Math.pow(l.touchObject.curY - l.touchObject.startY, 2))
        )),
        !l.options.verticalSwiping && !l.swiping && r > 4
          ? ((l.scrolling = !0), !1)
          : (l.options.verticalSwiping === !0 &&
              (l.touchObject.swipeLength = r),
            (t = l.swipeDirection()),
            void 0 !== i.originalEvent &&
              l.touchObject.swipeLength > 4 &&
              ((l.swiping = !0), i.preventDefault()),
            (s =
              (l.options.rtl === !1 ? 1 : -1) *
              (l.touchObject.curX > l.touchObject.startX ? 1 : -1)),
            l.options.verticalSwiping === !0 &&
              (s = l.touchObject.curY > l.touchObject.startY ? 1 : -1),
            (o = l.touchObject.swipeLength),
            (l.touchObject.edgeHit = !1),
            l.options.infinite === !1 &&
              ((0 === l.currentSlide && "right" === t) ||
                (l.currentSlide >= l.getDotCount() && "left" === t)) &&
              ((o = l.touchObject.swipeLength * l.options.edgeFriction),
              (l.touchObject.edgeHit = !0)),
            l.options.vertical === !1
              ? (l.swipeLeft = e + o * s)
              : (l.swipeLeft = e + o * (l.$list.height() / l.listWidth) * s),
            l.options.verticalSwiping === !0 && (l.swipeLeft = e + o * s),
            l.options.fade !== !0 &&
              l.options.touchMove !== !1 &&
              (l.animating === !0
                ? ((l.swipeLeft = null), !1)
                : void l.setCSS(l.swipeLeft))))
    );
  }),
  (e.prototype.swipeStart = function(i) {
    var e,
      t = this;
    return (
      (t.interrupted = !0),
      1 !== t.touchObject.fingerCount ||
      t.slideCount <= t.options.slidesToShow
        ? ((t.touchObject = {}), !1)
        : (void 0 !== i.originalEvent &&
            void 0 !== i.originalEvent.touches &&
            (e = i.originalEvent.touches[0]),
          (t.touchObject.startX = t.touchObject.curX =
            void 0 !== e ? e.pageX : i.clientX),
          (t.touchObject.startY = t.touchObject.curY =
            void 0 !== e ? e.pageY : i.clientY),
          void (t.dragging = !0))
    );
  }),
  (e.prototype.unfilterSlides = e.prototype.slickUnfilter = function() {
    var i = this;
    null !== i.$slidesCache &&
      (i.unload(),
      i.$slideTrack.children(this.options.slide).detach(),
      i.$slidesCache.appendTo(i.$slideTrack),
      i.reinit());
  }),
  (e.prototype.unload = function() {
    var e = this;
    i(".slick-cloned", e.$slider).remove(),
      e.$dots && e.$dots.remove(),
      e.$prevArrow &&
        e.htmlExpr.test(e.options.prevArrow) &&
        e.$prevArrow.remove(),
      e.$nextArrow &&
        e.htmlExpr.test(e.options.nextArrow) &&
        e.$nextArrow.remove(),
      e.$slides
        .removeClass("slick-slide slick-active slick-visible slick-current")
        .attr("aria-hidden", "true")
        .css("width", "");
  }),
  (e.prototype.unslick = function(i) {
    var e = this;
    e.$slider.trigger("unslick", [e, i]), e.destroy();
  }),
  (e.prototype.updateArrows = function() {
    var i,
      e = this;
    (i = Math.floor(e.options.slidesToShow / 2)),
      e.options.arrows === !0 &&
        e.slideCount > e.options.slidesToShow &&
        !e.options.infinite &&
        (e.$prevArrow
          .removeClass("slick-disabled")
          .attr("aria-disabled", "false"),
        e.$nextArrow
          .removeClass("slick-disabled")
          .attr("aria-disabled", "false"),
        0 === e.currentSlide
          ? (e.$prevArrow
              .addClass("slick-disabled")
              .attr("aria-disabled", "true"),
            e.$nextArrow
              .removeClass("slick-disabled")
              .attr("aria-disabled", "false"))
          : e.currentSlide >= e.slideCount - e.options.slidesToShow &&
            e.options.centerMode === !1
          ? (e.$nextArrow
              .addClass("slick-disabled")
              .attr("aria-disabled", "true"),
            e.$prevArrow
              .removeClass("slick-disabled")
              .attr("aria-disabled", "false"))
          : e.currentSlide >= e.slideCount - 1 &&
            e.options.centerMode === !0 &&
            (e.$nextArrow
              .addClass("slick-disabled")
              .attr("aria-disabled", "true"),
            e.$prevArrow
              .removeClass("slick-disabled")
              .attr("aria-disabled", "false")));
  }),
  (e.prototype.updateDots = function() {
    var i = this;
    null !== i.$dots &&
      (i.$dots
        .find("li")
        .removeClass("slick-active")
        .end(),
      i.$dots
        .find("li")
        .eq(Math.floor(i.currentSlide / i.options.slidesToScroll))
        .addClass("slick-active"));
  }),
  (e.prototype.visibility = function() {
    var i = this;
    i.options.autoplay &&
      (document[i.hidden] ? (i.interrupted = !0) : (i.interrupted = !1));
  }),
  (i.fn.slick = function() {
    var i,
      t,
      o = this,
      s = arguments[0],
      n = Array.prototype.slice.call(arguments, 1),
      r = o.length;
    for (i = 0; i < r; i++)
      if (
        ("object" == typeof s || "undefined" == typeof s
          ? (o[i].slick = new e(o[i], s))
          : (t = o[i].slick[s].apply(o[i].slick, n)),
        "undefined" != typeof t)
      )
        return t;
    return o;
  });

});

/**

* Swiper 4.2.0
* Most modern mobile touch slider and framework with hardware accelerated transitions
* http://www.idangero.us/swiper/
*
* Copyright 2014-2018 Vladimir Kharlampidi
*
* Released under the MIT License
*
* Released on: March 16, 2018
*/

!(function(e, t) {

"object" == typeof exports && "undefined" != typeof module
  ? (module.exports = t())
  : "function" == typeof define && define.amd
  ? define(t)
  : (e.Swiper = t());

})(this, function() {

"use strict";
var e =
    "undefined" == typeof document
      ? {
          body: {},
          addEventListener: function() {},
          removeEventListener: function() {},
          activeElement: { blur: function() {}, nodeName: "" },
          querySelector: function() {
            return null;
          },
          querySelectorAll: function() {
            return [];
          },
          getElementById: function() {
            return null;
          },
          createEvent: function() {
            return { initEvent: function() {} };
          },
          createElement: function() {
            return {
              children: [],
              childNodes: [],
              style: {},
              setAttribute: function() {},
              getElementsByTagName: function() {
                return [];
              }
            };
          },
          location: { hash: "" }
        }
      : document,
  t =
    "undefined" == typeof window
      ? {
          document: e,
          navigator: { userAgent: "" },
          location: {},
          history: {},
          CustomEvent: function() {
            return this;
          },
          addEventListener: function() {},
          removeEventListener: function() {},
          getComputedStyle: function() {
            return {
              getPropertyValue: function() {
                return "";
              }
            };
          },
          Image: function() {},
          Date: function() {},
          screen: {},
          setTimeout: function() {},
          clearTimeout: function() {}
        }
      : window,
  i = function(e) {
    for (var t = 0; t < e.length; t += 1) this[t] = e[t];
    return (this.length = e.length), this;
  };
function s(s, a) {
  var r = [],
    n = 0;
  if (s && !a && s instanceof i) return s;
  if (s)
    if ("string" == typeof s) {
      var o,
        l,
        d = s.trim();
      if (d.indexOf("<") >= 0 && d.indexOf(">") >= 0) {
        var h = "div";
        for (
          0 === d.indexOf("<li") && (h = "ul"),
            0 === d.indexOf("<tr") && (h = "tbody"),
            (0 !== d.indexOf("<td") && 0 !== d.indexOf("<th")) || (h = "tr"),
            0 === d.indexOf("<tbody") && (h = "table"),
            0 === d.indexOf("<option") && (h = "select"),
            (l = e.createElement(h)).innerHTML = d,
            n = 0;
          n < l.childNodes.length;
          n += 1
        )
          r.push(l.childNodes[n]);
      } else
        for (
          o =
            a || "#" !== s[0] || s.match(/[ .<>:~]/)
              ? (a || e).querySelectorAll(s.trim())
              : [e.getElementById(s.trim().split("#")[1])],
            n = 0;
          n < o.length;
          n += 1
        )
          o[n] && r.push(o[n]);
    } else if (s.nodeType || s === t || s === e) r.push(s);
    else if (s.length > 0 && s[0].nodeType)
      for (n = 0; n < s.length; n += 1) r.push(s[n]);
  return new i(r);
}
function a(e) {
  for (var t = [], i = 0; i < e.length; i += 1)
    -1 === t.indexOf(e[i]) && t.push(e[i]);
  return t;
}
(s.fn = i.prototype), (s.Class = i), (s.Dom7 = i);
var r = {
  addClass: function(e) {
    if (void 0 === e) return this;
    for (var t = e.split(" "), i = 0; i < t.length; i += 1)
      for (var s = 0; s < this.length; s += 1)
        void 0 !== this[s].classList && this[s].classList.add(t[i]);
    return this;
  },
  removeClass: function(e) {
    for (var t = e.split(" "), i = 0; i < t.length; i += 1)
      for (var s = 0; s < this.length; s += 1)
        void 0 !== this[s].classList && this[s].classList.remove(t[i]);
    return this;
  },
  hasClass: function(e) {
    return !!this[0] && this[0].classList.contains(e);
  },
  toggleClass: function(e) {
    for (var t = e.split(" "), i = 0; i < t.length; i += 1)
      for (var s = 0; s < this.length; s += 1)
        void 0 !== this[s].classList && this[s].classList.toggle(t[i]);
    return this;
  },
  attr: function(e, t) {
    var i = arguments;
    if (1 === arguments.length && "string" == typeof e)
      return this[0] ? this[0].getAttribute(e) : void 0;
    for (var s = 0; s < this.length; s += 1)
      if (2 === i.length) this[s].setAttribute(e, t);
      else
        for (var a in e) (this[s][a] = e[a]), this[s].setAttribute(a, e[a]);
    return this;
  },
  removeAttr: function(e) {
    for (var t = 0; t < this.length; t += 1) this[t].removeAttribute(e);
    return this;
  },
  data: function(e, t) {
    var i;
    if (void 0 !== t) {
      for (var s = 0; s < this.length; s += 1)
        (i = this[s]).dom7ElementDataStorage ||
          (i.dom7ElementDataStorage = {}),
          (i.dom7ElementDataStorage[e] = t);
      return this;
    }
    if ((i = this[0])) {
      if (i.dom7ElementDataStorage && e in i.dom7ElementDataStorage)
        return i.dom7ElementDataStorage[e];
      var a = i.getAttribute("data-" + e);
      return a || void 0;
    }
  },
  transform: function(e) {
    for (var t = 0; t < this.length; t += 1) {
      var i = this[t].style;
      (i.webkitTransform = e), (i.transform = e);
    }
    return this;
  },
  transition: function(e) {
    "string" != typeof e && (e += "ms");
    for (var t = 0; t < this.length; t += 1) {
      var i = this[t].style;
      (i.webkitTransitionDuration = e), (i.transitionDuration = e);
    }
    return this;
  },
  on: function() {
    for (var e, t = [], i = arguments.length; i--; ) t[i] = arguments[i];
    var a = t[0],
      r = t[1],
      n = t[2],
      o = t[3];
    function l(e) {
      var t = e.target;
      if (t) {
        var i = e.target.dom7EventData || [];
        if ((i.unshift(e), s(t).is(r))) n.apply(t, i);
        else
          for (var a = s(t).parents(), o = 0; o < a.length; o += 1)
            s(a[o]).is(r) && n.apply(a[o], i);
      }
    }
    function d(e) {
      var t = e && e.target ? e.target.dom7EventData || [] : [];
      t.unshift(e), n.apply(this, t);
    }
    "function" == typeof t[1] &&
      ((a = (e = t)[0]), (n = e[1]), (o = e[2]), (r = void 0)),
      o || (o = !1);
    for (var h, p = a.split(" "), c = 0; c < this.length; c += 1) {
      var u = this[c];
      if (r)
        for (h = 0; h < p.length; h += 1)
          u.dom7LiveListeners || (u.dom7LiveListeners = []),
            u.dom7LiveListeners.push({
              type: a,
              listener: n,
              proxyListener: l
            }),
            u.addEventListener(p[h], l, o);
      else
        for (h = 0; h < p.length; h += 1)
          u.dom7Listeners || (u.dom7Listeners = []),
            u.dom7Listeners.push({ type: a, listener: n, proxyListener: d }),
            u.addEventListener(p[h], d, o);
    }
    return this;
  },
  off: function() {
    for (var e, t = [], i = arguments.length; i--; ) t[i] = arguments[i];
    var s = t[0],
      a = t[1],
      r = t[2],
      n = t[3];
    "function" == typeof t[1] &&
      ((s = (e = t)[0]), (r = e[1]), (n = e[2]), (a = void 0)),
      n || (n = !1);
    for (var o = s.split(" "), l = 0; l < o.length; l += 1)
      for (var d = 0; d < this.length; d += 1) {
        var h = this[d];
        if (a) {
          if (h.dom7LiveListeners)
            for (var p = 0; p < h.dom7LiveListeners.length; p += 1)
              r
                ? h.dom7LiveListeners[p].listener === r &&
                  h.removeEventListener(
                    o[l],
                    h.dom7LiveListeners[p].proxyListener,
                    n
                  )
                : h.dom7LiveListeners[p].type === o[l] &&
                  h.removeEventListener(
                    o[l],
                    h.dom7LiveListeners[p].proxyListener,
                    n
                  );
        } else if (h.dom7Listeners)
          for (var c = 0; c < h.dom7Listeners.length; c += 1)
            r
              ? h.dom7Listeners[c].listener === r &&
                h.removeEventListener(
                  o[l],
                  h.dom7Listeners[c].proxyListener,
                  n
                )
              : h.dom7Listeners[c].type === o[l] &&
                h.removeEventListener(
                  o[l],
                  h.dom7Listeners[c].proxyListener,
                  n
                );
      }
    return this;
  },
  trigger: function() {
    for (var i = [], s = arguments.length; s--; ) i[s] = arguments[s];
    for (var a = i[0].split(" "), r = i[1], n = 0; n < a.length; n += 1)
      for (var o = 0; o < this.length; o += 1) {
        var l = void 0;
        try {
          l = new t.CustomEvent(a[n], {
            detail: r,
            bubbles: !0,
            cancelable: !0
          });
        } catch (t) {
          (l = e.createEvent("Event")).initEvent(a[n], !0, !0),
            (l.detail = r);
        }
        (this[o].dom7EventData = i.filter(function(e, t) {
          return t > 0;
        })),
          this[o].dispatchEvent(l),
          (this[o].dom7EventData = []),
          delete this[o].dom7EventData;
      }
    return this;
  },
  transitionEnd: function(e) {
    var t,
      i = ["webkitTransitionEnd", "transitionend"],
      s = this;
    function a(r) {
      if (r.target === this)
        for (e.call(this, r), t = 0; t < i.length; t += 1) s.off(i[t], a);
    }
    if (e) for (t = 0; t < i.length; t += 1) s.on(i[t], a);
    return this;
  },
  outerWidth: function(e) {
    if (this.length > 0) {
      if (e) {
        var t = this.styles();
        return (
          this[0].offsetWidth +
          parseFloat(t.getPropertyValue("margin-right")) +
          parseFloat(t.getPropertyValue("margin-left"))
        );
      }
      return this[0].offsetWidth;
    }
    return null;
  },
  outerHeight: function(e) {
    if (this.length > 0) {
      if (e) {
        var t = this.styles();
        return (
          this[0].offsetHeight +
          parseFloat(t.getPropertyValue("margin-top")) +
          parseFloat(t.getPropertyValue("margin-bottom"))
        );
      }
      return this[0].offsetHeight;
    }
    return null;
  },
  offset: function() {
    if (this.length > 0) {
      var i = this[0],
        s = i.getBoundingClientRect(),
        a = e.body,
        r = i.clientTop || a.clientTop || 0,
        n = i.clientLeft || a.clientLeft || 0,
        o = i === t ? t.scrollY : i.scrollTop,
        l = i === t ? t.scrollX : i.scrollLeft;
      return { top: s.top + o - r, left: s.left + l - n };
    }
    return null;
  },
  css: function(e, i) {
    var s;
    if (1 === arguments.length) {
      if ("string" != typeof e) {
        for (s = 0; s < this.length; s += 1)
          for (var a in e) this[s].style[a] = e[a];
        return this;
      }
      if (this[0])
        return t.getComputedStyle(this[0], null).getPropertyValue(e);
    }
    if (2 === arguments.length && "string" == typeof e) {
      for (s = 0; s < this.length; s += 1) this[s].style[e] = i;
      return this;
    }
    return this;
  },
  each: function(e) {
    if (!e) return this;
    for (var t = 0; t < this.length; t += 1)
      if (!1 === e.call(this[t], t, this[t])) return this;
    return this;
  },
  html: function(e) {
    if (void 0 === e) return this[0] ? this[0].innerHTML : void 0;
    for (var t = 0; t < this.length; t += 1) this[t].innerHTML = e;
    return this;
  },
  text: function(e) {
    if (void 0 === e) return this[0] ? this[0].textContent.trim() : null;
    for (var t = 0; t < this.length; t += 1) this[t].textContent = e;
    return this;
  },
  is: function(a) {
    var r,
      n,
      o = this[0];
    if (!o || void 0 === a) return !1;
    if ("string" == typeof a) {
      if (o.matches) return o.matches(a);
      if (o.webkitMatchesSelector) return o.webkitMatchesSelector(a);
      if (o.msMatchesSelector) return o.msMatchesSelector(a);
      for (r = s(a), n = 0; n < r.length; n += 1) if (r[n] === o) return !0;
      return !1;
    }
    if (a === e) return o === e;
    if (a === t) return o === t;
    if (a.nodeType || a instanceof i) {
      for (r = a.nodeType ? [a] : a, n = 0; n < r.length; n += 1)
        if (r[n] === o) return !0;
      return !1;
    }
    return !1;
  },
  index: function() {
    var e,
      t = this[0];
    if (t) {
      for (e = 0; null !== (t = t.previousSibling); )
        1 === t.nodeType && (e += 1);
      return e;
    }
  },
  eq: function(e) {
    if (void 0 === e) return this;
    var t,
      s = this.length;
    return new i(
      e > s - 1 ? [] : e < 0 ? ((t = s + e) < 0 ? [] : [this[t]]) : [this[e]]
    );
  },
  append: function() {
    for (var t, s = [], a = arguments.length; a--; ) s[a] = arguments[a];
    for (var r = 0; r < s.length; r += 1) {
      t = s[r];
      for (var n = 0; n < this.length; n += 1)
        if ("string" == typeof t) {
          var o = e.createElement("div");
          for (o.innerHTML = t; o.firstChild; )
            this[n].appendChild(o.firstChild);
        } else if (t instanceof i)
          for (var l = 0; l < t.length; l += 1) this[n].appendChild(t[l]);
        else this[n].appendChild(t);
    }
    return this;
  },
  prepend: function(t) {
    var s, a;
    for (s = 0; s < this.length; s += 1)
      if ("string" == typeof t) {
        var r = e.createElement("div");
        for (r.innerHTML = t, a = r.childNodes.length - 1; a >= 0; a -= 1)
          this[s].insertBefore(r.childNodes[a], this[s].childNodes[0]);
      } else if (t instanceof i)
        for (a = 0; a < t.length; a += 1)
          this[s].insertBefore(t[a], this[s].childNodes[0]);
      else this[s].insertBefore(t, this[s].childNodes[0]);
    return this;
  },
  next: function(e) {
    return this.length > 0
      ? e
        ? this[0].nextElementSibling && s(this[0].nextElementSibling).is(e)
          ? new i([this[0].nextElementSibling])
          : new i([])
        : this[0].nextElementSibling
        ? new i([this[0].nextElementSibling])
        : new i([])
      : new i([]);
  },
  nextAll: function(e) {
    var t = [],
      a = this[0];
    if (!a) return new i([]);
    for (; a.nextElementSibling; ) {
      var r = a.nextElementSibling;
      e ? s(r).is(e) && t.push(r) : t.push(r), (a = r);
    }
    return new i(t);
  },
  prev: function(e) {
    if (this.length > 0) {
      var t = this[0];
      return e
        ? t.previousElementSibling && s(t.previousElementSibling).is(e)
          ? new i([t.previousElementSibling])
          : new i([])
        : t.previousElementSibling
        ? new i([t.previousElementSibling])
        : new i([]);
    }
    return new i([]);
  },
  prevAll: function(e) {
    var t = [],
      a = this[0];
    if (!a) return new i([]);
    for (; a.previousElementSibling; ) {
      var r = a.previousElementSibling;
      e ? s(r).is(e) && t.push(r) : t.push(r), (a = r);
    }
    return new i(t);
  },
  parent: function(e) {
    for (var t = [], i = 0; i < this.length; i += 1)
      null !== this[i].parentNode &&
        (e
          ? s(this[i].parentNode).is(e) && t.push(this[i].parentNode)
          : t.push(this[i].parentNode));
    return s(a(t));
  },
  parents: function(e) {
    for (var t = [], i = 0; i < this.length; i += 1)
      for (var r = this[i].parentNode; r; )
        e ? s(r).is(e) && t.push(r) : t.push(r), (r = r.parentNode);
    return s(a(t));
  },
  closest: function(e) {
    var t = this;
    return void 0 === e
      ? new i([])
      : (t.is(e) || (t = t.parents(e).eq(0)), t);
  },
  find: function(e) {
    for (var t = [], s = 0; s < this.length; s += 1)
      for (var a = this[s].querySelectorAll(e), r = 0; r < a.length; r += 1)
        t.push(a[r]);
    return new i(t);
  },
  children: function(e) {
    for (var t = [], r = 0; r < this.length; r += 1)
      for (var n = this[r].childNodes, o = 0; o < n.length; o += 1)
        e
          ? 1 === n[o].nodeType && s(n[o]).is(e) && t.push(n[o])
          : 1 === n[o].nodeType && t.push(n[o]);
    return new i(a(t));
  },
  remove: function() {
    for (var e = 0; e < this.length; e += 1)
      this[e].parentNode && this[e].parentNode.removeChild(this[e]);
    return this;
  },
  add: function() {
    for (var e = [], t = arguments.length; t--; ) e[t] = arguments[t];
    var i, a;
    for (i = 0; i < e.length; i += 1) {
      var r = s(e[i]);
      for (a = 0; a < r.length; a += 1)
        (this[this.length] = r[a]), (this.length += 1);
    }
    return this;
  },
  styles: function() {
    return this[0] ? t.getComputedStyle(this[0], null) : {};
  }
};
Object.keys(r).forEach(function(e) {
  s.fn[e] = r[e];
});
var n,
  o,
  l,
  d = {
    deleteProps: function(e) {
      var t = e;
      Object.keys(t).forEach(function(e) {
        try {
          t[e] = null;
        } catch (e) {}
        try {
          delete t[e];
        } catch (e) {}
      });
    },
    nextTick: function(e, t) {
      return void 0 === t && (t = 0), setTimeout(e, t);
    },
    now: function() {
      return Date.now();
    },
    getTranslate: function(e, i) {
      var s, a, r;
      void 0 === i && (i = "x");
      var n = t.getComputedStyle(e, null);
      return (
        t.WebKitCSSMatrix
          ? ((a = n.transform || n.webkitTransform).split(",").length > 6 &&
              (a = a
                .split(", ")
                .map(function(e) {
                  return e.replace(",", ".");
                })
                .join(", ")),
            (r = new t.WebKitCSSMatrix("none" === a ? "" : a)))
          : (s = (r =
              n.MozTransform ||
              n.OTransform ||
              n.MsTransform ||
              n.msTransform ||
              n.transform ||
              n
                .getPropertyValue("transform")
                .replace("translate(", "matrix(1, 0, 0, 1,"))
              .toString()
              .split(",")),
        "x" === i &&
          (a = t.WebKitCSSMatrix
            ? r.m41
            : 16 === s.length
            ? parseFloat(s[12])
            : parseFloat(s[4])),
        "y" === i &&
          (a = t.WebKitCSSMatrix
            ? r.m42
            : 16 === s.length
            ? parseFloat(s[13])
            : parseFloat(s[5])),
        a || 0
      );
    },
    parseUrlQuery: function(e) {
      var i,
        s,
        a,
        r,
        n = {},
        o = e || t.location.href;
      if ("string" == typeof o && o.length)
        for (
          r = (s = (o = o.indexOf("?") > -1 ? o.replace(/\S*\?/, "") : "")
            .split("&")
            .filter(function(e) {
              return "" !== e;
            })).length,
            i = 0;
          i < r;
          i += 1
        )
          (a = s[i].replace(/#\S+/g, "").split("=")),
            (n[decodeURIComponent(a[0])] =
              void 0 === a[1] ? void 0 : decodeURIComponent(a[1]) || "");
      return n;
    },
    isObject: function(e) {
      return (
        "object" == typeof e &&
        null !== e &&
        e.constructor &&
        e.constructor === Object
      );
    },
    extend: function() {
      for (var e = [], t = arguments.length; t--; ) e[t] = arguments[t];
      for (var i = Object(e[0]), s = 1; s < e.length; s += 1) {
        var a = e[s];
        if (void 0 !== a && null !== a)
          for (
            var r = Object.keys(Object(a)), n = 0, o = r.length;
            n < o;
            n += 1
          ) {
            var l = r[n],
              h = Object.getOwnPropertyDescriptor(a, l);
            void 0 !== h &&
              h.enumerable &&
              (d.isObject(i[l]) && d.isObject(a[l])
                ? d.extend(i[l], a[l])
                : !d.isObject(i[l]) && d.isObject(a[l])
                ? ((i[l] = {}), d.extend(i[l], a[l]))
                : (i[l] = a[l]));
          }
      }
      return i;
    }
  },
  h =
    ((l = e.createElement("div")),
    {
      touch:
        (t.Modernizr && !0 === t.Modernizr.touch) ||
        !!(
          "ontouchstart" in t ||
          (t.DocumentTouch && e instanceof t.DocumentTouch)
        ),
      pointerEvents: !(!t.navigator.pointerEnabled && !t.PointerEvent),
      prefixedPointerEvents: !!t.navigator.msPointerEnabled,
      transition:
        ((o = l.style),
        "transition" in o || "webkitTransition" in o || "MozTransition" in o),
      transforms3d:
        (t.Modernizr && !0 === t.Modernizr.csstransforms3d) ||
        ((n = l.style),
        "webkitPerspective" in n ||
          "MozPerspective" in n ||
          "OPerspective" in n ||
          "MsPerspective" in n ||
          "perspective" in n),
      flexbox: (function() {
        for (
          var e = l.style,
            t = "alignItems webkitAlignItems webkitBoxAlign msFlexAlign mozBoxAlign webkitFlexDirection msFlexDirection mozBoxDirection mozBoxOrient webkitBoxDirection webkitBoxOrient".split(
              " "
            ),
            i = 0;
          i < t.length;
          i += 1
        )
          if (t[i] in e) return !0;
        return !1;
      })(),
      observer: "MutationObserver" in t || "WebkitMutationObserver" in t,
      passiveListener: (function() {
        var e = !1;
        try {
          var i = Object.defineProperty({}, "passive", {
            get: function() {
              e = !0;
            }
          });
          t.addEventListener("testPassiveListener", null, i);
        } catch (e) {}
        return e;
      })(),
      gestures: "ongesturestart" in t
    }),
  p = function(e) {
    void 0 === e && (e = {});
    var t = this;
    (t.params = e),
      (t.eventsListeners = {}),
      t.params &&
        t.params.on &&
        Object.keys(t.params.on).forEach(function(e) {
          t.on(e, t.params.on[e]);
        });
  },
  c = { components: { configurable: !0 } };
(p.prototype.on = function(e, t, i) {
  var s = this;
  if ("function" != typeof t) return s;
  var a = i ? "unshift" : "push";
  return (
    e.split(" ").forEach(function(e) {
      s.eventsListeners[e] || (s.eventsListeners[e] = []),
        s.eventsListeners[e][a](t);
    }),
    s
  );
}),
  (p.prototype.once = function(e, t, i) {
    var s = this;
    if ("function" != typeof t) return s;
    return s.on(
      e,
      function i() {
        for (var a = [], r = arguments.length; r--; ) a[r] = arguments[r];
        t.apply(s, a), s.off(e, i);
      },
      i
    );
  }),
  (p.prototype.off = function(e, t) {
    var i = this;
    return (
      e.split(" ").forEach(function(e) {
        void 0 === t
          ? (i.eventsListeners[e] = [])
          : i.eventsListeners[e].forEach(function(s, a) {
              s === t && i.eventsListeners[e].splice(a, 1);
            });
      }),
      i
    );
  }),
  (p.prototype.emit = function() {
    for (var e = [], t = arguments.length; t--; ) e[t] = arguments[t];
    var i,
      s,
      a,
      r = this;
    return r.eventsListeners
      ? ("string" == typeof e[0] || Array.isArray(e[0])
          ? ((i = e[0]), (s = e.slice(1, e.length)), (a = r))
          : ((i = e[0].events), (s = e[0].data), (a = e[0].context || r)),
        (Array.isArray(i) ? i : i.split(" ")).forEach(function(e) {
          if (r.eventsListeners[e]) {
            var t = [];
            r.eventsListeners[e].forEach(function(e) {
              t.push(e);
            }),
              t.forEach(function(e) {
                e.apply(a, s);
              });
          }
        }),
        r)
      : r;
  }),
  (p.prototype.useModulesParams = function(e) {
    var t = this;
    t.modules &&
      Object.keys(t.modules).forEach(function(i) {
        var s = t.modules[i];
        s.params && d.extend(e, s.params);
      });
  }),
  (p.prototype.useModules = function(e) {
    void 0 === e && (e = {});
    var t = this;
    t.modules &&
      Object.keys(t.modules).forEach(function(i) {
        var s = t.modules[i],
          a = e[i] || {};
        s.instance &&
          Object.keys(s.instance).forEach(function(e) {
            var i = s.instance[e];
            t[e] = "function" == typeof i ? i.bind(t) : i;
          }),
          s.on &&
            t.on &&
            Object.keys(s.on).forEach(function(e) {
              t.on(e, s.on[e]);
            }),
          s.create && s.create.bind(t)(a);
      });
  }),
  (c.components.set = function(e) {
    this.use && this.use(e);
  }),
  (p.installModule = function(e) {
    for (var t = [], i = arguments.length - 1; i-- > 0; )
      t[i] = arguments[i + 1];
    var s = this;
    s.prototype.modules || (s.prototype.modules = {});
    var a = e.name || Object.keys(s.prototype.modules).length + "_" + d.now();
    return (
      (s.prototype.modules[a] = e),
      e.proto &&
        Object.keys(e.proto).forEach(function(t) {
          s.prototype[t] = e.proto[t];
        }),
      e.static &&
        Object.keys(e.static).forEach(function(t) {
          s[t] = e.static[t];
        }),
      e.install && e.install.apply(s, t),
      s
    );
  }),
  (p.use = function(e) {
    for (var t = [], i = arguments.length - 1; i-- > 0; )
      t[i] = arguments[i + 1];
    var s = this;
    return Array.isArray(e)
      ? (e.forEach(function(e) {
          return s.installModule(e);
        }),
        s)
      : s.installModule.apply(s, [e].concat(t));
  }),
  Object.defineProperties(p, c);
var u = {
  updateSize: function() {
    var e,
      t,
      i = this.$el;
    (e = void 0 !== this.params.width ? this.params.width : i[0].clientWidth),
      (t =
        void 0 !== this.params.height
          ? this.params.height
          : i[0].clientHeight),
      (0 === e && this.isHorizontal()) ||
        (0 === t && this.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)),
        d.extend(this, {
          width: e,
          height: t,
          size: this.isHorizontal() ? e : t
        }));
  },
  updateSlides: function() {
    var e = this.params,
      i = this.$wrapperEl,
      s = this.size,
      a = this.rtlTranslate,
      r = this.wrongRTL,
      n = i.children("." + this.params.slideClass),
      o =
        this.virtual && e.virtual.enabled
          ? this.virtual.slides.length
          : n.length,
      l = [],
      p = [],
      c = [],
      u = e.slidesOffsetBefore;
    "function" == typeof u && (u = e.slidesOffsetBefore.call(this));
    var v = e.slidesOffsetAfter;
    "function" == typeof v && (v = e.slidesOffsetAfter.call(this));
    var f = o,
      m = this.snapGrid.length,
      g = this.snapGrid.length,
      b = e.spaceBetween,
      w = -u,
      y = 0,
      x = 0;
    if (void 0 !== s) {
      var E, T;
      "string" == typeof b &&
        b.indexOf("%") >= 0 &&
        (b = (parseFloat(b.replace("%", "")) / 100) * s),
        (this.virtualSize = -b),
        a
          ? n.css({ marginLeft: "", marginTop: "" })
          : n.css({ marginRight: "", marginBottom: "" }),
        e.slidesPerColumn > 1 &&
          ((E =
            Math.floor(o / e.slidesPerColumn) ===
            o / this.params.slidesPerColumn
              ? o
              : Math.ceil(o / e.slidesPerColumn) * e.slidesPerColumn),
          "auto" !== e.slidesPerView &&
            "row" === e.slidesPerColumnFill &&
            (E = Math.max(E, e.slidesPerView * e.slidesPerColumn)));
      for (
        var S,
          C = e.slidesPerColumn,
          M = E / C,
          z = M - (e.slidesPerColumn * M - o),
          P = 0;
        P < o;
        P += 1
      ) {
        T = 0;
        var k = n.eq(P);
        if (e.slidesPerColumn > 1) {
          var $ = void 0,
            L = void 0,
            I = void 0;
          "column" === e.slidesPerColumnFill
            ? ((I = P - (L = Math.floor(P / C)) * C),
              (L > z || (L === z && I === C - 1)) &&
                (I += 1) >= C &&
                ((I = 0), (L += 1)),
              ($ = L + (I * E) / C),
              k.css({
                "-webkit-box-ordinal-group": $,
                "-moz-box-ordinal-group": $,
                "-ms-flex-order": $,
                "-webkit-order": $,
                order: $
              }))
            : (L = P - (I = Math.floor(P / M)) * M),
            k
              .css(
                "margin-" + (this.isHorizontal() ? "top" : "left"),
                0 !== I && e.spaceBetween && e.spaceBetween + "px"
              )
              .attr("data-swiper-column", L)
              .attr("data-swiper-row", I);
        }
        if ("none" !== k.css("display")) {
          if ("auto" === e.slidesPerView) {
            var D = t.getComputedStyle(k[0], null);
            (T = this.isHorizontal()
              ? k[0].getBoundingClientRect().width +
                parseFloat(D.getPropertyValue("margin-left")) +
                parseFloat(D.getPropertyValue("margin-right"))
              : k[0].getBoundingClientRect().height +
                parseFloat(D.getPropertyValue("margin-top")) +
                parseFloat(D.getPropertyValue("margin-bottom"))),
              e.roundLengths && (T = Math.floor(T));
          } else
            (T = (s - (e.slidesPerView - 1) * b) / e.slidesPerView),
              e.roundLengths && (T = Math.floor(T)),
              n[P] &&
                (this.isHorizontal()
                  ? (n[P].style.width = T + "px")
                  : (n[P].style.height = T + "px"));
          n[P] && (n[P].swiperSlideSize = T),
            c.push(T),
            e.centeredSlides
              ? ((w = w + T / 2 + y / 2 + b),
                0 === y && 0 !== P && (w = w - s / 2 - b),
                0 === P && (w = w - s / 2 - b),
                Math.abs(w) < 0.001 && (w = 0),
                x % e.slidesPerGroup == 0 && l.push(w),
                p.push(w))
              : (x % e.slidesPerGroup == 0 && l.push(w),
                p.push(w),
                (w = w + T + b)),
            (this.virtualSize += T + b),
            (y = T),
            (x += 1);
        }
      }
      if (
        ((this.virtualSize = Math.max(this.virtualSize, s) + v),
        a &&
          r &&
          ("slide" === e.effect || "coverflow" === e.effect) &&
          i.css({ width: this.virtualSize + e.spaceBetween + "px" }),
        (h.flexbox && !e.setWrapperSize) ||
          (this.isHorizontal()
            ? i.css({ width: this.virtualSize + e.spaceBetween + "px" })
            : i.css({ height: this.virtualSize + e.spaceBetween + "px" })),
        e.slidesPerColumn > 1 &&
          ((this.virtualSize = (T + e.spaceBetween) * E),
          (this.virtualSize =
            Math.ceil(this.virtualSize / e.slidesPerColumn) - e.spaceBetween),
          this.isHorizontal()
            ? i.css({ width: this.virtualSize + e.spaceBetween + "px" })
            : i.css({ height: this.virtualSize + e.spaceBetween + "px" }),
          e.centeredSlides))
      ) {
        S = [];
        for (var O = 0; O < l.length; O += 1)
          l[O] < this.virtualSize + l[0] && S.push(l[O]);
        l = S;
      }
      if (!e.centeredSlides) {
        S = [];
        for (var A = 0; A < l.length; A += 1)
          l[A] <= this.virtualSize - s && S.push(l[A]);
        (l = S),
          Math.floor(this.virtualSize - s) - Math.floor(l[l.length - 1]) >
            1 && l.push(this.virtualSize - s);
      }
      0 === l.length && (l = [0]),
        0 !== e.spaceBetween &&
          (this.isHorizontal()
            ? a
              ? n.css({ marginLeft: b + "px" })
              : n.css({ marginRight: b + "px" })
            : n.css({ marginBottom: b + "px" })),
        d.extend(this, {
          slides: n,
          snapGrid: l,
          slidesGrid: p,
          slidesSizesGrid: c
        }),
        o !== f && this.emit("slidesLengthChange"),
        l.length !== m &&
          (this.params.watchOverflow && this.checkOverflow(),
          this.emit("snapGridLengthChange")),
        p.length !== g && this.emit("slidesGridLengthChange"),
        (e.watchSlidesProgress || e.watchSlidesVisibility) &&
          this.updateSlidesOffset();
    }
  },
  updateAutoHeight: function(e) {
    var t,
      i = [],
      s = 0;
    if (
      ("number" == typeof e
        ? this.setTransition(e)
        : !0 === e && this.setTransition(this.params.speed),
      "auto" !== this.params.slidesPerView && this.params.slidesPerView > 1)
    )
      for (t = 0; t < Math.ceil(this.params.slidesPerView); t += 1) {
        var a = this.activeIndex + t;
        if (a > this.slides.length) break;
        i.push(this.slides.eq(a)[0]);
      }
    else i.push(this.slides.eq(this.activeIndex)[0]);
    for (t = 0; t < i.length; t += 1)
      if (void 0 !== i[t]) {
        var r = i[t].offsetHeight;
        s = r > s ? r : s;
      }
    s && this.$wrapperEl.css("height", s + "px");
  },
  updateSlidesOffset: function() {
    for (var e = this.slides, t = 0; t < e.length; t += 1)
      e[t].swiperSlideOffset = this.isHorizontal()
        ? e[t].offsetLeft
        : e[t].offsetTop;
  },
  updateSlidesProgress: function(e) {
    void 0 === e && (e = this.translate || 0);
    var t = this.params,
      i = this.slides,
      s = this.rtlTranslate;
    if (0 !== i.length) {
      void 0 === i[0].swiperSlideOffset && this.updateSlidesOffset();
      var a = -e;
      s && (a = e), i.removeClass(t.slideVisibleClass);
      for (var r = 0; r < i.length; r += 1) {
        var n = i[r],
          o =
            (a +
              (t.centeredSlides ? this.minTranslate() : 0) -
              n.swiperSlideOffset) /
            (n.swiperSlideSize + t.spaceBetween);
        if (t.watchSlidesVisibility) {
          var l = -(a - n.swiperSlideOffset),
            d = l + this.slidesSizesGrid[r];
          ((l >= 0 && l < this.size) ||
            (d > 0 && d <= this.size) ||
            (l <= 0 && d >= this.size)) &&
            i.eq(r).addClass(t.slideVisibleClass);
        }
        n.progress = s ? -o : o;
      }
    }
  },
  updateProgress: function(e) {
    void 0 === e && (e = this.translate || 0);
    var t = this.params,
      i = this.maxTranslate() - this.minTranslate(),
      s = this.progress,
      a = this.isBeginning,
      r = this.isEnd,
      n = a,
      o = r;
    0 === i
      ? ((s = 0), (a = !0), (r = !0))
      : ((a = (s = (e - this.minTranslate()) / i) <= 0), (r = s >= 1)),
      d.extend(this, { progress: s, isBeginning: a, isEnd: r }),
      (t.watchSlidesProgress || t.watchSlidesVisibility) &&
        this.updateSlidesProgress(e),
      a && !n && this.emit("reachBeginning toEdge"),
      r && !o && this.emit("reachEnd toEdge"),
      ((n && !a) || (o && !r)) && this.emit("fromEdge"),
      this.emit("progress", s);
  },
  updateSlidesClasses: function() {
    var e,
      t = this.slides,
      i = this.params,
      s = this.$wrapperEl,
      a = this.activeIndex,
      r = this.realIndex,
      n = this.virtual && i.virtual.enabled;
    t.removeClass(
      i.slideActiveClass +
        " " +
        i.slideNextClass +
        " " +
        i.slidePrevClass +
        " " +
        i.slideDuplicateActiveClass +
        " " +
        i.slideDuplicateNextClass +
        " " +
        i.slideDuplicatePrevClass
    ),
      (e = n
        ? this.$wrapperEl.find(
            "." + i.slideClass + '[data-swiper-slide-index="' + a + '"]'
          )
        : t.eq(a)).addClass(i.slideActiveClass),
      i.loop &&
        (e.hasClass(i.slideDuplicateClass)
          ? s
              .children(
                "." +
                  i.slideClass +
                  ":not(." +
                  i.slideDuplicateClass +
                  ')[data-swiper-slide-index="' +
                  r +
                  '"]'
              )
              .addClass(i.slideDuplicateActiveClass)
          : s
              .children(
                "." +
                  i.slideClass +
                  "." +
                  i.slideDuplicateClass +
                  '[data-swiper-slide-index="' +
                  r +
                  '"]'
              )
              .addClass(i.slideDuplicateActiveClass));
    var o = e
      .nextAll("." + i.slideClass)
      .eq(0)
      .addClass(i.slideNextClass);
    i.loop && 0 === o.length && (o = t.eq(0)).addClass(i.slideNextClass);
    var l = e
      .prevAll("." + i.slideClass)
      .eq(0)
      .addClass(i.slidePrevClass);
    i.loop && 0 === l.length && (l = t.eq(-1)).addClass(i.slidePrevClass),
      i.loop &&
        (o.hasClass(i.slideDuplicateClass)
          ? s
              .children(
                "." +
                  i.slideClass +
                  ":not(." +
                  i.slideDuplicateClass +
                  ')[data-swiper-slide-index="' +
                  o.attr("data-swiper-slide-index") +
                  '"]'
              )
              .addClass(i.slideDuplicateNextClass)
          : s
              .children(
                "." +
                  i.slideClass +
                  "." +
                  i.slideDuplicateClass +
                  '[data-swiper-slide-index="' +
                  o.attr("data-swiper-slide-index") +
                  '"]'
              )
              .addClass(i.slideDuplicateNextClass),
        l.hasClass(i.slideDuplicateClass)
          ? s
              .children(
                "." +
                  i.slideClass +
                  ":not(." +
                  i.slideDuplicateClass +
                  ')[data-swiper-slide-index="' +
                  l.attr("data-swiper-slide-index") +
                  '"]'
              )
              .addClass(i.slideDuplicatePrevClass)
          : s
              .children(
                "." +
                  i.slideClass +
                  "." +
                  i.slideDuplicateClass +
                  '[data-swiper-slide-index="' +
                  l.attr("data-swiper-slide-index") +
                  '"]'
              )
              .addClass(i.slideDuplicatePrevClass));
  },
  updateActiveIndex: function(e) {
    var t,
      i = this.rtlTranslate ? this.translate : -this.translate,
      s = this.slidesGrid,
      a = this.snapGrid,
      r = this.params,
      n = this.activeIndex,
      o = this.realIndex,
      l = this.snapIndex,
      h = e;
    if (void 0 === h) {
      for (var p = 0; p < s.length; p += 1)
        void 0 !== s[p + 1]
          ? i >= s[p] && i < s[p + 1] - (s[p + 1] - s[p]) / 2
            ? (h = p)
            : i >= s[p] && i < s[p + 1] && (h = p + 1)
          : i >= s[p] && (h = p);
      r.normalizeSlideIndex && (h < 0 || void 0 === h) && (h = 0);
    }
    if (
      ((t =
        a.indexOf(i) >= 0
          ? a.indexOf(i)
          : Math.floor(h / r.slidesPerGroup)) >= a.length &&
        (t = a.length - 1),
      h !== n)
    ) {
      var c = parseInt(
        this.slides.eq(h).attr("data-swiper-slide-index") || h,
        10
      );
      d.extend(this, {
        snapIndex: t,
        realIndex: c,
        previousIndex: n,
        activeIndex: h
      }),
        this.emit("activeIndexChange"),
        this.emit("snapIndexChange"),
        o !== c && this.emit("realIndexChange"),
        this.emit("slideChange");
    } else t !== l && ((this.snapIndex = t), this.emit("snapIndexChange"));
  },
  updateClickedSlide: function(e) {
    var t = this.params,
      i = s(e.target).closest("." + t.slideClass)[0],
      a = !1;
    if (i)
      for (var r = 0; r < this.slides.length; r += 1)
        this.slides[r] === i && (a = !0);
    if (!i || !a)
      return (this.clickedSlide = void 0), void (this.clickedIndex = void 0);
    (this.clickedSlide = i),
      this.virtual && this.params.virtual.enabled
        ? (this.clickedIndex = parseInt(
            s(i).attr("data-swiper-slide-index"),
            10
          ))
        : (this.clickedIndex = s(i).index()),
      t.slideToClickedSlide &&
        void 0 !== this.clickedIndex &&
        this.clickedIndex !== this.activeIndex &&
        this.slideToClickedSlide();
  }
};
var v = {
  getTranslate: function(e) {
    void 0 === e && (e = this.isHorizontal() ? "x" : "y");
    var t = this.params,
      i = this.rtlTranslate,
      s = this.translate,
      a = this.$wrapperEl;
    if (t.virtualTranslate) return i ? -s : s;
    var r = d.getTranslate(a[0], e);
    return i && (r = -r), r || 0;
  },
  setTranslate: function(e, t) {
    var i = this.rtlTranslate,
      s = this.params,
      a = this.$wrapperEl,
      r = this.progress,
      n = 0,
      o = 0;
    this.isHorizontal() ? (n = i ? -e : e) : (o = e),
      s.roundLengths && ((n = Math.floor(n)), (o = Math.floor(o))),
      s.virtualTranslate ||
        (h.transforms3d
          ? a.transform("translate3d(" + n + "px, " + o + "px, 0px)")
          : a.transform("translate(" + n + "px, " + o + "px)")),
      (this.translate = this.isHorizontal() ? n : o);
    var l = this.maxTranslate() - this.minTranslate();
    (0 === l ? 0 : (e - this.minTranslate()) / l) !== r &&
      this.updateProgress(e),
      this.emit("setTranslate", this.translate, t);
  },
  minTranslate: function() {
    return -this.snapGrid[0];
  },
  maxTranslate: function() {
    return -this.snapGrid[this.snapGrid.length - 1];
  }
};
var f = {
  setTransition: function(e, t) {
    this.$wrapperEl.transition(e), this.emit("setTransition", e, t);
  },
  transitionStart: function(e, t) {
    void 0 === e && (e = !0);
    var i = this.activeIndex,
      s = this.params,
      a = this.previousIndex;
    s.autoHeight && this.updateAutoHeight();
    var r = t;
    if (
      (r || (r = i > a ? "next" : i < a ? "prev" : "reset"),
      this.emit("transitionStart"),
      e && i !== a)
    ) {
      if ("reset" === r) return void this.emit("slideResetTransitionStart");
      this.emit("slideChangeTransitionStart"),
        "next" === r
          ? this.emit("slideNextTransitionStart")
          : this.emit("slidePrevTransitionStart");
    }
  },
  transitionEnd: function(e, t) {
    void 0 === e && (e = !0);
    var i = this.activeIndex,
      s = this.previousIndex;
    (this.animating = !1), this.setTransition(0);
    var a = t;
    if (
      (a || (a = i > s ? "next" : i < s ? "prev" : "reset"),
      this.emit("transitionEnd"),
      e && i !== s)
    ) {
      if ("reset" === a) return void this.emit("slideResetTransitionEnd");
      this.emit("slideChangeTransitionEnd"),
        "next" === a
          ? this.emit("slideNextTransitionEnd")
          : this.emit("slidePrevTransitionEnd");
    }
  }
};
var m = {
  slideTo: function(e, t, i, s) {
    void 0 === e && (e = 0),
      void 0 === t && (t = this.params.speed),
      void 0 === i && (i = !0);
    var a = this,
      r = e;
    r < 0 && (r = 0);
    var n = a.params,
      o = a.snapGrid,
      l = a.slidesGrid,
      d = a.previousIndex,
      p = a.activeIndex,
      c = a.rtlTranslate,
      u = a.$wrapperEl;
    if (a.animating && n.preventIntercationOnTransition) return !1;
    var v = Math.floor(r / n.slidesPerGroup);
    v >= o.length && (v = o.length - 1),
      (p || n.initialSlide || 0) === (d || 0) &&
        i &&
        a.emit("beforeSlideChangeStart");
    var f,
      m = -o[v];
    if ((a.updateProgress(m), n.normalizeSlideIndex))
      for (var g = 0; g < l.length; g += 1)
        -Math.floor(100 * m) >= Math.floor(100 * l[g]) && (r = g);
    if (a.initialized && r !== p) {
      if (!a.allowSlideNext && m < a.translate && m < a.minTranslate())
        return !1;
      if (
        !a.allowSlidePrev &&
        m > a.translate &&
        m > a.maxTranslate() &&
        (p || 0) !== r
      )
        return !1;
    }
    return (
      (f = r > p ? "next" : r < p ? "prev" : "reset"),
      (c && -m === a.translate) || (!c && m === a.translate)
        ? (a.updateActiveIndex(r),
          n.autoHeight && a.updateAutoHeight(),
          a.updateSlidesClasses(),
          "slide" !== n.effect && a.setTranslate(m),
          "reset" !== f && (a.transitionStart(i, f), a.transitionEnd(i, f)),
          !1)
        : (0 !== t && h.transition
            ? (a.setTransition(t),
              a.setTranslate(m),
              a.updateActiveIndex(r),
              a.updateSlidesClasses(),
              a.emit("beforeTransitionStart", t, s),
              a.transitionStart(i, f),
              a.animating ||
                ((a.animating = !0),
                u.transitionEnd(function() {
                  a && !a.destroyed && a.transitionEnd(i, f);
                })))
            : (a.setTransition(0),
              a.setTranslate(m),
              a.updateActiveIndex(r),
              a.updateSlidesClasses(),
              a.emit("beforeTransitionStart", t, s),
              a.transitionStart(i, f),
              a.transitionEnd(i, f)),
          !0)
    );
  },
  slideToLoop: function(e, t, i, s) {
    void 0 === e && (e = 0),
      void 0 === t && (t = this.params.speed),
      void 0 === i && (i = !0);
    var a = e;
    return (
      this.params.loop && (a += this.loopedSlides), this.slideTo(a, t, i, s)
    );
  },
  slideNext: function(e, t, i) {
    void 0 === e && (e = this.params.speed), void 0 === t && (t = !0);
    var s = this.params,
      a = this.animating;
    return s.loop
      ? !a &&
          (this.loopFix(),
          (this._clientLeft = this.$wrapperEl[0].clientLeft),
          this.slideTo(this.activeIndex + s.slidesPerGroup, e, t, i))
      : this.slideTo(this.activeIndex + s.slidesPerGroup, e, t, i);
  },
  slidePrev: function(e, t, i) {
    void 0 === e && (e = this.params.speed), void 0 === t && (t = !0);
    var s = this.params,
      a = this.animating;
    return s.loop
      ? !a &&
          (this.loopFix(),
          (this._clientLeft = this.$wrapperEl[0].clientLeft),
          this.slideTo(this.activeIndex - 1, e, t, i))
      : this.slideTo(this.activeIndex - 1, e, t, i);
  },
  slideReset: function(e, t, i) {
    return (
      void 0 === e && (e = this.params.speed),
      void 0 === t && (t = !0),
      this.slideTo(this.activeIndex, e, t, i)
    );
  },
  slideToClosest: function(e, t, i) {
    void 0 === e && (e = this.params.speed), void 0 === t && (t = !0);
    var s = this.activeIndex,
      a = Math.floor(s / this.params.slidesPerGroup);
    if (a < this.snapGrid.length - 1) {
      var r = this.rtlTranslate ? this.translate : -this.translate,
        n = this.snapGrid[a];
      r - n > (this.snapGrid[a + 1] - n) / 2 &&
        (s = this.params.slidesPerGroup);
    }
    return this.slideTo(s, e, t, i);
  },
  slideToClickedSlide: function() {
    var e,
      t = this,
      i = t.params,
      a = t.$wrapperEl,
      r =
        "auto" === i.slidesPerView
          ? t.slidesPerViewDynamic()
          : i.slidesPerView,
      n = t.clickedIndex;
    if (i.loop) {
      if (t.animating) return;
      (e = parseInt(s(t.clickedSlide).attr("data-swiper-slide-index"), 10)),
        i.centeredSlides
          ? n < t.loopedSlides - r / 2 ||
            n > t.slides.length - t.loopedSlides + r / 2
            ? (t.loopFix(),
              (n = a
                .children(
                  "." +
                    i.slideClass +
                    '[data-swiper-slide-index="' +
                    e +
                    '"]:not(.' +
                    i.slideDuplicateClass +
                    ")"
                )
                .eq(0)
                .index()),
              d.nextTick(function() {
                t.slideTo(n);
              }))
            : t.slideTo(n)
          : n > t.slides.length - r
          ? (t.loopFix(),
            (n = a
              .children(
                "." +
                  i.slideClass +
                  '[data-swiper-slide-index="' +
                  e +
                  '"]:not(.' +
                  i.slideDuplicateClass +
                  ")"
              )
              .eq(0)
              .index()),
            d.nextTick(function() {
              t.slideTo(n);
            }))
          : t.slideTo(n);
    } else t.slideTo(n);
  }
};
var g = {
  loopCreate: function() {
    var t = this,
      i = t.params,
      a = t.$wrapperEl;
    a.children("." + i.slideClass + "." + i.slideDuplicateClass).remove();
    var r = a.children("." + i.slideClass);
    if (i.loopFillGroupWithBlank) {
      var n = i.slidesPerGroup - (r.length % i.slidesPerGroup);
      if (n !== i.slidesPerGroup) {
        for (var o = 0; o < n; o += 1) {
          var l = s(e.createElement("div")).addClass(
            i.slideClass + " " + i.slideBlankClass
          );
          a.append(l);
        }
        r = a.children("." + i.slideClass);
      }
    }
    "auto" !== i.slidesPerView ||
      i.loopedSlides ||
      (i.loopedSlides = r.length),
      (t.loopedSlides = parseInt(i.loopedSlides || i.slidesPerView, 10)),
      (t.loopedSlides += i.loopAdditionalSlides),
      t.loopedSlides > r.length && (t.loopedSlides = r.length);
    var d = [],
      h = [];
    r.each(function(e, i) {
      var a = s(i);
      e < t.loopedSlides && h.push(i),
        e < r.length && e >= r.length - t.loopedSlides && d.push(i),
        a.attr("data-swiper-slide-index", e);
    });
    for (var p = 0; p < h.length; p += 1)
      a.append(s(h[p].cloneNode(!0)).addClass(i.slideDuplicateClass));
    for (var c = d.length - 1; c >= 0; c -= 1)
      a.prepend(s(d[c].cloneNode(!0)).addClass(i.slideDuplicateClass));
  },
  loopFix: function() {
    var e,
      t = this.params,
      i = this.activeIndex,
      s = this.slides,
      a = this.loopedSlides,
      r = this.allowSlidePrev,
      n = this.allowSlideNext,
      o = this.snapGrid,
      l = this.rtlTranslate;
    (this.allowSlidePrev = !0), (this.allowSlideNext = !0);
    var d = -o[i] - this.getTranslate();
    i < a
      ? ((e = s.length - 3 * a + i),
        (e += a),
        this.slideTo(e, 0, !1, !0) &&
          0 !== d &&
          this.setTranslate((l ? -this.translate : this.translate) - d))
      : (("auto" === t.slidesPerView && i >= 2 * a) ||
          i > s.length - 2 * t.slidesPerView) &&
        ((e = -s.length + i + a),
        (e += a),
        this.slideTo(e, 0, !1, !0) &&
          0 !== d &&
          this.setTranslate((l ? -this.translate : this.translate) - d));
    (this.allowSlidePrev = r), (this.allowSlideNext = n);
  },
  loopDestroy: function() {
    var e = this.$wrapperEl,
      t = this.params,
      i = this.slides;
    e.children("." + t.slideClass + "." + t.slideDuplicateClass).remove(),
      i.removeAttr("data-swiper-slide-index");
  }
};
var b = {
  setGrabCursor: function(e) {
    if (!h.touch && this.params.simulateTouch) {
      var t = this.el;
      (t.style.cursor = "move"),
        (t.style.cursor = e ? "-webkit-grabbing" : "-webkit-grab"),
        (t.style.cursor = e ? "-moz-grabbin" : "-moz-grab"),
        (t.style.cursor = e ? "grabbing" : "grab");
    }
  },
  unsetGrabCursor: function() {
    h.touch || (this.el.style.cursor = "");
  }
};
var w = {
    appendSlide: function(e) {
      var t = this.$wrapperEl,
        i = this.params;
      if (
        (i.loop && this.loopDestroy(), "object" == typeof e && "length" in e)
      )
        for (var s = 0; s < e.length; s += 1) e[s] && t.append(e[s]);
      else t.append(e);
      i.loop && this.loopCreate(),
        (i.observer && h.observer) || this.update();
    },
    prependSlide: function(e) {
      var t = this.params,
        i = this.$wrapperEl,
        s = this.activeIndex;
      t.loop && this.loopDestroy();
      var a = s + 1;
      if ("object" == typeof e && "length" in e) {
        for (var r = 0; r < e.length; r += 1) e[r] && i.prepend(e[r]);
        a = s + e.length;
      } else i.prepend(e);
      t.loop && this.loopCreate(),
        (t.observer && h.observer) || this.update(),
        this.slideTo(a, 0, !1);
    },
    removeSlide: function(e) {
      var t = this.params,
        i = this.$wrapperEl,
        s = this.activeIndex;
      t.loop &&
        (this.loopDestroy(), (this.slides = i.children("." + t.slideClass)));
      var a,
        r = s;
      if ("object" == typeof e && "length" in e) {
        for (var n = 0; n < e.length; n += 1)
          (a = e[n]),
            this.slides[a] && this.slides.eq(a).remove(),
            a < r && (r -= 1);
        r = Math.max(r, 0);
      } else
        (a = e),
          this.slides[a] && this.slides.eq(a).remove(),
          a < r && (r -= 1),
          (r = Math.max(r, 0));
      t.loop && this.loopCreate(),
        (t.observer && h.observer) || this.update(),
        t.loop
          ? this.slideTo(r + this.loopedSlides, 0, !1)
          : this.slideTo(r, 0, !1);
    },
    removeAllSlides: function() {
      for (var e = [], t = 0; t < this.slides.length; t += 1) e.push(t);
      this.removeSlide(e);
    }
  },
  y = (function() {
    var i = t.navigator.userAgent,
      s = {
        ios: !1,
        android: !1,
        androidChrome: !1,
        desktop: !1,
        windows: !1,
        iphone: !1,
        ipod: !1,
        ipad: !1,
        cordova: t.cordova || t.phonegap,
        phonegap: t.cordova || t.phonegap
      },
      a = i.match(/(Windows Phone);?[\s\/]+([\d.]+)?/),
      r = i.match(/(Android);?[\s\/]+([\d.]+)?/),
      n = i.match(/(iPad).*OS\s([\d_]+)/),
      o = i.match(/(iPod)(.*OS\s([\d_]+))?/),
      l = !n && i.match(/(iPhone\sOS|iOS)\s([\d_]+)/);
    if (
      (a && ((s.os = "windows"), (s.osVersion = a[2]), (s.windows = !0)),
      r &&
        !a &&
        ((s.os = "android"),
        (s.osVersion = r[2]),
        (s.android = !0),
        (s.androidChrome = i.toLowerCase().indexOf("chrome") >= 0)),
      (n || l || o) && ((s.os = "ios"), (s.ios = !0)),
      l && !o && ((s.osVersion = l[2].replace(/_/g, ".")), (s.iphone = !0)),
      n && ((s.osVersion = n[2].replace(/_/g, ".")), (s.ipad = !0)),
      o &&
        ((s.osVersion = o[3] ? o[3].replace(/_/g, ".") : null),
        (s.iphone = !0)),
      s.ios &&
        s.osVersion &&
        i.indexOf("Version/") >= 0 &&
        "10" === s.osVersion.split(".")[0] &&
        (s.osVersion = i
          .toLowerCase()
          .split("version/")[1]
          .split(" ")[0]),
      (s.desktop = !(s.os || s.android || s.webView)),
      (s.webView = (l || n || o) && i.match(/.*AppleWebKit(?!.*Safari)/i)),
      s.os && "ios" === s.os)
    ) {
      var d = s.osVersion.split("."),
        h = e.querySelector('meta[name="viewport"]');
      s.minimalUi =
        !s.webView &&
        (o || l) &&
        (1 * d[0] == 7 ? 1 * d[1] >= 1 : 1 * d[0] > 7) &&
        h &&
        h.getAttribute("content").indexOf("minimal-ui") >= 0;
    }
    return (s.pixelRatio = t.devicePixelRatio || 1), s;
  })();
function x() {
  var e = this.params,
    t = this.el;
  if (!t || 0 !== t.offsetWidth) {
    e.breakpoints && this.setBreakpoint();
    var i = this.allowSlideNext,
      s = this.allowSlidePrev;
    if (
      ((this.allowSlideNext = !0),
      (this.allowSlidePrev = !0),
      this.updateSize(),
      this.updateSlides(),
      e.freeMode)
    ) {
      var a = Math.min(
        Math.max(this.translate, this.maxTranslate()),
        this.minTranslate()
      );
      this.setTranslate(a),
        this.updateActiveIndex(),
        this.updateSlidesClasses(),
        e.autoHeight && this.updateAutoHeight();
    } else
      this.updateSlidesClasses(),
        ("auto" === e.slidesPerView || e.slidesPerView > 1) &&
        this.isEnd &&
        !this.params.centeredSlides
          ? this.slideTo(this.slides.length - 1, 0, !1, !0)
          : this.slideTo(this.activeIndex, 0, !1, !0);
    (this.allowSlidePrev = s), (this.allowSlideNext = i);
  }
}
var E = {
  attachEvents: function() {
    var i = this.params,
      a = this.touchEvents,
      r = this.el,
      n = this.wrapperEl;
    (this.onTouchStart = function(i) {
      var a = this.touchEventsData,
        r = this.params,
        n = this.touches;
      if (!this.animating || !r.preventIntercationOnTransition) {
        var o = i;
        if (
          (o.originalEvent && (o = o.originalEvent),
          (a.isTouchEvent = "touchstart" === o.type),
          (a.isTouchEvent || !("which" in o) || 3 !== o.which) &&
            (!a.isTouched || !a.isMoved))
        )
          if (
            r.noSwiping &&
            s(o.target).closest(
              r.noSwipingSelector
                ? r.noSwipingSelector
                : "." + r.noSwipingClass
            )[0]
          )
            this.allowClick = !0;
          else if (!r.swipeHandler || s(o).closest(r.swipeHandler)[0]) {
            (n.currentX =
              "touchstart" === o.type ? o.targetTouches[0].pageX : o.pageX),
              (n.currentY =
                "touchstart" === o.type ? o.targetTouches[0].pageY : o.pageY);
            var l = n.currentX,
              h = n.currentY;
            if (
              !(
                y.ios &&
                !y.cordova &&
                r.iOSEdgeSwipeDetection &&
                l <= r.iOSEdgeSwipeThreshold &&
                l >= t.screen.width - r.iOSEdgeSwipeThreshold
              )
            ) {
              if (
                (d.extend(a, {
                  isTouched: !0,
                  isMoved: !1,
                  allowTouchCallbacks: !0,
                  isScrolling: void 0,
                  startMoving: void 0
                }),
                (n.startX = l),
                (n.startY = h),
                (a.touchStartTime = d.now()),
                (this.allowClick = !0),
                this.updateSize(),
                (this.swipeDirection = void 0),
                r.threshold > 0 && (a.allowThresholdMove = !1),
                "touchstart" !== o.type)
              ) {
                var p = !0;
                s(o.target).is(a.formElements) && (p = !1),
                  e.activeElement &&
                    s(e.activeElement).is(a.formElements) &&
                    e.activeElement !== o.target &&
                    e.activeElement.blur(),
                  p && this.allowTouchMove && o.preventDefault();
              }
              this.emit("touchStart", o);
            }
          }
      }
    }.bind(this)),
      (this.onTouchMove = function(t) {
        var i = this.touchEventsData,
          a = this.params,
          r = this.touches,
          n = this.rtlTranslate,
          o = t;
        if ((o.originalEvent && (o = o.originalEvent), i.isTouched)) {
          if (!i.isTouchEvent || "mousemove" !== o.type) {
            var l =
                "touchmove" === o.type ? o.targetTouches[0].pageX : o.pageX,
              h = "touchmove" === o.type ? o.targetTouches[0].pageY : o.pageY;
            if (o.preventedByNestedSwiper)
              return (r.startX = l), void (r.startY = h);
            if (!this.allowTouchMove)
              return (
                (this.allowClick = !1),
                void (
                  i.isTouched &&
                  (d.extend(r, {
                    startX: l,
                    startY: h,
                    currentX: l,
                    currentY: h
                  }),
                  (i.touchStartTime = d.now()))
                )
              );
            if (i.isTouchEvent && a.touchReleaseOnEdges && !a.loop)
              if (this.isVertical()) {
                if (
                  (h < r.startY && this.translate <= this.maxTranslate()) ||
                  (h > r.startY && this.translate >= this.minTranslate())
                )
                  return (i.isTouched = !1), void (i.isMoved = !1);
              } else if (
                (l < r.startX && this.translate <= this.maxTranslate()) ||
                (l > r.startX && this.translate >= this.minTranslate())
              )
                return;
            if (
              i.isTouchEvent &&
              e.activeElement &&
              o.target === e.activeElement &&
              s(o.target).is(i.formElements)
            )
              return (i.isMoved = !0), void (this.allowClick = !1);
            if (
              (i.allowTouchCallbacks && this.emit("touchMove", o),
              !(o.targetTouches && o.targetTouches.length > 1))
            ) {
              (r.currentX = l), (r.currentY = h);
              var p,
                c = r.currentX - r.startX,
                u = r.currentY - r.startY;
              if (
                (void 0 === i.isScrolling &&
                  ((this.isHorizontal() && r.currentY === r.startY) ||
                  (this.isVertical() && r.currentX === r.startX)
                    ? (i.isScrolling = !1)
                    : c * c + u * u >= 25 &&
                      ((p =
                        (180 * Math.atan2(Math.abs(u), Math.abs(c))) /
                        Math.PI),
                      (i.isScrolling = this.isHorizontal()
                        ? p > a.touchAngle
                        : 90 - p > a.touchAngle))),
                i.isScrolling && this.emit("touchMoveOpposite", o),
                "undefined" == typeof startMoving &&
                  ((r.currentX === r.startX && r.currentY === r.startY) ||
                    (i.startMoving = !0)),
                i.isScrolling)
              )
                i.isTouched = !1;
              else if (i.startMoving) {
                (this.allowClick = !1),
                  o.preventDefault(),
                  a.touchMoveStopPropagation &&
                    !a.nested &&
                    o.stopPropagation(),
                  i.isMoved ||
                    (a.loop && this.loopFix(),
                    (i.startTranslate = this.getTranslate()),
                    this.setTransition(0),
                    this.animating &&
                      this.$wrapperEl.trigger(
                        "webkitTransitionEnd transitionend"
                      ),
                    (i.allowMomentumBounce = !1),
                    !a.grabCursor ||
                      (!0 !== this.allowSlideNext &&
                        !0 !== this.allowSlidePrev) ||
                      this.setGrabCursor(!0),
                    this.emit("sliderFirstMove", o)),
                  this.emit("sliderMove", o),
                  (i.isMoved = !0);
                var v = this.isHorizontal() ? c : u;
                (r.diff = v),
                  (v *= a.touchRatio),
                  n && (v = -v),
                  (this.swipeDirection = v > 0 ? "prev" : "next"),
                  (i.currentTranslate = v + i.startTranslate);
                var f = !0,
                  m = a.resistanceRatio;
                if (
                  (a.touchReleaseOnEdges && (m = 0),
                  v > 0 && i.currentTranslate > this.minTranslate()
                    ? ((f = !1),
                      a.resistance &&
                        (i.currentTranslate =
                          this.minTranslate() -
                          1 +
                          Math.pow(
                            -this.minTranslate() + i.startTranslate + v,
                            m
                          )))
                    : v < 0 &&
                      i.currentTranslate < this.maxTranslate() &&
                      ((f = !1),
                      a.resistance &&
                        (i.currentTranslate =
                          this.maxTranslate() +
                          1 -
                          Math.pow(
                            this.maxTranslate() - i.startTranslate - v,
                            m
                          ))),
                  f && (o.preventedByNestedSwiper = !0),
                  !this.allowSlideNext &&
                    "next" === this.swipeDirection &&
                    i.currentTranslate < i.startTranslate &&
                    (i.currentTranslate = i.startTranslate),
                  !this.allowSlidePrev &&
                    "prev" === this.swipeDirection &&
                    i.currentTranslate > i.startTranslate &&
                    (i.currentTranslate = i.startTranslate),
                  a.threshold > 0)
                ) {
                  if (!(Math.abs(v) > a.threshold || i.allowThresholdMove))
                    return void (i.currentTranslate = i.startTranslate);
                  if (!i.allowThresholdMove)
                    return (
                      (i.allowThresholdMove = !0),
                      (r.startX = r.currentX),
                      (r.startY = r.currentY),
                      (i.currentTranslate = i.startTranslate),
                      void (r.diff = this.isHorizontal()
                        ? r.currentX - r.startX
                        : r.currentY - r.startY)
                    );
                }
                a.followFinger &&
                  ((a.freeMode ||
                    a.watchSlidesProgress ||
                    a.watchSlidesVisibility) &&
                    (this.updateActiveIndex(), this.updateSlidesClasses()),
                  a.freeMode &&
                    (0 === i.velocities.length &&
                      i.velocities.push({
                        position:
                          r[this.isHorizontal() ? "startX" : "startY"],
                        time: i.touchStartTime
                      }),
                    i.velocities.push({
                      position:
                        r[this.isHorizontal() ? "currentX" : "currentY"],
                      time: d.now()
                    })),
                  this.updateProgress(i.currentTranslate),
                  this.setTranslate(i.currentTranslate));
              }
            }
          }
        } else
          i.startMoving && i.isScrolling && this.emit("touchMoveOpposite", o);
      }.bind(this)),
      (this.onTouchEnd = function(e) {
        var t = this,
          i = t.touchEventsData,
          s = t.params,
          a = t.touches,
          r = t.rtlTranslate,
          n = t.$wrapperEl,
          o = t.slidesGrid,
          l = t.snapGrid,
          h = e;
        if (
          (h.originalEvent && (h = h.originalEvent),
          i.allowTouchCallbacks && t.emit("touchEnd", h),
          (i.allowTouchCallbacks = !1),
          !i.isTouched)
        )
          return (
            i.isMoved && s.grabCursor && t.setGrabCursor(!1),
            (i.isMoved = !1),
            void (i.startMoving = !1)
          );
        s.grabCursor &&
          i.isMoved &&
          i.isTouched &&
          (!0 === t.allowSlideNext || !0 === t.allowSlidePrev) &&
          t.setGrabCursor(!1);
        var p,
          c = d.now(),
          u = c - i.touchStartTime;
        if (
          (t.allowClick &&
            (t.updateClickedSlide(h),
            t.emit("tap", h),
            u < 300 &&
              c - i.lastClickTime > 300 &&
              (i.clickTimeout && clearTimeout(i.clickTimeout),
              (i.clickTimeout = d.nextTick(function() {
                t && !t.destroyed && t.emit("click", h);
              }, 300))),
            u < 300 &&
              c - i.lastClickTime < 300 &&
              (i.clickTimeout && clearTimeout(i.clickTimeout),
              t.emit("doubleTap", h))),
          (i.lastClickTime = d.now()),
          d.nextTick(function() {
            t.destroyed || (t.allowClick = !0);
          }),
          !i.isTouched ||
            !i.isMoved ||
            !t.swipeDirection ||
            0 === a.diff ||
            i.currentTranslate === i.startTranslate)
        )
          return (
            (i.isTouched = !1), (i.isMoved = !1), void (i.startMoving = !1)
          );
        if (
          ((i.isTouched = !1),
          (i.isMoved = !1),
          (i.startMoving = !1),
          (p = s.followFinger
            ? r
              ? t.translate
              : -t.translate
            : -i.currentTranslate),
          s.freeMode)
        ) {
          if (p < -t.minTranslate()) return void t.slideTo(t.activeIndex);
          if (p > -t.maxTranslate())
            return void (t.slides.length < l.length
              ? t.slideTo(l.length - 1)
              : t.slideTo(t.slides.length - 1));
          if (s.freeModeMomentum) {
            if (i.velocities.length > 1) {
              var v = i.velocities.pop(),
                f = i.velocities.pop(),
                m = v.position - f.position,
                g = v.time - f.time;
              (t.velocity = m / g),
                (t.velocity /= 2),
                Math.abs(t.velocity) < s.freeModeMinimumVelocity &&
                  (t.velocity = 0),
                (g > 150 || d.now() - v.time > 300) && (t.velocity = 0);
            } else t.velocity = 0;
            (t.velocity *= s.freeModeMomentumVelocityRatio),
              (i.velocities.length = 0);
            var b = 1e3 * s.freeModeMomentumRatio,
              w = t.velocity * b,
              y = t.translate + w;
            r && (y = -y);
            var x,
              E = !1,
              T = 20 * Math.abs(t.velocity) * s.freeModeMomentumBounceRatio;
            if (y < t.maxTranslate())
              s.freeModeMomentumBounce
                ? (y + t.maxTranslate() < -T && (y = t.maxTranslate() - T),
                  (x = t.maxTranslate()),
                  (E = !0),
                  (i.allowMomentumBounce = !0))
                : (y = t.maxTranslate());
            else if (y > t.minTranslate())
              s.freeModeMomentumBounce
                ? (y - t.minTranslate() > T && (y = t.minTranslate() + T),
                  (x = t.minTranslate()),
                  (E = !0),
                  (i.allowMomentumBounce = !0))
                : (y = t.minTranslate());
            else if (s.freeModeSticky) {
              for (var S, C = 0; C < l.length; C += 1)
                if (l[C] > -y) {
                  S = C;
                  break;
                }
              y = -(y =
                Math.abs(l[S] - y) < Math.abs(l[S - 1] - y) ||
                "next" === t.swipeDirection
                  ? l[S]
                  : l[S - 1]);
            }
            if (0 !== t.velocity)
              b = r
                ? Math.abs((-y - t.translate) / t.velocity)
                : Math.abs((y - t.translate) / t.velocity);
            else if (s.freeModeSticky) return void t.slideToClosest();
            s.freeModeMomentumBounce && E
              ? (t.updateProgress(x),
                t.setTransition(b),
                t.setTranslate(y),
                t.transitionStart(!0, t.swipeDirection),
                (t.animating = !0),
                n.transitionEnd(function() {
                  t &&
                    !t.destroyed &&
                    i.allowMomentumBounce &&
                    (t.emit("momentumBounce"),
                    t.setTransition(s.speed),
                    t.setTranslate(x),
                    n.transitionEnd(function() {
                      t && !t.destroyed && t.transitionEnd();
                    }));
                }))
              : t.velocity
              ? (t.updateProgress(y),
                t.setTransition(b),
                t.setTranslate(y),
                t.transitionStart(!0, t.swipeDirection),
                t.animating ||
                  ((t.animating = !0),
                  n.transitionEnd(function() {
                    t && !t.destroyed && t.transitionEnd();
                  })))
              : t.updateProgress(y),
              t.updateActiveIndex(),
              t.updateSlidesClasses();
          } else if (s.freeModeSticky) return void t.slideToClosest();
          (!s.freeModeMomentum || u >= s.longSwipesMs) &&
            (t.updateProgress(),
            t.updateActiveIndex(),
            t.updateSlidesClasses());
        } else {
          for (
            var M = 0, z = t.slidesSizesGrid[0], P = 0;
            P < o.length;
            P += s.slidesPerGroup
          )
            void 0 !== o[P + s.slidesPerGroup]
              ? p >= o[P] &&
                p < o[P + s.slidesPerGroup] &&
                ((M = P), (z = o[P + s.slidesPerGroup] - o[P]))
              : p >= o[P] &&
                ((M = P), (z = o[o.length - 1] - o[o.length - 2]));
          var k = (p - o[M]) / z;
          if (u > s.longSwipesMs) {
            if (!s.longSwipes) return void t.slideTo(t.activeIndex);
            "next" === t.swipeDirection &&
              (k >= s.longSwipesRatio
                ? t.slideTo(M + s.slidesPerGroup)
                : t.slideTo(M)),
              "prev" === t.swipeDirection &&
                (k > 1 - s.longSwipesRatio
                  ? t.slideTo(M + s.slidesPerGroup)
                  : t.slideTo(M));
          } else {
            if (!s.shortSwipes) return void t.slideTo(t.activeIndex);
            "next" === t.swipeDirection && t.slideTo(M + s.slidesPerGroup),
              "prev" === t.swipeDirection && t.slideTo(M);
          }
        }
      }.bind(this)),
      (this.onClick = function(e) {
        this.allowClick ||
          (this.params.preventClicks && e.preventDefault(),
          this.params.preventClicksPropagation &&
            this.animating &&
            (e.stopPropagation(), e.stopImmediatePropagation()));
      }.bind(this));
    var o = "container" === i.touchEventsTarget ? r : n,
      l = !!i.nested;
    if (h.touch || (!h.pointerEvents && !h.prefixedPointerEvents)) {
      if (h.touch) {
        var p = !(
          "touchstart" !== a.start ||
          !h.passiveListener ||
          !i.passiveListeners
        ) && { passive: !0, capture: !1 };
        o.addEventListener(a.start, this.onTouchStart, p),
          o.addEventListener(
            a.move,
            this.onTouchMove,
            h.passiveListener ? { passive: !1, capture: l } : l
          ),
          o.addEventListener(a.end, this.onTouchEnd, p);
      }
      ((i.simulateTouch && !y.ios && !y.android) ||
        (i.simulateTouch && !h.touch && y.ios)) &&
        (o.addEventListener("mousedown", this.onTouchStart, !1),
        e.addEventListener("mousemove", this.onTouchMove, l),
        e.addEventListener("mouseup", this.onTouchEnd, !1));
    } else
      o.addEventListener(a.start, this.onTouchStart, !1),
        e.addEventListener(a.move, this.onTouchMove, l),
        e.addEventListener(a.end, this.onTouchEnd, !1);
    (i.preventClicks || i.preventClicksPropagation) &&
      o.addEventListener("click", this.onClick, !0),
      this.on("resize observerUpdate", x, !0);
  },
  detachEvents: function() {
    var t = this.params,
      i = this.touchEvents,
      s = this.el,
      a = this.wrapperEl,
      r = "container" === t.touchEventsTarget ? s : a,
      n = !!t.nested;
    if (h.touch || (!h.pointerEvents && !h.prefixedPointerEvents)) {
      if (h.touch) {
        var o = !(
          "onTouchStart" !== i.start ||
          !h.passiveListener ||
          !t.passiveListeners
        ) && { passive: !0, capture: !1 };
        r.removeEventListener(i.start, this.onTouchStart, o),
          r.removeEventListener(i.move, this.onTouchMove, n),
          r.removeEventListener(i.end, this.onTouchEnd, o);
      }
      ((t.simulateTouch && !y.ios && !y.android) ||
        (t.simulateTouch && !h.touch && y.ios)) &&
        (r.removeEventListener("mousedown", this.onTouchStart, !1),
        e.removeEventListener("mousemove", this.onTouchMove, n),
        e.removeEventListener("mouseup", this.onTouchEnd, !1));
    } else
      r.removeEventListener(i.start, this.onTouchStart, !1),
        e.removeEventListener(i.move, this.onTouchMove, n),
        e.removeEventListener(i.end, this.onTouchEnd, !1);
    (t.preventClicks || t.preventClicksPropagation) &&
      r.removeEventListener("click", this.onClick, !0),
      this.off("resize observerUpdate", x);
  }
};
var T = {
    setBreakpoint: function() {
      var e = this.activeIndex,
        t = this.loopedSlides;
      void 0 === t && (t = 0);
      var i = this.params,
        s = i.breakpoints;
      if (s && (!s || 0 !== Object.keys(s).length)) {
        var a = this.getBreakpoint(s);
        if (a && this.currentBreakpoint !== a) {
          var r = a in s ? s[a] : this.originalParams,
            n = i.loop && r.slidesPerView !== i.slidesPerView;
          d.extend(this.params, r),
            d.extend(this, {
              allowTouchMove: this.params.allowTouchMove,
              allowSlideNext: this.params.allowSlideNext,
              allowSlidePrev: this.params.allowSlidePrev
            }),
            (this.currentBreakpoint = a),
            n &&
              (this.loopDestroy(),
              this.loopCreate(),
              this.updateSlides(),
              this.slideTo(e - t + this.loopedSlides, 0, !1)),
            this.emit("breakpoint", r);
        }
      }
    },
    getBreakpoint: function(e) {
      if (e) {
        var i = !1,
          s = [];
        Object.keys(e).forEach(function(e) {
          s.push(e);
        }),
          s.sort(function(e, t) {
            return parseInt(e, 10) - parseInt(t, 10);
          });
        for (var a = 0; a < s.length; a += 1) {
          var r = s[a];
          r >= t.innerWidth && !i && (i = r);
        }
        return i || "max";
      }
    }
  },
  S = (function() {
    return {
      isIE:
        !!t.navigator.userAgent.match(/Trident/g) ||
        !!t.navigator.userAgent.match(/MSIE/g),
      isSafari:
        ((e = t.navigator.userAgent.toLowerCase()),
        e.indexOf("safari") >= 0 &&
          e.indexOf("chrome") < 0 &&
          e.indexOf("android") < 0),
      isUiWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(
        t.navigator.userAgent
      )
    };
    var e;
  })();
var C = {
    init: !0,
    direction: "horizontal",
    touchEventsTarget: "container",
    initialSlide: 0,
    speed: 300,
    preventIntercationOnTransition: !1,
    iOSEdgeSwipeDetection: !1,
    iOSEdgeSwipeThreshold: 20,
    freeMode: !1,
    freeModeMomentum: !0,
    freeModeMomentumRatio: 1,
    freeModeMomentumBounce: !0,
    freeModeMomentumBounceRatio: 1,
    freeModeMomentumVelocityRatio: 1,
    freeModeSticky: !1,
    freeModeMinimumVelocity: 0.02,
    autoHeight: !1,
    setWrapperSize: !1,
    virtualTranslate: !1,
    effect: "slide",
    breakpoints: void 0,
    spaceBetween: 0,
    slidesPerView: 1,
    slidesPerColumn: 1,
    slidesPerColumnFill: "column",
    slidesPerGroup: 1,
    centeredSlides: !1,
    slidesOffsetBefore: 0,
    slidesOffsetAfter: 0,
    normalizeSlideIndex: !0,
    watchOverflow: !1,
    roundLengths: !1,
    touchRatio: 1,
    touchAngle: 45,
    simulateTouch: !0,
    shortSwipes: !0,
    longSwipes: !0,
    longSwipesRatio: 0.5,
    longSwipesMs: 300,
    followFinger: !0,
    allowTouchMove: !0,
    threshold: 0,
    touchMoveStopPropagation: !0,
    touchReleaseOnEdges: !1,
    uniqueNavElements: !0,
    resistance: !0,
    resistanceRatio: 0.85,
    watchSlidesProgress: !1,
    watchSlidesVisibility: !1,
    grabCursor: !1,
    preventClicks: !0,
    preventClicksPropagation: !0,
    slideToClickedSlide: !1,
    preloadImages: !0,
    updateOnImagesReady: !0,
    loop: !1,
    loopAdditionalSlides: 0,
    loopedSlides: null,
    loopFillGroupWithBlank: !1,
    allowSlidePrev: !0,
    allowSlideNext: !0,
    swipeHandler: null,
    noSwiping: !0,
    noSwipingClass: "swiper-no-swiping",
    noSwipingSelector: null,
    passiveListeners: !0,
    containerModifierClass: "swiper-container-",
    slideClass: "swiper-slide",
    slideBlankClass: "swiper-slide-invisible-blank",
    slideActiveClass: "swiper-slide-active",
    slideDuplicateActiveClass: "swiper-slide-duplicate-active",
    slideVisibleClass: "swiper-slide-visible",
    slideDuplicateClass: "swiper-slide-duplicate",
    slideNextClass: "swiper-slide-next",
    slideDuplicateNextClass: "swiper-slide-duplicate-next",
    slidePrevClass: "swiper-slide-prev",
    slideDuplicatePrevClass: "swiper-slide-duplicate-prev",
    wrapperClass: "swiper-wrapper",
    runCallbacksOnInit: !0
  },
  M = {
    update: u,
    translate: v,
    transition: f,
    slide: m,
    loop: g,
    grabCursor: b,
    manipulation: w,
    events: E,
    breakpoints: T,
    checkOverflow: {
      checkOverflow: function() {
        var e = this.isLocked;
        (this.isLocked = 1 === this.snapGrid.length),
          (this.allowTouchMove = !this.isLocked),
          e &&
            e !== this.isLocked &&
            ((this.isEnd = !1), this.navigation.update());
      }
    },
    classes: {
      addClasses: function() {
        var e = this.classNames,
          t = this.params,
          i = this.rtl,
          s = this.$el,
          a = [];
        a.push(t.direction),
          t.freeMode && a.push("free-mode"),
          h.flexbox || a.push("no-flexbox"),
          t.autoHeight && a.push("autoheight"),
          i && a.push("rtl"),
          t.slidesPerColumn > 1 && a.push("multirow"),
          y.android && a.push("android"),
          y.ios && a.push("ios"),
          S.isIE &&
            (h.pointerEvents || h.prefixedPointerEvents) &&
            a.push("wp8-" + t.direction),
          a.forEach(function(i) {
            e.push(t.containerModifierClass + i);
          }),
          s.addClass(e.join(" "));
      },
      removeClasses: function() {
        var e = this.$el,
          t = this.classNames;
        e.removeClass(t.join(" "));
      }
    },
    images: {
      loadImage: function(e, i, s, a, r, n) {
        var o;
        function l() {
          n && n();
        }
        e.complete && r
          ? l()
          : i
          ? (((o = new t.Image()).onload = l),
            (o.onerror = l),
            a && (o.sizes = a),
            s && (o.srcset = s),
            i && (o.src = i))
          : l();
      },
      preloadImages: function() {
        var e = this;
        function t() {
          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")));
        }
        e.imagesToLoad = e.$el.find("img");
        for (var i = 0; i < e.imagesToLoad.length; i += 1) {
          var s = e.imagesToLoad[i];
          e.loadImage(
            s,
            s.currentSrc || s.getAttribute("src"),
            s.srcset || s.getAttribute("srcset"),
            s.sizes || s.getAttribute("sizes"),
            !0,
            t
          );
        }
      }
    }
  },
  z = {},
  P = (function(e) {
    function t() {
      for (var i, a, r, n = [], o = arguments.length; o--; )
        n[o] = arguments[o];
      1 === n.length && n[0].constructor && n[0].constructor === Object
        ? (r = n[0])
        : ((a = (i = n)[0]), (r = i[1])),
        r || (r = {}),
        (r = d.extend({}, r)),
        a && !r.el && (r.el = a),
        e.call(this, r),
        Object.keys(M).forEach(function(e) {
          Object.keys(M[e]).forEach(function(i) {
            t.prototype[i] || (t.prototype[i] = M[e][i]);
          });
        });
      var l = this;
      void 0 === l.modules && (l.modules = {}),
        Object.keys(l.modules).forEach(function(e) {
          var t = l.modules[e];
          if (t.params) {
            var i = Object.keys(t.params)[0],
              s = t.params[i];
            if ("object" != typeof s) return;
            if (!(i in r && "enabled" in s)) return;
            !0 === r[i] && (r[i] = { enabled: !0 }),
              "object" != typeof r[i] ||
                "enabled" in r[i] ||
                (r[i].enabled = !0),
              r[i] || (r[i] = { enabled: !1 });
          }
        });
      var p = d.extend({}, C);
      l.useModulesParams(p),
        (l.params = d.extend({}, p, z, r)),
        (l.originalParams = d.extend({}, l.params)),
        (l.passedParams = d.extend({}, r)),
        (l.$ = s);
      var c = s(l.params.el);
      if ((a = c[0])) {
        if (c.length > 1) {
          var u = [];
          return (
            c.each(function(e, i) {
              var s = d.extend({}, r, { el: i });
              u.push(new t(s));
            }),
            u
          );
        }
        (a.swiper = l), c.data("swiper", l);
        var v,
          f,
          m = c.children("." + l.params.wrapperClass);
        return (
          d.extend(l, {
            $el: c,
            el: a,
            $wrapperEl: m,
            wrapperEl: m[0],
            classNames: [],
            slides: s(),
            slidesGrid: [],
            snapGrid: [],
            slidesSizesGrid: [],
            isHorizontal: function() {
              return "horizontal" === l.params.direction;
            },
            isVertical: function() {
              return "vertical" === l.params.direction;
            },
            rtl:
              "rtl" === a.dir.toLowerCase() || "rtl" === c.css("direction"),
            rtlTranslate:
              "horizontal" === l.params.direction &&
              ("rtl" === a.dir.toLowerCase() || "rtl" === c.css("direction")),
            wrongRTL: "-webkit-box" === m.css("display"),
            activeIndex: 0,
            realIndex: 0,
            isBeginning: !0,
            isEnd: !1,
            translate: 0,
            progress: 0,
            velocity: 0,
            animating: !1,
            allowSlideNext: l.params.allowSlideNext,
            allowSlidePrev: l.params.allowSlidePrev,
            touchEvents:
              ((v = ["touchstart", "touchmove", "touchend"]),
              (f = ["mousedown", "mousemove", "mouseup"]),
              h.pointerEvents
                ? (f = ["pointerdown", "pointermove", "pointerup"])
                : h.prefixedPointerEvents &&
                  (f = ["MSPointerDown", "MSPointerMove", "MSPointerUp"]),
              (l.touchEventsTouch = { start: v[0], move: v[1], end: v[2] }),
              (l.touchEventsDesktop = { start: f[0], move: f[1], end: f[2] }),
              h.touch || !l.params.simulateTouch
                ? l.touchEventsTouch
                : l.touchEventsDesktop),
            touchEventsData: {
              isTouched: void 0,
              isMoved: void 0,
              allowTouchCallbacks: void 0,
              touchStartTime: void 0,
              isScrolling: void 0,
              currentTranslate: void 0,
              startTranslate: void 0,
              allowThresholdMove: void 0,
              formElements: "input, select, option, textarea, button, video",
              lastClickTime: d.now(),
              clickTimeout: void 0,
              velocities: [],
              allowMomentumBounce: void 0,
              isTouchEvent: void 0,
              startMoving: void 0
            },
            allowClick: !0,
            allowTouchMove: l.params.allowTouchMove,
            touches: {
              startX: 0,
              startY: 0,
              currentX: 0,
              currentY: 0,
              diff: 0
            },
            imagesToLoad: [],
            imagesLoaded: 0
          }),
          l.useModules(),
          l.params.init && l.init(),
          l
        );
      }
    }
    e && (t.__proto__ = e),
      (t.prototype = Object.create(e && e.prototype)),
      (t.prototype.constructor = t);
    var i = {
      extendedDefaults: { configurable: !0 },
      defaults: { configurable: !0 },
      Class: { configurable: !0 },
      $: { configurable: !0 }
    };
    return (
      (t.prototype.slidesPerViewDynamic = function() {
        var e = this.params,
          t = this.slides,
          i = this.slidesGrid,
          s = this.size,
          a = this.activeIndex,
          r = 1;
        if (e.centeredSlides) {
          for (
            var n, o = t[a].swiperSlideSize, l = a + 1;
            l < t.length;
            l += 1
          )
            t[l] &&
              !n &&
              ((r += 1), (o += t[l].swiperSlideSize) > s && (n = !0));
          for (var d = a - 1; d >= 0; d -= 1)
            t[d] &&
              !n &&
              ((r += 1), (o += t[d].swiperSlideSize) > s && (n = !0));
        } else
          for (var h = a + 1; h < t.length; h += 1)
            i[h] - i[a] < s && (r += 1);
        return r;
      }),
      (t.prototype.update = function() {
        var e = this;
        e &&
          !e.destroyed &&
          (e.updateSize(),
          e.updateSlides(),
          e.updateProgress(),
          e.updateSlidesClasses(),
          e.params.freeMode
            ? (t(), e.params.autoHeight && e.updateAutoHeight())
            : (("auto" === e.params.slidesPerView ||
                e.params.slidesPerView > 1) &&
              e.isEnd &&
              !e.params.centeredSlides
                ? e.slideTo(e.slides.length - 1, 0, !1, !0)
                : e.slideTo(e.activeIndex, 0, !1, !0)) || t(),
          e.emit("update"));
        function t() {
          var t = e.rtlTranslate ? -1 * e.translate : e.translate,
            i = Math.min(Math.max(t, e.maxTranslate()), e.minTranslate());
          e.setTranslate(i), e.updateActiveIndex(), e.updateSlidesClasses();
        }
      }),
      (t.prototype.init = function() {
        this.initialized ||
          (this.emit("beforeInit"),
          this.params.breakpoints && this.setBreakpoint(),
          this.addClasses(),
          this.params.loop && this.loopCreate(),
          this.updateSize(),
          this.updateSlides(),
          this.params.watchOverflow && this.checkOverflow(),
          this.params.grabCursor && this.setGrabCursor(),
          this.params.preloadImages && this.preloadImages(),
          this.params.loop
            ? this.slideTo(
                this.params.initialSlide + this.loopedSlides,
                0,
                this.params.runCallbacksOnInit
              )
            : this.slideTo(
                this.params.initialSlide,
                0,
                this.params.runCallbacksOnInit
              ),
          this.attachEvents(),
          (this.initialized = !0),
          this.emit("init"));
      }),
      (t.prototype.destroy = function(e, t) {
        void 0 === e && (e = !0), void 0 === t && (t = !0);
        var i = this,
          s = i.params,
          a = i.$el,
          r = i.$wrapperEl,
          n = i.slides;
        i.emit("beforeDestroy"),
          (i.initialized = !1),
          i.detachEvents(),
          s.loop && i.loopDestroy(),
          t &&
            (i.removeClasses(),
            a.removeAttr("style"),
            r.removeAttr("style"),
            n &&
              n.length &&
              n
                .removeClass(
                  [
                    s.slideVisibleClass,
                    s.slideActiveClass,
                    s.slideNextClass,
                    s.slidePrevClass
                  ].join(" ")
                )
                .removeAttr("style")
                .removeAttr("data-swiper-slide-index")
                .removeAttr("data-swiper-column")
                .removeAttr("data-swiper-row")),
          i.emit("destroy"),
          Object.keys(i.eventsListeners).forEach(function(e) {
            i.off(e);
          }),
          !1 !== e &&
            ((i.$el[0].swiper = null),
            i.$el.data("swiper", null),
            d.deleteProps(i)),
          (i.destroyed = !0);
      }),
      (t.extendDefaults = function(e) {
        d.extend(z, e);
      }),
      (i.extendedDefaults.get = function() {
        return z;
      }),
      (i.defaults.get = function() {
        return C;
      }),
      (i.Class.get = function() {
        return e;
      }),
      (i.$.get = function() {
        return s;
      }),
      Object.defineProperties(t, i),
      t
    );
  })(p),
  k = { name: "device", proto: { device: y }, static: { device: y } },
  $ = { name: "support", proto: { support: h }, static: { support: h } },
  L = { name: "browser", proto: { browser: S }, static: { browser: S } },
  I = {
    name: "resize",
    create: function() {
      var e = this;
      d.extend(e, {
        resize: {
          resizeHandler: function() {
            e &&
              !e.destroyed &&
              e.initialized &&
              (e.emit("beforeResize"), e.emit("resize"));
          },
          orientationChangeHandler: function() {
            e && !e.destroyed && e.initialized && e.emit("orientationchange");
          }
        }
      });
    },
    on: {
      init: function() {
        t.addEventListener("resize", this.resize.resizeHandler),
          t.addEventListener(
            "orientationchange",
            this.resize.orientationChangeHandler
          );
      },
      destroy: function() {
        t.removeEventListener("resize", this.resize.resizeHandler),
          t.removeEventListener(
            "orientationchange",
            this.resize.orientationChangeHandler
          );
      }
    }
  },
  D = {
    func: t.MutationObserver || t.WebkitMutationObserver,
    attach: function(e, t) {
      void 0 === t && (t = {});
      var i = this,
        s = new (0, D.func)(function(e) {
          e.forEach(function(e) {
            i.emit("observerUpdate", e);
          });
        });
      s.observe(e, {
        attributes: void 0 === t.attributes || t.attributes,
        childList: void 0 === t.childList || t.childList,
        characterData: void 0 === t.characterData || t.characterData
      }),
        i.observer.observers.push(s);
    },
    init: function() {
      if (h.observer && this.params.observer) {
        if (this.params.observeParents)
          for (var e = this.$el.parents(), t = 0; t < e.length; t += 1)
            this.observer.attach(e[t]);
        this.observer.attach(this.$el[0], { childList: !1 }),
          this.observer.attach(this.$wrapperEl[0], { attributes: !1 });
      }
    },
    destroy: function() {
      this.observer.observers.forEach(function(e) {
        e.disconnect();
      }),
        (this.observer.observers = []);
    }
  },
  O = {
    name: "observer",
    params: { observer: !1, observeParents: !1 },
    create: function() {
      d.extend(this, {
        observer: {
          init: D.init.bind(this),
          attach: D.attach.bind(this),
          destroy: D.destroy.bind(this),
          observers: []
        }
      });
    },
    on: {
      init: function() {
        this.observer.init();
      },
      destroy: function() {
        this.observer.destroy();
      }
    }
  },
  A = {
    update: function(e) {
      var t = this,
        i = t.params,
        s = i.slidesPerView,
        a = i.slidesPerGroup,
        r = i.centeredSlides,
        n = t.virtual,
        o = n.from,
        l = n.to,
        h = n.slides,
        p = n.slidesGrid,
        c = n.renderSlide,
        u = n.offset;
      t.updateActiveIndex();
      var v,
        f,
        m,
        g = t.activeIndex || 0;
      (v = t.rtlTranslate ? "right" : t.isHorizontal() ? "left" : "top"),
        r
          ? ((f = Math.floor(s / 2) + a), (m = Math.floor(s / 2) + a))
          : ((f = s + (a - 1)), (m = a));
      var b = Math.max((g || 0) - m, 0),
        w = Math.min((g || 0) + f, h.length - 1),
        y = (t.slidesGrid[b] || 0) - (t.slidesGrid[0] || 0);
      function x() {
        t.updateSlides(),
          t.updateProgress(),
          t.updateSlidesClasses(),
          t.lazy && t.params.lazy.enabled && t.lazy.load();
      }
      if (
        (d.extend(t.virtual, {
          from: b,
          to: w,
          offset: y,
          slidesGrid: t.slidesGrid
        }),
        o === b && l === w && !e)
      )
        return (
          t.slidesGrid !== p && y !== u && t.slides.css(v, y + "px"),
          void t.updateProgress()
        );
      if (t.params.virtual.renderExternal)
        return (
          t.params.virtual.renderExternal.call(t, {
            offset: y,
            from: b,
            to: w,
            slides: (function() {
              for (var e = [], t = b; t <= w; t += 1) e.push(h[t]);
              return e;
            })()
          }),
          void x()
        );
      var E = [],
        T = [];
      if (e) t.$wrapperEl.find("." + t.params.slideClass).remove();
      else
        for (var S = o; S <= l; S += 1)
          (S < b || S > w) &&
            t.$wrapperEl
              .find(
                "." +
                  t.params.slideClass +
                  '[data-swiper-slide-index="' +
                  S +
                  '"]'
              )
              .remove();
      for (var C = 0; C < h.length; C += 1)
        C >= b &&
          C <= w &&
          (void 0 === l || e
            ? T.push(C)
            : (C > l && T.push(C), C < o && E.push(C)));
      T.forEach(function(e) {
        t.$wrapperEl.append(c(h[e], e));
      }),
        E.sort(function(e, t) {
          return e < t;
        }).forEach(function(e) {
          t.$wrapperEl.prepend(c(h[e], e));
        }),
        t.$wrapperEl.children(".swiper-slide").css(v, y + "px"),
        x();
    },
    renderSlide: function(e, t) {
      var i = this.params.virtual;
      if (i.cache && this.virtual.cache[t]) return this.virtual.cache[t];
      var a = i.renderSlide
        ? s(i.renderSlide.call(this, e, t))
        : s(
            '<div class="' +
              this.params.slideClass +
              '" data-swiper-slide-index="' +
              t +
              '">' +
              e +
              "</div>"
          );
      return (
        a.attr("data-swiper-slide-index") ||
          a.attr("data-swiper-slide-index", t),
        i.cache && (this.virtual.cache[t] = a),
        a
      );
    },
    appendSlide: function(e) {
      this.virtual.slides.push(e), this.virtual.update(!0);
    },
    prependSlide: function(e) {
      if ((this.virtual.slides.unshift(e), this.params.virtual.cache)) {
        var t = this.virtual.cache,
          i = {};
        Object.keys(t).forEach(function(e) {
          i[e + 1] = t[e];
        }),
          (this.virtual.cache = i);
      }
      this.virtual.update(!0), this.slideNext(0);
    }
  },
  H = {
    name: "virtual",
    params: {
      virtual: {
        enabled: !1,
        slides: [],
        cache: !0,
        renderSlide: null,
        renderExternal: null
      }
    },
    create: function() {
      d.extend(this, {
        virtual: {
          update: A.update.bind(this),
          appendSlide: A.appendSlide.bind(this),
          prependSlide: A.prependSlide.bind(this),
          renderSlide: A.renderSlide.bind(this),
          slides: this.params.virtual.slides,
          cache: {}
        }
      });
    },
    on: {
      beforeInit: function() {
        if (this.params.virtual.enabled) {
          this.classNames.push(
            this.params.containerModifierClass + "virtual"
          );
          var e = { watchSlidesProgress: !0 };
          d.extend(this.params, e),
            d.extend(this.originalParams, e),
            this.virtual.update();
        }
      },
      setTranslate: function() {
        this.params.virtual.enabled && this.virtual.update();
      }
    }
  },
  N = {
    handle: function(i) {
      var s = this.rtlTranslate,
        a = i;
      a.originalEvent && (a = a.originalEvent);
      var r = a.keyCode || a.charCode;
      if (
        !this.allowSlideNext &&
        ((this.isHorizontal() && 39 === r) || (this.isVertical() && 40 === r))
      )
        return !1;
      if (
        !this.allowSlidePrev &&
        ((this.isHorizontal() && 37 === r) || (this.isVertical() && 38 === r))
      )
        return !1;
      if (
        !(
          a.shiftKey ||
          a.altKey ||
          a.ctrlKey ||
          a.metaKey ||
          (e.activeElement &&
            e.activeElement.nodeName &&
            ("input" === e.activeElement.nodeName.toLowerCase() ||
              "textarea" === e.activeElement.nodeName.toLowerCase()))
        )
      ) {
        if (
          this.params.keyboard.onlyInViewport &&
          (37 === r || 39 === r || 38 === r || 40 === r)
        ) {
          var n = !1;
          if (
            this.$el.parents("." + this.params.slideClass).length > 0 &&
            0 === this.$el.parents("." + this.params.slideActiveClass).length
          )
            return;
          var o = t.innerWidth,
            l = t.innerHeight,
            d = this.$el.offset();
          s && (d.left -= this.$el[0].scrollLeft);
          for (
            var h = [
                [d.left, d.top],
                [d.left + this.width, d.top],
                [d.left, d.top + this.height],
                [d.left + this.width, d.top + this.height]
              ],
              p = 0;
            p < h.length;
            p += 1
          ) {
            var c = h[p];
            c[0] >= 0 && c[0] <= o && c[1] >= 0 && c[1] <= l && (n = !0);
          }
          if (!n) return;
        }
        this.isHorizontal()
          ? ((37 !== r && 39 !== r) ||
              (a.preventDefault ? a.preventDefault() : (a.returnValue = !1)),
            ((39 === r && !s) || (37 === r && s)) && this.slideNext(),
            ((37 === r && !s) || (39 === r && s)) && this.slidePrev())
          : ((38 !== r && 40 !== r) ||
              (a.preventDefault ? a.preventDefault() : (a.returnValue = !1)),
            40 === r && this.slideNext(),
            38 === r && this.slidePrev()),
          this.emit("keyPress", r);
      }
    },
    enable: function() {
      this.keyboard.enabled ||
        (s(e).on("keydown", this.keyboard.handle),
        (this.keyboard.enabled = !0));
    },
    disable: function() {
      this.keyboard.enabled &&
        (s(e).off("keydown", this.keyboard.handle),
        (this.keyboard.enabled = !1));
    }
  },
  B = {
    name: "keyboard",
    params: { keyboard: { enabled: !1, onlyInViewport: !0 } },
    create: function() {
      d.extend(this, {
        keyboard: {
          enabled: !1,
          enable: N.enable.bind(this),
          disable: N.disable.bind(this),
          handle: N.handle.bind(this)
        }
      });
    },
    on: {
      init: function() {
        this.params.keyboard.enabled && this.keyboard.enable();
      },
      destroy: function() {
        this.keyboard.enabled && this.keyboard.disable();
      }
    }
  };
var G = {
    lastScrollTime: d.now(),
    event:
      t.navigator.userAgent.indexOf("firefox") > -1
        ? "DOMMouseScroll"
        : (function() {
            var t = "onwheel" in e;
            if (!t) {
              var i = e.createElement("div");
              i.setAttribute("onwheel", "return;"),
                (t = "function" == typeof i.onwheel);
            }
            return (
              !t &&
                e.implementation &&
                e.implementation.hasFeature &&
                !0 !== e.implementation.hasFeature("", "") &&
                (t = e.implementation.hasFeature("Events.wheel", "3.0")),
              t
            );
          })()
        ? "wheel"
        : "mousewheel",
    normalize: function(e) {
      var t = 0,
        i = 0,
        s = 0,
        a = 0;
      return (
        "detail" in e && (i = e.detail),
        "wheelDelta" in e && (i = -e.wheelDelta / 120),
        "wheelDeltaY" in e && (i = -e.wheelDeltaY / 120),
        "wheelDeltaX" in e && (t = -e.wheelDeltaX / 120),
        "axis" in e && e.axis === e.HORIZONTAL_AXIS && ((t = i), (i = 0)),
        (s = 10 * t),
        (a = 10 * i),
        "deltaY" in e && (a = e.deltaY),
        "deltaX" in e && (s = e.deltaX),
        (s || a) &&
          e.deltaMode &&
          (1 === e.deltaMode
            ? ((s *= 40), (a *= 40))
            : ((s *= 800), (a *= 800))),
        s && !t && (t = s < 1 ? -1 : 1),
        a && !i && (i = a < 1 ? -1 : 1),
        { spinX: t, spinY: i, pixelX: s, pixelY: a }
      );
    },
    handleMouseEnter: function() {
      this.mouseEntered = !0;
    },
    handleMouseLeave: function() {
      this.mouseEntered = !1;
    },
    handle: function(e) {
      var i = e,
        s = this,
        a = s.params.mousewheel;
      if (!s.mouseEntered && !a.releaseOnEdges) return !0;
      i.originalEvent && (i = i.originalEvent);
      var r = 0,
        n = s.rtlTranslate ? -1 : 1,
        o = G.normalize(i);
      if (a.forceToAxis)
        if (s.isHorizontal()) {
          if (!(Math.abs(o.pixelX) > Math.abs(o.pixelY))) return !0;
          r = o.pixelX * n;
        } else {
          if (!(Math.abs(o.pixelY) > Math.abs(o.pixelX))) return !0;
          r = o.pixelY;
        }
      else
        r =
          Math.abs(o.pixelX) > Math.abs(o.pixelY) ? -o.pixelX * n : -o.pixelY;
      if (0 === r) return !0;
      if ((a.invert && (r = -r), s.params.freeMode)) {
        var l = s.getTranslate() + r * a.sensitivity,
          h = s.isBeginning,
          p = s.isEnd;
        if (
          (l >= s.minTranslate() && (l = s.minTranslate()),
          l <= s.maxTranslate() && (l = s.maxTranslate()),
          s.setTransition(0),
          s.setTranslate(l),
          s.updateProgress(),
          s.updateActiveIndex(),
          s.updateSlidesClasses(),
          ((!h && s.isBeginning) || (!p && s.isEnd)) &&
            s.updateSlidesClasses(),
          s.params.freeModeSticky &&
            (clearTimeout(s.mousewheel.timeout),
            (s.mousewheel.timeout = d.nextTick(function() {
              s.slideToClosest();
            }, 300))),
          s.emit("scroll", i),
          s.params.autoplay &&
            s.params.autoplayDisableOnInteraction &&
            s.stopAutoplay(),
          l === s.minTranslate() || l === s.maxTranslate())
        )
          return !0;
      } else {
        if (d.now() - s.mousewheel.lastScrollTime > 60)
          if (r < 0)
            if ((s.isEnd && !s.params.loop) || s.animating) {
              if (a.releaseOnEdges) return !0;
            } else s.slideNext(), s.emit("scroll", i);
          else if ((s.isBeginning && !s.params.loop) || s.animating) {
            if (a.releaseOnEdges) return !0;
          } else s.slidePrev(), s.emit("scroll", i);
        s.mousewheel.lastScrollTime = new t.Date().getTime();
      }
      return i.preventDefault ? i.preventDefault() : (i.returnValue = !1), !1;
    },
    enable: function() {
      if (!G.event) return !1;
      if (this.mousewheel.enabled) return !1;
      var e = this.$el;
      return (
        "container" !== this.params.mousewheel.eventsTarged &&
          (e = s(this.params.mousewheel.eventsTarged)),
        e.on("mouseenter", this.mousewheel.handleMouseEnter),
        e.on("mouseleave", this.mousewheel.handleMouseLeave),
        e.on(G.event, this.mousewheel.handle),
        (this.mousewheel.enabled = !0),
        !0
      );
    },
    disable: function() {
      if (!G.event) return !1;
      if (!this.mousewheel.enabled) return !1;
      var e = this.$el;
      return (
        "container" !== this.params.mousewheel.eventsTarged &&
          (e = s(this.params.mousewheel.eventsTarged)),
        e.off(G.event, this.mousewheel.handle),
        (this.mousewheel.enabled = !1),
        !0
      );
    }
  },
  X = {
    update: function() {
      var e = this.params.navigation;
      if (!this.params.loop) {
        var t = this.navigation,
          i = t.$nextEl,
          s = t.$prevEl;
        s &&
          s.length > 0 &&
          (this.isBeginning
            ? s.addClass(e.disabledClass)
            : s.removeClass(e.disabledClass),
          s[
            this.params.watchOverflow && this.isLocked
              ? "addClass"
              : "removeClass"
          ](e.lockClass)),
          i &&
            i.length > 0 &&
            (this.isEnd
              ? i.addClass(e.disabledClass)
              : i.removeClass(e.disabledClass),
            i[
              this.params.watchOverflow && this.isLocked
                ? "addClass"
                : "removeClass"
            ](e.lockClass));
      }
    },
    init: function() {
      var e,
        t,
        i = this,
        a = i.params.navigation;
      (a.nextEl || a.prevEl) &&
        (a.nextEl &&
          ((e = s(a.nextEl)),
          i.params.uniqueNavElements &&
            "string" == typeof a.nextEl &&
            e.length > 1 &&
            1 === i.$el.find(a.nextEl).length &&
            (e = i.$el.find(a.nextEl))),
        a.prevEl &&
          ((t = s(a.prevEl)),
          i.params.uniqueNavElements &&
            "string" == typeof a.prevEl &&
            t.length > 1 &&
            1 === i.$el.find(a.prevEl).length &&
            (t = i.$el.find(a.prevEl))),
        e &&
          e.length > 0 &&
          e.on("click", function(e) {
            e.preventDefault(), (i.isEnd && !i.params.loop) || i.slideNext();
          }),
        t &&
          t.length > 0 &&
          t.on("click", function(e) {
            e.preventDefault(),
              (i.isBeginning && !i.params.loop) || i.slidePrev();
          }),
        d.extend(i.navigation, {
          $nextEl: e,
          nextEl: e && e[0],
          $prevEl: t,
          prevEl: t && t[0]
        }));
    },
    destroy: function() {
      var e = this.navigation,
        t = e.$nextEl,
        i = e.$prevEl;
      t &&
        t.length &&
        (t.off("click"), t.removeClass(this.params.navigation.disabledClass)),
        i &&
          i.length &&
          (i.off("click"),
          i.removeClass(this.params.navigation.disabledClass));
    }
  },
  Y = {
    update: function() {
      var e = this.rtl,
        t = this.params.pagination;
      if (
        t.el &&
        this.pagination.el &&
        this.pagination.$el &&
        0 !== this.pagination.$el.length
      ) {
        var i,
          a =
            this.virtual && this.params.virtual.enabled
              ? this.virtual.slides.length
              : this.slides.length,
          r = this.pagination.$el,
          n = this.params.loop
            ? Math.ceil(
                (a - 2 * this.loopedSlides) / this.params.slidesPerGroup
              )
            : this.snapGrid.length;
        if (
          (this.params.loop
            ? ((i = Math.ceil(
                (this.activeIndex - this.loopedSlides) /
                  this.params.slidesPerGroup
              )) >
                a - 1 - 2 * this.loopedSlides &&
                (i -= a - 2 * this.loopedSlides),
              i > n - 1 && (i -= n),
              i < 0 &&
                "bullets" !== this.params.paginationType &&
                (i = n + i))
            : (i =
                void 0 !== this.snapIndex
                  ? this.snapIndex
                  : this.activeIndex || 0),
          "bullets" === t.type &&
            this.pagination.bullets &&
            this.pagination.bullets.length > 0)
        ) {
          var o,
            l,
            d,
            h = this.pagination.bullets;
          if (
            (t.dynamicBullets &&
              ((this.pagination.bulletSize = h
                .eq(0)
                [this.isHorizontal() ? "outerWidth" : "outerHeight"](!0)),
              r.css(
                this.isHorizontal() ? "width" : "height",
                this.pagination.bulletSize * (t.dynamicMainBullets + 4) + "px"
              ),
              t.dynamicMainBullets > 1 &&
                void 0 !== this.previousIndex &&
                ((this.pagination.dynamicBulletIndex +=
                  i - this.previousIndex),
                this.pagination.dynamicBulletIndex > t.dynamicMainBullets - 1
                  ? (this.pagination.dynamicBulletIndex =
                      t.dynamicMainBullets - 1)
                  : this.pagination.dynamicBulletIndex < 0 &&
                    (this.pagination.dynamicBulletIndex = 0)),
              (o = i - this.pagination.dynamicBulletIndex),
              (d =
                ((l = o + (Math.min(h.length, t.dynamicMainBullets) - 1)) +
                  o) /
                2)),
            h.removeClass(
              t.bulletActiveClass +
                " " +
                t.bulletActiveClass +
                "-next " +
                t.bulletActiveClass +
                "-next-next " +
                t.bulletActiveClass +
                "-prev " +
                t.bulletActiveClass +
                "-prev-prev " +
                t.bulletActiveClass +
                "-main"
            ),
            r.length > 1)
          )
            h.each(function(e, a) {
              var r = s(a),
                n = r.index();
              n === i && r.addClass(t.bulletActiveClass),
                t.dynamicBullets &&
                  (n >= o &&
                    n <= l &&
                    r.addClass(t.bulletActiveClass + "-main"),
                  n === o &&
                    r
                      .prev()
                      .addClass(t.bulletActiveClass + "-prev")
                      .prev()
                      .addClass(t.bulletActiveClass + "-prev-prev"),
                  n === l &&
                    r
                      .next()
                      .addClass(t.bulletActiveClass + "-next")
                      .next()
                      .addClass(t.bulletActiveClass + "-next-next"));
            });
          else if (
            (h.eq(i).addClass(t.bulletActiveClass), t.dynamicBullets)
          ) {
            for (var p = h.eq(o), c = h.eq(l), u = o; u <= l; u += 1)
              h.eq(u).addClass(t.bulletActiveClass + "-main");
            p
              .prev()
              .addClass(t.bulletActiveClass + "-prev")
              .prev()
              .addClass(t.bulletActiveClass + "-prev-prev"),
              c
                .next()
                .addClass(t.bulletActiveClass + "-next")
                .next()
                .addClass(t.bulletActiveClass + "-next-next");
          }
          if (t.dynamicBullets) {
            var v = Math.min(h.length, t.dynamicMainBullets + 4),
              f =
                (this.pagination.bulletSize * v -
                  this.pagination.bulletSize) /
                  2 -
                d * this.pagination.bulletSize,
              m = e ? "right" : "left";
            h.css(this.isHorizontal() ? m : "top", f + "px");
          }
        }
        if (
          ("fraction" === t.type &&
            (r.find("." + t.currentClass).text(i + 1),
            r.find("." + t.totalClass).text(n)),
          "progressbar" === t.type)
        ) {
          var g = (i + 1) / n,
            b = g,
            w = 1;
          this.isHorizontal() || ((w = g), (b = 1)),
            r
              .find("." + t.progressbarFillClass)
              .transform(
                "translate3d(0,0,0) scaleX(" + b + ") scaleY(" + w + ")"
              )
              .transition(this.params.speed);
        }
        "custom" === t.type && t.renderCustom
          ? (r.html(t.renderCustom(this, i + 1, n)),
            this.emit("paginationRender", this, r[0]))
          : this.emit("paginationUpdate", this, r[0]),
          r[
            this.params.watchOverflow && this.isLocked
              ? "addClass"
              : "removeClass"
          ](t.lockClass);
      }
    },
    render: function() {
      var e = this.params.pagination;
      if (
        e.el &&
        this.pagination.el &&
        this.pagination.$el &&
        0 !== this.pagination.$el.length
      ) {
        var t =
            this.virtual && this.params.virtual.enabled
              ? this.virtual.slides.length
              : this.slides.length,
          i = this.pagination.$el,
          s = "";
        if ("bullets" === e.type) {
          for (
            var a = this.params.loop
                ? Math.ceil(
                    (t - 2 * this.loopedSlides) / this.params.slidesPerGroup
                  )
                : this.snapGrid.length,
              r = 0;
            r < a;
            r += 1
          )
            e.renderBullet
              ? (s += e.renderBullet.call(this, r, e.bulletClass))
              : (s +=
                  "<" +
                  e.bulletElement +
                  ' class="' +
                  e.bulletClass +
                  '"></' +
                  e.bulletElement +
                  ">");
          i.html(s), (this.pagination.bullets = i.find("." + e.bulletClass));
        }
        "fraction" === e.type &&
          ((s = e.renderFraction
            ? e.renderFraction.call(this, e.currentClass, e.totalClass)
            : '<span class="' +
              e.currentClass +
              '"></span> / <span class="' +
              e.totalClass +
              '"></span>'),
          i.html(s)),
          "progressbar" === e.type &&
            ((s = e.renderProgressbar
              ? e.renderProgressbar.call(this, e.progressbarFillClass)
              : '<span class="' + e.progressbarFillClass + '"></span>'),
            i.html(s)),
          "custom" !== e.type &&
            this.emit("paginationRender", this.pagination.$el[0]);
      }
    },
    init: function() {
      var e = this,
        t = e.params.pagination;
      if (t.el) {
        var i = s(t.el);
        0 !== i.length &&
          (e.params.uniqueNavElements &&
            "string" == typeof t.el &&
            i.length > 1 &&
            1 === e.$el.find(t.el).length &&
            (i = e.$el.find(t.el)),
          "bullets" === t.type && t.clickable && i.addClass(t.clickableClass),
          i.addClass(t.modifierClass + t.type),
          "bullets" === t.type &&
            t.dynamicBullets &&
            (i.addClass("" + t.modifierClass + t.type + "-dynamic"),
            (e.pagination.dynamicBulletIndex = 0),
            t.dynamicMainBullets < 1 && (t.dynamicMainBullets = 1)),
          t.clickable &&
            i.on("click", "." + t.bulletClass, function(t) {
              t.preventDefault();
              var i = s(this).index() * e.params.slidesPerGroup;
              e.params.loop && (i += e.loopedSlides), e.slideTo(i);
            }),
          d.extend(e.pagination, { $el: i, el: i[0] }));
      }
    },
    destroy: function() {
      var e = this.params.pagination;
      if (
        e.el &&
        this.pagination.el &&
        this.pagination.$el &&
        0 !== this.pagination.$el.length
      ) {
        var t = this.pagination.$el;
        t.removeClass(e.hiddenClass),
          t.removeClass(e.modifierClass + e.type),
          this.pagination.bullets &&
            this.pagination.bullets.removeClass(e.bulletActiveClass),
          e.clickable && t.off("click", "." + e.bulletClass);
      }
    }
  },
  V = {
    setTranslate: function() {
      if (this.params.scrollbar.el && this.scrollbar.el) {
        var e = this.scrollbar,
          t = this.rtlTranslate,
          i = this.progress,
          s = e.dragSize,
          a = e.trackSize,
          r = e.$dragEl,
          n = e.$el,
          o = this.params.scrollbar,
          l = s,
          d = (a - s) * i;
        t
          ? (d = -d) > 0
            ? ((l = s - d), (d = 0))
            : -d + s > a && (l = a + d)
          : d < 0
          ? ((l = s + d), (d = 0))
          : d + s > a && (l = a - d),
          this.isHorizontal()
            ? (h.transforms3d
                ? r.transform("translate3d(" + d + "px, 0, 0)")
                : r.transform("translateX(" + d + "px)"),
              (r[0].style.width = l + "px"))
            : (h.transforms3d
                ? r.transform("translate3d(0px, " + d + "px, 0)")
                : r.transform("translateY(" + d + "px)"),
              (r[0].style.height = l + "px")),
          o.hide &&
            (clearTimeout(this.scrollbar.timeout),
            (n[0].style.opacity = 1),
            (this.scrollbar.timeout = setTimeout(function() {
              (n[0].style.opacity = 0), n.transition(400);
            }, 1e3)));
      }
    },
    setTransition: function(e) {
      this.params.scrollbar.el &&
        this.scrollbar.el &&
        this.scrollbar.$dragEl.transition(e);
    },
    updateSize: function() {
      if (this.params.scrollbar.el && this.scrollbar.el) {
        var e = this.scrollbar,
          t = e.$dragEl,
          i = e.$el;
        (t[0].style.width = ""), (t[0].style.height = "");
        var s,
          a = this.isHorizontal() ? i[0].offsetWidth : i[0].offsetHeight,
          r = this.size / this.virtualSize,
          n = r * (a / this.size);
        (s =
          "auto" === this.params.scrollbar.dragSize
            ? a * r
            : parseInt(this.params.scrollbar.dragSize, 10)),
          this.isHorizontal()
            ? (t[0].style.width = s + "px")
            : (t[0].style.height = s + "px"),
          (i[0].style.display = r >= 1 ? "none" : ""),
          this.params.scrollbarHide && (i[0].style.opacity = 0),
          d.extend(e, {
            trackSize: a,
            divider: r,
            moveDivider: n,
            dragSize: s
          }),
          e.$el[
            this.params.watchOverflow && this.isLocked
              ? "addClass"
              : "removeClass"
          ](this.params.scrollbar.lockClass);
      }
    },
    setDragPosition: function(e) {
      var t,
        i = this.scrollbar,
        s = this.rtlTranslate,
        a = i.$el,
        r = i.dragSize,
        n = i.trackSize;
      (t =
        ((this.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) -
          a.offset()[this.isHorizontal() ? "left" : "top"] -
          r / 2) /
        (n - r)),
        (t = Math.max(Math.min(t, 1), 0)),
        s && (t = 1 - t);
      var o =
        this.minTranslate() + (this.maxTranslate() - this.minTranslate()) * t;
      this.updateProgress(o),
        this.setTranslate(o),
        this.updateActiveIndex(),
        this.updateSlidesClasses();
    },
    onDragStart: function(e) {
      var t = this.params.scrollbar,
        i = this.scrollbar,
        s = this.$wrapperEl,
        a = i.$el,
        r = i.$dragEl;
      (this.scrollbar.isTouched = !0),
        e.preventDefault(),
        e.stopPropagation(),
        s.transition(100),
        r.transition(100),
        i.setDragPosition(e),
        clearTimeout(this.scrollbar.dragTimeout),
        a.transition(0),
        t.hide && a.css("opacity", 1),
        this.emit("scrollbarDragStart", e);
    },
    onDragMove: function(e) {
      var t = this.scrollbar,
        i = this.$wrapperEl,
        s = t.$el,
        a = t.$dragEl;
      this.scrollbar.isTouched &&
        (e.preventDefault ? e.preventDefault() : (e.returnValue = !1),
        t.setDragPosition(e),
        i.transition(0),
        s.transition(0),
        a.transition(0),
        this.emit("scrollbarDragMove", e));
    },
    onDragEnd: function(e) {
      var t = this.params.scrollbar,
        i = this.scrollbar.$el;
      this.scrollbar.isTouched &&
        ((this.scrollbar.isTouched = !1),
        t.hide &&
          (clearTimeout(this.scrollbar.dragTimeout),
          (this.scrollbar.dragTimeout = d.nextTick(function() {
            i.css("opacity", 0), i.transition(400);
          }, 1e3))),
        this.emit("scrollbarDragEnd", e),
        t.snapOnRelease && this.slideToClosest());
    },
    enableDraggable: function() {
      if (this.params.scrollbar.el) {
        var t = this.scrollbar,
          i = this.touchEvents,
          s = this.touchEventsDesktop,
          a = this.params,
          r = t.$el[0],
          n = !(!h.passiveListener || !a.passiveListener) && {
            passive: !1,
            capture: !1
          },
          o = !(!h.passiveListener || !a.passiveListener) && {
            passive: !0,
            capture: !1
          };
        h.touch || (!h.pointerEvents && !h.prefixedPointerEvents)
          ? (h.touch &&
              (r.addEventListener(i.start, this.scrollbar.onDragStart, n),
              r.addEventListener(i.move, this.scrollbar.onDragMove, n),
              r.addEventListener(i.end, this.scrollbar.onDragEnd, o)),
            ((a.simulateTouch && !y.ios && !y.android) ||
              (a.simulateTouch && !h.touch && y.ios)) &&
              (r.addEventListener("mousedown", this.scrollbar.onDragStart, n),
              e.addEventListener("mousemove", this.scrollbar.onDragMove, n),
              e.addEventListener("mouseup", this.scrollbar.onDragEnd, o)))
          : (r.addEventListener(s.start, this.scrollbar.onDragStart, n),
            e.addEventListener(s.move, this.scrollbar.onDragMove, n),
            e.addEventListener(s.end, this.scrollbar.onDragEnd, o));
      }
    },
    disableDraggable: function() {
      if (this.params.scrollbar.el) {
        var t = this.scrollbar,
          i = this.touchEvents,
          s = this.touchEventsDesktop,
          a = this.params,
          r = t.$el[0],
          n = !(!h.passiveListener || !a.passiveListener) && {
            passive: !1,
            capture: !1
          },
          o = !(!h.passiveListener || !a.passiveListener) && {
            passive: !0,
            capture: !1
          };
        h.touch || (!h.pointerEvents && !h.prefixedPointerEvents)
          ? (h.touch &&
              (r.removeEventListener(i.start, this.scrollbar.onDragStart, n),
              r.removeEventListener(i.move, this.scrollbar.onDragMove, n),
              r.removeEventListener(i.end, this.scrollbar.onDragEnd, o)),
            ((a.simulateTouch && !y.ios && !y.android) ||
              (a.simulateTouch && !h.touch && y.ios)) &&
              (r.removeEventListener(
                "mousedown",
                this.scrollbar.onDragStart,
                n
              ),
              e.removeEventListener(
                "mousemove",
                this.scrollbar.onDragMove,
                n
              ),
              e.removeEventListener("mouseup", this.scrollbar.onDragEnd, o)))
          : (r.removeEventListener(s.start, this.scrollbar.onDragStart, n),
            e.removeEventListener(s.move, this.scrollbar.onDragMove, n),
            e.removeEventListener(s.end, this.scrollbar.onDragEnd, o));
      }
    },
    init: function() {
      if (this.params.scrollbar.el) {
        var e = this.scrollbar,
          t = this.$el,
          i = this.params.scrollbar,
          a = s(i.el);
        this.params.uniqueNavElements &&
          "string" == typeof i.el &&
          a.length > 1 &&
          1 === t.find(i.el).length &&
          (a = t.find(i.el));
        var r = a.find("." + this.params.scrollbar.dragClass);
        0 === r.length &&
          ((r = s(
            '<div class="' + this.params.scrollbar.dragClass + '"></div>'
          )),
          a.append(r)),
          d.extend(e, { $el: a, el: a[0], $dragEl: r, dragEl: r[0] }),
          i.draggable && e.enableDraggable();
      }
    },
    destroy: function() {
      this.scrollbar.disableDraggable();
    }
  },
  R = {
    setTransform: function(e, t) {
      var i = this.rtl,
        a = s(e),
        r = i ? -1 : 1,
        n = a.attr("data-swiper-parallax") || "0",
        o = a.attr("data-swiper-parallax-x"),
        l = a.attr("data-swiper-parallax-y"),
        d = a.attr("data-swiper-parallax-scale"),
        h = a.attr("data-swiper-parallax-opacity");
      if (
        (o || l
          ? ((o = o || "0"), (l = l || "0"))
          : this.isHorizontal()
          ? ((o = n), (l = "0"))
          : ((l = n), (o = "0")),
        (o =
          o.indexOf("%") >= 0
            ? parseInt(o, 10) * t * r + "%"
            : o * t * r + "px"),
        (l = l.indexOf("%") >= 0 ? parseInt(l, 10) * t + "%" : l * t + "px"),
        void 0 !== h && null !== h)
      ) {
        var p = h - (h - 1) * (1 - Math.abs(t));
        a[0].style.opacity = p;
      }
      if (void 0 === d || null === d)
        a.transform("translate3d(" + o + ", " + l + ", 0px)");
      else {
        var c = d - (d - 1) * (1 - Math.abs(t));
        a.transform(
          "translate3d(" + o + ", " + l + ", 0px) scale(" + c + ")"
        );
      }
    },
    setTranslate: function() {
      var e = this,
        t = e.$el,
        i = e.slides,
        a = e.progress,
        r = e.snapGrid;
      t
        .children(
          "[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]"
        )
        .each(function(t, i) {
          e.parallax.setTransform(i, a);
        }),
        i.each(function(t, i) {
          var n = i.progress;
          e.params.slidesPerGroup > 1 &&
            "auto" !== e.params.slidesPerView &&
            (n += Math.ceil(t / 2) - a * (r.length - 1)),
            (n = Math.min(Math.max(n, -1), 1)),
            s(i)
              .find(
                "[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]"
              )
              .each(function(t, i) {
                e.parallax.setTransform(i, n);
              });
        });
    },
    setTransition: function(e) {
      void 0 === e && (e = this.params.speed);
      this.$el
        .find(
          "[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]"
        )
        .each(function(t, i) {
          var a = s(i),
            r = parseInt(a.attr("data-swiper-parallax-duration"), 10) || e;
          0 === e && (r = 0), a.transition(r);
        });
    }
  },
  F = {
    getDistanceBetweenTouches: function(e) {
      if (e.targetTouches.length < 2) return 1;
      var t = e.targetTouches[0].pageX,
        i = e.targetTouches[0].pageY,
        s = e.targetTouches[1].pageX,
        a = e.targetTouches[1].pageY;
      return Math.sqrt(Math.pow(s - t, 2) + Math.pow(a - i, 2));
    },
    onGestureStart: function(e) {
      var t = this.params.zoom,
        i = this.zoom,
        a = i.gesture;
      if (
        ((i.fakeGestureTouched = !1), (i.fakeGestureMoved = !1), !h.gestures)
      ) {
        if (
          "touchstart" !== e.type ||
          ("touchstart" === e.type && e.targetTouches.length < 2)
        )
          return;
        (i.fakeGestureTouched = !0),
          (a.scaleStart = F.getDistanceBetweenTouches(e));
      }
      (a.$slideEl && a.$slideEl.length) ||
      ((a.$slideEl = s(e.target).closest(".swiper-slide")),
      0 === a.$slideEl.length &&
        (a.$slideEl = this.slides.eq(this.activeIndex)),
      (a.$imageEl = a.$slideEl.find("img, svg, canvas")),
      (a.$imageWrapEl = a.$imageEl.parent("." + t.containerClass)),
      (a.maxRatio = a.$imageWrapEl.attr("data-swiper-zoom") || t.maxRatio),
      0 !== a.$imageWrapEl.length)
        ? (a.$imageEl.transition(0), (this.zoom.isScaling = !0))
        : (a.$imageEl = void 0);
    },
    onGestureChange: function(e) {
      var t = this.params.zoom,
        i = this.zoom,
        s = i.gesture;
      if (!h.gestures) {
        if (
          "touchmove" !== e.type ||
          ("touchmove" === e.type && e.targetTouches.length < 2)
        )
          return;
        (i.fakeGestureMoved = !0),
          (s.scaleMove = F.getDistanceBetweenTouches(e));
      }
      s.$imageEl &&
        0 !== s.$imageEl.length &&
        (h.gestures
          ? (this.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, 0.5)),
        i.scale < t.minRatio &&
          (i.scale =
            t.minRatio + 1 - Math.pow(t.minRatio - i.scale + 1, 0.5)),
        s.$imageEl.transform("translate3d(0,0,0) scale(" + i.scale + ")"));
    },
    onGestureEnd: function(e) {
      var t = this.params.zoom,
        i = this.zoom,
        s = i.gesture;
      if (!h.gestures) {
        if (!i.fakeGestureTouched || !i.fakeGestureMoved) return;
        if (
          "touchend" !== e.type ||
          ("touchend" === e.type && e.changedTouches.length < 2 && !y.android)
        )
          return;
        (i.fakeGestureTouched = !1), (i.fakeGestureMoved = !1);
      }
      s.$imageEl &&
        0 !== s.$imageEl.length &&
        ((i.scale = Math.max(Math.min(i.scale, s.maxRatio), t.minRatio)),
        s.$imageEl
          .transition(this.params.speed)
          .transform("translate3d(0,0,0) scale(" + i.scale + ")"),
        (i.currentScale = i.scale),
        (i.isScaling = !1),
        1 === i.scale && (s.$slideEl = void 0));
    },
    onTouchStart: function(e) {
      var t = this.zoom,
        i = t.gesture,
        s = t.image;
      i.$imageEl &&
        0 !== i.$imageEl.length &&
        (s.isTouched ||
          (y.android && e.preventDefault(),
          (s.isTouched = !0),
          (s.touchesStart.x =
            "touchstart" === e.type ? e.targetTouches[0].pageX : e.pageX),
          (s.touchesStart.y =
            "touchstart" === e.type ? e.targetTouches[0].pageY : e.pageY)));
    },
    onTouchMove: function(e) {
      var t = this.zoom,
        i = t.gesture,
        s = t.image,
        a = t.velocity;
      if (
        i.$imageEl &&
        0 !== i.$imageEl.length &&
        ((this.allowClick = !1), s.isTouched && i.$slideEl)
      ) {
        s.isMoved ||
          ((s.width = i.$imageEl[0].offsetWidth),
          (s.height = i.$imageEl[0].offsetHeight),
          (s.startX = d.getTranslate(i.$imageWrapEl[0], "x") || 0),
          (s.startY = d.getTranslate(i.$imageWrapEl[0], "y") || 0),
          (i.slideWidth = i.$slideEl[0].offsetWidth),
          (i.slideHeight = i.$slideEl[0].offsetHeight),
          i.$imageWrapEl.transition(0),
          this.rtl && ((s.startX = -s.startX), (s.startY = -s.startY)));
        var r = s.width * t.scale,
          n = s.height * t.scale;
        if (!(r < i.slideWidth && n < i.slideHeight)) {
          if (
            ((s.minX = Math.min(i.slideWidth / 2 - r / 2, 0)),
            (s.maxX = -s.minX),
            (s.minY = Math.min(i.slideHeight / 2 - n / 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 && !t.isScaling)
          ) {
            if (
              this.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);
            if (
              !this.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);
          }
          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, 0.8)),
            s.currentX > s.maxX &&
              (s.currentX =
                s.maxX - 1 + Math.pow(s.currentX - s.maxX + 1, 0.8)),
            s.currentY < s.minY &&
              (s.currentY =
                s.minY + 1 - Math.pow(s.minY - s.currentY + 1, 0.8)),
            s.currentY > s.maxY &&
              (s.currentY =
                s.maxY - 1 + Math.pow(s.currentY - s.maxY + 1, 0.8)),
            a.prevPositionX || (a.prevPositionX = s.touchesCurrent.x),
            a.prevPositionY || (a.prevPositionY = s.touchesCurrent.y),
            a.prevTime || (a.prevTime = Date.now()),
            (a.x =
              (s.touchesCurrent.x - a.prevPositionX) /
              (Date.now() - a.prevTime) /
              2),
            (a.y =
              (s.touchesCurrent.y - a.prevPositionY) /
              (Date.now() - a.prevTime) /
              2),
            Math.abs(s.touchesCurrent.x - a.prevPositionX) < 2 && (a.x = 0),
            Math.abs(s.touchesCurrent.y - a.prevPositionY) < 2 && (a.y = 0),
            (a.prevPositionX = s.touchesCurrent.x),
            (a.prevPositionY = s.touchesCurrent.y),
            (a.prevTime = Date.now()),
            i.$imageWrapEl.transform(
              "translate3d(" + s.currentX + "px, " + s.currentY + "px,0)"
            );
        }
      }
    },
    onTouchEnd: function() {
      var e = this.zoom,
        t = e.gesture,
        i = e.image,
        s = e.velocity;
      if (t.$imageEl && 0 !== t.$imageEl.length) {
        if (!i.isTouched || !i.isMoved)
          return (i.isTouched = !1), void (i.isMoved = !1);
        (i.isTouched = !1), (i.isMoved = !1);
        var a = 300,
          r = 300,
          n = s.x * a,
          o = i.currentX + n,
          l = s.y * r,
          d = i.currentY + l;
        0 !== s.x && (a = Math.abs((o - i.currentX) / s.x)),
          0 !== s.y && (r = Math.abs((d - i.currentY) / s.y));
        var h = Math.max(a, r);
        (i.currentX = o), (i.currentY = d);
        var p = i.width * e.scale,
          c = i.height * e.scale;
        (i.minX = Math.min(t.slideWidth / 2 - p / 2, 0)),
          (i.maxX = -i.minX),
          (i.minY = Math.min(t.slideHeight / 2 - c / 2, 0)),
          (i.maxY = -i.minY),
          (i.currentX = Math.max(Math.min(i.currentX, i.maxX), i.minX)),
          (i.currentY = Math.max(Math.min(i.currentY, i.maxY), i.minY)),
          t.$imageWrapEl
            .transition(h)
            .transform(
              "translate3d(" + i.currentX + "px, " + i.currentY + "px,0)"
            );
      }
    },
    onTransitionEnd: function() {
      var e = this.zoom,
        t = e.gesture;
      t.$slideEl &&
        this.previousIndex !== this.activeIndex &&
        (t.$imageEl.transform("translate3d(0,0,0) scale(1)"),
        t.$imageWrapEl.transform("translate3d(0,0,0)"),
        (t.$slideEl = void 0),
        (t.$imageEl = void 0),
        (t.$imageWrapEl = void 0),
        (e.scale = 1),
        (e.currentScale = 1));
    },
    toggle: function(e) {
      var t = this.zoom;
      t.scale && 1 !== t.scale ? t.out() : t.in(e);
    },
    in: function(e) {
      var t,
        i,
        a,
        r,
        n,
        o,
        l,
        d,
        h,
        p,
        c,
        u,
        v,
        f,
        m,
        g,
        b = this.zoom,
        w = this.params.zoom,
        y = b.gesture,
        x = b.image;
      (y.$slideEl ||
        ((y.$slideEl = this.clickedSlide
          ? s(this.clickedSlide)
          : this.slides.eq(this.activeIndex)),
        (y.$imageEl = y.$slideEl.find("img, svg, canvas")),
        (y.$imageWrapEl = y.$imageEl.parent("." + w.containerClass))),
      y.$imageEl && 0 !== y.$imageEl.length) &&
        (y.$slideEl.addClass("" + w.zoomedSlideClass),
        void 0 === x.touchesStart.x && e
          ? ((t =
              "touchend" === e.type ? e.changedTouches[0].pageX : e.pageX),
            (i = "touchend" === e.type ? e.changedTouches[0].pageY : e.pageY))
          : ((t = x.touchesStart.x), (i = x.touchesStart.y)),
        (b.scale = y.$imageWrapEl.attr("data-swiper-zoom") || w.maxRatio),
        (b.currentScale =
          y.$imageWrapEl.attr("data-swiper-zoom") || w.maxRatio),
        e
          ? ((m = y.$slideEl[0].offsetWidth),
            (g = y.$slideEl[0].offsetHeight),
            (a = y.$slideEl.offset().left + m / 2 - t),
            (r = y.$slideEl.offset().top + g / 2 - i),
            (l = y.$imageEl[0].offsetWidth),
            (d = y.$imageEl[0].offsetHeight),
            (h = l * b.scale),
            (p = d * b.scale),
            (v = -(c = Math.min(m / 2 - h / 2, 0))),
            (f = -(u = Math.min(g / 2 - p / 2, 0))),
            (n = a * b.scale),
            (o = r * b.scale),
            n < c && (n = c),
            n > v && (n = v),
            o < u && (o = u),
            o > f && (o = f))
          : ((n = 0), (o = 0)),
        y.$imageWrapEl
          .transition(300)
          .transform("translate3d(" + n + "px, " + o + "px,0)"),
        y.$imageEl
          .transition(300)
          .transform("translate3d(0,0,0) scale(" + b.scale + ")"));
    },
    out: function() {
      var e = this.zoom,
        t = this.params.zoom,
        i = e.gesture;
      i.$slideEl ||
        ((i.$slideEl = this.clickedSlide
          ? s(this.clickedSlide)
          : this.slides.eq(this.activeIndex)),
        (i.$imageEl = i.$slideEl.find("img, svg, canvas")),
        (i.$imageWrapEl = i.$imageEl.parent("." + t.containerClass))),
        i.$imageEl &&
          0 !== i.$imageEl.length &&
          ((e.scale = 1),
          (e.currentScale = 1),
          i.$imageWrapEl.transition(300).transform("translate3d(0,0,0)"),
          i.$imageEl.transition(300).transform("translate3d(0,0,0) scale(1)"),
          i.$slideEl.removeClass("" + t.zoomedSlideClass),
          (i.$slideEl = void 0));
    },
    enable: function() {
      var e = this.zoom;
      if (!e.enabled) {
        e.enabled = !0;
        var t = !(
          "touchstart" !== this.touchEvents.start ||
          !h.passiveListener ||
          !this.params.passiveListeners
        ) && { passive: !0, capture: !1 };
        h.gestures
          ? (this.$wrapperEl.on(
              "gesturestart",
              ".swiper-slide",
              e.onGestureStart,
              t
            ),
            this.$wrapperEl.on(
              "gesturechange",
              ".swiper-slide",
              e.onGestureChange,
              t
            ),
            this.$wrapperEl.on(
              "gestureend",
              ".swiper-slide",
              e.onGestureEnd,
              t
            ))
          : "touchstart" === this.touchEvents.start &&
            (this.$wrapperEl.on(
              this.touchEvents.start,
              ".swiper-slide",
              e.onGestureStart,
              t
            ),
            this.$wrapperEl.on(
              this.touchEvents.move,
              ".swiper-slide",
              e.onGestureChange,
              t
            ),
            this.$wrapperEl.on(
              this.touchEvents.end,
              ".swiper-slide",
              e.onGestureEnd,
              t
            )),
          this.$wrapperEl.on(
            this.touchEvents.move,
            "." + this.params.zoom.containerClass,
            e.onTouchMove
          );
      }
    },
    disable: function() {
      var e = this.zoom;
      if (e.enabled) {
        this.zoom.enabled = !1;
        var t = !(
          "touchstart" !== this.touchEvents.start ||
          !h.passiveListener ||
          !this.params.passiveListeners
        ) && { passive: !0, capture: !1 };
        h.gestures
          ? (this.$wrapperEl.off(
              "gesturestart",
              ".swiper-slide",
              e.onGestureStart,
              t
            ),
            this.$wrapperEl.off(
              "gesturechange",
              ".swiper-slide",
              e.onGestureChange,
              t
            ),
            this.$wrapperEl.off(
              "gestureend",
              ".swiper-slide",
              e.onGestureEnd,
              t
            ))
          : "touchstart" === this.touchEvents.start &&
            (this.$wrapperEl.off(
              this.touchEvents.start,
              ".swiper-slide",
              e.onGestureStart,
              t
            ),
            this.$wrapperEl.off(
              this.touchEvents.move,
              ".swiper-slide",
              e.onGestureChange,
              t
            ),
            this.$wrapperEl.off(
              this.touchEvents.end,
              ".swiper-slide",
              e.onGestureEnd,
              t
            )),
          this.$wrapperEl.off(
            this.touchEvents.move,
            "." + this.params.zoom.containerClass,
            e.onTouchMove
          );
      }
    }
  },
  W = {
    loadInSlide: function(e, t) {
      void 0 === t && (t = !0);
      var i = this,
        a = i.params.lazy;
      if (void 0 !== e && 0 !== i.slides.length) {
        var r =
            i.virtual && i.params.virtual.enabled
              ? i.$wrapperEl.children(
                  "." +
                    i.params.slideClass +
                    '[data-swiper-slide-index="' +
                    e +
                    '"]'
                )
              : i.slides.eq(e),
          n = r.find(
            "." +
              a.elementClass +
              ":not(." +
              a.loadedClass +
              "):not(." +
              a.loadingClass +
              ")"
          );
        !r.hasClass(a.elementClass) ||
          r.hasClass(a.loadedClass) ||
          r.hasClass(a.loadingClass) ||
          (n = n.add(r[0])),
          0 !== n.length &&
            n.each(function(e, n) {
              var o = s(n);
              o.addClass(a.loadingClass);
              var l = o.attr("data-background"),
                d = o.attr("data-src"),
                h = o.attr("data-srcset"),
                p = o.attr("data-sizes");
              i.loadImage(o[0], d || l, h, p, !1, function() {
                if (
                  void 0 !== i &&
                  null !== i &&
                  i &&
                  (!i || i.params) &&
                  !i.destroyed
                ) {
                  if (
                    (l
                      ? (o.css("background-image", 'url("' + l + '")'),
                        o.removeAttr("data-background"))
                      : (h &&
                          (o.attr("srcset", h), o.removeAttr("data-srcset")),
                        p && (o.attr("sizes", p), o.removeAttr("data-sizes")),
                        d && (o.attr("src", d), o.removeAttr("data-src"))),
                    o.addClass(a.loadedClass).removeClass(a.loadingClass),
                    r.find("." + a.preloaderClass).remove(),
                    i.params.loop && t)
                  ) {
                    var e = r.attr("data-swiper-slide-index");
                    if (r.hasClass(i.params.slideDuplicateClass)) {
                      var s = i.$wrapperEl.children(
                        '[data-swiper-slide-index="' +
                          e +
                          '"]:not(.' +
                          i.params.slideDuplicateClass +
                          ")"
                      );
                      i.lazy.loadInSlide(s.index(), !1);
                    } else {
                      var n = i.$wrapperEl.children(
                        "." +
                          i.params.slideDuplicateClass +
                          '[data-swiper-slide-index="' +
                          e +
                          '"]'
                      );
                      i.lazy.loadInSlide(n.index(), !1);
                    }
                  }
                  i.emit("lazyImageReady", r[0], o[0]);
                }
              }),
                i.emit("lazyImageLoad", r[0], o[0]);
            });
      }
    },
    load: function() {
      var e = this,
        t = e.$wrapperEl,
        i = e.params,
        a = e.slides,
        r = e.activeIndex,
        n = e.virtual && i.virtual.enabled,
        o = i.lazy,
        l = i.slidesPerView;
      function d(e) {
        if (n) {
          if (
            t.children(
              "." + i.slideClass + '[data-swiper-slide-index="' + e + '"]'
            ).length
          )
            return !0;
        } else if (a[e]) return !0;
        return !1;
      }
      function h(e) {
        return n ? s(e).attr("data-swiper-slide-index") : s(e).index();
      }
      if (
        ("auto" === l && (l = 0),
        e.lazy.initialImageLoaded || (e.lazy.initialImageLoaded = !0),
        e.params.watchSlidesVisibility)
      )
        t.children("." + i.slideVisibleClass).each(function(t, i) {
          var a = n ? s(i).attr("data-swiper-slide-index") : s(i).index();
          e.lazy.loadInSlide(a);
        });
      else if (l > 1)
        for (var p = r; p < r + l; p += 1) d(p) && e.lazy.loadInSlide(p);
      else e.lazy.loadInSlide(r);
      if (o.loadPrevNext)
        if (l > 1 || (o.loadPrevNextAmount && o.loadPrevNextAmount > 1)) {
          for (
            var c = o.loadPrevNextAmount,
              u = l,
              v = Math.min(r + u + Math.max(c, u), a.length),
              f = Math.max(r - Math.max(u, c), 0),
              m = r + l;
            m < v;
            m += 1
          )
            d(m) && e.lazy.loadInSlide(m);
          for (var g = f; g < r; g += 1) d(g) && e.lazy.loadInSlide(g);
        } else {
          var b = t.children("." + i.slideNextClass);
          b.length > 0 && e.lazy.loadInSlide(h(b));
          var w = t.children("." + i.slidePrevClass);
          w.length > 0 && e.lazy.loadInSlide(h(w));
        }
    }
  },
  q = {
    LinearSpline: function(e, t) {
      var i,
        s,
        a,
        r,
        n,
        o = function(e, t) {
          for (s = -1, i = e.length; i - s > 1; )
            e[(a = (i + s) >> 1)] <= t ? (s = a) : (i = a);
          return i;
        };
      return (
        (this.x = e),
        (this.y = t),
        (this.lastIndex = e.length - 1),
        (this.interpolate = function(e) {
          return e
            ? ((n = o(this.x, e)),
              (r = n - 1),
              ((e - this.x[r]) * (this.y[n] - this.y[r])) /
                (this.x[n] - this.x[r]) +
                this.y[r])
            : 0;
        }),
        this
      );
    },
    getInterpolateFunction: function(e) {
      this.controller.spline ||
        (this.controller.spline = this.params.loop
          ? new q.LinearSpline(this.slidesGrid, e.slidesGrid)
          : new q.LinearSpline(this.snapGrid, e.snapGrid));
    },
    setTranslate: function(e, t) {
      var i,
        s,
        a = this,
        r = a.controller.control;
      function n(e) {
        var t = a.rtlTranslate ? -a.translate : a.translate;
        "slide" === a.params.controller.by &&
          (a.controller.getInterpolateFunction(e),
          (s = -a.controller.spline.interpolate(-t))),
          (s && "container" !== a.params.controller.by) ||
            ((i =
              (e.maxTranslate() - e.minTranslate()) /
              (a.maxTranslate() - a.minTranslate())),
            (s = (t - a.minTranslate()) * i + e.minTranslate())),
          a.params.controller.inverse && (s = e.maxTranslate() - s),
          e.updateProgress(s),
          e.setTranslate(s, a),
          e.updateActiveIndex(),
          e.updateSlidesClasses();
      }
      if (Array.isArray(r))
        for (var o = 0; o < r.length; o += 1)
          r[o] !== t && r[o] instanceof P && n(r[o]);
      else r instanceof P && t !== r && n(r);
    },
    setTransition: function(e, t) {
      var i,
        s = this,
        a = s.controller.control;
      function r(t) {
        t.setTransition(e, s),
          0 !== e &&
            (t.transitionStart(),
            t.$wrapperEl.transitionEnd(function() {
              a &&
                (t.params.loop &&
                  "slide" === s.params.controller.by &&
                  t.loopFix(),
                t.transitionEnd());
            }));
      }
      if (Array.isArray(a))
        for (i = 0; i < a.length; i += 1)
          a[i] !== t && a[i] instanceof P && r(a[i]);
      else a instanceof P && t !== a && r(a);
    }
  },
  j = {
    makeElFocusable: function(e) {
      return e.attr("tabIndex", "0"), e;
    },
    addElRole: function(e, t) {
      return e.attr("role", t), e;
    },
    addElLabel: function(e, t) {
      return e.attr("aria-label", t), e;
    },
    disableEl: function(e) {
      return e.attr("aria-disabled", !0), e;
    },
    enableEl: function(e) {
      return e.attr("aria-disabled", !1), e;
    },
    onEnterKey: function(e) {
      var t = this.params.a11y;
      if (13 === e.keyCode) {
        var i = s(e.target);
        this.navigation &&
          this.navigation.$nextEl &&
          i.is(this.navigation.$nextEl) &&
          ((this.isEnd && !this.params.loop) || this.slideNext(),
          this.isEnd
            ? this.a11y.notify(t.lastSlideMessage)
            : this.a11y.notify(t.nextSlideMessage)),
          this.navigation &&
            this.navigation.$prevEl &&
            i.is(this.navigation.$prevEl) &&
            ((this.isBeginning && !this.params.loop) || this.slidePrev(),
            this.isBeginning
              ? this.a11y.notify(t.firstSlideMessage)
              : this.a11y.notify(t.prevSlideMessage)),
          this.pagination &&
            i.is("." + this.params.pagination.bulletClass) &&
            i[0].click();
      }
    },
    notify: function(e) {
      var t = this.a11y.liveRegion;
      0 !== t.length && (t.html(""), t.html(e));
    },
    updateNavigation: function() {
      if (!this.params.loop) {
        var e = this.navigation,
          t = e.$nextEl,
          i = e.$prevEl;
        i &&
          i.length > 0 &&
          (this.isBeginning ? this.a11y.disableEl(i) : this.a11y.enableEl(i)),
          t &&
            t.length > 0 &&
            (this.isEnd ? this.a11y.disableEl(t) : this.a11y.enableEl(t));
      }
    },
    updatePagination: function() {
      var e = this,
        t = e.params.a11y;
      e.pagination &&
        e.params.pagination.clickable &&
        e.pagination.bullets &&
        e.pagination.bullets.length &&
        e.pagination.bullets.each(function(i, a) {
          var r = s(a);
          e.a11y.makeElFocusable(r),
            e.a11y.addElRole(r, "button"),
            e.a11y.addElLabel(
              r,
              t.paginationBulletMessage.replace(/{{index}}/, r.index() + 1)
            );
        });
    },
    init: function() {
      this.$el.append(this.a11y.liveRegion);
      var e,
        t,
        i = this.params.a11y;
      this.navigation &&
        this.navigation.$nextEl &&
        (e = this.navigation.$nextEl),
        this.navigation &&
          this.navigation.$prevEl &&
          (t = this.navigation.$prevEl),
        e &&
          (this.a11y.makeElFocusable(e),
          this.a11y.addElRole(e, "button"),
          this.a11y.addElLabel(e, i.nextSlideMessage),
          e.on("keydown", this.a11y.onEnterKey)),
        t &&
          (this.a11y.makeElFocusable(t),
          this.a11y.addElRole(t, "button"),
          this.a11y.addElLabel(t, i.prevSlideMessage),
          t.on("keydown", this.a11y.onEnterKey)),
        this.pagination &&
          this.params.pagination.clickable &&
          this.pagination.bullets &&
          this.pagination.bullets.length &&
          this.pagination.$el.on(
            "keydown",
            "." + this.params.pagination.bulletClass,
            this.a11y.onEnterKey
          );
    },
    destroy: function() {
      var e, t;
      this.a11y.liveRegion &&
        this.a11y.liveRegion.length > 0 &&
        this.a11y.liveRegion.remove(),
        this.navigation &&
          this.navigation.$nextEl &&
          (e = this.navigation.$nextEl),
        this.navigation &&
          this.navigation.$prevEl &&
          (t = this.navigation.$prevEl),
        e && e.off("keydown", this.a11y.onEnterKey),
        t && t.off("keydown", this.a11y.onEnterKey),
        this.pagination &&
          this.params.pagination.clickable &&
          this.pagination.bullets &&
          this.pagination.bullets.length &&
          this.pagination.$el.off(
            "keydown",
            "." + this.params.pagination.bulletClass,
            this.a11y.onEnterKey
          );
    }
  },
  K = {
    init: function() {
      if (this.params.history) {
        if (!t.history || !t.history.pushState)
          return (
            (this.params.history.enabled = !1),
            void (this.params.hashNavigation.enabled = !0)
          );
        var e = this.history;
        (e.initialized = !0),
          (e.paths = K.getPathValues()),
          (e.paths.key || e.paths.value) &&
            (e.scrollToSlide(
              0,
              e.paths.value,
              this.params.runCallbacksOnInit
            ),
            this.params.history.replaceState ||
              t.addEventListener(
                "popstate",
                this.history.setHistoryPopState
              ));
      }
    },
    destroy: function() {
      this.params.history.replaceState ||
        t.removeEventListener("popstate", this.history.setHistoryPopState);
    },
    setHistoryPopState: function() {
      (this.history.paths = K.getPathValues()),
        this.history.scrollToSlide(
          this.params.speed,
          this.history.paths.value,
          !1
        );
    },
    getPathValues: function() {
      var e = t.location.pathname
          .slice(1)
          .split("/")
          .filter(function(e) {
            return "" !== e;
          }),
        i = e.length;
      return { key: e[i - 2], value: e[i - 1] };
    },
    setHistory: function(e, i) {
      if (this.history.initialized && this.params.history.enabled) {
        var s = this.slides.eq(i),
          a = K.slugify(s.attr("data-history"));
        t.location.pathname.includes(e) || (a = e + "/" + a);
        var r = t.history.state;
        (r && r.value === a) ||
          (this.params.history.replaceState
            ? t.history.replaceState({ value: a }, null, a)
            : t.history.pushState({ value: a }, null, a));
      }
    },
    slugify: function(e) {
      return e
        .toString()
        .toLowerCase()
        .replace(/\s+/g, "-")
        .replace(/[^\w-]+/g, "")
        .replace(/--+/g, "-")
        .replace(/^-+/, "")
        .replace(/-+$/, "");
    },
    scrollToSlide: function(e, t, i) {
      if (t)
        for (var s = 0, a = this.slides.length; s < a; s += 1) {
          var r = this.slides.eq(s);
          if (
            K.slugify(r.attr("data-history")) === t &&
            !r.hasClass(this.params.slideDuplicateClass)
          ) {
            var n = r.index();
            this.slideTo(n, e, i);
          }
        }
      else this.slideTo(0, e, i);
    }
  },
  U = {
    onHashCange: function() {
      var t = e.location.hash.replace("#", "");
      t !== this.slides.eq(this.activeIndex).attr("data-hash") &&
        this.slideTo(
          this.$wrapperEl
            .children(
              "." + this.params.slideClass + '[data-hash="' + t + '"]'
            )
            .index()
        );
    },
    setHash: function() {
      if (
        this.hashNavigation.initialized &&
        this.params.hashNavigation.enabled
      )
        if (
          this.params.hashNavigation.replaceState &&
          t.history &&
          t.history.replaceState
        )
          t.history.replaceState(
            null,
            null,
            "#" + this.slides.eq(this.activeIndex).attr("data-hash") || ""
          );
        else {
          var i = this.slides.eq(this.activeIndex),
            s = i.attr("data-hash") || i.attr("data-history");
          e.location.hash = s || "";
        }
    },
    init: function() {
      if (
        !(
          !this.params.hashNavigation.enabled ||
          (this.params.history && this.params.history.enabled)
        )
      ) {
        this.hashNavigation.initialized = !0;
        var i = e.location.hash.replace("#", "");
        if (i)
          for (var a = 0, r = this.slides.length; a < r; a += 1) {
            var n = this.slides.eq(a);
            if (
              (n.attr("data-hash") || n.attr("data-history")) === i &&
              !n.hasClass(this.params.slideDuplicateClass)
            ) {
              var o = n.index();
              this.slideTo(o, 0, this.params.runCallbacksOnInit, !0);
            }
          }
        this.params.hashNavigation.watchState &&
          s(t).on("hashchange", this.hashNavigation.onHashCange);
      }
    },
    destroy: function() {
      this.params.hashNavigation.watchState &&
        s(t).off("hashchange", this.hashNavigation.onHashCange);
    }
  },
  _ = {
    run: function() {
      var e = this,
        t = e.slides.eq(e.activeIndex),
        i = e.params.autoplay.delay;
      t.attr("data-swiper-autoplay") &&
        (i = t.attr("data-swiper-autoplay") || e.params.autoplay.delay),
        (e.autoplay.timeout = d.nextTick(function() {
          e.params.autoplay.reverseDirection
            ? e.params.loop
              ? (e.loopFix(),
                e.slidePrev(e.params.speed, !0, !0),
                e.emit("autoplay"))
              : e.isBeginning
              ? e.params.autoplay.stopOnLastSlide
                ? e.autoplay.stop()
                : (e.slideTo(e.slides.length - 1, e.params.speed, !0, !0),
                  e.emit("autoplay"))
              : (e.slidePrev(e.params.speed, !0, !0), e.emit("autoplay"))
            : 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"));
        }, i));
    },
    start: function() {
      return (
        void 0 === this.autoplay.timeout &&
        !this.autoplay.running &&
          ((this.autoplay.running = !0),
          this.emit("autoplayStart"),
          this.autoplay.run(),
          !0)
      );
    },
    stop: function() {
      return (
        !!this.autoplay.running &&
        void 0 !== this.autoplay.timeout &&
          (this.autoplay.timeout &&
            (clearTimeout(this.autoplay.timeout),
            (this.autoplay.timeout = void 0)),
          (this.autoplay.running = !1),
          this.emit("autoplayStop"),
          !0)
      );
    },
    pause: function(e) {
      var t = this;
      t.autoplay.running &&
        (t.autoplay.paused ||
          (t.autoplay.timeout && clearTimeout(t.autoplay.timeout),
          (t.autoplay.paused = !0),
          0 !== e && t.params.autoplay.waitForTransition
            ? t.$wrapperEl.transitionEnd(function() {
                t &&
                  !t.destroyed &&
                  ((t.autoplay.paused = !1),
                  t.autoplay.running ? t.autoplay.run() : t.autoplay.stop());
              })
            : ((t.autoplay.paused = !1), t.autoplay.run())));
    }
  },
  Z = {
    setTranslate: function() {
      for (var e = this.slides, t = 0; t < e.length; t += 1) {
        var i = this.slides.eq(t),
          s = -i[0].swiperSlideOffset;
        this.params.virtualTranslate || (s -= this.translate);
        var a = 0;
        this.isHorizontal() || ((a = s), (s = 0));
        var r = this.params.fadeEffect.crossFade
          ? Math.max(1 - Math.abs(i[0].progress), 0)
          : 1 + Math.min(Math.max(i[0].progress, -1), 0);
        i.css({ opacity: r }).transform(
          "translate3d(" + s + "px, " + a + "px, 0px)"
        );
      }
    },
    setTransition: function(e) {
      var t = this,
        i = t.slides,
        s = t.$wrapperEl;
      if ((i.transition(e), t.params.virtualTranslate && 0 !== e)) {
        var a = !1;
        i.transitionEnd(function() {
          if (!a && t && !t.destroyed) {
            (a = !0), (t.animating = !1);
            for (
              var e = ["webkitTransitionEnd", "transitionend"], i = 0;
              i < e.length;
              i += 1
            )
              s.trigger(e[i]);
          }
        });
      }
    }
  },
  Q = {
    setTranslate: function() {
      var e,
        t = this.$el,
        i = this.$wrapperEl,
        a = this.slides,
        r = this.width,
        n = this.height,
        o = this.rtlTranslate,
        l = this.size,
        d = this.params.cubeEffect,
        h = this.isHorizontal(),
        p = this.virtual && this.params.virtual.enabled,
        c = 0;
      d.shadow &&
        (h
          ? (0 === (e = i.find(".swiper-cube-shadow")).length &&
              ((e = s('<div class="swiper-cube-shadow"></div>')),
              i.append(e)),
            e.css({ height: r + "px" }))
          : 0 === (e = t.find(".swiper-cube-shadow")).length &&
            ((e = s('<div class="swiper-cube-shadow"></div>')), t.append(e)));
      for (var u = 0; u < a.length; u += 1) {
        var v = a.eq(u),
          f = u;
        p && (f = parseInt(v.attr("data-swiper-slide-index"), 10));
        var m = 90 * f,
          g = Math.floor(m / 360);
        o && ((m = -m), (g = Math.floor(-m / 360)));
        var b = Math.max(Math.min(v[0].progress, 1), -1),
          w = 0,
          y = 0,
          x = 0;
        f % 4 == 0
          ? ((w = 4 * -g * l), (x = 0))
          : (f - 1) % 4 == 0
          ? ((w = 0), (x = 4 * -g * l))
          : (f - 2) % 4 == 0
          ? ((w = l + 4 * g * l), (x = l))
          : (f - 3) % 4 == 0 && ((w = -l), (x = 3 * l + 4 * l * g)),
          o && (w = -w),
          h || ((y = w), (w = 0));
        var E =
          "rotateX(" +
          (h ? 0 : -m) +
          "deg) rotateY(" +
          (h ? m : 0) +
          "deg) translate3d(" +
          w +
          "px, " +
          y +
          "px, " +
          x +
          "px)";
        if (
          (b <= 1 &&
            b > -1 &&
            ((c = 90 * f + 90 * b), o && (c = 90 * -f - 90 * b)),
          v.transform(E),
          d.slideShadows)
        ) {
          var T = h
              ? v.find(".swiper-slide-shadow-left")
              : v.find(".swiper-slide-shadow-top"),
            C = h
              ? v.find(".swiper-slide-shadow-right")
              : v.find(".swiper-slide-shadow-bottom");
          0 === T.length &&
            ((T = s(
              '<div class="swiper-slide-shadow-' +
                (h ? "left" : "top") +
                '"></div>'
            )),
            v.append(T)),
            0 === C.length &&
              ((C = s(
                '<div class="swiper-slide-shadow-' +
                  (h ? "right" : "bottom") +
                  '"></div>'
              )),
              v.append(C)),
            T.length && (T[0].style.opacity = Math.max(-b, 0)),
            C.length && (C[0].style.opacity = Math.max(b, 0));
        }
      }
      if (
        (i.css({
          "-webkit-transform-origin": "50% 50% -" + l / 2 + "px",
          "-moz-transform-origin": "50% 50% -" + l / 2 + "px",
          "-ms-transform-origin": "50% 50% -" + l / 2 + "px",
          "transform-origin": "50% 50% -" + l / 2 + "px"
        }),
        d.shadow)
      )
        if (h)
          e.transform(
            "translate3d(0px, " +
              (r / 2 + d.shadowOffset) +
              "px, " +
              -r / 2 +
              "px) rotateX(90deg) rotateZ(0deg) scale(" +
              d.shadowScale +
              ")"
          );
        else {
          var M = Math.abs(c) - 90 * Math.floor(Math.abs(c) / 90),
            z =
              1.5 -
              (Math.sin((2 * M * Math.PI) / 360) / 2 +
                Math.cos((2 * M * Math.PI) / 360) / 2),
            P = d.shadowScale,
            k = d.shadowScale / z,
            $ = d.shadowOffset;
          e.transform(
            "scale3d(" +
              P +
              ", 1, " +
              k +
              ") translate3d(0px, " +
              (n / 2 + $) +
              "px, " +
              -n / 2 / k +
              "px) rotateX(-90deg)"
          );
        }
      var L = S.isSafari || S.isUiWebView ? -l / 2 : 0;
      i.transform(
        "translate3d(0px,0," +
          L +
          "px) rotateX(" +
          (this.isHorizontal() ? 0 : c) +
          "deg) rotateY(" +
          (this.isHorizontal() ? -c : 0) +
          "deg)"
      );
    },
    setTransition: function(e) {
      var t = this.$el;
      this.slides
        .transition(e)
        .find(
          ".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left"
        )
        .transition(e),
        this.params.cubeEffect.shadow &&
          !this.isHorizontal() &&
          t.find(".swiper-cube-shadow").transition(e);
    }
  },
  J = {
    setTranslate: function() {
      for (
        var e = this.slides, t = this.rtlTranslate, i = 0;
        i < e.length;
        i += 1
      ) {
        var a = e.eq(i),
          r = a[0].progress;
        this.params.flipEffect.limitRotation &&
          (r = Math.max(Math.min(a[0].progress, 1), -1));
        var n = -180 * r,
          o = 0,
          l = -a[0].swiperSlideOffset,
          d = 0;
        if (
          (this.isHorizontal()
            ? t && (n = -n)
            : ((d = l), (l = 0), (o = -n), (n = 0)),
          (a[0].style.zIndex = -Math.abs(Math.round(r)) + e.length),
          this.params.flipEffect.slideShadows)
        ) {
          var h = this.isHorizontal()
              ? a.find(".swiper-slide-shadow-left")
              : a.find(".swiper-slide-shadow-top"),
            p = this.isHorizontal()
              ? a.find(".swiper-slide-shadow-right")
              : a.find(".swiper-slide-shadow-bottom");
          0 === h.length &&
            ((h = s(
              '<div class="swiper-slide-shadow-' +
                (this.isHorizontal() ? "left" : "top") +
                '"></div>'
            )),
            a.append(h)),
            0 === p.length &&
              ((p = s(
                '<div class="swiper-slide-shadow-' +
                  (this.isHorizontal() ? "right" : "bottom") +
                  '"></div>'
              )),
              a.append(p)),
            h.length && (h[0].style.opacity = Math.max(-r, 0)),
            p.length && (p[0].style.opacity = Math.max(r, 0));
        }
        a.transform(
          "translate3d(" +
            l +
            "px, " +
            d +
            "px, 0px) rotateX(" +
            o +
            "deg) rotateY(" +
            n +
            "deg)"
        );
      }
    },
    setTransition: function(e) {
      var t = this,
        i = t.slides,
        s = t.activeIndex,
        a = t.$wrapperEl;
      if (
        (i
          .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)
      ) {
        var r = !1;
        i.eq(s).transitionEnd(function() {
          if (!r && t && !t.destroyed) {
            (r = !0), (t.animating = !1);
            for (
              var e = ["webkitTransitionEnd", "transitionend"], i = 0;
              i < e.length;
              i += 1
            )
              a.trigger(e[i]);
          }
        });
      }
    }
  },
  ee = {
    setTranslate: function() {
      for (
        var e = this.width,
          t = this.height,
          i = this.slides,
          a = this.$wrapperEl,
          r = this.slidesSizesGrid,
          n = this.params.coverflowEffect,
          o = this.isHorizontal(),
          l = this.translate,
          d = o ? e / 2 - l : t / 2 - l,
          p = o ? n.rotate : -n.rotate,
          c = n.depth,
          u = 0,
          v = i.length;
        u < v;
        u += 1
      ) {
        var f = i.eq(u),
          m = r[u],
          g = ((d - f[0].swiperSlideOffset - m / 2) / m) * n.modifier,
          b = o ? p * g : 0,
          w = o ? 0 : p * g,
          y = -c * Math.abs(g),
          x = o ? 0 : n.stretch * g,
          E = o ? n.stretch * g : 0;
        Math.abs(E) < 0.001 && (E = 0),
          Math.abs(x) < 0.001 && (x = 0),
          Math.abs(y) < 0.001 && (y = 0),
          Math.abs(b) < 0.001 && (b = 0),
          Math.abs(w) < 0.001 && (w = 0);
        var T =
          "translate3d(" +
          E +
          "px," +
          x +
          "px," +
          y +
          "px)  rotateX(" +
          w +
          "deg) rotateY(" +
          b +
          "deg)";
        if (
          (f.transform(T),
          (f[0].style.zIndex = 1 - Math.abs(Math.round(g))),
          n.slideShadows)
        ) {
          var S = o
              ? f.find(".swiper-slide-shadow-left")
              : f.find(".swiper-slide-shadow-top"),
            C = o
              ? f.find(".swiper-slide-shadow-right")
              : f.find(".swiper-slide-shadow-bottom");
          0 === S.length &&
            ((S = s(
              '<div class="swiper-slide-shadow-' +
                (o ? "left" : "top") +
                '"></div>'
            )),
            f.append(S)),
            0 === C.length &&
              ((C = s(
                '<div class="swiper-slide-shadow-' +
                  (o ? "right" : "bottom") +
                  '"></div>'
              )),
              f.append(C)),
            S.length && (S[0].style.opacity = g > 0 ? g : 0),
            C.length && (C[0].style.opacity = -g > 0 ? -g : 0);
        }
      }
      (h.pointerEvents || h.prefixedPointerEvents) &&
        (a[0].style.perspectiveOrigin = d + "px 50%");
    },
    setTransition: function(e) {
      this.slides
        .transition(e)
        .find(
          ".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left"
        )
        .transition(e);
    }
  },
  te = [
    k,
    $,
    L,
    I,
    O,
    H,
    B,
    {
      name: "mousewheel",
      params: {
        mousewheel: {
          enabled: !1,
          releaseOnEdges: !1,
          invert: !1,
          forceToAxis: !1,
          sensitivity: 1,
          eventsTarged: "container"
        }
      },
      create: function() {
        d.extend(this, {
          mousewheel: {
            enabled: !1,
            enable: G.enable.bind(this),
            disable: G.disable.bind(this),
            handle: G.handle.bind(this),
            handleMouseEnter: G.handleMouseEnter.bind(this),
            handleMouseLeave: G.handleMouseLeave.bind(this),
            lastScrollTime: d.now()
          }
        });
      },
      on: {
        init: function() {
          this.params.mousewheel.enabled && this.mousewheel.enable();
        },
        destroy: function() {
          this.mousewheel.enabled && this.mousewheel.disable();
        }
      }
    },
    {
      name: "navigation",
      params: {
        navigation: {
          nextEl: null,
          prevEl: null,
          hideOnClick: !1,
          disabledClass: "swiper-button-disabled",
          hiddenClass: "swiper-button-hidden",
          lockClass: "swiper-button-lock"
        }
      },
      create: function() {
        d.extend(this, {
          navigation: {
            init: X.init.bind(this),
            update: X.update.bind(this),
            destroy: X.destroy.bind(this)
          }
        });
      },
      on: {
        init: function() {
          this.navigation.init(), this.navigation.update();
        },
        toEdge: function() {
          this.navigation.update();
        },
        fromEdge: function() {
          this.navigation.update();
        },
        destroy: function() {
          this.navigation.destroy();
        },
        click: function(e) {
          var t = this.navigation,
            i = t.$nextEl,
            a = t.$prevEl;
          !this.params.navigation.hideOnClick ||
            s(e.target).is(a) ||
            s(e.target).is(i) ||
            (i && i.toggleClass(this.params.navigation.hiddenClass),
            a && a.toggleClass(this.params.navigation.hiddenClass));
        }
      }
    },
    {
      name: "pagination",
      params: {
        pagination: {
          el: null,
          bulletElement: "span",
          clickable: !1,
          hideOnClick: !1,
          renderBullet: null,
          renderProgressbar: null,
          renderFraction: null,
          renderCustom: null,
          type: "bullets",
          dynamicBullets: !1,
          dynamicMainBullets: 1,
          bulletClass: "swiper-pagination-bullet",
          bulletActiveClass: "swiper-pagination-bullet-active",
          modifierClass: "swiper-pagination-",
          currentClass: "swiper-pagination-current",
          totalClass: "swiper-pagination-total",
          hiddenClass: "swiper-pagination-hidden",
          progressbarFillClass: "swiper-pagination-progressbar-fill",
          clickableClass: "swiper-pagination-clickable",
          lockClass: "swiper-pagination-lock"
        }
      },
      create: function() {
        d.extend(this, {
          pagination: {
            init: Y.init.bind(this),
            render: Y.render.bind(this),
            update: Y.update.bind(this),
            destroy: Y.destroy.bind(this),
            dynamicBulletIndex: 0
          }
        });
      },
      on: {
        init: function() {
          this.pagination.init(),
            this.pagination.render(),
            this.pagination.update();
        },
        activeIndexChange: function() {
          this.params.loop
            ? this.pagination.update()
            : void 0 === this.snapIndex && this.pagination.update();
        },
        snapIndexChange: function() {
          this.params.loop || this.pagination.update();
        },
        slidesLengthChange: function() {
          this.params.loop &&
            (this.pagination.render(), this.pagination.update());
        },
        snapGridLengthChange: function() {
          this.params.loop ||
            (this.pagination.render(), this.pagination.update());
        },
        destroy: function() {
          this.pagination.destroy();
        },
        click: function(e) {
          this.params.pagination.el &&
            this.params.pagination.hideOnClick &&
            this.pagination.$el.length > 0 &&
            !s(e.target).hasClass(this.params.pagination.bulletClass) &&
            this.pagination.$el.toggleClass(
              this.params.pagination.hiddenClass
            );
        }
      }
    },
    {
      name: "scrollbar",
      params: {
        scrollbar: {
          el: null,
          dragSize: "auto",
          hide: !1,
          draggable: !1,
          snapOnRelease: !0,
          lockClass: "swiper-scrollbar-lock",
          dragClass: "swiper-scrollbar-drag"
        }
      },
      create: function() {
        d.extend(this, {
          scrollbar: {
            init: V.init.bind(this),
            destroy: V.destroy.bind(this),
            updateSize: V.updateSize.bind(this),
            setTranslate: V.setTranslate.bind(this),
            setTransition: V.setTransition.bind(this),
            enableDraggable: V.enableDraggable.bind(this),
            disableDraggable: V.disableDraggable.bind(this),
            setDragPosition: V.setDragPosition.bind(this),
            onDragStart: V.onDragStart.bind(this),
            onDragMove: V.onDragMove.bind(this),
            onDragEnd: V.onDragEnd.bind(this),
            isTouched: !1,
            timeout: null,
            dragTimeout: null
          }
        });
      },
      on: {
        init: function() {
          this.scrollbar.init(),
            this.scrollbar.updateSize(),
            this.scrollbar.setTranslate();
        },
        update: function() {
          this.scrollbar.updateSize();
        },
        resize: function() {
          this.scrollbar.updateSize();
        },
        observerUpdate: function() {
          this.scrollbar.updateSize();
        },
        setTranslate: function() {
          this.scrollbar.setTranslate();
        },
        setTransition: function(e) {
          this.scrollbar.setTransition(e);
        },
        destroy: function() {
          this.scrollbar.destroy();
        }
      }
    },
    {
      name: "parallax",
      params: { parallax: { enabled: !1 } },
      create: function() {
        d.extend(this, {
          parallax: {
            setTransform: R.setTransform.bind(this),
            setTranslate: R.setTranslate.bind(this),
            setTransition: R.setTransition.bind(this)
          }
        });
      },
      on: {
        beforeInit: function() {
          this.params.parallax.enabled &&
            (this.params.watchSlidesProgress = !0);
        },
        init: function() {
          this.params.parallax && this.parallax.setTranslate();
        },
        setTranslate: function() {
          this.params.parallax && this.parallax.setTranslate();
        },
        setTransition: function(e) {
          this.params.parallax && this.parallax.setTransition(e);
        }
      }
    },
    {
      name: "zoom",
      params: {
        zoom: {
          enabled: !1,
          maxRatio: 3,
          minRatio: 1,
          toggle: !0,
          containerClass: "swiper-zoom-container",
          zoomedSlideClass: "swiper-slide-zoomed"
        }
      },
      create: function() {
        var e = this,
          t = {
            enabled: !1,
            scale: 1,
            currentScale: 1,
            isScaling: !1,
            gesture: {
              $slideEl: void 0,
              slideWidth: void 0,
              slideHeight: void 0,
              $imageEl: void 0,
              $imageWrapEl: void 0,
              maxRatio: 3
            },
            image: {
              isTouched: void 0,
              isMoved: void 0,
              currentX: void 0,
              currentY: void 0,
              minX: void 0,
              minY: void 0,
              maxX: void 0,
              maxY: void 0,
              width: void 0,
              height: void 0,
              startX: void 0,
              startY: void 0,
              touchesStart: {},
              touchesCurrent: {}
            },
            velocity: {
              x: void 0,
              y: void 0,
              prevPositionX: void 0,
              prevPositionY: void 0,
              prevTime: void 0
            }
          };
        "onGestureStart onGestureChange onGestureEnd onTouchStart onTouchMove onTouchEnd onTransitionEnd toggle enable disable in out"
          .split(" ")
          .forEach(function(i) {
            t[i] = F[i].bind(e);
          }),
          d.extend(e, { zoom: t });
      },
      on: {
        init: function() {
          this.params.zoom.enabled && this.zoom.enable();
        },
        destroy: function() {
          this.zoom.disable();
        },
        touchStart: function(e) {
          this.zoom.enabled && this.zoom.onTouchStart(e);
        },
        touchEnd: function(e) {
          this.zoom.enabled && this.zoom.onTouchEnd(e);
        },
        doubleTap: function(e) {
          this.params.zoom.enabled &&
            this.zoom.enabled &&
            this.params.zoom.toggle &&
            this.zoom.toggle(e);
        },
        transitionEnd: function() {
          this.zoom.enabled &&
            this.params.zoom.enabled &&
            this.zoom.onTransitionEnd();
        }
      }
    },
    {
      name: "lazy",
      params: {
        lazy: {
          enabled: !1,
          loadPrevNext: !1,
          loadPrevNextAmount: 1,
          loadOnTransitionStart: !1,
          elementClass: "swiper-lazy",
          loadingClass: "swiper-lazy-loading",
          loadedClass: "swiper-lazy-loaded",
          preloaderClass: "swiper-lazy-preloader"
        }
      },
      create: function() {
        d.extend(this, {
          lazy: {
            initialImageLoaded: !1,
            load: W.load.bind(this),
            loadInSlide: W.loadInSlide.bind(this)
          }
        });
      },
      on: {
        beforeInit: function() {
          this.params.lazy.enabled &&
            this.params.preloadImages &&
            (this.params.preloadImages = !1);
        },
        init: function() {
          this.params.lazy.enabled &&
            !this.params.loop &&
            0 === this.params.initialSlide &&
            this.lazy.load();
        },
        scroll: function() {
          this.params.freeMode &&
            !this.params.freeModeSticky &&
            this.lazy.load();
        },
        resize: function() {
          this.params.lazy.enabled && this.lazy.load();
        },
        scrollbarDragMove: function() {
          this.params.lazy.enabled && this.lazy.load();
        },
        transitionStart: function() {
          this.params.lazy.enabled &&
            (this.params.lazy.loadOnTransitionStart ||
              (!this.params.lazy.loadOnTransitionStart &&
                !this.lazy.initialImageLoaded)) &&
            this.lazy.load();
        },
        transitionEnd: function() {
          this.params.lazy.enabled &&
            !this.params.lazy.loadOnTransitionStart &&
            this.lazy.load();
        }
      }
    },
    {
      name: "controller",
      params: { controller: { control: void 0, inverse: !1, by: "slide" } },
      create: function() {
        d.extend(this, {
          controller: {
            control: this.params.controller.control,
            getInterpolateFunction: q.getInterpolateFunction.bind(this),
            setTranslate: q.setTranslate.bind(this),
            setTransition: q.setTransition.bind(this)
          }
        });
      },
      on: {
        update: function() {
          this.controller.control &&
            this.controller.spline &&
            ((this.controller.spline = void 0),
            delete this.controller.spline);
        },
        resize: function() {
          this.controller.control &&
            this.controller.spline &&
            ((this.controller.spline = void 0),
            delete this.controller.spline);
        },
        observerUpdate: function() {
          this.controller.control &&
            this.controller.spline &&
            ((this.controller.spline = void 0),
            delete this.controller.spline);
        },
        setTranslate: function(e, t) {
          this.controller.control && this.controller.setTranslate(e, t);
        },
        setTransition: function(e, t) {
          this.controller.control && this.controller.setTransition(e, t);
        }
      }
    },
    {
      name: "a11y",
      params: {
        a11y: {
          enabled: !0,
          notificationClass: "swiper-notification",
          prevSlideMessage: "Previous slide",
          nextSlideMessage: "Next slide",
          firstSlideMessage: "This is the first slide",
          lastSlideMessage: "This is the last slide",
          paginationBulletMessage: "Go to slide {{index}}"
        }
      },
      create: function() {
        var e = this;
        d.extend(e, {
          a11y: {
            liveRegion: s(
              '<span class="' +
                e.params.a11y.notificationClass +
                '" aria-live="assertive" aria-atomic="true"></span>'
            )
          }
        }),
          Object.keys(j).forEach(function(t) {
            e.a11y[t] = j[t].bind(e);
          });
      },
      on: {
        init: function() {
          this.params.a11y.enabled &&
            (this.a11y.init(), this.a11y.updateNavigation());
        },
        toEdge: function() {
          this.params.a11y.enabled && this.a11y.updateNavigation();
        },
        fromEdge: function() {
          this.params.a11y.enabled && this.a11y.updateNavigation();
        },
        paginationUpdate: function() {
          this.params.a11y.enabled && this.a11y.updatePagination();
        },
        destroy: function() {
          this.params.a11y.enabled && this.a11y.destroy();
        }
      }
    },
    {
      name: "history",
      params: { history: { enabled: !1, replaceState: !1, key: "slides" } },
      create: function() {
        d.extend(this, {
          history: {
            init: K.init.bind(this),
            setHistory: K.setHistory.bind(this),
            setHistoryPopState: K.setHistoryPopState.bind(this),
            scrollToSlide: K.scrollToSlide.bind(this),
            destroy: K.destroy.bind(this)
          }
        });
      },
      on: {
        init: function() {
          this.params.history.enabled && this.history.init();
        },
        destroy: function() {
          this.params.history.enabled && this.history.destroy();
        },
        transitionEnd: function() {
          this.history.initialized &&
            this.history.setHistory(
              this.params.history.key,
              this.activeIndex
            );
        }
      }
    },
    {
      name: "hash-navigation",
      params: {
        hashNavigation: { enabled: !1, replaceState: !1, watchState: !1 }
      },
      create: function() {
        d.extend(this, {
          hashNavigation: {
            initialized: !1,
            init: U.init.bind(this),
            destroy: U.destroy.bind(this),
            setHash: U.setHash.bind(this),
            onHashCange: U.onHashCange.bind(this)
          }
        });
      },
      on: {
        init: function() {
          this.params.hashNavigation.enabled && this.hashNavigation.init();
        },
        destroy: function() {
          this.params.hashNavigation.enabled && this.hashNavigation.destroy();
        },
        transitionEnd: function() {
          this.hashNavigation.initialized && this.hashNavigation.setHash();
        }
      }
    },
    {
      name: "autoplay",
      params: {
        autoplay: {
          enabled: !1,
          delay: 3e3,
          waitForTransition: !0,
          disableOnInteraction: !0,
          stopOnLastSlide: !1,
          reverseDirection: !1
        }
      },
      create: function() {
        d.extend(this, {
          autoplay: {
            running: !1,
            paused: !1,
            run: _.run.bind(this),
            start: _.start.bind(this),
            stop: _.stop.bind(this),
            pause: _.pause.bind(this)
          }
        });
      },
      on: {
        init: function() {
          this.params.autoplay.enabled && this.autoplay.start();
        },
        beforeTransitionStart: function(e, t) {
          this.autoplay.running &&
            (t || !this.params.autoplay.disableOnInteraction
              ? this.autoplay.pause(e)
              : this.autoplay.stop());
        },
        sliderFirstMove: function() {
          this.autoplay.running &&
            (this.params.autoplay.disableOnInteraction
              ? this.autoplay.stop()
              : this.autoplay.pause());
        },
        destroy: function() {
          this.autoplay.running && this.autoplay.stop();
        }
      }
    },
    {
      name: "effect-fade",
      params: { fadeEffect: { crossFade: !1 } },
      create: function() {
        d.extend(this, {
          fadeEffect: {
            setTranslate: Z.setTranslate.bind(this),
            setTransition: Z.setTransition.bind(this)
          }
        });
      },
      on: {
        beforeInit: function() {
          if ("fade" === this.params.effect) {
            this.classNames.push(this.params.containerModifierClass + "fade");
            var e = {
              slidesPerView: 1,
              slidesPerColumn: 1,
              slidesPerGroup: 1,
              watchSlidesProgress: !0,
              spaceBetween: 0,
              virtualTranslate: !0
            };
            d.extend(this.params, e), d.extend(this.originalParams, e);
          }
        },
        setTranslate: function() {
          "fade" === this.params.effect && this.fadeEffect.setTranslate();
        },
        setTransition: function(e) {
          "fade" === this.params.effect && this.fadeEffect.setTransition(e);
        }
      }
    },
    {
      name: "effect-cube",
      params: {
        cubeEffect: {
          slideShadows: !0,
          shadow: !0,
          shadowOffset: 20,
          shadowScale: 0.94
        }
      },
      create: function() {
        d.extend(this, {
          cubeEffect: {
            setTranslate: Q.setTranslate.bind(this),
            setTransition: Q.setTransition.bind(this)
          }
        });
      },
      on: {
        beforeInit: function() {
          if ("cube" === this.params.effect) {
            this.classNames.push(this.params.containerModifierClass + "cube"),
              this.classNames.push(this.params.containerModifierClass + "3d");
            var e = {
              slidesPerView: 1,
              slidesPerColumn: 1,
              slidesPerGroup: 1,
              watchSlidesProgress: !0,
              resistanceRatio: 0,
              spaceBetween: 0,
              centeredSlides: !1,
              virtualTranslate: !0
            };
            d.extend(this.params, e), d.extend(this.originalParams, e);
          }
        },
        setTranslate: function() {
          "cube" === this.params.effect && this.cubeEffect.setTranslate();
        },
        setTransition: function(e) {
          "cube" === this.params.effect && this.cubeEffect.setTransition(e);
        }
      }
    },
    {
      name: "effect-flip",
      params: { flipEffect: { slideShadows: !0, limitRotation: !0 } },
      create: function() {
        d.extend(this, {
          flipEffect: {
            setTranslate: J.setTranslate.bind(this),
            setTransition: J.setTransition.bind(this)
          }
        });
      },
      on: {
        beforeInit: function() {
          if ("flip" === this.params.effect) {
            this.classNames.push(this.params.containerModifierClass + "flip"),
              this.classNames.push(this.params.containerModifierClass + "3d");
            var e = {
              slidesPerView: 1,
              slidesPerColumn: 1,
              slidesPerGroup: 1,
              watchSlidesProgress: !0,
              spaceBetween: 0,
              virtualTranslate: !0
            };
            d.extend(this.params, e), d.extend(this.originalParams, e);
          }
        },
        setTranslate: function() {
          "flip" === this.params.effect && this.flipEffect.setTranslate();
        },
        setTransition: function(e) {
          "flip" === this.params.effect && this.flipEffect.setTransition(e);
        }
      }
    },
    {
      name: "effect-coverflow",
      params: {
        coverflowEffect: {
          rotate: 50,
          stretch: 0,
          depth: 100,
          modifier: 1,
          slideShadows: !0
        }
      },
      create: function() {
        d.extend(this, {
          coverflowEffect: {
            setTranslate: ee.setTranslate.bind(this),
            setTransition: ee.setTransition.bind(this)
          }
        });
      },
      on: {
        beforeInit: function() {
          "coverflow" === this.params.effect &&
            (this.classNames.push(
              this.params.containerModifierClass + "coverflow"
            ),
            this.classNames.push(this.params.containerModifierClass + "3d"),
            (this.params.watchSlidesProgress = !0),
            (this.originalParams.watchSlidesProgress = !0));
        },
        setTranslate: function() {
          "coverflow" === this.params.effect &&
            this.coverflowEffect.setTranslate();
        },
        setTransition: function(e) {
          "coverflow" === this.params.effect &&
            this.coverflowEffect.setTransition(e);
        }
      }
    }
  ];
return (
  void 0 === P.use &&
    ((P.use = P.Class.use), (P.installModule = P.Class.installModule)),
  P.use(te),
  P
);

});

/*! skrollr 0.6.30 (2015-08-12) | Alexander Prinzhorn - github.com/Prinzhorn/skrollr | Free to use under terms of MIT license */ !(function(a, b, c) {

"use strict";
function d(c) {
  if (
    ((e = b.documentElement),
    (f = b.body),
    T(),
    (ha = this),
    (c = c || {}),
    (ma = c.constants || {}),
    c.easing)
  )
    for (var d in c.easing) W[d] = c.easing[d];
  (ta = c.edgeStrategy || "set"),
    (ka = {
      beforerender: c.beforerender,
      render: c.render,
      keyframe: c.keyframe
    }),
    (la = c.forceHeight !== !1),
    la && (Ka = c.scale || 1),
    (na = c.mobileDeceleration || y),
    (pa = c.smoothScrolling !== !1),
    (qa = c.smoothScrollingDuration || A),
    (ra = { targetTop: ha.getScrollTop() }),
    (Sa = (
      c.mobileCheck ||
      function() {
        return /Android|iPhone|iPad|iPod|BlackBerry/i.test(
          navigator.userAgent || navigator.vendor || a.opera
        );
      }
    )()),
    Sa
      ? ((ja = b.getElementById(c.skrollrBody || z)),
        ja && ga(),
        X(),
        Ea(e, [s, v], [t]))
      : Ea(e, [s, u], [t]),
    ha.refresh(),
    wa(a, "resize orientationchange", function() {
      var a = e.clientWidth,
        b = e.clientHeight;
      (b !== Pa || a !== Oa) && ((Pa = b), (Oa = a), (Qa = !0));
    });
  var g = U();
  return (
    (function h() {
      $(), (va = g(h));
    })(),
    ha
  );
}
var e,
  f,
  g = {
    get: function() {
      return ha;
    },
    init: function(a) {
      return ha || new d(a);
    },
    VERSION: "0.6.30"
  },
  h = Object.prototype.hasOwnProperty,
  i = a.Math,
  j = a.getComputedStyle,
  k = "touchstart",
  l = "touchmove",
  m = "touchcancel",
  n = "touchend",
  o = "skrollable",
  p = o + "-before",
  q = o + "-between",
  r = o + "-after",
  s = "skrollr",
  t = "no-" + s,
  u = s + "-desktop",
  v = s + "-mobile",
  w = "linear",
  x = 1e3,
  y = 0.004,
  z = "skrollr-body",
  A = 200,
  B = "start",
  C = "end",
  D = "center",
  E = "bottom",
  F = "___skrollable_id",
  G = /^(?:input|textarea|button|select)$/i,
  H = /^\s+|\s+$/g,
  I = /^data(?:-(_\w+))?(?:-?(-?\d*\.?\d+p?))?(?:-?(start|end|top|center|bottom))?(?:-?(top|center|bottom))?$/,
  J = /\s*(@?[\w\-\[\]]+)\s*:\s*(.+?)\s*(?:;|$)/gi,
  K = /^(@?[a-z\-]+)\[(\w+)\]$/,
  L = /-([a-z0-9_])/g,
  M = function(a, b) {
    return b.toUpperCase();
  },
  N = /[\-+]?[\d]*\.?[\d]+/g,
  O = /\{\?\}/g,
  P = /rgba?\(\s*-?\d+\s*,\s*-?\d+\s*,\s*-?\d+/g,
  Q = /[a-z\-]+-gradient/g,
  R = "",
  S = "",
  T = function() {
    var a = /^(?:O|Moz|webkit|ms)|(?:-(?:o|moz|webkit|ms)-)/;
    if (j) {
      var b = j(f, null);
      for (var c in b)
        if ((R = c.match(a) || (+c == c && b[c].match(a)))) break;
      if (!R) return void (R = S = "");
      (R = R[0]),
        "-" === R.slice(0, 1)
          ? ((S = R),
            (R = {
              "-webkit-": "webkit",
              "-moz-": "Moz",
              "-ms-": "ms",
              "-o-": "O"
            }[R]))
          : (S = "-" + R.toLowerCase() + "-");
    }
  },
  U = function() {
    var b =
        a.requestAnimationFrame ||
        a[R.toLowerCase() + "RequestAnimationFrame"],
      c = Ha();
    return (
      (Sa || !b) &&
        (b = function(b) {
          var d = Ha() - c,
            e = i.max(0, 1e3 / 60 - d);
          return a.setTimeout(function() {
            (c = Ha()), b();
          }, e);
        }),
      b
    );
  },
  V = function() {
    var b =
      a.cancelAnimationFrame || a[R.toLowerCase() + "CancelAnimationFrame"];
    return (
      (Sa || !b) &&
        (b = function(b) {
          return a.clearTimeout(b);
        }),
      b
    );
  },
  W = {
    begin: function() {
      return 0;
    },
    end: function() {
      return 1;
    },
    linear: function(a) {
      return a;
    },
    quadratic: function(a) {
      return a * a;
    },
    cubic: function(a) {
      return a * a * a;
    },
    swing: function(a) {
      return -i.cos(a * i.PI) / 2 + 0.5;
    },
    sqrt: function(a) {
      return i.sqrt(a);
    },
    outCubic: function(a) {
      return i.pow(a - 1, 3) + 1;
    },
    bounce: function(a) {
      var b;
      if (0.5083 >= a) b = 3;
      else if (0.8489 >= a) b = 9;
      else if (0.96208 >= a) b = 27;
      else {
        if (!(0.99981 >= a)) return 1;
        b = 91;
      }
      return 1 - i.abs((3 * i.cos(a * b * 1.028)) / b);
    }
  };
(d.prototype.refresh = function(a) {
  var d,
    e,
    f = !1;
  for (
    a === c
      ? ((f = !0), (ia = []), (Ra = 0), (a = b.getElementsByTagName("*")))
      : a.length === c && (a = [a]),
      d = 0,
      e = a.length;
    e > d;
    d++
  ) {
    var g = a[d],
      h = g,
      i = [],
      j = pa,
      k = ta,
      l = !1;
    if ((f && F in g && delete g[F], g.attributes)) {
      for (var m = 0, n = g.attributes.length; n > m; m++) {
        var p = g.attributes[m];
        if ("data-anchor-target" !== p.name)
          if ("data-smooth-scrolling" !== p.name)
            if ("data-edge-strategy" !== p.name)
              if ("data-emit-events" !== p.name) {
                var q = p.name.match(I);
                if (null !== q) {
                  var r = {
                    props: p.value,
                    element: g,
                    eventType: p.name.replace(L, M)
                  };
                  i.push(r);
                  var s = q[1];
                  s && (r.constant = s.substr(1));
                  var t = q[2];
                  /p$/.test(t)
                    ? ((r.isPercentage = !0),
                      (r.offset = (0 | t.slice(0, -1)) / 100))
                    : (r.offset = 0 | t);
                  var u = q[3],
                    v = q[4] || u;
                  u && u !== B && u !== C
                    ? ((r.mode = "relative"), (r.anchors = [u, v]))
                    : ((r.mode = "absolute"),
                      u === C
                        ? (r.isEnd = !0)
                        : r.isPercentage || (r.offset = r.offset * Ka));
                }
              } else l = !0;
            else k = p.value;
          else j = "off" !== p.value;
        else if (((h = b.querySelector(p.value)), null === h))
          throw 'Unable to find anchor target "' + p.value + '"';
      }
      if (i.length) {
        var w, x, y;
        !f && F in g
          ? ((y = g[F]), (w = ia[y].styleAttr), (x = ia[y].classAttr))
          : ((y = g[F] = Ra++), (w = g.style.cssText), (x = Da(g))),
          (ia[y] = {
            element: g,
            styleAttr: w,
            classAttr: x,
            anchorTarget: h,
            keyFrames: i,
            smoothScrolling: j,
            edgeStrategy: k,
            emitEvents: l,
            lastFrameIndex: -1
          }),
          Ea(g, [o], []);
      }
    }
  }
  for (Aa(), d = 0, e = a.length; e > d; d++) {
    var z = ia[a[d][F]];
    z !== c && (_(z), ba(z));
  }
  return ha;
}),
  (d.prototype.relativeToAbsolute = function(a, b, c) {
    var d = e.clientHeight,
      f = a.getBoundingClientRect(),
      g = f.top,
      h = f.bottom - f.top;
    return (
      b === E ? (g -= d) : b === D && (g -= d / 2),
      c === E ? (g += h) : c === D && (g += h / 2),
      (g += ha.getScrollTop()),
      (g + 0.5) | 0
    );
  }),
  (d.prototype.animateTo = function(a, b) {
    b = b || {};
    var d = Ha(),
      e = ha.getScrollTop(),
      f = b.duration === c ? x : b.duration;
    return (
      (oa = {
        startTop: e,
        topDiff: a - e,
        targetTop: a,
        duration: f,
        startTime: d,
        endTime: d + f,
        easing: W[b.easing || w],
        done: b.done
      }),
      oa.topDiff || (oa.done && oa.done.call(ha, !1), (oa = c)),
      ha
    );
  }),
  (d.prototype.stopAnimateTo = function() {
    oa && oa.done && oa.done.call(ha, !0), (oa = c);
  }),
  (d.prototype.isAnimatingTo = function() {
    return !!oa;
  }),
  (d.prototype.isMobile = function() {
    return Sa;
  }),
  (d.prototype.setScrollTop = function(b, c) {
    return (
      (sa = c === !0),
      Sa ? (Ta = i.min(i.max(b, 0), Ja)) : a.scrollTo(0, b),
      ha
    );
  }),
  (d.prototype.getScrollTop = function() {
    return Sa ? Ta : a.pageYOffset || e.scrollTop || f.scrollTop || 0;
  }),
  (d.prototype.getMaxScrollTop = function() {
    return Ja;
  }),
  (d.prototype.on = function(a, b) {
    return (ka[a] = b), ha;
  }),
  (d.prototype.off = function(a) {
    return delete ka[a], ha;
  }),
  (d.prototype.destroy = function() {
    var a = V();
    a(va), ya(), Ea(e, [t], [s, u, v]);
    for (var b = 0, d = ia.length; d > b; b++) fa(ia[b].element);
    (e.style.overflow = f.style.overflow = ""),
      (e.style.height = f.style.height = ""),
      ja && g.setStyle(ja, "transform", "none"),
      (ha = c),
      (ja = c),
      (ka = c),
      (la = c),
      (Ja = 0),
      (Ka = 1),
      (ma = c),
      (na = c),
      (La = "down"),
      (Ma = -1),
      (Oa = 0),
      (Pa = 0),
      (Qa = !1),
      (oa = c),
      (pa = c),
      (qa = c),
      (ra = c),
      (sa = c),
      (Ra = 0),
      (ta = c),
      (Sa = !1),
      (Ta = 0),
      (ua = c);
  });
var X = function() {
    var d, g, h, j, o, p, q, r, s, t, u, v;
    wa(e, [k, l, m, n].join(" "), function(a) {
      var e = a.changedTouches[0];
      for (j = a.target; 3 === j.nodeType; ) j = j.parentNode;
      switch (
        ((o = e.clientY),
        (p = e.clientX),
        (t = a.timeStamp),
        G.test(j.tagName) || a.preventDefault(),
        a.type)
      ) {
        case k:
          d && d.blur(),
            ha.stopAnimateTo(),
            (d = j),
            (g = q = o),
            (h = p),
            (s = t);
          break;
        case l:
          G.test(j.tagName) && b.activeElement !== j && a.preventDefault(),
            (r = o - q),
            (v = t - u),
            ha.setScrollTop(Ta - r, !0),
            (q = o),
            (u = t);
          break;
        default:
        case m:
        case n:
          var f = g - o,
            w = h - p,
            x = w * w + f * f;
          if (49 > x) {
            if (!G.test(d.tagName)) {
              d.focus();
              var y = b.createEvent("MouseEvents");
              y.initMouseEvent(
                "click",
                !0,
                !0,
                a.view,
                1,
                e.screenX,
                e.screenY,
                e.clientX,
                e.clientY,
                a.ctrlKey,
                a.altKey,
                a.shiftKey,
                a.metaKey,
                0,
                null
              ),
                d.dispatchEvent(y);
            }
            return;
          }
          d = c;
          var z = r / v;
          z = i.max(i.min(z, 3), -3);
          var A = i.abs(z / na),
            B = z * A + 0.5 * na * A * A,
            C = ha.getScrollTop() - B,
            D = 0;
          C > Ja
            ? ((D = (Ja - C) / B), (C = Ja))
            : 0 > C && ((D = -C / B), (C = 0)),
            (A *= 1 - D),
            ha.animateTo((C + 0.5) | 0, { easing: "outCubic", duration: A });
      }
    }),
      a.scrollTo(0, 0),
      (e.style.overflow = f.style.overflow = "hidden");
  },
  Y = function() {
    var a,
      b,
      c,
      d,
      f,
      g,
      h,
      j,
      k,
      l,
      m,
      n = e.clientHeight,
      o = Ba();
    for (j = 0, k = ia.length; k > j; j++)
      for (
        a = ia[j],
          b = a.element,
          c = a.anchorTarget,
          d = a.keyFrames,
          f = 0,
          g = d.length;
        g > f;
        f++
      )
        (h = d[f]),
          (l = h.offset),
          (m = o[h.constant] || 0),
          (h.frame = l),
          h.isPercentage && ((l *= n), (h.frame = l)),
          "relative" === h.mode &&
            (fa(b),
            (h.frame =
              ha.relativeToAbsolute(c, h.anchors[0], h.anchors[1]) - l),
            fa(b, !0)),
          (h.frame += m),
          la && !h.isEnd && h.frame > Ja && (Ja = h.frame);
    for (Ja = i.max(Ja, Ca()), j = 0, k = ia.length; k > j; j++) {
      for (a = ia[j], d = a.keyFrames, f = 0, g = d.length; g > f; f++)
        (h = d[f]),
          (m = o[h.constant] || 0),
          h.isEnd && (h.frame = Ja - h.offset + m);
      a.keyFrames.sort(Ia);
    }
  },
  Z = function(a, b) {
    for (var c = 0, d = ia.length; d > c; c++) {
      var e,
        f,
        i = ia[c],
        j = i.element,
        k = i.smoothScrolling ? a : b,
        l = i.keyFrames,
        m = l.length,
        n = l[0],
        s = l[l.length - 1],
        t = k < n.frame,
        u = k > s.frame,
        v = t ? n : s,
        w = i.emitEvents,
        x = i.lastFrameIndex;
      if (t || u) {
        if ((t && -1 === i.edge) || (u && 1 === i.edge)) continue;
        switch (
          (t
            ? (Ea(j, [p], [r, q]),
              w &&
                x > -1 &&
                (za(j, n.eventType, La), (i.lastFrameIndex = -1)))
            : (Ea(j, [r], [p, q]),
              w && m > x && (za(j, s.eventType, La), (i.lastFrameIndex = m))),
          (i.edge = t ? -1 : 1),
          i.edgeStrategy)
        ) {
          case "reset":
            fa(j);
            continue;
          case "ease":
            k = v.frame;
            break;
          default:
          case "set":
            var y = v.props;
            for (e in y)
              h.call(y, e) &&
                ((f = ea(y[e].value)),
                0 === e.indexOf("@")
                  ? j.setAttribute(e.substr(1), f)
                  : g.setStyle(j, e, f));
            continue;
        }
      } else 0 !== i.edge && (Ea(j, [o, q], [p, r]), (i.edge = 0));
      for (var z = 0; m - 1 > z; z++)
        if (k >= l[z].frame && k <= l[z + 1].frame) {
          var A = l[z],
            B = l[z + 1];
          for (e in A.props)
            if (h.call(A.props, e)) {
              var C = (k - A.frame) / (B.frame - A.frame);
              (C = A.props[e].easing(C)),
                (f = da(A.props[e].value, B.props[e].value, C)),
                (f = ea(f)),
                0 === e.indexOf("@")
                  ? j.setAttribute(e.substr(1), f)
                  : g.setStyle(j, e, f);
            }
          w &&
            x !== z &&
            ("down" === La ? za(j, A.eventType, La) : za(j, B.eventType, La),
            (i.lastFrameIndex = z));
          break;
        }
    }
  },
  $ = function() {
    Qa && ((Qa = !1), Aa());
    var a,
      b,
      d = ha.getScrollTop(),
      e = Ha();
    if (oa)
      e >= oa.endTime
        ? ((d = oa.targetTop), (a = oa.done), (oa = c))
        : ((b = oa.easing((e - oa.startTime) / oa.duration)),
          (d = (oa.startTop + b * oa.topDiff) | 0)),
        ha.setScrollTop(d, !0);
    else if (!sa) {
      var f = ra.targetTop - d;
      f &&
        (ra = {
          startTop: Ma,
          topDiff: d - Ma,
          targetTop: d,
          startTime: Na,
          endTime: Na + qa
        }),
        e <= ra.endTime &&
          ((b = W.sqrt((e - ra.startTime) / qa)),
          (d = (ra.startTop + b * ra.topDiff) | 0));
    }
    if (sa || Ma !== d) {
      (La = d > Ma ? "down" : Ma > d ? "up" : La), (sa = !1);
      var h = { curTop: d, lastTop: Ma, maxTop: Ja, direction: La },
        i = ka.beforerender && ka.beforerender.call(ha, h);
      i !== !1 &&
        (Z(d, ha.getScrollTop()),
        Sa &&
          ja &&
          g.setStyle(ja, "transform", "translate(0, " + -Ta + "px) " + ua),
        (Ma = d),
        ka.render && ka.render.call(ha, h)),
        a && a.call(ha, !1);
    }
    Na = e;
  },
  _ = function(a) {
    for (var b = 0, c = a.keyFrames.length; c > b; b++) {
      for (
        var d, e, f, g, h = a.keyFrames[b], i = {};
        null !== (g = J.exec(h.props));
      )
        (f = g[1]),
          (e = g[2]),
          (d = f.match(K)),
          null !== d ? ((f = d[1]), (d = d[2])) : (d = w),
          (e = e.indexOf("!") ? aa(e) : [e.slice(1)]),
          (i[f] = { value: e, easing: W[d] });
      h.props = i;
    }
  },
  aa = function(a) {
    var b = [];
    return (
      (P.lastIndex = 0),
      (a = a.replace(P, function(a) {
        return a.replace(N, function(a) {
          return (a / 255) * 100 + "%";
        });
      })),
      S &&
        ((Q.lastIndex = 0),
        (a = a.replace(Q, function(a) {
          return S + a;
        }))),
      (a = a.replace(N, function(a) {
        return b.push(+a), "{?}";
      })),
      b.unshift(a),
      b
    );
  },
  ba = function(a) {
    var b,
      c,
      d = {};
    for (b = 0, c = a.keyFrames.length; c > b; b++) ca(a.keyFrames[b], d);
    for (d = {}, b = a.keyFrames.length - 1; b >= 0; b--)
      ca(a.keyFrames[b], d);
  },
  ca = function(a, b) {
    var c;
    for (c in b) h.call(a.props, c) || (a.props[c] = b[c]);
    for (c in a.props) b[c] = a.props[c];
  },
  da = function(a, b, c) {
    var d,
      e = a.length;
    if (e !== b.length)
      throw "Can't interpolate between \"" + a[0] + '" and "' + b[0] + '"';
    var f = [a[0]];
    for (d = 1; e > d; d++) f[d] = a[d] + (b[d] - a[d]) * c;
    return f;
  },
  ea = function(a) {
    var b = 1;
    return (
      (O.lastIndex = 0),
      a[0].replace(O, function() {
        return a[b++];
      })
    );
  },
  fa = function(a, b) {
    a = [].concat(a);
    for (var c, d, e = 0, f = a.length; f > e; e++)
      (d = a[e]),
        (c = ia[d[F]]),
        c &&
          (b
            ? ((d.style.cssText = c.dirtyStyleAttr), Ea(d, c.dirtyClassAttr))
            : ((c.dirtyStyleAttr = d.style.cssText),
              (c.dirtyClassAttr = Da(d)),
              (d.style.cssText = c.styleAttr),
              Ea(d, c.classAttr)));
  },
  ga = function() {
    (ua = "translateZ(0)"), g.setStyle(ja, "transform", ua);
    var a = j(ja),
      b = a.getPropertyValue("transform"),
      c = a.getPropertyValue(S + "transform"),
      d = (b && "none" !== b) || (c && "none" !== c);
    d || (ua = "");
  };
g.setStyle = function(a, b, c) {
  var d = a.style;
  if (((b = b.replace(L, M).replace("-", "")), "zIndex" === b))
    isNaN(c) ? (d[b] = c) : (d[b] = "" + (0 | c));
  else if ("float" === b) d.styleFloat = d.cssFloat = c;
  else
    try {
      R && (d[R + b.slice(0, 1).toUpperCase() + b.slice(1)] = c), (d[b] = c);
    } catch (e) {}
};
var ha,
  ia,
  ja,
  ka,
  la,
  ma,
  na,
  oa,
  pa,
  qa,
  ra,
  sa,
  ta,
  ua,
  va,
  wa = (g.addEvent = function(b, c, d) {
    var e = function(b) {
      return (
        (b = b || a.event),
        b.target || (b.target = b.srcElement),
        b.preventDefault ||
          (b.preventDefault = function() {
            (b.returnValue = !1), (b.defaultPrevented = !0);
          }),
        d.call(this, b)
      );
    };
    c = c.split(" ");
    for (var f, g = 0, h = c.length; h > g; g++)
      (f = c[g]),
        b.addEventListener
          ? b.addEventListener(f, d, !1)
          : b.attachEvent("on" + f, e),
        Ua.push({ element: b, name: f, listener: d });
  }),
  xa = (g.removeEvent = function(a, b, c) {
    b = b.split(" ");
    for (var d = 0, e = b.length; e > d; d++)
      a.removeEventListener
        ? a.removeEventListener(b[d], c, !1)
        : a.detachEvent("on" + b[d], c);
  }),
  ya = function() {
    for (var a, b = 0, c = Ua.length; c > b; b++)
      (a = Ua[b]), xa(a.element, a.name, a.listener);
    Ua = [];
  },
  za = function(a, b, c) {
    ka.keyframe && ka.keyframe.call(ha, a, b, c);
  },
  Aa = function() {
    var a = ha.getScrollTop();
    (Ja = 0),
      la && !Sa && (f.style.height = ""),
      Y(),
      la && !Sa && (f.style.height = Ja + e.clientHeight + "px"),
      Sa
        ? ha.setScrollTop(i.min(ha.getScrollTop(), Ja))
        : ha.setScrollTop(a, !0),
      (sa = !0);
  },
  Ba = function() {
    var a,
      b,
      c = e.clientHeight,
      d = {};
    for (a in ma)
      (b = ma[a]),
        "function" == typeof b
          ? (b = b.call(ha))
          : /p$/.test(b) && (b = (b.slice(0, -1) / 100) * c),
        (d[a] = b);
    return d;
  },
  Ca = function() {
    var a,
      b = 0;
    return (
      ja && (b = i.max(ja.offsetHeight, ja.scrollHeight)),
      (a = i.max(
        b,
        f.scrollHeight,
        f.offsetHeight,
        e.scrollHeight,
        e.offsetHeight,
        e.clientHeight
      )),
      a - e.clientHeight
    );
  },
  Da = function(b) {
    var c = "className";
    return (
      a.SVGElement &&
        b instanceof a.SVGElement &&
        ((b = b[c]), (c = "baseVal")),
      b[c]
    );
  },
  Ea = function(b, d, e) {
    var f = "className";
    if (
      (a.SVGElement &&
        b instanceof a.SVGElement &&
        ((b = b[f]), (f = "baseVal")),
      e === c)
    )
      return void (b[f] = d);
    for (var g = b[f], h = 0, i = e.length; i > h; h++)
      g = Ga(g).replace(Ga(e[h]), " ");
    g = Fa(g);
    for (var j = 0, k = d.length; k > j; j++)
      -1 === Ga(g).indexOf(Ga(d[j])) && (g += " " + d[j]);
    b[f] = Fa(g);
  },
  Fa = function(a) {
    return a.replace(H, "");
  },
  Ga = function(a) {
    return " " + a + " ";
  },
  Ha =
    Date.now ||
    function() {
      return +new Date();
    },
  Ia = function(a, b) {
    return a.frame - b.frame;
  },
  Ja = 0,
  Ka = 1,
  La = "down",
  Ma = -1,
  Na = Ha(),
  Oa = 0,
  Pa = 0,
  Qa = !1,
  Ra = 0,
  Sa = !1,
  Ta = 0,
  Ua = [];
"function" == typeof define && define.amd
  ? define([], function() {
      return g;
    })
  : "undefined" != typeof module && module.exports
  ? (module.exports = g)
  : (a.skrollr = g);

})(window, document);